TW202414256A - 基於證明驗證之認證資料饋入 - Google Patents
基於證明驗證之認證資料饋入 Download PDFInfo
- Publication number
- TW202414256A TW202414256A TW112145115A TW112145115A TW202414256A TW 202414256 A TW202414256 A TW 202414256A TW 112145115 A TW112145115 A TW 112145115A TW 112145115 A TW112145115 A TW 112145115A TW 202414256 A TW202414256 A TW 202414256A
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- computer
- blockchain
- prover
- client
- Prior art date
Links
- 238000012795 verification Methods 0.000 title description 29
- 238000000034 method Methods 0.000 claims abstract description 83
- 238000004891 communication Methods 0.000 claims description 159
- 230000015654 memory Effects 0.000 claims description 11
- 150000003839 salts Chemical class 0.000 claims description 11
- 238000013515 script Methods 0.000 abstract description 46
- 230000006870 function Effects 0.000 description 42
- 238000010586 diagram Methods 0.000 description 21
- 238000011156 evaluation Methods 0.000 description 20
- 230000008569 process Effects 0.000 description 20
- 238000005516 engineering process Methods 0.000 description 13
- 238000012552 review Methods 0.000 description 8
- 238000004422 calculation algorithm Methods 0.000 description 7
- 238000012546 transfer Methods 0.000 description 7
- 238000004590 computer program Methods 0.000 description 6
- 230000004044 response Effects 0.000 description 6
- 230000001934 delay Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 238000012790 confirmation Methods 0.000 description 4
- 238000005065 mining Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 238000007635 classification algorithm Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 239000013598 vector Substances 0.000 description 3
- 208000001613 Gambling Diseases 0.000 description 2
- 230000009471 action Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000000670 limiting effect Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000006403 short-term memory Effects 0.000 description 2
- 238000010200 validation analysis Methods 0.000 description 2
- 241000238876 Acari Species 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 239000000872 buffer Substances 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000013075 data extraction Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000000428 dust Substances 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000002427 irreversible effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000012946 outsourcing Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 239000013259 porous coordination polymer Substances 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000002829 reductive effect Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- 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/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0637—Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
-
- 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2246—Trees, e.g. B+trees
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/16—Implementing security features at a particular protocol layer
- H04L63/166—Implementing security features at a particular protocol layer at the transport layer
-
- 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/3218—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 proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs
-
- 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
- H04L9/3239—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 involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
-
- 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/3247—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 involving digital signatures
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
- Storage Device Security (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
判定何時及/或如何執行發佈至一區塊鏈網路之一程式或指令碼可依賴於在該區塊鏈外部之資料(亦即,外部資料),諸如,關於現實世界狀態及事件之資料。一證明器(例如,該區塊鏈網路之一節點)可代表一用戶端執行一或多個計算,諸如,該程式之執行。為了恰當地執行該程式,該證明器可依賴於外部資料,該證明器可自一資料提供者獲得外部資料,該資料提供者與該用戶端具有一信任關係(例如,該用戶端將由一受信任之資料提供者提供的資料視作有效的)。可由一證明器利用本文中描述之系統及方法來提供對據稱自一資料提供者獲得的輸入資料之真實性之可用密碼技術驗證之擔保,該輸入資料在執行發佈至一區塊鏈網路的一程式或指令碼時使用。一區塊鏈網路之一實例為一基於比特幣之網路。
Description
發明領域
本發明大體係關於區塊鏈技術,且更特定言之,係關於可在一比特幣指令碼中驗證的一對話之一證明之產生,從而亦提供可在求助之情況中進一步利用之資訊。在對話期間發生某些通訊之證明可利用默克爾(Merkle)樹。可將對話或通訊之資料用作一輸入以正確地執行一程式或指令碼。本發明特別適合於(但不限於)在智慧型合約產生及執行中之使用。
發明背景
在本文中,術語「區塊鏈」可指若干類型之電子、基於電腦、分散式帳簿中之任一者。此等帳簿包括基於共識之區塊鏈及交易鏈技術、許可及未許可帳簿、共用帳簿及其變化。區塊鏈技術的最廣泛已知之應用為比特幣帳簿,儘管已提議並開發了其他區塊鏈實施。雖然出於方便及說明之目的,比特幣可被稱作在本文中描述的技術之一有用應用,但比特幣僅為在本揭露內容中描述之技術可應用於的許多應用中之一者。然而應注意,本發明不限於與比特幣區塊鏈一起使用,且包括非商業應用之替代區塊鏈實施及協定亦屬於本發明之範疇。舉例而言,本揭露內容內描述之技術將提供利用其他區塊鏈實施之優勢,關於發佈至可依賴於在區塊鏈外部之資料的區塊鏈網路之程式或指令碼之執行,該等其他區塊鏈實施具有類似於比特幣之限制。
區塊鏈可指同級間電子帳簿,其實施為由區塊組成的基於電腦之非集中式系統,區塊又可由交易及其他資訊組成。在一些實例中,「區塊鏈交易」指編碼包含資料之欄位值之結構化彙集及條件集合的輸入訊息,該條件集合之滿足係欄位之集合待寫入至區塊鏈資料結構的前提條件。舉例而言,在比特幣之情況下,每一交易係編碼區塊鏈系統中之參與者之間的數位資產之控制之傳送的資料結構,且包括至少一個輸入及至少一個輸出。在一些實施例中,「數位資產」指與一使用權相關聯之二進位資料。數位資產之實例包括比特幣、以太幣及萊特幣。術語「比特幣」在本文中用以包括為比特幣協定之變體的任何協定。在一些實施中,傳送數位資產之控制可藉由使來自第一實體之數位資產之至少一部分重新關聯至第二實體來執行。區塊鏈之每一區塊可含有先前區塊之雜湊,使得區塊變得鏈接在一起,以創造自從一開始便已寫入至區塊鏈之所有交易的永久性、不可更改記錄。
在一些實例中,「基於堆疊之指令碼處理語言」指支援各種基於堆疊之或堆疊導向式執行模型及操作的程式設計語言。亦即,基於堆疊之指令碼處理語言可利用一堆疊。在堆疊之情況下,值可經推入至堆疊之頂部或自堆疊之頂部彈出。經執行以操縱堆疊之各種操作可導致將該等值中之一或多者推入至堆疊之頂部或自堆疊之頂部彈出該等值中之一或多者。舉例而言,OP_EQUAL操作將頂部兩個項目自堆疊彈出,將其進行比較,且將結果(例如,若相等,則1,或若不相等,則0)推入至堆疊之頂部。對堆疊執行之其他操作(諸如,OP_PICK)可允許自除堆疊之頂部外的位置選擇項目。在由本發明實施例中之一些使用的一些指令碼處理語言中,可存在至少兩個堆疊:一主堆疊及一交替堆疊。指令碼處理語言之一些操作可將項目自一個堆疊之頂部移動至另一堆疊之頂部。舉例而言,OP_TOALTSTACK將值自主堆疊之頂部移動至交替堆疊之頂部。應注意,在一些情況下,基於堆疊之指令碼處理語言可不僅限於處於嚴格後入先出(LIFO)方式之操作。舉例而言,基於堆疊之指令碼處理語言可支援將堆疊中之第n項複製或移動至頂部之操作(例如,在比特幣中,分別OP_PICK及OP_ROLL)。可將以基於堆疊之指令碼處理語言撰寫的指令碼推入至可使用諸如向量、清單或堆疊之任何合適資料結構實施的一邏輯堆疊上。
為了將交易寫入至區塊鏈,交易必須經「確證」。網路節點(挖掘節點)執行工作以確保每一交易有效,其中無效交易被網路拒絕。一節點可具有不同於其他節點之有效性標準。因為區塊鏈中之有效性係基於共識的,所以若大多數節點同意交易有效,則交易被視為有效。安裝於節點上之軟體用戶端對參考未用交易(UTXO)之交易執行此確證工作,該驗證工作部分地藉由執行UTXO鎖定及解鎖指令碼來進行。若鎖定及解鎖指令碼之執行評估為真且符合其他確證條件(若適用),則交易由該節點確證。經確證交易被傳播至其他網路節點,因此挖掘節點可選擇在區塊鏈中包括該交易。因此,為了將交易寫入至區塊鏈,其必須i)由接收交易之第一節點確證--若交易經確證,則節點將其中繼至網路中之其他節點;及ii)添加至由挖掘節點建置之新區塊;及iii)挖掘,亦即,添加至過去交易之公共帳簿。當足夠數目個區塊經添加至區塊鏈以使交易實際上不可逆時,該交易被視為經確認。
雖然區塊鏈技術由於密碼貨幣實施之使用而為最廣泛已知的,但數位企業家已開始探索比特幣所基於之密碼編譯安全系統及可儲存於區塊鏈上以實施新系統之資料兩者的使用。區塊鏈技術在區塊鏈可用於不限於密碼貨幣範圍之自動任務及過程時高度有利。此等解決方案將夠利用區塊鏈之益處(例如,事件的永久性防篡改記錄、分散式處理等),同時在其應用中變得更多功能。
本揭露內容描述一或多個基於區塊鏈之電腦程式的技術態樣。基於區塊鏈之電腦程式可為記錄於區塊鏈交易中之機器可讀且可執行程式。基於區塊鏈之電腦程式可包含可處理輸入以便產生結果之規則,該等規則可接著使動作取決於彼等結果而執行。當前研究之一個領域係使用基於區塊鏈之電腦程式來實施「智慧型合約」。不同於將以自然語言書寫之傳統合約,智慧型合約可為經設計以使機器可讀合約或協議之條款之執行自動化的電腦程式。
區塊鏈相關關注之另一領域係使用「符記」(或「彩色幣」)來表示現實世界實體及經由區塊鏈傳送現實世界實體。潛在地敏感或秘密之項目可由符記表示,符記不具有可辨別之含義或值。符記因此充當允許自區塊鏈引用現實世界項目之識別符。
在實施例中,儘管可在智慧型合約中之特定步驟處編碼與特定實體之互動,但智慧型合約可另外被自動地執行且自我實行。其為機器可讀且可執行的。在一些實例中,自動執行指成功地執行以實現UTXO之轉移的智慧型合約之執行。注意,在此等實例中,能夠引起UTXO之轉移之「實體」指能夠在無需證明對某個秘密之瞭解的情況下建立解鎖指令碼之一實體。換言之,可確證解鎖交易而無需驗證資料源(例如,建立解鎖交易之實體)能夠存取密碼編譯秘密(例如,私用不對稱密鑰、對稱密鑰等)。又,在此等實例中,自我實行指使區塊鏈網路之確證節點根據約束來實行解鎖交易。在一些實例中,「解鎖」UTXO指建立引用UTXO且有效地執行之一解鎖交易。
區塊鏈交易輸出包括鎖定指令碼及關於諸如比特幣之數位資產之所有權的資訊。亦可被稱作負擔(encumbrance)之鎖定指令碼藉由指定需要符合以便轉移UTXO之條件來「鎖定」數位資產。舉例而言,鎖定指令碼可需要某些資料應提供於解鎖指令碼中以解鎖相關聯之數位資產。在比特幣中,鎖定指令碼亦被稱為「scriptPubKey」。需要一方提供資料來解鎖數位資產之技術涉及將資料之雜湊嵌入鎖定指令碼內部。
可將本發明描述為用於執行關於可利用零知識證明之一區塊鏈的智慧型合約之系統及方法。智慧型合約之執行可作為交易確證之部分發生。作為執行智慧型合約之部分,可能需要能夠存取在區塊鏈外部之資料(例如,鏈外資料),諸如,關於現實世界狀態及事件之資料。可利用本文所描述之技術,其中由一資料源提供之資料經認證且用於諸如發佈至區塊鏈網路之智慧型合約的程式或指令碼之執行中。儘管數位資產在一些實施例中可用作密碼貨幣,但預期數位資產在實施例中另外或替代地可用於其他內容背景中。應注意,雖然適用於數位資產之控制,但本發明在本質上係技術性的且可用於利用區塊鏈資料結構而未必涉及數位資產轉移的其他內容背景中。
發明概要
因此,需要提供改良此等態樣中之一或多者中的區塊鏈技術之方法及系統。現在已設計出此改良之解決方案。因此,根據本發明,提供一種如隨附申請專利範圍所定義之方法。
現在已設計出此改良之解決方案。
因此,根據本發明,提供如在隨附申請專利範圍中定義的系統及方法。
根據本發明,可提供一種用於一區塊鏈網路之一節點之電腦實施方法,該電腦實施方法包含:與一計算實體建立一用密碼技術保護之通訊會話;經由該用密碼技術保護之通訊會話接收包含控制發佈至一區塊鏈網路的一程式之執行之輸入資料的一通訊;接收經由該用密碼技術保護之通訊會話發生一組通訊之一第一鑒證,該組通訊包含該資料;至少部分基於該接收之輸入資料產生該程式之正確執行之一證明及自該資料源接收該資料之一第二鑒證;及將該程式之正確執行之該證明提供至另一電腦系統。
另外或替代地,本發明可描述為包含以下步驟:
與一計算實體建立一用密碼技術保護之通訊會話;
經由該用密碼技術保護之通訊會話接收包含控制發佈至一區塊鏈網路之一程式之執行的輸入資料之一通訊;
接收經由該用密碼技術保護之通訊會話發生一組通訊的一第一鑒證,該組通訊包含該資料;
至少部分基於該接收之輸入資料產生:
該程式之正確執行之一證明;及
自該資料源接收該資料之一第二鑒證;以及
將該程式之正確執行之該證明提供至另一電腦系統。
該第一鑒證可具有至少部分基於一默克爾樹之一根節點的一值,該默克爾樹包含自該組通訊判定的葉節點之一集合及一鹽值集合。
該組通訊中之通訊可具有基於該通訊經接收還是傳輸而判定之對應的中間節點。在一些情況下,該組通訊中之每一通訊具有此對應的中間節點。
第一鑒證之該值進一步至少部分基於自該默克爾樹之至少該根節點及該組通訊之一時間間隔產生的一密碼編譯雜湊輸出。適合於產生該密碼編譯雜湊輸出的一密碼編譯雜湊演算法之一實例為一SHA-256密碼編譯雜湊演算法。
該第二鑒證可至少部分基於該默克爾樹之一默克爾路徑,該默克爾路徑包含該默克爾樹之一節點集合之值,該節點集合之該等值足以計算該默克爾樹之該根節點值。
較佳地,該默克爾路徑之該節點集合包含在該默克爾樹之每一非葉及非根深度處這至多一個節點。在一些情況下,該默克爾路徑在該默克爾樹之每一非葉及非根深度處恰好包含一個節點。
該程式可包含由兩方或更多方達成一致意見之一規則集合,且該方法可包含自兩方中之至少一方信任的一或多個計算實體選擇要建立用密碼技術保護之通訊的計算實體。
較佳地,該方法可包括偵測包含一第一交易輸出及一第二交易輸出之一區塊鏈交易,其中該第一交易輸出包含一第一鎖定指令碼,其中與該第一交易輸出相關聯之一第一數位資產可由一解鎖指令碼解鎖,該解鎖指令碼編碼:與該計算實體相關聯之一公用密鑰;編碼一期望值之一數位簽名,該數位簽名之真實性可使用該公用密鑰用密碼技術驗證,及可用以產生該期望值之認證資訊;及該第二交易輸出編碼正確執行之該證明有效之一指示;及藉由提供至少該公用密鑰、該數位簽名及該認證資訊來解鎖該第一數位資產。
該區塊鏈交易可進一步包含使用與該其他電腦系統相關聯之一私用密鑰數位簽名之一交易輸入;一第三交易輸出,其包含一第二解鎖指令碼,其中與該第三交易輸出相關聯之一第二數位資產可使用該私用密鑰解鎖;及且該第二交易輸出進一步編碼與該其他電腦系統相關聯之一識別符。
較佳地,該認證資訊包含一默克爾樹之一默克爾路徑,且該期望值係至少部分基於該默克爾樹之一根節點。
該資料可包含指示是否發生一事件之二進位資料。
該資料可為包含其精確性不可基於該區塊鏈上之其他資料驗證之資訊的資料。
較佳地,該第一鑒證為一數位簽名,該數位簽名之真實性可使用與該計算實體相關聯之一密碼編譯公用密鑰來驗證。
亦需要提供一種系統,其包含:一處理器;及記憶體,其包括可執行指令,由於藉由該處理器執行該等可執行指令,使該系統執行如所主張之方法中之任一者。
亦需要提供一種非暫時性電腦可讀儲存媒體,其具有儲存於其上之可執行指令,由於藉由一電腦系統之一或多個處理器執行該等可執行指令,使該電腦系統至少執行如所主張之方法中之任一者。
另外或替代地,本發明可提供改良之區塊鏈程式設計工具或輔助。其可提供有助於或實現分散式、可驗證計算之改良、高效及最佳化之配置。
較佳實施例之詳細說明
首先將對圖1進行參看,其說明根據本揭露內容之一實施例的與一區塊鏈相關聯之一實例區塊鏈網路100。在該實施例中,該實例區塊鏈網路100包含實施為同級間分散式電子裝置之區塊鏈節點,每一電子裝置執行軟體及/或硬體之一執行個體,該軟體及/或硬體執行遵循至少部分在節點102之運營者間同意的一區塊鏈協定之操作。在一些實例中,「節點」指分佈於區塊鏈網路間之同級間電子裝置。區塊鏈協定之一實例係比特幣協定。
在一些實施例中,節點102可由任一合適之計算裝置組成(例如,由資料中心中之伺服器、由一用戶端計算裝置(例如,桌上型電腦、膝上型電腦、平板電腦、智能電話等)、由在一計算資源服務提供商之分散式系統中的多個計算器件或由諸如圖8之計算裝置800的任何合適之電子用戶端裝置)。在一些實施例中,節點102具有接收表示提議之交易(諸如,交易104)之資料訊息或目標的輸入。在一些實施例中,節點可查詢其維持之資訊,諸如查詢交易104之狀態之資訊。
如圖1中所展示,節點102中之一些通訊耦接至節點102中之一或多個其他者。此通訊耦接可包括有線或無線通訊中之一或多者。在該實施例中,節點102各自維持區塊鏈中之所有交易的「帳簿」之至少一部分。以此方式,該帳簿將為分散式帳簿。影響帳簿之由節點處理的交易可由其他節點中之一或多者驗證使得維持帳簿之完整性。
至於哪些節點102可與哪些其他節點通訊,足夠重要的是,在實例區塊鏈網路100中的節點中之每一者能夠與節點102中之一或多個其他者通訊使得在節點之間傳遞的訊息可貫穿實例區塊鏈網路100(或其某一顯著部分)傳播(假定該訊息為區塊鏈協定指示應轉遞之訊息)。一個此訊息可為發佈由節點102中之一者(諸如,節點102A)提議之交易,其接著沿著諸如路徑106之一路徑傳播。另一此訊息可為發佈提議納入區塊鏈上的新區塊。
在一實施例中,節點102中之至少一些係執行諸如解決密碼編譯問題之複雜計算的挖掘者節點。解決密碼編譯問題之一挖掘者節點為區塊鏈創造新區塊,且將該新區塊對節點102中之其他者廣播。節點102中之其他者驗證挖掘者節點之工作,且在驗證後,將該區塊接受至區塊鏈內(例如,藉由將其添加至區塊鏈之分散式帳簿)。在一些實例中,區塊係常常用時戳及先前區塊之「指紋」(例如,雜湊)標記的交易之群組。以此方式,每一區塊可變得鏈接至前一區塊,藉此建立鏈接區塊鏈中之區塊的「鏈」。在實施例中,藉由節點102之共識,將有效區塊添加至區塊鏈。亦在一些實例中,一區塊鏈包含經確證區塊之清單。
在一實施例中,節點102中之至少一些作為確證如在本揭露內容中所描述之交易的確證節點而操作。在一些實例中,交易包括提供數位資產(例如,許多比特幣)之所有權之證明的資料及用於接受或傳送數位資產之所有權/控制的條件。在一些實例中,「解鎖交易」指將由前一交易之UTXO指示的數位資產之至少一部分重新關聯(例如,轉移所有權或控制)至與一區塊鏈位址相關聯之一實體的區塊鏈交易。在一些實例中,「前一交易」指含有正由解鎖交易參考之UTXO的一區塊鏈交易。在一些實施例中,交易包括「鎖定指令碼」,其使交易負擔有在可轉移(「解鎖」)所有權/控制之前必須滿足的條件。
在一些實施例中,區塊鏈位址係與一實體相關聯之文數字字元串,數位資產之至少一部分的控制經轉移/重新關聯至該實體。在實施於一些實施例中之一些區塊鏈協定中,相關聯於實體之公用密鑰與區塊鏈位址之間存在一對一對應關係。在一些實施例中,交易之確證涉及確證在一鎖定指令碼及/或解鎖指令碼中指定之一或多個條件。在成功確證交易104後,確證節點將交易104添加至區塊鏈且將其分佈至節點102。
本文中描述之系統及方法係關於使鎖定指令碼能夠保證驗證密鑰
不被更改及檢查證明
之有效性,藉此允許在交易確證期間對區域鏈執行零知識協定。
可驗證計算為允許計算之證明之產生的技術。在一實施例中,此技術由一用戶端用以將關於一輸入x的函數f之評估外包至在本文中被稱作證明器之另一計算實體。在一些情況下,用戶端在計算上受限,使得用戶端執行函數之評估係不可行的(例如,使用可用於用戶端之計算資源進行的計算之預期執行時間超過最大可接受臨限值),但情況未必如此,且通常而言,用戶端可基於任何合適之準則(諸如,計算執行時間、計算成本(例如,分配計算資源以執行函數之評估的金融成本)及更多)來委託關於輸入x的函數f之評估。
在一實施例中,證明器為任一合適之計算實體,諸如,如在本揭露內容中其他處更詳細地描述之區塊鏈節點。在一實施例中,證明器(例如,區塊鏈節點)評估關於輸入x之函數f,且產生一輸出y及可由區塊鏈網路之其他計算實體(諸如,如上所述之用戶端)及/或其他節點驗證的輸出y的正確性之證明
。亦可被稱作引數之證明可被驗證得比進行實際計算快--因此,可藉由驗證證明之正確性而非重新計算關於輸入x之函數f以判定由以上描述之證明器產生的輸出之正確性來減小計算開銷(例如,減小功率開銷及與供電及執行計算資源相關聯之成本)。在零知識可驗證計算中,證明器對用戶端提供一鑒證,該證明器知曉具有一特定性質之輸入。
知識之零知識證明之一高效變體為zk_SNARK(簡明非互動式知識論證)。在一實施例中,所有基於配對之zk-SNARK包括證明器使用一般性群組操作計算群組元素之數目及驗證器使用許多配對積方程式檢查證明之一過程。在一實施例中,線性互動式證明在一有限欄位上工作,且證明器及驗證器之訊息包括、編碼、參考或以其他方式包括可用以判定欄位元素之向量的資訊。
在一實施例中,本文中描述之系統及方法允許區塊鏈之挖掘節點執行計算(例如,關於輸入x的函數f之評估)一次,且產生可用以驗證輸出之正確性的一證明,其中評估證明之正確性在計算上比評估該函數花費少。在此上下文中,操作及任務之成本(亦即,花費有多大)可指執行該操作或任務之計算複雜性。在一實施例中,計算複雜性指執行分類演算法之平均計算成本或最差情況計算成本--舉例而言,堆積分類演算法及快速分類演算法比具有平均計算成本
,但快速分類具有最差情況計算成本
,而堆積分類具有最差情況計算成本
。在一實施例中,評估關於輸入x之函數f的平均計算成本及/或最壞情況計算成本比評估證明之正確性之平均計算成本及/或最壞情況計算成本糟糕。因此,本文中描述的系統及方法之使用高度有利,且可例如,允許執行更多在計算上花費大之壓縮,因而接觸將不按比例增加確證區塊鏈所需之時間。另外優勢可包括驗證器系統的功率消耗之減少,藉此在評估證明之正確性過程中,改良驗證器電腦系統之效率,且減少與執行此驗證器電腦系統相關聯之能量成本。
在一實施例中,驗證密鑰
或其部分可自在零知識協定之設置階段中產生且與證明
一起使用之公共參數及驗證由證明器提供的正確性計算之聲稱證明之輸入/輸出資料提取。舉例而言,如上文及下文更詳細地描述,系統及方法允許鎖定指令碼保證驗證密鑰
不被更改且檢查證明
之有效性,從而允許在交易確證期間對區塊鏈執行零知識協定。因此,本揭露內容提出將區塊鏈指令碼(例如,在基於比特幣之網路中)用於儲存在計算之驗證中使用之元素來執行驗證之系統及方法。
圖2說明根據各種實施例的可用以實施一協定之一計算環境200。可使用區塊鏈技術實施該協定以儲存正確性之證明,及組合「按構造校正」密碼學方法與智慧型合約。在一實施例中,一公共可驗證計算方案包含三個階段:設置階段、計算階段及驗證階段。
可將設置階段作為外包計算任務之執行的過程之部分執行。如以下參考之用戶端可指諸如客戶或用戶端電腦系統之一實體,其將計算任務之執行委託給可為一不同電腦系統之證明器。一般而言,用戶端可針對多種原因委託計算任務之執行,包括(但不限於)有限計算資源、缺乏計算資源、與利用一用戶端電腦系統執行任務相關聯的金融成本、與利用一用戶端電腦系統執行任務相關聯的能量成本(例如,依賴於電池供電之行動裝置或膝上型電腦可利用一證明器來執行計算密集型任務,藉此節省電力且延長電池供電裝置之使用)及更多。
在一實施例中,該設置階段涉及一用戶端、客戶、一組織之員工或按具有精確語義之正式語言撰寫合約之任一其他合適實體。可按諸如C或Java之高階程式設計語言撰寫合約。一般而言,可按經轉換成或可轉換成可由一電腦系統操縱之一格式的任何語言或語法來表達合約。在一實施例中,具有有限用途之一域特定語言可提供類型-安全,且可利用受限制之表達性。產生之原始程式碼可為合約之精確描述。
編譯器202可為包括可執行碼之任何硬體、軟體或其組合,該可執行碼若由電腦系統之一或多個處理器執行,則使該系統採用該原始程式碼206作為輸入,且產生一電路。編譯器202可指基於已編譯成諸如二進位程式碼之一機器可讀格式之指令來實行或執行指令之電腦程式。應注意,雖然說明一編譯器202,但可利用解譯器、組譯器及其他合適軟體及/或硬體組件將原始程式碼轉換至電路。在一實施例中,電路為包含電報之一算術電路,該等電報攜帶來自一場
F 之值,且連接至邏輯及/或算術閘。在一實施例中,電路
由系統用以產生二次程式
Q208,其包含提供原始電路
之完整描述的一組多項式。
在一實施例中,編譯器202能夠認出諸如C或Java的程式設計語言之大子集,包括(但不限於):預處理器指令、靜態初始化器、全域及局部函數、區塊範疇之變數、陣列、資料結構、指標、函數調用、函數運算符(例如,函子)、條件及循環,及算術與逐位元布爾型運算符。在一實施例中,編譯器202不支援根據程式設計語言之標準的全部命令集合(在一些情況下,此可為旨在防止在智慧型合約中執行某些類型之演算法,以便禁止遞歸演算法)。在一實施例中,編譯器將原始程式碼之表達擴大成一算術閘語言以產生一算術電路。電路實施已在過去由Campanelli, M.等人(2017)在「Zero-Knowledge Contingent Payments Revisited: Attacks and Payments for Services」及由Tillich, S.及Smart, B在「Circuits of Basic Functions Suitable For MPC and FHE」中預期。算術電路可由編譯器202或任一其他合適硬體、軟體或其組合(例如,圖2中未說明之軟體模組)用以建置二次算術問題(QAP)。根據一實施例,針對用戶端(例如,密鑰產生及驗證)及證明器(例如,計算及證明產生),將二次程式編譯成一密碼編譯常式集。
在一實施例中,密鑰產生器204為包括可執行碼之硬體、軟體或其一組合,該可執行碼若由一電腦系統之一或多個處理器執行,則使該系統產生一評估密鑰及一驗證密鑰以形成二次程式。用於將計算編碼為二次程式之技術由Gennaro, R.等人在「Quadratic Span Programs and Succinct NIZKs without PCPs」(2013)中預期。在一實施例中,二次算術問題(QAP)
Q在場
F 上編碼電路
,且含有m+1個多項式之一集合:
V= {v
k(x)},
W= {w
k(x)},
Y= {y
k(x)}
其中0 ≤
k≤
m。亦定義一目標多項式
t (x )。給定一函數
f,其選取
F 之
n個元素作為輸入及輸出
n '元素,其中N =
n+ n',接著若{c
1, …, c
N} ∈
F N為
f之輸入及輸出之群組之一有效指派且若存在係數清單{c
N +1, …, c
m}使得
t (x )劃分
p (x ),則
Q計算
f:
因此,在一實施例中,必須存在某一多項式
h (x ),使得
h (x )·
t (x )=
p (x )。
Q之大小為
m,且其度數為
t (x )之度數。
在一實施例中,針對一算術電路建置一QAP包含針對該電路中之每一乘法閘
g拾取一任意根
r
g ∈
F ,且將目標多項式定義為
t (x )= ∏
g(
x-
r
g )。在一實施例中,索引
k∈ {1 ...
m}與電路之每一輸入及與來自一乘法閘之每一輸出相關聯。
V中之多項式編碼至每一閘之左輸入,
W編碼至每一閘之右輸入,且
Y編碼該等輸出。舉例而言,若第k個電報為至閘g之左輸入,則v
k(r
g) = 1,且否則,v
k(r
g) = 0。因此,對於一特定閘
g及其根
r
g ,前一方程式可簡化如下:
閘之輸出值等於其輸入之乘積。可分割性檢查分解成deg(
t (x ))分離檢查,
t (x )之每一閘
g及根
r
g 有一個檢查,使得
p (r
g )= 0。加法閘及用常數相乘閘不對QAP之大小或程度有影響。
在一實施例中,在場
F p上定義QAP,其中
p為大質數。在一實施例中,需要在
F p上之QAP高效地計算可按加法及乘法模數
p表達之任一函數。算術分裂閘可經設計以將算術電報a ∈
F p(已知為在[0, 2
k -1]中)轉譯成
k個二進位輸出電報。因此,由此可見,布爾型函數可使用算術閘來表達。舉例而言,NAND(a,b) = 1 - ab。每一內嵌之布爾型閘僅耗費一個倍增。此外,諸如
分裂之新閘可定義為獨立式且與其他閘一起構成。給定已知為在[0, 2
k-1]中之輸入
a∈
F
p ,分裂閘輸出
k個電報,其擁有此∑
k2
i -1 a
i =
a之二進位數位
a
1 , ...,
a
k ,且每一
a
i 為0或1。
最後,待由所有證明器及驗證器使用之公共參數由系統產生,作為設置階段之部分。應注意,評估密鑰
及驗證密鑰
係使用由用戶端選擇之一私密值導出。密鑰產生器204可利用二次算術程式 (QAP)結合密鑰產生演算法產生評估密鑰
210及驗證密鑰
212。
在一實施例中,執行一計算任務涉及由證明器計算關於輸入216之函數(亦即,用於評估f(x)之過程)。在一實施例中,證明器為用戶端可將計算任務委託至的任一合適之電腦系統。在一實施例中,輸入216包括表明證明器之身分之資訊,諸如,使用與證明器相關聯之私用密鑰產生的數位簽名。在一實施例中,證明器為一電腦系統,作為成功之結果,用戶端將數位資產傳送至該電腦系統。在一實施例中,用戶端將輸入x及評估密鑰
提供至證明器,證明器使用至一計算常式之評估模組214計算輸出y(亦即,y = f(x),其中輸入為x且函數為f),且使用評估密鑰
210產生正確性之證明218。在一實施例中,評估模組為包括指令之硬體及/或軟體,該等指令若由電腦系統之一或多個處理器執行,則使電腦系統評估QAP 208之內部電路電報之值且產生QAP之輸出y。
在一實施例中,二次程式之每一多項式
v
k (x )∈
F 映射至雙線性群組中之一元素
g
vk (s ) ,其中
s為由用戶端選擇之一秘密值,
g為群組之產生器,且
F 為
g之離散對數之場。在一實施例中,對於一給定輸入,證明器評估該電路以獲得輸出及內部電路電報之值,其對應於二次程式之係數
c
i 。因此,證明器可評估
v (s )= ∑
k ∈ {m } c
k · v
k (s )以得到
g
v (s ) ;計算w(s)及y(s);計算
h (x )=
p (x )/
t (x )= ∑
dh
i· x
i;及使用評估密鑰中之
h
i 及g
s (i )項計算
g
h (s ) 。在一實施例中,正確性之證明218包含(
g
v (s ) ,
g
w (s ) ,
g
y (s ) ,
g
h (s ) ),且驗證器使用雙線性映射來檢查
p (s )=
h (s ) · t (s )。在一實施例中,將證明
儲存於區塊鏈222上用於稍後使用,或可由多方驗證,而不需要證明器單獨地與此等中之每一者互動。在一實施例中,可執行正確性之證明的電路儲存之評估以解鎖受到交易之鎖定指令碼阻礙的資源(例如,數位資產)。
在一實施例中,將證明
對一區塊連網路廣播且驗證器220用以驗證證明。在一實施例中,驗證器220為任一合適之計算實體,諸如,區塊鏈上之節點。應進一步注意,在一些情況中,產生評估密鑰
及驗證密鑰
之同一計算實體亦驗證證明。在一實施例中,區塊連之節點可使用驗證密鑰
及證明
來確證鎖定交易,因此若驗證成功,則確證合約。協定之一個要求在於,證明器無法提供不正確之證明,甚至當其知曉驗證密鑰
時。因此,在此協定中,共同參考串(CRS)由用戶端或由至少發佈評估密鑰
及驗證密鑰
之受信任之第三方產生。在一實施例中,發佈之驗證密鑰
可由任一計算實體用以驗證計算。
使用本文所描述之技術,用戶端能夠部分搞亂交易資料,諸如,區塊鏈交易之接收者之身分。在一實施例中,解鎖指令碼不暴露接收者之位址及接收者之公用密鑰。然而,在一些情況下,交易之值(例如,轉移的數位資產之量)可對區塊鏈網路之節點可見。在一實施例中,如上文及下文所描述之密碼編譯技術由用戶端用以將鎖定指令碼轉換成二次算術程式,及由證明器用以解算術程式以產生證明。
一般而言,用戶端能夠使用諸如P2PK及P2PKH之標準交易(例如,如在基於比特幣之區塊鏈網路中定義之標準交易)向對應方或證明器支付。舉例而言,在一實施例中,用戶端將P2PK鎖定指令碼轉換成一算術電路且廣播包括自電路導出之一難題的鎖定交易。對應方或證明器接收電路,提供一適當輸入(例如,表明證明器之身分的資訊,諸如,在用戶端與證明器之間的共用秘密,或使用證明器之私用密鑰產生的數位簽名),且執行電路以產生正確性之證明
。在一實施例中,證明用以解鎖資源(例如,數位資產),且此外,情況可為,識別對應方或證明器之資訊(例如,與對應方或證明器相關聯之公用密鑰及/或數位簽名)未以不受弄亂之格式記錄至區塊鏈。
在一實施例中,根據上文及/或下方描述之技術產生驗證密鑰及對應證明。因此,對驗證器給予驗證密鑰
及證明
:
使得驗證器計算多個橢圓曲線乘法(例如,每個公用輸入變數,一個橢圓曲線乘法)及五對檢查,其中之一者包括一額外配對乘法。
給定驗證密鑰
、證明
及
,以驗證
分割
及因此
,驗證器如下繼續進行。首先,其檢查所有三個
項:
其中
,
,且
。接著,驗證器檢查項
:
且
。最後,驗證器檢查可分割性要求:
其中
,
,
,且
。
因此,在考慮來自以上描述之章節及本揭露內容中描述之實例的記法後,根據一個實施例,驗證包含以下元素之對檢查之集合:
圖3說明用於協調可驗證的計算之執行之圖300。用戶端302、證明器304及驗證器306可為區塊鏈網路之節點。用戶端302可為可包括可執行碼之任何合適之電腦系統,該可執行碼在由電腦系統之一或多個處理器執行時使該電腦系統接收一智慧型合約308。在一實施例中,智慧型合約308係以一高階程式設計語言編碼為諸如C、C++或Java之原始程式碼。在一實施例中,諸如編譯器、解譯器及/或組譯器之軟體可用以將智慧型合約308變換至由「電報」組成算術電路310,該等電報攜載來自場
之值且連接至加法及乘法閘。應注意,算術電路可指可由包含由實體電線連接之一系列實體閘(例如,使用電晶體-電晶體邏輯(TTL)積體電路,諸如,7400系列閘、正反器、緩衝器、解碼器、多工器及類似者)之一實體電路實施的一邏輯電路。雖然在圖3及其他處之情境中描述智慧型合約308之執行,但智慧型合約之使用僅為可變換至算術電路的原始程式碼之一個非限制性實例。在一實施例中,用戶端302(例如,單獨或與另一實體一起)判定用於執行由一組操作定義之任務之原始程式碼,其中任務之執行經委託給一證明器304。一般而言,驗證器306可執行與判定證明器304正確地執行任務相關聯之任務,諸如,藉由驗證由證明器304產生的正確性之證明之有效性。
在一實施例中,用戶端302給證明器304提供一算術電路310,且資料提供者318給證明器提供至電路之輸入312。在一些情況下,輸入312可為諸如關於現實世界狀態及事件之資料的資料。電路310可用以產生二次程式
Q,其包含提供原始電路之完整描述的一組多項式。在任一情況下,證明器304可對輸入312執行電路
或二次程式
,以產生一或多個輸出中間輸出及一個最終輸出。在一些實施例中,期望證明器獲得用於
之一有效指令碼作為輸出,
為值至電路電報之指派,使得指派至輸入電報之值為
之值,中間值對應於
中的每一閘之正確運算,且指派至輸出電報之值為
;若主張之輸出不正確(亦即,
),則
之有效指令碼不存在。在一實施例中,期望證明器提供電路電報的值之一子集,其中電路電報的值之選定子集對證明器而言並不先驗地已知。
在實施例中,輸出
、內部電路電報之值(或其一子集)及評估密鑰
用以產生正確性之證明316。證明
可儲存於區塊鏈上且由多方驗證,而不需要證明器304單獨地與多方互動。以此方式,驗證器306可使用公用驗證密鑰
及證明
來確證鎖定交易,藉此確證合約。在一些情況下,若驗證失敗,則用戶端302可回收受到鎖定交易阻礙之數位資產。在一些情況下,驗證器306及用戶端302為同一電腦系統。
圖4說明本揭露內容之一實施例之圖400。具體言之,圖4說明一環境,其中由一資料源提供之資料經認證且用於諸如發佈至區塊鏈網路之智慧型合約的程式或指令碼之執行中。在一實施例中,用戶端402、證明器404及資料提供者406為電腦系統。在一實施例中,用戶端402指將計算任務之執行外包或委託給另一電腦系統(在本文中被稱作證明器)之一電腦系統。在一實施例中,計算任務指函數之評估、智慧型合約之執行及更多。在一實施例中,執行一計算任務涉及基於一電路及一或多個輸入計算輸出,該計算由一證明器代表一用戶端來執行。電路可自為表示合約之項之形式的原始程式碼產生。
如在本揭露內容中其他處更詳細地描述,用於在區塊鏈上執行智慧型合約之協定可利用零知識證明。在一實施例中,智慧型合約之執行可作為交易確證之部分而發生。為此,在協定之設置階段期間產生的公用參數與證明及輸入/輸出資料一起用以驗證由證明器提供的正確計算之所宣稱證明及確證合約執行。在一些實施例中,合約之執行階段可依賴於在區塊鏈外部之輸入/輸出資料。一般而言,外部資料指在區塊鏈上不可用或不可自可經由區塊鏈存取之資料驗證的資訊。外部資料可自各種來源獲得,諸如,資料饋入及應用程式設計介面(API)。外部資料可在包圍智慧型合約之多種情境中使用,包括(但不限於)用於在需要存取市場價饋入以用於資產及金融應用(例如,利率)之證券(例如,利率、衍生、債券)中使用之智慧型合約;需要存取外部資料(例如,針對延遲對一方投保之飛行資訊;使用天氣之資料饋入而非作物保險之價格指數的金融衍生合約之天氣資料)之同級間保險智慧型合約;需要關於裝運之GPS資料的交易智慧型合約;需要存取隨機數產生器之賭博合約;及更多。
在一實施例中,判定執行智慧型合約之時間及/或方式依賴於對外部資料(諸如,關於現實世界狀態及事件之資料)之存取。在一實施例中,資料提供者406提供此資料,且可在一些情況下被稱作智慧型預言者。由預言者返回之資料可呈各種格式及類型,諸如,呈指示由多方指定之某些資訊是否含有一指定文本或指定資訊之布爾型的形式。在一實施例中,此資料可用以組織賭注(例如,二進位事件之後果,諸如,拳擊賽之結果)。浮點值可在貨幣(包括密碼貨幣)之間的匯率之情境中利用,且可自一些比特幣交換之API讀取。此類型之資料可適用於組織選項及拋買聯絡。
資料提供者406亦可被稱作預言者,其擷取及/或提供外部資料(諸如,關於現實世界狀態及事件之資料)且使外部資料可用於區塊鏈。預言者可指包括可執行碼之一計算實體,該可執行碼若在電腦系統之一或多個處理器上執行,則使電腦系統產生與區塊鏈(例如,比特幣、以太幣及其他)相容之資料及/或資料饋入,該區塊鏈作為區塊鏈與網路(例如,網際網路)之間的受信任的鏈路工作。預言者可自網站、饋入、資料庫及其他資料源獲得資料以將外部資料提供至區塊鏈。舉例而言,外部資料可包括溫度資訊、裝運之GPS座標、航空資訊(例如,飛行狀態資訊)及更多。
在一實施例中,證明器404藉由以下操作自資料提供者406獲得外部資料:與資料提供者建立用密碼技術保護之通訊會話:經由該用密碼技術保護之通訊會話作出一請求;資料提供者回應於該請求提供資料;證明器接收資料,且回應於接收到資料,請求雙方之間的通訊之鑒證;資料提供者計算在用密碼技術保護之通訊會話期間的在證明器與資料提供者之間的通訊之密碼可驗證證明
,且用資料提供者之私用密鑰對鑒證數位簽名;及證明器接收通訊之證明。一般而言,通訊之證明為可在用戶端與伺服器之間(例如,在證明器與資料提供者之間)發生的一或多個通訊的可用密碼技術驗證之鑒證。在一實施例中,該鑒證可用以驗證用戶端與伺服器之間的通訊之內容,但應注意,在一些情況下,可編寫通訊之一部分(例如,其揭露內容經受法定限制之資訊),諸如,藉由用資訊之模糊處理(例如,呈經加密或雜湊格式之資訊)替換經編寫之資訊或用一預定預設值替換。在一實施例中,至少部分基於默克爾樹之根值判定鑒證,諸如,根據圖6描述之默克爾樹。在一實施例中,使用資料提供者406可存取之一密碼編譯私用密鑰對鑒證(例如,通訊之證明)數位簽名。諸如證書部門之實體可發出證明一密碼編譯公用密鑰對應於私用密鑰之一數位證明。應注意,在本揭露內容之範疇中,通訊之證明通常使用記法
來參考,而正確執行之證明可被稱作
,或更簡單地,稱作
。
證書部門410可指產生及/或分配證明一特定密碼學密鑰屬於一特定實體之數位證書的一計算實體。舉例而言,含有資料提供者之公用密鑰的數位證書可由一計算實體獲得,且此公用密鑰可用於各種情境中--例如,以加密用於與資料提供者之安全通訊的資料,以驗證據稱由資料提供者簽名的數位簽名之真實性,及更多。雖然圖4說明用戶端402具有與證書部門410之信任關係(例如,用戶端將由證書部門恰當簽名及/或發出之數位證書處理為可靠的)之一實施例,但可利用任一合適之受信任計算實體,諸如,密鑰管理系統或密鑰註冊。
在一實施例中,證明器404利用輸入資料產生
,諸如,按以上關於圖2描述之方式。在一實施例中,
儲存於區塊鏈408上供稍後使用或可由多方驗證,而不需要證明器單獨地與此等中之每一者互動。舉例而言,用於針對飛行延遲對一方投保的智慧型合約之執行可依賴於自官方航空部門(例如,美國聯邦航空管理局或英國民用航空局)獲得之官方飛行資料,作為輸入資料。一般而言,輸入資料未必來自政府來源--智慧型合約之雙方可就輸入資料可獲得自的實體之清單達成一致--因此,資料源可為用戶端指示對於獲得資料係受信任的任一合適之計算實體。用戶端可指定用於不同輸入的受信任實體之不同清單。可基於合約之值選擇及/或修剪受信任實體之清單。
證明器404可將通訊之證明傳輸至用戶端402。在一些情況下,資料提供者406可將通訊之證明傳輸至用戶端402--例如,基於來自證明器之命令。如先前所論述,通訊之證明可至少部分基於默克爾樹之根值導出。舉例而言,通訊之證明亦可編碼指定通訊發生之一時間間隔的資訊。在一實施例中:
換言之,使用一密碼編譯雜湊函數計算通訊之證明,其中默克爾樹之根值(
)及通訊之時間間隔(
,在一實施例中,其編碼密碼通訊會話之開始時間及請求通訊之證明之時間)為至密碼編譯雜湊函數之輸入。在一實施例中,密碼編譯雜湊函數之輸入經串接或以其他方式組合。默克爾樹可至少部分基於在由
指示之時間間隔期間在雙方之間交換的記錄而產生。可使用資料源之密碼編譯私用密鑰來對通訊之證明數位簽名。在一實施例中,將對話發生之時間定義為
,且包括為由伺服器(例如,資料源504)產生的通訊之證明之部分。應注意,除了將通訊之證明傳輸至用戶端402之外及/或作為對此之替代,證明器404可將該證明儲存於一安全伺服器上(例如,在與用戶端402相關聯之一公用密鑰下加密)或儲存於計算資源服務提供者之資料儲存服務中。在一實施例中,用戶端402將通訊之證明儲存於一資料儲存庫(例如,資料儲存服務)中,且給用戶端404提供可用以自資料儲存庫獲得通訊之證明的一統一資源識別符(URI)或其他合適參考。舉例而言,執行重複任務(例如,捕獲在若干天之一或多個路線的飛行資料)之證明器402將所捕獲資料聚集至一資料儲存庫之容器,使得一用戶端可獲得一時間間隔上之歷史飛行資料(例如,針對一特定路線)。
在一實施例中,用戶端402接收一通訊之證明,且經由該通訊之證明接收一數位簽名。該用戶端可判定據稱由資料提供者簽名之數位簽名,獲得與資料提供者相關聯之公用密鑰(例如,自由證書部門410發出之數位證書),且使用該公用密鑰驗證數位簽名之真實性。若將數位簽名判定為可信,則用戶端402信賴通訊之證明係由資料提供者產生;否則,可拋棄通訊之證明及數位簽名。在驗證了通訊之證明後,用戶端402可驗證正確性之證明,諸如,以關於圖2及圖3論述之方式。
在一些實施例中,用戶端402產生一聲譽交易,其指示自一特定證明器404獲得之外部資料係正確的(例如,資料為由資料提供者提供之相同資料)。聲譽交易可挖掘至區塊鏈408,作為證明器404是否正確地執行計算任務及/或證明器404關於使用自資料提供者接收之外部資料執行
之計算是否確實之記錄。在已執行智慧型合約後,用戶端可使用
驗證用以產生
之輸入資料為由資料提供者提供之資料。聲譽交易可挖掘至區塊鏈,其指示由證明器提供的服務之審查--正結果可激勵證明器確實行動,且可用以選擇證明器用於後續智慧型合約之執行。聲譽交易可包括一第一解鎖指令碼,其允許證明器在提供在
中使用之輸入資料來自資料提供者之充分證據後解鎖聲譽;及一第二解鎖指令碼,其允許用戶端撤銷審查。圖4中所說明之聲譽交易可根據在本揭露內容中其他處描述之內容,諸如以下關於圖9描述之內容。
一般而言,在圖4之上下文中,用戶端作出指定目標源
、時間
及詢問
之請求
。若
為網路伺服器,則可能需要諸如TLS會話的用密碼技術保護之通訊會話。在一實施例中,可利用提供真實性之可用密碼技術驗證之擔保的任何用密碼技術保護之通訊會話,其中雙方之間的訊息係經由皆使用同一秘密密鑰產生及驗證之訊息認證碼(MAC)認證。此暗示伺服器與訊息之接收者必須就同一密鑰達成一致,因此可驗證MAC之任一使用者能夠產生亦用於其他訊息之MAC。相比之下,數位簽名可規定:某一訊息由某一私用密鑰之擁有者簽名。公證通訊之一方法已由Hajjeh及M. Badra在定義叫作TLSSignOnOff之新子協定的「TLS簽名(TLS Sign)」中預期,其中用戶端及伺服器通知對等方其開始或停止傳輸簽名之資料的時間。在停止訊息後,伺服器聚集對話之雜湊且對其簽名。可使用用於公證用密碼技術保護之通訊會話的記錄資料(例如,會話之保存記錄,及用記錄之對話之真實性及/或完整性的可用密碼技術驗證之證明對對話簽名)之各種其他方法,諸如,由R. Housley及M. Brown在「輸送層安全性(TLS)證據擴展(Transport Layer Security (TLS) Evidence Extensions)」中及由H. Ritzdorf、K. Wüst、A. Gervais、G. Felley及S. Capkun在「TLS-N:在針對脫媒之TLS致能普遍存在的內容簽名上之非拒付(TLS-N: Non-repudiation over TLS Enabling Ubiquitous Content Signing for Disintermediation)」中描述之技術,其定義當用戶端作出請求時開始之一證據窗及雙方中之一者關閉證據窗之時間、訊息之雜湊及由伺服器簽名的證據之產生之時戳,任擇地,敏感性記錄被隱藏。
圖5為證明器502自一資料源504獲得資料的一實施例之說明圖500。在一實施例中,在證明器502與資料源504之間建立用密碼技術保護之通訊會話。用密碼技術保護之通訊會話的實例包括輸送層安全性(TLS)及安全套接層(SSL)會話。用密碼技術保護之通訊會話可用以提供雙方之間的安全連接。在此上下文中,安全連接可指真實性、完整性、隱私或其任何組合的可按密碼方式驗證之擔保。真實性可指由據稱為訊息之作者的一方創造之訊息的擔保。完整性可指當傳輸訊息時接收之訊息未經有意(例如,由惡意方)或無意(例如,作為在傳輸期間之信號損失之結果)地修改之擔保。機密性可指在傳輸前的訊息之一些或所有部分之加密。在一實施例中,用戶端(例如,證明器502)與伺服器(例如,資料源504)在被稱作交握508之第一階段期間交換資訊,其中發出不對稱與對稱加密之混合以便確保安全性。圖5中所說明之交握可為根據一TLS交握協定之4路交握。在一實施例中,該用戶端(例如,證明器502)傳輸一ClientHello訊息,其包括諸如用戶端版本、會話id、經由添加之擴展的額外功能性或其某一組合的參數。在一實施例中,交握開始於一訊息--開始用於對話的證明之記錄的至伺服器(例如,資料源504)之信號。結果,伺服器(例如,資料源504)將進入與證明產生相關聯之一內部狀態,證明產生將持續,直至其接收到產生一通訊之證明的一後續請求。雖然在此內部狀態中,資料源504可記錄在用密碼技術保護之通訊會話上交換的在證明器502與資料源504之間的通訊之內容(或其部分)。
在交握後(例如,在記錄協定期間),傳出訊息經劃分成區塊,同時重組傳入之訊息。在一實施例中,用密碼技術保護之通訊會話之雙方之間的對話包括多個記錄
。此等記錄可用以產生通訊之證明,諸如,藉由產生包含一組葉節點之默克爾樹,該組葉節點包括記錄
。關於圖5說明及描述之記錄可用以產生一默克爾樹,諸如,關於圖6描述之默克爾樹。
在一實施例中,記錄指形成作為用密碼技術保護之通訊會話之部分的在證明器502與資料源504之間的對話之請求及回應。在一些情況下,請求及回應包括比所必要多的資訊(例如,與判定證明器502關於智慧型合約之執行需要之輸入資料不相關的資訊)。在一實施例中,伺服器(例如,資料源504)填充模板(例如,呈具有指定欄位之JSON節點之形式)。在交握期間可指定一模板。作為一實例,用於獲得天氣資料之模板可具有關於位置、日期及溫度之欄位。在一實施例中,對飛行資料之請求可包括飛行狀態、飛行識別符及日期,諸如,按以下格式:{"flightInfo":{"data":{"id":"BA886":[{"validDate":"2017-11-01T07:00:00+0000"},"status":"On time"}]}。
一旦交握完成,雙方(例如,證明器502及資料提供者504)可在相互之間傳輸包括資料之記錄510。舉例而言,證明器502可向資料提供者504請求資料,該資料可用作一輸入以評估電路及產生一輸出,作為智慧型合約之執行之部分。在證明器502接收足夠資料以評估電路後,證明器可向資料提供者504請求會話之證明512。應注意,資料提供者504可為具有與用戶端(例如,關於圖3及圖4描述之用戶端)之信任關係的電腦系統,其中用戶端信任由資料提供者產生及/或提供之資料--在此情境中,用戶端信任來自另一實體之資料可指用戶端將自該實體獲得之資料視作正確的,及/或自具有一有效安全性證書之一受信任源發佈的資料真實且準確。在一實施例中,伺服器(例如,資料源504)產生通訊之證明516,其由自交握協定之完成直至接收到產生
之請求為止在記錄協定期間在雙方之間交換的所有記錄之雜湊根514組成。在一實施例中,
亦用記錄進行雜湊運算,諸如,在資料之執行視在某一時間收集之輸入而定之情況下(例如,用於習行擔保之智慧型合約保護免受某一航班在一特定天之延遲)。
在一實施例中,用戶端(例如,證明器502)請求
,且資料提供者返回自所有記錄之交托獲得的雜湊鏈之最終值,及經串接、雜湊及用資料源之私用密鑰數位簽名之
。因此,雙方之間傳遞之記錄中包括的資料可用於智慧型合約之執行中。亦可將此通訊之證明
饋入至初始智慧型合約內,且經由專用功能來驗證,因此消除了對半信任之證明之需求。在一實施例中,在一默克爾結構中將記錄雜湊在一起,諸如,以關於圖6描述之方式。
應注意,雖然關於圖5描述會話用戶端向會話伺服器請求證明之一實施例,但情況不必如此--可調適本文中描述之技術,使得TLS會話之伺服器向TLS會話之用戶端請求通訊之證明。
圖6為可根據本揭露內容中描述之各種實施例建構及/或利用的一默克爾樹之說明圖600。舉例而言,在關於圖2至圖5描述之實施例之上下文中,可建構此默克爾樹。
在一實施例中,用戶端電腦系統及伺服器電腦系統建立一用密碼技術保護之通訊會話(諸如,TLS會話)且交換訊息(例如,記錄)。在會話之雙方之間傳遞的一或多個記錄
可由伺服器在一指定持續時間內記錄--例如,自交握協定之完成直至伺服器接收到來自用戶端產生通訊之證明之請求為止。在一實施例中,伺服器包括可執行碼,該可執行碼若由伺服器之一或多個處理器執行,則使伺服器:偵測開始記錄用戶端與伺服器之間的通訊之指示;儲存在一用密碼技術保護之通訊上傳輸及接收的記錄;偵測產生一通訊之證明之指示;及至少部分基於儲存之記錄產生一默克爾樹。預期對以上描述之過程之各種替代及擴展。默克爾樹可指一資料結構,其中該默克爾樹之每一葉節點為資料記錄之雜湊,且每一非葉節點係使用至少一密碼編譯雜湊函數至少部分基於非葉節點之子節點來導出。然而,應注意,本文中包括之技術可利用類似於默克爾樹之結構來驗證一條特定資料為默克爾樹之部分--例如,在一實施例中,本文中包括之技術應用於一結構,其中樹之葉節點為資料記錄,且非葉節點係使用至少一密碼編譯雜湊函數至少部分基於非葉節點之子節點來導出。在一實施例中,本文中描述之樹資料結構為二進位樹。應注意,雖然圖6說明不平衡默克爾樹之一實例,但在一些實施例中,按使樹平衡或實質上平衡之此方式置放默克爾樹之葉節點(例如,實質上平衡之樹可具有在樹之一特定深度處的所有葉)。
在一實施例中,默克爾樹係自儲存(例如,由伺服器在諸如RAM之短期記憶體中快取)之一或多個記錄
產生,且在偵測到產生通訊之證明之指示後,將該等記錄按時間順序選擇為默克爾樹之葉節點。每一記錄用一隨機鹽值進行密碼編譯雜湊運算,其可自諸如TLS預先主秘密或主秘密之一交握訊務秘密導出。該等鹽可為使用任何合適之隨機過程產生之隨機數或虛擬亂數。該等鹽可經選擇使得其並不在一特定默克爾樹之情境中再使用,或按使得任何兩個鹽為相同值之機率低於一臨限機率之方式選擇。
可將第一鹽及第一記錄輸入至一密碼編譯雜湊函數,其中第一鹽與第一記錄經串接及雜湊(例如,使用一SHA-256密碼編譯雜湊演算法)。一般而言,可利用諸如單向函數之抗預成像函數,其中說明密碼編譯雜湊函數。雖然在圖6中描繪之例示性實例中利用鹽,但一般而言,該等記錄可用臨時亂數、初始化向量及任何其他合適密碼編譯基元擴增。自執行將第一鹽及第一記錄用作輸入之一密碼編譯雜湊演算法產生第一輸出。第一輸出可用指示第一記錄由用戶端還是會話之服務傳輸的資訊進行雜湊運算。舉例而言,圖6說明將與用戶端相關聯之資訊前置至雜湊輸出之一實施例,其中用戶端為記錄之發送者,且將與服務相關聯之資訊附加至雜湊輸出,其中服務為記錄之發送者。前置/附加之資訊可為任何合適之資訊--可利用一固定用戶端值(例如,零)及一固定伺服器值(例如,一):
在一實施例中,該樹狀結構係固定的,且將與該用戶端或服務相關聯之一值(例如,與發送者相關聯之IP位址或MAC位址)前置/附加至默克爾樹。在一個此實例(圖6中未說明)中:
在用密碼技術保護之通訊會話上傳輸的額外記錄可按以上描述之方式建立,且依序雜湊在一起以產生一根節點值。在圖6中所說明之實例中,每一節點產生一中間節點值:
在一實施例(圖6中未說明)中:
。
在一實施例中,最終雜湊值經計算為
,且為默克爾樹之根。在一實施例中,
為通訊之證明。在一實施例中,
用可雜湊在一起以形成通訊之證明的諸如時間間隔(例如,
,用於
及
之時間戳)之額外資訊擴增。通訊之證明可藉由與以密碼方式之通訊會話之服務相關聯的一私用密鑰數位簽名,其中該服務為由智慧型合約用戶端信任之一實體(例如,如關於圖3及圖4所描述)。
圖7為根據本揭露內容中描述之各種實施例的一默克爾路徑之說明圖700。可利用一默克爾路徑以提供可用密碼技術驗證之擔保,在用密碼技術保護之通訊會話之用戶端與服務之間的一對話期間傳遞一特定記錄(或更通常地,一條特定資訊或特定資料)。默克爾路徑可自關於圖6描述之一默克爾樹建構,且可用於關於圖2至圖5描述的實施例之上下文中。
在一實施例中,一證明器自一資料源接收資料,且將該資料用作一輸入以解出算術電路,且至少部分基於電路之輸出產生正確執行之證明。證明器可另外產生在解出算術電路過程中使用之資料包括於證明器與資料源之間的一組通訊中之一鑒證。在一實施例中,該鑒證為一默克爾路徑,其中一默克爾路徑包含一默克爾樹之一節點值集合,其足以計算默克爾樹之根值。一默克爾路徑可包括默克爾樹之葉節點值中之一些、所有或無一者。該默克爾路徑可包括關於默克爾樹中的節點值之位置之資訊。應注意,根節點值可為較大默克爾樹之子樹之根節點值。可在正確性之證明
中編碼鑒證。
在一實施例中,一計算實體能夠藉由以下操作來驗證一特定通訊之內容包括於兩個其他計算實體之間的一組通訊中:自一受信任實體接收一默克爾樹之一根節點值,及經由該根節點值接收使用該受信任之實體之私用密鑰產生的一數位簽名;使用該受信任之實體之公用密鑰驗證該數位簽名之真實性;接收包含一節點值集合之一默克爾路徑,其中該節點集合中之一節點對應於據稱已傳遞之一特定通訊;自該節點值集合計算一據稱之根值;及比較該據稱之根值與該驗證之根節點值。
考慮圖7中所說明之默克爾路徑702,在一實施例中,其係基於關於圖6描述之一默克爾樹導出。圖7中所說明之默克爾路徑702可用以驗證包括一特定記錄
,作為用戶端與伺服器之間的一組通訊(例如,經由一TLS會話)之部分。默克爾路徑702中之該組值可雜湊在一起以產生一最終雜湊值。在一實施例中,最終雜湊值係基於在默克爾路徑中編碼或與默克爾路徑關聯之額外資訊產生,該額外資訊指示該等值雜湊在一起之次序。舉例而言,圖7中所說明之默克爾路徑702可用以計算一最終值
,如在圖7中所說明。若最終值匹配根值(例如,圖6之
),則一計算實體判定包括記錄
,作為對話之雙方之間的一組通訊中之一通訊。
一般而言,一默克爾路徑可指一默克爾樹之足以計算根節點之值的一節點(或彼等節點之值)集合。根節點可為圖7中所說明的默克爾樹或此樹之一子樹之根節點。一默克爾路徑(諸如,圖7中所說明之默克爾路徑)可編碼兩個葉節點之值,及在葉節點至根節點之間的默克爾樹之每一深度處,精確對應於默克爾樹之一個節點的精確一個值。然而,情況不必如此:另一合適默克爾路徑包含默克爾樹之每一葉節點之值--然而,此默克爾路徑可具有比諸如圖7中所說明之默克爾路徑的其他默克爾路徑大之儲存要求。
圖8說明根據各種實施例的可用以實施一協定之一計算環境之圖800。可使用區塊鏈技術實施該協定以儲存基於在區塊鏈外部之資料產生的正確性之證明。在一實施例中,證明器802、資料源804、用戶端806、證書部門808及區塊鏈810係根據在本揭露內容中其他處描述之內容--此等組件可實施為計算系統。
在一實施例中,證明器802為包括可執行碼之一電腦系統,該可執行碼若由一電腦系統之一或多個處理器執行,則使該電腦系統向一資料源804請求資料。資料源804可為具有與一用戶端806之信任關係的任一合適之計算實體。該資料可關於現實世界事件,或更通常地,在區塊鏈上不可用之資料。可請求的資料之一實例為在一特定日期的航線飛行之狀態(例如,延遲、取消、到達時間等等)。資料源804可回應於該請求而提供請求之資料,該資料可按任何合適之格式提供,諸如,按資料庫、網頁、JSON格式及更多之形式。在一實施例中,證明器接收資料,且回應於判定已接收到資料,將對一通訊之證明的第二請求提交至資料源804。資料源804產生812一通訊之證明,其提供可用密碼技術驗證之擔保--資料由資料源提供至證明器。通訊之證明可藉由資料源之一私用密鑰數位簽名,且可使用與資料源相關聯之一公用密鑰驗證數位簽名之真實性。含有公用密鑰之一數位證書可由證書部門808發出。證明器802與資料源804可經由一用密碼技術保護之通訊會話814通訊,該通訊會話諸如提供真實性、完整性及機密性的可用密碼技術驗證之擔保的TLS會話。
在一實施例中,證明器802自囊封智慧型合約之條款的用戶端8__接收一算術電路。證明器802可執行計算,其中資料之計算至少部分基於自資料源804獲得之資料來執行。證明器802可獲得一輸出且產生814對區塊鏈網路810廣播且記錄816於區塊鏈網路810上的電路之正確執行之證明,藉此允許區塊鏈之節點確證智慧型合約。
含有鏈外資料(例如,關於現實世界之資料)的智慧型合約之執行依賴於雙方之間的不同信任等級。為了得到信任,一證明器可對用戶端(或驗證證明器是否確實之任一其他系統)證明某一對話發生於證明器與受信任產生資料之一資料源之間。在一實施例中,證明器給用戶端提供818一默克爾路徑(例如,如關於圖7所描述),該默克爾路徑包含包括用以評估算術電路及通訊之證明之輸入資料的一記錄。用戶端接收默克爾路徑及通訊之證明,且藉由獲得與受信任資料源相關聯之一公用密鑰(例如,藉由向證書部門808請求包括資料源之公用密鑰的一數位證書)、驗證經由通訊之證明產生的一數位簽名之真實性來驗證820特定記錄(或記錄之資料)為與受信任資料源的通訊之部分,自該默克爾路徑產生一雜湊輸出,及驗證產生之雜湊輸出匹配接收到的通訊之證明。以此方式,用戶端能夠判定智慧型合約之輸入由一受信任源提供。
在一實施例中,用戶端驗證822正確性之證明,諸如,以在本揭露內容中其他處描述之方式及/或使用在英國專利申請案第1719998.5中描述之技術。用戶端亦可產生824一聲譽交易,其記錄826至區塊鏈且對區塊鏈網路廣播指示證明器在以上描述的特定智慧型合約之執行之履行中是否確實地行動的用戶端之審查。在此上下文中,確實地可指證明器使用由資料源提供之相同資料執行智慧型合約,如與使用不同輸入執行智慧型合約之一不確實實體相反,藉此,在一些實施例中,更改智慧型合約之執行之後果。
圖9為可在各種情境(諸如,關於圖4及圖8描述之實施例)中利用的一聲譽交易902之說明圖900。在一實施例中,聲譽交易為後合約執行驗證之類型,假定一證明器為確實的。在一實施例中,此類型之驗證不影響合約之執行,而實際上,用作對證明器之聲譽有影響之一量度。一旦已執行一智慧型合約,則用戶端具有機會來審查證明器之服務,並伴有藉由促進良好表現之證明器來增加智慧型合約市場之效能的激勵。相反地,證明器被激勵正確地表現,此係由於其是否如此進行對其聲譽且對其潛在未來用戶端具有直接影響--用戶端可基於其聲譽(或其缺乏)來選擇證明器。
在一實施例中,用戶端(例如,如關於圖4所描述)藉由審查者904輸入建立交易。審查者輸入可為使用用戶端之私用密鑰簽名的交易輸入。一般而言,審查者輸入可為提供用戶端為聲譽交易之審查者之可公開驗證之鑒證的任何資訊。聲譽交易包含三個輸出。驗證906輸出可具有一相關聯之解鎖指令碼,其將一公用密鑰、一簽名及一默克爾路徑用作輸入。在驗證時,默克爾路徑可用以證明一記錄屬於由一受信任實體(例如,如關於圖4描述之資料提供者)簽名及發送之對話證明。一般而言,驗證906輸出為包括一期望值及可用以產生期望值之認證資訊的交易輸出--期望值可經數位簽名,數位簽名之真實性可使用如上所述之一公用密鑰驗證。在一實施例中,認證資訊為可用以產生一根雜湊值之一默克爾路徑。第二輸出可為一撤銷908輸出,其包括屬於用戶端之一位址。在一實施例中,解鎖撤銷輸出象徵審查經取消或撤銷。聲譽交易亦可將審查元資料910編碼為一第三交易輸出,其包括關於證明器之身分(例如,證明器之位址)、證明器執行之智慧型合約及肯定審查之指示的資訊。在一基於比特幣之實施例中,聲譽元資料910經實施為一OP_RETURN輸出。在一實施例中,輸出可具有標稱量之數位資產(例如,塵值)或根本無值(在不能耗費之OP_RETURN輸出之情況下)。在一實施例中,基於比特幣之系統可具有根據以下實施之一聲譽交易:
輸入位址 | 量輸入 | 解鎖指令碼 | 量輸出 |
用戶端 | 2d + miner fee (ClientSig) | 驗證解鎖指令碼:OP_8 OP_ROLL (OP_CAT OP_SHA256 OP_SWAP OP_IF OP_SWAP OP_ENDIF) * 4 <h'final> OP_EQUAL ProverPubKey OP_CHECKSIG 撤銷解鎖指令碼:ClientPubKey OP_CHECKSIG 審查元資料解鎖指令碼:OP_RETURN SCMReview 1 proverID contractID | d d0 |
應進一步注意,OP_CAT可指適合於串接兩個字串之任何作業碼、常式、命令或函式。
圖10為用於產生通訊之證明的一過程1000之說明圖。在一實施例中,過程1000係使用硬體、軟體或其組合實施。用於執行該過程之一合適系統包括一資料提供者,諸如,關於圖4描述之資料提供者。一般而言,執行過程1000之系統可為由一計算實體信任之任一合適的系統,該計算實體將一智慧型合約之執行或其他計算任務委託給另一計算實體。在此上下文中,信任可指一個計算實體將源自受信任實體及/或由受信任實體廣播之資料視作正確的,及/或自具有一有效安全性證書之一受信任源發佈的資料真實且準確。
在一實施例中,執行過程1000之系統包括可執行碼,該可執行碼若由系統之一或多個處理器執行,則使系統與諸如證明器之一計算實體建立1002用密碼技術保護之通訊會話。用戶端可具有用於在智慧型合約之執行中利用的資料之受信任源之清單--該清單可以發佈(例如,作為智慧型合約或區塊鏈上之其他處之部分或與智慧型合約或區塊鏈上之其他處相關聯)。用密碼技術保護之通訊會話之一實例為TLS會話。
系統可偵測1004開始認證系統與對方之間的通訊之一指示。該指示可隱含地定義為一協定之部分--例如,在完成4路交握協定後,該系統可開始認證通訊。在一實施例中,該指示由系統根據一記錄協定接收為一訊息,該訊息指示開始認證通訊。應注意,認證通訊亦可被稱作公證兩個或更多個計算實體之間的通訊及/或對話。作為開始認證通訊的一指示之部分,該系統可記錄系統開始認證通訊的時間之一時戳。
在開始認證通訊之指示後,該系統可接收及/或傳輸1006資料,作為記錄協定之部分,且可將通訊(或其中含有之資料)以任何合適之格式記錄,諸如,作為一資料結構記錄於短期記憶體中。應注意,關於資料之接收及傳輸說明的堆疊框指示可接收及傳輸多個記錄,但情況不必如此--在一實施例中,接收及/或傳輸一單一記錄。
在一實施例中,在接收到開始認證通訊之指示後,該系統可接收1008結束認證與對方之通訊的一指示。在一實施例中,該系統記錄偵測到結束認證通訊之請求的時間之一時戳。在一些情況下,結束經隱含地偵測,諸如,藉由用密碼技術保護之通訊會話之終止。
在一實施例中,系統基於在認證週期期間(亦即,在系統偵測到開始認證與結束認證通訊時之間的時間)傳輸及/或接收之記錄(或其部分)產生1010一通訊之證明。該系統可藉由以關於圖7描述之方式產生一默克爾樹來產生通訊之證明。默克爾樹之根可為通訊之證明。在一實施例中,通訊之證明係基於默克爾樹之根及編碼經認證通訊發生之時間間隔的W_time來判定。通訊之證明可由系統使用一私用密鑰來數位簽名,其中對應公用密鑰可經由發出數位證書之一證書部門存取。在一實施例中,該系統為關於圖3至圖5及圖8描述之資料提供者。在產生通訊之證明後,該系統可將通訊之證明傳輸1014至會話之對方(例如,證明器)及/或另一實體(例如,用戶端,如由證明器在會話期間指定)。
圖11為用於使用經認證資料(諸如,發佈至一區塊鏈網路之智慧型合約)執行一程式或指令碼的過程1100之說明圖。在一實施例中,對外部資料(例如,關於現實世界事件之資料)認證,而不認證可自區塊鏈獲得之資料。在此上下文中提及之資料可指用作評估一算術電路之部分的輸入資料,以產生在一智慧型合約中使用之一輸出。在一實施例中,過程1100係使用硬體、軟體或其組合實施。用於執行該過程之一合適系統包括一證明器,諸如,關於圖2至圖4及圖8描述之證明器。
在一實施例中,該系統判定應獲得外部資料以用於代表一用戶端執行一智慧型合約。該系統可識別1102資料可獲得自之一計算實體,該計算實體為用戶端信任之一實體。該用戶端可發佈受信任實體之清單,諸如,在智慧型合約或區塊鏈上其他處中或與智慧型合約或區塊鏈上其他處相關聯,且該系統選擇任一合適之受信任實體以自其獲得外部資料。在一實施例中,該系統與資料源建立1104一用密碼技術保護之通訊會話。用密碼技術保護之通訊會話之一實例為TLS或SSL會話。
在一實施例中,該系統向來源請求外部資料,且經由用密碼技術保護之通訊會話自資料源接收1106資料。外部資料可在包圍智慧型合約之多種情境中使用,包括(但不限於)用於在需要存取市場價饋入以用於資產及金融應用(例如,利率)之證券(例如,利率、衍生、債券)中使用之智慧型合約;需要存取外部資料(例如,針對延遲對一方投保之飛行資訊;使用天氣之資料饋入而非作物保險之價格指數的金融衍生合約之天氣資料)之同級間保險智慧型合約;需要關於裝運之GPS資料的交易智慧型合約;需要存取隨機數產生器之賭博合約;及更多。
在系統接收到外部資料後,系統可將提供一組通訊作為用密碼技術保護之通訊會話之部分而發生的一第一鑒證之一指示提供至資料源,其中該組通訊包含系統自受信任資料源接收外部資料。系統可接收1108第一鑒證。第一鑒證可為係默克爾樹之雜湊根的一通訊之證明。第一鑒證可經數位簽名,數位簽名之真實性可藉由與受信任資料源相關聯之一公用密鑰驗證。
在一實施例中,系統產生1110,將資料用作至一算術電路
之輸入
,其中該電路用以產生一二次程式以產生一或多個輸出
。在一實施例中,系統(例如,證明器)獲得用於
之一有效指令碼作為輸出,該有效指令碼為值至電路電報之指派,使得指派至輸入電報之值為
之值。該系統亦可產生用作至算術電路之輸入的資料為自受信任源獲得之資料的一鑒證。鑒證可為如本揭露內容中其他處(諸如關於圖6及圖7)所描述之一默克爾路徑。該系統可對區塊鏈廣播1112智慧型合約之正確執行之證明。該系統可傳輸第二鑒證(例如,默克爾路徑)、第一鑒證(亦即,自資料源接收到之鑒證,諸如,通訊之證明)、與受信任實體相關聯之一公用密鑰或其某一組合。
應注意,在本揭露內容之情況下,抗預成像函數包括單向函數,其指在計算上可能並不難以計算一當前值但自當前值判定一先前值在計算上可能並非不重要之函數。在一些情況下,單向隸屬函數並未在數學上經證明/可證明為單向,而是仍然具有致使函數抗預成像之計算複雜度性質。單向函數(亦被稱作「有效單向函數」)包括(但不限於):諸如訊息認證碼(例如,基於雜湊之訊息認證碼(HMAC))之密碼編譯雜湊函數、諸如PBKDF2及bcrypt(例如,其中密碼至少部分基於純文字及密碼學密鑰)之密鑰導出函數及可但未必具有大於其範圍(可能輸出)之一域(可能輸入之集合)的其他安全隨機化函數。用於各種實施例之其他合適函數包括(但不限於):接受至少純文字及密碼學密鑰作為輸入且具有以下性質之函數:抗預成像使得隨機產生一輸入之機率低於一指定臨限值、第二抗預成像(給定一輸入x1,隨機產生不同輸入x2使得f(x1)=f(x2)之機率低於一指定臨限值)及/或抗碰撞(例如,兩個不同輸入導致相同輸出之機率小於一指定臨限值)。
圖12為可用以實踐本揭露內容之至少一個實施例的一計算裝置1200之例示性簡化方塊圖。在各種實施例中,計算裝置1200可用以實施以上說明及描述的系統中之任一者。舉例而言,計算裝置1200可經組配用於用作資料伺服器、網頁伺服器、攜帶型計算裝置、個人電腦或任一電子計算裝置。如圖12中所展示,計算裝置1200可包括一或多個處理器1202,在實施例中,其與許多周邊子系統通訊且經由一匯流排子系統1204操作性地耦接至許多周邊子系統。在一些實施例中,此等周邊子系統包括一儲存子系統1206(其包含一記憶體子系統1208及一檔案/磁碟儲存子系統1210)、一或多個使用者介面輸入裝置1212、一或多個使用者介面輸出裝置1214及一網路介面子系統1216。此儲存子系統1206可用於資訊之臨時或長期儲存。
在一些實施例中,匯流排子系統1204提供用於使計算裝置1200之各種組件及子系統能夠相互按所意欲通訊之機制。雖然匯流排子系統1204經示意性地展示為單一匯流排,但匯流排子系統之替代性實施例利用多個匯流排。在一些實施例中,網路介面子系統1216提供至其他計算裝置及網路之一介面。在一些實施例中,網路介面子系統1216充當用於自來自計算裝置1200之其他系統接收資料及將資料傳輸至其他系統之一介面。在一些實施例中,匯流排子系統1204用於傳遞諸如細節、搜尋項目等等之資料。
在一些實施例中,使用者介面輸入裝置1212包括一或多個使用者輸入裝置,諸如,鍵盤;指標裝置,諸如,整合滑鼠、軌跡球、觸控板或圖形平板電腦;掃描儀;條形碼掃描儀;併入至顯示器內之觸控螢幕;音訊輸入裝置,諸如,語音辨識系統、麥克風;及其他類型之輸入裝置。一般而言,術語「輸入裝置」之使用意欲包括用於將資訊輸入至計算裝置1200的所有可能類型之裝置及機構。在一些實施例中,該一或多個使用者介面輸出裝置1214包括顯示子系統、印表機或諸如音訊輸出裝置之非視覺顯示器等。在一些實施例中,顯示子系統包括陰極射線管(CRT)、諸如液晶顯示器(LCD)之平板裝置、發光二極體(LED)顯示器或投影或其他顯示裝置。一般而言,術語「輸出裝置」之使用意欲包括用於自計算裝置1200輸出資訊的所有可能類型之裝置及機構。該一或多個使用者介面輸出裝置1214可用以(例如)呈現使用者介面以有助於使用者與執行描述之過程及其變化之應用程式互動(當此互動可為適當時)。
在一些實施例中,儲存子系統1206提供一電腦可讀儲存媒體用於儲存提供本揭露內容之至少一個實施例之功能性的基本程式設計及資料建構。該等應用程式(程式、程式碼模組、指令)在一些實施例中在由一或多個處理器執行時,提供本揭露內容之一或多個實施例之功能性,且在實施例中,儲存於儲存子系統1206中。此等應用模組或指令可由一或多個處理器1202執行。在各種實施例中,儲存子系統1206另外提供用於儲存根據本揭露內容使用之資料的一儲存庫。在一些實施例中,儲存子系統1206包含一記憶體子系統1208及一檔案/磁碟儲存子系統1210。
在實施例中,記憶體子系統1208包括許多記憶體,諸如,用於在程式執行期間儲存指令及資料之一主要隨機存取記憶體(RAM) 1218及/或可儲存固定指令之一唯讀記憶體(ROM) 1220。在一些實施例中,檔案/磁碟儲存子系統1210提供用於程式及資料檔案之非暫時性永久(非依電性)儲存,且可包括硬碟驅動機、連同相關聯之抽取式媒體之軟碟驅動機、光碟唯讀記憶體(CD-ROM)驅動機、光碟機、抽取式媒體盒及其他相似儲存媒體。
在一些實施例中,計算裝置1200包括至少一個本端時鐘1224。在一些實施例中,本端時鐘1224為表示已自一特定開始日期發生的滴答聲之數目的計數器,且在一些實施例中,整體地位於計算裝置1200內。在各種實施例中,本端時鐘1224用以按特定時脈脈衝同步在用於計算裝置1200及其中包括之子系統之處理器中的資料傳送,且可用以協調在計算裝置1200與資料中心中之其他系統之間的同步操作。在另一實施例中,本端時鐘為一可規劃間隔計時器。
計算裝置1200可屬於多種類型中之任一者,包括攜帶型電腦裝置、平板電腦、工作站或以下描述之任一其他裝置。另外,計算裝置1200可包括在一些實施例中可經由一或多個埠(例如,USB、頭戴式耳機插口、Lightning連接器等)連接至計算裝置1200之另一裝置。在實施例中,此裝置包括接受光纖連接器之一埠。因此,在一些實施例中,此裝置將光信號轉換成經由將裝置連接至計算裝置1200之埠傳輸的電信號供處理。歸因於電腦及網路不斷改變之本質,出於說明裝置之較佳實施例之目的,圖12中描繪之計算裝置1200之描述僅意欲作為一特定實例。具有比圖12中描繪之系統多或少之組件的許多其他組配係可能的。
描述本發明之某些態樣或實施例之額外範例:
第1範例,一種電腦實施方法,其包含:
與一計算實體建立一用密碼技術保護之通訊會話;
經由該用密碼技術保護之通訊會話接收包含輸入資料之一通訊,該輸入資料控制發佈至一區塊鏈網路之一程式之執行;
接收經由該用密碼技術保護之通訊會話發生一組通訊的一第一鑒證,該組通訊包含該資料;
使用該輸入資料執行該程式,其中該程式之執行導致產生該程式之正確執行之一證明;
至少部分基於該接收之輸入資料產生自該資料源接收該資料之一第二鑒證;以及
將該程式之正確執行之該證明提供至另一電腦系統。
第2範例,如前述範例中任一範例之電腦實施方法,其中該第一鑒證具有至少部分基於一默克爾(Merkle)樹之一根節點的一值,該默克爾樹包含自該組通訊判定的葉節點之一集合及一鹽值集合。
第3範例,如第2範例之電腦實施方法,其中該組通訊中之每一通訊具有基於接收還是傳輸該通訊而判定之一對應中間節點。
第4範例,如第2至3範例中任一範例之電腦實施方法,其中該第一鑒證之該值進一步至少部分基於自該默克爾樹之至少該根節點產生的一密碼編譯雜湊輸出及該組通訊之一時間間隔。
第5範例,如第2至4範例中任一範例之電腦實施方法,其中該第二鑒證係至少部分基於該默克爾樹之一默克爾路徑,該默克爾路徑包含該默克爾樹之一節點集合之值,該節點集合之該等值足以計算該默克爾樹之該根節點值。
第6範例,如第5範例之電腦實施方法,其中該默克爾路徑之該節點集合在該默克爾樹之每一非葉及非根深度處恰好包含一個節點。
第7範例,如前述範例中任一範例之電腦實施方法,其中該程式包含兩方或更多方達成一致之一組規則,且該方法進一步包含自該等兩方或更多方中之至少一個信任之一或多個計算實體選擇該計算實體。
第8範例,如前述範例中任一範例之電腦實施方法,其進一步包含:
偵測一區塊鏈交易,該區塊鏈交易包含:
包含一第一鎖定指令碼之一第一交易輸出,其中與該第一交易輸出相關聯之一第一數位資產可由編碼以下之一解鎖指令碼解鎖:
與該計算實體相關聯之一公用密鑰;
編碼一期望值之一數位簽名,該數位簽名之真實性可使用該公用密鑰用密碼技術驗證;以及
可用以產生該期望值之認證資訊;以及
一第二交易輸出,其編碼正確執行之該證明有效之一指示;以及
藉由提供至少該公用密鑰、該數位簽名及該認證資訊來解鎖該第一數位資產。
第9範例,如第8範例之電腦實施方法,該區塊鏈交易進一步包含:
一交易輸入,其使用與該其他電腦系統相關聯之一私用密鑰數位簽名;
一第三交易輸出,其包含一第二解鎖指令碼,其中與該第三交易輸出相關聯之一第二數位資產可使用該私用密鑰解鎖;以及
該第二交易輸出進一步編碼與該其他電腦系統相關聯之一識別符。
第10範例,如第8至9範例中任一範例之電腦實施方法,其中該認證資訊包含一默克爾樹之一默克爾路徑,且該期望值係至少部分基於該默克爾樹之一根節點。
第11範例,如前述範例中任一範例之電腦實施方法,其中該資料包含指示是否發生一事件之二進位資料。
第12範例,如前述範例中任一範例之電腦實施方法,其中該資料為包含不可基於該區塊鏈上之其他資料驗證之資訊的資料。
第13範例,如前述範例中任一範例之電腦實施方法,其中該第一鑒證為一數位簽名,該數位簽名之真實性可使用與該計算實體相關聯之一密碼編譯公用密鑰驗證。
第14範例,一種系統,其包含:
一處理器;以及
記憶體,其包括可執行指令,作為由該處理器執行之一結果,該等可執行指令使該系統執行如前述範例中任一範例之電腦實施方法。
第15範例,一種非暫時性電腦可讀儲存媒體,其具有儲存於其上之可執行指令,作為由一電腦系統之一處理器執行之一結果,該等可執行指令使該電腦系統至少執行如第1至13範例中任一範例之電腦實施方法。
應注意,上文所提到的實施例說明而非限制本發明,且熟習此項技術者將能夠設計許多替代實施例,而不脫離本發明的如由所附申請專利範圍定義的範疇。在申請專利範圍中,置放於圓括號中之任何參考符號不應被認為限制申請專利範圍。詞語「包含」及類似者並不排除除任何申請專利範圍或說明書中整體列出的元件或步驟外的元件或步驟的存在。在本說明書中,「包含」意謂「包含或由……組成」。元件的單數參考並不排除此等元件之複數參考,且反之亦然。本發明可借助於包含若干截然不同的元件之硬體及借助於一合適程式設計之電腦來實施。在枚舉若干構件之一裝置技術方案中,此等構件中之若干者可由硬體之同一物件體現。某些措施敍述於相互不同的附屬項中之純粹事實並不指示此等措施之一組合不能有利地使用。
100:區塊鏈網路
102、102A:節點
104:交易
106:路徑
200:計算環境
202:編譯器
204:密鑰產生器
206:原始程式碼
208:二次程式Q/QAP
210:評估密鑰212:驗證密鑰214:評估模組
216、312:輸入
218、316:正確性之證明
220、306:驗證器
222、408、810:區塊鏈
300、400:圖
302、402、806:用戶端
304、404、502、802:證明器
308:智慧型合約
310:算術電路
318、406:資料提供者
410、808:證書部門
500、600、700、900:說明圖
504、804:資料源
508:交握
510:記錄
512:證明
514:雜湊根
516:通訊之證明
702:默克爾路徑
800、1200:計算裝置
814:用密碼技術保護之通訊會話
902:聲譽交易
904:審查者
906:驗證
908:撤銷
910:審查元資料/聲譽元資料
1000、1100:過程
1002、1004、1006、1008、1010、1014、1102、1104、1106、1108、1110、1112、1114:步驟
1202:處理器
1204:匯流排子系統
1206:儲存子系統
1208:記憶體子系統
1210:檔案/磁碟儲存子系統
1212:使用者介面輸入裝置
1214:使用者介面輸出裝置
1216:網路介面子系統
1218:主要隨機存取記憶體(RAM)
1220:唯讀記憶體(ROM)
1224:本端時鐘
本發明的此等及其他態樣將自本文中描述的實施例顯而易見且參考本文中所描述的實施例進行闡明。現將僅藉助於實例且參看附圖而描述本發明之一實施例,在附圖中:
圖1說明可實施各種實施例之區塊鏈環境;
圖2說明根據各種實施例的可用以實施一協定之一計算環境;
圖3說明適合於一可驗證的計算之執行的一環境之圖;
圖4說明其中證明器利用結合一程式或指令碼之執行自一資料源獲得之資料的一環境之實例圖;
圖5說明用於自在一程式或指令碼之執行中利用的一資料源獲得資料之一協定之圖;
圖6說明根據一實施例的一默克爾樹之圖;
圖7說明根據一實施例的一默克爾路徑之圖;
圖8說明用於產生及驗證結合各種實施例利用之證明的一協定之圖;
圖9說明根據一實施例的一聲譽交易之圖;
圖10為用於產生通訊之證明的一過程之說明圖;
圖11為用於使用認證的資料執行程式或指令碼的過程之說明圖;且
圖12說明可用以實踐本揭露內容之至少一個實施例的一計算裝置。
300:圖
302:用戶端
304:證明器
306:驗證器
308:智慧型合約
310:算術電路
312:輸入
316:正確性之證明
318:資料提供者
Claims (12)
- 一種電腦實施方法,其包含: 與一計算實體建立一用密碼技術保護之通訊會話; 經由該用密碼技術保護之通訊會話接收包含輸入資料之一第一通訊,該輸入資料控制發佈至一區塊鏈網路之一程式之執行; 接收經由該用密碼技術保護之通訊會話所發生之一組通訊的一第一鑒證,該組通訊包括該第一通訊; 至少部分基於所接收之該輸入資料產生: 該程式之正確執行之一證明,以及 該輸入資料係包含在該第一通訊中之之一第二鑒證;以及 將該程式之正確執行之該證明提供至另一電腦系統。
- 如請求項1之電腦實施方法,其中該第一鑒證具有至少部分基於一默克爾(Merkle)樹之一根節點的一值,該默克爾樹包含自該組通訊所判定的葉節點之一集合及一鹽值集合。
- 如請求項2之電腦實施方法,其中該組通訊中之每一通訊具有基於接收或是傳輸該通訊而判定之一對應中間節點。
- 如請求項2至3中任一項之電腦實施方法,其中該第一鑒證之該值進一步至少部分基於一密碼編譯雜湊輸出,該密碼編譯雜湊輸出係自該默克爾樹之至少該根節點及該組通訊之一時間間隔所產生。
- 如請求項2至3中任一項之電腦實施方法,其中該第二鑒證係至少部分基於該默克爾樹之一默克爾路徑,該默克爾路徑包含該默克爾樹之一節點集合之值,該節點集合之該等值足以計算該默克爾樹之該根節點值。
- 如請求項5之電腦實施方法,其中該默克爾路徑之該節點集合在該默克爾樹之每一非葉及非根深度處恰好包含一個節點。
- 如請求項1至3中任一項之電腦實施方法,其中該程式包含兩方或更多方達成一致之一組規則,且該方法進一步包含自該等兩方或更多方中之至少一者所信任之一或多個計算實體選擇該計算實體。
- 如請求項1至3中任一項之電腦實施方法,其中該資料包含指示是否發生一事件之二進位資料。
- 如請求項1至3中任一項之電腦實施方法,其中該資料為包含不可基於該區塊鏈上之其他資料驗證之資訊的資料。
- 如請求項1至3中任一項之電腦實施方法,其中該第一鑒證為一數位簽名,該數位簽名之真實性可使用與該計算實體相關聯之一密碼編譯公用密鑰驗證。
- 一種系統,其包含: 一處理器;以及 記憶體,其包括可執行指令,由於藉由該處理器執行該等可執行指令,使該系統執行如請求項1至10中任一項之電腦實施方法。
- 一種非暫時性電腦可讀儲存媒體,其具有儲存於其上之可執行指令,由於藉由一電腦系統之一處理器執行該等可執行指令,使該電腦系統至少執行如請求項1至10中任一項之電腦實施方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GBGB1720946.1A GB201720946D0 (en) | 2017-12-15 | 2017-12-15 | Computer-implemented system and method |
GB1720946.1 | 2017-12-15 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202414256A true TW202414256A (zh) | 2024-04-01 |
TWI854899B TWI854899B (zh) | 2024-09-01 |
Family
ID=
Also Published As
Publication number | Publication date |
---|---|
KR102687781B1 (ko) | 2024-07-24 |
US20200322132A1 (en) | 2020-10-08 |
GB201720946D0 (en) | 2018-01-31 |
JP2021507565A (ja) | 2021-02-22 |
CN111801910A (zh) | 2020-10-20 |
EP3725031A1 (en) | 2020-10-21 |
KR20200096790A (ko) | 2020-08-13 |
KR20240117638A (ko) | 2024-08-01 |
JP2023106528A (ja) | 2023-08-01 |
JP7285840B2 (ja) | 2023-06-02 |
SG11202005596XA (en) | 2020-07-29 |
TW201928743A (zh) | 2019-07-16 |
WO2019116248A1 (en) | 2019-06-20 |
TWI831760B (zh) | 2024-02-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102687781B1 (ko) | 증명 검증에 기초하여 오프-체인 데이터를 인증하기 위한 시스템 및 방법 | |
TWI770307B (zh) | 用以使用調解方電腦系統來確保電腦程式正確執行的系統與方法 | |
Bhutta et al. | A survey on blockchain technology: Evolution, architecture and security | |
JP7221954B2 (ja) | 変更から検証鍵を保護し、正当性のプルーフの有効性を確かめるためのシステム | |
US11842317B2 (en) | Blockchain-based authentication and authorization | |
US10685099B2 (en) | System and method for mapping decentralized identifiers to real-world entities | |
JP6877448B2 (ja) | 分散ハッシュテーブル及びブロックチェーンを用いてコンピュータソフトウェアを保証する方法及びシステム | |
EP3614289A1 (en) | Method for managing document on basis of blockchain by using utxo-based protocol, and document management server using same | |
US20220321360A1 (en) | Hash function attacks | |
CN111406398A (zh) | 管理账本系统中的可信点 | |
Kanakam et al. | Intramural Analysis of Blockchain. |