TWI794366B - 用以安全分享密碼材料之系統及方法 - Google Patents

用以安全分享密碼材料之系統及方法 Download PDF

Info

Publication number
TWI794366B
TWI794366B TW107144802A TW107144802A TWI794366B TW I794366 B TWI794366 B TW I794366B TW 107144802 A TW107144802 A TW 107144802A TW 107144802 A TW107144802 A TW 107144802A TW I794366 B TWI794366 B TW I794366B
Authority
TW
Taiwan
Prior art keywords
participants
smart contract
computing entity
polynomials
computer
Prior art date
Application number
TW107144802A
Other languages
English (en)
Other versions
TW201928755A (zh
Inventor
亞歷山桌 科瓦齊
席蒙 馬戴爾
派翠克 蒙提林斯基
史帝芬 文生特
Original Assignee
安地卡及巴布達商區塊鏈控股有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from GBGB1720768.9A external-priority patent/GB201720768D0/en
Priority claimed from GBGB1813770.3A external-priority patent/GB201813770D0/en
Priority claimed from GBGB1813772.9A external-priority patent/GB201813772D0/en
Application filed by 安地卡及巴布達商區塊鏈控股有限公司 filed Critical 安地卡及巴布達商區塊鏈控股有限公司
Publication of TW201928755A publication Critical patent/TW201928755A/zh
Application granted granted Critical
Publication of TWI794366B publication Critical patent/TWI794366B/zh

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/04Key management, e.g. using generic bootstrapping architecture [GBA]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/17Function evaluation by approximation methods, e.g. inter- or extrapolation, smoothing, least mean square method
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • G06F7/724Finite field arithmetic
    • G06F7/725Finite field arithmetic over elliptic curves
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/3026Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters details relating to polynomials generation, e.g. generation of irreducible polynomials
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3093Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving Lattices or polynomial equations, e.g. NTRU scheme
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3218Cryptographic 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3236Cryptographic 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/3239Cryptographic 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • H04L9/0841Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3236Cryptographic 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Algebra (AREA)
  • Computational Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Storage Device Security (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本文所描述的系統及方法涉及多方各自產生和交換基於一已分享秘密的量(例如,該已分享秘密的冪次)而不暴露該已分享秘密的技術。根據一協定,兩方或更多方可以交換在多項式上產生的橢圓曲線點集合,其可以由兩方或更多方中的每一方使用,以決定一已分享秘密的一冪次。該協定可被利用作為決定用於一智能合約之參數的一部分,該智能合約會被廣播到一區塊鏈網路(例如,比特幣)。基於該協定,一附加方(例如,與該等兩方或更多方不同的一第三方)可以執行一計算任務,諸如執行該智能合約。

Description

用以安全分享密碼材料之系統及方法
發明領域 本發明一般係涉及電腦安全性和驗證,更具體地說,係涉及允許多方(例如,多於兩方)分享一群之元素的技術,其指數或乘法係數取決於一已分享秘密的冪次。量可被分享使得該等多方交換量係基於該已分享秘密(例如,該已分享秘密的冪次)而不用暴露該已分享的秘密。本發明特別適合,但不侷限於,使用在智能合約中,其中該等多方可以是該智能合約的各方,他們商定了用於該智能合約的參數。本發明可以利用密碼學和數學的技術來分享量用以獲得與安全相關的優點。
發明背景 一區塊鏈可以指一種同儕式的電子分類賬,其被實現為一種基於電腦的、去中心化的、分散式的系統,其由區塊組成,而這些區塊又可能是由交易和其他資訊所組成。在一些實例中,一「區塊鏈交易」指的是編碼場值之一結構化集合的一輸入訊息,該場值包含有資料和一條件集合,其中滿足該條件集合是把該場集合寫入到一區塊鏈資料結構的先決條件。例如,對於比特幣,每一個交易係一資料結構,該資料結構編碼在該區塊鏈系統中在參與者之間一數位資產的該控制轉移,並且包括至少一個輸入和至少一個輸出。在一些實施例中,「數位資產」指的是與一使用權相關聯的二進制資料。數位資產的實例包括比特幣、以太幣、和萊特幣。在一些實現方式中,可藉由把一數位資產的至少一部分從一第一實體重新關聯到一第二實體來執行轉移一數位資產的控制。該區塊鏈的每一個區塊可以包含前一個區塊的一雜湊,以使區塊變得被鏈接在一起,以創建自該區塊鏈開始以來所有已寫入到該區塊鏈之交易的一種永久、不可更改的記錄。交易包含嵌入到其輸入和輸出中被稱為腳本的小程式,該等程式指出如何以及由誰可以存取該等交易的該輸出。在比特幣的平台上,這些腳本係使用一種基於堆疊的腳本語言來編寫的。
雖然區塊鏈技術係以加密貨幣實現的使用而被廣為人知,但數位企業家已經開始探索使用比特幣所基礎之該加密安全系統以及可被儲存在區塊鏈上之該資料兩者來實現新的系統。如果區塊鏈可被使用在不侷限於加密貨幣領域的自動化任務和過程,那將是非常有利的。這樣的解決方案將能夠利用區塊鏈的好處(例如,事件的一份永久性防篡改記錄、分散式處理、等等),同時在其應用中更加的多功能。
本發明描述了一或多個基於區塊鏈之電腦程式的技術方面。一基於區塊鏈的電腦程式可以是被記錄在一區塊鏈交易中的一機器可讀取且可執行程式。該基於區塊鏈的電腦程式可包含可以處理輸入的規則以便產生結果,然後可取決於那些結果來致使將被執行的操作。目前研究的一個領域是使用基於區塊鏈的電腦程式來實現「智能合約」。與使用自然語言所編寫的一傳統合約不同,智能合約可以是被編程來自動執行一機器可讀合約或協議條款的電腦程式。
總結 因此,藉由交換可被使用來決定在兩方或多方之間一已分享秘密之冪次的量,提供一種用於在一區塊鏈上多方驗證金鑰記錄的協定係為所欲的。在各種實施例中,可能希望一智能合約的兩方或更多方能夠交換可使用來決定包含一驗證金鑰和一求值金鑰之一共同參考字串的量。在各種實施例中,本文所描述的該等技術允許兩方或更多方在不使用諸如加密之密碼技術的情況下可交換一已分享秘密的冪次,而且不要求該等各方建立交換資料所需要之加密可驗證保證機密性的一通信通道。因此,本發明提供了改善的安全性及驗證解決方案。
這一種改善的解決方案現在已經被設計出。
因此,根據本發明,提供了如在該等所附請求項中所限定的系統及方法。
根據本發明,可提供一種用於一區塊鏈網路之一節點的電腦實現的方法,該電腦實現的方法包含有:在複數位參與者中之一參與者處,決定可用來映射有限場元素的一函數;基於數位參與者數產生在一點集合中求值的多項式;把該等多項式分發給該等複數位參與者的對應參與者;決定該等複數位參與者之每一位參與者的多項式的一總和,其中該總和對應於一秘密的一冪次;以及在該等多位參與者之間並基於該秘密共同地產生一區塊鏈交易。
較佳的是,該點集合係一橢圓曲線點集合。
較佳的是,該多項式總和的該決定係基於一拉格朗日(Lagrange)插值。
如在本文中所描述的一種方法更可包含有至少部分地基於該秘密的該冪次來決定可由該等複數位參與者所決定的一共同參考字串。
如在本文中所描述的一種方法更可包含有從該等複數位參與者之每一位參與者接收多項式的對應值。
較佳的是,在把該等多項式的該等值分發給該等對應的參與者時係利用鏈外通信。鏈外通信可以指未被區塊鏈網路廣播及/或不可由區塊鏈網路驗證的資料通信。
較佳的是,可使用來映射該等有限場元素的該函數作用為一群之一生成元的一係數或指數。
較佳的是,該等複數位參與者恰好是兩位參與者。
決定該秘密可基於在一特定點處求值的該多項式總和,諸如在一特定的橢圓曲線點處。
該特定點可以是一交叉點,諸如每一位參與者之該等多項式的該總和構成了該(主)多項式,其與y-軸的該交叉點係該秘密。
該點集合可排除該交叉點—換句話說,在至少一些情況下,該交叉點不是該點集合的一成員。
在該點集合中求值的該等多項式可至少為2階。
較佳的是,該點集合中之每一個點係一不同的點,使得在該點集合中沒有重複的點。
也希望提供一種系統,其包含有:一處理器;包括有可執行指令的記憶體,當該等可執行指令由該處理器執行時,會致使該系統執行要求保護之該等方法中的任一個。
也希望提供一種非暫時性的電腦可讀取儲存媒體,已在其上儲存有可執行指令,當該等可執行指令由一電腦系統之一或多個處理器來執行時,會致使該系統執行要求保護之該等方法中的任一個。
較佳實施例之詳細說明 圖1圖示出一區塊鏈環境,其中可以實現各種實施例;
本發明描述了一些技術,該等技術可被使用來實現讓多方可安全地分享一群之元素的系統及方法,其指數或乘法係數取決於一已分享秘密的冪次。量可被分享使得該等多方交換基於該已分享秘密的量(例如,該已分享秘密的冪次)而不用暴露該已分享的秘密。因此,在各種實施例中,複數n 位參與者建立一已分享秘密之冪次的表示式(例如,在該乘法的情況中為
Figure 02_image001
)。
在一實施例中,使用本文所描述之技術及方法的一協定被一智能合約的雙方使用來分享可由該等各方所使用的量,以決定一已分享秘密的冪次而不用分享該秘密本身並且不會洩露會使另一個計算實體(例如,不是該智能合約一方的一計算實體)可確定該秘密的資訊。在一個實施例中,該協定包含計算一第一參數集合之一智能合約的一第一方,該第一參數集合被發送到該智能合約的一第二方,該第二方計算一第二參數集合並將那些參數提交給該第一方,其中,在交換如以上所述的該等參數時,雙方都能夠計算該相同的共同參考字串,其包含一驗證金鑰。然後,該等各方可商定一交易,其中他們按比例貢獻數位資產給該智能合約,該等數位資產被鎖到一位址(例如,一區塊鏈網路之一工作者節點的位址)並且可以被解鎖(例如,花掉)。在一實施例中,在該智能合約的該等各方之間的鏈外通信被侷限在交換使用來產生該共同參考字串之該等參數,同時確保安全性被維持(例如,該秘密值不會被洩露也不會由對手或非該智能合約之一方的其他計算實體基於該等交換的參數以其他方式來確定)。在一實施例中,該等雙方(或者,在更為一般的情況下,兩方或更多方)採用了分享一已分享秘密之冪次的技術,諸如在本文件之其他地方,例如,結合圖1-7所描述的該方式。
參照圖1,其圖示出一實例計算環境100,其中本發明的各種實施例可被實踐。在本文中所描述的系統及方法可以涉及用於一智能合約之各方的協定用以交換量,該等第一及第二計算實體可以使用該量來計算該相同的共同參考字串。圖1圖示出一計算環境100,其包含有一第一計算實體102和一第二計算實體104,它們交換一參數集合,其讓該等第一計算實體和第二計算實體兩者決定一共同參考字串108。該共同參考字串可由該等各方利用來產生一智能合約110,該智能合約110鎖住該等計算實體之任一或兩者貢獻作為交易輸入的數位資產。該共同參考字串可以包含一求值金鑰112和一驗證金鑰112。該智能合約110可被發佈到一區塊鏈,諸如在圖1中所示的該區塊鏈118。該智能合約110可以由一第三計算實體106來執行,該第三計算實體不是該智能合約106的一方。作為執行該智能合約的一部分或與執行該智能合約相關聯,該第三計算實體(例如,工作者)可至少部分地基於該共同參考字串的該求值金鑰來產生該智能合約之正確執行的證明116。該正確執行的證明116可由任何合適的計算系統(例如,該智能合約的各方或充當一驗證者節點之該區塊鏈網路的一節點)來在計算上做驗證。在一實施例中,該驗證金鑰114由一第四計算實體(例如,驗證者電腦系統)使用來驗證發佈到該區塊鏈網路118的該證明係正確的。
根據至少一個實施例,該第一計算實體102和該第二計算實體104係一智能合約之參與方的電腦系統。一智能合約的各方可以指在執行一智能合約的條款上達成協議(例如,根據透過相關的使用者輸入裝置所提供的使用者輸入)的兩個或更多個計算實體。該第一計算實體102和該第二計算實體104兩者都同意一智能合約並對該智能合約提供交易輸入,使得該智能合約之該等各別的交易輸入會擔保給一鎖住腳本,該鎖住腳本可被解鎖(例如,花掉)作為一工作者節點提供該智能合約的一正確執行證明的結果。在本文中所描述的系統及方法涉及啟用一鎖住腳本來保護該驗證金鑰VK 不被變更,以及檢查一證明π的有效性,從而允許在交易驗證期間中在一區塊鏈上執行一種零知識協定。
在各種實施例中,該第一計算實體102和該第二計算實體104可以商定一智能合約,在一實施例中,係藉由交換一訊息集合,該訊息集合編碼用於該智能合約的參數,諸如被使用來控制該智能合約之該執行的日期、時間、條件、以及動作(例如,數位資產之控制的轉移)。舉例來說,一智能合約(例如,一可執行程式)可確保一方可預防一特定航班的延誤,並且該程式的執行可以包括使用諸如在某一天一特定商業航班之航班資訊的外部資料來判定該特定航班是否被延遲。如果該航班延誤,該程式的一方可能會收到一資產轉移(例如,提供旅行保險以防止延誤的一智能合約)。
在一實施例中,該智能合約110用一高階程式語言被編碼為諸如C、C++、或Java的原始碼。這些僅是說明性的實例,該智能合約可以使用其他合適的程式語言來被編碼。在一實施例中,諸如一編譯器、解譯器、及/或組譯器的軟體可被利用來把該智能合約110轉換為一算術電路,該算術電路由「線路」所組成,該等線路攜帶有來自一場
Figure 02_image003
之值並連接到加法和乘法閘。應被注意的是,該算術電路可以指一邏輯電路,該邏輯電路可由包含有由實體線所連接之一系列實體閘(例如,使用電晶體-電晶體邏輯(TTL)積體電路,諸如7400系列閘、正反器、緩衝器、解碼器、多工器、等等)的一實體電路來實現。雖然一智能合約110的該執行係被描述在圖1和其他地方的情境中,但是一智能合約的該使用僅是可被轉換為一算術電路之原始碼的一個非限制性的實例。在一實施例中,一客戶端(例如,該第一計算實體102,不是單獨就是與該第二計算實體104結合)決定原始碼用於執行由一組操作所限定的一任務,其中該任務的執行被委託給一第三計算實體106(被稱為一工作者或證明者)。一般而言,一驗證者可以執行與判定該證明者正確地執行該任務相關聯的任務,諸如藉由驗證由該證明者所產生之一正確執行證明116的該有效性。
一可驗證的計算係允許產生計算之證明的一種技術。在一實施例中,一客戶端利用這一種技術把在一輸入x上對一函數f的求值外包給在此被稱為一證明者的另一計算實體。在某些情況下,該客戶端在計算上受到限制,因此要該客戶端執行該函數的求值係不可行的(例如,該計算使用該客戶端可用計算資源的預期運行時間超過一最大可接受的臨界值),雖然實情未必如此,一般而言,該客戶端可以基於任何合適的標準,諸如計算運行時間、計算成本(例如,分配計算資源來執行該函數求值的財務成本)、等等,對在輸入x上該函數f的求值進行委託。
在一實施例中,一證明者係任何合適的計算實體,諸如在本發明的其他地方被更詳細描述的一區塊鏈節點。在一實施例中,一證明者(例如,一區塊鏈節點)求出該函數f在輸入x上的值,並產生一輸出y以及該輸出y之該正確性的一證明π,其可由諸如上述該客戶端之類的其他計算實體及/或該區塊鏈網路的其他節點來驗證。證明,其也可被稱為論證,可以比該實際的計算被更快地驗證—因此,藉由驗證該證明的正確性而不是在輸入x上重新計算該函數f來判定由該上述證明者所產生之輸出的正確性,可以減少計算開銷(例如,降低功率開銷以及與供電和運行計算資源相關聯的該成本)。在零知識可驗證計算中,該證明者提供一證明給該客戶端指出該證明者知道具有一特定屬性的輸入。
知識之一種零知識證明的一有效變型係zk_SNARK(簡潔非互動式的知識論證)。在一實施例中,所有基於配對的zk-SNARK包括一程序,其中該證明者使用一般的群操作來計算數個群元素並且該驗證者使用數個配對的乘積方程式來檢查該證明。在一實施例中,該線性互動式證明適用於一有限場,並且該證明者和驗證者的訊息包括編碼、參考,或以其他方式包括可用於確定場元素向量的資訊。
在一實施例中,該第一計算實體及/或該第二計算實體藉由交換一訊息集合來商定一智能合約的執行條款,該訊息集合編碼用於執行該智能合約的提議參數,諸如一或多個布林(Boolean)表示式,該等布林表示式編碼一條件集合,該條件集合基於一條件被滿足決定是否及/或如何執行該智能合約以及要執行的一操作集合。在一實施例中,一個計算實體把一參數集合發送給該第二計算實體作為一協定的一部分,並且該第二計算實體判定該等參數對於該智能合約是否可接受。如果該等參數不被接受,則該第二計算實體可以向該第一計算實體提供一不同的參數集合,作為用於執行該智能合約的一第二提議參數集合。該第二計算實體還可以提供一信號指出該第一參數集合係不可接受的,並且該第一計算實體決定要提供一第二參數集合。在任一種情況下,一旦所有的各方都已信令出對該等參數的協議,在一實施例中,任一計算實體可都以產生一鎖住交易其中該等輸出中之一被該程式(例如,一智能合約腳本)鎖住並把它發送給該智能合約的一交易對方。該鎖住交易可以指一種初始化限制條件的交易,在該等限制條件上可驗證一解鎖交易。在一些實例中,一「解鎖交易」指的是一區塊鏈交易其把一先前交易之一UTXO所指出之一數位資產的至少一部分重新關聯(例如,轉移所有權或控制)到與一區塊鏈位址相關聯的一實體。
在一實施例中,該第一計算實體產生一鎖住交易並添加涵蓋部分該工作者費用的一交易輸入。應被注意的是,此時,該鎖住交易尚未生效,因為該等交易輸入的值不等於該鎖住交易之該等交易輸出的值。繼續本實例,當該第二計算實體接收到該鎖住交易時,該第二計算實體驗證該智能合約(例如,驗證該共同參考字串以及用於執行該智能合約的參數)並把一輸入添加到該鎖住交易並解鎖一UTXO以轉移給該發行人商定的數位資產,還包括將支付給該工作者執行該程式(例如,該智能合約)的一費用以及具有給該工作者之該費用值的輸出。在該第一計算實體和該第二計算實體兩者都向該智能合約提供交易輸入的情況下,該智能合約可以由雙方所共同擁有,並且該智能合約的轉移(例如,交換或銷售)可能需要來自雙方的一證明。
該智能合約110可由諸如一區塊鏈網路之一節點的一第三計算實體106來執行。該第三計算實體106可被稱為一工作者或一證明者。在一實施例中,該工作者藉由至少執行涉及計算在一輸入上的一函數值的計算任務來執行該智能合約。在一實施例中,該工作者係該智能合約之該(等)擁有者可把計算任務委託給其之任何合適的電腦系統。在一實施例中,一輸入包括證明該工作者身份的資訊,諸如使用與該工作者相關聯的一私鑰所產生的數位簽名。在一實施例中,該工作者係一電腦系統,該等第一和第二計算實體同意轉移數位資產給它以換取成功地完成一計算任務。在一實施例中,該智能合約該(等)擁有者提供一輸入x和該求值金鑰EK 112給一證明者,該證明者對一計算程序使用一求值模組來計算該輸出y(即,y=f(x),其中該輸入為x且該函數為f)並且使用該求值金鑰EK 產生一正確執行證明116,其在本說明書的其他地方也可被稱為一正確性證明。在一實施例中,該工作者係包含有硬體及/或軟體的一電腦系統,該硬體及/或軟體包括指令,如果該等指令由該電腦系統的一或多個處理器執行,會致使該電腦系統求出一QAP之該內部電路線的該等值並產生該QAP的一輸出y。
在實施例中,一輸出y,即該內部電路線的值(或其一子集合),以及該求值金鑰EK 被使用來產生該正確性證明。該證明π可被儲存在該區塊鏈上並由多方驗證,而不需要該工作者分別地與該等多方互動。以這種方式,一第四計算實體(例如,一驗證者電腦系統)可以使用該公開的驗證金鑰VK 114和該證明π來驗證該經廣播的交易,從而驗證該智能合約。在某些情況下,如果驗證失敗,該智能合約的該(等)擁有者可以收回由該經廣播交易擔保的數位資產。在某些情況下,該智能合約該(等)擁有者可以執行該證明的該驗證。
在一實施例中,根據上面及/或下面所描述的技術,該驗證金鑰114和對應的證明116被產生。因此,一驗證者被給予驗證金鑰VK 和證明π:
Figure 02_image005
Figure 02_image007
使得該驗證者計算複數個橢圓曲線乘法(例如,每一個公開的輸入變數一個)和五對檢查,其中一個包括一額外的配對乘法。
給定驗證金鑰
Figure 02_image009
、證明π、以及
Figure 02_image011
,來驗證
Figure 02_image013
整除
Figure 02_image015
並因此
Figure 02_image017
,該驗證者如下進行。首先,它檢查所有的三個
Figure 02_image019
項:
Figure 02_image021
Figure 02_image023
Figure 02_image025
其中
Figure 02_image027
Figure 02_image029
、以及
Figure 02_image031
。然後,該驗證者檢查
Figure 02_image033
項:
Figure 02_image035
以及
Figure 02_image037
。最後,該驗證者檢查該可整除性需求:
Figure 02_image039
其中
Figure 02_image041
Figure 02_image043
因此,考慮來自上述部分和在本發明中所描述之該等實例的該符號,根據一個實施例,該驗證包括以下元素的一配對檢查集合:
Figure 02_image045
Figure 02_image047
Figure 02_image049
Figure 02_image051
Figure 02_image053
圖2圖示出一計算環境200,其中一第一計算實體202和一第二計算實體204交換量,該等量可被使用來決定在兩方或更多方之間一已分享秘密的冪次。該第一計算實體202和該第二計算實體204可以交換量(如在圖2中所示之該水平箭頭的下方),該等量被使用來計算一相同的共同參考字串。在一實施例中,該第一計算實體和該第二計算實體係一區塊鏈網路的節點,它們係根據圖1所描述的那些節點。根據至少一個實施例,令
Figure 02_image055
係場上的一函數、令
Figure 02_image057
係對應的算術電路、以及
Figure 02_image059
係該對應之大小為m 次數為d 的QAP(二次算術規劃)。再者,令
Figure 02_image061
係一雙線性映射,
Figure 02_image063
Figure 02_image065
的一生成元。在一實施例中,加法式表示(而非指數式表示)被選擇。在一實施例中,藉由以下方式來選擇一求值金鑰和一驗證金鑰:選擇隨機的
Figure 02_image067
,並設定
Figure 02_image069
Figure 02_image071
(通常:
Figure 02_image073
)、以及對應地
Figure 02_image075
,來構建該等金鑰:
Figure 02_image077
Figure 02_image079
Figure 02_image081
Figure 02_image083
其中
Figure 02_image085
,即,該輸入輸出數。在考慮一不對稱配對的一實施例中,該配對映射將被定義為
Figure 02_image087
,而
Figure 02_image089
Figure 02_image091
的一生成元,i =1,2。在這種情況下,該CRS會略有變化,該
Figure 02_image093
將會是
Figure 02_image095
Figure 02_image097
其中
Figure 02_image069
Figure 02_image099
如所指出的,電路係藉由多項式
Figure 02_image101
來被描述,它們接下來會用一秘密
Figure 02_image103
來求值,其只有擁有/創建該電路以及對應QAP的該方才知道(例如,該智能合約的該等擁有者)。
更準確地說,如以上所述,該客戶端產生該等元素:
Figure 02_image105
有鑑於本提出解決方案的該安全性係依賴於該參數,
Figure 02_image103
,在一些實施例中,暴露該等剩下的(
Figure 02_image107
)會洩露資訊,該資訊會使該系統不會成為零知識及/或該客戶端不希望其他實體知道該資訊。
在一實施例中,對於一工作者被要求要提供一正確性證明的解決方案,可以存在一OP_碼(或等效物)用於驗證針對一驗證金鑰的該正確性證明。
應被注意的是在本說明書中,除非另有說明,否則在本文中的該等多項式是在一個場
Figure 02_image109
上被定義的。因此,令
Figure 02_image111
為一個場。因此,在場
Figure 02_image109
上的一多項式係由
Figure 02_image113
給出
Figure 02_image115
其中
Figure 02_image117
在一實施例中,藉由該等多項式
Figure 02_image119
以一秘密
Figure 02_image103
求值,該共同參考字串被表示出,表達形式如下:
Figure 02_image121
Figure 02_image123
在一實施例中,本文所描述的技術被利用來決定和分享橢圓曲線點,型式為:
Figure 02_image125
,用於該相關群(例如,橢圓曲線點)的一生成元
Figure 02_image063
。因此,在一實施例中,本文所描述的系統及方法被利用來決定和分發
Figure 02_image127
,對於任意整數冪
Figure 02_image129
根據至少一個實施例,分享和分發
Figure 02_image131
的技巧被圖示在圖2中。作為一實例,結合圖2以下對
Figure 02_image133
的情況做很詳細地描述,並且應該被視為是在該智能合約的各方之間分享秘密之冪次的一非限制性實例。此外,值得注意的是,在本文所描述的各種實施例中,一臨界值的該等效物被事先給出並假定該必要的參與者數先要商定。
圖2根據至少一個實施例圖示出在兩位參與者的情況下分享和分發一已分享秘密之冪次的技術。如圖2所示並且根據至少一個實施例,恰好有兩方參與者,它們分享一已分享秘密的冪次(即,
Figure 02_image133
的情況)。該等第一和第二計算實體可分別被稱為A和B。在一實施例中,A和B可以交換以下的資訊:A發送
Figure 02_image135
給B,並收到
Figure 02_image137
作為回應(
Figure 02_image139
)。以這種方式,兩者都可以計算出
Figure 02_image141
使用拉格朗日(Lagrange)插值(拉格朗日(Lagrange)多項式),可以用
Figure 02_image143
Figure 02_image145
來表達
Figure 02_image147
Figure 02_image149
並且,藉由延伸,可用
Figure 02_image151
來表達
Figure 02_image153
(參見WP0559)。雖然該等參與者無法重建
Figure 02_image155
,但藉由該等交換的點
Figure 02_image157
他們可以重建
Figure 02_image153
(特別是
Figure 02_image159
)。這對於更高冪次
Figure 02_image161
也同樣地正確。作為該多項式公式(多項式定理)的結果:
Figure 02_image163
對於
Figure 02_image165
這變成:
Figure 02_image167
接下來,其產生了以下的項之「塔」(這裡
Figure 02_image169
):
Figure 107144802-A0304-0001
示意地該交換可看起來如下所示(對於某
Figure 02_image191
):
Figure 107144802-A0304-0002
在這次交換之後(遵循某些預先安排的慣例)雙方都可以計算出
Figure 02_image207
,並且特別是
Figure 02_image209
圖3圖示出一計算環境300,其中一第一計算實體302和一第二計算實體304交換一參數集合,這些參數使得一協定—例如結合圖1所描述的那些—成為零知識。根據各種實施例,一公開的驗證金鑰可以採用以下的形式:
Figure 02_image095
Figure 02_image097
有鑑於本提出解決方案的該安全性係依賴於該參數,
Figure 02_image103
,在一些實施例中,暴露該等剩下的(
Figure 02_image107
)會洩露資訊,該資訊會使該系統不會成為零知識及/或該客戶端不希望其他實體知道該資訊。因此,在一實施例中,使用來產生一驗證金鑰306之該等剩下參數的一些或全部使用結合圖3所描述的技術被分享。
在一實施例中,根據在本發明中其他地方所描述的技術,多項式被交換在該第一計算實體302與該第二計算實體304(它們可分別稱為A和B)之間,諸如結合圖1、2以及4所討論的那些。因此,在一實施例中,該第一計算實體302計算並分享一橢圓曲線點集合
Figure 02_image211
給該第二計算實體304,並且該第二計算實體304計算並分享一橢圓曲線點集合
Figure 02_image213
給該第一計算實體302。另外,被使用來產生該驗證金鑰306的其他參數可以不用跨越一通信通道以一種明文格式來被揭露,而是使用以下描述的技術來發送。
根據一實施例,令
Figure 02_image089
Figure 02_image091
的一生成元,
Figure 02_image169
並且對於
Figure 02_image215
Figure 02_image217
。此外,在一實施例中,
Figure 02_image219
被分享,並且其他參數以一種可確保該等參數之該機密性的方式(例如,加密或其他隱藏的技術)來被傳播。值得注意的是,該等參與者中之任一可以,相反地,產生該等參數
Figure 02_image221
,並且可以離線或在線(例如,鏈上)把它們傳送給另外一個。關於前者—即,確保該等其他參數的機密性—各種技術可被使用。例如,藉由使用沙米爾(Shamir)秘密分享方案(4S)來分享該等元素
Figure 02_image223
(並且可能有
Figure 02_image225
,取決於實現方式/協定)及/或使用一種迪菲-赫爾曼(Diffie-Hellman)類似的密碼產生用於
Figure 02_image227
在一實施例中,該等元素
Figure 02_image229
,或它們的某組合的形式為
Figure 02_image099
。與
Figure 02_image103
的情況一樣,每位參與者
Figure 02_image231
產生一多項式
Figure 02_image233
,以
Figure 02_image235
對其進行求值,並與參與者
Figure 02_image237
分享對應的
Figure 02_image239
。因此,每位參與者都可以確定
Figure 02_image241
,並且特別是
Figure 02_image243
,其中
Figure 02_image245
可以是
Figure 02_image247
Figure 02_image033
或它們的某個組合,其中該特定的組合可以是基於一協定/約定,諸如一zk_SNARKs協定。
在一實施例中,該
Figure 02_image249
參數借助於橢圓曲線點來被分享,而其他參數可藉由純量數值。對於這樣的值,根據至少一個實施例,一種迪菲-赫爾曼(Diffie-Hellman)方案被使用在兩個計算實體之間分享純量參數,而不用分享該等參數本身。因此,在一實施例中,令
Figure 02_image251
係一N 個參數的集合。在一實施例中,假設A和B已經商定使用具有模數
Figure 02_image253
和生成元
Figure 02_image255
的一乘法群
Figure 02_image257
,並且該等參加者(A和B)進行以下的該等步驟(雖然該指數表示被使用於此處作為一說明性的實例,但是其他合適的表示也可以被使用):對於每一個
Figure 02_image259
,該等第一和第二計算實體分別創建一(私有地)隨機數
Figure 02_image261
,並且兩者都導出一(公開的)元素:
Figure 02_image263
Figure 02_image265
。然後該等計算實體進行交換
Figure 02_image263
Figure 02_image265
,並分別計算
Figure 02_image267
Figure 02_image269
(=
Figure 02_image271
)。因此,該等參數被設置為
Figure 02_image273
因此,該等上述的技術已示範該等第一和第二計算實體兩者都分享該參數
Figure 02_image275
,而無需藉由交換
Figure 02_image263
Figure 02_image265
來交換它們。應被注意的是,根據至少一個實施例,由於在該前述方式中至少一個參數被交換,故參與者的該數量被限制為n=2。
圖4圖示出一種協定的示意圖400,基於一種雙方共同參考字串(CRS)以及對應的正確性證明(POC)或正確執行的證明。該圖400圖示出一第一計算實體402、一第二計算實體404、以及一第三計算實體106,其中在執行該智能合約時,該第一計算實體402和該第二計算實體404共同對可由該第三計算實體406來解鎖的一智能合約做出貢獻。在一實施例中,該協定至少部分地使用區塊鏈網路來實現。
根據本發明,並且更為詳細地描述(例如,結合圖4),用於兩位參與者A和B的一方案和協定可被利用來產生一已分享的秘密,並且因此產生一已分享的共同參考字串(CRS),其可被使用於驗證一相關電路的該正確執行。在一實施例中,該方案假定資料的一鏈外交換,首先在A與B之間,其次在A+B(或者任一個)與代表A或B之至少一個執行一計算任務的工作者C之間。為了使該工作者C執行該計算任務(例如,一智能合約的執行),A和B兩者都簽署一交易(其可以包含或可以不包含一P2SH型態的贖回腳本),其要求該工作者C提供一正確性證明並證明持有正確的驗證金鑰(VK)以解鎖該資金。
在一些實施例中,用於實現在本發明中所呈現該協定的技術不需要對現有區塊鏈網路做任何的協定改變(例如,可以使用已支援之現有的命令在一基於比特幣之區塊鏈網路上實現)。在一些實施例中,由該比特幣協定所支援之該現有命令集的擴展也在本文被討論—該擴展可以包括新命令(例如,新的OP代碼),其可以具有各種益處,諸如提高智能合約的執行效率、減小該智能合約的大小(這可以減少該區塊鏈網路節點要正常運行所需要的儲存空間量)、等等。在一些實施例中,對該區塊鏈確認一智能交易的成本至少部分地基於該智能合約的大小。
在一實施例中,橢圓曲線點的交換及轉移以及與該共同參考字串有關的其他資料係在鏈外被傳輸。在一實施例中,該驗證金鑰最終還是被廣播或以其他方式經由用於該工作者C和希望要求值其智能合約之雙方(A和B)所執行之工作(例如,一智能合約的執行)之數位資產的交換被提供在鏈上。如本文所述,幾種方案都是有可能的。例如,當準備該鎖住交易時,A和B可以兩者都或非兩者都提供該VK或VK的雜湊。換句話說,在一實施例中,大部分容量密集之工作負載的係在鏈外完成的。
在一實施例中,該協定包括鏈外和鏈上兩者的成分,如在圖4中所示的該虛線所示。鏈外成分可包括在不把資料儲存到一區塊鏈分類帳的情況下所發生之資料及資訊的通信及交換。例如,該協定的一鏈外成分可以包括在一來源與目的地之間的IP封包交換(例如,該第一計算實體402係一來源,其把一第一參數集合發送到一目的地,即該第二計算實體404)。例如,該協定的一鏈上成分可以包括把資料廣播到一區塊鏈分類賬,該區塊鏈分類賬可被提供用於該區塊鏈網路的節點。
在一實施例中,該第一計算實體402至少部分地基於一第一多項式計算一橢圓曲線點集合
Figure 02_image211
。該第一計算實體402可以向該第二計算實體404發送資料,其包含有該橢圓曲線點集合中的至少一些。例如,該第一計算實體402可以發送橢圓曲線點的該完整集合。作為一第二實例,該第一計算實體402可以發送該等橢圓曲線點的一子集
Figure 02_image277
在一些實施例中,發送附加資料時並不要求要維護一已分享秘密s的保密性,但可能需要使該系統成為零知識。例如,
Figure 02_image279
Figure 02_image281
Figure 02_image283
,或者其之某種組合也可被計算(如上面結合圖3所述)以產生可被使用作為確定一共同參考字串之一部分的附加參數值。在一實施例中,
Figure 02_image279
係一純量值集合。在一實施例中,
Figure 02_image281
Figure 02_image283
指的是一橢圓曲線點集合。
在一實施例中,該第二計算實體404同樣地計算一橢圓曲線點集合
Figure 02_image213
,基於可能與該第一計算實體402所使用之多項式不同的一多項式。該第二計算實體404可執行如以上所述的類似操作。例如,該第二計算實體404可以把該已產生之橢圓曲線點的一子集
Figure 02_image285
發送給該第一計算實體402。另外,在一實施例中,可選擇的參數諸如
Figure 02_image287
,
Figure 02_image289
,或者它們的某組合可被交換,其雖然非維持該已分享秘密s之保密性所必需的,但是可被利用來確保該協定係零知識。
在一實施例中,該已交換的量可由該第一計算實體402和該第二計算實體404兩者來計算該相同的共同參考字串。它們可以或可以不向該第三計算實體(例如,工作者)提供該共同參考字串,因為該第三計算實體406稍後必須證明持有該正確的驗證金鑰。由該等第一及第二計算實體兩者對該相同共同參考字串的決定可以在鏈外被執行。
繼續該協定,根據一個實施例,該等第一和第二計算實體商定了一交易,在該交易中它們依比例做出貢獻用於該智能合約的執行。在一實施例中,該等第一和第二計算實體就貢獻比例達成一致,並且每一個提供被擔保給該智能合約的交易輸入,並且可以在執行該智能合約時由該第三計算實體來解鎖。這可能是也可能不是一種付費給腳本雜湊(P2SH)類型的協議,它們兩者都轉移資金到同一位址(C的位址)。該P2SH類型腳本可以包含或可以不包含該驗證金鑰的該等元素或驗證金鑰雜湊值,即,
Figure 02_image291
。在一實施例中,該金鑰已被分割成塊。該智能合約可被廣播到一區塊鏈成為在圖4中所示的該第一交易410,其具有由該第一計算實體402所貢獻的一第一交易輸入和由該第二計算實體404所貢獻的一第二交易輸入,其作用為以該等第一和第二計算實體所商定的一比例支付給一工作者的費用。
在一實施例中,該第三計算實體406—也被稱為一工作者—根據在英國專利申請案第1719998.5號及/或英國專利申請案第1720768.9號的該等協定在一第二交易410中解鎖該等資金—而且該第三計算實體406解鎖用於工作的該等資金(該電路的正確執行)並且這樣子做,證明了它擁有(a)正確的驗證金鑰以及(b)一有效的正確性證明。該驗證可由另一電腦系統(例如,為一驗證者之該區塊鏈的一節點)執行或由作為該智能合約之一方的該等計算實體中的任一/兩者來執行。
圖5根據一實施例展示出程序500的一說明性實例,該程序500係一種用於產生包含有一驗證金鑰及一求值金鑰的一種兩方共同參考字串。該程序500之部分或全部(或在本文中所描述之任何其他的程序,或其之變型及/或組合)可在組配有電腦可執行指令之一或多個電腦系統的控制下被執行,並且可被實現為程式碼(例如,電腦可執行指令、一或多個電腦程式、或一或多個應用程式)由硬體、軟體、或其之組合在一或多個處理器上集體地執行。該程式碼可被儲存在一電腦可讀取儲存媒體上,例如,儲存成一種電腦程式的形式,該電腦程式包含有可由一或多個處理器執行之複數個電腦可讀取指令。該電腦可讀取儲存媒體可以是一種非暫時性的電腦可讀取媒體。在一些實施例中,可使用來執行該程序500之該等電腦可讀取指令中的至少一些不是僅使用暫時性的信號(例如,一傳播中的瞬態電或電磁波傳輸)來儲存。一種非暫時性的電腦可讀取媒體可包括在暫態信號之收發器內部的非暫時性的資料儲存電路(例如,緩衝器、快取、以及佇列)。
在一實施例中,執行該程序500的該系統係一計算實體,其係一智能合約的一方,其執行一程序以至少建立可由該系統及該智能合約的另一方使用來計算一相同的共同參考字串的資訊。結合該程序500所描述的該共同參考字串可以與,例如,結合圖1-4所討論的那些一致。在一實施例中,藉由該等多項式
Figure 02_image119
以一秘密
Figure 02_image103
求值,該共同參考字串被表示出,表達形式如下:
Figure 02_image121
Figure 02_image123
在一實施例中,502該第一計算實體決定一第一多項式以產生一第一橢圓曲線值集合。在一實施例中,該系統產生橢圓曲線點,型式為:
Figure 02_image125
,對於該相關群(例如,橢圓曲線點)的一生成元
Figure 02_image063
。除非另有說明,否則在這個程序500中的該等多項式是在一個場
Figure 02_image109
上被定義的。因此,令
Figure 02_image111
為一個場。因此,在場
Figure 02_image109
上的一多項式係由
Figure 02_image113
給出並且
Figure 02_image115
其中
Figure 02_image117
。該橢圓曲線點集合可被表示為
Figure 02_image293
該第一計算實體可以504把該橢圓曲線點集合提供給該第二計算實體。在一實施例中,該系統不需要把該橢圓曲線點的完整集合提供給該第二計算實體—而是在一實施例中,該系統僅發送該等橢圓曲線點的一子集
Figure 02_image277
例如,根據至少一個實施例,其中
Figure 02_image133
,該第一計算實體計算
Figure 02_image295
,並與該第二計算實體分享
Figure 02_image297
。該等剩下的量
Figure 02_image299
可由該第一計算實體利用來計算該共同參考字串。
該第二計算實體,其也是該智能合約的一方,可以為該等相同的輸入點分別地產生一橢圓曲線點集合(例如,產生橢圓曲線點
Figure 02_image285
),並把該等已產生點的全部或一些提供給該第一計算實體。該第一計算實體可以506從該第二計算實體接收一第二橢圓曲線點集合,其對應由該第二計算實體所產生之橢圓曲線點的一些或全部,其中該子集可基於在本發明中其他地方(例如,結合圖2和圖6)所描述的技術來決定。
在一實施例中,508該系統基於該等第一和第二橢圓曲線點集合的至少一部分決定一相同的共同參考字串。例如,在交換橢圓曲線點之後,一拉格朗日(Lagrange)插值可被使用來以
Figure 02_image143
Figure 02_image145
來表達
Figure 02_image147
。在一實施例中,該智能合約的雙方可以藉由該等交換的點
Figure 02_image157
重建冪次
Figure 02_image161
(並且特別是,
Figure 02_image209
)。對於冪次
Figure 02_image161
,如以上所述之該多項式公式可被利用:
Figure 02_image163
例如,對於
Figure 02_image165
這變成:
Figure 02_image167
在一實施例中,附加參數(例如,純量值及/或橢圓曲線點)被交換在該等第一與第二計算實體之間,諸如以結合圖3所描述的方式,以及該等參數結合該已分享秘密的一冪次
Figure 02_image301
被使用來計算該驗證金鑰及/或求值金鑰。在一實施例中,該等參數是在不依賴於提供機密性之密碼式可驗證保證之加密及/或通信通道的情況下被交換的。
在一實施例中,該等第一和第二計算實體就一交易達成協議,並且510每一個計算實體對該智能合約的一各別交易輸入做出貢獻,其可由正確執行該智能合約的一第三計算實體(例如,工作者)來解鎖。在一實施例中,該等計算實體之任一個提供一比例的工作者費用。可能存在也可能不存在一種P2SH類型協議,其中兩者都對相同的位址(例如,工作者的位址)做出貢獻。在一實施例中,該P2SH腳本包括該驗證金鑰的元素或該驗證金鑰的雜湊值。一工作者(例如,第三計算實體)可藉由提供一計算上可驗證的認證來解鎖(例如,解鎖)該等貢獻,該計算上可驗證的認證指出該工作者具有正確的驗證並且藉由,例如,使用結合在英國專利申請案第1719998.5號及/或英國專利申請案第1720768.9號中所描述的技術來提供一有效的正確性證明。
圖6根據至少一個實施例圖示出一種用於在n方(例如,n>2)之間分享一已分享秘密之冪次的程序600的一說明性實例。該程序600之部分或全部(或在本文中所描述之任何其他的程序,或其之變型及/或組合)可在組配有電腦可執行指令之一或多個電腦系統的控制下被執行,並且可被實現為程式碼(例如,電腦可執行指令、一或多個電腦程式、或一或多個應用程式)由硬體、軟體、或其之組合在一或多個處理器上集體地執行。該程式碼可被儲存在一電腦可讀取儲存媒體上,例如,儲存成一種電腦程式的形式,該電腦程式包含有可由一或多個處理器執行之複數個電腦可讀取指令。該電腦可讀取儲存媒體可以是一種非暫時性的電腦可讀取媒體。在一些實施例中,可使用來執行該程序600之該等電腦可讀取指令中的至少一些不是僅使用暫時性的信號(例如,一傳播中的瞬態電或電磁波傳輸)來儲存。一種非暫時性的電腦可讀取媒體可包括在暫態信號之收發器內部的非暫時性的資料儲存電路(例如,緩衝器、快取、以及佇列)。在一實施例中,一臨界值的該等效物被事先給出並假定參與者的該必要數量要先商定。這不同於各種現有技術,諸如在沙米爾(Shamir)秘密分享方案(4S)中所描述的技術,其中一秘密的分享僅能施行在一給定臨界值被達到的限制下。
根據各種實施例,秘密分享適用於一任意數量的參與方。在一實施例中,在本發明中所描述形式的大部分都可適用於多方(n>2)的情境。在一些實施例中,多方系統(n>2)不被要求要隱藏特定的其他參數(例如,以下非橢圓曲線(例如,純量)參數:
Figure 02_image303
的一些或所有)。然而,如果那些參數根據該協定都保持為私有的,則不同的方法—諸如結合圖3所描述的那些—可被使用來隱藏諸如
Figure 02_image305
的參數。
在一實施例中,所有的參與者都602同意及/或可以使用該函數
Figure 02_image307
,其把有限場元素映射到其他的有限場元素。在一實施例中,該等函數作用為群之生成元的係數/指數。為了說明的目的,下文所描述的實施例聚焦於多項式,因為我們感興趣的該等函數可藉由泰勒(Taylor)級數的推廣使用多項式來表示。特別的是,在各種實施例中,參與的各方會用該相同的值來估量該等函數,並且不用在他們自己之間傳遞該值。例如,在1階多項式的情況下,這相當於使用沙米爾(Shamir)秘密分享方案。對於更高階(n>1),該等各方正在處理以下形式的表示式:
Figure 02_image309
因此,本文所描述的技術可被利用來確保所有的參與者都具有相同的
Figure 02_image311
。例如,在根據至少一個實施例所描述的一協定中,對於任意的整數冪r ,可藉由公開地分發具有
Figure 02_image131
形式的點,該相同的EQ_FSG可以在兩位或更多位參與者之間(即,
Figure 02_image313
)被分享,因為
Figure 02_image315
,其中
Figure 02_image063
係討論中該群(例如,橢圓曲線點的)一生成元。
在一實施例中,每一位參與者能夠604產生多項式,其在一點集合
Figure 02_image317
上被求值,其中
Figure 02_image319
,並且該等點對所有的各方都可能是已知的。在一實施例中,每一位參與者的該等多項式的總和構成該(主)多項式,其中與y軸的該交點係該秘密,即,
Figure 02_image321
, 具有
Figure 02_image323
,其中
Figure 02_image325
係該參與者數。如以上所述之與y軸的交點可以被稱為一交叉點。
為了建立
Figure 02_image103
,606每一位參與者分享在該等不同點
Figure 02_image327
上求值之一對應的多項式。更具體地說,對於
Figure 02_image329
參與者
Figure 02_image231
創建/計算
Figure 02_image331
,並發送
Figure 02_image157
Figure 02_image237
。一旦這些量被分享,608每一位參與者就能夠計算或以其他方式確定該已分享秘密的一冪次
Figure 02_image333
在考慮
Figure 02_image333
時需要稍微地仔細,因為它相當於分享以下的表示式
Figure 02_image335
由於該生成元的冪次通常沒被定義,因此可能無法計算
Figure 02_image157
的冪次。然而,由於所有參與者都可以藉由該等已交換的
Figure 02_image157
來推斷
Figure 02_image337
,因此可以藉由檢查該拉格朗日(Lagrange)插值多項式
Figure 02_image339
的冪來做為開始(因為該主多項式通常可以藉由拉格朗日(Lagrange)插值(拉格朗日(Lagrange)多項式)來被建構出)。該拉格朗日(Lagrange)插值可被寫為:
Figure 02_image341
其中
Figure 02_image343
並因此
Figure 02_image345
其中
Figure 02_image347
係該多項式係數(多項式定理)。因此,該等多項式
Figure 02_image349
可由每一位參與者獨立地計算出。接下來,每一位參與者可以計算:
Figure 02_image351
使得
Figure 02_image353
其,接下來,可被重寫為(使用多項展開):
Figure 02_image355
這意味著,參與者
Figure 02_image231
(多項式
Figure 02_image357
的該擁有者/創建者)可以為參與者
Figure 02_image237
提供
Figure 02_image359
的冪次,即,提供以下集合:
Figure 02_image361
這允許參與者
Figure 02_image237
計算
Figure 02_image363
(和類似地
Figure 02_image365
)等等。在一實施例中,一參與者計算具以下形式的表示式:
Figure 02_image367
根據至少一個實施例考慮一實例,其中參與者使用一橢圓曲線,並且其中
Figure 02_image063
係在該對應的(乘法)表示式中的一生成元。在兩位參與者的情況下,A和B:A發送
Figure 02_image135
給B,並收到
Figure 02_image137
作為回應。因此,參與者A可以計算出
Figure 02_image369
同樣地,參與者B可以計算出
Figure 02_image371
使用拉格朗日(Lagrange)插值,可以使用
Figure 02_image143
Figure 02_image145
來表達
Figure 02_image147
Figure 02_image149
每一位參與者可藉由該等交換的點
Figure 02_image157
重建
Figure 02_image153
(而且特別是
Figure 02_image159
)。對於更高的冪次
Figure 02_image161
,可以使用上一節中的該多項式公式:
Figure 02_image163
對於
Figure 02_image165
這變成:
Figure 02_image167
在這個交換之後(遵循某些預先安排的慣例),雙方都可以計算
Figure 02_image373
,並且特別是
Figure 02_image375
根據該程序600的一協定在以下被描述。由於每位參與者需要能夠獲得具
Figure 02_image377
形式的表示式,因此在交換該等點時可能需要一種順序。這裡我們說明一種如此的解決方案。
在不失一般性的情況下,根據至少一個實施例,可以假設參與者1係提交該等第一橢圓曲線點的參與者。在一實施例中,該協定遵循以下的該等步驟: 1. 參與者1分發
Figure 02_image379
給所有
Figure 02_image381
的參與者,其中
Figure 02_image383
Figure 02_image385
,並且其中
Figure 02_image325
係該參與者數量。 2. 參與者2分發
Figure 02_image387
給所有
Figure 02_image389
的參與者,其中
Figure 02_image391
Figure 02_image393
以及
Figure 02_image395
3. 參與者3分發
Figure 02_image397
給所有
Figure 02_image399
的參與者,其中
Figure 02_image391
Figure 02_image401
Figure 02_image403
以及
Figure 02_image395
4. ....(對於每一位參與者依此類推)
在該序列中的第
Figure 02_image405
位參與者分發
Figure 02_image407
給所有
Figure 02_image409
的參與者,其中
Figure 02_image391
對於
Figure 02_image411
Figure 02_image413
以及
Figure 02_image385
。當最後一位參與者,
Figure 02_image325
,分發他/她的點時,所有的參與者都有必要的成分來計算
Figure 02_image415
在一實施例中,該程序600包括複數
Figure 02_image325
位參與者(例如,多於2位參與者),他們交換具有形式
Figure 02_image417
的點集合,其中該等點被每一位參與者使用來計算
Figure 02_image419
。然後,該等參與者可以使用
Figure 02_image419
,配合使用拉格朗日(Lagrange)插值,來獲得
Figure 02_image421
,並且特別是,
Figure 02_image423
。在一實施例中,該等點係橢圓曲線點,其中
Figure 02_image425
因此,本說明書和附圖應被視為是說明性的而非限制性的。然而,將顯而易見的是,在不脫離如在該等請求項中所闡述之本發明範圍的情況下,可以對其進行各種的修改和改變。同樣地,其他的變型也是在本發明的範圍內。因此,儘管該等揭露的技術係易於進行各種修改和結構替換,某些圖示出的實施例已被展示在該等附圖中並且已在上面做出詳細地描述。然而,應被理解的是,本文並無意圖把本發明限制在所揭露之特定形式或多個形式,相反的是,其目的係欲涵蓋落入到本發明範圍內之所有的修改、替代結構以及等同物,如在該等所附請求項中所限定的。
除非另有說明或與上下文相互矛盾,否則術語「集合」(例如,「一項目集合」)或「子集」的使用應被解釋為包含有一或多個成員的一非空集合。此外,除非另有說明或與上下文相互矛盾,否則一對應集合的術語「子集」不一定表示為該對應集合的一真子集,而是該子集和該對應的集合可能是相等的。
連結性語言,諸如「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,每一個都要存在。此外,除非另有說明或另外從上下文可清楚其意,否則短語「基於」意味著「至少部分地基於」而不是「僅基於」。
除非另有說明或與上下文明顯矛盾,否則所描述之程序的操作可以以任何合適的順序來執行。所描述之程序(或其之變型及/或組合)可在組配有電腦可執行指令之一或多個電腦系統的控制下被執行,並且可被實現為程式碼(例如,電腦可執行指令、一或多個電腦程式、或一或多個應用程式)由硬體或其之組合在一或多個處理器上集體地執行。在一些實施例中,該程式碼可被儲存在一電腦可讀取儲存媒體上,例如,儲存成一種電腦程式的形式,該電腦程式包含有可由一或多個處理器執行之複數個電腦可讀取指令。在一些實施例中,該電腦可讀取儲存媒體係非暫時性的。
在本文中使用任一及所有的實例,或提供示例性語言(例如,「諸如」)僅旨在更好地說明本發明的實施例,除非另外聲明,否則不對本發明的範圍構成限制。在本說明書中的任何語言都不應被解讀為表示任何未要求保護的元素對於本發明的實踐係必要的。
本發明的實施例被描述,其包括本發明人所認知實現本發明的最佳模式。在閱讀前面的描述後,那些實施例的變化對於本領域的普通技術人員來說將變得顯而易見。本發明人期望熟練的技術人員適當地採用這些變化,並且本發明人意圖以非具體描述的其他方式來實踐本發明的實施例。因此,本發明的範圍包括適用法律所允許的在所附請求項之技術主題中所有的修改和等同物。此外,除非另有說明或與上下文明顯矛盾,否則該等以上所描述的要素其所有可能變型的任何組合都被包含在本發明的範圍內。
本文引用之所有的參考文獻,包括出版物、專利申請案、以及專利均藉由引用被併入於本文中,其程度如同每一參考文獻被各別地且被具體地指出要藉由引用被併入並且係以其之整體來被闡述。
應被注意的是,該等上述實施例係說明本發明而不是限制本發明,並且本領域的習知技藝者將能夠設計出許多的替代實施例而不脫離由所附請求項所限定之本發明的範圍。某些措施被敘述在相互不同的從屬請求項中僅為陳述事實,但並不表示這些措施的一種組合無法被使用來獲益。
100、200、300‧‧‧計算環境 102、302、402‧‧‧第一計算實體 104、304、404‧‧‧第二計算實體 106、406‧‧‧第三計算實體 108‧‧‧共同參考字串 110‧‧‧智能合約 112‧‧‧求值金鑰 114、306‧‧‧驗證金鑰 116‧‧‧正確執行的證明 118‧‧‧區塊鏈 400‧‧‧示意圖 408‧‧‧第一交易 410‧‧‧第二交易 500、600‧‧‧程序 502〜510、602〜608‧‧‧方塊 700‧‧‧ 702‧‧‧處理器 704‧‧‧匯流排子系統 706‧‧‧儲存區子系統 708‧‧‧記憶體子系統 710‧‧‧檔案儲存子系統 712‧‧‧使用者介面輸入裝置 714‧‧‧使用者介面輸出裝置 716‧‧‧網路介面 718‧‧‧RAM 720‧‧‧ROM 724‧‧‧時鐘
從本文所描述的實施例以及參考其之闡明,本發明的這些和其他方面將是顯而易見的。現在將僅通過示例的方式並參照該等附圖來描述本發明的一實施例,其中: 圖1圖示出一計算環境,其中一智能合約的多方與一第三方商定一協議以執行該智能合約; 圖2圖示出一計算環境,其中一第一計算實體和一第二計算實體交換可被使用來決定在兩方或更多方之間一已分享秘密之冪次的量; 圖3圖示出一計算環境,其中一第一計算實體和一第二計算實體交換使之為零知識的一參數集合; 圖4圖示出基於一兩方共同參考字串(CRS)和對應的正確性證明(POC)或正確執行證明之一協定的一示意圖; 圖5根據一實施例圖示出一種用於產生包含有一驗證金鑰和求值金鑰之一個兩方共同參考字串的程序; 圖6根據至少一個實施例圖示出一種用於在多方之間分享一已分享秘密之冪次的程序;以及 圖7圖示出一計算裝置的一簡化的方塊圖其可被使用來實踐本發明的至少一個實施例。
100‧‧‧計算環境
102‧‧‧第一計算實體
104‧‧‧第二計算實體
106‧‧‧第三計算實體
108‧‧‧共同參考字串
110‧‧‧智能合約
112‧‧‧求值金鑰
114‧‧‧驗證金鑰
116‧‧‧正確執行的證明
118‧‧‧區塊鏈

Claims (15)

  1. 一種電腦實施的方法,其包含有:在多個參與者中之各者處:決定一可用於映射有限場元素的函數;產生在一點集合中求值的多項式,該等多項式之數量係基於參與者之數量;把該等多項式分發給該等多個參與者中之對應的參與者;以及決定該等多個參與者中每一個參與者之多項式的一總和,其中該總和對應到一秘密的一冪次;以及在該等多個參與者之間並基於該秘密,共同地產生一區塊鏈交易。
  2. 如請求項1之方法,其中該點集合係一橢圓曲線點集合。
  3. 如請求項1之方法,其中決定多項式的該總和係基於一拉格朗日(Lagrange)插值。
  4. 如請求項1之方法,其更包含有至少部分地基於該秘密的該冪次,決定可由該等多個參與者來決定的一共同參考字串。
  5. 如請求項1之方法,其更包含有從該等多個參與者中每一個參與者接收多項式之對應的值。
  6. 如請求項1之方法,其中鏈外通信被利用在把該等多項式的該等值分發給該等對應參與者。
  7. 如請求項1之方法,其中可使用來映射該 等有限場元素的該函數作用為一群組之一生成元的一係數或指數。
  8. 如請求項1之方法,其中該等多個參與者正好是兩個參與者。
  9. 如請求項1之方法,其中該秘密係基於在一特定點處被求值之多項式的該總和來決定。
  10. 如請求項9之方法,其中該特定點係一交叉點。
  11. 如請求項1之方法,其中該點集合排除交叉點。
  12. 如請求項1之方法,其中在該點集合中求值的該等多項式至少為2階。
  13. 如請求項1之方法,其中該點集合中的每一個點係一不同的點。
  14. 一種系統,其包含有:一處理器;以及包括有可執行指令的記憶體,作為該等可執行指令由該處理器執行的一結果,會致使該系統執行如請求項1至13中任一項之電腦實施的方法。
  15. 一種儲存有可執行指令之非暫時性電腦可讀儲存媒體,作為該等可執行指令由一電腦系統之一處理器執行的一結果,會致使該電腦系統至少執行如請求項1至13中任一項之電腦實施的方法。
TW107144802A 2017-12-13 2018-12-12 用以安全分享密碼材料之系統及方法 TWI794366B (zh)

Applications Claiming Priority (9)

Application Number Priority Date Filing Date Title
GBGB1720768.9A GB201720768D0 (en) 2017-12-13 2017-12-13 Computer-implemented system and method
GB1720768.9 2017-12-13
??1720768.9 2017-12-13
GBGB1813770.3A GB201813770D0 (en) 2018-08-23 2018-08-23 Computer-Implemented system and method
??1813770.3 2018-08-23
GB1813770.3 2018-08-23
??1813772.9 2018-08-23
GBGB1813772.9A GB201813772D0 (en) 2018-08-23 2018-08-23 Computer-Implemented system and method
GB1813772.9 2018-08-23

Publications (2)

Publication Number Publication Date
TW201928755A TW201928755A (zh) 2019-07-16
TWI794366B true TWI794366B (zh) 2023-03-01

Family

ID=65013743

Family Applications (1)

Application Number Title Priority Date Filing Date
TW107144802A TWI794366B (zh) 2017-12-13 2018-12-12 用以安全分享密碼材料之系統及方法

Country Status (9)

Country Link
US (6) US11683164B2 (zh)
EP (3) EP3725028A1 (zh)
JP (4) JP7453911B2 (zh)
KR (2) KR20200096248A (zh)
CN (4) CN118449685A (zh)
SG (2) SG11202005567QA (zh)
TW (1) TWI794366B (zh)
WO (2) WO2019116187A1 (zh)
ZA (2) ZA202004255B (zh)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2018320435B9 (en) * 2017-08-22 2021-06-17 Nippon Telegraph And Telephone Corporation Agreement system, agreement apparatus, program, and recording medium
GB201805633D0 (en) * 2018-04-05 2018-05-23 Nchain Holdings Ltd Computer implemented method and system
WO2021013813A1 (en) * 2019-07-24 2021-01-28 Koninklijke Philips N.V. Summarizing a genomic data entry
CN110535916B (zh) * 2019-08-09 2022-04-15 江苏科技大学 一种基于区块链的供应保障管理方法
CN111427958A (zh) * 2020-03-26 2020-07-17 北京链化未来科技有限公司 基于区块链的去中心化数据数据共享方法
TWI790450B (zh) * 2020-06-15 2023-01-21 台灣灣谷科技股份有限公司 智能合約上鏈方法及其系統
WO2022006361A1 (en) * 2020-06-30 2022-01-06 Interdigital Patent Holdings, Inc. Methods, architectures, apparatuses and systems directed to messaging through blockchain networks
US11991284B1 (en) * 2020-07-02 2024-05-21 Steven Ali Ghabel Blockchain-based authentication system and method
KR102346880B1 (ko) 2020-09-01 2022-01-03 김바올 블록체인에 기반한 성인인증정보 관리 방법 및 장치
CN112653550A (zh) * 2020-10-11 2021-04-13 黑龙江头雁科技有限公司 一种基于BlockChain的多项密钥管理方法
JP2022158677A (ja) 2021-04-02 2022-10-17 株式会社野村総合研究所 マルチパーティ計算で行われるゼロ知識証明のための装置およびシステム
US20220337424A1 (en) * 2021-04-16 2022-10-20 Portable Data Corp Apparatuses And Methods For Facilitating Cryptographically Mediated Organizations And Tokens And Related Interactions
WO2023055582A1 (en) * 2021-09-30 2023-04-06 Visa International Service Association Round optimal oblivious transfers from isogenies
KR20230077838A (ko) 2021-11-26 2023-06-02 (주) 이노트리 다자간 계약의 개인정보 보호를 위한 온라인 전자 계약 플랫폼 시스템
US12086630B2 (en) * 2022-04-07 2024-09-10 Piamond Corp. Method and system for generating and managing smart contract
GB2627757A (en) * 2023-02-28 2024-09-04 Nchain Licensing Ag Verification of scalar multiplication of elliptic curve points in script
GB2627758A (en) * 2023-02-28 2024-09-04 Nchain Licensing Ag Verification of scalar multiplication of elliptic curve points in script

Family Cites Families (138)

* Cited by examiner, † Cited by third party
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
US6064928A (en) 1997-04-24 2000-05-16 Automation Systems Laboratory, Inc. Mechanical sensor diagnostic method and system
US5920830A (en) 1997-07-09 1999-07-06 General Electric Company Methods and apparatus for generating test vectors and validating ASIC designs
US6161180A (en) 1997-08-29 2000-12-12 International Business Machines Corporation Authentication for secure devices with limited cryptography
US6519754B1 (en) 1999-05-17 2003-02-11 Synplicity, Inc. Methods and apparatuses for designing integrated circuits
US7181017B1 (en) * 2001-03-23 2007-02-20 David Felsher System and method for secure three-party communications
EP1283422A1 (en) 2001-08-07 2003-02-12 Lucent Technologies Inc. Testbench for the validation of a device under test
US7209555B2 (en) 2001-10-25 2007-04-24 Matsushita Electric Industrial Co., Ltd. Elliptic curve converting device, elliptic curve converting method, elliptic curve utilization device and elliptic curve generating device
US7085701B2 (en) 2002-01-02 2006-08-01 International Business Machines Corporation Size reduction techniques for vital compliant VHDL simulation models
ATE314763T1 (de) * 2002-03-13 2006-01-15 Koninkl Philips Electronics Nv Mehrbenutzerschlüsselerzeugung auf polynombasis und authentisierungsverfahren uns system
US7281017B2 (en) 2002-06-21 2007-10-09 Sumisho Computer Systems Corporation Views for software atomization
US7657748B2 (en) * 2002-08-28 2010-02-02 Ntt Docomo, Inc. Certificate-based encryption and public key infrastructure
US6983456B2 (en) 2002-10-31 2006-01-03 Src Computers, Inc. Process for converting programs in high-level programming languages to a unified executable for hybrid computing platforms
US20050004899A1 (en) 2003-04-29 2005-01-06 Adrian Baldwin Auditing method and service
US20060149962A1 (en) * 2003-07-11 2006-07-06 Ingrian Networks, Inc. Network attached encryption
US7059517B2 (en) * 2003-12-31 2006-06-13 Hewlett-Packard Development Company, L.P. On-line PIN verification using polynomials
US7664957B2 (en) * 2004-05-20 2010-02-16 Ntt Docomo, Inc. Digital signatures including identity-based aggregate signatures
US7590236B1 (en) * 2004-06-04 2009-09-15 Voltage Security, Inc. Identity-based-encryption system
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
US8874477B2 (en) * 2005-10-04 2014-10-28 Steven Mark Hoffberg Multifactorial optimization system and method
TW200725415A (en) 2005-12-30 2007-07-01 Tatung Co Ltd Method for automatically translating high level programming language into hardware description language
US8850411B2 (en) 2006-06-21 2014-09-30 Element Cxi, Llc Compiler system, method and software for a resilient integrated circuit architecture
US7926040B2 (en) 2006-09-06 2011-04-12 International Business Machines Corporation Method and system for timing code execution in a korn shell script
US20100067686A1 (en) * 2006-10-30 2010-03-18 Kazuhiro Minematsu Shared key block cipher apparatus, its method, its program and recording medium
FR2918525A1 (fr) * 2007-07-06 2009-01-09 France Telecom Procede asymetrique de chiffrement ou de verification de signature.
WO2009064122A1 (en) 2007-11-18 2009-05-22 Lg Electronics Inc. Methods of joint coding in mobile communication system
US8923510B2 (en) * 2007-12-28 2014-12-30 Intel Corporation Method and apparatus for efficiently implementing the advanced encryption standard
JP2010096787A (ja) * 2008-10-14 2010-04-30 Tokyo Metropolitan Univ 秘密情報分散装置、秘密情報分散プログラム、秘密情報分散方法、秘密情報復元装置、秘密情報復元プログラム、秘密情報復元方法、及び秘密情報分散復元システム
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
US8639931B2 (en) * 2008-12-16 2014-01-28 Certicom Corp. Acceleration of key agreement protocols
US8165287B2 (en) * 2008-12-30 2012-04-24 King Fahd University Of Petroleum & Minerals Cryptographic hash functions using elliptic polynomial cryptography
US8189771B2 (en) * 2009-01-12 2012-05-29 King Fahd University Of Petroleum & Minerals Hash functions with elliptic polynomial hopping
FR2947404B1 (fr) 2009-06-30 2011-12-16 Sagem Securite Cryptographie par parametrisation sur une courbe elliptique
JP5159752B2 (ja) 2009-12-03 2013-03-13 セイコープレシジョン株式会社 通信データの検証装置及びそのコンピュータプログラム
US8189775B2 (en) * 2010-02-18 2012-05-29 King Fahd University Of Petroleum & Minerals Method of performing cipher block chaining using elliptic polynomial cryptography
US8910014B2 (en) * 2010-04-27 2014-12-09 Nec Corporation Coding device, error-correction code configuration method, and program thereof
US10515567B2 (en) * 2010-06-01 2019-12-24 Ternarylogic Llc Cryptographic machines with N-state lab-transformed switching devices
US20120002811A1 (en) * 2010-06-30 2012-01-05 The University Of Bristol Secure outsourced computation
US8972746B2 (en) * 2010-12-17 2015-03-03 Intel Corporation Technique for supporting multiple secure enclaves
EP2721766A4 (en) * 2011-03-18 2015-01-28 Certicom Corp SECURE FINANCIAL TRANSACTIONS
US9569771B2 (en) * 2011-04-29 2017-02-14 Stephen Lesavich Method and system for storage and retrieval of blockchain blocks using galois fields
EP2705479A4 (en) 2011-05-03 2014-12-24 Panther Payments Llc METHOD AND SYSTEM FOR FACILITATING PERSON-TO-PERSON PAYMENTS
US8607129B2 (en) * 2011-07-01 2013-12-10 Intel Corporation Efficient and scalable cyclic redundancy check circuit using Galois-field arithmetic
JP5697153B2 (ja) 2011-08-04 2015-04-08 キヤノンマーケティングジャパン株式会社 情報処理システム、携帯端末、制御方法、及びプログラム
US8745376B2 (en) 2011-10-14 2014-06-03 Certicom Corp. Verifying implicit certificates and digital signatures
US20150379510A1 (en) 2012-07-10 2015-12-31 Stanley Benjamin Smith Method and system to use a block chain infrastructure and Smart Contracts to monetize data transactions involving changes to data included into a data supply chain.
CN104854814A (zh) * 2012-12-21 2015-08-19 皇家飞利浦有限公司 密钥共享网络设备及其配置
US8683193B1 (en) 2013-03-01 2014-03-25 Robert Hansen Strict communications transport security
EP2989742B1 (en) * 2013-04-24 2018-08-29 NEC Corporation Method and system for enforcing access control policies on data
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
US11127001B2 (en) 2013-05-09 2021-09-21 Wayne Fueling Systems Llc Systems and methods for secure communication
US9553982B2 (en) 2013-07-06 2017-01-24 Newvoicemedia, Ltd. System and methods for tamper proof interaction recording and timestamping
EP2860905A1 (en) * 2013-10-09 2015-04-15 Thomson Licensing Method for ciphering a message via a keyed homomorphic encryption function, corresponding electronic device and computer program product
US9026978B1 (en) 2013-10-24 2015-05-05 Cadence Design Systems, Inc. Reverse interface logic model for optimizing physical hierarchy under full chip constraint
JP6095584B2 (ja) 2014-01-15 2017-03-15 日本電信電話株式会社 マルチパーティ計算システム、秘匿計算装置、マルチパーティ計算方法及びプログラム
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
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
US9645794B2 (en) 2014-09-23 2017-05-09 Texas Instruments Incorporated Homogeneous atomic pattern for double, add, and subtract operations for digital authentication using elliptic curve cryptography
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
CN104580240A (zh) 2015-01-22 2015-04-29 杭州安存网络科技有限公司 聊天证据固定方法及装置
EP3259871B1 (en) 2015-02-20 2020-09-16 Telefonaktiebolaget LM Ericsson (publ) Method of providing a hash value for a piece of data, electronic device and computer program
EP3767878A1 (en) 2015-03-27 2021-01-20 Black Gold Coin, Inc. A system and a method for personal identification and verification
WO2016155804A1 (en) 2015-03-31 2016-10-06 Nec Europe Ltd. Method for verifying information
JP2017004044A (ja) 2015-06-04 2017-01-05 富士通株式会社 ライセンス管理プログラム、ライセンス管理方法、およびライセンス管理システム
CN106293892B (zh) 2015-06-26 2019-03-19 阿里巴巴集团控股有限公司 分布式流计算系统、方法和装置
US10936720B2 (en) 2015-07-10 2021-03-02 Nec Corporation Method and system for reliable computation of a program
US10339523B2 (en) * 2015-07-14 2019-07-02 Fmr Llc Point-to-point transaction guidance apparatuses, methods and systems
US11488147B2 (en) * 2015-07-14 2022-11-01 Fmr Llc Computationally efficient transfer processing and auditing apparatuses, methods and systems
US20170048209A1 (en) * 2015-07-14 2017-02-16 Fmr Llc Crypto Key Recovery and Social Aggregating, Fractionally Efficient Transfer Guidance, Conditional Triggered Transaction, Datastructures, Apparatuses, Methods and Systems
US20170091756A1 (en) * 2015-07-14 2017-03-30 Fmr Llc Point-to-Point Transaction Guidance Apparatuses, Methods and Systems
US10366204B2 (en) 2015-08-03 2019-07-30 Change Healthcare Holdings, Llc System and method for decentralized autonomous healthcare economy platform
DE102015114215A1 (de) 2015-08-27 2017-03-02 Rwe Ag Versorgungssystem und verfahren zum betreiben eines versorgungssystems
WO2017079652A1 (en) 2015-11-05 2017-05-11 Pulsifer Allen 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
US20170140408A1 (en) 2015-11-16 2017-05-18 Bank Of America Corporation Transparent self-managing rewards program using blockchain and smart contracts
EP3378087B1 (en) * 2015-11-16 2021-12-01 Cavendish Kinetics, Inc. Naturally closed mems switch for esd protection
US9992028B2 (en) * 2015-11-26 2018-06-05 International Business Machines Corporation System, method, and computer program product for privacy-preserving transaction validation mechanisms for smart contracts that are included in a ledger
US11423498B2 (en) 2015-12-16 2022-08-23 International Business Machines Corporation Multimedia content player with digital rights management while maintaining privacy of users
JP2017111591A (ja) 2015-12-16 2017-06-22 株式会社ソシオネクスト 設計方法、設計プログラム及び設計装置
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
US9960920B2 (en) 2016-01-26 2018-05-01 Stampery Inc. Systems and methods for certification of data units and/or certification verification
US10108812B2 (en) * 2016-01-28 2018-10-23 Nasdaq, Inc. Systems and methods for securing and disseminating time sensitive information using a blockchain
AU2017223129A1 (en) * 2016-02-23 2018-07-12 nChain Holdings Limited Secure multiparty loss resistant storage and transfer of cryptographic keys for blockchain based systems in conjunction with a wallet management system
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
WO2017148527A1 (en) 2016-03-03 2017-09-08 Nec Europe Ltd. Method for managing data in a network of nodes
US20200327498A1 (en) * 2016-03-21 2020-10-15 National Ict Australia Limited Business Process Execution on a Blockchain Platform
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
AU2017240796A1 (en) 2016-03-31 2018-10-25 Clause, Inc. System and method for creating and executing data-driven legal contracts
EP3440823B1 (en) 2016-04-05 2020-09-02 Zamna Technologies Limited Method and system for managing personal information within independent computer systems and digital networks
US10545739B2 (en) 2016-04-05 2020-01-28 International Business Machines Corporation LLVM-based system C compiler for architecture synthesis
KR102415260B1 (ko) 2016-04-11 2022-06-30 엔체인 홀딩스 리미티드 블록체인에서 안전한 피어-투-피어 통신을 위한 방법
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
EP3452929B1 (en) 2016-05-06 2020-04-01 Innogy Innovation GmbH System for evaluating telemetry data
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
US9967088B2 (en) * 2016-05-23 2018-05-08 Accenture Global Solutions Limited Rewritable blockchain
US20170344988A1 (en) * 2016-05-24 2017-11-30 Ubs Ag System and method for facilitating blockchain-based validation
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
KR101795696B1 (ko) 2016-07-14 2017-11-09 주식회사 코인플러그 메신저 서비스를 통하여 송수신되는 데이터에 대한 기록 및 검증 서비스를 제공하는 방법, 및 이를 이용한 서버
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
WO2018058105A1 (en) * 2016-09-26 2018-03-29 Shapeshift Ag System and method of managing trustless asset portfolios
CN106506146A (zh) 2016-10-26 2017-03-15 北京瑞卓喜投科技发展有限公司 基于区块链技术的交易信息校验方法、装置及系统
CN106534317B (zh) 2016-11-17 2019-09-03 杭州云象网络技术有限公司 一种基于区块链技术的灾备云存储系统构建方法
CN106559211B (zh) * 2016-11-22 2019-12-13 中国电子科技集团公司第三十研究所 一种区块链中隐私保护智能合约方法
CN110383751B (zh) 2017-01-06 2023-05-09 皇家飞利浦有限公司 关于证实的数据的pinocchio/trinocchio
EP3566389B1 (en) 2017-01-06 2021-08-18 Koninklijke Philips N.V. Distributed privacy-preserving verifiable computation
CN106846666B (zh) * 2017-01-18 2019-05-07 北京云知科技有限公司 一种基于区块链的存取款方法
US10880089B2 (en) 2017-03-15 2020-12-29 NuID, Inc. Methods and systems for universal storage and access to user-owned credentials for trans-institutional digital authentication
KR101882802B1 (ko) 2017-04-17 2018-07-27 주식회사 코인플러그 Utxo 기반 프로토콜을 이용한 블록체인 기반의 문서 관리 방법 및 이를 이용한 문서 관리 서버
US10419209B1 (en) * 2017-04-26 2019-09-17 Wells Fargo Bank, N.A. Parallel assurance of blockchain signatures
CN107274184A (zh) 2017-05-11 2017-10-20 上海点融信息科技有限责任公司 基于零知识证明的区块链数据处理
CN107040545B (zh) 2017-05-26 2019-05-31 中国人民解放军信息工程大学 工程文件全生命周期安全保护方法
CN107179932A (zh) 2017-05-26 2017-09-19 福建师范大学 基于fpga高层次综合指令的优化方法及其系统
CN107425967B (zh) * 2017-06-15 2019-08-27 武汉理工大学 一种理论安全的灵活多秘密共享方法
CN107426234A (zh) 2017-08-08 2017-12-01 武汉协鑫新能源电力设计有限公司 一种基于区块链技术的绿色电力认证机制
US10268829B2 (en) 2017-08-11 2019-04-23 Dragonchain, Inc. Security systems and methods based on cryptographic utility token inventory tenure
US10135607B1 (en) 2017-08-11 2018-11-20 Dragonchain, Inc. Distributed ledger interaction systems and methods
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
US10521616B2 (en) 2017-11-08 2019-12-31 Analog Devices, Inc. Remote re-enrollment of physical unclonable functions
CN108009441B (zh) * 2017-11-23 2023-05-30 创新先进技术有限公司 资源转移和资金转移的方法和装置
US10949511B2 (en) * 2017-11-30 2021-03-16 Bank Of America Corporation Multicomputer processing for data authentication using a blockchain approach
US20190180276A1 (en) * 2017-12-07 2019-06-13 Bank Of America Corporation Automated Event Processing Computing Platform for Handling and Enriching Blockchain Data
FR3075534B1 (fr) 2017-12-14 2020-01-10 CopSonic Dispositif de stockage de cles numeriques pour signer des transactions sur une chaine de blocs
FR3098947B1 (fr) * 2019-07-19 2021-09-10 Idemia Identity & Security France Procédé de traitement d’une transaction émise depuis une entité de preuve

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
期刊 Kosba, Ahmed, et al. "Hawk: The blockchain model of cryptography and privacy-preserving smart contracts." 2016 IEEE symposium on security and privacy (SP). IEEE 2016 pages1-31

Also Published As

Publication number Publication date
US20210075610A1 (en) 2021-03-11
US11683164B2 (en) 2023-06-20
TW201928755A (zh) 2019-07-16
ZA202004255B (en) 2023-12-20
US11271729B2 (en) 2022-03-08
US20210075597A1 (en) 2021-03-11
CN111466100A (zh) 2020-07-28
US20230370253A1 (en) 2023-11-16
JP2024063228A (ja) 2024-05-10
CN111466095B (zh) 2024-05-14
KR20200096248A (ko) 2020-08-11
US20220271919A1 (en) 2022-08-25
ZA202004256B (en) 2023-01-25
JP7453911B2 (ja) 2024-03-21
CN117478315A (zh) 2024-01-30
US11888976B2 (en) 2024-01-30
US20240348429A1 (en) 2024-10-17
JP7252233B2 (ja) 2023-04-04
EP3725032A1 (en) 2020-10-21
EP3725032B1 (en) 2021-11-17
WO2019116246A1 (en) 2019-06-20
JP2023068139A (ja) 2023-05-16
US20240195611A1 (en) 2024-06-13
SG11202005564WA (en) 2020-07-29
JP2021507563A (ja) 2021-02-22
EP3725028A1 (en) 2020-10-21
WO2019116187A1 (en) 2019-06-20
CN111466095A (zh) 2020-07-28
JP2021507562A (ja) 2021-02-22
SG11202005567QA (en) 2020-07-29
CN111466100B (zh) 2023-10-31
CN118449685A (zh) 2024-08-06
EP4009577A1 (en) 2022-06-08
KR20200094173A (ko) 2020-08-06

Similar Documents

Publication Publication Date Title
TWI794366B (zh) 用以安全分享密碼材料之系統及方法
KR102687781B1 (ko) 증명 검증에 기초하여 오프-체인 데이터를 인증하기 위한 시스템 및 방법
CN111316615B (zh) 使用调解器计算机系统确保计算机程序正确执行的系统和方法
JP2023179687A (ja) 分散コンピューティングシステム及び方法
EP3966998B1 (en) Hash function attacks
CN110785782A (zh) 使用区块链网络的多轮令牌分发系统和方法
CN113875186A (zh) 知识证明
EP4333368A2 (en) Knowledge proof
CN116349203A (zh) 识别拒绝服务攻击
Keshavarzkalhori et al. Federify: a verifiable federated learning scheme based on zksnarks and blockchain
US11870914B2 (en) Digital signatures
Gauthier et al. Topos: A Secure, Trustless, and Decentralized Interoperability Protocol
EP4366231A2 (en) Computer-implemented system and method for controlling processing steps of distributed system
Yu et al. An Efficient Consortium Blockchain Privacy Protection Scheme Based on Group Signatures and Bulletproofs