TWI610188B - 具有共用處理邏輯之數位貨幣採礦電路 - Google Patents
具有共用處理邏輯之數位貨幣採礦電路 Download PDFInfo
- Publication number
- TWI610188B TWI610188B TW104134986A TW104134986A TWI610188B TW I610188 B TWI610188 B TW I610188B TW 104134986 A TW104134986 A TW 104134986A TW 104134986 A TW104134986 A TW 104134986A TW I610188 B TWI610188 B TW I610188B
- Authority
- TW
- Taiwan
- Prior art keywords
- hash
- circuit
- message
- logic
- shared
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2465—Query processing support for facilitating data mining operations in structured databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/951—Indexing; Web crawling techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/04—Payment circuits
- G06Q20/06—Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/30—Payment architectures, schemes or protocols characterised by the use of specific devices or networks
- G06Q20/36—Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
- G06Q20/367—Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes
- G06Q20/3678—Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes e-cash details, e.g. blinded, divisible or detecting double spending
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3827—Use of message hashing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/30—Compression, e.g. Merkle-Damgard construction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
一種積體電路可具備加密貨幣採礦能力。該積體電路可包含控制電路及並行完成一安全雜湊演算法256(SHA-256)函數之若干個處理核心。可在多個處理核心之間共用邏輯電路。每一處理核心可基於一雜湊輸入及訊息字輸入而執行密碼編譯雜湊運算之順序回合。該控制電路可控制該等處理核心以在不同搜尋空間內完成該SHA-256函數。該共用邏輯電路可針對多個處理核心執行該等順序回合之一子集。若期望,則該共用邏輯電路可跨越多個處理核心產生用於該等順序回合中之某些回合之訊息字輸入。藉由跨越核心共用邏輯電路,可相對於其中僅使用專用邏輯形成該等核心之情景改良晶片面積耗用及功率效率。
Description
此申請案主張2015年9月25日提出申請之第14/866,102號美國專利申請案及2014年10月31日提出申請之第62/073,522號臨時專利申請案之優先權,該等專利申請案據此以其全文引用方式併入本文中。
此係關於數位貨幣,且更特定而言,係關於採礦數位貨幣。
數位貨幣用作一數位交換媒體,其中該等數位貨幣可經轉移以換取貨物及服務。加密貨幣(cryptocurrency)係數位貨幣之實例,其中密碼編譯學管理價值之創造及交換。一加密貨幣之一實例係由比特幣協定管理之比特幣加密貨幣。此與(舉例而言)由一中央機構管理之傳統交換媒體形成對照。
比特幣協定定義一系統,其中藉由一同級間網路之間的共識管理比特幣加密貨幣之創造及分佈。該網路維持一公共分類帳,其中網路之成員經由密碼編譯學驗證並記錄新交易。驗證並記錄加密貨幣交易(諸如比特幣加密貨幣中之交易)之操作有時稱為採礦,此乃因每一採礦操作之完成通常用新創造之加密貨幣(例如,比特幣)獎勵採礦者。經驗證交易及新創造之比特幣記錄在公共分類帳中。公共分類帳用作一官方交易歷史。可自公共分類帳判定由任一實體擁有之加密貨幣金額。
比特幣採礦操作涉及識別一密碼編譯謎之一解,其中待驗證之
交易形成謎參數之部分。通常經由蠻力技術(例如,跨越所有可能解執行之對一謎解之一詳盡搜尋)執行比特幣採礦操作。密碼編譯謎之難度已導致使用經特別設計以用於比特幣採礦之專用電路。此專用電路設計、購置及操作起來可係昂貴的。
一種積體電路可具備加密貨幣採礦能力。該積體電路可包含藉由以下方式採礦數位加密貨幣之處理電路:根據管理該數位加密貨幣之一協定完成一密碼編譯函數。該積體電路可包含控制電路及並行完成該密碼編譯函數之若干個處理核心。作為一實例,該控制電路可控制該等處理核心以基於一比特幣協定而並行完成一安全雜湊演算法256(SHA-256)函數以用於產生比特幣獎勵。
舉例而言,該積體電路可包含第一、第二及第三處理核心。共用邏輯電路可在該等第一、第二及第三處理核心中之每一者之間共用。該共用邏輯電路可形成於由該等第一、第二及/或第三處理核心佔據的該積體電路之一區上。該控制電路可將控制信號提供至該共用邏輯電路以控制該等第一、第二及第三處理核心以並行完成該密碼編譯函數。該控制電路可控制該等處理核心以在各別第一、第二及第三不同搜尋空間內完成該密碼編譯函數。若期望,則該共用邏輯電路可完成對應於該等搜尋空間之間的一重疊的該密碼編譯函數之一部分。
舉例而言,該第一處理核心可包含一第一密碼編譯雜湊電路,然而該第二處理核心包含一第二密碼編譯雜湊電路且該第三處理核心包含一第三密碼編譯雜湊電路。該等雜湊電路中之每一者可包含基於自該控制電路接收之一初始雜湊值及自訊息排程電路接收之訊息輸入字而執行一密碼編譯雜湊演算法之密碼編譯雜湊邏輯之一回合序列。該共用邏輯電路可針對至少該等第一、第二及第三處理核心執行該密碼編譯雜湊演算法之順序回合(例如,一或多個領先回合)之一子集。
訊息排程電路可自該控制電路接收用於該等處理核心中之每一者之不同各別訊息。該訊息排程電路可基於該等所接收訊息而產生該等訊息輸入字。根據以上配置中之任一者,該共用邏輯電路可形成該訊息排程電路之一部分。該共用邏輯電路可基於經接收分別用於該等第一、第二及第三處理核心之第一、第二及第三訊息而產生一選定訊息輸入字。該共用邏輯電路可將該選定訊息輸入字提供至該等第一、第二及第三處理核心中之每一者。該等第一、第二及第三處理核心可基於該選定訊息輸入字而執行該密碼編譯雜湊演算法之該等順序回合中之至少一者。
若期望,則部分共用邏輯電路可由該等第一及第二處理核心而非該第三處理核心共用。該部分共用邏輯電路之一輸入可耦合至該共用邏輯電路之一輸出。該部分共用邏輯電路可基於該等第一及第二訊息而產生一額外訊息字且可將該額外訊息字提供至該等第一及第二處理核心(例如,而不將該額外訊息字提供至該第三核心)以用於執行該密碼編譯雜湊演算法之該等順序回合(例如,在使用由該共用邏輯電路產生之選定訊息字執行之彼等回合之後之回合)中之至少一者。若期望,則非共用邏輯電路可形成於該第一處理核心上而非該等第二及第三處理核心上。該非共用邏輯電路之一輸入可耦合至該部分共用邏輯電路之一輸出且該非共用邏輯電路可經組態以產生用於該第一處理核心之該等順序回合中之至少一者之一訊息字。
該第一處理核心可基於由該非共用邏輯電路產生之該訊息字中之至少一者而產生一第一雜湊輸出值。該雜湊輸出值可在加法器電路處與一初始雜湊值組合以產生一最終雜湊值。該最終雜湊值可提供至資料填補電路或難度比較電路以用於進一步處理。
根據以上配置中之任一者,密碼編譯雜湊電路之一第一回合可在一給定處理核心上實施且
可基於一輸入值及自訊息排程電路接收之一第一訊息字而產生一第一雜湊值。在兩個不同處理核心上實施的密碼編譯雜湊電路之一第二回合可自密碼編譯雜湊電路之該第一回合接收該第一雜湊值且可基於該第一雜湊值及一第二訊息字而產生第二及第三雜湊值。密碼編譯雜湊電路之一最終回合可至少部分地基於該第二雜湊值及一第三訊息字而產生一第一雜湊輸出值且可至少部分地基於該第三雜湊值及該第三訊息字而產生一第二雜湊輸出值。舉例而言,密碼編譯雜湊電路之若干個中間順序回合可插置於該第二回合與該最終回合之間。藉由在該等處理核心當中共用邏輯電路,可相對於其中僅使用專用邏輯形成該等處理核心之情景改良晶片面積耗用及功率效率。
依據附圖及以下詳細說明將更明瞭進一步特徵。
10‧‧‧節點
12‧‧‧路徑
100‧‧‧同級間網路/網路
110‧‧‧電子裝置/裝置
112‧‧‧處理與儲存電路
114‧‧‧輸入-輸出裝置
116‧‧‧採礦電路/電路/積體電路/裝置
120‧‧‧加密貨幣交易/交易
122‧‧‧標頭資訊
124‧‧‧輸入/標頭欄位
126‧‧‧輸出/標頭欄位
130‧‧‧交易
140‧‧‧交易/幣基交易
142‧‧‧經保留幣基識別符
144‧‧‧區塊高度
146‧‧‧超臨時值
150‧‧‧區塊/新區塊
150'‧‧‧起源區塊/區塊
152‧‧‧區塊標頭/區塊鏈
156‧‧‧交易集合
162‧‧‧標頭欄位
164‧‧‧先前區塊識別符/識別符
166‧‧‧默克爾根
168‧‧‧時間戳記/時間戳記欄位
170‧‧‧難度值
172‧‧‧臨時值/臨時欄位
174‧‧‧第一部分/部分
176‧‧‧第二部分/部分
180‧‧‧默克爾樹/樹
182‧‧‧葉節點
184‧‧‧非葉節點
186‧‧‧虛線/邊緣/默克爾樹邊緣
188‧‧‧部分
190‧‧‧部分/樹部分
200‧‧‧區塊鏈
202‧‧‧箭頭
204‧‧‧分支
206‧‧‧分支
212‧‧‧輸入-輸出電路
214‧‧‧輸入-輸出接腳/接腳/輸入/輸出埠
215‧‧‧處理電路/晶片外電路/晶片外處理電路/外部電路/電路
216‧‧‧控制電路/控制器
218‧‧‧核心區/區/電路/晶片
220‧‧‧核心電路/核心/電路/第一核心/第二核心
220-0‧‧‧第一核心/核心/核心區
220-1‧‧‧第二核心/核心/核心區
220-2‧‧‧第三核心/核心/核心區
220-3‧‧‧第四核心/核心/核心區
224‧‧‧路徑/線路
256‧‧‧安全雜湊演算法
260‧‧‧通信模組/共同通信模組/共用通信模組
262‧‧‧第一雜湊模組/第一SHA-256模組/雜湊模組
264‧‧‧儲存電路
266‧‧‧第二雜湊模組/第二SHA-256模組/雜湊模組/雜湊模組
268‧‧‧填補電路
270‧‧‧難度比較電路
272‧‧‧輸入/難度值
298‧‧‧SHA-256雜湊電路/雜湊排程邏輯/雜湊排程電路/雜湊/SHA-256雜湊排程/SHA-256雜湊排程邏輯/雜湊邏輯/雜湊電路/共用雜湊排程邏輯
300‧‧‧儲存電路/暫存器電路/暫存器/輸入暫存器/輸入暫存器電路
302‧‧‧儲存電路/暫存器電路/輸出暫存器/輸出暫存器電路/暫存器
304‧‧‧加法器電路/加法器
306‧‧‧SHA-256雜湊邏輯/SHA-256邏輯/邏輯/邏輯電路/電路
398‧‧‧訊息排程邏輯/訊息排程電路/電路/記憶體排程邏輯/訊息排程
400‧‧‧暫存器
402‧‧‧加法器電路/加法器
404‧‧‧路徑
406‧‧‧邏輯
422‧‧‧共用訊息排程邏輯/訊息排程邏輯
424‧‧‧部分共用訊息排程邏輯/部分共用訊息排程邏輯電路/第一電路/第二電路/部分地共用邏輯/部分地共用電路/部分共用訊息排程電路
426‧‧‧非共用訊息排程邏輯/非共用訊息邏輯/邏輯
428‧‧‧共用雜湊排程邏輯/共用邏輯/共用雜湊電路
430‧‧‧部分共用雜湊排程邏輯電路/部分地共用邏輯/部分地共用雜湊邏輯電路/部分地共用雜湊電路/部分共用雜湊排程邏輯
432‧‧‧非共用雜湊排程邏輯電路/非共用雜湊電路/非共用雜湊排程邏輯
440‧‧‧加法器電路
442‧‧‧區
Hi‧‧‧雜湊值/初始雜湊輸入/初始雜湊/256位元雜湊輸入/雜湊輸入/雜湊輸入值/初始雜湊值
HF‧‧‧第二雜湊輸入/值/雜湊輸出值/最終雜湊輸出
HO‧‧‧雜湊值/葉值/第一雜湊輸出/雜湊輸入值/雜湊輸出/第一雜湊輸入值
H0 0‧‧‧第一值
H0 1‧‧‧第二值
H0 2‧‧‧第三值
H0 3‧‧‧第四值
Kt‧‧‧SHA-256恆定值/恆定值
W‧‧‧訊息輸入/輸入訊息/訊息
W0‧‧‧第一訊息/訊息/字/輸入訊息
W1‧‧‧第二訊息/訊息/字/輸入訊息
W2‧‧‧第三訊息/訊息/字/輸入訊息
W3‧‧‧第四訊息/訊息/字/輸入訊息
Wt‧‧‧部分/32位元輸入訊息字/字/輸入字/訊息輸入字/32位元字/第一字/第二字/最高有效32位元字/32位元輸入字/第一最高有效32位元字/訊息字/訊息/字輸入
圖1係根據本發明之一實施例之具有可用於採礦數位貨幣之密碼編譯雜湊電路之一節點網路之一說明性圖式。
圖2係根據本發明之一實施例之可包含密碼編譯雜湊電路之一電子裝置之一說明性圖式。
圖3係根據本發明之一實施例之可使用採礦電路驗證之一說明性數位貨幣交易。
圖4係根據本發明之一實施例之可使用在採礦電路上運行之密碼編譯雜湊電路驗證之在源錢包與目的地錢包之間的一說明性數位貨幣交易。
圖5係根據本發明之一實施例之其中一獎勵金額之一部分指派給不同錢包之一說明性幣基(coinbase)交易。
圖6係根據本發明之一實施例之可藉由採礦電路產生且記錄在一全球分類帳中之一說明性區塊。
圖7係根據本發明之一實施例之在對一密碼編譯謎求解中可由採
礦電路產生之一說明性區塊標頭。
圖8係根據本發明之一實施例之在對一密碼編譯謎求解中可由採礦電路依據一交易集合計算之一說明性默克爾(Merkle)樹。
圖9係根據本發明之一實施例之可由一節點網路維持為數位貨幣交易之一全球分類帳之一說明性區塊鏈。
圖10係根據本發明之一實施例之包含控制電路及用於在一搜尋空間之對應部分上並行執行密碼編譯雜湊函數之多個處理核心的採礦電路之一說明性圖式。
圖11係根據本發明之一實施例之可執行密碼編譯雜湊(例如,SHA-256雜湊)之回合且可與採礦電路中之鄰近核心共用邏輯的採礦電路中之一處理核心之一說明性圖式。
圖12係根據本發明之一實施例之可對一輸入雜湊值及自訊息排程電路接收之一字執行一雜湊排程之一回合(例如,SHA-256雜湊之一回合)以產生一雜湊輸出的雜湊邏輯之一回合之一說明性圖式。
圖13係根據本發明之一實施例之可基於一所接收訊息而產生訊息字且可將訊息字提供至圖12中所展示之類型之雜湊邏輯之回合以用於產生一雜湊輸出的訊息排程電路之一說明性圖式。
圖14係根據本發明之一實施例之展示圖10至圖13中所展示之類型之採礦電路上之鄰近處理核心可如何共用訊息排程邏輯及雜湊排程邏輯以減少晶片面積耗用的一說明性圖式。
圖15係根據本發明之一實施例之展示基於經提供用於處理核心中之每一者之訊息中之共性(例如,由該等核心中之每一者使用之搜尋空間中之共性),雜湊邏輯之不同回合可如何由採礦電路上之一處理核心集合共用、可如何由該處理核心集合之一子集部分地共用及/或可如何形成於相異處理核心上之一說明性圖式。
本發明係關於諸如加密貨幣之數位貨幣之採礦。本文中所闡述之採礦電路及採礦操作可用於任何數位交換媒體,諸如數位貨幣、積分、獎勵或得分。
圖1係可根據比特幣協定操作之一同級間網路100之一說明性圖式。網路100包含經由路徑12耦合至其他節點之節點10。節點10可係電子裝置,諸如桌上型電腦、膝上型電腦、蜂巢式電話、伺服器或實施比特幣協定之其他電子裝置。每一節點10可經由路徑12與網路100之其他節點通信。路徑12可(舉例而言)包含將節點10耦合至其他節點之網路路徑,諸如網路電纜及包轉發裝置(例如,交換器、路由器等)。此實例僅係說明性的。網路100之節點10可經由諸如有線或無線網路技術之任何所要根本通信技術耦合且網路100可包含任何所要數目個節點(例如,數十個、數百個、數千個、數百萬個或更多)。
節點10可經由路徑12根據維持加密貨幣之比特幣協定通信。舉例而言,節點10可通信以維持所有官方交易之一全球分類帳。每一節點10可儲存全球分類帳之一副本(例如,一完整副本或僅一部分副本)。藉由每一節點10添加至全球分類帳之交易可由其他節點10驗證以幫助確保分類帳之有效性。
圖2係可用作一同級間網路中之一節點(例如,用作圖1之一節點10)之一電子裝置110之一說明性圖式。如圖2中所展示,裝置110可包含儲存與處理電路112。儲存與處理電路112可包含儲存器,諸如硬碟驅動儲存器、非揮發性記憶體(例如,快閃記憶體或經組態以形成一固態磁碟機之其他電可程式化唯讀記憶體)、揮發性記憶體(例如,靜態或動態隨機存取記憶體)等。儲存與處理電路112中之處理電路可用於控制裝置110之操作。此處理電路可基於一或多個一般用途處理電路(諸如微處理器、微控制器及數位信號處理器)或專用處理電路(諸如特殊應用積體電路)等。
裝置110可具備輸入-輸出裝置114,諸如按鈕、揚聲器、麥克風、顯示器及適應與裝置110之使用者交互之其他輸入-輸出裝置。輸入-輸出裝置114可包含用於與其他裝置(例如,一加密貨幣網路之其他節點)通信之通信電路。採礦電路116可執行諸如驗證加密貨幣交易之採礦操作(例如,在共用任何獎勵時或諸如裝置之一使用者之多個實體之間的採礦操作)。採礦電路116可將獎勵記錄在全球分類帳中。舉例而言,採礦電路116可係一積體電路晶片。電子裝置110可包含可一起或獨立地操作之此等晶片中之一或多者。
電子裝置110可係一桌上型電腦、一基於機架之系統中之一伺服器、一可攜式電子裝置(諸如一平板電腦、膝上型電腦或一蜂巢式電話)。此等實例僅係說明性的。採礦電路116可提供至可與一加密貨幣網路之其他節點通信之任何所要電子裝置。舉例而言,與一電腦連接之一快閃磁碟機可具備採礦電路116。在此情景中,採礦電路116可操作以藉由在快閃磁碟機連接至一電腦時利用電腦資源(例如,藉由利用來自電腦之電力及電腦與一加密貨幣網路之節點之間的一網路連接)而執行採礦操作。
圖3係可使用諸如圖2之電路116之採礦電路驗證之一說明性加密貨幣交易120之一圖式。如圖3中所展示,交易120可包含標頭資訊122、一或多個輸入124之一集合及一或多個輸出126之一集合。
標頭資訊122可包含一或多個標頭欄位,該等標頭欄位包含幫助識別交易之資訊。舉例而言,該等標頭欄位可包含識別所使用之比特幣協定之版本之一版本號碼。作為另一實例,該等標頭欄位可包含一當前時間戳記及/或關於交易之其他資訊。
數位貨幣可儲存於用作交易源或交易目的地之數位錢包中。舉例而言,一交易可將資金自一源錢包轉移至一目的地錢包。數位錢包可使用任何所要資料結構形成且可有時稱為數位帳戶。可使用諸如公
開金鑰密碼編譯學之加密方案識別錢包,其中一公開-私有金鑰對指派給每一錢包。一錢包之公開金鑰可用於公開地識別該錢包(例如,資金可指向之一公開位址),然而私有金鑰可由錢包之擁有者用來對交易進行簽章(例如,藉此驗證交易之真實性)。
交易120可識別一輸入124(例如,一資金源)及輸出126(例如,目的地)之一集合。該等輸入及輸出可(舉例而言)係其中儲存有貨幣之數位錢包。該等輸入可將一先前交易之一輸出稱為一資金源或可識別交易120係創造新貨幣之一起源交易(有時稱為一幣基交易)。
圖4係將貨幣自一源錢包轉移至一目的地錢包之一說明性交易130之一圖式。交易130可係(舉例而言)具有對應標頭欄位124及126之一資料包或資料包序列(串流)。如圖4中所展示,輸入124可包含一先前交易識別符、一輸出識別符及一簽章。若期望,則諸如版本號碼或時間戳記資訊之圖3之標頭資訊122可包含於圖5之交易中。
先前交易識別符可識別全球分類帳之哪一交易含有源錢包。若期望,則先前交易識別符可藉由先前交易之一雜湊(例如,H(TXPREV))或雙重雜湊(例如,H(H(TXPREV))或DH(TXPREV))識別先前交易TXPREV。輸出識別符可識別所識別先前交易之哪一輸出用作交易130之源錢包。舉例而言,先前交易之輸出126可經枚舉且源錢包之索引可用作輸出識別符。
交易130可經簽名以幫助確保交易之真實性。舉例而言,源錢包之私有金鑰可用於加密交易130或交易130之一部分以產生儲存於交易130中之簽章。源錢包之公開金鑰可由其他者(例如,其他網路節點)用來解密簽章且確認交易之真實性。
輸出126之集合識別一或多個目的地錢包及用以自源錢包轉移至每一目的地錢包之一各別金額。在圖4之實例中,交易包含一個目的地錢包及待自源錢包轉移至目的地錢包之一對應金額。可連同待自源
錢包轉移至每一目的地錢包之對應金額列出多個目的地錢包(例如,兩個、三個、四個或更多個)。若期望,則亦可列出由輸入124識別之源錢包作為一目的地錢包。舉例而言,待轉移至目的地錢包之金額可小於由先前交易之輸出識別為屬於源錢包之金額。在此情景中,源錢包之金額與轉移金額之間的差可指派給源錢包作為一額外輸出條目。若期望,則在輸出126中指派給源錢包之金額可小於起初儲存之金額與轉移金額之間的差。在此情景中,原始源金額與輸出126中之金額總和之間的差可用作對驗證交易之任何採礦者之額外獎勵(例如,除由加密貨幣協定定義之任何預定獎勵之外)。
圖5係可產生新數位貨幣之一起源交易(亦即,幣基交易)之一說明性圖式。如圖5中所展示,交易140包含將交易識別為一幣基交易之資訊。該資訊可包含一經保留幣基識別符142、一區塊高度144及一超臨時(extra-nonce)值146。若期望,則諸如版本號碼或時間戳記資訊之圖3之標頭資訊122可包含於圖5之交易中。
經保留幣基識別符142可係經保留以用於幣基交易之一值。區塊高度144可幫助識別幣基交易位於全球分類帳內之位置(例如,表示全球分類帳之一區塊鏈之哪一區塊)。超臨時值146係可在採礦操作期間修改之一任意值。
與諸如圖4之交易130之正常交易形成對照,幣基交易140不提供輸出126之一資金源。替代地,幣基交易140可創造新貨幣。由加密貨幣協定判定所創造之新貨幣之金額。舉例而言,加密貨幣網路之節點可通信且建立經創造以用於驗證交易之一商定獎勵。可基於全球分類帳之大小(例如,全球分類帳中之經記錄區塊之數量)確定該商定獎勵。作為一實例,用於以比特幣協定驗證及記錄交易之獎勵可獎勵若干個比特幣(貨幣單位),諸如25個比特幣。此實例僅係說明性的,此乃因所獎勵之比特幣之數目可小於25(例如,12.5、6.25等)或甚至可
係零。
在某些情景中,使用採礦電路驗證之交易可包含費用。舉例而言,圖4之交易130可將比源錢包中所含有的比特幣少之比特幣指派給目的地錢包。在此情景中,剩餘者可用作一採礦者之費用(例如,一額外獎勵)。此額外獎勵可在幣基交易140中指派給採礦者之錢包或亦可藉由採礦電路在採礦者之錢包與其他錢包(例如,利潤共用錢包)之間分割。
在執行採礦操作以驗證及記錄一交易集合中,採礦電路可產生待記錄在全球分類帳中之一區塊,如圖6中所展示。圖6之區塊150可包含區塊標頭152、幣基交易TX0(例如,一幣基交易140)及待記錄之一交易集合156。
區塊標頭152可包含識別區塊150之資訊及由採礦電路產生以完成一函數之額外資訊,諸如滿足一密碼編譯謎之資訊。可產生額外資訊以對至少部分地由區塊標頭152判定之函數輸入之一給定集合及一所要輸出或輸出範圍之函數(例如,謎)求解。圖7係一說明性區塊標頭152之一圖式。如圖7中所展示,區塊標頭152可包含標頭欄位162、一先前區塊識別符164、一默克爾根166、一時間戳記168、一難度值170及一臨時值172。
標頭欄位162可包含任何所要標頭欄位,諸如比特幣協定之一版本號碼。先前區塊識別符164可識別全球分類帳中之一先前區塊(例如,全球分類帳可係一區塊鏈152,其中每一區塊參考該鏈中之一先前區塊)。舉例而言,該先前區塊識別符可係先前區塊之區塊標頭之一雜湊。
可依據包含幣基交易140及交易集合156之區塊150之交易產生默克爾根166。默克爾根166可提供區塊150中之交易之一緊湊表示。舉例而言,默克爾根166可係一256位元(32位元組)值,然而區塊150之
交易可係數百個、數千個或數百萬個位元組。
難度值170係使用區塊150經求解之函數(例如,密碼編譯謎)之一參數。針對比特幣協定,密碼編譯謎涉及產生區塊標頭152使得區塊標頭152之雜湊小於一預定值。可使用諸如安全雜湊演算法(SHA)之一協定判定之雜湊函數計算該雜湊。預定值可取決於難度值170。舉例而言,難度值170可規定雜湊區塊標頭值中需要一個二進制資料表示中之多少前導零。
採礦電路116可調整區塊標頭152中之欄位中之一或多者以便提供對密碼編譯謎求解之一雜湊值(例如,一充分小之雜湊值)給區塊標頭152。舉例而言,該採礦電路可調整臨時值或時間戳記值。作為另一實例,該採礦電路可調整區塊之幣基交易中之超臨時值,此間接調整默克爾根。採礦電路116可藉由在密碼編譯謎之所有可能解內反覆而執行詳盡搜尋。
由密碼編譯謎使用之雜湊函數可以順序步驟(在本文中有時稱為階段)對區塊標頭152進行操作。若期望,則可在一第一雜湊階段中處理區塊標頭152之一第一部分174,然而可在一第二後續雜湊階段中處理區塊標頭152之一第二部分176。每一雜湊階段可涉及邏輯運算之若干個所謂的回合。邏輯運算之每一回合可涉及相同邏輯函數(例如,對每一回合之不同輸入進行操作)。舉例而言,雜湊函數中之邏輯運算之一給定回合之輸出可用作邏輯運算之一後續回合之一輸入。可以此方式反覆地執行該等邏輯運算以產生雜湊函數之一輸出。舉例而言,當使用一安全雜湊演算法(SHA)256函數時,可在產生一雜湊輸出之前藉由SHA-256之64個回合對區塊標頭152之第二部分176進行操作(例如,至實施SHA-256雜湊演算法之邏輯電路之一初始輸入可由邏輯電路操作且經提供為至與邏輯電路之先前回合完全相同的邏輯電路之一後續回合之一輸入,依此類推,直至已執行邏輯函數之所要數
目個回合為止)。此實例僅係說明性的。雜湊回合之數目可取決於由採礦電路116執行之雜湊演算法。
部分174可包含標頭欄位162、先前區塊識別符164及默克爾根166之一第一部分,然而部分176可包含默克爾根166之一第二部分、時間戳記168、難度值170及臨時值172。該SHA函數可基於區塊標頭152之部分174而產生第一階段之一輸出值。該第一階段之該輸出值可用作至該SHA函數之第二階段連同區塊標頭152之部分176之一輸入。該SHA函數之該第二階段可產生區塊標頭152之雜湊值。可使用採礦電路116上之專用硬體電路實施該SHA函數。
可藉由自對應區塊150之交易產生一默克爾樹而計算默克爾根166。圖8係自包含交易TX0、TX1、TX2、TX3、TX4、TX5、TX6及TX7之一區塊產生之一說明性默克爾樹180之一圖式。其中區塊包含八個交易之圖8之實例僅係說明性的。可依據任一二進制數目個交易(例如,2、4、6、8等)計算一默克爾樹。若一區塊不含有二進制數目個交易,則可添加佔位交易以完成默克爾樹。此等佔位交易僅用於產生默克爾樹且不添加至區塊。
如圖8中所展示,默克爾樹180包含各自藉由計算一各別交易之雙重雜湊(例如,使用SHA函數)產生之葉節點182。舉例而言,依據交易TX0(例如,一幣基交易)之(雙重)雜湊(DH)計算雜湊值H0,然而分別依據交易TX1、TX2、TX3、TX4、TX5、TX6及TX7計算雜湊值H1、H2、H3、H4、H5、H6及H7。雙重雜湊運算可涉及對一輸入Z執行一密碼編譯雜湊函數H(Z)以產生一輸出Y且對第一密碼編譯雜湊函數之輸出Y執行相同密碼編譯雜湊函數H以產生一雙重雜湊輸出X(例如,X=H(H(Z))),舉例而言。
默克爾樹180可經組織為其中每一非葉節點184具有兩個子節點之一個二進制樹。可藉由將一較低(先前)層級之節點雜湊而計算樹之
每一連續層級之節點。可藉由將儲存於葉節點182中之值雙重雜湊而產生樹之第二層級(例如,儲存雜湊值H8、H9、H10及H11之節點)。舉例而言,藉由串接葉值H0及H1且將經串接結果雙重雜湊而產生雜湊值H8。類似地,可藉由將第二層級之值雜湊而產生樹之第三層級(例如,可藉由將H8與H9之串連雜湊而計算雜湊值H12,然而可藉由將H10與H11之串連雜湊而計算雜湊值H13)。樹中之層級之數目可取決於區塊中之交易之數目。在圖8之實例中,默克爾樹180之根處於第四層級且依據雜湊值H12及H13來計算。
默克爾樹180之每一節點處之雜湊值具有一固定之預定大小(例如,256個位元),且取決於彼節點之子節點處之值。默克爾根因此用作對應區塊中之所有交易之一緊湊表示,此乃因對一交易之任何改變向上擴散至默克爾根。舉例而言,對幣基交易TX0之改變致使雜湊值H8改變,此修改雜湊值H12,此接著修改默克爾根值。類似地,對交易中之任一者之改變導致對默克爾根值之改變。
採礦電路116可產生默克爾樹180之某些或所有同時搜尋一密碼編譯謎之解。舉例而言,在透過一幣基交易TX0中之超臨時值反覆中,可需要採礦電路針對每一新超臨時值重新計算默克爾根。為幫助減少計算時間且改良效能,採礦電路可在每一反覆期間重新計算默克爾樹180之僅一部分。特定而言,對幣基交易TX0之改變僅影響雜湊值H0、H8、H12及默克爾根,然而默克爾樹之剩餘節點未改變。虛線186表示將在修改幣基交易TX0時需要重新計算之雜湊值與保持未改變之雜湊值分開的默克爾樹之邊緣。在邊緣186左邊之節點需要重新計算(樹180之部分188),然而在邊緣186右邊之節點不需要重新計算(樹180之部分190)。採礦電路可將恆定節點儲存在邊緣186處且重新使用所儲存值以重新計算默克爾根。在圖8之實例中,可儲存雜湊值H1、H9及H13,然而不需要儲存樹部分190之剩餘雜湊值。若期望,
則可藉由在採礦電路116外部之電路晶片外計算在邊緣186左邊之節點(例如,以節省處理時間、功率及採礦電路116上之晶片面積)。
圖9係自一區塊鏈200形成之一全球分類帳之一說明性圖式。如圖9中所展示,區塊鏈200可包含不指向任何先前區塊之一起源區塊150’。舉例而言,區塊150’之先前區塊識別符164不識別任何其他區塊。每一連續區塊150識別鏈中之先前區塊,如由箭頭202所展示(例如,每一區塊之先前區塊識別符164識別區塊鏈200中之先前區塊)。
在採礦操作期間,一裝置收集尚未記錄在區塊鏈200中之交易之一集合。採礦電路可識別區塊鏈200中之最後一(最近記錄之)區塊。採礦電路可隨後依據交易集合產生一新區塊150,使得新區塊包含識別區塊鏈200之最後一區塊且對由區塊鏈使用之加密貨幣協定之密碼編譯謎求解之一識別符164。
區塊鏈200包含多個分支係可能的。舉例而言,可在發現各自具有相同先前區塊識別符之不同謎解時產生分支204。在此情景中,較長且包含更多區塊之分支用作全域暫存器。換言之,忽略分支204且不考量要記錄分支204之區塊150中之交易,此乃因分支206包含比分支204多之區塊(亦即,分支206中之四個經連接區塊對比分支204中之僅三個經連接區塊)。
諸如圖2之電路116之採礦電路可實施為一專用積體電路(例如,一特殊應用積體電路),如圖10之圖式中所展示。如圖10中所展示,積體電路116可具有用於驅動信號離開裝置116且用於經由輸入-輸出接腳214自其他裝置接收信號之輸入-輸出(I/O)電路212。舉例而言,I/O電路212及接腳214可在採礦電路116與圖2之電子裝置110上之其他電路之間傳達信號。如圖10中所展示,採礦電路116可自諸如處理電路215之晶片外處理電路接收資料。晶片外電路215可用於預計算由電路116執行之雜湊函數之若干部分。舉例而言,晶片外電路215可計算
如圖7中所展示之區塊標頭152之部分174之雜湊值且可將雜湊值(例如,雜湊值Hi)提供至電路116。在另一適合配置中,可藉由採礦控制電路216而提供雜湊值Hi。電路116在對區塊標頭152之部分176執行雜湊函數時可使用雜湊值Hi作為一輸入。
採礦電路116可包含一核心區218及藉由諸如互連路徑之路徑224耦合至該核心區之控制電路216。核心區218可包含可由控制電路216控制以識別一密碼編譯謎之解之多個核心電路220。舉例而言,每一核心電路220可包含對由控制電路216經由路徑224提供之輸入執行諸如SHA函數之一密碼編譯演算法的專用邏輯。核心區218可包含由控制電路216並行操作之任何所要數目個核心電路(例如,數十個、數百個或更多核心電路)。
由控制電路216提供至一給定核心220之輸入可包含一部分地填充之區塊標頭。舉例而言,部分地填充之區塊標頭可包含標頭欄位162、先前區塊識別符164、一當前時間及難度值170。輸入可包含待求解之區塊之交易之默克爾根、交易自身或用於計算默克爾根之充分資訊(例如,圖8之默克爾樹邊緣186)。輸入可包含由晶片外處理電路215計算之雜湊值Hi。可藉由嘗試使用由控制電路提供之輸入對密碼編譯謎求解之核心220產生區塊標頭及區塊之剩餘欄位。
控制電路216可分割密碼編譯謎之可能解之搜尋空間且指派搜尋空間之一不同部分給每一核心電路220(例如,使得並行操作之多個核心電路220可更有效地搜尋密碼編譯謎之解)。可基於由控制電路提供至核心電路之輸入而分割搜尋空間。舉例而言,可藉由將不同範圍之臨時值172指派給不同核心220、藉由將不同範圍之超臨時值指派給不同核心220等而分割搜尋空間。
若期望,則採礦電路116中之每一核心電路220可包含執行諸如安全雜湊演算法(SHA)函數之密碼編譯雜湊函數之專用邏輯。舉例而
言,核心220可對由控制電路216經由路徑224提供之輸入執行SHA-2雜湊函數(例如,在32位元字作為至每一雜湊回合之一訊息排程輸入之情況下計算且輸出256位元雜湊輸出的SHA-256雜湊函數)。
圖11係圖10之電路116中之一例示性核心220之一說明性圖式。在圖11之實例中,電路220用於對自控制電路216接收之輸入執行SHA-256雜湊。然而,此僅係說明性的且一般而言,核心220可用於對自控制電路216接收之輸入執行任何所要雜湊演算法(例如,以供在一比特幣協定、另一數位貨幣協定中使用或以供在與一數位貨幣無關之一密碼編譯系統中使用),或核心220可與採礦電路116分開形成(例如,在一專用積體電路或與採礦電路116分開之積體電路上)且可通常對自任何所要源接收之任何所要輸入執行密碼編譯雜湊函數(例如,SHA-256雜湊)。
如圖11中所展示,核心220可包含通信電路,諸如經由路徑224自控制電路216接收一訊息輸入W之通信模組260。自控制電路216接收之訊息輸入W可包含供用作至一SHA-256雜湊演算法之一輸入的區塊標頭152之若干部分,舉例而言。核心220可經由輸入/輸出埠214自外部電路215接收一初始雜湊輸入Hi。可基於一比特幣區塊標頭之一部分晶片外計算初始雜湊輸入Hi。舉例而言,可在電路215處藉由將區塊標頭152之部分174雜湊(例如,與一SHA-256雜湊協定一起使用單一或雙重雜湊)而計算初始雜湊輸入Hi。核心220可包含儲存電路264,該儲存電路包含揮發性及/或非揮發性記憶體。
若期望,則核心220可包含多個順序雜湊模組,諸如第一雜湊模組262及第二雜湊模組266。第一雜湊模組262及第二雜湊模組266可用於基於初始雜湊Hi及在線路224上接收之訊息輸入而執行一雙重SHA-256雜湊。舉例而言,第一雜湊模組262(在本文中有時稱為第一SHA-256模組262)可對初始雜湊Hi及訊息輸入W執行SHA-256雜湊以產生一
第一雜湊輸出H0。第一雜湊輸出H0可經提供以作為至第二雜湊模組266(在本文中有時稱為第二SHA-256模組266)之一訊息輸入。第二雜湊模組266可接收常數因子作為一初始雜湊輸入(例如,由SHA-256雜湊演算法判定之常數因子,諸如一或多個質數)。第二雜湊模組266可基於第一雜湊輸出H0而使用一訊息排程對常數因子執行SHA-256雜湊以產生一第二雜湊輸出HF(在本文中有時稱為一最終雜湊輸出)。
在圖11之實例中,初始雜湊Hi包含256個位元,然而訊息輸入W包含512個位元。第一雜湊輸出H0可包含256個位元(例如,如由第一雜湊模組262實施之SHA-256演算法所判定)。核心220可包含用於使第一雜湊輸出H0填補有所要數目個零使得經填補第一雜湊輸出H0包含512個位元(例如,使得第一雜湊輸出H0可用作至第二SHA-256模組266之512位元訊息輸入)之填補電路268。輸入至第二雜湊模組266之常數因子可包含256個位元。第二雜湊輸出HF可包含256個位元(例如,如由第二雜湊模組266實施之SHA-256演算法所判定)。
核心220可包含難度比較電路270。第二雜湊輸出HF可提供至難度比較電路270。難度比較電路270可比較第二雜湊輸出HF與在輸入272處接收之一預定難度值。舉例而言,可自控制電路216或其他所要外部電路接收難度值272。舉例而言,由採礦電路116或由任一其他源實施之數位貨幣協定可規定難度值272(例如,可由按比特幣協定操作之節點網路判定且可隨時間調整難度值,使得由整個網路在一給定時間週期內計算密碼編譯謎之可預測數目個解)。若第二雜湊輸出HF滿足預定難度值(例如,若如由比特幣協定規定之最低有效零位元之一數目係充分的或若值HF小於預定難度值),則可在線路224上發佈一發現信號,從而指示已發現給定初始雜湊Hi及訊息輸入W(例如,與初始雜湊及訊息相關聯之比特幣區塊標頭)之一解。若未發現解,則可改變搜尋空間(例如,使用一不同時間戳記欄位168、臨時欄位
172、超臨時欄位等)且可重複計算直至發現一解為止,直至再次改變搜尋空間為止,或直至接收區塊鏈200(圖9)中之一新區塊150為止。
每一雜湊模組262及266可執行SHA-256雜湊之多個回合(例如,如由SHA-256雜湊協定規定)。雜湊之每一回合可涉及對至彼回合之一輸入執行相同邏輯函數以產生用於彼回合之一輸出。雜湊之每一回合可接收訊息輸入W之一部分(例如,訊息輸入之一32位元字或自訊息輸入W導出之一經修改32位元字)。一給定回合之輸出可用作下一回合之一輸入(連同來自訊息輸入之另一字)。
在本文中有時闡述為一實例之一情景中(例如,當根據比特幣或SHA-256協定操作時),第一雜湊模組262可基於初始雜湊Hi及輸入訊息W執行雜湊之64個回合以產生第一雜湊輸出H0。類似地,第二雜湊模組266可基於常數因子及第一雜湊輸出H0執行雜湊之64個回合以產生第二雜湊輸出HF。在典型情景中,核心220上之專用邏輯可執行由第一雜湊模組262(或第二雜湊模組266)執行之SHA-256雜湊之每一回合。第一雜湊模組262中之SHA-256邏輯之一第一回合之輸出可用作至第一雜湊模組262中之SHA-256邏輯之第二回合之一輸入(連同由訊息排程邏輯基於輸入訊息W而產生之一字),該第二回合之輸出可用作至第一雜湊模組262中之SHA-256邏輯之一第三回合之一輸入(連同由訊息排程邏輯基於輸入訊息W而產生之一額外字)等。由第一雜湊模組262及第二雜湊模組266執行之SHA-256之每一回合可包含一雜湊輸入及一對應訊息輸入。雜湊輸入與訊息輸入可如由SHA-256協定所判定而組合以產生用作SHA-256雜湊之後續回合之一雜湊輸入的一雜湊輸出。由SHA-256邏輯之回合中之每一者(惟最終回合除外)輸出之雜湊值可在本文中有時稱為中間雜湊值,然而由SHA-256邏輯之最終回合產生之雜湊值可在本文中有時稱為雜湊輸出值或輸出雜湊值。最終(例如,第64個)回合之雜湊輸出可在本文中有時稱為雜湊輸出值H0
或HF。若期望,則可使用加法器電路組合雜湊輸出值與對應初始雜湊值Hi以產生在本文中有時稱為一最終雜湊值之一值。
第一雜湊模組262及第二雜湊模組266上之專用邏輯硬體(例如,硬編碼電路)可執行由SHA-256雜湊協定實施之邏輯運算,舉例而言。使用硬體執行邏輯運算可顯著快於使用軟體執行相同邏輯運算。圖12係可使用核心220上之專用邏輯形成之SHA-256雜湊函數邏輯之一單個回合之一說明性圖式。圖12之電路可實施於圖11之第一及/或第二雜湊模組上且可針對由雜湊模組實施之每一數目個回合在雜湊模組上經重複(例如,圖12之電路可在每一雜湊模組中重複64次)。圖12之電路在本文中有時可稱為一雜湊排程、雜湊排程電路、雜湊排程邏輯(hash schedule logic或hash scheduling logic)。
如圖12中所展示,SHA-256雜湊電路298可包含諸如儲存電路300及302(例如,暫存器電路300及302)之儲存電路。暫存器電路300對於SHA-256雜湊邏輯306之對應回合可用作一輸入暫存器。儲存於暫存器電路300上之資料可傳遞至SHA-256雜湊邏輯306且根據SHA-256雜湊協定(例如,如圖12之邏輯圖式中所展示)對該資料進行操作。SHA-256邏輯306之輸出可傳遞至輸出暫存器302。在典型配置中,暫存器電路300及302各自包含各自儲存一對應32位元雜湊值之八個對應暫存器A至H(例如,一第一暫存器A、一第二暫存器B、一第三暫存器C等)(例如,針對雜湊之第一回合,暫存器A可儲存初始雜湊Hi之最高有效32個位元,然而暫存器H儲存初始雜湊Hi之最低有效32個位元)。換言之,一256位元雜湊輸入Hi可分割成各自儲存於輸入暫存器電路300之一對應暫存器上之八個32位元雜湊值A至H。每一32位元雜湊值可連同訊息輸入W之部分(字)Wt傳遞至邏輯306。邏輯306之輸出可儲存於暫存器電路302上(例如,邏輯306之輸出可分割成各自儲存於輸出暫存器電路302之一對應暫存器上之32位元雜湊值A至H)。
作為一實例,圖12之雜湊排程邏輯298可係形成於雜湊模組262上之SHA-256雜湊邏輯之一第一回合。在此情景中,暫存器300可接收並儲存經由輸入/輸出埠214接收之初始雜湊Hi(例如,分割成32位元雜湊部分A至H)。可由訊息排程電路基於輸入訊息W產生一32位元輸入訊息字Wt。加法器電路304(例如,以32為模之加法電路)可接收來自訊息排程電路之字Wt以及一SHA-256恆定值Kt。恆定值Kt可由SHA-256雜湊協定規定且可對應於在暫存器300與302之間實施之SHA-256之特定回合數目(例如,Kt可具有針對SHA-256之第一回合之一第一值、針對SHA-256之第二回合之一第二值、針對SHA-256之第64個回合之一第三值等)。
輸入字Wt可由核心220上之對應訊息排程邏輯提供至雜湊排程電路298。訊息排程邏輯可自通信模組260(圖11)接收訊息輸入W且可根據SHA-256協定執行對訊息W之運算以產生訊息輸入字Wt。舉例而言,訊息排程邏輯可對輸入訊息W執行邏輯運算且可在於任一給定時間處執行邏輯運算之後輸出輸入訊息W之一單個32位元字Wt。一對應訊息輸入字Wt可針對雜湊模組262中之SHA-256之每一回合提供至加法器304(例如,可在SHA-256之第一回合期間提供一第一字Wt,可在SHA-256之第二回合期間提供一第二字Wt,等)。字Wt可係在一給定時間處儲存於訊息排程邏輯中之訊息之最高有效字。
儲存於暫存器300上之32位元雜湊值、對應訊息輸入字Wt及對應回合恆定值Kt可傳遞至邏輯306且由邏輯306處理,如圖12中所展示及定義。經處理32位元雜湊值可儲存於輸出暫存器302上。由邏輯306中之邏輯區塊Ch、Σ 1、Ma及Σ 0執行之邏輯函數如圖12中所展示而經定義。圖12之邏輯電路306之配置由SHA-256協定判定且僅係說明性的。一般而言,任何所要邏輯可形成於電路306中以用於對儲存於暫存器300中之輸入雜湊值進行操作。
儲存於暫存器302中之32位元經處理雜湊值Hi'可提供至邏輯306(例如,具有與圖11中所展示相同之組態之邏輯電路)之一後續回合且邏輯之後續回合之輸出可提供至一額外組暫存器電路。以此方式,雜湊模組262(或雜湊模組266)上之SHA-256邏輯之64個回合中之每一者可包含對應邏輯電路306及暫存器電路300/302。在另一適合配置中,針對SHA-256雜湊之64個回合中之兩者或兩者以上,暫存器302之輸出可迴圈回至暫存器300。在雜湊298之最終回合(例如,第64個回合)之後,儲存於邏輯電路之第64個回合中之暫存器302上之經處理雜湊值可用作圖11之雜湊輸出H0(例如,在通過邏輯306之64個回合之後,可產生第一雜湊輸出H0作為儲存於第一雜湊模組262之最終輸出暫存器電路302上之雜湊值)。雜湊輸出H0可傳遞至第二雜湊模組266(圖11)。類似邏輯可形成於第二雜湊模組266上以使用常數因子作為儲存於第二雜湊模組266之輸入暫存器300上之初始雜湊值且使用對應於第一雜湊輸出H0的來自訊息輸入之字來產生最終雜湊輸出HF。
圖13係形成於圖11之第一及/或第二雜湊模組上以用於基於所接收訊息W產生提供至雜湊排程邏輯298之輸入字Wt之訊息排程邏輯398之一說明性圖式。諸如圖11之512位元訊息輸入W之一初始訊息可儲存於暫存器400中。每一暫存器400可儲存訊息W之一對應32位元部分(字)。針對由雜湊排程電路298執行之SHA-256之每一回合,可透過暫存器400使所儲存訊息W逐字移位。在透過暫存器400之每一移位之後之最高有效32位元字Wt可提供為至雜湊排程邏輯298之對應回合之輸入字Wt。以此方式,每一32位元輸入字Wt基於自控制器216接收之訊息輸入W。
舉例而言,在如圖12中所展示之SHA-256雜湊排程298之第一回合期間,一第一最高有效32位元字Wt可經由路徑404提供至加法器304,且儲存於暫存器400上之每一字可經移位轉變至下一暫存器400
(例如,沿向左之一方向,如圖13中所展示)。在使字移位之後之最高有效32位元字Wt可經由路徑404提供至加法器304且可再次使該等字移位至下一暫存器400。此程序可繼續使得一不同訊息輸入字Wt提供至SHA-256雜湊排程邏輯298之64個回合中之每一者。儲存於暫存器400上之字中之某些字可傳遞至邏輯406及加法器電路402(以二為模之加法加法器電路402)且一對應字可提供至訊息排程邏輯398中之最後一(最低有效)暫存器400。
在其中訊息排程電路398形成於第一雜湊模組262中之實例中,最初儲存於暫存器400上之512位元訊息可係自控制器216接收之訊息輸入W。在其中訊息排程電路398形成於第二雜湊模組266上之實例中,最初儲存於暫存器400上之512位元訊息可係由第一雜湊模組262產生之第一雜湊輸出H0(例如,在使用填補電路268填補至512個位元之後)。邏輯406、暫存器400及加法器402之配置可由SHA-256雜湊協定判定。此實例僅係說明性的,且若期望,則暫存器400、邏輯406及加法器402之任何配置可用於產生訊息字Wt。
採礦電路116中之每一核心220可包含第一雜湊模組262及第二雜湊模組266。此實例僅係說明性的且一般而言,核心220可包含使用任何所要雜湊協定執行雜湊之任何所要數目個回合之任何所要數目個雜湊模組。在圖11至圖13之實例中,每一核心220可包含雜湊排程邏輯298(如圖12中所展示)及對應訊息排程邏輯398(如圖13中所展示)之64個回合以用於並行計算雜湊值(例如,用於比在僅使用一單個核心之情況下更有效地找到密碼編譯謎之一解)。舉例而言,一第一核心220之第一雜湊模組可包含雜湊排程邏輯298之64個回合,毗鄰於第一核心之一第二核心220之第一雜湊模組可包含雜湊排程邏輯之64個回合等。雜湊邏輯之每一回合可需要採礦電路116上之預定量之晶片面積及預定量之電力以用於計算SHA-256雜湊函數。因此,可期望能夠減
少由用於並行計算雜湊函數之核心220使用之面積及電力以減小晶片成本且增加功率效率。
若期望,則可跨越多個核心220共用訊息排程邏輯398及/或雜湊排程邏輯298之若干部分。舉例而言,可在兩個或兩個以上核心220之間共用來自第一或第二雜湊模組中之雜湊排程邏輯298之一或多個回合之暫存器電路300及302及/或邏輯電路306(例如,使得多個核心針對SHA-256雜湊之64個回合中之至少某些回合使用一單個邏輯電路)。以此方式,由雜湊排程電路298及訊息排程電路398跨越多個核心220需要之總面積可在積體電路116上減小(且可最小化對應電力洩漏)。
圖14係展示採礦電路116上之核心區218中之多個核心220可如何共用共同訊息排程邏輯電路及共同雜湊排程邏輯電路以最小化由對應雜湊模組耗用之晶片面積的一說明性方塊圖。
如圖14中所展示,核心區218可包含毗鄰雜湊核心220(例如,一第一核心220-0、一第二核心220-1、一第三核心220-2及一第四核心220-3)。每一核心220可形成於採礦電路116上之一對應邏輯區(區域)上(例如,第一核心220-0可形成於電路116之一第一區上,第二核心220-1可形成於毗鄰於第一核心220-0之區的電路116之一第二區上,第三核心220-2可形成於毗鄰於第二核心220-1之一第三區上,且第四核心220-3可毗鄰於第三核心220-2)。圖14之實例僅係說明性的。一般而言,任何所要數目個毗鄰核心220可共用雜湊及訊息排程邏輯。
核心220可共用用於與控制器216介接之一共同通信模組260(若期望)。共用通信模組260可將訊息W自控制器216傳遞至核心220上之訊息排程邏輯398(一第一訊息W0識別核心220-0之對應搜尋空間,一第二訊息W1識別核心220-1之對應搜尋空間,一第三訊息W2識別核心220-2之對應搜尋空間,且一第四訊息W3識別核心220-3之對應搜尋空
間)。訊息W0至W3可包含在訊息W0至W3當中共用之共同位元(例如,共同部分)及在訊息W1至W3中之兩者或兩者以上之間不同之非共同位元(部分)(例如,此乃因由訊息W1至W3表示之搜尋空間之許多空間可重疊)。核心220中之訊息排程邏輯398可包含共用訊息排程邏輯422。共用訊息排程邏輯422可在核心220(例如,區218中之所有核心中之某些核心)中之每一者之間共用。在圖14之實例中,共用訊息排程邏輯可形成於核心區220-0、220-1、220-2及220-3中之一或多者中或可跨越核心區220-0、220-1、220-2及220-3中之每一者分佈。
共用訊息排程邏輯422可利用提供至不同核心220之訊息W0至W3中之共性(例如,共同位元或部分)以針對由雜湊排程電路298執行之SHA-256雜湊之所要數目個回合產生用於核心220-0至220-3中之每一者之相同訊息輸入字Wt。該所要數目個回合可對應於訊息W0、W1、W2及W3之最高有效字相同(例如,無論在分割搜尋空間時訊息經產生用於哪一核心)之若干個回合。在SHA-256雜湊之所要數目個回合之後,部分共用訊息排程邏輯424可用於產生用於四個核心220之一子集之訊息輸入字Wt。部分共用訊息排程邏輯424可形成於核心區220-0、220-1、220-2及220-3之一子集中或可跨越核心區220-0至220-3之子集分佈。
在圖14之實例中,兩個部分共用訊息排程邏輯電路424各自由兩個核心220共用。每一部分共用訊息排程邏輯電路可針對SHA-256雜湊之所要數目個回合將相同訊息輸入字Wt提供至其對應核心220之子集(例如,一第一電路424可由核心220-0及220-1共用且可在使用共用訊息排程邏輯422產生訊息字之後針對所要數目個雜湊回合將相同訊息字Wt提供至核心220-0及220-1,一第二電路424可由核心220-2及220-3共用且可在使用共用訊息排程邏輯422之後針對所要數目個雜湊回合將相同訊息字Wt提供至核心220-2及220-3等)。針對其使用部分
地共用邏輯424之所要數目個回合可對應於訊息W0、W1、W2及W3之最高有效字相同而無論訊息經產生用於與各別部分地共用電路424相關聯之核心中之哪一者的若干個回合。
在部分共用訊息排程邏輯已用於將訊息輸入字Wt提供至其對應核心雜湊排程邏輯之後,非共用訊息排程邏輯426可用於產生用於每一核心220之字Wt(例如,跨越核心不同之字)。以此方式,核心區220-0中之非共用訊息邏輯426可產生用於核心區220-0中之雜湊邏輯298之字Wt,核心區220-1中之邏輯426可產生用於核心區220-1中之雜湊邏輯298之字Wt等。(例如,由於經產生分別用於核心220-0、220-1、220-2及220-3之字W0、W1、W2及W3將最終具有跨越核心不相似之32位元字,此乃因每一核心之搜尋空間由控制器216分割)。以此方式,訊息排程邏輯398可利用跨越訊息W0、W1、W2及W3之共用位元以使用一單個訊息排程邏輯電路422將字Wt提供至雜湊電路298以用於訊息W0、W1、W2及W3之共用字且可利用跨越訊息W0、W1、W2及W3之一子集之共用位元以使用部分共用訊息排程電路424將字Wt提供至雜湊電路298以用於跨越該訊息子集共用之位元。藉由使用共用及部分共用訊息排程邏輯,相對於其中單獨及相異訊息排程電路用於每一核心220之情景,電路218可減小由訊息排程邏輯398耗用的晶片218上之面積。
核心220中之雜湊排程邏輯298可包含在核心220中之每一者之間共用之共用雜湊排程邏輯428。在圖14之實例中,共用雜湊排程邏輯298可形成於核心區220-0、220-1、220-2及220-3中之一或多者中或可跨越核心區220-0、220-1、220-2及220-3中之每一者分佈。
共用雜湊排程邏輯428可包含SHA-256邏輯之預定數目個回合。舉例而言,共用邏輯428可包含用於計算SHA-256之前四個回合(例如,使用圖12中所展示之邏輯)之邏輯。共用邏輯428可自I/O埠214接
收雜湊輸入Hi且可基於自訊息排程邏輯398接收之訊息Wt而執行如圖12中所展示之邏輯運算。共用雜湊排程邏輯298可利用提供至不同核心220之訊息W中之共性以針對核心220中之每一者之SHA-256之給定數目個回合使用相同邏輯電路(例如,SHA-256之結果針對其將係相同而無論核心如何之回合,此乃因經產生用於彼等核心之訊息W0、W1、W2及W3係相同的)。
核心220可包含耦合至共用雜湊排程邏輯428之部分共用雜湊排程邏輯電路430。舉例而言,共用雜湊排程邏輯428可包含與SHA-256雜湊之64個回合中之第一數個回合相關聯之雜湊邏輯與暫存器電路,然而部分地共用邏輯430可包含與SHA-256雜湊之後續回合中之第二數目個回合相關聯之邏輯與暫存器電路。在圖14之實例中,一第一部分共用雜湊排程邏輯電路可在核心220-0與220-1之間共用,然而一第二部分共用雜湊排程邏輯電路可在核心220-2與220-3之間共用(例如,此乃因核心220-0及220-1可針對在第一數目個回合之後之第二數目個回合具有來自訊息W0及W1之共同字,然而核心220-2及220-3可針對第二數目個回合具有來自訊息W2及W3之共同字)。
核心220可包含耦合至對應部分共用雜湊排程邏輯電路430之非共用雜湊排程邏輯電路432。在已完成與部分地共用雜湊邏輯電路430相關聯之SHA-256之第二數目個回合之後,每一核心220可使用各別非共用雜湊排程邏輯計算SHA-256之剩餘回合(例如,此乃因此時,訊息W0、W1、W2及W3跨越每一核心220係不同的,如由每一核心之經指派搜尋空間所判定)。每一非共用雜湊排程邏輯電路432可輸出待傳遞至在彼核心220內之第二雜湊模組266之一對應第一雜湊輸出值H0(例如,一第一值H0 0可由第一核心220-0產生,一第二值H0 1可由第二核心220-1產生,一第三值H0 2可由第三核心220-2產生,且一第四值H0 3可由第四核心220-3產生)。若期望,則可使用加法器電路(未展示)
使每一雜湊輸出值與雜湊輸入值Hi相加。以此方式,可利用訊息W0至W3之最高有效字中之共性以在開始SHA-256雜湊時針對64個回合中之給定數目個回合跨越所有或某些核心220共用雜湊排程電路。藉由使用共用及部分共用雜湊排程邏輯,相對於其中單獨及相異雜湊排程電路用於每一核心220之情景,電路218可減小由雜湊排程邏輯298耗用的晶片218上之面積。
圖14之實例僅係說明性的。若期望,則可跨越核心共用訊息排程邏輯398,然而不跨越核心共用雜湊排程邏輯298。類似地,可跨越核心共用雜湊排程邏輯298,然而不跨越核心共用訊息排程邏輯398。若期望,則可自訊息排程電路398省略共用訊息排程邏輯422、部分共用訊息排程邏輯398及非共用訊息排程邏輯426之任何組合。若期望,則可自雜湊電路298省略共用雜湊電路428、部分地共用雜湊電路430及非共用雜湊電路432之任何組合。
圖15係展示可如何使用跨越核心220之共用、部分地共用及非共用雜湊電路(例如,呈類似於圖14中所展示之配置之一配置)計算SHA-256雜湊之不同回合之一說明性方塊圖。
如圖15中所展示,共用雜湊排程邏輯428可自I/O埠214接收初始雜湊值Hi。雜湊排程電路298之一第一回合R0(例如,如圖12中所展示)可處理初始雜湊Hi及來自訊息排程電路398之一字Wt且可將回合R0之一輸出提供至雜湊排程電路298之第二回合R1。訊息排程電路398為了清晰起見而經展示為一單個區塊,但可(若期望)包含點綴有雜湊排程電路298或圍繞雜湊排程電路298之周邊形成之共用訊息排程邏輯422、部分共用訊息排程邏輯424及非共用訊息排程邏輯426。SHA-256雜湊回合R1中之雜湊邏輯可將一輸出提供至雜湊邏輯回合R2。每一回合可包含對應邏輯電路306、輸入暫存器電路300及輸出暫存器電路302,且可自訊息排程電路398接收一對應字Wt。雜湊邏輯298之回
合R0、R1及R2可形成共用雜湊排程邏輯428(如圖14中所展示),此乃因回合R0、R1及R2之輸出用於產生用於多個核心220(例如,第一核心220-0、第二核心220-1、第三核心220-2及第四核心220-3)之雜湊值H0。在圖15之實例中,共用雜湊排程邏輯428形成於核心區220-3中,但一般而言可形成於任何所要核心區220中之一或多者中。
回合R2之輸出可傳遞至部分共用雜湊排程邏輯430。部分共用雜湊排程邏輯430可包含執行SHA-256之回合R3之多個邏輯電路。在圖15之實例中,兩個雜湊排程邏輯電路執行回合R3之雜湊運算。回合R3之輸出提供至四個核心之一子集且因此部分地共用(例如,核心220-2中之邏輯R3將其輸出提供至核心220-0、220-1及220-2,然而核心220-3中之邏輯R3將其輸出提供至核心220-3)。在部分共用之預定數目個回合之後,部分共用雜湊排程邏輯430可將輸出提供至非共用雜湊排程邏輯432。在SHA-256雜湊之總共64個回合之後(例如,在回合R63之後),雜湊邏輯R63之輸出可提供至加法器電路(以二為模之加法電路)440。加法器電路440可使初始雜湊值Hi與雜湊排程邏輯R63之輸出相加以產生用於每一核心220之各別第一雜湊值H0。藉由跨越多個核心220共用及部分地共用SHA-256雜湊邏輯之一或多個回合,採礦電路116上之區442可擺脫邏輯電路,藉此相對於其中未跨越核心220實施邏輯共用之情景減小核心220之面積耗用及電力洩漏。
作為訊息可如何提供至共用、部分地共用及非共用雜湊排程電路之一實例,提供至訊息排程邏輯398之輸入訊息W可按顯著次序包含一32位元默克爾根欄位、一32位元時間戳記欄位、一32位元難度值欄位、一32位元臨時欄位、包含一個高(例如,邏輯「1」)位元後續接著319個低(例如,邏輯「0」)位元(例如,一填補欄位)之一固定欄位及識別訊息之大小之一固定欄位。四個不同輸入訊息W0、W1、W2及W3可由控制器216提供以用於四個核心220,舉例而言。在此實
例中,默克爾根欄位、時間戳記欄位、難度值欄位、固定欄位及除了臨時欄位之兩個最低有效位元之所有欄位可跨越所有四個訊息W0至W3共用,然而臨時欄位之兩個最低有效位元可唯一於四個訊息中之每一者(例如,訊息W0可具有臨時最低有效位元(LSB)「00」,訊息W1可具有臨時LSB「01」,訊息W2可具有臨時LSB「10」,且訊息W3可具有臨時LSB「11」,從而表示四個核心之間的搜尋空間中之變化)。
訊息W0至W3中之一給定者可儲存於暫存器400中,如圖13中所展示(例如,使得最高有效默克爾根欄位儲存於第一暫存器400中且固定欄位之最後32個位元儲存於最後暫存器400中)或訊息W0至W3可儲存於各別暫存器400上。在雜湊排程邏輯298之一第一輪R0處,儲存於暫存器400上之訊息之第一32位元字可用作字輸入Wt。由於默克爾根欄位由所有四個訊息W0至W3共用(例如,在該等字中之每一者中完全相同),因此用於雜湊排程之回合R0之字Wt針對四個核心中之每一者將係相同的,即使每一核心具有由控制器216產生之一不同各別訊息W0、W1、W2或W3(例如,相同默克爾根欄位可在回合R0處用於所有四個核心,藉此允許核心共用排程電路)。儲存於暫存器400上之字可隨後藉由一個暫存器移位(例如,沿向左之一方向,如圖13中所展示)。時間戳記欄位可然後儲存於電路398之第一暫存器上。由於用於雜湊排程之回合R0之字對於所有四個核心係相同的,因此雜湊邏輯可針對回合R0在所有四個核心之間共用。
在雜湊排程邏輯298之下一回合R1處,記憶體排程邏輯398中之時間戳記欄位(例如,在移位之後之最高有效32位元字)可提供為至雜湊排程邏輯298之回合R1之字輸入Wt。由於時間戳記欄位由所有四個訊息W0至W3共用(且藉此由所有四個核心共用),因此用於雜湊排程之回合R1之字Wt可用於所有四個核心,藉此允許四個核心共用回合
R1雜湊排程邏輯。儲存於暫存器400上之字可隨後藉由一個暫存器移位。難度欄位可然後儲存於電路398之第一(最高有效)暫存器400上。由於在此實例中用於雜湊排程之回合R1之字對於所有四個核心係相同的,因此相同雜湊邏輯電路可針對回合R1在所有四個核心之間共用。
在雜湊排程邏輯298之後續回合R2處,記憶體排程邏輯398中之難度欄位(例如,在移位之後之最高有效32位元字)可提供為至雜湊排程邏輯298之回合R2之字輸入Wt。由於在此實例中難度欄位由所有四個訊息W0至W3共用,因此用於回合R2之字Wt可用於所有四個核心,藉此允許四個核心共用回合R2雜湊排程邏輯電路。儲存於暫存器400上之字可隨後藉由一個暫存器移位。臨時欄位可然後儲存於電路398之第一暫存器400上。
在雜湊排程邏輯298之後續回合R3處,兩個不同訊息字Wt可提供至四個核心,此乃因由訊息排程398提供之臨時字中存在一2位元偏差(例如,此乃因臨時欄位之兩個LSB在訊息W0至W3之間變化)。藉此將跨越核心部分共用雜湊排程邏輯298之回合R3使得兩個核心220共用一第一邏輯電路以計算SHA-256之回合R3且兩個額外核心220共用一第二邏輯電路以計算回合R3。在此情景中,雜湊排程之回合R3中之輸出暫存器302將在核心220對之間變化(例如,暫存器電路302之暫存器A及E將取決於接收哪一訊息字Wt而儲存不同值,使得兩個核心將一第一位元集合儲存於暫存器A及E上且兩個其他核心將一第二位元集合儲存於暫存器A及E上,然而儲存於暫存器B、C、D、F、G及H上之字將在所有四個核心之間完全相同。儲存於暫存器400上之字可隨後藉由一個暫存器移位。
在後續回合R4處,固定欄位之高位元及固定欄位之前31個低位元提供為至回合R4之部分共用雜湊排程邏輯之字Wt。核心對之間的輸出暫存器將在儲存於輸出暫存器電路302之暫存器B及F上之位元方
面變化。在此實例中,此型樣可繼續用於後續回合R5及R6,直至不共用硬體且獨立雜湊排程電路形成於四個核心220中之每一者中。此實例僅係說明性的。可共用任何所要邏輯以用於計算對任何所要訊息輸入之SHA-256雜湊之回合。
根據一實施例,提供一種包含一第一處理核心、一第二處理核心、在該第一處理核心與該第二處理核心之間共用的共用邏輯電路及控制電路的積體電路,該控制電路經組態以將控制信號提供至該共用邏輯電路,且該等控制信號控制該等第一及第二處理核心以根據一加密貨幣協定並行完成一密碼編譯函數。
根據另一實施例,該第一處理核心包含基於該等控制信號執行一密碼編譯雜湊演算法之複數個順序回合之一第一密碼編譯雜湊電路且該第二處理核心包含基於該等控制信號執行該密碼編譯雜湊演算法之該複數個順序回合之一第二密碼編譯雜湊電路。
根據另一實施例,該共用邏輯電路針對該等第一及第二處理核心執行該密碼編譯雜湊演算法之該複數個順序回合之一子集。
根據另一實施例,該共用邏輯電路包含一第一暫存器、一第二暫存器及耦合在該第一暫存器與該第二暫存器之間的密碼編譯邏輯,該等控制信號包含一初始雜湊值,該密碼編譯邏輯基於該初始雜湊值及一訊息字輸入而產生一中間雜湊值,該中間雜湊值由該第一處理核心用來產生一第一雜湊輸出值,且該中間雜湊值由該第二處理核心用來產生不同於該第一雜湊輸出值之一第二雜湊輸出值。
根據另一實施例,該等控制信號包含一第一訊息及不同於該第一訊息輸入之一第二訊息,該第一處理核心包含基於該第一訊息而產生用於該第一雜湊排程電路之一第一訊息輸入字集合之一第一訊息排程電路,且該第二處理核心包含基於該第二訊息而產生用於該第二雜湊排程電路之一第二訊息輸入字集合之一第二訊息排程電路。
根據另一實施例,該共用邏輯電路基於該等第一及第二訊息而產生一選定訊息輸入字,該共用邏輯電路提供將該選定訊息輸入字提供至該等第一及第二密碼編譯雜湊電路兩者,且該等第一及第二密碼編譯雜湊電路基於該選定訊息輸入字而執行該密碼編譯雜湊演算法之該複數個順序回合中之至少一者。
根據另一實施例,該共用邏輯電路針對該等第一及第二處理核心執行該密碼編譯雜湊演算法之該複數個順序回合之一子集。
根據另一實施例,該控制電路經組態以控制該第一處理核心以在一第一搜尋空間內完成該密碼編譯函數且該控制電路經組態以控制該第二處理核心以在不同於該第一搜尋空間之一第二搜尋空間內完成該密碼編譯函數。
根據另一實施例,該共用邏輯電路經組態以完成對應於該第一搜尋空間與該第二搜尋空間之間的一重疊的該密碼編譯函數之一部分。
根據另一實施例,該積體電路包含一第三處理核心,該共用邏輯電路在該等第一、第二及第三處理核心之間共用,且該控制電路經組態以將該等控制信號提供至該共用邏輯電路以控制該等第一、第二及第三處理核心以根據該加密貨幣協定並行完成該密碼編譯函數。
根據另一實施例,該積體電路包含由該等第一及第二處理核心而非該第三處理核心共用之部分共用邏輯電路,該部分共用邏輯電路之一輸入耦合至該共用邏輯電路之一輸出。
根據另一實施例,該積體電路包含形成於該第一處理核心上而非該等第二及第三處理核心上之非共用邏輯電路,該非共用邏輯電路之一輸入耦合至該部分共用邏輯電路之一輸出,且該非共用邏輯電路經組態以產生一雜湊輸出值。
根據另一實施例,該等第一及第二處理核心經組態以藉由根據
一比特幣協定完成該密碼編譯函數而並行產生比特幣獎勵。
根據另一實施例,該第一處理核心形成於該積體電路之一第一區上,該第二處理核心形成於不同於該第一區的該積體電路之一第二區上,且該共用邏輯電路形成於該積體電路之該等第一及第二區中之僅一者上。
根據一實施例,提供用於根據一加密貨幣協定產生加密貨幣之數位採礦電路,該數位採礦電路包含:訊息排程電路,其基於自控制電路接收之至少一個輸入訊息而產生複數個訊息字;密碼編譯雜湊電路之一第一回合,其基於一輸入值及該複數個訊息字中之一第一訊息字而產生一第一雜湊值;密碼編譯雜湊電路之一第二回合,其自密碼編譯雜湊電路之該第一回合接收該第一雜湊值且基於該第一雜湊值及該複數個訊息字中之一第二訊息字而產生第二及第三雜湊值;及密碼編譯雜湊電路之一最終回合,其至少部分地基於該第二雜湊值及該複數個訊息字中之一第三訊息字而產生一第一雜湊輸出值且至少部分地基於該第三雜湊值及該第三訊息字而產生一第二雜湊輸出值。
根據另一實施例,密碼編譯雜湊電路之該最終回合經組態以至少部分地基於該第二雜湊輸出值及該第三訊息字而產生一第三雜湊輸出值。
根據另一實施例,該數位採礦電路包含:一第一加法器電路,其自密碼編譯雜湊電路之該最終回合接收該第一雜湊輸出值且自該控制電路接收一初始雜湊值,該第一加法器電路經組態以基於該第一雜湊輸出值及該初始雜湊值而產生一第一最終雜湊值;一第二加法器電路,其自密碼編譯雜湊電路之該最終回合接收該第二雜湊輸出值且自該控制電路接收該初始雜湊值,該第二加法器電路經組態以基於該第二雜湊輸出值及該初始雜湊值而產生一第二最終雜湊值。
根據另一實施例,該數位採礦電路包含:資料填補電路,其基
於由該第一加法器電路產生之該等第一最終雜湊值而產生一額外輸入訊息;及一密碼編譯雜湊模組,其接收該額外輸入訊息且至少基於該所接收額外輸入訊息而執行複數個密碼編譯雜湊回合。
根據另一實施例,該數位採礦電路包含:難度比較電路,其自該第一加法器電路接收該第一最終雜湊值,該難度比較電路經組態以執行該第一最終雜湊值與一預定難度值之間的一比較,且該難度比較電路經組態以基於該比較而將一密碼編譯解發現信號輸出至該控制電路。
根據一實施例,提供一積體電路上之加密貨幣採礦電路,該加密貨幣採礦電路包含:一第一處理核心,其具有第一雜湊電路;一第二處理核心,其具有第二雜湊電路,該第一雜湊電路及該第二雜湊電路各自包含至少基於一初始雜湊值及複數個訊息字而執行密碼編譯雜湊運算之密碼編譯雜湊邏輯之複數個順序回合;控制電路,其控制該等第一及第二處理核心以根據一加密貨幣協定在各別第一及第二搜尋空間內完成一密碼編譯函數,該第一搜尋空間不同於該第二搜尋空間;及共用訊息排程電路,其將該複數個訊息字中之一第一訊息字提供至該第一雜湊電路及該第二雜湊電路兩者中之密碼編譯雜湊邏輯之一第一回合。
根據另一實施例,該加密貨幣採礦電路包含:一第三處理核心,其具有第三雜湊電路,該第三雜湊電路包含至少基於該複數個訊息字而執行密碼編譯雜湊運算之密碼編譯雜湊邏輯之複數個順序回合,該控制電路控制該第三處理核心以在不同於該等第一及第二搜尋空間之一第三搜尋空間內完成該密碼編譯函數。
根據另一實施例,該加密貨幣採礦電路包含該共用訊息排程電路將該第一訊息字提供至該第三處理核心中之密碼編譯雜湊邏輯之一第一回合。
根據另一實施例,該加密貨幣採礦電路包含:部分共用訊息排
程電路,其將一第二訊息字提供至該等第一及第二處理核心中之密碼編譯雜湊邏輯之一第二回合而不將該第二訊息字提供至該第三處理核心,密碼編譯雜湊邏輯之該第二回合在密碼編譯雜湊邏輯之該第一回合之後。
根據另一實施例,該加密貨幣採礦電路包含:非共用訊息排程電路,其將一第三訊息字提供至該第一處理核心中之密碼編譯雜湊邏輯之一第三回合而不將該第三訊息字提供至該等第二及第三處理核心,密碼編譯雜湊邏輯之該第三回合在密碼編譯雜湊邏輯之該等第一及第二回合之後。
根據另一實施例,該共用訊息排程電路經組態以基於自該控制電路接收以用於該第一處理核心之一第一訊息、自該控制電路接收以用於該第二處理核心之一第二訊息及自該控制電路接收以用於該第三處理核心之一第三訊息而產生該第一訊息字,該第二訊息不同於該第一訊息且該第三訊息不同於該等第一及第二訊息。
根據另一實施例,該部分共用訊息排程電路經組態以基於自該控制器接收之該等第一及第二訊息而產生該第二訊息字。
根據另一實施例,該非共用訊息排程電路經組態以基於自該控制器接收之該第一訊息而產生該第三訊息字。
根據另一實施例,該第一訊息包含一512位元訊息,該初始雜湊值包含一256位元初始雜湊值,該密碼編譯雜湊運算包含安全雜湊演算法256(SHA-256)密碼編譯雜湊運算,且該加密貨幣協定包含該比特幣協定。
前述內容僅圖解說明本發明之原理且熟習此項技術者可在不背離本發明之範疇及精神之情形下做出各種修改。可個別地或以任何組合形式實施前述實施例。
218‧‧‧核心區/區/電路/晶片
220-0‧‧‧第一核心/核心/核心區
220-1‧‧‧第二核心/核心/核心區
220-2‧‧‧第三核心/核心/核心區
220-3‧‧‧第四核心/核心/核心區
260‧‧‧通信模組/共同通信模組/共用通信模組
264‧‧‧儲存電路
298‧‧‧SHA-256雜湊電路/雜湊排程邏輯/雜湊排程電路/雜湊/SHA-256雜湊排程/SHA-256雜湊排程邏輯/雜湊邏輯/雜湊電路/共用雜湊排程邏輯
398‧‧‧訊息排程邏輯/訊息排程電路/電路/記憶體排程邏輯/訊息排程
422‧‧‧共用訊息排程邏輯/訊息排程邏輯
424‧‧‧部分共用訊息排程邏輯/部分共用訊息排程邏輯電路/第一電路/第二電路/部分地共用邏輯/部分地共用電路/部分共用訊息排程電路
426‧‧‧非共用訊息排程邏輯/非共用訊息邏輯/邏輯
428‧‧‧共用雜湊排程邏輯/共用邏輯/共用雜湊電路
430‧‧‧部分共用雜湊排程邏輯電路/部分地共用邏輯/部分地共用雜湊邏輯電路/部分地共用雜湊電路/部分共用雜湊排程邏輯
432‧‧‧非共用雜湊排程邏輯電路/非共用雜湊電路/非共用雜湊排程邏輯
Hi‧‧‧雜湊值/初始雜湊輸入/初始雜湊/256位元雜湊輸入/雜湊輸入/雜湊輸入值/初始雜湊值
H0 0‧‧‧第一值
H0 1‧‧‧第二值
H0 2‧‧‧第三值
H0 3‧‧‧第四值
W0‧‧‧第一訊息/訊息/字/輸入訊息
W1‧‧‧第二訊息/訊息/字/輸入訊息
W2‧‧‧第三訊息/訊息/字/輸入訊息
W3‧‧‧第四訊息/訊息/字/輸入訊息
Wt‧‧‧部分/32位元輸入訊息字/字/輸入字/訊息輸入字/32位元字/第一字/第二字/最高有效32位元字/32位元輸入字/第一最高有效32位元字/訊息字/訊息/字輸入
Claims (28)
- 一種積體電路,其包括:一第一處理核心;一第二處理核心;共用邏輯電路,其在該第一處理核心與該第二處理核心之間共用;及控制電路,其中該控制電路經組態以將控制信號提供至該共用邏輯電路,且其中該等控制信號控制該第一處理核心及該第二處理核心以根據一加密貨幣協定並行完成一密碼編譯函數。
- 如請求項1之積體電路,其中該第一處理核心包括基於該等控制信號執行一密碼編譯雜湊演算法之複數個順序回合之一第一密碼編譯雜湊電路,且其中該第二處理核心包括基於該等控制信號執行該密碼編譯雜湊演算法之該複數個順序回合之一第二密碼編譯雜湊電路。
- 如請求項2之積體電路,其中該共用邏輯電路針對該等第一及第二處理核心執行該密碼編譯雜湊演算法之該複數個順序回合之一子集。
- 如請求項3之積體電路,其中該共用邏輯電路包括一第一暫存器、一第二暫存器及耦合在該第一暫存器與該第二暫存器之間的密碼編譯邏輯,其中該等控制信號包括一初始雜湊值,其中該密碼編譯邏輯基於該初始雜湊值及一訊息字輸入而產生一中間雜湊值,其中該中間雜湊值由該第一處理核心用來產生一第一雜湊輸出值,且其中該中間雜湊值由該第二處理核心用來產生不同於該第一雜湊輸出值之一第二雜湊輸出值。
- 如請求項2之積體電路,其中該等控制信號包括一第一訊息及不 同於該第一訊息輸入之一第二訊息,其中該第一處理核心進一步包括基於該第一訊息產生用於該第一雜湊排程電路之一第一訊息輸入字集合之一第一訊息排程電路,且其中該第二處理核心進一步包括基於該第二訊息產生用於該第二雜湊排程電路之一第二訊息輸入字集合之一第二訊息排程電路。
- 如請求項5之積體電路,其中該共用邏輯電路基於該等第一及第二訊息而產生一選定訊息輸入字,其中該共用邏輯電路將該選定訊息輸入字提供至該等第一及第二密碼編譯雜湊電路兩者,且其中該等第一及第二密碼編譯雜湊電路基於該選定訊息輸入字而執行該密碼編譯雜湊演算法之該複數個順序回合中之至少一者。
- 如請求項6之積體電路,其中該共用邏輯電路針對該等第一及第二處理核心執行該密碼編譯雜湊演算法之該複數個順序回合之一子集。
- 如請求項1之積體電路,其中該控制電路經組態以控制該第一處理核心以在一第一搜尋空間內完成該密碼編譯函數且其中該控制電路經組態以控制該第二處理核心以在不同於該第一搜尋空間之一第二搜尋空間內完成該密碼編譯函數。
- 如請求項8之積體電路,其中該共用邏輯電路經組態以完成對應於該第一搜尋空間與該第二搜尋空間之間的一重疊的該密碼編譯函數之一部分。
- 如請求項1之積體電路,其進一步包括:一第三處理核心,其中該共用邏輯電路在該等第一、第二及第三處理核心之間共用,且其中該控制電路經組態以將該等控制信號提供至該共用邏輯電路以控制該等第一、第二及第三處理核心以根據該加密貨幣協定並行完成該密碼編譯函數。
- 如請求項10之積體電路,其進一步包括:部分共用邏輯電路,其由該等第一及第二處理核心而非該第三處理核心共用,其中該部分共用邏輯電路之一輸入耦合至該共用邏輯電路之一輸出。
- 如請求項11之積體電路,其進一步包括:非共用邏輯電路,其形成於該第一處理核心上而非該等第二及第三處理核心上,其中該非共用邏輯電路之一輸入耦合至該部分共用邏輯電路之一輸出,且其中該非共用邏輯電路經組態以產生一雜湊輸出值。
- 如請求項1之積體電路,其中該等第一及第二處理核心經組態以藉由根據一比特幣協定完成該密碼編譯函數而並行產生比特幣獎勵。
- 如請求項1之積體電路,其中該第一處理核心形成於該積體電路之一第一區上,該第二處理核心形成於不同於該第一區的該積體電路之一第二區上,且該共用邏輯電路形成於該積體電路之該等第一及第二區中之僅一者上。
- 一種用於根據一加密貨幣協定產生加密貨幣之數位採礦電路,其包括:訊息排程電路,其基於自控制電路接收之至少一個輸入訊息而產生複數個訊息字;密碼編譯雜湊電路之一第一回合,其基於一輸入值及該複數個訊息字中之一第一訊息字而產生一第一雜湊值;密碼編譯雜湊電路之一第二回合,其自密碼編譯雜湊電路之該第一回合接收該第一雜湊值且基於該第一雜湊值及該複數個訊息字中之一第二訊息字而產生第二及第三雜湊值;及密碼編譯雜湊電路之一最終回合,其至少部分地基於該第二 雜湊值及該複數個訊息字中之一第三訊息字而產生一第一雜湊輸出值且至少部分地基於該第三雜湊值及該第三訊息字而產生一第二雜湊輸出值。
- 如請求項15之數位採礦電路,其中密碼編譯雜湊電路之該最終回合經組態以至少部分地基於該第二雜湊輸出值及該第三訊息字而產生一第三雜湊輸出值。
- 如請求項15之數位採礦電路,其進一步包括:一第一加法器電路,其自密碼編譯雜湊電路之該最終回合接收該第一雜湊輸出值且自該控制電路接收一初始雜湊值,其中該第一加法器電路經組態以基於該第一雜湊輸出值及該初始雜湊值而產生一第一最終雜湊值;一第二加法器電路,其自密碼編譯雜湊電路之該最終回合接收該第二雜湊輸出值且自該控制電路接收該初始雜湊值,其中該第二加法器電路經組態以基於該第二雜湊輸出值及該初始雜湊值而產生一第二最終雜湊值。
- 如請求項17之數位採礦電路,其進一步包括:資料填補電路,其基於由該第一加法器電路產生之該等第一最終雜湊值而產生一額外輸入訊息;及一密碼編譯雜湊模組,其接收該額外輸入訊息且至少基於該所接收額外輸入訊息而執行複數個密碼編譯雜湊回合。
- 如請求項17之數位採礦電路,其進一步包括:難度比較電路,其自該第一加法器電路接收該第一最終雜湊值,其中該難度比較電路經組態以執行該第一最終雜湊值與一預定難度值之間的一比較,且其中該難度比較電路經組態以基於該比較而將一密碼編譯解發現信號輸出至該控制電路。
- 一種一積體電路上之加密貨幣採礦電路,其包括: 一第一處理核心,其具有第一雜湊電路;一第二處理核心,其具有第二雜湊電路,其中該第一雜湊電路及該第二雜湊電路各自包含至少基於一初始雜湊值及複數個訊息字而執行密碼編譯雜湊運算之密碼編譯雜湊邏輯之複數個順序回合;控制電路,其控制該等第一及第二處理核心以在各別第一及第二搜尋空間內根據一加密貨幣協定完成一密碼編譯函數,其中該第一搜尋空間不同於該第二搜尋空間;及共用訊息排程電路,其將該複數個訊息字中之一第一訊息字提供至該第一雜湊電路及該第二雜湊電路兩者中之密碼編譯雜湊邏輯之一第一回合。
- 如請求項20之加密貨幣採礦電路,其進一步包括:一第三處理核心,其具有第三雜湊電路,其中該第三雜湊電路包含至少基於該複數個訊息字而執行密碼編譯雜湊運算之密碼編譯雜湊邏輯之複數個順序回合,其中該控制電路控制該第三處理核心以在不同於該等第一及第二搜尋空間之一第三搜尋空間內完成該密碼編譯函數。
- 如請求項21之加密貨幣採礦電路,其中該共用訊息排程電路將該第一訊息字提供至該第三處理核心中之密碼編譯雜湊邏輯之一第一回合。
- 如請求項22之加密貨幣採礦電路,其進一步包括:部分共用訊息排程電路,其將一第二訊息字提供至該等第一及第二處理核心中之密碼編譯雜湊邏輯之一第二回合而不將該第二訊息字提供至該第三處理核心,其中密碼編譯雜湊邏輯之該第二回合在密碼編譯雜湊邏輯之該第一回合之後。
- 如請求項23之加密貨幣採礦電路,其進一步包括: 非共用訊息排程電路,其將一第三訊息字提供至該第一處理核心中之密碼編譯雜湊邏輯之一第三回合而不將該第三訊息字提供至該等第二及第三處理核心,其中密碼編譯雜湊邏輯之該第三回合在密碼編譯雜湊邏輯之該等第一及第二回合之後。
- 如請求項24之加密貨幣採礦電路,其中該共用訊息排程電路經組態以基於自該控制電路接收以用於該第一處理核心之一第一訊息、自該控制電路接收以用於該第二處理核心之一第二訊息及自該控制電路接收以用於該第三處理核心之一第三訊息而產生該第一訊息字,其中該第二訊息不同於該第一訊息且該第三訊息不同於該等第一及第二訊息。
- 如請求項25之加密貨幣採礦電路,其中該部分共用訊息排程電路經組態以基於自控制器接收之該等第一及第二訊息而產生該第二訊息字。
- 如請求項26之加密貨幣採礦電路,其中該非共用訊息排程電路經組態以基於自該控制器接收之該第一訊息而產生該第三訊息字。
- 如請求項27之加密貨幣採礦電路,其中該第一訊息包括一512位元訊息,該初始雜湊值包括一256位元初始雜湊值,該等密碼編譯雜湊運算包括安全雜湊演算法256(SHA-256)密碼編譯雜湊運算,且該加密貨幣協定包括比特幣協定。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201462073522P | 2014-10-31 | 2014-10-31 | |
US62/073,522 | 2014-10-31 | ||
US14/866,102 | 2015-09-25 | ||
US14/866,102 US10409827B2 (en) | 2014-10-31 | 2015-09-25 | Digital currency mining circuitry having shared processing logic |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201627889A TW201627889A (zh) | 2016-08-01 |
TWI610188B true TWI610188B (zh) | 2018-01-01 |
Family
ID=55852899
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW104134986A TWI610188B (zh) | 2014-10-31 | 2015-10-23 | 具有共用處理邏輯之數位貨幣採礦電路 |
Country Status (3)
Country | Link |
---|---|
US (2) | US10409827B2 (zh) |
TW (1) | TWI610188B (zh) |
WO (1) | WO2016069243A1 (zh) |
Families Citing this family (74)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11282139B1 (en) | 2013-06-28 | 2022-03-22 | Gemini Ip, Llc | Systems, methods, and program products for verifying digital assets held in a custodial digital asset wallet |
US9898782B1 (en) | 2013-06-28 | 2018-02-20 | Winklevoss Ip, Llc | Systems, methods, and program products for operating exchange traded products holding digital math-based assets |
US10269009B1 (en) | 2013-06-28 | 2019-04-23 | Winklevoss Ip, Llc | Systems, methods, and program products for a digital math-based asset exchange |
US10354325B1 (en) | 2013-06-28 | 2019-07-16 | Winklevoss Ip, Llc | Computer-generated graphical user interface |
US10068228B1 (en) | 2013-06-28 | 2018-09-04 | Winklevoss Ip, Llc | Systems and methods for storing digital math-based assets using a secure portal |
SI3095044T1 (sl) * | 2013-11-19 | 2021-02-26 | Top Galore Limited | Postopki in naprave za rudarjenje blokov |
US10409827B2 (en) * | 2014-10-31 | 2019-09-10 | 21, Inc. | Digital currency mining circuitry having shared processing logic |
US9853977B1 (en) | 2015-01-26 | 2017-12-26 | Winklevoss Ip, Llc | System, method, and program product for processing secure transactions within a cloud computing system |
US10158480B1 (en) | 2015-03-16 | 2018-12-18 | Winklevoss Ip, Llc | Autonomous devices |
US10915891B1 (en) | 2015-03-16 | 2021-02-09 | Winklevoss Ip, Llc | Autonomous devices |
JP6364132B2 (ja) | 2015-03-31 | 2018-07-25 | ナスダック, インコーポレイテッドNasdaq, Inc. | ブロックチェーン取引記録のシステムおよび方法 |
US9942046B2 (en) | 2015-05-06 | 2018-04-10 | 21, Inc. | Digital currency mining circuitry with adaptable difficulty compare capabilities |
EP3317775B1 (en) | 2015-07-02 | 2022-02-16 | Nasdaq, Inc. | Systems and methods of secure provenance for distributed transaction databases |
US10108812B2 (en) | 2016-01-28 | 2018-10-23 | Nasdaq, Inc. | Systems and methods for securing and disseminating time sensitive information using a blockchain |
EP3411824B1 (en) | 2016-02-04 | 2019-10-30 | Nasdaq Technology AB | Systems and methods for storing and sharing transactional data using distributed computer systems |
US10313108B2 (en) * | 2016-06-29 | 2019-06-04 | Intel Corporation | Energy-efficient bitcoin mining hardware accelerators |
US10142098B2 (en) | 2016-06-29 | 2018-11-27 | Intel Corporation | Optimized SHA-256 datapath for energy-efficient high-performance Bitcoin mining |
GB201611698D0 (en) * | 2016-07-05 | 2016-08-17 | Eitc Holdings Ltd | Blockchain-implemented control method and system |
US10841097B2 (en) | 2016-07-08 | 2020-11-17 | Mastercard International Incorporated | Method and system for verification of identity attribute information |
CN106897348B (zh) * | 2016-08-19 | 2020-10-27 | 创新先进技术有限公司 | 一种数据存储、数据校验、数据溯源方法和设备 |
US10177908B2 (en) | 2016-08-30 | 2019-01-08 | Workday, Inc. | Secure storage decryption system |
US10187203B2 (en) | 2016-08-30 | 2019-01-22 | Workday, Inc. | Secure storage encryption system |
US10460118B2 (en) | 2016-08-30 | 2019-10-29 | Workday, Inc. | Secure storage audit verification system |
US10755242B2 (en) * | 2016-09-23 | 2020-08-25 | Intel Corporation | Bitcoin mining hardware accelerator with optimized message digest and message scheduler datapath |
US10587628B2 (en) * | 2016-09-29 | 2020-03-10 | Microsoft Technology Licensing, Llc | Verifiable outsourced ledgers |
CN109691008B (zh) | 2016-10-03 | 2022-06-14 | 维萨国际服务协会 | 网络拓扑 |
US10586210B2 (en) * | 2016-11-30 | 2020-03-10 | International Business Machines Corporation | Blockchain checkpoints and certified checkpoints |
TWI629883B (zh) * | 2016-12-23 | 2018-07-11 | 現代財富控股有限公司 | 基於區塊鏈的節點清單維護系統及其方法 |
TWI629884B (zh) * | 2017-01-20 | 2018-07-11 | 現代財富控股有限公司 | 基於區塊鏈的節點推舉系統及其方法 |
WO2018145201A1 (en) | 2017-02-08 | 2018-08-16 | Upstream Data Inc. | Blockchain mine at oil or gas facility |
CN111917864B (zh) * | 2017-02-22 | 2023-08-22 | 创新先进技术有限公司 | 一种业务校验的方法及装置 |
US11249977B2 (en) * | 2017-03-03 | 2022-02-15 | Mastercard International Incorporated | Method and system for storage and transfer of verified data via blockchain |
CN107341702B (zh) | 2017-03-08 | 2020-06-23 | 创新先进技术有限公司 | 一种业务处理的方法及装置 |
CN107391527B (zh) | 2017-03-28 | 2020-03-27 | 创新先进技术有限公司 | 一种基于区块链的数据处理方法及设备 |
CN111756550B (zh) | 2017-03-28 | 2023-08-22 | 创新先进技术有限公司 | 一种区块链共识方法及装置 |
CN113282659A (zh) * | 2017-03-28 | 2021-08-20 | 创新先进技术有限公司 | 一种基于区块链的数据处理方法及设备 |
CN113766035B (zh) | 2017-03-28 | 2023-05-23 | 创新先进技术有限公司 | 一种业务受理及共识的方法及装置 |
US10762479B2 (en) * | 2017-04-05 | 2020-09-01 | Samsung Sds Co., Ltd. | Method and system for processing blockchain-based real-time transaction |
CN107368184B (zh) | 2017-05-12 | 2020-04-14 | 阿里巴巴集团控股有限公司 | 一种虚拟现实场景中的密码输入方法和装置 |
TWI622949B (zh) * | 2017-05-26 | 2018-05-01 | 富邦金融控股股份有限公司 | 具多重密鑰的kyc資料標記之爭議救濟系統及其方法 |
CN107402824B (zh) | 2017-05-31 | 2020-06-02 | 创新先进技术有限公司 | 一种数据处理的方法及装置 |
CN107733966A (zh) * | 2017-06-14 | 2018-02-23 | 广东网金控股股份有限公司 | 一种区块链系统与传统中心化it系统的连接装置 |
CN112804349B (zh) | 2017-07-14 | 2023-07-04 | 创新先进技术有限公司 | 区块链共识网络中处理共识请求的方法、装置和电子设备 |
CN111866008B (zh) | 2017-07-14 | 2022-05-31 | 创新先进技术有限公司 | 一种业务数据处理方法、业务处理方法及设备 |
US10668990B2 (en) * | 2017-07-16 | 2020-06-02 | Lone Gull Holdings, Ltd. | Self-powered computing buoy |
EP3468095A1 (en) * | 2017-10-06 | 2019-04-10 | Siemens Aktiengesellschaft | Transaction selection device for selecting blockchain transactions |
US11163869B2 (en) * | 2017-10-27 | 2021-11-02 | International Business Machines Corporation | Identity authentication without entry of password |
US11658801B2 (en) * | 2017-11-09 | 2023-05-23 | Nchain Licensing Ag | System for securing verification key from alteration and verifying validity of a proof of correctness |
US10630769B2 (en) * | 2017-12-26 | 2020-04-21 | Akamai Technologies, Inc. | Distributed system of record transaction receipt handling in an overlay network |
US10583898B2 (en) * | 2018-01-27 | 2020-03-10 | Lone Gull Holdings, Ltd. | Wind-powered computing buoy |
US11522700B1 (en) | 2018-02-12 | 2022-12-06 | Gemini Ip, Llc | Systems, methods, and program products for depositing, holding and/or distributing collateral as a token in the form of digital assets on an underlying blockchain |
US10373129B1 (en) | 2018-03-05 | 2019-08-06 | Winklevoss Ip, Llc | System, method and program product for generating and utilizing stable value digital assets |
US10540654B1 (en) | 2018-02-12 | 2020-01-21 | Winklevoss Ip, Llc | System, method and program product for generating and utilizing stable value digital assets |
US11909860B1 (en) | 2018-02-12 | 2024-02-20 | Gemini Ip, Llc | Systems, methods, and program products for loaning digital assets and for depositing, holding and/or distributing collateral as a token in the form of digital assets on an underlying blockchain |
US10373158B1 (en) | 2018-02-12 | 2019-08-06 | Winklevoss Ip, Llc | System, method and program product for modifying a supply of stable value digital asset tokens |
US11200569B1 (en) | 2018-02-12 | 2021-12-14 | Winklevoss Ip, Llc | System, method and program product for making payments using fiat-backed digital assets |
US10929842B1 (en) | 2018-03-05 | 2021-02-23 | Winklevoss Ip, Llc | System, method and program product for depositing and withdrawing stable value digital assets in exchange for fiat |
US11308487B1 (en) | 2018-02-12 | 2022-04-19 | Gemini Ip, Llc | System, method and program product for obtaining digital assets |
US11139955B1 (en) | 2018-02-12 | 2021-10-05 | Winklevoss Ip, Llc | Systems, methods, and program products for loaning digital assets and for depositing, holding and/or distributing collateral as a token in the form of digital assets on an underlying blockchain |
US10438290B1 (en) | 2018-03-05 | 2019-10-08 | Winklevoss Ip, Llc | System, method and program product for generating and utilizing stable value digital assets |
US11475442B1 (en) | 2018-02-12 | 2022-10-18 | Gemini Ip, Llc | System, method and program product for modifying a supply of stable value digital asset tokens |
US11334883B1 (en) | 2018-03-05 | 2022-05-17 | Gemini Ip, Llc | Systems, methods, and program products for modifying the supply, depositing, holding and/or distributing collateral as a stable value token in the form of digital assets |
US11169934B2 (en) * | 2018-06-28 | 2021-11-09 | Intel Corporation | Systems, methods and apparatus for low latency memory integrity mac for trust domain extensions |
CN109242453B (zh) | 2018-08-07 | 2021-03-23 | 创新先进技术有限公司 | 一种基于中心化结算与区块链存证的交易方法及系统 |
US10404473B1 (en) * | 2018-09-05 | 2019-09-03 | Accelor Ltd. | Systems and methods for processing transaction verification operations in decentralized applications |
US10432405B1 (en) | 2018-09-05 | 2019-10-01 | Accelor Ltd. | Systems and methods for accelerating transaction verification by performing cryptographic computing tasks in parallel |
US11063764B2 (en) * | 2018-11-09 | 2021-07-13 | Mastercard International Incorporated | Method and system for quantum-resistant hashing scheme |
CA3183109A1 (en) | 2019-05-15 | 2020-11-19 | Upstream Data Inc. | Portable blockchain mining system and methods of use |
US11403640B2 (en) * | 2019-05-21 | 2022-08-02 | Jpmorgan Chase Bank, N.A. | Mobile payment fraudulent device list |
US11501370B1 (en) | 2019-06-17 | 2022-11-15 | Gemini Ip, Llc | Systems, methods, and program products for non-custodial trading of digital assets on a digital asset exchange |
JP7383949B2 (ja) * | 2019-09-20 | 2023-11-21 | 富士電機株式会社 | 情報処理装置及びプログラム |
CA3076653A1 (en) | 2020-03-21 | 2021-09-21 | Upstream Data Inc. | Portable blockchain mining systems and methods of use |
CN114442996A (zh) * | 2020-10-30 | 2022-05-06 | 深圳比特微电子科技有限公司 | 计算芯片、算力板和数字货币挖矿机 |
CN112925504A (zh) * | 2021-02-20 | 2021-06-08 | 北京比特大陆科技有限公司 | 工作量证明的计算装置、asic芯片和工作量证明的计算方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7684563B1 (en) * | 2003-12-12 | 2010-03-23 | Sun Microsystems, Inc. | Apparatus and method for implementing a unified hash algorithm pipeline |
US20140093069A1 (en) * | 2012-09-28 | 2014-04-03 | Gilbert M. Wolrich | Instruction set for message scheduling of sha256 algorithm |
Family Cites Families (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2337648B (en) * | 1998-05-19 | 2002-02-13 | Lsi Logic Corp | Electronic circuits |
US7142669B2 (en) | 2000-11-29 | 2006-11-28 | Freescale Semiconductor, Inc. | Circuit for generating hash values |
US6829355B2 (en) * | 2001-03-05 | 2004-12-07 | The United States Of America As Represented By The National Security Agency | Device for and method of one-way cryptographic hashing |
US7213148B2 (en) * | 2001-06-13 | 2007-05-01 | Corrent Corporation | Apparatus and method for a hash processing system using integrated message digest and secure hash architectures |
US7249255B2 (en) | 2001-06-13 | 2007-07-24 | Corrent Corporation | Apparatus and method for a hash processing system using multiple hash storage areas |
US20040015676A1 (en) | 2002-07-17 | 2004-01-22 | Pierre-Yvan Liardet | Sharing of a logic operator having a work register |
US7584441B2 (en) | 2003-09-19 | 2009-09-01 | Cadence Design Systems, Inc. | Method for generating optimized constraint systems for retimable digital designs |
US20060136531A1 (en) * | 2004-07-06 | 2006-06-22 | Mathstar, Inc. | Leading zero counter for binary data alignment |
US20080256503A1 (en) | 2006-09-12 | 2008-10-16 | International Business Machines Corporation | Power management architecture and method of modulating oscillator frequency based on voltage supply |
JP2008112318A (ja) | 2006-10-31 | 2008-05-15 | Matsushita Electric Ind Co Ltd | 半導体集積回路の消費電力最適化方法及び半導体設計装置 |
US7784013B2 (en) * | 2007-01-03 | 2010-08-24 | PDF Acquisition Corp | Method for the definition of a library of application-domain-specific logic cells |
US7827516B1 (en) * | 2007-01-03 | 2010-11-02 | Pdf Solutions, Inc. | Method and system for grouping logic in an integrated circuit design to minimize number of transistors and number of unique geometry patterns |
US7757187B2 (en) | 2007-01-03 | 2010-07-13 | Pdf Solutions Inc. | Method for mapping a Boolean logic network to a limited set of application-domain specific logic cells |
US8200992B2 (en) * | 2007-09-24 | 2012-06-12 | Cognitive Electronics, Inc. | Parallel processing computer systems with reduced power consumption and methods for providing the same |
US8135960B2 (en) | 2007-10-30 | 2012-03-13 | International Business Machines Corporation | Multiprocessor electronic circuit including a plurality of processors and electronic data processing system |
US8738860B1 (en) * | 2010-10-25 | 2014-05-27 | Tilera Corporation | Computing in parallel processing environments |
US8449378B2 (en) * | 2011-09-13 | 2013-05-28 | Igt | Gaming system, gaming device and method for utilizing bitcoins |
US8523657B2 (en) * | 2011-09-13 | 2013-09-03 | Igt | Gaming system, gaming device and method for utilizing bitcoins |
US8832450B2 (en) | 2012-05-31 | 2014-09-09 | Apple Inc. | Methods and apparatus for data hashing based on non-linear operations |
US9495668B1 (en) * | 2013-05-10 | 2016-11-15 | EMC IP Holding Company LLC | Computing solutions to a problem involving inversion of a one-way function |
US20160085955A1 (en) * | 2013-06-10 | 2016-03-24 | Doosra, Inc. | Secure Storing and Offline Transferring of Digitally Transferable Assets |
US10038550B2 (en) * | 2013-08-08 | 2018-07-31 | Intel Corporation | Instruction and logic to provide a secure cipher hash round functionality |
US20150170112A1 (en) * | 2013-10-04 | 2015-06-18 | Erly Dalvo DeCastro | Systems and methods for providing multi-currency platforms comprising means for exchanging and interconverting tangible and virtual currencies in various transactions, banking operations, and wealth management scenarios |
SI3095044T1 (sl) | 2013-11-19 | 2021-02-26 | Top Galore Limited | Postopki in naprave za rudarjenje blokov |
US11270298B2 (en) * | 2014-04-14 | 2022-03-08 | 21, Inc. | Digital currency mining circuitry |
JP6813477B2 (ja) * | 2014-05-09 | 2021-01-13 | ヴェリタセウム アイエヌシー. | 信頼度が低い、または信頼度が皆無の当事者間での価値転送を円滑化する装置、システム、または方法 |
US9818092B2 (en) * | 2014-06-04 | 2017-11-14 | Antti Pennanen | System and method for executing financial transactions |
US9836908B2 (en) * | 2014-07-25 | 2017-12-05 | Blockchain Technologies Corporation | System and method for securely receiving and counting votes in an election |
US20160086175A1 (en) * | 2014-09-22 | 2016-03-24 | Qualcomm Incorporated | Peer-to-peer transaction system |
US20160112200A1 (en) * | 2014-10-17 | 2016-04-21 | 21, Inc. | Cryptographic hashing circuitry having improved scheduling efficiency |
US20170242475A1 (en) * | 2014-10-30 | 2017-08-24 | Spondoolies Tech Ltd. | Method and system for reducing power consumption in bitcoin mining via waterfall structure |
US10409827B2 (en) * | 2014-10-31 | 2019-09-10 | 21, Inc. | Digital currency mining circuitry having shared processing logic |
US11526877B2 (en) * | 2015-10-22 | 2022-12-13 | Coinbase, Inc. | Electronic devices having embedded circuitry for accessing remote digital services |
-
2015
- 2015-09-25 US US14/866,102 patent/US10409827B2/en active Active
- 2015-10-09 WO PCT/US2015/054895 patent/WO2016069243A1/en active Application Filing
- 2015-10-23 TW TW104134986A patent/TWI610188B/zh active
-
2019
- 2019-07-31 US US16/528,405 patent/US11301481B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7684563B1 (en) * | 2003-12-12 | 2010-03-23 | Sun Microsystems, Inc. | Apparatus and method for implementing a unified hash algorithm pipeline |
US20140093069A1 (en) * | 2012-09-28 | 2014-04-03 | Gilbert M. Wolrich | Instruction set for message scheduling of sha256 algorithm |
Also Published As
Publication number | Publication date |
---|---|
TW201627889A (zh) | 2016-08-01 |
US10409827B2 (en) | 2019-09-10 |
US20190354523A1 (en) | 2019-11-21 |
US20160125040A1 (en) | 2016-05-05 |
US11301481B2 (en) | 2022-04-12 |
WO2016069243A1 (en) | 2016-05-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI610188B (zh) | 具有共用處理邏輯之數位貨幣採礦電路 | |
US20200412544A1 (en) | Devices and circuitry for computing hash values | |
US9942046B2 (en) | Digital currency mining circuitry with adaptable difficulty compare capabilities | |
US11270298B2 (en) | Digital currency mining circuitry | |
TWI721699B (zh) | 用於平行處理區塊鏈交易之系統及方法 | |
RU2708358C1 (ru) | Криптографическая интегральная схема специального назначения, включающая в себя закодированную в цепи функцию преобразования | |
EP4184410A1 (en) | Operating system for blockchain iot devices | |
US10545865B2 (en) | Systems and methods for implementing low-latency lookup circuits using sparse hash functions | |
CA2637986C (en) | Signal generator based device security | |
KR20190067581A (ko) | 블록체인 트랜잭션 분산 처리 장치 및 방법 | |
US10558188B2 (en) | Sequential logic circuitry with reduced dynamic power consumption | |
CN111769948A (zh) | 基于区块链的链间交互方法、系统、装置和计算机设备 | |
CN110750329B (zh) | 基于fpga实现虚拟机运算的方法及装置 | |
US20210073796A1 (en) | Method of selective authentication of a blockchain user with a smart contract | |
EP3857814A1 (en) | Computer-implemented system and method for transferring access to digital resource | |
WO2021190179A1 (zh) | 一种同步处理方法和相关装置 | |
CN113994324B (zh) | 具有高效世界状态数据结构的区块链系统 | |
US11943332B2 (en) | Low depth AES SBox architecture for area-constraint hardware | |
EP4030683A1 (en) | Transfer of state data between channels of a decentralized distributed database | |
CN117375828A (zh) | 一种密钥协商方法、装置、电子设备及可读存储介质 | |
CN116029706A (zh) | 一种用于电子货币的区块链可编辑方法、装置和交易方法 | |
CN115941262A (zh) | 区块链系统中的交易执行方法和节点 | |
Alsubaie | A NOVEL QUAD DIRECTION BLOCKS BLOCKCHAIN TO IMPROVE BLOCKCHAIN SCALABILITY |