`a2) Patent Application Publication 10) Pub. No.: US 2016/0125040 Al
`
` Kheterpalet al. (43) Pub. Date: May5, 2016
`
`
`US 20160125040A1
`
`(54) DIGITAL CURRENCY MINING CIRCUITRY
`HAVING SHARED PROCESSING LOGIC
`
`(71) Applicant: 21, Inc., San Francisco, CA (US)
`
`(72)
`
`Inventors: Veerbhan Kheterpal, Santa Clara, CA
`(US); Daniel Firu, San Jose, CA (US);
`Nigel Drego, San Francisco, CA (US)
`;
`(21) Appl. No.: 14/866,102
`“yg,
`(22)
`Filed:
`Sep. 25, 2015
`se
`Related U.S. Application Data
`(60) Provisional application No. 62/073,522, filed on Oct.
`31, 2014.
`
`Publication Classification
`
`51)
`
`Int. Cl.
`GO06F 1730
`G060 20/06
`
`(2006.01)
`(2006.01)
`
`(52) U.S. CL
`CPC .... GO6F 17/30539 (2013.01); GO6F 17/30864
`(2013.01); G06Q 20/06 (2013.01)
`
`(57)
`ABSTRACT
`An integrated circuit may be provided with cryptocurrency
`mining capabilities. The integrated circuit may include con-
`trol circuitry and a numberofprocessing cores that complete
`a Secure HashAlgorithm 256 (SHA-256) function in parallel.
`Logic circuitry may be shared between multiple processing
`cores. Each processing core may perform sequential rounds
`of cryptographic hashing operations based on a hash input
`and message word inputs. The control circuitry may control
`the processing cores to complete the SHA-256 function over
`different search spaces. The shared logic circuitry may per-
`forma subsetofthe sequential rounds for multiple processing
`cores. If desired, the shared logic circuitry may generate
`message word inputs for some ofthe sequential rounds across
`multiple processing cores. By sharing logic circuitry across
`p
`p
`Pp
`y
`may
`cores, chip
`area consumption and powerefficiency may be
`improved relative to scenarios where the cores are formed
`using only dedicated logic.
`
`110
`
`ELECTRONIC DEVICE
`
`COMMUNICATIONS CIRCUITRY, ETC.) 114
`
`STORAGE AND PROCESSING
`CIRCUITRY
`
`MINING CIRCUITY
`
`INPUT-OUTPUT DEVICES (E.G.,
`BUTTONS, DISPLAYS,
`
`CRUSOE 1010
`
`CRUSOE 1010
`
`1
`
`
`
`Patent Application Publication
`
`May 5, 2016 Sheet 1 of 13
`
`US 2016/0125040 Al
`
`
`
`FIG. 1
`
`2
`
`
`
`Patent Application Publication
`
`May 5, 2016 Sheet 2 of 13
`
`US 2016/0125040 Al
`
`110
`
`ELECTRONIC DEVICE
`
`STORAGE AND PROCESSING
`CIRCUITRY
`
`MINING CIRCUITY
`
`COMMUNICATIONS CIRCUITRY, ETC.)
`
`INPUT-OUTPUT DEVICES (E.G.,
`BUTTONS, DISPLAYS,
`
`y-
`
`114
`
`FIG. 2
`
`3
`
`
`
`Patent Application Publication
`
`May5, 2016 Sheet 3 of 13
`
`US 2016/0125040 Al
`
`$94
`
`€Old
`
`oz—*
`
`9Z/
`
`POIs(LATIVM(LaTIWMaounos¥LaTIVM
`
`
`
`OrL—7OZ1OFrel
`
`ofL-—7921
`SNOIARYd NOLLVIANMOANI
`3534 Zr
`LATIVMONTNVHS-LIdOdd=FLNNOW|ayy9078
`
`
`NOUVNILSSCLNNOWY
`HadvaH
`(S\LATIVMSHANIN—FLNNOWY
`
`
`
`SLAALAOdOLAS|snoiagud“9°3)SLNNI
`;2SJONNON|LHOIH
`
`SALWAlddSNISN°9'3)
`AOUNOSAOAdm
`
`NOLLOVSNValSSVENIOO
`
`NOLLOVSNVELLTWAMON
`YONOILOVSNVHL
`pZhZZ}.
`ONIASLLNACI“93)
`YoaldLLNaG!
`NOLLOVSNVELL
`SSIsLNA
`
`40Las
`
`(ASVENIOO
`
`NOILOVSNVeiL
`
`Zh
`
`SaYNALYNES
`
`LAGLAO
`
`(48dOHOg)
`
`QSAXN
`
`ASVENIOD
`
`
`
`YalsdiLNAI
`
`4
`
`
`
`Patent Application Publication
`
`May 5, 2016 Sheet 4 of 13
`
`US 2016/0125040 Al
`
`ye
`
`152
`
`140
`
`156
`
`BLOCK HEADER
`
`COINBASE TXO (MINER'S WALLET, PROFIT-SHARING WALLET}
`
`TX2
`
`| TRANSACTION
`
`TRI
`
`TRANSACTION
`
`FIG. 6
`
`5
`
`
`
`Patent Application Publication
`
`May 5, 2016 Sheet 5 of 13
`
`US 2016/0125040 Al
`
`yy
`
`162
`
`164
`
`166
`
`|
`
`168
`
`470
`
`172
`
`PREVIOUS
`
`ene BLOCK
`
`IDENTIFIER
`
`| |
`
`veout TIMESTAMP IDIFFICULTY| NONCE
`
`
`
`| | | | |\e
`
`npoe
`474
`
`
`178
`
`FIG. 7
`
`6
`
`
`
`Patent Application Publication
`
`May5, 2016 Sheet 6 of 13
`
`US 2016/0125040 Al
`
`oa
`
`VBL
`
`37a
`
`=LOOU
`
`ChuStuyug
`
`G
`
`BL
`
`Ze
`
`Bt
`
`="HYonfyLZeeZza
`a4‘=hyJ|xOy
`ZBLéye8h
`
`3Sls
`
`
`(pxUHA(exXDHG
`(2XDHf‘UxpHa|MoxuHa
`
`|.
`
`7
`
`
`
`
`
`Patent Application Publication
`
`May 5, 2016 Sheet 7 of 13
`
`US 2016/0125040 Al
`
`yo
`
`|[
`
`207
`
`| _
`
`h
`[202
`|
`
`8
`
`
`
`Patent Application Publication
`
`May 5, 2016 Sheet 8 of 13
`
`US 2016/0125040 Al
`
`yo’
`
`CONTROL
`CIRCUITRY
`
`CIRCUITRY
`
`OFF-CHIP
`PROCESSING
`
`9
`
`
`
`Patent Application Publication
`
`May 5, 2016 Sheet 9 of 13
`
`US 2016/0125040 Al
`
`220
`
`224
`
`|
`
`260
`
`COMMUNICATIONS
`MODULE
`
`STORAGE
`CIRCUITRY
`
`214
`
`<7
`A
`
`INITIAL
`=
`|W
`|
`MESSAGE (512
`256-7 was
`
`[255-0]|44 INPUT
`
`
`
`FIRST HASHING MODULE
`(E.G,, SHA-256 MODULE)
`
`FIRST HASH | ong Ho
`
`PADDING CIRCUITRY
`
`constant MESSAGE /512
`FACTORS
`p etre
`
`SECOND HASHING MODULE
`{E.G., SHA-256 MODULE)
`
`DIFFICULTY
`
`SECOND | He
`[255-0]
`256
`
`DIFFICULTY COMPARISON
`CIRCUITRY
`
`224
`
`| FOUND SIGNAL
`
`FIG. 11
`
`10
`
`10
`
`
`
`Patent Application Publication
`
`May 5, 2016 Sheet 10 of 13
`
`US 2016/0125040 Al
`
`fo 298
`
`308
`
`ChiE, F, G) = (E*F) @ (7EaG)
`
`Ma(A, B, C) = (A*B) @ (AaC) @ (BaC)
`
`LO(A) = (A>>>2) @ (A>>>13) @ (A>>>22)
`
`21(E} = (E>>>6) @ (E>>>11) @ (E>>>258)
`
`FIG. 12
`
`11
`
`
`
`Patent Application Publication
`
`US 2016/0125040 Al
`
`May 5, 2016 Sheet 11 of 13
`
`FIG.13
`
`12
`
`12
`
`
`
`Patent Application Publication
`
`May 5, 2016 Sheet 12 of 13
`
`US 2016/0125040 Al
`
`260
`
`SHARED
`GOMMUNICATIONS MODULE
`
`SHARED
`MEMORY
`
`264
`
`WoO, WT W2, W3
`
`SHARED MESSAGE SCHEDULING LOGIC
`
`422
`
`424
`
`424
`
`398
`
`PARTIALLY SHARED
`™ MESSAGE SCHEDULING
`LOGIC
`
`MESSAGE SCHEDULING
`
`PARTIALLY SHARED
`
`LOGIC
`
`| | | | | |
`
`| | | | | | |
`
`MESSAGE
`
`UNSHARED.[|UNSHARED UNSHARED||UNSHARED
`
`MESSAGE
`MESSAGE
`MESSAGE
`
`426
`
`426.
`
`426
`
`426
`
`298-
`™
`
`PARTIALLY SHARED
`HASH SCHEDULING
`
`PARTIALLY SHARED
`HASH SCHEDULING
`
`
`
`UNSHARED||UNSHARED UNSHARED||UNSHARED
`
`13
`
`13
`
`
`
`Patent Application Publication
`
`May 5, 2016 Sheet 13 of 13
`
`US 2016/0125040 Al
`
`220-0
`
`220-4
`
`220-2
`
`220-3
`
`LJO<fanJ=
`SCHEDULING
`CIRCUITRY
`
`|
`|
`|
`|
`\
`|
`
`17
`
`.,
`
`‘
`
`[Rs
`
`R3
`
`:
`.
`
`:
`cf
`
`f
`|
`!
`|
`|
`|
`!
`
`fi
`
`f
`
`é
`
`é
`
`| | | |
`
`|
`|
`|
`
`|
`”
`
`>
`
`,
`
`f
`
`\
`
`%
`
`\
`
`|
`
`t
`
`j
`
`\
`
`N.
`rx
`4420777
`
`¢
`
`?
`
`a
`
`:
`e
`
`:
`e
`
`RES
`
`R63
`
`R63
`
`40
`
`440| | 440
`Hh
`rlitli Fl
`!
`|
`H "|
`Hol
`|
`
`H
`
`FIG. 15
`
`14
`
`14
`
`
`
`
`US 2016/0125040 Al
`
`May 5, 2016
`
`DIGITAL CURRENCY MINING CIRCUITRY
`HAVING SHARED PROCESSING LOGIC
`
`[0001] This application claims the benefit of provisional
`patent application No. 62/073,522, filed Oct. 31, 2014, which
`is hereby incorporated by reference herein in its entirety.
`
`BACKGROUND
`
`[0002] This relates to digital currencies, and moreparticu-
`larly, to mining digital currencies.
`[0003] Digital currencies serve as a digital medium of
`exchange in whichthedigital currencies may be transferred in
`exchange for goods and services. Crypto-currencies are
`examplesofdigital currencies in which cryptography governs
`the creation and exchange of value. An example of a cryp-
`tocurrency is the bitcoin cryptocurrency that is governed by
`the Bitcoin protocol. This is in contrast to traditional medi-
`umsof exchangethat are governed, for example, by a central
`authority.
`[0004] The Bitcoin protocol defines a system in which the
`creation anddistribution ofthe bitcoin cryptocurrencyis gov-
`erned by consensus amonga peer-to-peer network. The net-
`work maintains a public ledger in which new transactions are
`verified and recorded by members of the network via cryp-
`tography. The operations of verifying and recording transac-
`tions of cryptocurrencies such as transactions in the bitcoin
`cryptocurrency are sometimesreferred to as mining, because
`completion of each mining operation typically rewards the
`miner with newly created cryptocurrency (e.g., bitcoins).
`Verified transactions and newly created bitcoins are recorded
`in the public ledger. The public ledger serves as an official
`history oftransactions. The amountof cryptocurrency owned
`by any entity may be determined from the public ledger.
`[0005] Bitcoin mining operations involve identifying a
`solution to a cryptographic puzzle in which transactions that
`are to be verified form part of the puzzle parameters. Bitcoin
`mining operations are typically performed via brute-force
`techniques (e.g., an exhaustive search for a puzzle solution
`performedacross all possible solutions). The difficulty of the
`cryptographic puzzle hasled to the use of dedicated circuitry
`designed specifically for Bitcoin mining. Such dedicatedcir-
`cuitry can be expensive to design, purchase, and operate.
`
`SUMMARYOF THE INVENTION
`
`[0006] An integrated circuit may be provided with cryp-
`tocurrency mining capabilities. The integrated circuit may
`include processing circuitry that mines digital cryptocurrency
`by completing a cryptographic function according to a pro-
`tocol that governs the digital cryptocurrency. The integrated
`circuit may include control circuitry and a numberofprocess-
`ing cores that complete the cryptographic function in parallel.
`As an example, the control circuitry may control the process-
`ing cores to complete a Secure Hash Algorithm 256 (SHA-
`256) function in parallel for generating Bitcoin rewards based
`on a Bitcoin protocol.
`[0007] The integrated circuit may, for example, include
`first, second, and third processing cores. Shared logic cir-
`cuitry may be shared between eachofthe first, second, and
`third processing cores. The shared logic circuitry may be
`formed on a region of the integrated circuit occupied by the
`first, second, and/or third processing cores. The control cir-
`cuitry may provide control signals to the shared logic cir-
`cuitry to controlthefirst, second, and third processing cores to
`complete the cryptographic function in parallel. The control
`
`circuitry may control the processing cores to complete the
`cryptographic function overrespective first, second, andthird
`different search spaces. The shared logic circuitry may, if
`desired, complete a portion of the cryptographic function
`corresponding to an overlap between the search spaces.
`[0008]
`Thefirst processing core may, for example, include
`a first cryptographic hashing circuit whereas the secondpro-
`cessing core includes a second cryptographic hashing circuit
`and the third processing core includes a third cryptographic
`hashing circuit. Each of the hashing circuits may include a
`sequence of rounds of cryptographic hashing logic that per-
`forms a cryptographic hashing algorithm based on an initial
`hash value received from the control circuitry and message
`input wordsreceived from message scheduling circuitry. The
`shared logic circuitry may perform a subset of the sequential
`rounds (e.g., one or more leading rounds) of the crypto-
`graphic hashing algorithm for at least the first, second, and
`third processing cores.
`[0009] Message scheduling circuitry may receive different
`respective messagesfor each ofthe processing cores from the
`control circuitry. The message scheduling circuitry may gen-
`erate the message input words based on the received mes-
`sages. In accordance with any of the above arrangements, the
`shared logic circuitry may form a portion of the message
`scheduling circuitry. The shared logic circuitry may generate
`a selected message input word based on first, second, and
`third messages received for thefirst, second, and third pro-
`cessing cores respectively. The shared logic circuitry may
`provide the selected message input word to each ofthefirst,
`second, and third processing cores. The first, second, and
`third processing cores may perform atleast one ofthe sequen-
`tial rounds of the cryptographic hashing algorithm based on
`the selected message input word.
`[0010]
`If desired, partially shared logic circuitry may be
`shared by the first and second processing cores but not the
`third processing core. An input ofthe partially shared logic
`circuitry may be coupled to an output of the shared logic
`circuitry. The partially shared logic circuitry may generate an
`additional message word based onthe first and second mes-
`sages and may provide the additional message wordto the
`first and second processing cores (e.g., without providing the
`additional message wordto the third core) for performing at
`least one of the sequential rounds of the cryptographic hash-
`ing algorithm (e.g., rounds that are subsequentto those per-
`formed using the selected message word generated by the
`shared logic circuitry). If desired, unshared logic circuitry
`may be formed on the first processing core but not on the
`second and third processing cores. An input of the unshared
`logic circuitry may be coupled to an output ofthe partially
`sharedlogic circuitry and the unsharedlogic circuitry may be
`configured to generate a message wordforat least one of the
`sequential roundsofthe first processing core.
`[0011]
`Thefirst processing core may generate a first hash
`output value based on at least one of the message word gen-
`erated by the unsharedlogic circuitry. The hash output value
`may be combined with an initial hash value at adder circuitry
`to generate a final hash value. The final hash value may be
`provided to data padding circuitry or difficulty comparison
`circuitry for further processing.
`[0012]
`Inaccordance with any ofthe above arrangements,a
`first round of cryptographic hashing circuitry may be imple-
`mented on a given processing core and may generate a first
`hash value based on an input value anda first message word
`received from message scheduling circuitry. A second round
`
`15
`
`15
`
`
`
`US 2016/0125040 Al
`
`May 5, 2016
`
`logic with neighboring cores in the mining circuitry in accor-
`dance with an embodimentof the present invention.
`[0025]
`FIG. 12 is an illustrative diagram of a round of
`hashing logic that may perform a round of a hash schedule
`(e.g., around of SHA-256 hashing) on an input hash value and
`a word received from message scheduling circuitry to gener-
`ate a hash output in accordance with an embodimentof the
`present invention.
`[0026]
`FIG. 13 isan illustrative diagram of message sched-
`uling circuitry that may generate message words based on a
`received message and that may provide the message words to
`rounds of hashing logic of the type shown in FIG. 12 for
`generating a hash output in accordance with an embodiment
`of the present invention.
`[0027]
`FIG. 14 is an illustrative diagram showing how
`neighboring processing cores on mining circuitry ofthe type
`shownin FIGS. 10-13 may share message scheduling logic
`and hash scheduling logic to reduce chip area consumption in
`accordance with an embodimentof the present invention.
`[0028]
`FIG. 15 is an illustrative diagram showing how dif-
`ferent rounds of hashing logic may be shared by a set of
`processing cores on mining circuitry, maybepartially shared
`by a subset of the set of processing cores, and/or may be
`formed on distinct processing cores based on commonalties
`in the messages provided for each of the processing cores
`(e.g., commonalties in the search space used by each of the
`cores) in accordance with an embodiment of the present
`invention.
`
`DETAILED DESCRIPTION
`
`ofcryptographic hashingcircuitry that is implemented on two
`different processing cores may receive the first hash value
`from the first round of cryptographic hashing circuitry and
`may generate second andthird hash values based onthefirst
`hash value and a second message word. A final round of
`cryptographic hashing circuitry may generate a first hash
`output value basedatleast partly on the second hash value and
`a third message word and may generate a second hash output
`value basedatleast partly on the third hash value andthe third
`message word. For example, a number of intermediate
`sequential rounds of cryptographic hashing circuitry may be
`interposed between the second round andthefinal round. By
`sharing logic circuitry among the processing cores, chip area
`consumption and powerefficiency may be improvedrelative
`to scenarios wherethe processing cores are formed using only
`dedicated logic.
`[0013]
`Further features will be more apparent from the
`accompanying drawings and the following detailed descrip-
`tion.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`FIG. 1 is an illustrative diagram of a network of
`[0014]
`nodes having cryptographic hashing circuitry that may be
`used to mine digital currency in accordance with an embodi-
`mentof the present invention.
`[0015]
`FIG. 2 is an illustrative diagram of an electronic
`device that may include cryptographic hashing circuitry in
`accordance with an embodimentof the present invention.
`[0016]
`FIG. 3 is an illustrative transaction of digital cur-
`rency that may be verified using mining circuitry in accor-
`dance with an embodimentof the present invention.
`[0017]
`FIG. 4 is an illustrative transaction of digital cur-
`rency between source and destination wallets that may be
`verified using cryptographic hashing circuitry running on
`mining circuitry in accordance with an embodimentof the
`present invention.
`[0018]
`FIG. 5 is an illustrative coinbase transaction in
`which a portion of a reward amountis assigned to different
`wallets in accordance with an embodiment of the present
`invention.
`
`FIG.6 is an illustrative block that may be generated
`[0019]
`by mining circuitry and recorded in a global ledger in accor-
`dance with an embodimentof the present invention.
`[0020]
`FIG. 7 is an illustrative block header that may be
`generated by mining circuitry in solving a cryptographic
`puzzle in accordance with an embodiment of the present
`invention.
`
`[0029] The present invention relates to mining of digital
`currencies such as crypto-currencies. Mining circuitry and
`mining operations described herein may be used for any
`digital medium of exchange such as digital currencies, cred-
`its, rewards, or points.
`[0030]
`FIG. 1 is an illustrative diagram of a peer-to-peer
`network 100 that may operate according to the Bitcoin pro-
`tocol. Network 100 includes nodes 10 that are coupled to
`other nodes via paths 12. Nodes 10 maybeelectronic devices
`such as desktop computers, laptop computers, cellular tele-
`phones, servers, or other electronic devices that implement
`the Bitcoin protocol. Each node 10 may communicate with
`other nodes of network 100 over paths 12. Paths 12 may, for
`example, include network paths such as network cables and
`packet forwarding devices (e.g., switches, routers, etc.) that
`couple nodes 10 to other nodes. This example is merely
`illustrative. Nodes 10 ofnetwork 100 may be coupled via any
`desired underlying communications technology such as
`FIG. 8 is an illustrative Merkle tree that may be
`[0021]
`wired or wireless network technologies and network 100 may
`calculated by mining circuitry from a set of transactions in
`include any desired numberof nodes(e.g., tens, hundreds,
`solving a cryptographic puzzle in accordance with an
`thousands, millions, or more).
`embodimentof the present invention.
`[0031] Nodes 10 may communicate over paths 12 accord-
`[0022]
`FIG. 9 is an illustrative block chain that may be
`ing to the Bitcoin protocol in maintaining the cryptocurrency.
`maintained by a network ofnodesas a global ledgerofdigital
`For example, nodes 10 may communicate to maintain a glo-
`currency transactions in accordance with an embodimentof
`bal ledgerofall official transactions. Each node 10 may store
`the present invention.
`a copy of the global ledger (e.g., a complete copy or only a
`[0023]
`FIG. 101s anillustrative diagram ofmining circuitry
`partial copy). Transactions addedto the global ledger by each
`including control circuitry and multiple processing cores for
`node 10 may be verified by other nodes 10 to help ensure
`performing cryptographic hashing functions in parallel on
`validity of the ledger.
`corresponding portions of a search space in accordance with
`[0032]
`FIG. 2 is an illustrative diagram of an electronic
`an embodimentof the present invention.
`device 110 that may serve as a node inapeer-to-peer network
`[0024]
`FIG. 11 is an illustrative diagram of a processing
`(e.g., as anode 10 of FIG. 1). As shownin FIG.2, device 110
`core in mining circuitry that may perform roundsof crypto-
`may include storage and processing circuitry 112. Storage
`graphic hashing (e.g., SHA-256 hashing) and that may share
`and processing circuitry 112 may include storage such as hard
`
`16
`
`16
`
`
`
`US 2016/0125040 Al
`
`May 5, 2016
`
`FIG. 41s a diagram ofan illustrative transaction 130
`[0039]
`that transfers currency from a source wallet to a destination
`wallet. Transaction 130 maybe, for example, a data packet or
`sequence (stream) of data packets having corresponding
`headerfields 124 and 126. As shownin FIG.4, input 124 may
`include a previoustransaction identifier, an output identifier,
`and a signature. If desired, header information 122 of FIG. 3
`such as version number or timestamp information may be
`includedin the transaction of FIG.5.
`
`The inputs and outputs may, for example, be digital wallets in
`disk drive storage, nonvolatile memory (e.g., flash memory or
`other electrically-programmable-read-only memory config-
`which currency is stored. The inputs mayrefer to an output of
`ured to formasolid state drive), volatile memory (e.g., static
`a previoustransaction as a source of funding or may identify
`or dynamic random-access-memory), etc. Processing cir-
`that transaction 120 is an originating transaction that creates
`cuitry in storage and processing circuitry 112 may be used to
`new currency (sometimesreferred to as a coinbase transac-
`control the operation of device 110. This processing circuitry
`tion).
`may be based on one or more general purpose processing
`circuits such as microprocessors, microcontrollers, and digi-
`tal signal processors, or dedicated processing circuits such as
`application specific integrated circuits, etc.
`[0033] Device 110 may be provided with input-output
`devices 114 such as buttons, speakers, microphones, displays,
`and other input-output devices that accommodate userinter-
`action with device 110. Input-output devices 114 may include
`communications circuitry for communicating with other
`devices (e.g., other nodes of a cryptocurrency network). Min-
`ing circuitry 116 may perform mining operations such as
`verifying cryptocurrency transactions(e.g., while sharing any
`rewards or the mining operations between multiple entities
`such as a user ofthe device). Mining circuitry 116 may record
`the rewardsin the global ledger. Mining circuitry 116 may,for
`example, be an integrated circuit chip. Electronic device 110
`may include one or moreof these chips that may be operated
`together or independently.
`[0034] Electronic device 110 may be a desktop computer, a
`server in a rack-based system, a portable electronic device
`such as a tablet computer, laptop computer, or a cellular
`telephone. These examples are merely illustrative. Mining
`circuitry 116 may be provided to any desired electronic
`device that can communicate with other nodes ofa cryptocur-
`rency network. For example, a flash drive that connects with
`acomputer maybe provided with mining circuitry 116. In this
`scenario, the mining circuitry 116 may operate to perform
`mining operations by utilizing computer resources when the
`flash drive is connected to a computer(e.g., by utilizing power
`[0042] The set of outputs 126 identifies one or more desti-
`from the computer and a network connection between the
`nation wallets and a respective amountto transfer from the
`computer and nodes of a cryptocurrency network).
`source wallet to each destination wallet. In the example of
`
`[0035] FIG.3is a diagram ofanillustrative cryptocurrency
`FIG.4, the transaction includes one destination wallet and a
`transaction 120 that may be verified using mining circuitry
`corresponding amountto be transferred from the source wal-
`such as circuitry 116 of FIG. 2. As shownin FIG.3, transac-
`let to the destination wallet. Multiple destination wallets(e.g.,
`tion 120 may include header information 122, a set of one or
`two, three, four, or more) may be listed along with corre-
`more inputs 124, and a set of one or more outputs 126.
`sponding amounts to be transferred to each destination wallet
`[0036] Header information 122 may include one or more
`from the source wallet. If desired, the source wallet identified
`header fields including informationthat helps to identify the
`by input 124 mayalso belisted as a destination wallet. For
`transaction. For example, the header fields may include a
`example, the amount to be transferred to the destination wal-
`version numberidentifying the version of the Bitcoin proto-
`let may be less than the amountidentified by the output ofthe
`col that is used. As another example, the header fields may
`previoustransaction as belongingto the source wallet. In this
`include a current timestamp and/or other information on the
`scenario, the difference between the amount of the source
`transaction.
`wallet and the transfer amount may be assigned to the source
`wallet as an additional output entry. If desired, the amount
`assigned in outputs 126 to the source wallet may be less than
`the difference between the originally stored amount and the
`transfer amount. In this scenario, the difference between
`original source amount and the sum of amounts in output 126
`mayserve as additional reward for any minerthat verifies the
`transaction (e.g., in addition to any predetermined reward
`defined by the cryptocurrency protocol).
`
`[0040] The previous transaction identifier may identify
`which transaction of the global ledger contains the source
`wallet. The previous transaction identifier may, if desired,
`identify the previous transaction TXPREVby a hash(e.g.,
`H(TXPREV)) or double-hash (e.g., H(H(TXPREV)) or
`DH(TXPREV)) of the previous transaction. The output iden-
`tifier may identify which output of the identified previous
`transaction servesas the source wallet oftransaction 130. For
`
`example, the outputs 126 of the previous transaction may be
`enumerated and the index of the source wallet may serve as
`the output identifier.
`
`[0041] Transaction 130 may be signed to help ensure
`authenticity ofthe transaction. For example,the private key of
`the source wallet may be used to encrypt transaction 130 or a
`portion of transaction 130 to generate the signature that is
`stored in transaction 130. The public key of the source wallet
`may be used by others (e.g., other network nodes) to decrypt
`the signature and confirm the authenticity of the transaction.
`
`[0037] Digital currency maybe stored in digital wallets that
`serve as sourcesor destinations of transactions. For example,
`a transaction may transfer funds from a source wallet to a
`destination wallet. Digital wallets may be formed using any
`desired data structure and may sometimes be referred to as
`digital accounts. Wallets may be identified using encryption
`schemessuch as public-key cryptography in which a public-
`private key pair is assigned to each wallet. The public key of
`a wallet may serve to publicly identify the wallet (e.g., a
`public address to which funds may be directed), whereas the
`FIG. 5 is an illustrative diagram of an originating
`[0043]
`private key may be used by the owner of the wallet to sign
`transaction(i.e., coinbase transaction) that may generate new
`transactions (e.g., thereby verifying the authenticity of the
`digital currency. As shownin FIG.5, transaction 140 includes
`information thatidentifies the transaction as a coinbase trans-
`transactions).
`[0038] Transaction 120 may identify an input 124 (e.g., a
`action. The information may include a reserved coinbase
`
`source of funds) andaset of outputs 126 (e.g., destinations). identifier 142, a block height 144, and an extra-nonce value
`17
`
`17
`
`
`
`US 2016/0125040 Al
`
`May 5, 2016
`
`146. If desired, header information 122 of FIG. 3 such as
`version numberor timestamp information maybe included in
`the transaction of FIG.5.
`
`[0044] Reserved coinbase identifier 142 may be a value that
`is reserved for coinbase transactions. Block height 144 may
`help identify where the coinbasetransaction is located within
`the global ledger (e.g., which block of a block chain that
`represents the global ledger). Extra-nonce value 146 is an
`arbitrary value that may be modified during mining opera-
`tions.
`
`whereas the transactions of block 150 may be hundreds,
`thousands, or millions of bytes.
`[0051] Difficulty value 170 is a parameter of the function
`(e.g., cryptographic puzzle) that is solved with block 150. For
`the Bitcoin protocol, the cryptographic puzzle involves gen-
`erating block header 152 such that the hash of block header
`152 is less than a predetermined value. The hash may be
`calculated using a protocol-determined hash function such as
`the Secure Hash Algorithm (SHA). The predetermined value
`may dependon difficulty value 170. For example, difficulty
`value 170 may specify how many leading zeros in a binary
`data representation are required in the hashed block header
`value.
`
`In contrast to normal transactions such as transac-
`[0045]
`tion 130 of FIG.4, coinbase transaction 140 does not provide
`a source of funds for outputs 126. Instead, coinbase transac-
`tion 140 maycreate new currency. The amount of new cur-
`[0052] Mining circuitry 116 may adjust one or more of the
`rency created is determined by the cryptocurrency protocol.
`fields in block header 152 in order to provide block header
`For example, nodes ofthe cryptocurrency network may com-
`152 with a hash value that solves the cryptographic puzzle
`municate and establish an agreed-upon rewardthat is created
`(e.g., a sufficiently small hash value). For example, the min-
`for verifying transactions. The agreed-upon reward may be
`ing circuitry may adjust the nonce value or the timestamp
`determined based on the size of the global ledger(e.g., how
`value. As another example, the mining circuitry may adjust
`many recorded blocks are in the global
`ledger). As an
`the extra-nonce value in the coinbasetransaction ofthe block,
`example, the reward for verifying and recording transactions
`which indirectly adjusts the Merkle root. Mining circuitry
`in the Bitcoin protocol may reward a numberof bitcoins
`116 may perform exhaustive search by iterating overall pos-
`(units of currency) such as 25 bitcoins. This example is
`sible solutions to the cryptographic puzzle.
`merely illustrative, as the numberof bitcoins rewarded may
`[0053] Hash functions used by the cryptographic puzzle
`be less than 25 (e.g., 12.5, 6.25, etc.) or may even be zero.
`mayoperate in sequential steps (sometimesreferred to herein
`[0046]
`In some scenarios, transactions that are verified
`as stages) on block header 152. If desired, a first portion 174
`using mining circuitry may include fees. For example, trans-
`ofblock header 152 maybe processedinafirst hashing stage,
`action 130 of FIG. 4 may assign fewerbitcoinsto destination
`whereas a second portion 176 of block header 152 may be
`wallets than contained in the source wallet. In this scenario,
`processed in a second, subsequent hashing stage. Each hash-
`the remainder mayserve as fees(e.g., an additional reward)
`ing stage may involve a numberofso-called roundsof logical
`for a miner. This additional reward may be assigned to the
`operations. Each roundof logical operations may involve the
`miner’s wallet in coinbase transaction 140 or may also be
`samelogical functions (e.g., operating on different inputs for
`partitioned by the mining circuitry between the miner’s wal-
`each round). For example, the output of a given round of
`lets and other wallets (e.g., profit-sharing wallets).
`logical operations in the hashing function may serve as an
`[0047]
`In performing mining operations to verify and
`input for a subsequent round of the logical operations. The
`record a set of transactions, mining circuitry may generate a
`logical operations mayiteratively be performedin this way to
`block to be recorded in the global ledger as shownin FIG.6.
`produce an output ofthe hashing function. For example, when
`Block 150 of FIG. 6 may include block header 152, coinbase
`a Secure Hashing Algorithm (SHA) 256 function is used,
`transaction TX0(e.g., a coinbase transaction 140), anda set of
`second portion 176 of block header 152 may be operated on
`transactions 156 to be recorded.
`by 64 rounds of SHA-256 before producing a hash output
`(e.g., an initial input to logical circuitry implementing the
`SHA-256 hashing algorithm maybe operated on by the logic
`circuitry and provided as an input to a subsequent round of
`logic circuitry identical to the previous roundoflogical cir-
`cuitry, and so on until the desired numberof rounds oflogic
`functions have been performed). This example is merely
`illustrative. The numberof rounds of hashing may depend on
`the hashing algorithm performed by mining circuitry 116.
`[0054]
`Portion 174 may include headerfields 162, previous
`block identifier 164, and a first portion of Merkle root 166,
`whereas portion 176 may include a secondportion of Merkle
`root 166, timestamp 168, difficulty value 170, and nonce
`value 172. The SHA function may produce an output value
`for thefirst stage based on portion 174 of block header 152.
`The output value ofthe first stage may serve as an input to the
`second stage of the SHA function along with portion 176 of
`block header 152. The second stage ofthe SHA function may
`produce the hash value of block header 152. The SHA func-
`tion may be implemented using dedicated hardwarecircuitry
`on mining circuitry 116.
`[0055] Merkle root 166 may be computed by generating a
`Merkle tree from the transactions of the corresponding block
`150. FIG. 8 is a diagram of an illustrative Merkle tree 180
`generated from a block including transactio