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

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