`a2) Patent Application Publication (0) Pub. No.: US 2016/0125040 Al
` Kheterpaletal. (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
`or
`Related U.S. Application Data
`(60) Provisional application No. 62/073,522, filed on Oct.
`31, 2014.
`
`Publication Classification
`
`(51)
`
`Int. Cl.
`G06F 1730
`G06Q 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 subset ofthe sequential roundsfor multiple processing
`cores. If desired, the shared logic circuitry may generate
`message wordinputs for some ofthe sequential rounds across
`multiple processing cores. By sharing logic circuitry across
`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
`
`May5, 2016 Sheet 1 of 13
`
`US 2016/0125040 Al
`
`
`
`FIG. 1
`
`2
`
`
`
`Patent Application Publication
`
`May5, 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
`
`May 5, 2016 Sheet 3 of 13
`
`US 2016/0125040 Al
`
`€Old
`
`oz.—*
`
`9Z/
`
`GOl
`
`ASVENIOD
`
`HaidLNA
`
`PrOld(LATIVM(LaTIVM3OuNNOSVLSTWM
`
`
`Ori—7OZ1OFrel
`oeL-—oe
`SNOIARYd NOLIWIAIHOANI
`GaAd3S34 Zr
`
`
`LATIVMONINWHS-LISOdd=ZLNMOWY|Yaya90718
`
`NOLVNITSSOLNNOWY
`HddvadH
`(S\LATIVMSHANIN—LLNNOWY
`
`
`
`SLMALAOJOLAS|spoiAaud“9°3)SLNANI
`;2SJONNON|LHOISH
`
`SLWAlddSNISN93)
`AOUNOSAOADH
`
`NOLLOVSNVaLSSVENIOS
`
`NOLLOVSNVELLTWAHON
`YONOILOVSNVHL
`pZhZZh
`
`ONIASILNSCI“D'3)
`YoaldLLNaG!
`NOLLOVSNVELL
`
`SSIsINS
`
`(AadEyEy)
`
`4OLas
`
`(ASVENIOD
`
`NOILIVSNVeL
`
`Zh
`
`SaYNIVNOIS
`
`LAGLAO
`
`4
`
`
`
`Patent Application Publication
`
`May5, 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
`
`May5, 2016 Sheet 5 of 13
`
`US 2016/0125040 Al
`
`yy
`
`162
`
`164
`
`166
`
`|
`
`168
`
`470
`
`172
`
`| l
`
`veoot TIMESTAMP |DIFFICULTY| NONCE
`
`| | | | |
`
`
`
`eps
`
`PREVIOUS
`
`BLOCK
`
`IDENTIFIER
`
`\pe
`474
`
`
`176
`
`FIG. 7
`
`6
`
`
`
`Patent Application Publication
`
`May 5, 2016 Sheet 6 of 13
`
`US 2016/0125040 Al
`
`oa
`
`BE~
`
`37a
`
`=LOO
`
`(hyeu
`
`G
`
`BL
`
`Ze
`
`Bt
`
`\csPHYoaEYLZeeZza
`as4‘=fH/|wxpy
`ZBLéye8h
`
`3Ola
`
`
`(pxUHO(exXDHG
`
`(2XLHdfauxbHa\|(oxHa
`
`|.
`
`7
`
`
`
`
`
`Patent Application Publication
`
`May5, 2016 Sheet 7 of 13
`
`US 2016/0125040 Al
`
`yo
`
`|K
`
`a| _
`
`t
`[202
`th
`
`8
`
`
`
`Patent Application Publication
`
`May5, 2016 Sheet 8 of 13
`
`US 2016/0125040 Al
`
`yo.
`
`CONTROL
`CIRCUITRY
`
`CIRCUITRY
`
`OFF-CHIP
`PROCESSING
`
`9
`
`
`
`Patent Application Publication
`
`May5, 2016 Sheet 9 of 13
`
`US 2016/0125040 Al
`
`220
`
`224
`
`|
`
`260
`
`214
`
`COMMUNICATIONS
`MODULE
`
`STORAGE
`CIRCUITRY
`
`7XX
`INITIAL
`:
`-
`|W
`|
`MESSAGE {512
`256-4 as
`
`[255-0]|4 INPUT
`
`
`
`FIRST HASHING MODULE
`(E.G., SHA-256 MODULE)
`
`FIRST HASH | 956 Ho
`
`PADDING CIRCUITRY
`
`constant MESSAGE} 512
`FACTORS
`j etre
`
`SECOND HASHING MODULE
`{E.G., SHA-256 MODULE)
`
`DIFFICULTY
`
`SECOND | He
`HASH | [255:0]
`OUTPUT
`
`2 56
`
`DIFFICULTY COMPARISON
`CIRCUITRY
`
`224
`
`| FOUND SIGNAL
`
`FIG. 11
`
`10
`
`10
`
`
`
`Patent Application Publication
`
`May5, 2016 Sheet 10 of 13
`
`US 2016/0125040 Al
`
`i 298
`
`308
`
`Ch(E, F, G) = (E*F) © GEaG)
`
`Ma(A, B, C) = (A*B) @ (AaC) @ (BaC)
`
`ZO(A) = (A>>>2) @ (A>>>13) @ (A>>>22)
`
`L1(E) = (E>>>6) @ (E>>>11) @ (E>>>25)
`
`FIG. 12
`
`11
`
`11
`
`
`
`US 2016/0125040 Al
`
`FIG.13
`
`402
`
`402
`
`402
`
`Patent Application Publication
`
`May5, 2016 Sheet 11 of 13
`
`12
`
`12
`
`
`
`Patent Application Publication
`
`May5, 2016 Sheet 12 of 13
`
`US 2016/0125040 Al
`
`260
`
`SHARED
`GOMMUNICATIONS MODULE
`
`SHARED
`MEMORY
`
`264
`
`| | | |
`
`WO, WT, W2, W3
`
`SHARED MESSAGE SCHEDULING LOGIC
`
`| |
`
`422
`
`424
`
`424
`
`| | |
`
`|
`PARTIALLY SHARED
`PARTIALLY SHARED
`
`MESSAGE SCHEDULING MESSAGE SCHEDULING||
`LaGiIC
`LOGIC
`
`
`MESSAGE
`
`MESSAGE MESSAGE
`
`| | | | | | |
`
`426
`
`426.
`
`426
`
`426
`
`| | |
`
`| | |
`
`—
`||UNSHARED||UNSHARED
`UNSHARED||UNSHARED
`MESSAGE
`
`298-
`™
`
`PARTIALLY SHARED
`HASH SCHEDULING
`LOGIC
`
`PARTIALLY SHARED
`HASH SCHEDULING
`LOGIC
`
`UNSHARED||UNSHARED UNSHARED||UNSHARED
`
`HASH
`HASH
`HASH
`HASH
`
`LOGIC
`
`LOGIC
`
`LOGIC
`
`LOGIC
`
`13
`
`13
`
`
`
`Patent Application Publication
`
`May 5, 2016 Sheet 13 of 13
`
`US 2016/0125040 Al
`
`220-0
`
`220-4
`
`220-2
`
`220-3
`
`
`
` @ &ieaacnF>HayOs%&Ooa
`
`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 more particu-
`larly, to mining digital currencies.
`[0003] Digital currencies serve as a digital medium of
`exchange in whichthe digital currencies may be transferred in
`exchange for goods and services. Crypto-currencies are
`examples ofdigital 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 and distributionofthe bitcoin cryptocurrency is gov-
`erned by consensus amonga peer-to-peer network. Thenet-
`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 dedicated cir-
`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 governsthe 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 each ofthe 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, andthird processing cores to
`complete the cryptographic function in parallel. The control
`
`circuitry may control the processing cores to complete the
`cryptographic function over respective first, second, and third
`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 second pro-
`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 words received from message scheduling circuitry. The
`sharedlogic 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 messages for cach 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 onfirst, second, and
`third messagesreceived for the first, 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. Thefirst, 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 of the 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 basedonthefirst 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 roundsof the cryptographic hash-
`ing algorithm (e.g., rounds that are subsequent to those per-
`formed using the selected message word generated by the
`shared logic circuitry). If desired, unshared logic circuitry
`may be formed onthefirst 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 ofthe
`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 combinedwith 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 generatea first
`hash value based on an input value and a first message word
`received from message scheduling circuitry. A second round
`
`15
`
`15
`
`
`
`US 2016/0125040 Al
`
`May 5, 2016
`
`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 based atleast 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 roundandthefinal 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 andthe following detailed descrip-
`tion.
`
`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. 131s anillustrative diagram of message sched-
`uling circuitry that may generate message words based ona
`received message and that may provide the message wordsto
`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 miningcircuitry of the type
`shown in FIGS. 10-13 may share message scheduling logic
`and hash scheduling logic to reduce chip area consumption in
`accordance with an embodimentofthe present invention.
`[0028]
`FIG. 15 is an illustrative diagram showing how dif-
`BRIEF DESCRIPTION OF THE DRAWINGS
`ferent rounds of hashing logic may be shared byaset of
`processing cores on mining circuitry, may be partially 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.
`
`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] EIG. 2 is an illustrative diagram of an electronic
`device that may include cryptographic hashing circuitry in
`accordance with an embodimentofthe 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 embodimentofthe 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 embodiment of 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 recordedin a global ledger in accor-
`dance with an embodimentofthe 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.
`
`FIG. 8 is an illustrative Merkle tree that may be
`[0021]
`calculated by mining circuitry from a set of transactions in
`solving a cryptographic puzzle in accordance with an
`embodimentof the present invention.
`[0022]
`FIG. 9 is an illustrative block chain that may be
`maintained by a network ofnodesas a global ledgerofdigital
`currency transactions in accordance with an embodimentof
`the present invention.
`[0023]
`FIG. 10is an illustrative diagram ofmining circuitry
`including control circuitry and multiple processing cores for
`performing cryptographic hashing functions in parallel on
`corresponding portions of a search space in accordance with
`an embodimentofthe present invention.
`[0024]
`FIG. 11 is an illustrative diagram of a processing
`core in mining circuitry that may perform rounds of crypto-
`graphic hashing (e.g., SHA-256 hashing) and that may share
`
`DETAILED DESCRIPTION
`
`[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 suchasdigital 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 nodesvia 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
`wired or wireless network technologies and network 100 may
`include any desired number of nodes(e.g., tens, hundreds,
`thousands, millions, or more).
`[0031] Nodes 10 may communicate over paths 12 accord-
`ing to the Bitcoin protocol in maintaining the cryptocurrency.
`For example, nodes 10 may communicate to maintain a glo-
`bal ledgerofall official transactions. Each node 10 maystore
`a copy of the global ledger (e.g., a complete copy or only a
`partial copy). Transactions addedto the global ledger by each
`node 10 may be verified by other nodes 10 to help ensure
`validity of the ledger.
`[0032]
`FIG. 2 is an illustrative diagram of an electronic
`device 110 that may serve as a node in a peer-to-peer network
`(e.g., as anode 10 of FIG. 1). As shownin FIG.2, device 110
`may include storage and processing circuitry 112. Storage
`and processing circuitry 112 may include storage such as hard
`
`16
`
`16
`
`
`
`US 2016/0125040 Al
`
`May 5, 2016
`
`disk drive storage, nonvolatile memory (e.g., flash memory or
`other electrically-programmable-read-only memory config-
`ured to form a solid state drive), volatile memory (e.g., static
`or dynamic random-access-memory), etc. Processing cir-
`cuitry in storage and processing circuitry 112 may be used to
`control the operation of device 110. This processing circuitry
`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 suchas buttons, speakers, microphones, displays,
`and other input-output devices that accommodateuserinter-
`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-
`[0040] The previous transaction identifier may identify
`ing circuitry 116 may perform mining operations such as
`which transaction of the global ledger contains the source
`verifying cryptocurrencytransactions(e.g., while sharing any
`wallet. The previous transaction identifier may, if desired,
`rewards or the mining operations between multiple entities
`
`such as a userofthe device). Mining circuitry 116 may record identify the previous transaction TXPREV byahash(e.g.,
`the rewardsin the global ledger. Mining circuitry 116 may,for
`H(TXPREV)) or double-hash (e.g., H(H(TXPREV)) or
`example, be an integrated circuit chip. Electronic device 110
`DH(TXPREV))ofthe previoustransaction. The output iden-
`may include one or more of these chips that may be operated
`tifier may identify which output of the identified previous
`transaction serves as the source wallet oftransaction 130. For
`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 may be provided with mining circuitry 116. In this
`scenario, the mining circuitry 116 may operate to perform
`mining operations byutilizing computer resources when the
`flash drive is connected to a computer(e.g., by utilizing power
`from the computer and a network connection between the
`computer and nodes of a cryptocurrency network).
`[0035] FIG.3 is a diagram ofan illustrative cryptocurrency
`transaction 120 that may be verified using mining circuitry
`such as circuitry 116 of FIG. 2. As shownin FIG.3, transac-
`tion 120 may include header information 122, a set of one or
`more inputs 124, and a set of one or more outputs 126.
`[0036] Header information 122 may include one or more
`headerfields including information that helps to identify the
`transaction. For example, the header fields may include a
`version numberidentifying the version of the Bitcoin proto-
`col that is used. As another example, the header fields may
`include a current timestamp and/or other information on the
`transaction.
`
`[0037] Digital currency maybestored in digital wallets that
`serve as sources or 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 maybe directed), whereas the
`private key may be used by the ownerof the wallet to sign
`transactions (e.g., thereby verifying the authenticity of the
`transactions).
`[0038] Transaction 120 may identify an input 124 (e.g., a
`source of funds) and a set of outputs 126 (e.g., destinations).
`
`FIG. 5 is an illustrative diagram of an originating
`[0043]
`transaction(i.e., coinbase transaction) that may generate new
`digital currency. As shownin FIG.5, transaction 140 includes
`informationthatidentifies the transaction as a coinbase trans-
`action. The information may include a reserved coinbase
`identifier 142, a block height 144, and an extra-nonce value
`
`17
`
`The inputs and outputs may, for example, be digital wallets in
`which currencyis stored. The inputs mayrefer to an output of
`a previous transaction as a source of funding or mayidentify
`that transaction 120 is an originating transaction that creates
`new currency (sometimes referred to as a coinbase transac-
`tion).
`
`FIG. 41s a diagram ofanillustrative 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 numberor timestamp information may be
`includedin the transaction of FIG.5.
`
`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 encrypttransaction 130 ora
`portion of transaction 130 to generate the signature that is
`stored in transaction 130. The public key of the source wallet
`maybe usedby others(e.g., other network nodes) to decrypt
`the signature and confirm the authenticity of the transaction.
`
`Theset of outputs 126 identifies one or more desti-
`[0042]
`nation wallets and a respective amount to transfer from the
`source wallet to each destination wallet. In the example of
`FIG.4, the transaction includes one destination wallet and a
`corresponding amountto be transferred from the source wal-
`let to the destination wallet. Multiple destination wallets (e.g.,
`two, three, four, or more) may belisted along with corre-
`sponding amountsto betransferred to each destination wallet
`from the source wallet. If desired, the source wallet identified
`by input 124 may also be listed as a destination wallet. For
`example, the amountto be transferred to the destination wal-
`let may be less than the amountidentified by the output ofthe
`previous transaction as belongingto the source wallet. In this
`scenario, the difference between the amount of the source
`wallet and the transfer amount maybe assignedto the source
`wallet as an additional output entry. If desired, the amount
`assigned in outputs 126 to the source wallet maybe 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 miner that verifies the
`transaction (e.g., in addition to any predetermined reward
`defined by the cryptocurrency protocol).
`
`17
`
`
`
`US 2016/0125040 Al
`
`May 5, 2016
`
`146. If desired, header information 122 of FIG. 3 such as
`version numberor timestamp information may be included in
`the transaction of FIG.5.
`
`whereas the transactions of block 150 may be hundreds,
`thousands, or millions of bytes.
`[0051] Difficulty value 170 is a parameter of the function
`[0044] Reserved coinbaseidentifier 142 may beavalue that
`(e.g., cryptographic puzzle) that is solved with block 150. For
`is reserved for coinbase transactions. Block height 144 may
`the Bitcoin protocol, the cryptographic puzzle involves gen-
`help identify where the coinbase transactionis located within
`erating block header 152 such that the hash of block header
`the global ledger (e.g., which block of a block chain that
`152 is less than a predetermined value. The hash may be
`represents the global ledger). Extra-nonce value 146 is an
`calculated using a protocol-determined hash function such as
`arbitrary value that may be modified during mining opera-
`the Secure Hash Algorithm (SHA). The predetermined value
`tions.
`may depend on difficulty value 170. For example, difficulty
`value 170 may specify how manyleading 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-
`rency created is determined by the cryptocurrencyprotocol.
`For example, nodes ofthe cryptocurrency network may com-
`municate and establish an agreed-upon reward thatis created
`for verifying transactions. The agreed-upon reward may be
`determined based on the size of the global ledger(e.g., how
`many recorded blocks are in the global
`ledger). As an
`example, the reward for verifying and recording transactions
`in the Bitcoin protocol may reward a numberof bitcoins
`(units of currency) such as 25 bitcoins. This example is
`merely illustrative, as the numberof bitcoins rewarded may
`beless than 25 (e.g., 12.5, 6.25, etc.) or may even be zero.
`[0046]
`In some scenarios, transactions that are verified
`using mining circuitry may include fees. For example, trans-
`action 130 of FIG. 4 may assign fewerbitcoinsto destination
`wallets than contained in the source wallet. In this scenario,
`the remainder may serve as fees (e.g., an additional reward)
`for a miner. This additional reward may be assigned to the
`miner’s wallet in coinbase transaction 140 or may also be
`partitioned by the mining circuitry between the miner’s wal-
`lets and other wallets (e.g., profit-sharing wallets).
`[0047]
`In performing mining operations to verify and
`record a set of transactions, mining circuitry may generate a
`block to be recordedin the global ledger as shownin FIG.6.
`Block 150 of FIG. 6 may include block header 152, coinbase
`transaction TX0(e.g., a coinbasetransaction 140), anda set of
`transactions 156 to be recorded.
`
`[0048] Block header 152 may include information that
`identifies block 150 and additional information generated by
`the mining circuitry to complete a function such as informa-
`tion satisfying a cryptographic puzzle. The additional infor-
`mation may be generated to solve the function (e.g., puzzle)
`for a given set of function inputs that are at least partially
`determined by block header 152 and for a desired output or
`range of outputs. FIG. 7 is a diagram ofan illustrative block
`header 152. As shown in FIG. 7, block header 152 may
`include header fields 162, a previous block identifier 164, a
`Merkle root 166, a timestamp 168, a difficulty value 170, and
`a nonce value 172.
`
`[0049] Header fields 162 may include any desired header
`fields such as a version numberofthe Bitcoin protocol. Pre-
`vious blockidentifier 164 may identify a previous block in the
`global ledger(e.g., the global ledger may be a chain of blocks
`152 in which each block references a previous block in the
`chain). For example, the previous block identifier may be a
`hash of the block header of the previous block.
`[0050] Merkle root 166 may be generated from the trans-
`actions of block 150 including coinbase transaction 140 and
`the set of transactions 156. Merkle root 166 may provide a
`compact representation of the transactions in block 150. For
`example, Merkle root 166 may be a 256-bit (32 Byte) value,
`
`[0052] Mining circuitry 116 may adjust one or more of the
`fields in block header 152 in order to provide block header
`152 with a hash value that solves the cryptographic puzzle
`(e.g., a sufficiently small hash value). For example, the min-
`ing circuitry may adjust the nonce value or the timestamp
`value. As another example, the mining circuitry may adjust
`the extra-noncevaluein the coinbasctransaction ofthe block,
`which indirectly adjusts the Merkle root. Mining circuitry
`116 may perform exhaustive search by iterating over all pos-
`sible solutions to the cryptographic puzzle.
`[0053] Hash functions used by the cryptographic puzzle
`mayoperate in sequential steps (sometimesreferred to herein
`as stages) on block header 152. If desired,a first portion 174
`ofblock header 152 maybe processedina first hashing stage,
`whereas a second portion 176 of block header 152 may be
`processed in a second, subsequent hashing stage. Each hash-
`ing stage may involve a numberofso-called roundsof logical
`operations. Each roundof logical operations may involve the
`samelogical functions (e.g., operating on different inputs for
`each round). For example, the output of a given round of
`logical operations in the hashing function may serve as an
`input for a subsequent round ofthe logical operations. The
`logical operations mayiteratively be performedin this way to
`produce an output ofthe hashing function. For example, when
`a Secure Hashing Algorithm (SHA) 256 function is used,
`second portion 176 of block header 152 may be operated on
`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 may be operated on bythe logic
`circuitry and provided as an input to a subseque