throbber
as) United States
`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

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket