TW202034656A - 產生區塊鏈上之安全隨機數的方法 - Google Patents

產生區塊鏈上之安全隨機數的方法 Download PDF

Info

Publication number
TW202034656A
TW202034656A TW109102404A TW109102404A TW202034656A TW 202034656 A TW202034656 A TW 202034656A TW 109102404 A TW109102404 A TW 109102404A TW 109102404 A TW109102404 A TW 109102404A TW 202034656 A TW202034656 A TW 202034656A
Authority
TW
Taiwan
Prior art keywords
verifier
key
value
signature
public key
Prior art date
Application number
TW109102404A
Other languages
English (en)
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
Application filed by 柯賓漢數位金融科技有限公司 filed Critical 柯賓漢數位金融科技有限公司
Publication of TW202034656A publication Critical patent/TW202034656A/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/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • 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
    • 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/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • 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
    • 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/3247Cryptographic 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
    • H04L9/3255Cryptographic 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 using group based signatures, e.g. ring or threshold signatures
    • 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
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/08Randomization, e.g. dummy operations or using noise

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

一種用以產生區塊鏈上複數區塊之隨機數的方法,該方法包含下列步驟:從區塊鏈上選擇包含節點組的公正群;執行分散式金鑰產生程序以在每一節點上產生共享金鑰和公共金鑰,其中公共金鑰更包含一組驗證金鑰;在每一節點上廣播共享簽章;當新區塊產生時,在每一節點執行門檻簽章;以及運算一隨機數,隨機數為門檻簽章的雜湊運算值,門檻簽章係從節點產生的多個部分簽章組合而成的。

Description

