TW202034651A - 分散式系統中資訊驗證方法 - Google Patents
分散式系統中資訊驗證方法 Download PDFInfo
- Publication number
- TW202034651A TW202034651A TW108140208A TW108140208A TW202034651A TW 202034651 A TW202034651 A TW 202034651A TW 108140208 A TW108140208 A TW 108140208A TW 108140208 A TW108140208 A TW 108140208A TW 202034651 A TW202034651 A TW 202034651A
- Authority
- TW
- Taiwan
- Prior art keywords
- value
- function
- node
- nodes
- block
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/12—Accounting
-
- 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/088—Usage controlling of secret information, e.g. techniques for restricting cryptographic keys to pre-authorized uses, different access levels, validity of crypto-period, different key- or password length, or different strong and weak cryptographic algorithms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
- G06F21/645—Protecting data integrity, e.g. using checksums, certificates or signatures using a third party
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/02—Payment architectures, schemes or protocols involving a neutral party, e.g. certification authority, notary or trusted third party [TTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/04—Payment circuits
- G06Q20/06—Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
- G06Q20/065—Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/30—Payment architectures, schemes or protocols characterised by the use of specific devices or networks
- G06Q20/36—Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
- G06Q20/367—Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes
- G06Q20/3678—Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes e-cash details, e.g. blinded, divisible or detecting double spending
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3829—Payment protocols; Details thereof insuring higher security of transaction involving key management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
- H04L9/3239—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2147—Locking files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q2220/00—Business processing using cryptography
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Computer Security & Cryptography (AREA)
- Finance (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Marketing (AREA)
- Technology Law (AREA)
- Economics (AREA)
- Development Economics (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本發明提供一種用於分散式系統中之節點發布新區塊的方法,其中在該系統中,交易和記錄以區塊的形式組織。該方法包含以下步驟:由一共同參考字串(CRS)決定一R值;該節點以一私鑰計算與一狀態相關聯的一s值,其中該私鑰係與該節點相對應的一私人簽章金鑰,該s值僅能由該節點以該私鑰計算得到;該節點將該s值帶入一方程式H計算得到一r值,其中該r值對於其他節點為不可預測且獨特;及將該R值及r值帶入一方程式V以判斷該節點是否獲得發布該新區塊的一權利。
Description
本發明關於一種用於分散式系統中之節點被允許發布新區塊的方法,其中該分散式系統之交易及紀錄由區塊組成。特別是透過共同參考字串及可驗證隨機函數發布新區塊給區塊鏈的方法。
複數區塊鏈或單一區塊鏈是一種分散式數據庫,其包含一持續增加的資料紀錄列表。每個資料記錄均受到保護,以防篡改和修改。複數區塊鏈可運用於公共交易帳本,其記錄以加密方式運行。這樣的區塊鏈系統是必須有容錯能力的狀態複製機器。設計一區塊鏈系統時,通常在分散性、可擴展性和安全性之間進行權衡,在區塊鏈中被稱為三個難題,區塊鏈難題是加密貨幣所面臨的最大挑戰之一。
區塊鏈系統正面臨挑戰,以在現實世界中展現出嚴格的穩健性和高性能。許多應用程序要求低交易確認延遲時間和高交易流量。但是,大多數區塊鏈系統不滿足這些條件。例如,以太坊(Ethereum)的確認延遲時間(具有傳統的分鐘級等待時間)約為5到10分鐘,並且吞吐量被限制為每秒約30個交易。相比之下,某些區塊鏈系統可實現高效能,但會犧牲系統的穩健性。例如,EOS
可以實現高效能,但其只能在21個超級節點上運行,並且容易受到DDoS攻擊。PCT國際公開號2017/192837公開了分散且具有穩健安全性的Algorand的技術,該技術在此引用作為參考,但是Algorand的吞吐量受到限制。
因此,需要一種新穎的區塊鏈系統,該系統在現實世界環境中實現高度可擴展性同時又保持分散性和穩健性。本發明提供了一種方法,該方法允許節點在分佈式系統中發布新的區塊,在該系統中,交易和記錄以區塊的形式組織,以實現高度分散和低延遲。
本發明提供一種允許節點發布新區塊的方法,運行於包含多個區塊的分散式系統,該方法包含:由共同參考字串決定R值;在節點以私鑰計算出與狀態值相關聯的s值;在節點將s值帶入H函數計算出r值;及將R值及r值帶入V函數以判斷節點是否獲得發布新區塊的權利;其中,私鑰係與節點相關聯之私人簽章金鑰;s值僅可藉由節點以私鑰計算得出;r值對於其他節點為不可預測且獨特。
依據本發明之另一實施例,r值可藉由公鑰及s值所驗證。狀態值可定義為區塊的分片碼、鏈碼或高度值。
依據本發明之另一實施例,共同參考字串係在每一時期中,由確定性演算法產生之公開隨機數。時期可由特定數量之區塊組成。
依據本發明之另一實施例,共同參考字串可被定義為:R i =Hash(TSig(R i-1)),其中R i 係產生用於新區塊,TSig(‧)為門檻簽章函數,函數之輸入為在先前區塊時期產生之一組分享簽章。
依據本發明之另一實施例,共同參考字串可被定義為:R i =(Sig_{authority}(R i-1)),其中R i 係產生用於該新區塊。
依據本發明之另一實施例,H函數為雜湊函數。V函數可被定義為:|R i -Hash(Sig sk (status))|,其中R i 為R值且Hash(Sig sk (status))可被公鑰所驗證。
依據本發明之另一實施例,當在節點藉由V函數所得出的計算值與在其他節點藉由V函數所得出的計算值相比為最小值,此節點獲得建立新區塊的權利。該些區塊屬於單一區塊鏈。
本發明另提出一種允許節點發布新區塊的方法,運行於包含多個區塊的分散式系統,該方法包含:由共同參考字串決定R值;在節點以私鑰計算出與狀態值相關聯的s值;在節點將s值帶入H函數計算出r值;及將R值及r值帶入V函數以判斷節點是否獲得發布新區塊的權利。其中,s值可被其他節點所驗證。
依據本發明之另一實施例,r值為不可預測且獨立於其他節點。r值可藉由公鑰及s值所驗證。
依據本發明之另一實施例,狀態值可定義為區塊的分片碼、鏈碼或高度值。
依據本發明之另一實施例,共同參考字串係在每一時期中,由確定性演算法產生之公開隨機數。時期由特定數量之區塊組成。
依據本發明之另一實施例,共同參考字串可被定義為:R i =Hash(TSig(R i-1)),其中R i 係產生用於新區塊,TSig(‧)為門檻簽章函數,函數之輸入為在先前區塊時期產生之一組分享簽章。
依據本發明之另一實施例,共同參考字串可被定義為:R i =(Sig_{authority}(R i-1)),其中R i 係產生用於新區塊。
依據本發明之另一實施例,H函數為雜湊函數。V函數可被定義為:|R i -Hash(Sig(status))|,其中R i 為R值且Hash(Sig(status))可被公鑰所驗證。
依據本發明之另一實施例,當在節點藉由V函數所得出的計算值與在其他節點藉由V函數所得出的計算值相比為最小值,節點獲得建立新區塊的權利。其中,該些區塊屬於單一區塊鏈。
本發明另提出一種分散式系統,系統包含:複數個第一節點,用以由共同參考字串確定R值;及複數個第二節點,用以計算出與狀態值相關聯的s值、藉由將s值帶入H函數計算出r值、以及藉由將R值及r值帶入V函數以允許第二節點中其中之一發布新區塊;其中複數個第一節點及複數個第二節點經由網路互相連結。
100:分散式系統
102:網路
104:共同參考字串
106:驗證組
108~122:節點
200:程序
202~208:步驟
300:程序
302~308:步驟
400:時序
402:單一區塊鏈
404~408:隨機數
410~416:時期
418:CRS鏈
為了充分理解本發明的本質、優點和較佳實施例,藉由參考圖式將更清楚地理解以下詳細描述。
圖1係按照本發明的例示性實施例之分散式系統結構方塊圖。
圖2係按照本發明的例示性實施例之程序流程圖。
圖3係按照本發明的另一例示性實施例之程序流程圖。
圖4係按照本發明的例示性實施例之建立區塊鏈的時序圖。
以下敘述本發明之較佳實施例。透過參考以下實施例及圖式描述本發明。因此本發明並不限於所示之實施例,而是與本文所公開的原理一致。此外,本領域具有通常知識者將建議根據實施例的各種修改或改變,並且將其包括在本發明的精神和範圍以及所附請求項的範圍之內。
圖1係一示意圖,顯示包含有複數個節點108-122(例如可以是裝置、工作站、電腦或本技術領域俗稱的礦工)連接至一網路102,該些節點藉由該網路102彼此互相連接。一分散式系統100,包含複數個節點108-122,該系統中,交易和記錄以區塊的形式組織。在該分散式系統100中,使用者可透過其擁有的一對公鑰及私鑰被獨立地辨識出,其中該私鑰係與該節點108-122其中之一相關聯的一私人簽章金鑰。該節點108-122的所有使用者皆可以傳送及接收從其他使用者發出的權益(stake)。本發明提出的區塊鏈藉由一特定的使用者組S node所維持,其中該組S node中的成員稱為節點。所有的使用者皆可驗證該區塊鏈的正確性。
本發明提供兩個特定之節點組:CRS(共同參考字串)組S CRS 104及驗證組(S notary)106(一節點可同時屬於該兩種節點組)。該分散式系統之共識係基於參與度證明(proof-of-participation),亦即,每一節點擁有同樣的機率提出一區塊,該些節點108-122中的其中之一節點可將一批交易打包至一區塊。如果該區塊是可以被選擇的候選者,則該節點可以提出該區塊(即若該區塊被選擇並成為區塊鏈中的區塊則允許該節點發布該區塊),該區塊可屬於一單一區塊鏈。SCRS 104中的成員負責更新該CRS,Snotary 106中的成員擁有提出一區塊的權利以及負責決定哪個區塊可以被選擇至該單一區塊鏈。
圖2為依據本發明之例示性實施例之程序200的流程圖,本領域具有通常知識者可理解圖2之流程圖所示之方法為例示性之實施例,並且可以依據本技術採用其他替代之變化實施例。程序200從步驟202開始,SCRS中的成員從一共同參考字串(CRS)產生一R值,該CRS係藉由確定性演算法在每一時期中產生的一公開隨機數,在該分散式系統中,在之後的任何時期沒有任何使用者可以預測該CRS。一時期係由特定數量之區塊所組成。在一特定實施例中,時期i的CRS可以R i =Hash(TSig(R i-1))之方程式進行更新,其中Ri係產生用於該新區塊,Hash(‧)係一雜湊函數,其可將任意長的字串變換成固定長度的二進制字串,而TSig(‧)係一門檻簽章函數,其輸入為在先前區塊時期產生之一組分享簽章(即該CRS節點依據先前時期的結果計算出的隨機數)。在另一特定實施例中,該共同參考字串在權威證明(Proof-of-Authority)區塊鏈下可被定義為R i =(Sig_{authority}(R i-1)),其中Ri係產生用於該新區塊。
在步驟204中,Snotary中的每一節點以一私鑰計算出與一狀態值相關聯的一s值,且該狀態值為該區塊之公開可預測資訊(例如該區塊的一分片碼、一鏈碼或一高度值)。在一特定實施例中,Snotary中的每一節點以其擁有的私鑰sk對該狀態值進行簽章,即s=Sig sk (status),其中Sigsk(status)為二進制字串且可被稱為以私鑰sk對狀態值簽出的數位簽章。
在步驟206中,Snotary中的每一節點將該s值帶入一H函數計算出一r值,其中該H函數可以是一雜湊函數。該r值可以公鑰驗證且該s值可被其他節點所驗證。每一節點所計算出的r值對於其他節點為不可預測且獨特。
在步驟208中,Snotary中的每一節點藉由將R值及r值代入V函數決定哪一個節點可以獲得發布一新區塊的權利。該V函數為一可驗證隨機函數
(verifiable random function,VRF),定義為|R i -Hash(Sig sk (status))|,其中Ri為R值,且Hash(Sig sk (status))可以公鑰驗證。當在該節點藉由該V函數所得出的一計算值與在其他節點藉由該V函數所得出的計算值相比為最小值,該節點獲得建立該新區塊的該權利。可以下列方程式進行決定哪一個節點可以獲得發
布新區塊的權利:,其中l q為獲得
該權利的節點q或節點q之領導者,U q為簽章有效的節點組,Sigskj(status)為在節點j以其私鑰對該狀態值簽出的數位簽章。
該實施例採用VRF進行決定節點q可以發布一區塊,其用於使通訊成本最小化,以便大量用戶可以加入該協議。該決議與回合索引無關,因此不需要節點於每一輪提出其值。因此,除了第一輪,每一輪的運行時間可降低至2λ,其中λ為用於任意兩個正確節點之間之訊息的時間限制。該區塊可屬於一單一區塊鏈。
本發明提出的VRF相較於先前技術之VRF可具有三個優點。第一,本發明提出的VRF是較公平的。先前技術之VRF為Hash(Sig skj (Q i -1,x)),其中Q i -1為從先前的區塊得到的隨機數。對抗者是否可以提出一區塊取決於該對抗者區塊的隨機數,此為難以克服的問題。如果隨機數對於拜占庭節點具有優勢(例如,為下一個區塊提出一個區塊的可能性),則對抗者會提出該區塊。因此對抗者的整體優勢增加到(1/3)/(1-1/3)=1/2。其主要問題在於提出者同時決定區塊及隨機數。據此,本實施例將提出區塊和生成隨機數的許可分開,以避免類似的偏差攻擊。第二,該配置更靈活地計算函數,每一使用者皆可隨時針對任何狀態計算VRF的一部分,即Hash Sig skj (x)。在每一時期開始時,任何使用者或節點可以得到該時期的CRS並且計算該時期提出區塊的可能性,然而先前技
術的VRF需要前一時期的Q i -1值才能計算出Q i 值。第三,該配置具有更好的空間消耗,本實施例在一時期中對許多區塊使用相同的隨機數,因此,藉由一個常數降低了空間複雜度。
圖3為依據本發明之例示性實施例之程序300的流程圖,本領域具有通常知識者可理解圖3之流程圖所示之方法為例示性之實施例,並且可以依據本技術採用其他替代之變化實施例。
程序300從步驟302開始,SCRS中的成員從一共同參考字串(CRS)產生一R值,該CRS係藉由確定性演算法在每一時期中產生的一公開隨機數,在該分散式系統中,在之後的任何時期沒有任何使用者可以預測該CRS。一時期係由特定數量之區塊所組成。在一特定實施例中,時期i的CRS可以R i =Hash(TSig(R i-1))之方程式進行更新,其中Ri係產生用於該新區塊,TSig(‧)係一門檻簽章函數,其輸入為在先前區塊時期產生之一組分享簽章(即該CRS節點依據先前時期的結果計算出的隨機數)。在另一特定實施例中,該共同參考字串在權威證明(Proof-of-Authority)區塊鏈下可被定義為R i =(Sig_{authority}(R i-1)),其中Ri係產生用於該新區塊。
在步驟304中,Snotary中的每一節點以一私鑰計算出與一狀態值相關聯的一s值,且該狀態值為該區塊之公開可預測資訊(例如該區塊的一分片碼、一鏈碼或一高度值),其中該s值可被其他節點所驗證。在一特定實施例中,Snotary中的節點其中之一節點q計算出該s值,且其他節點可以該節點所公開的公鑰pk q 進使用零資訊證明(zero-knowledge proofs)的方式驗證該s值(零知識證明:要證明的一方,通常稱為PROVER,以說服另一方,即VERIFIER,證明PROVER知道一些事實,而沒有向VERIFIER透露有關其知識的任何信息)。
在步驟306中,Snotary中的每一節點將該s值帶入一H函數計算出一r值,其中該H函數可以是一雜湊函數。該r值可以公鑰驗證且該s值可被其他節點所驗證。每一節點所計算出的r值對於其他節點為不可預測且獨特。
在步驟308中,Snotary中的每一節點藉由將R值及r值代入V函數決定哪一個節點可以獲得發布一新區塊的權利。該V函數為一可驗證隨機函數(verifiable random function,VRF),定義為|R i -Hash(Sig sk (status))|,其中Ri為R值,且Hash(Sig sk (status))可以公鑰驗證。當在該節點藉由該V函數所得出的一計算值與在其他節點藉由該V函數所得出的計算值相比為最小值,該節點獲得建立該新區塊的該權利。可以下列方程式進行決定哪一個節點可以獲得發
布新區塊的權利:,其中l q為獲得
該權利的節點q或節點q之領導者,U q為簽章有效的節點組,Sigskj(status)為在節點j以其私鑰對該狀態值簽出的數位簽章。
該實施例提供最小化的通訊成本,以便大量用戶可以加入該協議。該決議與回合索引無關,因此不需要節點於每一輪提出其值。因此,除了第一輪,每一輪的運行時間可降低至2λ,其中λ為用於任意兩個正確節點之間之訊息的時間限制。該區塊可屬於一單一區塊鏈。
圖4為按照本發明的例示性實施例之時序圖。本領域具有通常知識者可理解圖4之時序圖所示之方法為例示性之實施例,並且可以依據本技術採用其他替代之變化實施例。
時序400顯示本發明用以建立一單一區塊鏈的方法,該方法提供:一單一區塊鏈402;一CRS鏈418及其中的複數個隨機數R i 404,R i+1 406及
R i+2 ;複數個時期:時期i-1 410,時期i 412,時期i+1 414及時期i+2 416;及複數
個驗證節點組、及。
任何具有足夠籌碼的使用者可註冊其擁有的公鑰在區塊鏈402中。該使用者想要進入或離開Snode可以宣告其請求,該請求會被記錄在該些區塊中。若該節點擁有足夠籌碼且已經註冊一驗證公鑰,該節點被稱為驗證節點。
該可在時期i 412藉由和該些區塊進行更新。
SCRS中的成員負責更新該CRS鏈418。Snotary中的成員具有提出區塊的權利及負責決定誰的區塊可以被選擇給該單一區塊鏈402。誰的區塊可以被選擇的決定權係藉由一公開可預測資訊狀態值、R i 404及該私鑰所決定。Snotary中的節點可局部地計算該值|R i -Hash(Sig skq (status))|。
SCRS及Snotary中的成員可在每個時期被重選,每個時期i對應於CRS鏈418的隨機數Ri 404。當SCRS重選時,SCRS中的成員會在下一時期更新CRS
鏈418。在一特別實施例中,及分別為時期i412之CRS組及驗證組。
該、該及隨機數R i 404在時期i412開始前就已決定。當時期i412開始
時,該中的成員以R i+1=Hash(TSig(R i ))產生隨機數R i+1 406,其中TSig(R i )
為該中的節點所簽出的門檻簽章。在隨機數R i+1 406被決定後,及
可從該以隨機數R i+1 406藉由洗牌演算法(Fisher-Yate shuffle)選出。最後,
及中的成員分別運行門檻簽章概念的金鑰產生演算法。
根據本發明,節點透過使用共同參考字串(CRS)和可驗證隨機函數(VRF)來發布用於建構一協議單一鏈。其最小化通訊成本且降低時間限制,故能達到高分散性以及低延遲。
為了說明之目的本發明提出前述實施例。儘管已經透過某些前述例示性描述了本發明,但不應將其解釋為受其限制。其並不旨在窮舉或限制本發明的範圍。凡在本發明的精神和原則之內,所作的任何修改、等同拆換、改進等,均應包含在本發明的保護範圍之內。
100:分散式系統
102:網路
104:共同參考字串
106:驗證組
108-122:節點
Claims (31)
- 一種用於分散式系統中之節點發布新區塊的方法,其中該分散式系統包含複數個區塊,該方法包含:由一共同參考字串決定一R值;在該節點以一私鑰計算出與一狀態值相關聯的一s值;在該節點將該s值帶入一H函數計算出一r值;及將該R值及該r值帶入一V函數以判斷該節點是否獲得發布該新區塊的一權利。
- 如請求項1所述之方法,其中,該私鑰係與該節點相關聯之一私人簽章金鑰。
- 如請求項2所述之方法,其中,該s值僅可藉由該節點以該私鑰計算得出。
- 如請求項2所述之方法,其中,該r值對於其他節點為不可預測且獨特。
- 如請求項1所述之方法,其中,該r值可藉由一公鑰及該s值所驗證。
- 如請求項1所述之方法,其中,該狀態值可定義為該區塊的一分片碼。
- 如請求項1所述之方法,其中,該狀態值可定義為該區塊的一鏈碼。
- 如請求項1所述之方法,其中,該狀態值可定義為該區塊的一高度值。
- 如請求項1所述之方法,其中,該共同參考字串係在每一時期中,由一確定性演算法產生之一公開隨機數。
- 如請求項9所述之方法,其中,該時期由一特定數量之區塊組成。
- 如請求項10所述之方法,其中,該共同參考字串可被定義為:R i =Hash(TSig(R i-1)),其中R i 係產生用於該新區塊,TSig(‧)為一門檻簽章函數,該函數之一輸入為在先前區塊時期產生之一組分享簽章。
- 如請求項10所述之方法,其中,該共同參考字串可被定義為:R i =(Sig_{authority}(R i-1)),其中R i 係產生用於該新區塊。
- 如請求項1所述之方法,其中,該H函數為一雜湊函數。
- 如請求項13所述之方法,其中,該V函數可被定義為:|R i -Hash(Sig sk (status))|,其中R i 為該R值且Hash(Sig sk (status))可被一公鑰所驗證。
- 如請求項14所述之方法,其中,當在該節點藉由該V函數所得出的一計算值與在其他節點藉由該V函數所得出的計算值相比為最小值,該節點獲得建立該新區塊的該權利。
- 如請求項14所述之方法,其中,該些區塊屬於一單一區塊鏈。
- 一種用於分散式系統中之節點發布新區塊的方法,其中該分散式系統包含複數個區塊,該方法包含:由一共同參考字串決定一R值;在該節點以一私鑰計算出與一狀態值相關聯的一s值,其中,該s值可被其他節點所驗證;在該節點將該s值帶入一H函數計算出一r值;及將該R值及該r值帶入一V函數以判斷該節點是否獲得發布該新區塊的一權利。
- 如請求項17所述之方法,其中,該r值對於其他節點為不可預測且獨特。
- 如請求項17所述之方法,其中,該r值可藉由一公鑰及該s值所驗證。
- 如請求項17所述之方法,其中,該狀態值可定義為該區塊的一分片碼。
- 如請求項17所述之方法,其中,該狀態值可定義為該區塊的一鏈碼。
- 如請求項17所述之方法,其中,該狀態值可定義為該區塊的一高度值。
- 如請求項17所述之方法,其中,該共同參考字串係在每一時期中,由一確定性演算法產生之一公開隨機數。
- 如請求項23所述之方法,其中,該時期由一特定數量之區塊組成。
- 如請求項24所述之方法,其中,該共同參考字串可被定義為:R i =Hash(TSig(R i-1)),其中R i 係產生用於該新區塊,TSig(‧)為一門檻簽章函數,該函數之一輸入為在先前區塊時期產生之一組分享簽章。
- 如請求項24所述之方法,其中,該共同參考字串可被定義為:R i =(Sig_{authority}(R i-1)),其中R i 係產生用於該新區塊。
- 如請求項17所述之方法,其中,該H函數為一雜湊函數。
- 如請求項27所述之方法,其中,該V函數可被定義為:|R i -Hash(Sig(status))|,其中R i 為該R值且Hash(Sig(status))可被一公鑰所驗證。
- 如請求項27所述之方法,其中,當在該節點藉由該V函數所得出的一計算值與在其他節點藉由該V函數所得出的計算值相比為最小值,該節點獲得建立該新區塊的該權利。
- 如請求項29所述之方法,其中,該些區塊屬於一單一區塊鏈。
- 一種包含複數個區塊的分散式系統,該系統包含:複數個第一節點,用以由一共同參考字串確定一R值;複數個第二節點,用以計算出與一狀態值相關聯的一s值、藉由將該s值帶入一H函數計算出一r值、以及藉由將該R值及該r值帶入一V函數以允許該第二節點中其中之一發布一新區塊;其中該複數個第一節點及該複數個第二節點經由一網路互相連結。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862757423P | 2018-11-08 | 2018-11-08 | |
US62/757,423 | 2018-11-08 |
Publications (1)
Publication Number | Publication Date |
---|---|
TW202034651A true TW202034651A (zh) | 2020-09-16 |
Family
ID=70552113
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW108140208A TW202034651A (zh) | 2018-11-08 | 2019-11-06 | 分散式系統中資訊驗證方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20200153615A1 (zh) |
TW (1) | TW202034651A (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020197514A1 (en) * | 2019-03-27 | 2020-10-01 | Koc Universitesi | A distributed hash table based blockchain architecture for resource constrained environments |
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 |
-
2019
- 2019-11-06 TW TW108140208A patent/TW202034651A/zh unknown
- 2019-11-08 US US16/678,645 patent/US20200153615A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
US20200153615A1 (en) | 2020-05-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111144881B (zh) | 对资产转移数据的选择性访问 | |
JP7289298B2 (ja) | 低エントロピーパスワードを用いてブロックチェーントランザクションを許可するためのコンピュータ実装されたシステム及び方法 | |
Noether et al. | Ring confidential transactions | |
US11985225B2 (en) | Computer-implemented systems and methods for using veiled values in blockchain | |
JP7493014B2 (ja) | 複数のストレージノードにわたる大きいブロックチェーンのセキュアな記憶を可能にする、コンピュータにより実現されるシステム及び方法 | |
CN112257095B (zh) | 一种联盟链共识节点的选择方法 | |
JP2020504927A (ja) | イベントの削除を可能にする分散データベースのための方法および装置 | |
JP2023504535A (ja) | アイデンティティ(id)ベース公開鍵生成プロトコル | |
CN114982193A (zh) | 使用区块链事务的数字合约 | |
CN109861829B (zh) | 支持动态更新的云数据公正审计系统及其审计方法 | |
JP6651042B1 (ja) | 複数のノードを有する分散ネットワークに資産の移転を表すトランザクションを記憶する方法及びそのためのプログラム並びに当該分散ネットワークを構成するためのノード | |
US20220086009A1 (en) | Method for generating stateful hash based signatures of messages to be signed | |
US20230006836A1 (en) | Multi-party and multi-use quantum resistant signatures and key establishment | |
CN111566680A (zh) | 有消息凭证的区块链 | |
CN114640462A (zh) | 区块链隐私保护方法、装置、电子设备及存储介质 | |
TW202034651A (zh) | 分散式系統中資訊驗證方法 | |
CN115211073A (zh) | 公钥生成方法 | |
CN116349203A (zh) | 识别拒绝服务攻击 | |
CN112567706A (zh) | 用于跨计算机网络任务分配的基于累加器协议的计算机实现的系统和方法 | |
JP2022551874A (ja) | セキュアな共生(Symbiosis)マイニングのための方法および装置 | |
CN113939821A (zh) | 用于在工作量证明区块链网络上进行非并行挖掘的系统和方法 | |
Mihaljevic | A blockchain consensus protocol based on dedicated time-memory-data trade-off | |
JP2002529778A (ja) | 共有無作為性の分散暗号化への組み込み | |
KR102349014B1 (ko) | 고속 동기화 가능 탈중앙화 분산 데이터베이스 구성 방법 및 시스템 | |
CN115943609A (zh) | 区块链网络中中毒交易的区块传播 |