TW201924278A - 用以使用調解方電腦系統來確保電腦程式正確執行的系統與方法 - Google Patents
用以使用調解方電腦系統來確保電腦程式正確執行的系統與方法 Download PDFInfo
- Publication number
- TW201924278A TW201924278A TW107139703A TW107139703A TW201924278A TW 201924278 A TW201924278 A TW 201924278A TW 107139703 A TW107139703 A TW 107139703A TW 107139703 A TW107139703 A TW 107139703A TW 201924278 A TW201924278 A TW 201924278A
- Authority
- TW
- Taiwan
- Prior art keywords
- program
- computer system
- value
- prover
- blockchain
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 84
- 238000004590 computer program Methods 0.000 title description 11
- 238000004891 communication Methods 0.000 claims description 31
- 230000015654 memory Effects 0.000 claims description 15
- 230000004044 response Effects 0.000 claims description 13
- 238000004422 calculation algorithm Methods 0.000 claims description 9
- 238000012937 correction Methods 0.000 abstract description 34
- 230000000116 mitigating effect Effects 0.000 abstract description 2
- 238000012795 verification Methods 0.000 description 37
- 238000012546 transfer Methods 0.000 description 23
- 238000010586 diagram Methods 0.000 description 16
- 238000011156 evaluation Methods 0.000 description 14
- 230000006870 function Effects 0.000 description 13
- 239000000463 material Substances 0.000 description 9
- 238000005065 mining Methods 0.000 description 8
- 230000006735 deficit Effects 0.000 description 7
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 239000004020 conductor Substances 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 238000012550 audit Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000001934 delay Effects 0.000 description 2
- 230000003111 delayed effect Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- AZFKQCNGMSSWDS-UHFFFAOYSA-N MCPA-thioethyl Chemical compound CCSC(=O)COC1=CC=C(Cl)C=C1C AZFKQCNGMSSWDS-UHFFFAOYSA-N 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 239000000872 buffer Substances 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000012946 outsourcing Methods 0.000 description 1
- 239000013259 porous coordination polymer Substances 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Classifications
-
- 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/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/74—Image or video pattern matching; Proximity measures in feature spaces
- G06V10/75—Organisation of the matching processes, e.g. simultaneous or sequential comparisons of image or video features; Coarse-fine approaches, e.g. multi-scale approaches; using context analysis; Selection of dictionaries
- G06V10/755—Deformable models or variational models, e.g. snakes or active contours
- G06V10/7557—Deformable models or variational models, e.g. snakes or active contours based on appearance, e.g. active appearance models [AAM]
-
- 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
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/0825—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
-
- 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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/085—Secret sharing or secret splitting, e.g. threshold schemes
-
- 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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
-
- 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/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
- H04L9/3221—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 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
-
- 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/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/3297—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 time stamps, e.g. generation of time stamps
-
- 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)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Software Systems (AREA)
- Medical Informatics (AREA)
- Databases & Information Systems (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
- Storage Device Security (AREA)
- Retry When Errors Occur (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
在一分散式系統中,一第一電腦系統可需要由一第二電腦系統對運算之真確性及完整性進行可運算驗證保證(例如,作為一程式之執行之部分來進行)。本文中所述之方法可用於施行及/或確保一程式之正確執行。該第一電腦系統可將一程式之執行委派給一第二電腦系統,並且可運用一協定來約束該第二電腦系統以進行該程式之一正確執行。該協定可包括減輕及/或校正一程式之不正確執行之減輕及校正例行程序。在本文中所述之各種系統及方法中,該協定可利用一區塊鏈網路,諸如一基於比特幣之區塊鏈網路。
Description
本發明大致係有關於確保電腦程式在分散式運算環境中正確執行,並且更特別的是,係有關於用於確保程式正確執行之協定,其中第一運算實體將程式之執行委派給第二運算實體。本發明尤其適合、但不限於在區塊鏈網路中使用。
在本文件中,「區塊鏈」一詞可有關於數種類型之電子、電腦為基之、分散式分類帳。這些包括基於共識之區塊鏈及交易鏈技術、許可及未許可之分類帳、共享分類帳以及其變體。雖然已提出並開發其他區塊鏈實作態樣,區塊鏈技術最廣為人知之應用仍是比特幣分類帳。儘管比特幣可稱為本揭露中所述技術之一有用應用,但為了方便及說明目的,比特幣僅是本揭露中所述技術可施用之許多應用之一。然而,應知本發明並不受限於配合比特幣區塊鏈使用;包括非商業應用之替代區塊鏈實作態樣及協定亦落入本發明之範疇內。
一區塊鏈係一種點對點、電子分類帳,其係實施成一電腦為基之分散型、分散式系統,由諸區塊所構成,該等區塊進而可由交易及其他資訊所構成。在一些實例中,「區塊鏈交易」意指為將包含資料及一條件集之一欄位值結構化集合編碼之一輸入訊息,其中該條件集之滿足係將該欄位集合寫入至一區塊鏈資料結構之一前提。舉例而言,比特幣之各交易為將區塊鏈系統中諸參與者之間一數位資產之控制轉移編碼、並且包括至少一個輸入及至少一個輸出之一資料結構。在一些實施例中,一「數位資產」意指為與一使用權相關聯之二進位資料。數位資產之實例包括比特幣、以太幣及萊特幣。在一些實作態樣中,一數位資產之轉移控制可藉由使出自一第一實體之一數位資產之至少一部分與一第二實體重新產生關聯來進行。區塊鏈之各區塊可含有前一個區塊之一雜湊,以使得諸區塊與之變為鏈接在一起,以建立所有交易之一永久、不可更改記錄,自其起始以來便已將該等交易寫入至該區塊鏈。交易含有小程式,係稱為嵌入其輸入及輸出之指令碼,其指定可如何及由誰來存取該等交易之該等輸出。在比特幣平台上,這些指令碼係使用堆疊式指令碼語言來編寫。
為了將一交易寫入至區塊鏈,必須對其進行「驗核」。網路節點(挖礦節點)進行工作以確保各交易有效,並且將無效交易從網路拒絕。一節點可具有與其他節點不同之有效性標準。由於區塊鏈中之有效性是以共識為基礎,因此如果大部分節點同意一交易有效,則將該交易視為有效。安裝在節點上之軟體用戶端藉由執行一未動用交易輸出(UTXO)之鎖定及解鎖指令碼,部分地對引用該UTXO之交易進行此驗核工作。如果鎖定及解鎖指令碼之執行評估為成立,並且滿足其他驗核條件(若適用的話),則由該節點來驗核該交易。已驗核交易係傳播至其他網路節點,然後一挖礦節點可選擇在一區塊鏈中包括該交易。因此,為了將一交易寫入至區塊鏈,其必須i)藉由接收交易之第一節點來驗核 – 如果交易經過驗核,則節點將其轉發至網路中之其他節點;以及ii)加入由一挖礦節點所建置之一新區塊;以及iii)受開採,亦即加入過去交易之公開分類帳。
雖然區塊鏈技術在加密貨幣實作態樣之使用方面廣為人知,但數位企業家已開始探索比特幣所基於之密碼編譯保全系統、及可儲存在區塊鏈上之資料兩者之使用以實施新系統。如果區塊鏈可用於不限於加密貨幣領域之自動化任務及程序,那將會非常有利。此類解決方案將能夠利用區塊鏈之效益(例如,一永久性、防竄改事件記錄、分散式處理等),同時在其應用方面也更加通用。
本揭露說明一或多個基於區塊鏈之電腦程式之技術態樣。一基於區塊鏈之電腦程式可以是記錄在一區塊鏈交易中之一機器可讀且可執行程式。該基於區塊鏈之電腦程式可包含可處理輸入以便產生結果之規則,進而可接著依據那些結果進行動作。一個目前研究領域是使用基於區塊鏈之電腦程式來實施「智慧合約」。智慧合約與用自然語言撰寫之一傳統合約不同,可以是設計旨在使一機器可讀合約或協議之條款自動執行之電腦程式。
區塊鏈相關之另一關注領域係使用「符記」(或「彩色硬幣」)經由區塊鏈來代表及轉移真實世界之實體。一潛在敏感或秘密項目可由不具有可辨別意義或值之符記來表示。因此,該符記當作允許在區塊鏈上引用該真實世界項目之一識別符。
因此,期望在這些態樣其中一或多者中提供改善區塊鏈技術之方法及系統。現已擬出此一改良型解決方案。因此,根據本發明,提供有一種如隨附申請專利範圍中定義之方法。
根據本發明,可為一區塊鏈網路之一節點提供有一電腦實施之方法,該電腦實施之方法包含:在與一調解方電腦系統相關聯之一公開金鑰下將一秘密值加密;將該已加密秘密值提供給一工作者電腦系統,其中該已加密秘密值可由該工作者電腦系統及該調解方電腦系統用於共同執行一第一程式;令一第二程式可用在一區塊鏈資料結構上,其中該第二程式之執行具有一輸入;判定該區塊鏈資料結構反映:該第二程式正確執行之一證明;以及一輸入值,其中用以產生該證明之該第二程式之執行係至少部分基於將該輸入值當作該輸入用於該第二程式;以及回應於判定該輸入值有效,將該秘密值提供給該工作者電腦系統,其中該工作者電腦系統能夠至少使用該秘密值來執行該第一程式。
較佳的是,該方法可包括:至少部分基於該秘密值來產生一密碼編譯雜湊輸出;產生該已加密值及該密碼編譯雜湊輸出兩者係至少部分基於該秘密值來判定之一證據;將該密碼編譯雜湊輸出及該證據提供給該工作者電腦系統,其中該工作者電腦系統可操作以使用該證據來判斷該已加密秘密值及該密碼編譯雜湊輸出是否係至少部分基於一相同值。
該證據可以是一零知識證明,並且該零知識證明之正確性可由該工作者電腦系統進行運算式驗證。運算驗證可涉及使用密碼編譯操作來提供完整性及/或真確性之保證。
較佳的是,該輸入值可以是一第一輸入值,並且該方法可回應於判定該第一輸入值不正確,包括:至少部分基於該第一輸入值來計算一第二輸入值;將該第二輸入值提供給該工作者電腦系統;以及回應於判定該工作者電腦系統使用該第二輸入值來執行一第三程式,將該秘密值提供給該工作者電腦系統。
較佳的是,計算該第二輸入值可包括計算一加權漢明距離。
較佳的是,該方法可包含:取得一第二證據,該第二證據包含介於該工作者電腦系統與一資料源之間的一通訊集合,該通訊集合可用於判斷該輸入值是否有效,其中該第二證據係由該資料源採用數位方式簽署;使用與該資料源相關聯之至少一公開金鑰來驗證該第二證據之真確性;以及至少部分基於該通訊集合來判斷該輸入是否有效。
在一些狀況中,令該第二程式可用在該區塊鏈資料結構上包含令一區塊鏈交易受開採至該區塊鏈資料結構,其中該區塊鏈交易包含可用於判定該第二程式及一鎖定指令碼之資訊。該鎖定指令碼可對數位資產設定保留數,其中共同執行該鎖定指令碼及一對應鎖定指令碼釋放對該數位資產之該保留數,其中共同執行該鎖定指令碼及對應解鎖指令碼包含驗證至少兩個數位簽章屬於一數位簽章集合。該數位簽章集合可包含:與進行本文中所述電腦實施之方法之一運算實體相關聯之一第一數位簽章;與該工作者電腦系統相關聯之一第二數位簽章;以及與該調解方電腦系統相關聯之一第三數位簽章。可對該數位簽章集合之至少大部分簽章進行驗證,作為共同執行該等鎖定指令碼及解鎖指令碼之部分,以將該保留數釋放。
該第一程式之執行可將一數位資產之控制轉移到該工作者電腦系統。
較佳的是,該方法可更包括回應於判定該工作者電腦系統無法在一時間門檻內使用該第二輸入值來執行該第三程式,令一第四程式對該區塊鏈資料結構可用,該第四程式可用於獲得該數位資產之控制。
該時間門檻可對包含一部分該第四程式之一區塊鏈交易可受開採至該區塊鏈資料結構之最早時間進行編碼。
較佳的是,該方法可包括產生一數位簽章並將該數位簽章編碼成一解鎖指令碼。該解鎖指令碼可進一步編碼與該工作者電腦系統相關聯之一已自認數位簽章,其中該第四應用程式包含一鎖定指令碼及該解鎖指令碼,以及由與該區塊鏈資料結構相關聯之一區塊鏈網路之一或多個節點執行該第四程式包含判定該數位簽章及該已自認數位簽章兩者都有效。
該第一應用程式可包含一鎖定指令碼及解鎖指令碼,其中該解鎖指令碼將與該工作者電腦系統相關聯之一已自認秘密值及一已自認數位簽章編碼。由與該區塊鏈資料結構相關聯之一區塊鏈網路之一或多個節點執行該第一應用程式可包含判定該已自認秘密值及該已自認數位簽章兩者都有效。
該鎖定指令碼可包含該密碼編譯雜湊輸出。判定該已自認秘密有效可包含使用該已自認秘密值來運算一密碼編譯雜湊演算法之一輸出、以及判定該輸出與該密碼編譯雜湊輸出相匹配。
亦期望提供一種系統,其包含:一處理器;以及包括可執行指令之記憶體,該等可執行指令隨著藉由該處理器執行而令該系統進行如請求項所述之任一方法。
亦期望提供一種上有儲存可執行指令之非暫時性電腦可讀儲存媒體,該等可執行指令隨著藉由一電腦系統之一或多個處理器執行而令該電腦系統至少進行如請求項所述之任一方法。
另外或替代地,本發明可提供一改良型區塊鏈規劃工具或輔助設備。其可提供促進或實現分散式、可驗證運算之一改良型、有效率及優化之布置結構。
在各項實施例中,本文中所述之系統及方法係用於確保電腦程式在一分散式運算環境中正確執行,其中多個實體可控制該分散式運算環境之節點。在此一分散式環境中,一運算實體可難以將一任務之執行委派給另一實體,原因至少在於這兩個實體缺乏向該委派實體保證該執行實體實際進行該任務並且正確進行該任務之一信賴關係。根據本揭露之一協定可用於採密碼編譯方式提供一程式正確執行之可驗證保證,其中一第一運算實體將該程式之執行委派給一第二運算實體。因此,此一協定之使用可用於藉由更有效率地利用整體系統之可用運算資源執行程式來提升一運算系統(例如:一分散式運算環境)之效率,同時亦採密碼編譯方式提供該等程式正確執行之可驗證保證。
圖1繪示一環境,其中本文中所述之系統及方法可用於施行及/或確保一程式之正確執行。在一些實施例中,一第一電腦系統(例如:一用戶端102)將一程式108之執行委派給一第二電腦系統(例如:一證明者104)。證明者104可執行該程式,並且將一正確執行證明110提供給證實證明者104已正確執行該程式(例如,將正確值用於輸入,該等輸入可接收自一附加電腦系統)之用戶端102。在一些狀況中,根據一協定,一第三電腦系統(例如:一調解方106)可用於判斷該證明者是否正確執行程式108。本文中所述之技巧可在一分散式運算環境中實踐,並且可搭配一區塊鏈網路利用。
一用戶端102可意指為將一運算任務之進行委派給一證明者104之一電腦系統,證明者104可以是一不同電腦系統。一般而言,證明者104可以是能夠進行運算任務之任何適合的電腦系統,可將該等運算任務編碼成任何適合的格式,諸如一程式108。用戶端102可從能夠執行該程式之複數個電腦系統中選擇證明者104。證明者104可以是不受用戶端102控制之一電腦系統,並且一般而言,不需要與用戶端102具有一信賴關係,而且在本文中所述協定之外,用戶端102不需要對證明者104將採用一特定方式進行操作(例如,根據用戶端102指定之一輸入集合執行該程式)進行任何附加保證。
程式108可意指為一運算任務,並且可使用參照圖2所述之技巧來產生。程式108舉例而言,可以是一二次程式Q
,諸如參照圖2所述者。一般而言,程式108可具有用於搭配一指令集判定一或多個輸出之一或多個輸入。該(等)輸入及/或輸出可用於產生一正確執行證明110,其為由證明者104所產生之一證據,係對該(等)輸入及/或輸出具有正確值之一運算式可驗證證據。在一實施例中,該證據係一零知識證明。
調解方106可以是與用戶端102及/或證明者104具有及/或建立一信賴關係之一電腦系統。在此上下文中,一信賴關係可意指為該調解方係由用戶端102及/或證明者104判定,作為用以對用戶端102與證明者104之間可能引起之爭議進行調解之一適合的組件。舉例而言,一信賴關係可暗指授予該調解方有能力與該用戶端或該證明者中任一者協同執行一或多個校正程式之一意願。
在一些實施例中,該協定使程式能夠透過區塊鏈交易執行及驗證。如本文中更加詳細所述,一零知識協定可具有一階段集合,其包括、但不限於一建立階段、一運算階段、及一驗證階段。在該建立階段中,進行可用於產生及驗證該零知識證明之公開參數運算。在該執行階段中,該程式可基於一或多個輸入來執行,並且該一或多個輸入可包括從區塊鏈之外源(諸如受信賴機構、網站等等)取得之資料。一證明者可從一外部資料源取得資料作為該程式執行之部分。在該驗證階段,該等輸入可代表根據一零知識證明驗證來運行之一驗證函數之一或多個參數。在一些狀況中,期望具有確保用於執行該程式之輸入正確之一協定,換句話說,可期望約束該證明者正確行為並在執行該程式時提供一準確輸入。
圖2根據各項實施例,繪示可用於實施一協定之一運算環境200。該協定可使用區塊鏈技術儲存正確性證明、以及將「正確建構」密碼術方法與智慧合約組合來實施。在一實施例中,一公開可驗證運算方案包含三個階段:一設置階段、一運算階段以及一驗證階段。
可進行一設置階段作為用以將運算任務之進行外包之一程序之部分。一用戶端如下文所指,可意指為諸如一客戶或用戶端電腦系統之一實體,其將一運算任務之進行委派給一證明者,該證明者可以是一不同電腦系統。一般而言,用戶端可為了各種理由而委派運算任務之進行,該等理由包括但不限於有限運算資源、缺乏運算資源、與利用一用戶端電腦系統進行任務相關聯之財務成本、與利用一用戶端電腦系統進行任務相關聯之能量成本(例如,依賴一電池供電之行動裝置或膝上型電腦可利用一證明者來進行運算密集任務,藉此省電並延長電池供電裝置之使用狀況)等等。
在一實施例中,該設置階段涉及一用戶端、客戶、一組織之員工、或採用具有精確語義之一正式語言撰寫合約之任何其他適合的實體。該合約可採用諸如C或Java之一高階程式設計語言撰寫。一般而言,合約可採用屬於或可轉換成可由一電腦系統操縱之一格式之任何語言或語法來表達。在一實施例中,具有一有限用途之一領域特定語言可提供類型安全性,並且受限表達性可受到利用。產生之原始碼可以是一合約之一精確描述。
編譯器202可以是包括可執行碼之任何硬體、軟體、或以上的組合,該可執行碼如果由一電腦系統之一或多個處理器執行,則可令系統將原始碼206認作輸入並產生一電路。一編譯器202可意指為基於已編譯成一機器可讀格式(諸如二進位碼)之指令來執行或進行指令之一電腦程式。應知,儘管所示係一編譯器202,仍可利用解釋器、組譯器、以及其他適合的軟體及/或硬體組件將原始碼轉換成一電路。在一實施例中,該電路係包含導線之一算術電路,該等導線攜載來自一欄位 F
之值並連接至邏輯及/或算術閘。在一實施例中,電路係由系統用於產生包含一多項式集合之一二次程式Q
208,該多項式集合提供原始電路之一完整描述。
在一實施例中,編譯器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.等人(2013年)在「Quadratic Span Programs and Succinct NIZKs without PCPs」中思忖用於將運算編碼為二次程式之技巧。在一實施例中,二次算術問題(QAP)Q
透過一欄位 F
對電路進行編碼,並且含有m+1個多項式之一集合:
V = {vk (x)}、W = {wk (x)}、Y = {yk (x)}
其中0 ≤k ≤m 。亦定義一目標多項式t(x) 。給定將 F 之n 個元素認作輸入並將n’ 個元素輸出之一函數f ,其中N =n +n ’,如果{c1 , …, cN } ∈ F N 係f 之輸入與輸出群組之一有效指派、以及如果存在有一係數清單{cN+1 , …, cm },則Q 運算f ,使得t(x) 除p(x) :
V = {vk (x)}、W = {wk (x)}、Y = {yk (x)}
其中0 ≤k ≤m 。亦定義一目標多項式t(x) 。給定將 F 之n 個元素認作輸入並將n’ 個元素輸出之一函數f ,其中N =n +n ’,如果{c1 , …, cN } ∈ F N 係f 之輸入與輸出群組之一有效指派、以及如果存在有一係數清單{cN+1 , …, cm },則Q 運算f ,使得t(x) 除p(x) :
因此,在一實施例中,必須存在有某多項式h(x)
,使得h(x)
·t(x)
=p(x)
。Q
之大小為m
,並且其次數為t(x)
次。
在一實施例中,為一算術電路建置一QAP包含為電路中之各乘法閘g
挑選一任意根rg
∈ F
,並且將目標多項式定義為t(x)
= ∏g
(x
−rg
)。在一實施例中,一索引k
∈ {1 ...m
}與電路之各輸入產生關聯,並且與一乘法閘之各輸出產生關聯。V
中之多項式將左輸入編碼成各閘,W
將右輸入編碼成各閘,並且Y
將輸出編碼。舉例來說,如果第k條導線係連至閘g之一左輸入,則vk
(rg
) = 1,否則vk
(rg
) = 0。因此,對於一特定閘g
及其根rg
,可將前面之方程式簡化如下:
該閘之輸出值等於其諸輸入之乘積。可除性檢查分解成deg(t(x)
)個單獨檢查,各閘g
及t(x)
之根rg
檢查一次,使得p(rg
)
= 0。加法閘及乘以常數閘對QAP之大小或次數沒有貢獻。
在一實施例中,QAP係透過一欄位 F p
定義,其中p
係一大質數。在一實施例中,期望透過 F p
之QAP有效率地運算可按照加法及乘法模數p
表達之任何函數。一算術分裂閘可經設計以將範圍已知為[0, 2k-1
]之一算術導線a ∈ F p
轉譯成k
條二進位輸出導線。從而由此得出,布林函數可使用算術閘來表達。舉例來說,NAND(a,b) = 1 – ab。各嵌入式布林閘的代價僅為一次乘法。此外,可將諸如分裂
之新閘定義為獨立及與其他閘組成。給定範圍已知為[0, 2k-1
]之輸入a
∈ Fp
,分裂閘輸出k
條導線,其保持a
之二進位數字a1
、...、ak
,使得∑k
2i −1 ai
=a
並且各ai
為0或1。
最後,待由所有證明者及驗證者使用之公開參數係由系統產生,作為設置階段之部分。應知,評估金鑰及驗證金鑰係使用由用戶端選擇之一秘密值所推導。一金鑰產生器204可搭配金鑰產生演算法利用二次算術規劃(QAP)來產生評估金鑰210及驗證金鑰212。
在一實施例中,進行一運算任務涉及由一證明者對一輸入216運算一函數(即,用於評估f(x)之一程序)。在一實施例中,證明者係可受用戶端委派一運算任務之任何適合的電腦系統。在一實施例中,輸入216包括證實證明者身份之資訊,諸如使用與證明者相關聯之一私用金鑰產生之一數位簽章。在一實施例中,證明者係用戶端同意轉移數位資產以換取成功完成一運算任務之一電腦系統。在一實施例中,用戶端將一輸入x及評估金鑰EK提供給證明者,該證明者對一運算例行程序使用評估模組214來運算輸出y (即,y = f(x),其中輸入是x並且函數是f),並且使用評估金鑰210來產生一正確性證明218。在一實施例中,評估模組係包括指令之硬體及/或軟體,該等指令如果由一電腦系統之一或多個處理器執行,則令該電腦系統評估QAP 208之內部電路導線之值,並且產生QAP之一輸出y。
在一實施例中,將二次程式之各多項式vk
(x)
∈ F
映射至一雙線性群組中之一元素gvk(s)
,其中s
係由用戶端選擇之一秘密值,g
係該群組之一產生器,並且 F
係g
之離散對數欄位。在一實施例中,對於一給定輸入,證明者評估電路以取得輸出及內部電路導線之值,其對應於二次程式之係數ci
。因此,一證明者可評估v(s)
= ∑ k ∈{m}
ck
· vk
(s)
以獲得gv(s)
;運算w(s)及y(s);運算h(x)
=p(x)
/t(x)
= ∑d
hi
· xi
;以及使用評估金鑰中之hi
與gs(i)
項來運算gh(s)
。在一實施例中,正確性證明218包含(gv(s)
、gw(s)
、gy(s)
、gh(s)
),並且一驗證者使用雙線性映射來檢查p(s)
=h(s) · t(s)
。在一實施例中,證明係儲存在區塊鏈網路222上以供以後使用,或可由多個當事方進行驗證,而不需要證明者與這些當事方中之各者單獨地互動。在一實施例中,可對正確性證明之電路儲存進行評估,以解鎖由一交易之一鎖定指令碼設定保留數之資源(例如:數位資產)。
在該實施例中,圖2所示之例示性區塊鏈網路222包含實施成點對點分散式電子裝置之區塊鏈節點,各區塊鏈節點運行進行操作之一軟體及/或硬體個體,該等操作遵循諸節點之營運商之間至少部分地達成一致之一區塊鏈協定。在一些實例中,「節點」意指為分布在區塊鏈網路之中的點對點電子裝置。一區塊鏈協定之一實例係比特幣協定。
在一實施例中,該等節點中至少有些節點係進行複數計算(諸如解決密碼編譯問題)之挖礦節點。解決密碼編譯問題之一挖礦節點為區塊鏈建立一新區塊,並且將該新區塊廣播至該等節點中之其他節點。該等節點中的其他節點驗證挖礦節點之工作,並且在驗證時,接受區塊進入區塊鏈(例如,藉由將其加入區塊鏈之分散式分類帳來接受)。在一些實例中,一區塊係一交易群組,通常標記有一時間戳記及前一個區塊之一「指紋」(例如:一雜湊)。依照這種方式,各區塊可變為連結至前一個區塊,藉此建立將區塊鏈中諸區塊連結之「鏈」。在實施例中,藉由該等節點之一共識將有效區塊加入區塊鏈。同樣在一些實例中,一區塊鏈包含一已驗核區塊清單。
在一實施例中,將證明廣播至一區塊鏈網路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,並且證明者304取得對該電路之一輸入312。輸入資料之來源可以是儲存在區塊鏈上之資料,或可隨著與算術電路310中指定之某一資料饋送之互動在外部取得。輸入資料可經由諸如一區域網路、一內部網路、諸如網際網路之一公用網路、一廣域網路、一無線網路、一行動網路、一衛星網路、具有複數個網路節點之一分散式運算系統等等之一網路318取自一資料饋送,諸如取自一資料提供者320及/或一受信賴實體322。在一些狀況中,輸入312可以是資料,諸如關於真實世界狀態及事件之資料。電路310可用於產生包含一多項式集合之一二次程式Q
,該多項式集合提供原始電路之一完整描述。在任一狀況中,證明者304可對輸入312執行電路或二次程式,以產生一或多個輸出中間輸出及一個最終輸出。在一些實施例中,期望證明者取得之一有效轉錄本作為輸出,該有效轉錄本係對電路導線之值之一指派,使得指派給輸入導線之值是之值,中間值對應於中各閘之正確操作,並且指派給輸出導線之值係;如果聲明之輸出不正確(即),則之一有效轉錄本不存在。在一實施例中,期望證明者提供該等電路導線之該等值之一子集,其中證明者事前不知悉該等電路線之該等值之所選子集。
在一實施例中,一證明者304採用以下方式從一資料提供者320取得外部資料:證明者304及資料提供者320建立一採密碼編譯方式受保護通訊對話;證明者304經由該採密碼編譯方式受保護通訊對話提出一請求;該資料提供者回應於該請求而提供資料;該證明者接收該資料,並且回應於接收該資料,請求該等當事方之間的通訊之一證據;該資料提供者在該採密碼編譯方式受保護通訊對話期間運算該證明者與該資料提供者之間的一採密碼編譯方式可驗證通訊證明,並且用該資料提供者之私用金鑰數位簽署該證據;以及該證明者接收該通訊證明。一般而言,該通訊證明係一用戶端與伺服器之間(例如,證明者304與資料提供者320之間)發生一或多次通訊之一採密碼編譯方式可驗證證據。在一實施例中,該證據可用於驗證該等用戶端與伺服器之間的通訊之內容,但應知,在一些狀況中,可編校該等通訊之一部分(例如,受法律約束揭露之資訊),諸如藉由將該已編校資訊以該資訊之一混淆化結果(例如,採用一加密或雜湊格式之資訊)取代、或以一預定之預設值取代。在一實施例中,該證據係至少部分基於Merkle樹之一根值來判定。在一實施例中,該證據(例如:通訊證明)係使用資料提供者320可存取之一密碼編譯私用金鑰來數位簽署。諸如一憑證機構之一實體可發行認證一密碼編譯公開金鑰對應於該私用金鑰之一數位憑證。應知,在本揭露之範疇內,一通訊證明大致係使用記號來引用,而一正確執行證明可稱為,或更單純地稱為。用於從資料提供者320取得資料、及/或驗證從資料提供者320所取得資料完整性及/或真確性之技巧可根據英國專利申請案第1720946.1號中所述之技巧來進行。
在一實施例中,一受信賴實體322或一受信賴機構可以是(例如,目前或未來)期望對輸入資料有存取權之一實體,諸如一運算系統。可將資料饋送之公開金鑰嵌入一鎖定指令碼,約束解鎖指令碼中之簽章及訊息與該金鑰具有一數學關係,而不是與一固定值具有一數學關係。依此作法,該鎖定係組配為使得將會偵檢到資料之任何修改、以及可採取校正動作,諸如減輕化及/或無效化。未判定之資料可用於鎖定數位資產,並且可以是該鎖定節點在組配一鎖定指令碼時尚不知悉之資料。此資料可以是尚未建立之資料(諸如期望在未來建立但尚未建立之資料)、或另一節點已知但尚未對該鎖定節點可用之資料。然而,該資料係期望(目前或未來)可得自受信賴實體322之資料。該鎖定指令碼可包括用於一已定資料源(例如:受信賴實體322)之一公開金鑰,並且包括令執行該鎖定指令碼之一驗核節點藉由以下步驟對一解鎖指令碼中提供之資料之來源進行驗證之指令:a)基於用於該已定資料源之公開金鑰、並基於該解鎖指令碼中定義之資料來產生一經修改公開金鑰;以及b)基於該經修改公開金鑰來評估該解鎖指令碼中之一簽章。根據本文中所述之各種技巧利用受信賴實體322之技巧可根據搭配英國專利申請案第1705749.8號所述者。
在實施例中,輸出、內部電路導線之值(或一其子集)、以及評估金鑰係用於產生正確性證明316。證明可儲存在區塊鏈上,並且由多個當事方驗證而不需要證明者304與該多個當事方單獨互動。依照這種方式,一驗證者306可使用公開驗證金鑰及證明來驗核廣播之交易,藉此驗核合約。在一些狀況中,如果驗證失敗,則用戶端302可收回由廣播之交易設定保留數之數位資產。在一些狀況中,驗證者306與用戶端302係相同電腦系統。
在一實施例中,圖4繪示用於保全程式執行之一協定的一簡圖400,其中一程式(例如:一智慧合約)之輸入資料受到驗核。在一實施例中,該協定自動補償該程式不正確執行所造成之潛在損害。用戶端402、證明者404、及調解方406可根據本揭露中其他地方所述者。
如其他地方所論述,諸如圖4中所示用戶端402之一用戶端可意指為受一實體控制之一電腦系統,其中該用戶端電腦系統及/或該用戶端實體係一合約之一當事方。舉例而言,用戶端402可與下訂單購買一符記以交換諸如比特幣等數位資產之一實體相關聯,該等數位資產係轉移到該符記之簽發者或擁有者。該符記可以是一智慧合約。
如其他地方所述,證明者404可以是一電腦系統,其監測一網路以尋找嵌入或引用諸如智慧合約等程式之交易。舉例而言,證明者404可以是一區塊鏈網路之一節點。一證明者亦可稱為一工作者或一工作者電腦系統。
一調解方406可以是與用戶端402及/或證明者404具有及/或建立一信賴關係之一調解方電腦系統。在此上下文中,一信賴關係可意指為該調解方係由用戶端402及/或證明者404判定,作為用以對用戶端402與證明者404之間可能引起之爭議進行調解之一適合的組件。舉例而言,一信賴關係可暗指授予該調解方有能力與該用戶端或該證明者中任一者協同將與執行一智慧合約相關聯之數位資產解鎖之一意願。舉例而言,該調解方可用於自動補償由不正確執行一程式(例如:智慧合約)引起之一可能損害。
用戶端402可判定一秘密值,其可採用隨機或虛擬隨機方式產生。該秘密值可意指為在用戶端402判定可接受交還證明者404告示之一保證金以前不應該以明文提供給證明者404之一值。應知,在一些狀況中,該保證金作用為供證明者404遵循協定以正確執行程式之誘因,如果不遵循該協定,則證明者404有失去對一保證金交易設定保留數之資產進行控制之風險。因此,可能的狀況是,回應於用戶端402根據協定判定證明者404已履行該證明者之全部責任,用戶端402向證明者404透露該秘密值。
在判定該秘密值之後,用戶端402可將該秘密值加密,藉此產生一經加密秘密。該秘密值可使用與調解方406相關聯之一公開金鑰來加密以產生密文。在一實施例中,調解方406係由用戶端402與證明者404聯合選擇。在一實施例中,調解方406係搭配圖1所述之區塊鏈網路之一節點。在一實施例中,該秘密值是在用戶端402及調解方406兩者都知悉之一對稱金鑰下進行加密。用戶端402亦可使用該秘密值作為一密碼編譯雜湊演算法(諸如一SHA-256密碼編譯雜湊演算法)之一輸入來產生運算一雜湊輸出。另外,用戶端402可產生該密文及該雜湊輸出兩者都編碼相同秘密值之一證據。在一實施例中,該證據係一零知識證明。用戶端402可將密文、雜湊輸出、及證據傳送至證明者404作為協定之部分。
證明者404可向一區塊鏈網路告示一保證金交易,其中該保證金交易對證明者404之數位資產設定保留數,並且係用於確保證明者404根據協定行事。如果證明者404未遵循協定,則證明者404有蒙受該保證金交易設定保留數之資產喪失之風險。在一實施例中,保證金交易係由證明者404建立,以及贖回所具之一價值為D個比特幣之上一次交易,並且有兩種方式可進行贖回:第一,藉由公布該秘密值及證明者404之數位簽章(稱為一收回存款交易);或第二,藉由透過用戶端402及證明者404兩者在相同交易(稱為一補償交易)上產生數位簽章。保證金交易可憑藉屬於證明者404之D個比特幣(或其他適合的數位資產)之一UTXO來引用上一次交易。保證金交易可包含一或多個輸入,諸如證明者404之一數位簽章。由證券交易設定保留數之數位資產之類型及/或金額可由用戶端402及證明者404相互商定,或可由用戶端402指定,並且可至少部分基於可因使用不正確輸入資料執行程式(例如:智慧合約)而造成之最大損害來選擇。
在一實施例中,用戶端402及交易對手就執行一程式(例如:智慧合約)之條款達成一致。該交易對手可建立鎖定交易,其中輸出之一係由該程式(例如:一智慧合約指令碼)鎖定,並且將其發送至用戶端402。該交易對手可稱為一程式(例如:智慧合約)之一簽發者。應知,於此點,鎖定交易尚非有效,因為輸入之值不等於鎖定交易之輸出之值。一旦用戶端402收到該鎖定交易,用戶端402便將一輸入加入該鎖定交易,並且解鎖受用戶端402控制之一UTXO,以轉移給對數位資產及一費用達成一致之簽發者,該費用係待支付給證明者404以供執行該程式(例如:智慧合約),此外還加入一輸出,該輸出具有繳給證明者404之費用之一值、及一多簽章解鎖指令碼,當提供以下三個簽章其中兩者時,該多簽章解鎖指令碼釋放該費用之保留數:出自用戶端402之一簽章;出自證明者404之一簽章;以及出自調解方406之一簽章。用戶端402可回應於偵檢到證明者404告示保證金交易而將鎖定交易廣播至區塊鏈網路。
證明者404可蒐集外部資料,並且運算合約執行所必需之一零知識證明。用於蒐集外部資料之技巧可包括公證與一資料源之通訊。 Hajjeh與M. Badra在「TLS Sign」中思忖一種公證通訊之方法,其定義稱為TLSSignOnOff之一新子協定,其中用戶端(其可以是與零知識協定之上下文中所述用戶端不同之一實體)與伺服器在開始或停止傳送已簽署資料時通知一對等方。在一停止訊息之後,伺服器蒐集對話之一雜湊並對其進行簽署。可使用各種其他對一採密碼編譯方式受保護通訊之記錄資料進行公證(例如,儲存一工作階段之記錄,並且用已記錄對話之真確性及/或完整性之採密碼編譯方式可驗證證明來簽署工作階段)之方法,諸如下列文獻所述之技巧:“R. Housley與M. Brown之「Transport Layer Security (TLS) Evidence Extensions」、以及H. Ritzdorf、K. Wüst、A. Gervais、G. Felley與S. Capkun之「TLS-N: Non-repudiation over TLS Enabling Ubiquitous Content Signing for Disintermediation」,其定義當用戶端提出一請求時、及當該等當事方之一關閉一證據窗口時開始之該證據窗口,訊息之一雜湊、及產生證據之時間戳記係藉由伺服器來簽署,任選地,敏感記錄受到隱藏。用於亦可根據蒐集外部資料中所述者蒐集外部資料之技巧亦可搭配英國專利申請案第1705749.8號利用一受信賴資料源。證明者404可將解鎖交易廣播至區塊鏈網路。
在證明者404廣播解鎖交易之後,一驗證者電腦系統可進行一驗證程序以判斷正確執行證明是否有效。在一些實施例中,驗證者係與用戶端402不同之一運算實體,用戶端不需要可進行驗證程序。在一實施例中,驗證程序包含驗證正確執行證明之有效性(例如,驗證輸出係至少部分基於對電路之一或多個輸入而從電路產生)、以及驗證由證明者404輸入至電路之資料係正確輸入。舉例而言,該驗證可包括基於出自提供外部資料(例如:與為一當事方投保延誤險有關之航班資訊;使用一天氣資料饋送而不是作物保險價格指數之衍生性金融商品合約之天氣資料)之一受信賴資料源之一公證對話來檢查對一程式之一輸入之值是否係一期望值。
如果用戶端402 (或更一般而言,用於進行驗證程序之任何適合的系統)判定輸入資料不正確,則證明者404可運算一損害d,損害d反映基於正確輸入值所產生之一第一輸出與基於證明者404在解鎖交易中廣播之不正確輸入值所產生之一第二輸出之間的差異。舉例而言,一智慧合約(例如:一程式)可為一當事方投保一特定航班延誤險,並且該程式之執行可包括使用諸如一特定日之一特定商業航班之航班資訊等外部資料來判斷特定航班是否延誤。如果航班延誤,該程式之一當事方可收到一資產轉移(例如:提供旅行延誤險之一智慧合約)。本文中亦思忖各種擴充、修改、及替代實施例,舉例而言,資產轉移可至少部分基於附加準則,諸如因一特定理由(例如:天氣相關延誤/取消)而延誤、至少延誤某一持續時間之一要求(例如,僅投保超過3小時之延誤險)、以及取決於延誤持續時間之不同轉移(例如,延誤越長則保險金額越大)。舉一第二實例來說,在對程式之輸入與諸貨幣之間的一匯率對應之狀況中,損害d可基於正確之貨幣匯率(例如,基於由一受信賴源在一公證通訊對話中編碼之費率)、及證明者404用於執行程式之貨幣匯率來衡量客戶402應該收到之金額差異。在一實施例中,證明者404將損害d之運算委派給另一電腦系統,諸如與圖4所示證明者404不同之另一工作者。應知,在一些狀況中,該系統亦可請求由證明者404進行損害之運算。在一實施例中,可產生損害金額之一零知識證明以提供該損害金額之一證據,其可對應於一不同電路(例如:程式)之輸出。
系統(例如:用戶端402)一旦計算或按其他方式判定(例如,藉由從另一證明者接收計算之結果)損害之價值,該系統便可使計算之損害對證明者404可用。在一實施例中,計算之損害值、及證實損害值有效性之一零知識證明藉由將該損害值及/或該證明廣播至一區塊鏈網路而對證明者404可用,其可使區塊鏈之其他節點能夠判斷損害值是否正確。在一實施例中,使損害值及/或證明在區塊鏈外對證明者404可用,舉例而言,該系統可採用任何適合的方式將一訊息傳送至證明者404,該訊息包含該損害值及/或該證明。在一些實施例中,當且僅當損害值為非零時,系統才向證明者404提供損害。
在一些實施例中,證明者404接收或按其他方式取得一損害值。如果損害值為零,則證明者404可採用相同或類似方式繼續進行,猶如未收到一損害值。舉例而言,證明者404可接收指出與一特定程式(例如:智慧合約)之執行相關聯之損害為零之一訊息,並且判定不需要執行一補償例行程序。在一實施例中,證明者404等待用戶端402提供秘密值。秘密值可用於贖回由一區塊鏈交易設定保留數之數位資產,舉例而言,區塊鏈交易可包括一鎖定指令碼與解鎖指令碼,當其共同受執行時,驗證正確秘密值在該解鎖指令碼中有提供並且釋放對數位資產之一保留數。
然而,如果證明者404收到非零之一損害值,則證明者404可根據一協定來進行一或多個操作。在一實施例中,證明者404接收一損害值及關於該損傷值之一對應零知識證明。證明者404可驗證該證明。如果該證明受到驗證,則證明者404可判斷證明者404是否與所接收損害值之值達成一致。在一實施例中,證明者404進行任何適合的操作集合以判定一損害值,諸如藉由執行一程式計算損害、將該程式之執行委派給另一運算實體來判定(例如,證明者404藉此為了由一不同證明者執行該程式而成為一用戶端)。
如果由證明者404判定之損害值與提供給證明者404之損害值相匹配,則證明者404可判定損害值正確,並且執行一或多個步驟令與損害值d相等之資產之控制轉移到用戶端402作為補償。在一實施例中,證明者404將一交易廣播至區塊鏈網路,其包括將等於損害值d之資產之控制轉移到與用戶端402相關聯之一位址。然而,如果證明者404判定損害之一值不同(或零知識證明未驗證),則證明者404可向調解方406提供對話之一帶時間戳記轉錄本。該調解方可利用該轉錄本來判斷由用戶端402或證明者404計算之損害值是否正確。
證明者404可在各種時間並且從各種實體接收秘密值。舉例而言,證明者404正確執行一程式(例如:智慧合約)、及用於產生該程式之輸出之一或多個輸入基於一區塊鏈外部之資料(例如,正確性及/或值僅使用儲存在區塊鏈網路上之資料非屬運算式可驗證之資料)而與一期望值相匹配之證明一經驗證,便可由用戶端402向證明者404提供秘密值。一損害值d一經計算並且從該金額之證明者404接收一數位資產轉移作為補償後,用戶端402便可將秘密值提供給證明者404。證明者404可回應於調解方406判定用戶端402提供給證明者404之損害值d不正確、證明者404提供之一不同損害值d'為正確損害值、對用戶端402進行與損害值d'相等之數位資產之轉移、以及以上的組合而從該調解方接收秘密值。
該秘密值一經收到,證明者404便可產生一區塊鏈交易以收回在一保證金中設定保留數之數位資產。證明者404可產生包含一解鎖指令碼之一區塊鏈交易,該解鎖指令碼對秘密值、及證明者404之一數位簽章進行編碼。對數位資產設定保留數之一對應鎖定指令碼可包括指令,該等指令藉由將秘密值之一雜湊與鎖定指令碼中編碼之一輸出值作比較來驗證解鎖指令碼有將正確秘密值編碼,並且還使用與證明者404相關聯之一公開金鑰來驗證鎖定指令碼之數位簽章。因此,鎖定指令碼及解鎖指令碼可共同形成一程式,該程式如果受執行,則轉移藉由保證金交易之鎖定指令碼設定保留數之數位資產之控制。在一些實施例中,用於收回數位資產之區塊鏈交易可受時間限制,使得必須在持續時間內將收回存款交易廣播(例如,開採)至區塊鏈網路。在一實施例中,該限制係編碼在鎖定指令碼中。在一些實施例中,該限制並非受規劃式編碼,而是藉由允許一不同交易(例如:一補償交易)在時間之後代表用戶端402聲明由保證金交易設定保留數之數位資產來施行。
舉例而言,在一實施例中,用戶端402基於從一受信賴源取得(例如,經由一已公證通訊對話取得)之資訊來判定由證明者404用於執行一程式(例如:智慧合約)之輸入值非為期望輸入值,並且向證明者404發送指出一計算之損害值d之一訊息。如果證明者404未轉移與至少為d之一補償值對應之數位資產,則用戶端402可在告示一區塊鏈交易對保證金之數位資產提出求償之時間以前一直等待。補償交易可將用戶端402與證明者404兩者之一數位簽章編碼,並且可予以時間鎖定而使得無法在一時間之前將補償交易開採至區塊鏈網路。補償交易可包括一解鎖指令碼,其允許用戶端402控制由保證金交易設定保留數之數位資產。在一實施例中,補償交易之主文係於通訊開始時由證明者簽署,該通訊可在協定開始之當下或之前開始。
圖5繪示由Bob操作之一第一用戶端電腦系統及由Alice操作之一第二用戶端電腦系統所產生之一交易記錄之一實例。Bob可稱為一符記之一簽發者,並且Alice可稱為一用戶端。簡圖500繪示為了執行一程式(例如:智慧合約)而建立一鎖定交易。鎖定交易502可將一數位資產之轉移引導至可由Bob存取之一加密貨幣錢包或位址以交換一智慧合約。在所示實例中,Alice藉由指定與由Bob控制之一私用金鑰相關聯之一公開金鑰之一雜湊來利用一支付到公開金鑰雜湊雜湊。在其他實例中,Alice可利用一支付到公開金鑰或支付到指令碼雜湊運算碼來將數位資產轉移給Bob。Bob使用第一用戶端電腦系統,為所提供之合約準備一鎖定交易502,輸入有兩個且輸出也有兩個。在所示實例中,Bob產生具有一值x之一第一輸入504 (其可具有數Satoshi之一值)、以及一第一輸出508 (其包括描述合約條款之元資料)。第一輸出508可具有一零值(OP_RETURN)。在所示實例中,Bob產生亦具有一值x或數Satoshi之一第二輸入506、以及具有一值y之一第二輸出510 (其指出Alice必須轉移之數位資產),還有支付到公開金鑰雜湊(「P2PKH」)。可將鎖定交易502從由Bob操作之第一用戶端電腦系統傳送至由Alice操作之第二用戶端電腦系統。
在一實施例中,該等節點至少有一些操作為驗核交易之驗核節點,如本揭露中所述。在一些實例中,一交易包括提供一數位資產(例如:若干比特幣)之所有權證明的資料、以及用於接受或轉移該數位資產之所有權/控制的條件。在一些實例中,一「解鎖交易」意指為使前一個交易之一未動用交易輸出(UTXO)所指示之一數位資產之至少一部分與一實體重新產生關聯(例如,轉移所有權或控制)之一區塊鏈交易,該實體與一區塊鏈位址相關聯。在一些實例中,「前一個交易」意指為含有由解鎖交易引用之UTXO之一區塊鏈交易。在一些實施例中,該交易包括以可轉移(「解鎖」)所有權/控制前必須先滿足之條件來對該交易設定保留數之一「鎖定指令碼」。
鎖定交易502係由Alice使用第二用戶端電腦系統來修改。在圖5所示之實例中,所產生之經修改鎖定交易512包括三個輸入及輸出。第一輸入514不變且包括一值x (數Satoshi)。第一輸出520不變且留存描述合約條款之元資料。第二輸入516不變且具有一值x (數Satoshi)。正如鎖定交易502,第二輸出522留存一值y (對應於Alice必須轉移控制之數位資產)及P2PKH。Alice使用第二用戶端電腦系統新增一第三輸入518及一第三輸出524。第三輸入518具有與Alice為了合約而轉移控制之數位資產對應之一值y+z、以及工作者之一費用。第三輸出524具有與工作者之費用對應之一值z。可在一方案中利用一多方簽章特徵,在該方案中,用戶端以各該交易方(例如:用戶端及證明者)所控制之一個金鑰、及調解方所控制之一個金鑰將用於合約執行之資源(例如:數位資產)發送至一3選2多重簽署位址。為此,用戶端(例如:Alice)為了用戶端、證明者及調解方之私用金鑰而建立一多重簽署位址。在一實施例中,鎖定交易受時間鎖定,允許Alice在一時窗之後收回其資源(例如:數位資產)。
調解方可以是如以上搭配圖4所述之一調解方電腦系統。如果有一爭議(例如,Alice未與證明人所使用之輸入值在執行一程式方面達成一致),則調解員可酌情與用戶端或證明者任一者協同贖回資金,舉例而言,如果用戶端未遵循一已建立協定,則調解方可與證明者協同合作令在第三輸出(例如:費用值z)下設定保留數之數位資產轉移到證明者。相反地,如果證明者未遵循協定,則調解方可與用戶端協同,因為三個簽章中選兩個便足以贖回受代管資金。應知,為了增加隱私,而不是包括與調解方公開相關聯之長期位址,當事方可使用一盲位址。為了說服調解方有關資料之正確性,當事人可呈現包含一通訊證明之一轉錄本。在一些狀況中,用於調解方之一盲位址受到使用並使方案內部隱藏,然而,如果協定之一目標是要提供透明度(例如,允許一區塊鏈網路之節點驗證交易),則可在一實施例中利用非盲位址。
在一些狀況中,協定具有保護安全性,其可意指為調解方無法單方面贖回受代管資金。在一些狀況中,協定具有樂觀性,其可意指為調解方將自願調解一爭議之一假設。在一些實施例中,協定要求調解方供應具有與交易方身邊之一存款對應之一值M之一第四輸入,並且當且僅當贖回對工作者費用設定保留數之代管交易時,調解方才能夠收回存款值M。依此作法,調解方因拒絕調解爭議而造成一拒絕服務型攻擊之可能性減輕,因為調解方在贖回工作者費用以前一直無法收回存款值。
圖6根據本揭露中所述之一協定,繪示一程序的一流程圖600。該流程圖可根據本揭露中其他地方所述之實施例來實施,諸如圖1、4及12。該程序可藉由實施搭配圖7所述程序之相同系統來實施。該程序可藉由如本揭露中其他地方所述之一用戶端、或藉由任何其他適合的運算實體來實施。適合的系統(例如:如搭配圖4所述之用戶端)包含一或多個處理器、及包括可執行指令之記憶體,該等可執行指令如果受執行,則令一或多個處理器進行搭配圖6所述程序之至少部分。
作為該程序之部分,該系統可選擇602一適合的證明者及調解方。在一實施例中,一用戶端透過請求執行一程式(例如:一智慧合約)之一程式執行平台來發出一請求。該請求可包括該程式之一指示(例如,包括與該程式之運算複雜度或期望運行時間有關之資訊、與用戶端願意對該程式之執行進行控制轉移之數位資產對應之一費用等等) 。該平台之一或多個所盼證明者可提供對該請求之一回應,指出該所盼證明者願意執行該程式。在一實施例中,該平台包括一回授系統,其中所盼證明者具有與該平台上過去表現相關聯之評等。舉例而言,一證明者可因正確履行過去之請求而收到一正評等、以及因未能履行或不正確地履行過去之請求而收到負評等。評等可包括附加資訊,諸如所盼證明者有多常使用不正確輸入資料、廣播一校正交易、參與由一調解方解決之一爭議等等。在一實施例中,用戶端至少部分基於與所盼證明者相關聯之評等來選擇證明者(例如,證明者在所有回應證明者中具有最高評等)。
在一實施例中,用戶端判定604一秘密值。秘密值可意指為在用戶端判定證明者執行一程式(例如:智慧合約)並且驗證該程式有正確執行以前,用戶端一直未向證明者透露之一值。驗證該程式之正確執行可包括判斷是否將正確輸入資料用於控制該程式之執行。
該系統可取得與調解方電腦系統相關聯之一公開金鑰,並且在調解方之公開金鑰下將秘密值加密606,藉此產生一已加密秘密值。該系統可使用秘密值作為一密碼編譯雜湊演算法(諸如一SHA-256密碼編譯雜湊演算法)之一輸入來產生606一輸出。一般而言,可利用諸如一單向函數之一預影像抗性函數來代替如此上下文中所述之一密碼編譯雜湊函數。該系統亦可產生608已加密秘密值及輸出將相同秘密編碼之一零知識證明。該零知識證明可藉由對共享值不具有存取權之運算實體來運算式驗證(例如,對秘密值不具有存取權之電腦系統仍然能夠運算式驗證與係產生自相同值)。
在產生前述資料之後,該系統可將已加密秘密值、雜湊輸出、及零知識證明傳送610至證明者。可採用諸如藉由跨多個資料封包提供資訊、藉由將資料儲存在證明者可存取之一位置中、以及將一參考(例如:一統一資源定位符)提供至該位置等任何適合的方式使此資訊對證明者可用。
用戶端可使一程式對證明者可用 612。該程式可意指為用戶端請求證明者執行之一程式。該程式可以是一智慧合約,其執行取決於可從一區塊鏈網路或諸如搭配圖3所述之一鏈外資料源取得之輸入資料。在一實施例中,用戶端藉由廣播編碼對該程式之一參考之一集資交易使該程對證明者可用,其中該集資交易舉例而言,係根據搭配圖5所述者。回應於偵檢到證明者向區塊鏈網路廣播一保證金交易,該集資交易及/或該程式可由用戶端來廣播。證明者可根據圖8及9所述之程序來執行該程式。
圖7根據本揭露中所述之一協定,繪示一程序的一流程圖700。該流程圖可根據本揭露中其他地方所述之實施例來實施,諸如圖1、4及12。該程序可藉由實施搭配圖6所述程序之相同系統來實施。該程序可藉由如本揭露中其他地方所述之一用戶端、或藉由任何其他適合的運算實體來實施。適合的系統(例如:如搭配圖4所述之用戶端)包含一或多個處理器、及包括可執行指令之記憶體,該等可執行指令如果受執行,則令一或多個處理器進行搭配圖7所述程序之至少部分。
該系統可偵檢702該程式(例如:如圖6中所述者)已執行之一指示。在一些實施例中,證明者廣播指示執行該程式之一解鎖交易。該指示可包括該程式之一正確性證明或一正確執行證明。該指示亦可包括證明者與一資料提供者之間的一通訊證明。該程式之執行可受一或多個輸入控制,其值可基於區塊鏈網路外部之資料來判定。
該指示一經偵檢,該系統便可驗證704該程式之執行。在一些狀況中,該系統將驗證步驟委派給另一電腦系統,諸如搭配圖3所述之一驗證者電腦系統。驗證程式執行可包括驗證該程式運行到完成並產生一輸出、驗證由證明者產生之一正確性證明之有效性、驗證對該程式之一輸入具有一正確值等等。如果該系統判定該程式(例如:智慧合約)有正確地且有效地執行,則系統可使一秘密值對證明者可用712。一般而言,一經判定證明者已根據一協定進行各種步驟(例如,該程式之正確執行),該系統便可使秘密值對證明者可用。證明者可將秘密值用於收回由一證券交易設定保留數之數位資產。在一些狀況中,用戶端及證明者合作產生一多方簽章,將數位資產發布給證明者作為執行該程式之一費用。
如果該系統判定該程式未正確執行,則該系統可判定不正確執行歸因於使用一不正確輸入值,舉例而言,對該程式之輸入可有別於從以上搭配圖3所述之一資料饋送取得之一期望輸入值。該系統可判定706一校正值,其可基於用於執行該程式之實際輸入值與從一資料饋送取得之一期望輸入值之間的差異。在一實施例中,該校正值可透過表示加權漢明距離之一計量來表達:其中u及v係待比較字串。在一實施例中,該校正值可反映用戶端蒙受之一損害金額,該損害金額係基於智慧合約之期望與實際執行之差異、驗證該程式執行之成本等等。該系統可將該校正值傳送至或按其他方式使該校正值對證明者可用708 — 該系統亦可產生並使該校正值之一零知識證明可用。
在將該校正值發送至證明者之後,該系統可判斷710是否偵檢到一校正交易。一校正交易可意指為由證明者向一區塊鏈網路廣播之一交易,其為對該程式執行不正確之一確認,並且可以是對該程式之不正確執行之一校正。舉例而言,在一些狀況中,該校正交易包括一數位資產轉移,其相當於該系統在正確執行該程式下收到之內容與該系統在實際不正確執行該程式下收到之內容之間的差異。
如果偵檢到該校正交易,則該系統可向證明者提供或按其他方式使秘密值對證明者可用712。如果在一逾時間隔之後未偵檢到一校正交易,則一不同交易(例如:一補償交易)可由用戶端廣播,以代表用戶端對由一保證金交易設定保留數之數位資產提出求償。
圖8根據本揭露中所述之一協定,繪示一程序的一流程圖800。該流程圖可根據本揭露中其他地方所述之實施例來實施,諸如圖1、4及12。該程序可藉由實施搭配圖9所述程序之相同系統來實施。該程序可藉由如本揭露中其他地方所述之一證明者、或藉由任何其他適合的運算實體來實施。適合的系統(例如:如搭配圖4所述之證明者)包含一或多個處理器、及包括可執行指令之記憶體,該等可執行指令如果受執行,則令一或多個處理器進行搭配圖8所述程序之至少部分。
證明者可接收802或按其他方式取得一已加密值、一雜湊輸出、以及該已加密值及該雜湊輸出係推導自相同之一零知識證明。證明者可直接從用戶端接收此資料(例如,經由用戶端傳送至證明者之一訊息來接收)、或採用間接方式接收(例如,藉由用戶端將該資料廣播至一區塊鏈網路、將該資料儲存在一資料儲存位置中、以及將一連結提供至該位置)。證明者可驗證804一零知識證明。
證明者可取得806要執行之一程式。可在如本揭露中其他地方所述之一集資交易中編碼對該程式之一參考。再者,該系統可判定808用於執行該程式之輸入資料。舉例而言,該輸入資料可以是直接從區塊鏈網路、或透過如搭配圖3所述之一網路從一資料饋送取得之資料。在一實施例中,證明者根據該輸入資料執行810該程式(例如:智慧合約)。該程式之執行一經完成,該系統便可產生812該程式執行之一輸出以及一正確性證明。可在一解鎖交易中使該輸出及該證明對一驗證者電腦系統可用814。該驗證者電腦系統可以是用於進行一驗證程序之任何適合的電腦系統,諸如搭配圖4所述之用戶端。
圖9根據本揭露中所述之一協定,繪示一程序的一流程圖900。該流程圖可根據本揭露中其他地方所述之實施例來實施,諸如圖1、4及12。該程序可藉由實施搭配圖8所述程序之相同系統來實施。該程序可藉由如本揭露中其他地方所述之一證明者、或藉由任何其他適合的運算實體來實施。適合的系統(例如:如搭配圖4所述之證明者)包含一或多個處理器、及包括可執行指令之記憶體,該等可執行指令如果受執行,則令一或多個處理器進行搭配圖9所述程序之至少部分。
證明者可判斷是否902收到一校正值。證明者可根據一協定來等待一預定時段以接收一校正值,以及如果在該時段內都沒收到,則隱含地判定未收到校正值及/或該校正值為零、並且不需要校正交易。可回應於一用戶端或任何適合的驗證者判定證明者執行一程式不正確而從該用戶端接收該校正值。
如果證明者判定未收到校正值及/或該校正值為零,則證明者隨後接收910一秘密值。該秘密值可用於產生及/或執行一解鎖指令碼,該解鎖指令碼如果與一證券交易存款之一鎖定指令碼共同受執行,則允許證明者收回由保證金交易設定保留數之數位資產。該秘密值亦可用於贖回一集資交易之一工作者費用。應知,如果用戶端拒絕向證明者提供該秘密值(亦即,用戶端違反協定之限制條件),則證明者可從調解方取得該秘密值。
如果證明者收到一校正值,則證明者可判斷904該校正值是否有運算正確。證明者可取得該校正值之運算之一零知識證明,並且使用該證明來判定該運算有運算正確、及/或進行一單獨運算。在一些狀況中,證明者總是因運算正確而接受用戶端之校正值。如果該系統判定該校正值有運算正確且該值正確,則證明者可至少部分基於該校正值來產生914一校正交易。舉例而言,該校正交易可以是受開採至區塊鏈、以及將與該校正值等金額之數位資產轉移之一交易。該系統接著可等待以採用上述方式接收910該秘密值。
然而,如果證明者與所提供之校正值未達成一致,則該系統可判定906一不同校正值(例如,基於一單獨運算來判定)。證明者可向調解方提供908已加密秘密值、以及可用於對證明者與用戶端之間關於哪個校正值正確之爭議進行調解之一轉錄本。該轉錄本可包含諸如下列之資訊:如由證明者及/或用戶端運算之校正值及對應之零知識證明、用於產生一校正值之一或多個輸入值、及/或一通訊證明。調解方可判定由證明者計算之不同校正值正確、將該已加密秘密值解密、以及將該秘密值提供給證明者。
在一些狀況中,用戶端與證明者之間在協定之一早期階段,諸如當用戶端選擇證明者來進行運算時,對損害值運算方法達成一致。在一實施例中,用戶端可將要運行之一程式、以及用於對該程式之一不正確執行所造成之損害進行計算之一方程式作為一請求之部分傳送至所盼證明者。在一實施例中,證明者在判斷是否同意執行該程式之前已先知道用於計算損害值之方程式。在一些狀況中,調解方從用戶端、證明者、或這兩者接收方程式,並且該方程式可由任一方或雙方進行數位簽署 — 協定可要求調解方從用戶端與證明者接收相同方程式,以及如果方程式不同,則終止該協定。
圖10根據本揭露中所述之一協定,繪示一程序的一流程圖1000。該流程圖可根據本揭露中其他地方所述之實施例來實施,諸如圖1、4及12。該程序可藉由如本揭露中其他地方所述之一調解方電腦系統、或藉由任何其他適合的運算實體來實施。適合的系統(例如:如搭配圖4所述之證明者)包含一或多個處理器、及包括可執行指令之記憶體,該等可執行指令如果受執行,則令一或多個處理器進行搭配圖10所述程序之至少部分。在一實施例中,調解方亦稱為調解方電腦系統,係由一協定之用戶端及/或證明者用於解決爭議。當一方或雙方無法遵循一協定時,諸如無法進行一步驟時、或無法正確進行一步驟時,用戶端與證明者之間可能引發爭議。
在一實施例中,一證明者與調解方啟動一爭議,並且調解方從證明者接收1002一已加密秘密值及一轉錄本。該已加密秘密值可在調解方之一公開金鑰下進行加密,其中該調解方具有對應私用金鑰之存取權。該轉錄本可包含可用於裁定一爭議之資訊。舉例而言,該轉錄本可包括證實一特定狀態及/或值之一零知識證明。調解方可採用任何適合的方式來驗證該轉錄本,諸如藉由驗證一證明正確性來驗證。調解方可將驗證程序之一些或全部步驟委派給另一運算系統,諸如一區塊鏈網路之一節點。如果調解方與證明者達成一致(例如證實證明者斷定之一狀態或值之證明正確性),則調解方可將該已加密秘密值解密1006並將該秘密值提供給證明者。再者,調解方可與證明者合作1008產生可用於執行一或多個程式之一或多個多方簽章,諸如可用於將一鎖定交易之一工作者費用贖回之程式。然而,如果調解方改為與用戶端達成一致,則調解方可與用戶端合作1012產生可用於執行各種程式之一或多個多方簽章,諸如用以對證明者告示之數位資產提出求償(例如,作為無法遵循協定之一懲罰)之一程式、及/或用以將一鎖定交易之一工作者費用收回之一程式。
採用一類似方式,一用戶端可藉由向調解方提供已加密秘密值及一轉錄本來與該調解方啟動一爭議解決例行程序。該轉錄本可包括諸如一零知識證明之資訊。調解方可藉由施用上述技巧來接收1010已加密秘密值及轉錄本並裁定爭議。
圖11係一運算裝置1100的一說明性、簡化方塊圖,其可用於實踐本揭露之至少一項實施例。在各項實施例中,運算裝置1100可用於實施以上所示及所述系統中任何一者。舉例而言,可為了當作一資料伺服器、一網頁伺服器、一可攜式運算裝置、一個人電腦、或任何電子運算裝置使用而組配運算裝置1100。如圖11所示,運算裝置1100可包括一或多個處理器1102,其在實施例中,係組配來經由一匯流排子系統1104與若干週邊子系統通訊,並且與之操作性耦合。在一些實施例中,這些週邊子系統包括包含一記憶體子系統1108及一檔案/碟片儲存子系統1110之一儲存子系統1106、一或多個使用者介面輸入裝置1112、一或多個使用者介面輸出裝置1114、以及一網路介面子系統1116。此類儲存子系統1106可用於暫時或長期儲存資訊。
在一些實施例中,匯流排子系統1104提供一種用於使運算裝置1100之各種組件及子系統能夠如希望彼此通訊之機制。雖然將匯流排子系統1104示意性展示為單一匯流排,匯流排子系統之替代實施例仍然利用多條匯流排。在一些實施例中,網路介面子系統1116向其他運算裝置及網路提供一介面。在一些實施例中,網路介面子系統1116當作用於從出自運算裝置1100之其他系統接收資料及將資料傳送至該等其他系統之一介面。在一些實施例中,匯流排子系統1104係用於傳遞資料,諸如細節、搜尋條款等等。
在一些實施例中,使用者介面輸入裝置1112包括一或多個使用者輸入裝置,諸如鍵盤;指標裝置,諸如一整合式滑鼠、軌跡球、觸控板、或圖形輸入板;一掃描器;一條碼掃描器;一併入顯示器之觸控螢幕;諸如語音辨識系統、麥克風之音訊輸入裝置;以及其他類型之輸入裝置。一般而言,「輸入裝置」一詞之使用係意欲包括用於將資訊輸入至運算裝置1100之所有可能類型之裝置及機制。在一些實施例中,一或多個使用者介面輸出裝置1114包括一顯示子系統、一列印機、或諸如音訊輸出裝置等非視覺化顯示器。在一些實施例中,顯示子系統包括一陰極射線管(CRT)、諸如一液晶顯示器(LCD)之一平板裝置、發光二極體(LED)顯示器、或一投射或其他顯示裝置。一般而言,「輸出裝置」一詞之使用係意欲包括用於將資訊從運算裝置1100輸出之所有可能類型之裝置及機制。一或多個使用者介面輸出裝置1114舉例而言,可用於呈現使用者介面以在可能適當的情況下促進使用者與進行所述程序及其中變例之應用程式互動。
在一項實施例中,儲存子系統1106提供用於儲存基本程式設計及資料構造之一電腦可讀儲存媒體,該等基本程式設計及資料構造提供本揭露之至少一項實施例之功能。該等應用程式(程式、軟體碼模組、指令)在一些實施例中由一或多個處理器執行時,提供本揭露之一或多項實施例之功能,並且在實施例中,係予以儲存在儲存子系統1106中。這些應用程式模組或指令可由一或多個處理器1102執行。在各項實施例中,儲存子系統1106另外提供用於儲存根據本揭露所用資料之一儲存庫。在一些實施例中,儲存子系統1106包含一記憶體子系統1108及一檔案/碟片儲存子系統1110。
在實施例中,記憶體子系統1108包括若干記憶體,諸如用於在程式執行期間儲存指令及資料之一主隨機存取記憶體(RAM) 1118、及/或內可儲存固定指令之一唯讀記憶體(ROM) 1120。在一些實施例中,檔案/碟片儲存子系統1110為程式及資料檔案提供一非暫時性永續(非依電性)儲存,並且可包括一硬碟機、伴隨相關聯卸除式媒體之一軟碟機、一光碟唯讀記憶體(CD-ROM)驅動機、一光學驅動機、卸除式媒體匣、或其他相似之儲存媒體。
在一些實施例中,運算裝置1100包括至少一個局部時脈1124。在一些實施例中,局部時脈1124係一計數器,其表示從一特定開始日期起已經發生之滴嗒聲數量,並且在一些實施例中,係整合位於運算裝置1100內。在各項實施例中,局部時脈1124係用於以特定時脈脈衝為運算裝置1100及其中所包括子系統同步處理器中之資料轉移,並且可用於協調運算裝置1100與一資料中心中其他系統之間的同步操作。在另一實施例中,局部時脈係一可規劃間隔計時器。
運算裝置1100可呈各種類型中任何一者,包括一可攜式電腦裝置、平板電腦、一工作站、或下面所述之任何其他裝置。另外,在一些實施例中,運算裝置1100可包括可透過一或多個連接埠(例如:USB、一耳機插孔、Lightning連接器等)連接至運算裝置1100之另一裝置。在實施例中,此一裝置包括被組配來接受一光纖連接器之一連接埠。因此,在一些實施例中,此裝置被組配來將光學信號轉換成電氣信號,可透過將裝置連接至運算裝置1100之連接埠傳送該等電氣信號以供處理。由於電腦及網路不斷變化之本質,為了說明裝置之較佳實施例,圖11所示運算裝置1100之說明僅意欲作為一特定實例。許多其他組態有可能比圖11所示系統具有更多或更少組件。
本說明書及圖式從而應視為一說明性而不是一限制性概念。然而,將會證實的是,可對其施作各種修改及變更,但不會脫離如隨附申請專利範圍中所提出之本發明之範疇。同樣地,其他變化都在本揭露的範疇內。因此,儘管所揭示之技巧易受各種修改及替代構造影響,附圖中仍展示其某些所示實施例,並且已在上面詳細說明。然而,應瞭解的是,無意將本發明限制於所揭示之一或多種特定形式,用意反而是要涵蓋落入本發明之範疇內之所有修改、替代構造及均等例,如隨附申請專利範圍中所定義。
除非另有所指或上下文有明顯抵觸,否則描述所揭示實施例之上下文中(尤其是以下申請專利範圍之上下文中)「一」與其變體及「該」等用語以及類似參照者之使用是用來視為同時涵蓋單數及複數。除非另有說明,否則「包含」、「具有」、「包括」及「含有」等詞應視為開放式用語(亦即,意味著「包括,但不限於」)。「連接」一詞若未經修改且意指為實體連接,則應視為部分或完全含在一起、附接在一起或結合在一起,即使有某物中介亦然。除非另有所指,否則本揭露中值範圍之明載僅意欲當作個別意指為落入該範圍內之各單獨值之一速記方法,並且各單獨值係併入本說明書,如同將其個別明載一樣。除非另有說明或上下文有抵觸,否則「集合」(例如:「一項目集合」)或「子集」一詞之使用應視為包含一或多個成員之一非空集合。再者,除非另有說明或上下文有抵觸,否則一對應集合之「子集」一詞不必然表示該對應集合之一眞子集,而是該子集與該對應集合可相等。
除非另有具體敍述或上下文另有明顯抵觸,否則諸如形式為「A、B及C中之至少一者」之措辭等連接性用語、或「A、B及C中之至少一者」係按其他方式透過上下文理解為大致用於介紹一項目、項等可以是A或B或C、或A及B及C之集合之任何非空子集。舉例來說,在具有三個成員之一集合之說明性實例中,「A、B及C中之至少一者」等連接性措辭及「A、B及C中之至少一者」意指為以下任何集合:{A}、{B}、{C}、{A, B}、{A, C}、{B, C}、{A, B, C}。因此,此類連接性用語大致非意欲暗指某些實施例需要A中之至少一者、B中之至少一者及C中之至少一者各自存在。
除非另有所指或上下文另有明顯抵觸,否則所述程序之操作可採用任何適合的順序來進行。所述程序(或其變例及/或其組合)可在組配有可執行指令之一或多個電腦系統之控制下進行,並且可予以實施成藉由硬體或其組合在一或多個處理器上共同執行之軟體碼(例如:可執行指令、一或多個電腦程式或一或多個應用程式)。在一些實施例中,軟體碼可儲存在一電腦可讀儲存媒體上,形式例如為包含可由一或多個處理器執行之複數個指令之一電腦程式。在一些實施例中,電腦可讀儲存媒體屬於非暫時性。
所提供任何及所有實例或例示性用語(例如:「諸如」)之使用僅意欲更加說明本發明之實施例,並且除非另外聲明,否則不對本發明之範疇構成一限制。說明書中之用語都不應視為將任何未訴求之元件指為對本發明之實踐必不可缺。
已說明本揭露之實施例,包括本案發明人對於實行本發明已知之最妥模式。所屬技術領域中具有通常知識者一經閱讀前述說明,便將明白那些實施例之變例。本案發明人期望所屬技術領域中具有通常知識者適當地運用此類變例,並且本案發明人意欲本揭露之實施例得以採用與具體說明者不同之方式來實踐。因此,本揭露之範疇包括其隨附申請專利範圍中明載之標的內容之所有修改及均等例,如適用法律允許者。此外,除非另有所指或上下文另有明顯抵觸,否則本揭露之範疇含括上述元件在其所有可能之變例中之任何組合。
特此以參考方式併入包括公布、專利申請、及專利在內所引用之所有參照,其程度猶如將各參照個別且具體地指為要以參考方式併入,並且將其完整提出。
應知上述實施例說明而不是限制本發明,並且所屬技術領域中具有通常知識者將能夠設計許多替代實施例而不脫離如隨附申請專利範圍所定義之本發明之範疇。在請求項中,置放於括號內的任何參照符號不得視為限制請求項。「包含」一詞及其變體、及類似者不排除存在任何請求項或本說明書中整體所列者外之元件或步驟。在本說明書中,「包含」意味著「包括或由以下所組成」,並且「包含」之變體意味著「包括或由以下所組成」。元件之單數參照不排除此類元件之複數參照,反之亦然。本發明可藉助於包含數個相異元件之硬體、及藉由一適當程式規劃之電腦來實施。在列舉數個構件之裝置請求項中,這些構件中有數個可藉由相同硬體項目來具體實現。在互不相同之附屬項中明載某些量測的唯一事實不在於指出這些量測之一組合無法用於產生利益。
102、302、402‧‧‧用戶端
104、304、404‧‧‧證明者
106、406‧‧‧調解方
108‧‧‧程式
110‧‧‧正確執行證明
200‧‧‧運算環境
202‧‧‧編譯器
204‧‧‧金鑰產生器
206‧‧‧原始碼
208‧‧‧QAP
210‧‧‧評估金鑰
212‧‧‧驗證金鑰
214‧‧‧評估模組
216、312、504、506、514、516、518‧‧‧輸入
218、316‧‧‧正確性證明
220、306‧‧‧驗證者
222‧‧‧區塊鏈網路
300、400、500‧‧‧簡圖
308‧‧‧智慧合約
310‧‧‧算術電路
318‧‧‧網路
320‧‧‧資料提供者
322‧‧‧受信賴實體
508、510、520、522、524‧‧‧輸出
600、700、800、900、1000‧‧‧流程圖
602~612、702~714、802~814、902~914、1002~1012‧‧‧步驟
1100‧‧‧運算裝置
1102‧‧‧處理器
1104‧‧‧匯流排子系統
1106‧‧‧儲存子系統
1108‧‧‧記憶體子系統
1110‧‧‧檔案/碟片儲存子系統
1112‧‧‧使用者介面輸入裝置
1114‧‧‧使用者介面輸出裝置
1116‧‧‧網路介面子系統
1118‧‧‧主隨機存取記憶體
1120‧‧‧唯讀記憶體
1124‧‧‧局部時脈
本發明之這些及其他態樣將經由本文中所述之實施例而顯而易見,並且參照該實施例來闡明。本發明之一實施例現將僅以舉例方式、並且參照附圖作說明,其中:
圖1根據至少一項實施例,繪示用於驗證一程式正確執行之一環境;
圖2根據各項實施例,繪示可用於實施一協定之一運算環境;
圖3繪示適用於進行一可驗證運算之一環境的一簡圖;
圖4繪示可實施一協定以在一分散式運算環境中對一程式施行正確執行之一環境的一簡圖;
圖5根據用於在一分散式運算環境中對一程式施行正確執行之一基於區塊鏈之協定,繪示一交易記錄之一實例;
圖6根據一協定,係用以請求執行一程式之一程序的一說明性簡圖;
圖7根據一協定,係用以驗證一程式正確執行之一程序的一說明性簡圖;
圖8根據一協定,係用於滿足執行一程式之一請求之一程序的一說明性簡圖;
圖9根據一協定,係用於進行一校正例行程序之一程序的一說明性簡圖;
圖10根據一協定,係用於調解一爭議之一程序的一說明性簡圖;以及
圖11繪示可用於實踐本揭露之至少一項實施例之一運算裝置。
Claims (15)
- 一種電腦實施之方法,其包含: 在與一調解方電腦系統相關聯之一公開金鑰下將一秘密值加密; 將該已加密秘密值提供給一工作者電腦系統,其中該已加密秘密值可由該工作者電腦系統及該調解方電腦系統用於共同執行一第一程式; 令一第二程式可用在一區塊鏈資料結構上,其中該第二程式之執行具有一輸入; 判定該區塊鏈資料結構反映: 該第二程式正確執行之一證明;以及 一輸入值,其中用以產生該證明之該第二程式之執行係至少部分基於將該輸入值當作該輸入用於該第二程式; 至少部分基於該證明來判定該輸入有效;以及 回應於判定該輸入值有效,將該秘密值提供給該工作者電腦系統,其中該工作者電腦系統能夠至少使用該秘密值來執行該第一程式。
- 如前述請求項中任一項之方法,其更包含: 至少部分基於該秘密值來產生一密碼編譯雜湊輸出; 產生該已加密值及該密碼編譯雜湊輸出兩者係至少部分基於該秘密值來判定之一證據; 將該密碼編譯雜湊輸出及該證據提供給該工作者電腦系統,其中該工作者電腦系統可操作以使用該證據來判斷該已加密秘密值及該密碼編譯雜湊輸出是否係至少部分基於一相同值。
- 如請求項2之方法,其中該證據係一零知識證明,並且該零知識證明之正確性可由該工作者電腦系統進行運算式驗證。
- 如前述請求項中任一項之方法,其中該輸入值係一第一輸入值,並且該方法更包含回應於判定該第一輸入值不正確: 至少部分基於該第一輸入值來計算一第二輸入值; 將該第二輸入值提供給該工作者電腦系統;以及 回應於判定該工作者電腦系統使用該第二輸入值來執行一第三程式,將該秘密值提供給該工作者電腦系統。
- 如請求項4之方法,其中計算該第二輸入值包含計算一漢明距離。
- 如前述請求項中任一項之方法,其更包含: 取得一第二證據,該第二證據包含介於該工作者電腦系統與一資料源之間的一通訊集合,該通訊集合可用於判斷該輸入值是否有效,其中該第二證據係由該資料源採用數位方式簽署; 使用與該資料源相關聯之至少一公開金鑰來驗證該第二證據之真確性;以及 至少部分基於該通訊集合來判斷該輸入是否有效。
- 如前述請求項中任一項之方法,其中令該第二程式可用在該區塊鏈資料結構上包含令一區塊鏈交易受開採至該區塊鏈資料結構,其中該區塊鏈交易包含: 可用於判定該第二程式之資訊;以及 對數位資產設定保留數之一鎖定指令碼,其中共同執行該鎖定指令碼及一解鎖指令碼釋放對該數位資產之該保留數,共同執行該鎖定指令碼及該解鎖指令碼包含驗證兩個數位簽章屬於一數位簽章集合,其包含: 與進行該電腦實施之方法之一運算實體相關聯之一數位簽章; 與該工作者電腦系統相關聯之一數位簽章;以及 與該調解方電腦系統相關聯之一數位簽章。
- 如前述請求項中任一項之方法,其中該第一程式之執行將一數位資產之控制轉移到該工作者電腦系統。
- 如請求項4之方法,其更包含回應於判定該工作者電腦系統無法在一時間門檻內使用該第二輸入值來執行該第三程式,令一第四程式對該區塊鏈資料結構可用,該第四程式可用於獲得該數位資產之控制。
- 如請求項9之方法,其中該時間門檻對包含一部分該第四程式之一區塊鏈交易可受開採至該區塊鏈資料結構之最早時間進行編碼。
- 如前述請求項中任一項之方法,其更包含: 產生一數位簽章;以及 將該數位簽章編碼成一解鎖指令碼,其中該解鎖指令碼進一步編碼與該工作者電腦系統相關聯之一已自認數位簽章,其中該第四應用程式包含一鎖定指令碼及該解鎖指令碼,以及由與該區塊鏈資料結構相關聯之一區塊鏈網路之一或多個節點執行該第四程式包含判定該數位簽章及該已自認數位簽章兩者都有效。
- 如任一前述請求項之方法,其中: 該第一應用程式包含一鎖定指令碼及解鎖指令碼,其中該解鎖指令碼將與該工作者電腦系統相關聯之一已自認秘密值及一已自認數位簽章編碼;以及 由與該區塊鏈資料結構相關聯之一區塊鏈網路之一或多個節點執行該第一應用程式包含判定該已自認秘密值及該已自認數位簽章兩者都有效。
- 如前述請求項中任一項之方法,其中該鎖定指令碼包含該密碼編譯雜湊輸出,以及判定該已自認秘密值有效包含: 使用該已自認秘密值來運算一密碼編譯雜湊演算法之一輸出;以及 判定該輸出與該密碼編譯雜湊輸出相匹配。
- 一種系統,其包含: 一處理器;以及 包括可執行指令之記憶體,該等可執行指令隨著藉由該處理器執行而令該系統進行如前述請求項中任一項之電腦實施之方法。
- 一種上有儲存可執行指令之非暫時性電腦可讀儲存媒體,該等可執行指令隨著藉由一電腦系統之一處理器執行而令該電腦系統至少進行如請求項1至13中任一項之電腦實施之方法。
Applications Claiming Priority (18)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
??1718505.9 | 2017-11-09 | ||
GBGB1718505.9A GB201718505D0 (en) | 2017-11-09 | 2017-11-09 | Computer-implemented system and method |
GB1718505.9 | 2017-11-09 | ||
??1719998.5 | 2017-11-30 | ||
GBGB1719998.5A GB201719998D0 (en) | 2017-11-30 | 2017-11-30 | Computer-Implemented system and method |
GB1719998.5 | 2017-11-30 | ||
GBGB1720768.9A GB201720768D0 (en) | 2017-12-13 | 2017-12-13 | Computer-implemented system and method |
??1720768.9 | 2017-12-13 | ||
GB1720768.9 | 2017-12-13 | ||
??1720946.1 | 2017-12-15 | ||
GB1720946.1 | 2017-12-15 | ||
GBGB1720946.1A GB201720946D0 (en) | 2017-12-15 | 2017-12-15 | Computer-implemented system and method |
GB1805948.5 | 2018-04-10 | ||
??1805948.5 | 2018-04-10 | ||
GBGB1805948.5A GB201805948D0 (en) | 2018-04-10 | 2018-04-10 | Computer-implemented system and method |
??1806444.4 | 2018-04-20 | ||
GB1806444.4 | 2018-04-20 | ||
GBGB1806444.4A GB201806444D0 (en) | 2018-04-20 | 2018-04-20 | Computer-implemented system and method |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201924278A true TW201924278A (zh) | 2019-06-16 |
TWI770307B TWI770307B (zh) | 2022-07-11 |
Family
ID=64267869
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW107139703A TWI770307B (zh) | 2017-11-09 | 2018-11-08 | 用以使用調解方電腦系統來確保電腦程式正確執行的系統與方法 |
Country Status (8)
Country | Link |
---|---|
US (2) | US11546162B2 (zh) |
EP (2) | EP3707872B1 (zh) |
JP (2) | JP7208990B2 (zh) |
KR (1) | KR20200080263A (zh) |
CN (2) | CN111316615B (zh) |
SG (1) | SG11202004150XA (zh) |
TW (1) | TWI770307B (zh) |
WO (1) | WO2019092552A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110413345A (zh) * | 2019-07-26 | 2019-11-05 | 云湾科技(嘉兴)有限公司 | 程序验证方法、装置、计算设备及计算机存储介质 |
CN110532036A (zh) * | 2019-07-26 | 2019-12-03 | 云湾科技(嘉兴)有限公司 | 程序验证方法、装置、计算设备及计算机存储介质 |
US11102242B2 (en) | 2019-06-26 | 2021-08-24 | Advanced New Technologies Co., Ltd. | Anti-replay device based on memory space interchange |
TWI807479B (zh) * | 2021-11-11 | 2023-07-01 | 財團法人國家實驗研究院 | Qap型式同態加密中的半公鑰系統設計的方法 |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11151558B2 (en) * | 2018-12-12 | 2021-10-19 | American Express Travel Related Services Company, Inc | Zero-knowledge proof payments using blockchain |
US11182866B2 (en) * | 2019-02-20 | 2021-11-23 | Aon Risk Services, Inc. Of Maryland | Digital property authentication and management system |
US11699203B2 (en) | 2019-02-20 | 2023-07-11 | Aon Risk Services, Inc. Of Maryland | Digital property authentication and management system |
EP3702951A1 (de) * | 2019-03-01 | 2020-09-02 | Siemens Aktiengesellschaft | Computerimplementiertes verfahren und blockchain-system zur erkennung eines angriffs auf ein computersystem bzw. computernetzwerk |
GB2583767A (en) * | 2019-05-10 | 2020-11-11 | Nchain Holdings Ltd | Methods and devices for public key management using a blockchain |
GB201907396D0 (en) | 2019-05-24 | 2019-07-10 | Nchain Holdings Ltd | Hash function attacks |
GB201907345D0 (en) | 2019-05-24 | 2019-07-10 | Nchain Holdings Ltd | Protocol for validating blockchain transactions |
GB201907347D0 (en) * | 2019-05-24 | 2019-07-10 | Nchain Holdings Ltd | In-script functions within a blockchain transaction |
EP3754899B1 (en) * | 2019-06-20 | 2022-03-02 | Telefónica Iot & Big Data Tech, S.A. | Method and system for inter-dlt networks trust enhancement |
GB201913143D0 (en) * | 2019-09-12 | 2019-10-30 | Nchain Holdings Ltd | Running a program from a blockchain |
US11245514B1 (en) * | 2019-10-15 | 2022-02-08 | ArcBlock, Inc | Blockchain delegation |
JP7284064B2 (ja) * | 2019-10-16 | 2023-05-30 | 株式会社日立製作所 | コンソーシアムブロックチェーンシステム、計算機、トランザクション承認方法 |
KR102103177B1 (ko) * | 2019-11-20 | 2020-04-22 | 충남대학교 산학협력단 | 블록체인의 확장성을 위한 영지식 증명의 선택적 검증 시스템 및 그 방법 |
KR102103179B1 (ko) * | 2019-11-25 | 2020-04-22 | 충남대학교 산학협력단 | 블록체인 오라클에서의 프라이버시 보호를 위한 영지식 증명 시스템 및 그 방법 |
US20210374731A1 (en) * | 2020-05-26 | 2021-12-02 | Coinbase, Inc. | Systems and methods for consensus-based access control for smart contract functions |
CN112636928B (zh) * | 2020-12-29 | 2023-01-17 | 广东国腾量子科技有限公司 | 一种基于区块链的去中心化可信认证方法、存储装置及移动终端 |
US11770263B1 (en) * | 2022-12-06 | 2023-09-26 | Citibank, N.A. | Systems and methods for enforcing cryptographically secure actions in public, non-permissioned blockchains using bifurcated self-executing programs comprising shared digital signature requirements |
US11882216B1 (en) * | 2023-06-08 | 2024-01-23 | Auradine, Inc. | End-to-end hardware acceleration for ZKP from witness generation to proof generation |
Family Cites Families (72)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4667290A (en) | 1984-09-10 | 1987-05-19 | 501 Philon, Inc. | Compilers using a universal intermediate language |
JPH03126133A (ja) | 1989-10-11 | 1991-05-29 | Matsushita Electric Ind Co Ltd | コンパイラ処理方法 |
US5499191A (en) | 1992-06-15 | 1996-03-12 | Minc Incorporated | Multi-level logic optimization in programmable logic devices |
US5297150A (en) | 1992-06-17 | 1994-03-22 | International Business Machines Corporation | Rule-based method for testing of programming segments |
US5920830A (en) | 1997-07-09 | 1999-07-06 | General Electric Company | Methods and apparatus for generating test vectors and validating ASIC designs |
US6519754B1 (en) | 1999-05-17 | 2003-02-11 | Synplicity, Inc. | Methods and apparatuses for designing integrated circuits |
EP1283422A1 (en) | 2001-08-07 | 2003-02-12 | Lucent Technologies Inc. | Testbench for the validation of a device under test |
US7085701B2 (en) | 2002-01-02 | 2006-08-01 | International Business Machines Corporation | Size reduction techniques for vital compliant VHDL simulation models |
US7281017B2 (en) | 2002-06-21 | 2007-10-09 | Sumisho Computer Systems Corporation | Views for software atomization |
US20050195975A1 (en) * | 2003-01-21 | 2005-09-08 | Kevin Kawakita | Digital media distribution cryptography using media ticket smart cards |
US7610407B2 (en) * | 2003-12-11 | 2009-10-27 | Hewlett-Packard Development Company, L.P. | Method for exchanging information between at least two participants via at least one intermediary to limit disclosure between the participants |
US8234638B2 (en) * | 2004-12-28 | 2012-07-31 | Hercules Software, Llc | Creating a relatively unique environment for computing platforms |
US20160004820A1 (en) | 2005-02-01 | 2016-01-07 | Newsilike Media Group, Inc. | Security facility for maintaining health care data pools |
US8200700B2 (en) | 2005-02-01 | 2012-06-12 | Newsilike Media Group, Inc | Systems and methods for use of structured and unstructured distributed data |
TW200725415A (en) | 2005-12-30 | 2007-07-01 | Tatung Co Ltd | Method for automatically translating high level programming language into hardware description language |
US7926040B2 (en) * | 2006-09-06 | 2011-04-12 | International Business Machines Corporation | Method and system for timing code execution in a korn shell script |
WO2008053650A1 (en) | 2006-10-30 | 2008-05-08 | Nec Corporation | Common key block encrypting device, its method, its program, and recording medium |
AU2015261664B2 (en) * | 2007-09-14 | 2016-07-14 | Security First Corp. | Systems and Methods for Managing Cryptographic Keys |
US8543885B2 (en) * | 2007-11-18 | 2013-09-24 | Lg Electronics Inc. | Methods of joint coding in mobile communication system |
US8336036B2 (en) | 2008-11-21 | 2012-12-18 | Korea University Industrial & Academic Collaboration Foundation | System and method for translating high programming level languages code into hardware description language code |
US9846628B2 (en) * | 2010-06-15 | 2017-12-19 | Microsoft Technology Licensing, Llc | Indicating parallel operations with user-visible events |
JP5697153B2 (ja) | 2011-08-04 | 2015-04-08 | キヤノンマーケティングジャパン株式会社 | 情報処理システム、携帯端末、制御方法、及びプログラム |
US20140321644A1 (en) | 2013-04-29 | 2014-10-30 | Her Majesty The Queen In Right Of Canada, As Represented By The Minister Of National Defence | Method and system for calculations on encrypted data |
US9026978B1 (en) | 2013-10-24 | 2015-05-05 | Cadence Design Systems, Inc. | Reverse interface logic model for optimizing physical hierarchy under full chip constraint |
FR3018378A1 (fr) * | 2014-03-12 | 2015-09-11 | Enrico Maim | Systeme et procede transactionnels a architecture repartie fondees sur des transactions de transferts d'unites de compte entre adresses |
EP4148642A1 (en) * | 2014-05-09 | 2023-03-15 | Veritaseum, Inc. | Devices, systems, and methods for facilitating low trust and zero trust value transfers |
US10320781B2 (en) | 2016-12-08 | 2019-06-11 | Sensoriant, Inc. | System and methods for sharing and trading user data and preferences between computer programs and other entities while preserving user privacy |
US10025926B2 (en) * | 2014-11-19 | 2018-07-17 | The Mitre Corporation | Side-channel leakage evaluator and analysis kit |
US20160162897A1 (en) | 2014-12-03 | 2016-06-09 | The Filing Cabinet, LLC | System and method for user authentication using crypto-currency transactions as access tokens |
SI3073670T1 (sl) | 2015-03-27 | 2021-07-30 | Black Gold Coin, Inc. | Sistem in postopek za osebno identifikacijo in verifikacijo |
WO2016155804A1 (en) | 2015-03-31 | 2016-10-06 | Nec Europe Ltd. | Method for verifying information |
US10812274B2 (en) * | 2015-05-07 | 2020-10-20 | Blockstream Corporation | Transferring ledger assets between blockchains via pegged sidechains |
JP2017004044A (ja) * | 2015-06-04 | 2017-01-05 | 富士通株式会社 | ライセンス管理プログラム、ライセンス管理方法、およびライセンス管理システム |
CN106293892B (zh) | 2015-06-26 | 2019-03-19 | 阿里巴巴集团控股有限公司 | 分布式流计算系统、方法和装置 |
WO2017008829A1 (en) * | 2015-07-10 | 2017-01-19 | Nec Europe Ltd. | A method and a system for reliable computation of a program |
CN108140180A (zh) * | 2015-07-28 | 2018-06-08 | 雷蛇(亚太)私人有限公司 | 用于奖励产生分布式数字资源场的服务器及控制用于奖励产生分布式数字资源场的服务器的方法 |
US10033702B2 (en) * | 2015-08-05 | 2018-07-24 | Intralinks, Inc. | Systems and methods of secure data exchange |
US20180331832A1 (en) | 2015-11-05 | 2018-11-15 | Allen Pulsifer | Cryptographic Transactions System |
US10269012B2 (en) | 2015-11-06 | 2019-04-23 | Swfl, Inc. | Systems and methods for secure and private communications |
US10048952B2 (en) | 2015-11-11 | 2018-08-14 | Oracle International Corporation | Compiler optimized data model evaluation |
FR3043811B1 (fr) | 2015-11-16 | 2017-11-10 | Morpho | Procede d'identification d'une entite |
US11423498B2 (en) | 2015-12-16 | 2022-08-23 | International Business Machines Corporation | Multimedia content player with digital rights management while maintaining privacy of users |
US9715373B2 (en) | 2015-12-18 | 2017-07-25 | International Business Machines Corporation | Dynamic recompilation techniques for machine learning programs |
US10044696B2 (en) * | 2015-12-22 | 2018-08-07 | Mcafee, Llc | Simplified sensor integrity |
US9483596B1 (en) | 2016-01-08 | 2016-11-01 | International Business Machines Corporation | Multi power synthesis in digital circuit design |
US10108812B2 (en) * | 2016-01-28 | 2018-10-23 | Nasdaq, Inc. | Systems and methods for securing and disseminating time sensitive information using a blockchain |
US9849364B2 (en) * | 2016-02-02 | 2017-12-26 | Bao Tran | Smart device |
SG10202007904SA (en) * | 2016-02-23 | 2020-10-29 | Nchain Holdings Ltd | A method and system for securing computer software using a distributed hash table and a blockchain |
US10387988B2 (en) | 2016-02-26 | 2019-08-20 | Google Llc | Compiler techniques for mapping program code to a high performance, power efficient, programmable image processing hardware platform |
US11170371B2 (en) | 2016-03-03 | 2021-11-09 | Nec Corporation | Method for managing data in a network of nodes |
US11017387B2 (en) * | 2016-03-24 | 2021-05-25 | International Business Machines Corporation | Cryptographically assured zero-knowledge cloud services for elemental transactions |
US11017388B2 (en) | 2016-03-25 | 2021-05-25 | International Business Machines Corporation | Cryptographically assured zero-knowledge cloud service for composable atomic transactions |
US10839096B2 (en) | 2016-03-28 | 2020-11-17 | International Business Machines Corporation | Cryptographically provable zero-knowledge content distribution network |
US20170287090A1 (en) | 2016-03-31 | 2017-10-05 | Clause, Inc. | System and method for creating and executing data-driven legal contracts |
US10545739B2 (en) | 2016-04-05 | 2020-01-28 | International Business Machines Corporation | LLVM-based system C compiler for architecture synthesis |
PT3440823T (pt) | 2016-04-05 | 2020-12-04 | Zamna Tech Limited | Método e sistema para gestão de informações pessoais dentro de sistemas informáticos independentes e redes digitais |
US11455630B2 (en) | 2016-04-11 | 2022-09-27 | nChain Holdings Limited | Method for secure peer-to-peer communication on a blockchain |
US10333705B2 (en) | 2016-04-30 | 2019-06-25 | Civic Technologies, Inc. | Methods and apparatus for providing attestation of information using a centralized or distributed ledger |
US10046228B2 (en) | 2016-05-02 | 2018-08-14 | Bao Tran | Smart device |
US20170337319A1 (en) | 2016-05-20 | 2017-11-23 | Ecole polytechnique fédérale de Lausanne (EPFL) | System and Method for Optimization of Digital Circuits with Timing and Behavior Co-Designed by Introduction and Exploitation of False Paths |
CN107438002B (zh) | 2016-05-27 | 2022-02-11 | 索尼公司 | 基于区块链的系统以及系统中的电子设备和方法 |
FR3052286B1 (fr) | 2016-06-06 | 2018-06-15 | Morpho | Procede de verification d'un droit d'acces d'un individu |
US10447478B2 (en) | 2016-06-06 | 2019-10-15 | Microsoft Technology Licensing, Llc | Cryptographic applications for a blockchain system |
US20180018738A1 (en) * | 2016-07-14 | 2018-01-18 | Digital Asset Holdings | Digital asset platform |
US10417217B2 (en) * | 2016-08-05 | 2019-09-17 | Chicago Mercantile Exchange Inc. | Systems and methods for blockchain rule synchronization |
EP3566384B1 (en) | 2017-01-06 | 2021-02-17 | Koninklijke Philips N.V. | Pinocchio / trinocchio on authenticated data |
EP3566389B1 (en) | 2017-01-06 | 2021-08-18 | Koninklijke Philips N.V. | Distributed privacy-preserving verifiable computation |
CN107274184A (zh) | 2017-05-11 | 2017-10-20 | 上海点融信息科技有限责任公司 | 基于零知识证明的区块链数据处理 |
CN107179932A (zh) | 2017-05-26 | 2017-09-19 | 福建师范大学 | 基于fpga高层次综合指令的优化方法及其系统 |
US10333710B2 (en) | 2017-09-12 | 2019-06-25 | Qed-It Systems Ltd. | Method and system for determining desired size of private randomness using Tsallis entropy |
GB201715423D0 (en) * | 2017-09-22 | 2017-11-08 | Nchain Holdings Ltd | Computer-implemented system and method |
US10521616B2 (en) * | 2017-11-08 | 2019-12-31 | Analog Devices, Inc. | Remote re-enrollment of physical unclonable functions |
-
2018
- 2018-10-30 CN CN201880072773.7A patent/CN111316615B/zh active Active
- 2018-10-30 CN CN202410094181.2A patent/CN118041602A/zh active Pending
- 2018-10-30 EP EP18800331.3A patent/EP3707872B1/en active Active
- 2018-10-30 WO PCT/IB2018/058491 patent/WO2019092552A1/en unknown
- 2018-10-30 JP JP2020524628A patent/JP7208990B2/ja active Active
- 2018-10-30 SG SG11202004150XA patent/SG11202004150XA/en unknown
- 2018-10-30 KR KR1020207014130A patent/KR20200080263A/ko not_active Application Discontinuation
- 2018-10-30 EP EP24175020.7A patent/EP4395229A1/en active Pending
- 2018-10-30 US US16/762,487 patent/US11546162B2/en active Active
- 2018-11-08 TW TW107139703A patent/TWI770307B/zh active
-
2022
- 2022-12-29 US US18/091,193 patent/US20230216833A1/en active Pending
-
2023
- 2023-01-06 JP JP2023001009A patent/JP2023036963A/ja active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11102242B2 (en) | 2019-06-26 | 2021-08-24 | Advanced New Technologies Co., Ltd. | Anti-replay device based on memory space interchange |
TWI749488B (zh) * | 2019-06-26 | 2021-12-11 | 開曼群島商創新先進技術有限公司 | 電腦實現的用於檢測和禁止重放攻擊的方法、系統及非暫時性電腦可讀的儲存媒體 |
US11388190B2 (en) | 2019-06-26 | 2022-07-12 | Advanced New Technologies Co., Ltd. | Anti-replay device based on memory space interchange |
CN110413345A (zh) * | 2019-07-26 | 2019-11-05 | 云湾科技(嘉兴)有限公司 | 程序验证方法、装置、计算设备及计算机存储介质 |
CN110532036A (zh) * | 2019-07-26 | 2019-12-03 | 云湾科技(嘉兴)有限公司 | 程序验证方法、装置、计算设备及计算机存储介质 |
TWI807479B (zh) * | 2021-11-11 | 2023-07-01 | 財團法人國家實驗研究院 | Qap型式同態加密中的半公鑰系統設計的方法 |
Also Published As
Publication number | Publication date |
---|---|
JP7208990B2 (ja) | 2023-01-19 |
WO2019092552A1 (en) | 2019-05-16 |
KR20200080263A (ko) | 2020-07-06 |
CN111316615A (zh) | 2020-06-19 |
US20210226795A1 (en) | 2021-07-22 |
JP2021502750A (ja) | 2021-01-28 |
TWI770307B (zh) | 2022-07-11 |
CN118041602A (zh) | 2024-05-14 |
EP3707872A1 (en) | 2020-09-16 |
CN111316615B (zh) | 2024-02-13 |
US11546162B2 (en) | 2023-01-03 |
US20230216833A1 (en) | 2023-07-06 |
EP3707872B1 (en) | 2024-06-19 |
JP2023036963A (ja) | 2023-03-14 |
EP4395229A1 (en) | 2024-07-03 |
SG11202004150XA (en) | 2020-06-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI770307B (zh) | 用以使用調解方電腦系統來確保電腦程式正確執行的系統與方法 | |
KR102687781B1 (ko) | 증명 검증에 기초하여 오프-체인 데이터를 인증하기 위한 시스템 및 방법 | |
CN111316595B (zh) | 用于保护验证密钥不被更改并验证正确性证明的有效性的系统 | |
EP3563553B1 (en) | Method for signing a new block in a decentralized blockchain consensus network | |
TWI854899B (zh) | 用以基於證明驗證來認證資料饋入之電腦實施方法、運算系統及非暫時性電腦可讀儲存媒體 | |
CN117478418A (zh) | 一种基于区块链的系统管理商数据交易方法及系统 |