產生區塊鏈上之安全隨機數的方法
本發明關於一種用以產生區塊鏈上複數區塊之隨機數的方法和系統。特別是指用於產生不可預測、無偏誤、唯一且可驗證隨機數的隨機數產生方法和系統。
隨機數對於許多應用來說是不可或缺的,特別是在抽獎、博弈、金融科技、遊戲系統、票務系統等。雖然在市場上已經有許多由不同軟體和硬體提供的偽隨機數產生器(pseudorandom number generators,PRNG),但其仍存在一些缺點。舉例來說,有些偽隨機數是可預測的,即使數字滿足真實隨機數的統計行為,也可能會發現某種形式的隨機數,或是某些偽隨機數產生器的輸出無法被驗證。因此,其他使用者必須信任偽隨機數產生器的提供者,這在許多應用程序中是不切實際的。
另一方面,區塊鏈是一種分散式帳本,多個用戶可以在同一帳本上達成共識,而無需彼此信任。在區塊鏈上生成加密安全的隨機來源係具有挑戰性的。現今技術下,開發人員必須依靠一些受信任的第三方進行隨機輸入,例如Oracalize提供的服務,或依靠某些特定的構造,例如接續區塊的雜湊運算值。
因此,需要一種新穎的方法以在區塊鏈上產生隨機數,且該隨機數為不可預測、無偏差、唯一且可驗證的。本發明提供了一種用以產生區塊鏈上複數區塊之隨機數的方法和系統,使區塊鏈上的每一區塊擁有一隨機數。
本發明提供一種用以產生區塊鏈上複數區塊之隨機數的方法,該方法包含下列步驟:從區塊鏈上選擇包含節點組的公正群;執行分散式金鑰產生程序以在每一節點上產生共享金鑰和公共金鑰,其中公共金鑰更包含一組驗證金鑰;在每一節點上廣播共享簽章;當新區塊產生時,在每一節點執行門檻簽章;以及運算一隨機數,隨機數為門檻簽章的雜湊運算值,門檻簽章係從節點產生的多個部分簽章組合而成的。
依據本發明之另一實施例,共享簽章係將共享金鑰及h值代入一方程式sharesign(share key,h)得出,其中h值為新區塊之雜湊運算值。
依據本發明之另一實施例,門檻簽章係將h值、公共金鑰及共享簽章帶入一方程式Combine(h,public key,share signature)得出。
依據本發明之另一實施例,執行分散式金鑰產生程序之步驟更包含:提供複數個驗證者,包含第i個驗證者、第j個驗證者及第k個驗證者;每一驗證者註冊與每一驗證者有關之ID;以及從每一驗證者廣播ID訊息。
依據本發明之另一實施例,執行產生分散式金鑰之步驟更包含:若驗證者其中之一發現ID訊息的數量大於2t+1個且小於3t+1,從每一驗證者產生複數個順序t的私鑰共享(SK i,0,SK i,1 ,...,SK i,n ),其中t為拜占庭問題中,可能有問題數量之值,且複數個私鑰共享的數量與註冊ID的數量相同;經由安全通道發 送每一與驗證者相應的私鑰共享(即SK i,j 係從第i個驗證者發送至第j個驗證者);以及從每一驗證者廣播與私鑰共享相關聯的順序t的主公共金鑰(MPK i =MPK i,0 ,MPK i,1 ,...,MPK i,t )。
依據本發明之另一實施例,執行產生分散式金鑰之步驟更包含:讓每一驗證者使用相對應的主公共金鑰計算公共金鑰共享(PK 0,i ,PK 1,i ,...,PK n,i );以及若每一驗證者驗證私鑰共享與另一驗證者的公鑰共享無關,從每一驗證者廣播投訴訊息(即,若第i個驗證者驗證私鑰共享(SK j,i )與第j個驗證者的公鑰共享(PK j,i )無關,第i個驗證者廣播對第j個驗證者的投訴訊息(CMP i,j ))。
依據本發明之另一實施例,執行產生分散式金鑰之步驟更包含:若第i個驗證者沒有接收到私人金鑰共享(SK j,i ),則第i個驗證者廣播第j個驗證者之消極確認控訴訊息(NCMP i,j );及若第j個驗證者發現第i個驗證者發出之消極確認控訴訊息(NCMP i,j ),第j個驗證者廣播私人金鑰共享(SK j,i )。
依據本發明之另一實施例,執行產生分散式金鑰之步驟更包含:若第k個驗證者接收到私鑰共享(SK j,i )且i值不等於k值,第k個驗證者廣播私鑰共享(SK j,i );若第k個驗證者發現私鑰共享(SK j,i )且i值不等於k值,則讓第k個驗證者執行驗證,驗證私鑰共享(SK j,i )與第j個驗證者之公鑰共享(PK j,i )有關;若驗證失敗,則第k個驗證者廣播j之控訴訊息(CMP k,j );及若第k個驗證者發現第j個驗證者之消極確認控訴訊息(NCMP i,j )、j值不等於k值,且第k個驗證者沒有收到私鑰共享(SK j,i ),則廣播第j個驗證者之消極確認控訴訊息(NCMP k,j )。
依據本發明之另一實施例,執行產生分散式金鑰之步驟更包含:從每一驗證者廣播最終產生分散式金鑰(DKGFinal)訊息;若發送至第j個驗證者的消極確認控訴訊息的數量大於t值,則將第j個驗證者標記為失格驗證者;及若 存在發送至第j個驗證者的控訴訊息(CMPi,j),則將第j個驗證者標記為失格驗證者。
依據本發明之另一實施例,執行產生分散式金鑰之步驟更包含:讓該每一驗證者決定一結合私人金鑰(CSK);讓每一驗證者對最終產生分散式金鑰訊息(DKGFinal message)進行簽章並廣播部分簽章(PSig);及讓每一驗證者決定第j個驗證者的結合公開金鑰(CPK)。
依據本發明之另一實施例,執行產生分散式金鑰之步驟更包含:若第i個驗證者非失格驗證者,則讓第i個驗證者以結合公開金鑰驗證部分簽章(PSig);收集錯誤的部分簽章(PSig),其中部分簽章(PSig)的數量係大於t值;回收門檻簽章;及驗證門檻簽章以決定群組公開金鑰。
本發明另提供執行於區塊鏈的分散式系統,包括:複數個節點;及公正群;其中複數個節點係配置以:從區塊鏈中選擇節點組作為公正群;其中公正群係配置用以:執行分散式金鑰產生程序以在公正群中的每一節點上產生共享金鑰和公共金鑰;在公正群中的每一節點上廣播共享簽章;當新區塊產生時,在公正群中的每一節點執行門檻簽章;以及運算一隨機數,隨機數為門檻簽章的雜湊運算值,門檻簽章係從公正群中的節點產生的多個部分簽章組合而成的。
100:分散式系統
102:網路
108~122:節點
200:程序
202~210:步驟
302:節點
304:區塊鏈
306:隨機數
為了充分理解本發明的本質、優點和較佳實施例,藉由參考圖式將更清楚地理解以下詳細描述。
圖1係按照本發明的例示性實施例之分散式系統結構方塊圖。
圖2係按照本發明的例示性實施例之程序流程圖。
圖3係按照本發明的例示性實施例之分散式系統結構方塊圖。
以下敘述本發明之較佳實施例。透過參考以下實施例及圖式描述本發明。因此本發明並不限於所示之實施例,而是與本文所公開的原理一致。此外,本領域具有通常知識者將建議根據實施例的各種修改或改變,並且將其包括在本發明的精神和範圍以及所附請求項的範圍之內。
圖1係一示意圖,顯示包含有複數個節點108-122(例如可以是個人計算設備、伺服器計算設備,或其他具有足夠處理器和存儲能力以參與系統的其他設備)連接至一網路102。該些節點藉由該網路102彼此互相連接。一分散式系統100,包含該複數個節點108-122,該系統中,交易和記錄以區塊的形式組織。透過使用具有先前區塊雜湊運算值(hash)作為隨機性的Fisher-Yates shuffle演算法,從該複數個節點108-122中選出一公正群。設n為該公正群中節點或成員的數量、該公正群內的競爭者的數量小於t,且建議將門檻值設定為1/2+
Figure 109102404-A0202-12-0005-4
>t/n>1/3。由於惡意的奇偶校驗可由單個節點(或競爭者)控制和完美協調,故該公正群將運行一分散式金鑰產生程序(distributed key generation(DKG))以在每一公正群中的節點產生一共享金鑰及一公共金鑰用以進行門檻簽章,其中該公共金鑰更包含一組驗證金鑰。接著,每一公正群中的節點廣播在一已確認的區塊高度h之一共享簽章。接著,該門檻簽章的雜湊運算值作為該區塊的隨機數。該公正群在每一時期會重新被選取。如本領域具有通常知識者將理解的,本發明可應用於所 有分佈式計算環境,並且無意以任何方式受到圖1的例示性分佈式系統的限制,其係為了說明目的。
圖2為依據本發明之例示性實施例之程序200的流程圖,本領域具有通常知識者可理解圖2之流程圖所示之方法為例示性之實施例,並且可以依據本技術採用其他替代之變化實施例。
程序200從步驟202開始,該公正群從該區塊鏈中選出,且包含在該區塊鏈中的一節點組。在一特定實施例中,透過使用具有先前區塊雜湊運算值(hash)作為隨機性的Fisher-Yates shuffle演算法,從該複數個節點108-122中選出該公正群。在此實施例中,我們需要一個大小為n、競爭者的數量小於t的公正群,且建議的閾值設置為1/2+
Figure 109102404-A0202-12-0006-5
>t/n>1/3。
在步驟204中,該公正群中的每一節點執行一門檻簽章的分散式金鑰產生程序,以產生一共享金鑰及一公共金鑰,其中該公共金鑰更包括一組驗證金鑰。在步驟206中,該公正群中的每一節點廣播一共享簽章,該共享簽章係透過使用概率多項式時間演算法(probabilistic polynomial-time algorithm)或類似之演算法,將該共享金鑰和一h值帶入一方程式sharesign(share key,h)中所得到,其中h為區塊(即先前之區塊)之高度值。
在步驟208中,當一新區塊產生時,該公正群中的每一節點執行一門檻簽章,該門檻簽章係透過使用概率多項式時間演算法(probabilistic polynomial-time algorithm)或類似之演算法,將h值、該公共金鑰及該共享簽章代入一方程式Combine(h,public key,share signature)。
在步驟210中,該公正群中的每一節點計算出一用於區塊的數值,該數值為該門檻簽章的一雜湊運算值,該門檻簽章為該公正群中的複數個節點所產生的部分簽章組合而成,其中該數值即為新區塊之隨機數。
圖3繪示出複數個節點302。一公正群從該複數個節點302中的一部份被選出,該公正群於每一時期中可被重新選出,該公正群係為了於該區塊鏈的該時期所產生。一時期可以是根據區塊鏈304中共識時間內的特定數量的區塊而定或者是固定的。在一時期中用於區塊的該隨機數306可以是由相同公正群所產生的。該公正群可以於一方程式Hash(TSig(Block_hash))中計算該隨機數。該實施例採用具有門檻簽章的改進的可驗證隨機函數(VRF)以產生每一區塊的隨機數。
另一方面,具有門檻簽章協定的可驗證隨機函數(VRF)的總體過程總結如下,其可以為本領域具有通常知識者提供對本實施例的更好的理解。
區塊鏈上形成可驗證函數的隨機數:
1.KeyGen(1 Λ ):每一在公正群中的節點i執行KeyGen(1 Λ )of TSIG且獲得自己的共享金鑰(share-key,SK i )及公共金鑰(public key,(
Figure 109102404-A0202-12-0007-6
,PK))
2.Prove(h,
Figure 109102404-A0202-12-0007-7
,
Figure 109102404-A0202-12-0007-8
,PK):每一節點i廣播其共享簽章ρ i =ShareSign(SK i ,h)並運算:
Figure 109102404-A0202-12-0007-9
,其中S為該公正群的一子集合且|S|=t。接著,用於h的隨機數為Hash(TSign(h))且證明π(h)=TSign(h)。
3.Veri(PK,h,y,π):輸出:
Figure 109102404-A0202-12-0007-10
在一特定實施例中,分散式金鑰產生程序包括下列步驟:
步驟a(ID註冊),在T<0時:複數個驗證者註冊,提供包括一第i個驗證者、一第j個驗證者及一第k個驗證者。每一註冊者註冊其ID(DKGMasterPublicKey);且每一驗證者廣播一ID訊息(DKGMasterPublicKeyReady message)。若其中一個驗證者發現ID訊息的數量大於2t+1,該程序執行下一步驟。
步驟b(私鑰交換),在T=0時:該每一驗證者產生複數個順序t的私鑰共享(SK i,0,SK i,1,...,SK i,n ),其中t值為拜占庭問題中,可能有問題數量之值。該複數個私鑰共享的數量與該ID註冊數的數量相同。該每一私鑰共享係經由一安全通道發送給相對應的驗證者(即SK i,j 係從第i個驗證者發送至第j個驗證者)。該每一驗證者廣播與該私鑰共享相關聯的順序t的一主公共金鑰(MPK i =MPK i,0,MPK i,1...MPK i , t )。
步驟c(控訴),在T=(0,λ)時:該每一驗證者使用相對應的主公共金鑰計算公共金鑰共享(PK 0,i ,PK 1,i ,...,PK n,i ),其中該公共金鑰共享定義為:PK j,i =F(MPK j,i )。若該每一驗證者驗證該私鑰共享與另一驗證者的該公鑰共享無關,則該每一驗證者廣播一投訴訊息。(即,若該第i個驗證者驗證該私鑰共享(SK j,i )與該第j個驗證者的該公鑰共享(PK j,i )無關,該第i個驗證者廣播對該第j個驗證者的一投訴訊息(CMP i,j ))。
步驟d(消極確認控訴(Negative Acknowledgement Complaint)),在T=λ時:若該第i個驗證者沒有接收到該私人金鑰共享(SK j , i ),則該第i個驗證者廣播對該第j個驗證者之消極確認控訴訊息(NCMP i,j );
步驟e(反消極確認控訴),在T=2λ時:若該第j個驗證者發現該第i個驗證者發出之消極確認控訴訊息(NCMP i,j ),該第j個驗證者廣播該私人金鑰共享(SK j,i )。
步驟f(再廣播私鑰),在T=3λ時:若該第k個驗證者接收到該私鑰共享(SK j,i )且首次i值不等於k值,該第k個驗證者廣播該私鑰共享(SK j,i )。
步驟g(執行控訴),在T=4λ時:若該第k個驗證者發現該私鑰共享(SK j,i )且i值不等於k值,則讓該第k個驗證者執行一驗證,驗證該私鑰共享(SK j,i )與該第j個驗證者之公鑰共享(PK j,i )有關;以及若該驗證失敗,則該第k個驗證者廣播對該第j個驗證者之控訴訊息(CMP k,j )及若該第k個驗證者發現該第j個驗證者之該消極確認控訴訊息(NCMP i,j )、j值不等於k值,且該第k個驗證者沒有收到該私鑰共享(SK j,i ),則該第k個驗證者廣播該第j個驗證者之一消極確認控訴訊息(NCMP k,j )。
步驟h(最終化DKG),在T=5λ時:該每一驗證者廣播一最終產生分散式金鑰(DKGFinal)訊息。
步驟i(對CSK簽章),在T=6λ時:該每一驗證者等待直到收到大於2t+1個數量的最終訊息,若發送至該第j個驗證者的消極確認控訴訊息的數量大於t值,則將該第j個驗證者標記為一失格驗證者;及若存在發送至該第j個驗證者的該控訴訊息(CMPi,j),則將該第j個驗證者標記為該失格驗證者。該每一驗證者決定一結合私人金鑰(CSK);該每一驗證者以該CSK對該最後產生分散式金鑰訊息(DKGFinal message)進行簽章並廣播一部分簽章(PSin);及該每一驗證者決定第j個驗證者的一結合公開金鑰(CPK)。
步驟j(門檻簽章),在T=(6λ,∞)時:若該第i個驗證者非該失格驗證者,則讓該第i個驗證者以該結合公開金鑰(CPK)驗證該部分簽章(PSig);該錯誤的部分簽章(PSig)被收集,且若該錯誤的部分簽章(PSig)的數量係大於t值;該門檻簽章則被回收。
步驟k(驗證門檻簽章以決定群組公開金鑰):該門檻簽章被驗證以決定一群組公開金鑰。
另一方面,分散式金鑰產生協定的過程整體如下,其可以為本領域具有通常知識者提供對本實施例的更好的理解。
符號說明(Notations)
λ: MAX(One gossip duration, transaction confirm latency)
Signature: BLS
Curve: CurveFp382_2
n: size of committee
t: number of Byzantine
分散式金鑰產生及門檻簽章協定(DKG and TSIG Protocol)
Phase 1 ID Registration T<0:
Each validator registers its ID (DKGMasterPublicKey i ) with stake. After λ, each validator i broadcasts a DKGMasterPublicKeyReady i message. Validator waits until seeing more than 2t+1 DKGGroupPublicKeyReady message than proceeds to Phase 2.
Phase 2 Secret Key Share Exchange, T = 0:
Each validator i generates n (n = # of ID registered in phase 1) secret key shares (SK i,0 , SK i,1 , ..., SK i,n ) of order t and the secret key share is sent to the corresponding validator (SK i,j is sent to validator j) via a secure channel. Each validator i broadcasts the master public key (MPK i = MPK i,0 , MPK i,1 , ..., MPK i,t ) of order t associated with the secret key shares.
Phase 3 Complaint T = (0, λ):
Each validator i calculates public key shares (PK 0,i , PK 1,i ,..., PK n,i ) using corresponding master public key (PK j,i = F(MPK j,i )). Each validator i verifies if the secret key share SK j,i is associated with the public key share of validator j, PK j,i . If the verification fails, i broadcast complaint of j, CMP i,j .
Phase 4 Nack Complaint T =λ:
If validator i did not receive SK j,i , broadcast nack complaint of j, NCMP i,j .
Phase 5 Anti Nack Complaint T = 2λ:
If validator j sees NCMPi,j for any i, broadcast secret key share SKj,i. Phase 6
Rebroadcast Secret T = 3λ:
If validator k receive SK j,i for the first time for ik, broadcast it again.
Phase 7 Enforce Complaint T = 4λ:
If validator k sees SK j,i for ik, verifies if the secret key share SK j,i is associated with the public key share of validator j, PK j,i . If the verification fails, k broadcast complaint of j, CMP k , j . If validator k sees NCMP i,j for jk and did not receive SK j,i , k broadcast nack complaint of j, NCMP k,j .
Phase 8 DKG Finalize T = 5λ:
Each validator i broadcast a DKGFinal i message.
Phase 9 Sign with CSK T = 6λ:
Validator waits until seeing more than 2t + 1 final message. If there are more than t nack complaints to validator j ((i: for all validator i)), then j is marked as Disqualified. If there is one complaint, CMP i,j , to validator j, then j is marked as Disqualified. Each validator i determines the combined secret key, (k: validator k is not marked as Disqualified). Each validator i sign the message with CSK i and broadcast the partial signature, PSign i . Each validator i determines the combined public key of validator j, (k: validator k is not marked as Disqualified).
Phase 10 TSIG T = (6λ, ∞):
If validator i is not Disqualified, verify PSign i with CPK i . Collect more than t valid PSign i and recover TSIG.
Phase 11 Verify TSIG Determines the group public key, (k: validator k is not marked as Disqualified) Verify TSIG with GPK.
根據本發明,提供一種用以產生區塊鏈上複數區塊之隨機數的方法。本發明提供的該隨機數係具有不可預測、無偏誤、唯一且可驗證之特徵。
關於不可預測,係指發送交易(或配置合約)時,隨機數應與從均勻分佈中採樣的字串沒有區別。
關於無偏誤,係指任何單一使用者都無法影響或更改隨機數,即使他或她任意偏離協定(在我們的具體構造中,使用者數量也可以進行參數化。低於預定門檻值的使用者的任何部分都不能影響隨機數。例如,門檻值可以為1/2。在這種情況下,即使有一半的使用者串通,他們仍然無法偏離協定)。在沒有偏見的情況下,區塊提議者可以調整交易順序,以為其自己的利益創造一個有偏差的隨機數。因此,僅選擇門檻值數量以下區塊的雜湊運算值將不起作用。
關於唯一,係指給定一個特定的區塊,只能生成一個隨機數。若沒有唯一性,使用者可能有多種選擇,並可能為自己的利益選擇最佳選擇。
關於可驗證性,係指每一人都可以驗證隨機數的真實性,甚至是不參與區塊生成的使用者。
最後,區塊鏈保證了隨機數的共識,因此每一使用者都可以就給定區塊的相同隨機數達成共識。隨機數是不可預測,無偏誤,唯一且可驗證的,因此該隨機數是區塊鏈上的安全隨機數。
為了說明之目的本發明提出前述實施例。儘管已經透過某些前述例示性描述了本發明,但不應將其解釋為受其限制。其並不旨在窮舉或限制本 發明的範圍。凡在本發明的精神和原則之內,所作的任何修改、等同拆換、改進等,均應包含在本發明的保護範圍之內。
100:分散式系統
102:網路
108~122:節點

Claims (12)

  1. 一種用以產生區塊鏈上複數區塊之隨機數的方法,該方法包含下列步驟:
    從該區塊鏈上選擇包含一節點組的一公正群;
    執行一分散式金鑰產生程序以在該每一節點上產生一共享金鑰和一公共金鑰,其中該公共金鑰更包含一組驗證金鑰;
    在該每一節點上廣播一共享簽章;
    當一新區塊產生時,在該每一節點執行一門檻簽章;以及
    運算一隨機數,該隨機數為該門檻簽章的一雜湊運算值,該門檻簽章係從該節點產生的多個部分簽章組合而成的。
  2. 如請求項1所述之方法,其中,該共享簽章係將該共享金鑰及一h值代入一方程式sharesign(share key,h)得出,其中該h值為該區塊之一雜湊運算值。
  3. 如請求項2所述之方法,其中,該門檻簽章係將該h值、該公共金鑰及該共享簽章帶入一方程式Combine(h,public key,share signature)得出。
  4. 如請求項1所述之方法,其中,執行該分散式金鑰產生程序之該步驟更包含:
    提供複數個驗證者,包含一第i個驗證者、一第j個驗證者及一第k個驗證者;
    該每一驗證者註冊與該每一驗證者有關之一ID;以及
    從該每一驗證者廣播一ID訊息。
  5. 如請求項4所述之方法,其中,執行該分散式金鑰產生程序之 該步驟更包含:
    若該驗證者其中之一發現該ID訊息的數量大於2t+1個且小於3t+1,從該每一驗證者產生複數個順序t的一私鑰共享(SK i,0,SK i,1 ,...,SK i,n ),其中該t值為拜占庭問題中,可能有問題數量之值,且該複數個私鑰共享的數量與該註冊ID的數量相同;
    經由一安全通道發送每一與該驗證者相應的該私鑰共享(即SK i,j 係從該第i個驗證者發送至該第j個驗證者);以及
    從該每一驗證者廣播與該私鑰共享相關聯的順序t的一主公共金鑰(MPK i =MPK i,0 ,MPK i,1 ,...,MPK i,t )。
  6. 如請求項5所述之方法,其中,執行該分散式金鑰產生程序之該步驟更包含:
    讓該每一驗證者使用相對應的該主公共金鑰計算一公共金鑰共享(PK 0,i ,PK 1,i ,...,PK n,i );以及
    若該每一驗證者驗證該私鑰共享係與另一驗證者的該公鑰共享無關,從該每一驗證者廣播一投訴訊息(即,若該第i個驗證者驗證該私鑰共享(SK j,i )與該第j個驗證者的該公鑰共享(PK j,i )無關,該第i個驗證者廣播對該第j個驗證者的該投訴訊息(CMP i,j ))。
  7. 如請求項6所述之方法,其中,執行該分散式金鑰產生程序之該步驟更包含:
    若該第i個驗證者沒有接收到該私人金鑰共享(SK j,i ),則該第i個驗證者廣播該第j個驗證者之一消極確認控訴訊息(NCMP i,j );以及
    若該第j個驗證者發現該第i個驗證者發出之該消極確認控訴訊息 (NCMP i,j ),該第j個驗證者廣播該私人金鑰共享(SK j,i )
  8. 如請求項7所述之方法,其中,執行該分散式金鑰產生程序之該步驟更包含:
    若該第k個驗證者接收到該私鑰共享(SK j,i )且該i值不等於該k值,該第k個驗證者廣播該私鑰共享(SK j,i );
    若該第k個驗證者發現該私鑰共享(SK j,i )且該i值不等於該k值,則讓該第k個驗證者執行一驗證,驗證該私鑰共享(SK j,i )與該第j個驗證者之該公鑰共享(PK j,i )有關;
    若驗證失敗,則該第k個驗證者廣播對該第j個驗證者之一控訴訊息(CMP k,j );以及
    若該第k個驗證者發現該第j個驗證者之該消極確認控訴訊息(NCMP i,j )、該j值不等於該k值,且該第k個驗證者沒有收到該私鑰共享(SK j,i ),則廣播該第j個驗證者之一消極確認控訴訊息(NCMP k,j )。
  9. 如請求項8所述之方法,其中,執行該分散式金鑰產生程序之該步驟更包含:
    從該每一驗證者廣播一最終產生分散式金鑰(DKGFinal)訊息;
    若發送至該第j個驗證者的該消極確認控訴訊息的數量大於該t值,則將該第j個驗證者標記為一失格驗證者;以及
    若存在發送至該第j個驗證者的該控訴訊息(CMPi,j),則將該第j個驗證者標記為該失格驗證者。
  10. 如請求項9所述之方法,其中,執行該分散式金鑰產生程序之該步驟更包含:
    讓該每一驗證者決定一結合私人金鑰(CSK);
    讓該每一驗證者對該最終產生分散式金鑰訊息(DKGFinal message)進行簽章並廣播該部分簽章(PSig);以及
    讓該每一驗證者決定該第j個驗證者的一結合公開金鑰(CPK)。
  11. 如請求項10所述之方法,其中,執行該分散式金鑰產生程序之該步驟更包含:
    若該第i個驗證者非該失格驗證者,則讓該第i個驗證者以該結合公開金鑰(CPK)驗證該部分簽章(PSig);
    收集錯誤的該部分簽章(PSig);
    當錯誤的該部分簽章(PSig)的數量係大於該t值,回收該門檻簽章;以及
    驗證該門檻簽章以決定一群組公開金鑰。
  12. 一種執行於區塊鏈的分散式系統,包括:
    複數個節點;及
    一公正群;
    其中該複數個節點係配置以:從該區塊鏈中選擇一節點組作為該公正群;
    其中該公正群係配置用以:執行一分散式金鑰產生程序以在該公正群中的該每一節點上產生一共享金鑰和一公共金鑰;在該公正群中的該每一節點上廣播一共享簽章;當一新區塊產生時,在該公正群中的每個節點執行一門檻簽章;以及運算一隨機數,該隨機數為該門檻簽章的一雜湊運算值,該門檻簽章係從該公正群中的該節點產生的複數個部分簽章組合而成的。
TW109102404A 2019-01-31 2020-01-22 產生區塊鏈上之安全隨機數的方法 TW202034656A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201962799171P 2019-01-31 2019-01-31
US62/799,171 2019-01-31

Publications (1)

Publication Number Publication Date
TW202034656A true TW202034656A (zh) 2020-09-16

Family

ID=71835820

Family Applications (1)

Application Number Title Priority Date Filing Date
TW109102404A TW202034656A (zh) 2019-01-31 2020-01-22 產生區塊鏈上之安全隨機數的方法

Country Status (2)

Country Link
US (1) US20200252211A1 (zh)
TW (1) TW202034656A (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210336789A1 (en) * 2020-03-30 2021-10-28 Facebook, Inc. Deterministic sparse-tree based cryptographic proof of liabilities
US11632243B1 (en) * 2020-03-31 2023-04-18 Juniper Networks, Inc. Multi-key exchange
CN112257095B (zh) * 2020-11-23 2022-03-22 中电万维信息技术有限责任公司 一种联盟链共识节点的选择方法
CN113128850B (zh) * 2021-04-02 2024-04-19 深圳市易讯天空网络技术有限公司 一种彩票流程管理方法、***、终端设备及存储介质
CN113867690B (zh) * 2021-12-07 2022-03-04 中移(上海)信息通信科技有限公司 一种区块链中随机数的生成方法、装置及区块链节点
KR102655026B1 (ko) * 2022-05-16 2024-04-05 충남대학교산학협력단 다자간 세션 키 동의 방법
WO2024004116A1 (ja) * 2022-06-30 2024-01-04 日本電気株式会社 鍵発行装置、情報処理システム、方法及びコンピュータ可読媒体
WO2024087347A1 (zh) * 2022-10-24 2024-05-02 杭州舜时科技有限公司 一种区块链生成方法、***及相应数据存储方法和***

Also Published As

Publication number Publication date
US20200252211A1 (en) 2020-08-06

Similar Documents

Publication Publication Date Title
TW202034656A (zh) 產生區塊鏈上之安全隨機數的方法
CN110391911B (zh) 区块链匿名投票***及方法
Ruffing et al. P2P mixing and unlinkable bitcoin transactions
CN107508686B (zh) 身份认证方法和***以及计算设备和存储介质
CN109194478B (zh) 一种非对称环境下多方联合生成sm9数字签名的方法
Zhang et al. Efficient many-to-one authentication with certificateless aggregate signatures
US6687822B1 (en) Method and system for providing translation certificates
CN109660361B (zh) 一种对称环境下多方联合生成sm9数字签名的方法
CN110012126B (zh) 一种基于区块链技术的dns***
CN105827402B (zh) 一种分布式公开可验证随机数生成方法
US20130322621A1 (en) Private key generation apparatus and method, and storage media storing programs for executing the methods
Abdalla et al. Verifiable random functions: Relations to identity-based key encapsulation and new constructions
CN113612604B (zh) 面向异步网络的安全分布式随机数生成方法及装置
JP2005253083A (ja) 新しいフェア・ブラインド署名プロセス
CN111416710B (zh) 一种应用于多接收端的无证书可搜索加密方法和***
Syta et al. Security analysis of accountable anonymity in dissent
Blass et al. Borealis: Building block for sealed bid auctions on blockchains
US20220158842A1 (en) Distributed network with blinded identities
Huang et al. P 2 OFE: Privacy-preserving optimistic fair exchange of digital signatures
Huang et al. Efficient optimistic fair exchange secure in the multi-user setting and chosen-key model without random oracles
Cui et al. Escrow free attribute-based signature with self-revealability
CN116391346A (zh) 秘密分享的重新分发
Ki et al. Constructing Strong Identity‐Based Designated Verifier Signatures with Self‐Unverifiability
Hu et al. Identity-preserving public integrity checking with dynamic groups for cloud storage
Killer et al. Æternum: A decentralized voting system with unconditional privacy