TWI782701B - 區塊鏈錢包的非互動式批核系統及其方法 - Google Patents
區塊鏈錢包的非互動式批核系統及其方法 Download PDFInfo
- Publication number
- TWI782701B TWI782701B TW110133811A TW110133811A TWI782701B TW I782701 B TWI782701 B TW I782701B TW 110133811 A TW110133811 A TW 110133811A TW 110133811 A TW110133811 A TW 110133811A TW I782701 B TWI782701 B TW I782701B
- Authority
- TW
- Taiwan
- Prior art keywords
- host
- signature
- value
- user
- message
- Prior art date
Links
Images
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
一種區塊鏈錢包的非互動式批核系統及其方法,透過使用者端主機與節點主機共同生成相應的簽名元數據,再各自傳送至聚合主機驗證,以便聚合主機能夠將簽名元數據提供上線的使用者端主機執行部分解密以生成部分解密訊息,並且將生成的部分解密訊息回傳至聚合主機,當聚合主機接收到的部分解密訊息滿足解密條件時,先計算出數位簽章的第二簽章值,再驗證數位簽章,以及廣播通過驗證的數位簽章以執行交易,達到提高區塊鏈錢包的安全性及便利性之技術功效。
Description
本發明涉及一種批核系統及其方法,特別是區塊鏈錢包的非互動式批核系統及其方法。
近年來,隨著區塊鏈的普及與蓬勃發展,各種應用在區塊鏈的技術便如雨後春筍般湧現,其中又以區塊鏈錢包的發展最受矚目。
一般而言,傳統的區塊鏈錢包僅由一位使用者持有,並且具有唯一的一組金鑰對(Key-pair),即:公鑰及私鑰。倘若使用者遺失私鑰將導致區塊鏈錢包中的加密貨幣被竊取。因此,為了強化區塊鏈錢包的安全性及可用性,便有廠商進一步發展可由多位使用者共同持有的區塊鏈錢包,如:多重簽名的區塊鏈錢包。此一方式是通過多個不同的金鑰產生相應數量的簽名,並且在擁有一定數量的簽名時才會使交易成功,如此一來,即使其中一個私鑰被竊、遺失等等,也可以保障區塊鏈錢包的安全,甚至因此使得區塊鏈錢包的可用性大增,例如可輕易應用在多數決的情境。然而,此方式在遺失的私鑰數量滿足門檻時,此區塊鏈錢包便不再安全了。因此,仍然有區塊鏈錢包的安全性不足的問題。
另一方面,假設要讓N個使用者共同管理一個區塊鏈錢包,當收到交易訊息時,使用者可以根據交易內容進行批核,當一定數量的使用者批核後,便可以將交易的簽名生成送出,代表同意此筆交易。在此情況下,存在許多需要考量的點,例如:倘若託管區塊鏈錢包,此託管機構可不可以自行轉移用戶資產,或是用戶如何達成非互動式批核等等。以非互動式批核為例,倘若上述一定數量的使用者均需同時在線同步批核,這將大幅降低區塊鏈錢包的便利性。
綜上所述,可知先前技術中長期以來一直存在區塊鏈錢包的安全性及便利性不足的問題,因此實有必要提出改進的技術手段,來解決此一問題。
本發明揭露一種區塊鏈錢包的非互動式批核系統及其方法。
首先,本發明揭露一種區塊鏈錢包的非互動式批核系統,其包含:聚合主機、節點主機及N個使用者端主機。其中,聚合主機用以接收交易訊息及簽名元數據以進行驗證,並且在所述簽名元數據驗證無誤後,傳送此交易訊息及所述簽名元數據,以及接收部分解密訊息以在所述部分解密訊息滿足解密條件時,根據所述部分解密訊息計算出第二簽章值,並且驗證包含第一簽章值及第二簽章值的數位簽章後,再廣播已通過驗證的數位簽章;節點主機用以接收第一公鑰,以及與分派主機(Dealer)共同執行分散式金鑰生成(Distributed Key Generation,DKG)機制以生成i個門檻式簽章方案共享單元及其相應的第二公鑰,以及與交易主機共同執行門檻式簽章方案(Threshold Signature Scheme,TSS)以計算出第一簽章值及i個s值,再根據第一簽章值及i個所述s值計算出相
應的簽名元數據以傳送至聚合主機,其中,i為大於數值1的正整數;以及N個使用者端主機,用以分別作為區塊鏈錢包的共同使用者,所述使用者端主機包含分派主機及交易主機,每一使用者端主機皆包含:第一生成模組、第二生成模組、計算模組及解密模組。其中,第一生成模組用以在使用者端主機為分派主機時選擇密文,並且與其他使用者端主機共同執行線性整數秘密共享(Linear Integer Secret Sharing,LISS)以生成同態加密的i個共享單元及其相應的第一公鑰,以及將此第一公鑰傳送至節點主機及使用者端主機、將第j個共享單元傳送至第j個使用者端主機,其中,N、i及j為正整數且N及i大於數值1;第二生成模組連接第一生成模組,用以在使用者端主機為分派主機時,與節點主機共同執行分散式金鑰生成機制,並將生成的門檻式簽章方案共享單元及其相應的第二公鑰傳送至使用者端主機;計算模組用以將接收到欲簽章的交易訊息的使用者端主機作為交易主機,此交易主機將交易訊息傳送至聚合主機,並且與節點主機共同執行門檻式簽章方案,同時使所述使用者主機及節點主機均將自身生成的簽名元數據傳送至聚合主機以進行驗證;以及解密模組連接計算模組,用以自聚合主機接收交易訊息及簽名元數據進行驗證及部分解密以生成相應的部分解密訊息,再將所述部分解密訊息傳送至聚合主機。
接著,本發明揭露一種區塊鏈錢包的非互動式批核方法,其步驟包括:提供N個使用者端主機分別作為區塊鏈錢包的共同使用者,以及提供節點主機及聚合主機,當所述使用者端主機為分派主機時,此分派主機選擇密文,並且與其他使用者端主機共同執行線性整數秘密共享以生成同態加密的i個共享單元及其相應的第一公鑰,以及將第一公鑰傳送至節點主機及使用者端主機、將第j個共享單元傳送至第j個使用者端主機,其中,N、i及j為正整數且N及i大於
數值1;分派主機與節點主機共同執行分散式金鑰生成機制以生成i個門檻式簽章方案共享單元及其相應的第二公鑰;分派主機將生成的第二公鑰和門檻式簽章方案共享單元傳送至使用者端主機;當使用者端主機接收到欲簽章的交易訊息後,將交易訊息傳送至聚合主機,並且與節點主機共同執行門檻式簽章方案以計算出第一簽章值及i個s值,再根據第一簽章值及i個所述s值計算出相應的簽名元數據;使用者端主機及節點主機均將自身生成的簽名元數據傳送至聚合主機以進行驗證,當聚合主機驗證無誤後,聚合主機將交易訊息及所有接收到的簽名元數據傳送至已連線的使用者端主機進行驗證及部分解密以生成相應的部分解密訊息,再將所述部分解密訊息傳送至聚合主機;以及當聚合主機接收到的部分解密訊息滿足解密條件時,允許在不知私鑰的情況下,根據所述部分解密訊息計算出第二簽章值,以及驗證包含第一簽章值及第二簽章值的數位簽章後,再廣播已通過驗證的數位簽章。
本發明所揭露之系統與方法如上,與先前技術的差異在於本發明是透過使用者端主機與節點主機共同生成相應的簽名元數據,再各自傳送至聚合主機驗證,以便聚合主機能夠將簽名元數據提供上線的使用者端主機執行部分解密以生成部分解密訊息,並且將生成的部分解密訊息回傳至聚合主機,當聚合主機接收到的部分解密訊息滿足解密條件時,先計算出數位簽章的第二簽章值,再驗證數位簽章,以及廣播通過驗證的數位簽章以執行交易。
透過上述的技術手段,本發明可以達成提高區塊鏈錢包的安全性及便利性之技術功效。
110:聚合主機
120:節點主機
130a~130n:使用者端主機
131:第一生成模組
132:第二生成模組
133:計算模組
134:解密模組
310:聚合主機
320:節點主機
330a,330b:使用者端主機
步驟201:提供N個使用者端主機分別作為一區塊鏈錢包的共同使用者,以及提供至少一節點主機及一聚合主機,當所述使用者端主機為一分派主機(Dealer)時,該分派主機選擇一密文,並且與其他所述使用者端主機共同執行一線性整數秘密共享(Linear Integer Secret Sharing,LISS)以生成同態加密的i個共享單元及其相應的一第一公鑰,以及將該第一公鑰傳送至所述節點主機及所述使用者端主機、將第j個所述共享單元傳送至第j個所述使用者端主機,其中,N、i及j為正整數且N及i大於數值1
步驟202:該分派主機與所述節點主機共同執行一分散式金鑰生成(Distributed Key Generation,DKG)機制以生成i個門檻式簽章方案共享單元及其相應的一第二公鑰
步驟203:該分派主機將生成的該第二公鑰和所述門檻式簽章方案共享單元傳送至所述使用者端主機
步驟204:當所述使用者端主機接收到欲簽章的一交易訊息後,將該交易訊息傳送至該聚合主機,並且與所述節點主機共同執行一門檻式簽章方案以計算出一第一簽章值及i個s值,再根據該第一簽章值及i個所述s值計算出相應的一簽名元數據
步驟205:所述使用者端主機及所述節點主機均將自身生成的該簽名元數據傳送至該聚合主機以進行驗證,當該聚合主機驗證無誤後,該聚合主機將該交易訊息及所有接收到的所述簽名元數據傳送至已連線的所述使用者端主機進行驗證及部分解密以生成相應的一部分解密訊息,再將所述部分解密訊息傳送至該聚合主機
步驟206:當該聚合主機接收到的所述部分解密訊息滿足一解密條件時,允許在不知私鑰的情況下,根據所述部分解密訊息計算出一第二簽章值,以及驗證包含該第一簽章值及該第二簽章值的一數位簽章後,再廣播已通過驗證的該數位簽章
第1圖為本發明區塊鏈錢包的非互動式批核系統的系統方塊圖。
第2A圖及第2B圖為本發明區塊鏈錢包的非互動式批核系統的方法流程圖。
第3A圖至第3K圖為應用本發明的區塊鏈錢包之非互動式批核流程的示意圖。
以下將配合圖式及實施例來詳細說明本發明之實施方式,藉此對本發明如何應用技術手段來解決技術問題並達成技術功效的實現過程能充分理解並據以實施。
首先,在說明本發明所揭露之區塊鏈錢包的非互動式批核系統及其方法之前,先對本發明自行定義的名詞作說明,本發明所述的共享單元(Share),如:共享單元、門檻式簽章共享單元等等,是指在進行安全多方計算時,在不同的節點主機之間進行相互交換資料及計算結果所生成的元素,其可視為私鑰的一部分,所述元素能夠在不需重組私鑰的情況下,直接以數學運算計算出符合橢圓曲線數位簽名演算法(Elliptic Curve Digital Signature Algorithm,ECDSA)的簽章格式之簽章(或稱為「簽名」)。
以下配合圖式對本發明區塊鏈錢包的非互動式批核系統及其方法做進一步說明,請先參閱「第1圖」,「第1圖」為本發明區塊鏈錢包的非互動式批核系統的系統方塊圖,此系統包含:聚合主機110、節點主機120及使用者端主機(130a~130n)。其中,聚合主機110用以接收交易訊息及簽名元數據以進行驗證,並且在簽名元數據驗證無誤後,傳送交易訊息及簽名元數據,以
及接收部分解密訊息以在所述部分解密訊息滿足解密條件時,根據所述部分解密訊息計算出第二簽章值,並且驗證包含第一簽章值及第二簽章值的數位簽章後,再廣播已通過驗證的數位簽章。在實際實施上,所述簽名元數據包含多個參數,所述參數分別為第一簽章值(即:ECDSA簽章的其中一部分)、同態加密值(即:同態加密的密文)、乘積值(即:橢圓曲線上的點)及一致性證明(即:證明同態加密值與乘積值是相同的零知識證明),當聚合主機110接收到簽名元數據時,以零知識證明分別驗證同態加密值存在的證明、驗證一致性證明及驗證參數的參數範圍是否正確,所述同態加密值係將相應的s值「si」進行同態加密後所生成的值「ED(si)」,舉例來說,同態加密值「ED(s1)」是將相應的s值「s1」進行同態加密後所生成的值;同態加密值「ED(s2)」是將相應的s值「s2」進行同態加密後所生成的值,並以此類推。另外,聚合主機110在接收到的部分解密訊息滿足解密條件時,加總每一簽名元數據的乘積值(如:「sum_i hat{si}*R=r*P+m*G」),其中,所述乘積值為橢圓曲線上的點,加總的乘積值等於第一簽章值「r」與第二金鑰「P」的乘積加上交易訊息「m」的雜湊值與基點「G」的乘積,後續為了方便示意,將以「si」來表示「hat{si}」,所述基點為橢圓曲線基點。
節點主機120用以接收第一公鑰,以及與分派主機共同執行DKG機制以生成i個門檻式簽章方案共享單元及其相應的第二公鑰,以及與交易主機共同執行TSS以計算出第一簽章值及i個s值,再根據第一簽章值及i個所述s值計算出相應的簽名元數據(Metadata)以傳送至聚合主機110,其中,i為大於數值1的正整數。在實際實施上,節點主機120的數量可為一個或一個以上。
使用者端主機(130a~130n)用以分別作為區塊鏈錢包的共同使用者,所述使用者端主機(130a~130n)包含分派主機及交易主機,每一使用者端主機(130a~130n)皆包含:第一生成模組131、第二生成模組132、計算模組133及解密模組134。其中,第一生成模組131用以在使用者端主機(130a~130n)為分派主機時選擇密文,並且與其他使用者端主機共同執行LISS以生成同態加密的i個共享單元及其相應的第一公鑰,以及將第一公鑰傳送至節點主機120及使用者端主機(130a~130n)、將第j個共享單元傳送至第j個使用者端主機,其中,N、i及j為正整數且N及i大於數值1。以LISS為例,假設有一個分派主機要將密文「s」分散給其他人保管,每一個保管人持有的稱作「共享單元」,若沒有滿足數量的共享單元則無法還原密文「s」,當分派主機要將共享單元分成m份時,方法如下:
1.分派主機選取一個矩陣「M」,尺寸為「m*n」,並且選一個向量v:=[s,x2,...,xn]T,則產生的n份共享單元為「M * v=[s1,...,sm]T」,此處的s為挑選的密文且「x2,...,xn」皆為隨機挑選在一個適當的區間內。
2.分派主機將共享單元「si」分給合適者。
當可找到向量「w」使得MT * w=[1,0,0,...,0]T則計算[s1,...,sm]T*w,可以還原s。舉例來說,假設有四個使用者:A、B、C及D,並且假設有以下組合條件可以組成私鑰:
1. A,B
2. C,D
3. A,B,C
4. A,B,D
5. B,C,D
6. A,B,C,D
對應此情況,考慮矩陣M為:[1,1,0]←A [0,1,0]←B [1,0,1]←C [0,0,1]←D
M*[s,x2,x3]T=[s+x2,x2,s+x3,x3]。所以A、B、C及D分別持有的共享單元依序為:「s+x2」、「x2」、「s+x3」及「x3」。其中,「s」為密文,而「x2」及「x3」皆為隨機選取的數值。如此一來,便能夠容易地進行檢查,以A及B的組合條件為例,以下矩陣的第一個垂直行(Column)是A取水平列(Row)的轉置(Transpose),第二個垂直行是B取水平列的轉置。
[1,0]*[1]=[1] [1,1] [-1] [0] [0,0] [0]
其中,w=[1,-1],因此,「wT*[s+x2,x2]=s」可成功還原出私鑰,其他情況同理,可以驗證出對於其他情況都存在「w」使得密文(即:私鑰)「s」可以被還原。因此,利用LISS的技術可以生成分配給其他使用者的共享單元。換句話說,整體流程為一個分派主機選擇密文「d」並且產生相應的公鑰「D」,再根據管理需求決定哪些人在一起才能生成共享單元,產出矩陣「M」,然後利用LISS生成對應的共享單元「dj」。其中,私鑰滿足「d=Σj aj*dj」,「aj」屬於「{-1,0,1}」,並且將公鑰傳輸給節點主機120。實際上,所述LISS如同DKG
可以多人協力合作使得在沒有人知曉密文「d」的情況下,生成公鑰「D」及每個人持有的共享單元「dj」。特別要說明的是,當分派主機在分派共享單元時,會建立一個存取結構(Access Structure),用以決定允許將密文還原成明文(或稱為解密)的使用者端主機,此存取結構可包含門檻式存取結構(Threshold Access Structure)及非門檻式存取結構,當聚合主機110收到滿足可解密的部分解密訊息之條件便可以開始執行解密以計算出數位簽章中的第二部分,即:第二簽章值「s」。實際上,一個存取結構會決定這一次在怎樣的條件下允許解密(即:只要收集到滿足條件的部分解密訊息即可進行解密)。
第二生成模組132連接第一生成模組131,用以在使用者端主機(130a~130n)為分派主機時,與節點主機120共同執行DKG機制,並將生成的門檻式簽章方案共享單元及其相應的第二公鑰傳送至使用者端主機(130a~130n)。在實際實施上,DKG機制係由使用者與託管機構所管理的節點主機一起參與,在不產生私鑰的條件下使各方獲得公鑰及共享單元,參與的使用者可以使用具有連網功能的智慧型手機、電腦等裝置作為使用者端主機(130a~130n),或是運行一個節點主機120,倘若將共享單元儲存在智慧型手機,則每次有新的使用者加入時,都會得到相同的共享單元。除此之外,雙方還可以透過權重高低來決定責任歸屬。
計算模組133用以將接收到欲簽章的交易訊息的使用者端主機(130a~130n)作為交易主機,此交易主機將交易訊息傳送至聚合主機110,並且與節點主機120共同執行TSS,同時使所述使用者端主機(130a~130n)及節點主機120均將自身生成的簽名元數據傳送至聚合主機110以進行驗證。
解密模組134連接計算模組133,用以自聚合主機110接收交易訊息及簽名元數據進行驗證及部分解密以生成相應的部分解密訊息,再將所述部分解密訊息傳送至聚合主機110。在實際實施上,通過簽名元數據可以驗證同態加密值「ED(si)」所包含的「si」,並且在不知道「si」的情況下,透過數學零知識證明使其相信所包含的資訊是對交易訊息「m」所做的簽名。
特別要說明的是,在實際實施上,本發明所述的模組皆可利用各種方式來實現,包含軟體、硬體或其任意組合,例如,在某些實施方式中,各模組可利用軟體及硬體或其中之一來實現,除此之外,本發明亦可部分地或完全地基於硬體來實現,例如,系統中的一個或多個模組可以透過積體電路晶片、系統單晶片(System on Chip,SoC)、複雜可程式邏輯裝置(Complex Programmable Logic Device,CPLD)、現場可程式邏輯閘陣列(Field Programmable Gate Array,FPGA)等來實現。本發明可以是系統、方法及/或電腦程式。電腦程式可以包括電腦可讀儲存媒體,其上載有用於使處理器實現本發明的各個方面的電腦可讀程式指令,電腦可讀儲存媒體可以是可以保持和儲存由指令執行設備使用的指令的有形設備。電腦可讀儲存媒體可以是但不限於電儲存設備、磁儲存設備、光儲存設備、電磁儲存設備、半導體儲存設備或上述的任意合適的組合。電腦可讀儲存媒體的更具體的例子(非窮舉的列表)包括:硬碟、隨機存取記憶體、唯讀記憶體、快閃記憶體、光碟、軟碟以及上述的任意合適的組合。此處所使用的電腦可讀儲存媒體不被解釋為瞬時訊號本身,諸如無線電波或者其它自由傳播的電磁波、通過波導或其它傳輸媒介傳播的電磁波(例如,通過光纖電纜的光訊號)、或者通過電線傳輸的電訊號。另外,此處所描述的電腦可讀程式指令可以從電腦可讀儲存媒體下載到各個計算/處理設備,或者通過網路,例
如:網際網路、區域網路、廣域網路及/或無線網路下載到外部電腦設備或外部儲存設備。網路可以包括銅傳輸電纜、光纖傳輸、無線傳輸、路由器、防火牆、交換器、集線器及/或閘道器。每一個計算/處理設備中的網路卡或者網路介面從網路接收電腦可讀程式指令,並轉發此電腦可讀程式指令,以供儲存在各個計算/處理設備中的電腦可讀儲存媒體中。執行本發明操作的電腦程式指令可以是組合語言指令、指令集架構指令、機器指令、機器相關指令、微指令、韌體指令、或者以一種或多種程式語言的任意組合編寫的原始碼或目的碼(Object Code),所述程式語言包括物件導向的程式語言,如:Common Lisp、Python、C++、Objective-C、Smalltalk、Delphi、Java、Swift、C#、Perl、Ruby與PHP等,以及常規的程序式(Procedural)程式語言,如:C語言或類似的程式語言。所述電腦程式指令可以完全地在電腦上執行、部分地在電腦上執行、作為一個獨立的軟體執行、部分在客戶端電腦上部分在遠端電腦上執行、或者完全在遠端電腦或伺服器上執行。
請參閱「第2A圖」及「第2B圖」,「第2A圖」及「第2B圖」為本發明區塊鏈錢包的非互動式批核方法的方法流程圖,其步驟包括:提供N個使用者端主機分別作為區塊鏈錢包的共同使用者,以及提供節點主機及聚合主機,當所述使用者端主機為分派主機時,此分派主機選擇密文,並且與其他使用者端主機共同執行線性整數秘密共享以生成同態加密的i個共享單元及其相應的第一公鑰,以及將第一公鑰傳送至節點主機及使用者端主機、將第j個共享單元傳送至第j個使用者端主機,其中,N、i及j為正整數且N及i大於數值1(步驟201);分派主機將生成的第一公鑰傳送至節點主機120,使節點主機120與分派主機共同執行分散式金鑰生成機制以生成i個門檻式簽章方案共享單元及其相應
的第二公鑰(步驟202);分派主機將生成的第二公鑰和門檻式簽章方案共享單元傳送至使用者端主機(步驟203);當使用者端主機接收到欲簽章的交易訊息後,將交易訊息傳送至聚合主機,並且與節點主機共同執行門檻式簽章方案以計算出第一簽章值及i個s值,再根據第一簽章值及i個所述s值計算出相應的簽名元數據(步驟204);使用者端主機及節點主機均將自身生成的簽名元數據傳送至聚合主機110以進行驗證,當聚合主機110驗證無誤後,聚合主機110將交易訊息及所有接收到的簽名元數據傳送至已連線的使用者端主機進行驗證及部分解密以生成相應的部分解密訊息,再將所述部分解密訊息傳送至聚合主機110(步驟205);當聚合主機110接收到的部分解密訊息滿足解密條件時,允許在不知私鑰的情況下,根據部分解密訊息計算出第二簽章值,以及驗證包含第一簽章值及第二簽章值的數位簽章後,再廣播已通過驗證的數位簽章(步驟206)。透過上述步驟,即可透過使用者端主機與節點主機共同生成相應的簽名元數據,再各自傳送至聚合主機驗證,以便聚合主機能夠將簽名元數據提供上線的使用者端主機執行部分解密以生成部分解密訊息,並且將生成的部分解密訊息回傳至聚合主機,當聚合主機接收到的部分解密訊息滿足解密條件時,先計算出數位簽章的第二簽章值,再驗證數位簽章,以及廣播通過驗證的數位簽章以執行交易。
以下配合「第3A圖」至「第3K圖」以實施例的方式進行如下說明,「第3A圖」至「第3J圖」為應用本發明的區塊鏈錢包之非互動式批核流程之示意圖。首先,如「第3A圖」所示意,假設有兩名使用者(即:N為2)分別透過使用者端主機330a及使用者端主機330b共同持有區塊鏈錢包,若使用者端主機330a為分派端主機(即:Dealer角色),使用者端主機330a將會選擇一個密
文(或稱之為祕密),並且利用LISS方式與使用者端主機330b生成同態加密的二個共享單元,如:第1個共享單元「share d1」及第2個共享單元「share d2」,以及與這二個共享單元相應的第一公鑰「D」,接著,如「第3B圖」所示意,使用者端主機330a持有第1個共享單元及第一公鑰、使用者端主機330b持有第2個共享單元及第一公鑰,以及將第一公鑰傳送給節點主機320。接下來,如「第3C圖」所示意,分派主機(即:此例中為使用者端主機330a)與節點主機320共同執行DKG機制以生成i個門檻式簽章方案共享單元「ssign,i」及其相應的第二公鑰「P」,其中,節點主機320持有第1個門檻式簽章方案共享單元「ssign,1」,分派主機持有第2個門檻式簽章方案共享單元「ssign,2」。然後,如「第3D圖」所示意,分派主機將生成的第二公鑰「P」及第2個門檻式簽章方案共享單元「ssign,2」傳送給使用者端主機330b。
如「第3E圖」所示意,當使用者端主機330a有一筆交易需要簽名,例如:接收到欲簽章的交易訊息「m」,使用者端主機330a會將此交易訊息「m」傳送至聚合主機310。同時,使用者端主機330a會與節點主機320共同執行TSS以計算出第一簽章值與i個s值(即:si),再根據第一簽章值及所述s值計算出相應的簽名元數據,其中,簽名元數據包含多個參數,所述參數分別為第一簽章值、同態加密值「ED(si)」、乘積值「si*R」及一致性證明「C(ED(si),si*R)」。以此例而言,節點主機320計算出第1個簽名元數據為「(r,ED(s1),s1*R,C(ED(s1),s1*R))」,使用者端主機330a計算出第2個簽名元數據為「(r,ED(s2),s2*R,C(ED(s2),s2*R))」。接著,如「第3F圖」所示意,使用者端主機330a及節點主機320均將自身生成的簽名元數據傳送至聚合主機310以進行驗證,當聚合主機310驗證無誤後,如「第3G圖」所示意,此聚合主機310會將交易訊息「m」及所有接收到的簽名元數據,
如:第1個簽名元數據「(r,ED(s1),s1*R,C(ED(s1),s1*R))」及第2個簽名元數據「(r,ED(s2),s2*R,C(ED(s2),s2*R))」一併傳送至已連線的使用者端主機(如:使用者端主機330a)進行驗證及部分解密,以便如「第3H圖」所示意生成相應的部分解密訊息,例如:第1個部分解密訊息「Epartial,1(s)」,再將此第1個部分解密訊息「Epartial,1(s)」傳送至聚合主機310,其中,「s:=s1+s2」。特別要說明的是,當其他的使用者端主機(如:使用者端主機330b)上線時,聚合主機310同樣會如「第3I圖」所示意,將交易訊息「m」及所有簽名元數據傳送給它驗證,在此例中,聚合端主機310將交易訊息「m」、第1個簽名元數據「(r,ED(s1),s1*R,C(ED(s1),s1*R))」及第2個簽名元數據「(r,ED(s2),s2*R,C(ED(s2),s2*R))」一併傳送至已上線的使用者端主機330b進行驗證及執行部分解密,以便如「第3J圖」所示意生成第2個部分解密訊息「Epartial,2(s)」再回傳給聚合主機310。實際上,第j個上線的使用者端主機會執行下列步驟:
1.驗證ED(si)存在的證明。
2.驗證一致性證明「C(ED(si),si*R)」。
3.驗證各參數的範圍是正確的。
4.計算「Σi si * R=r * P+m * G」,其中「m」為交易訊息的雜湊值。
最後,如「第3K圖」所示意,聚合主機310接收到的部分解密訊息滿足解密條件(例如:具有足夠且可解密的部分解密訊息)時,允許在不知私鑰的情況下,根據所述部分解密訊息計算出第二簽章值(即:數位簽章(r,s)中的s值),以及驗證包含第一簽章值及第二簽章值的數位簽章後,再廣播已通過驗證的數位簽章。至此,由於區塊鏈錢包可以在不知私鑰的情況下計算出符合ECDSA規範的數位簽章,因此大幅提升安全性,而且使用者可以非同步上線進行批核,並且在批核後就下線,不需在交易過程中持續維持互動,故更具有便利性。
綜上所述,可知本發明與先前技術之間的差異在於透過使用者端主機與節點主機共同生成相應的簽名元數據,再各自傳送至聚合主機驗證,以便聚合主機能夠將簽名元數據提供上線的使用者端主機執行部分解密以生成部分解密訊息,並且將生成的部分解密訊息回傳至聚合主機,當聚合主機接收到的部分解密訊息滿足解密條件時,先計算出數位簽章的第二簽章值,再驗證數位簽章,以及廣播通過驗證的數位簽章以執行交易,藉由此一技術手段可以解決先前技術所存在的問題,進而達成提高區塊鏈錢包的安全性及便利性之技術功效。
雖然本發明以前述之實施例揭露如上,然其並非用以限定本發明,任何熟習相像技藝者,在不脫離本發明之精神和範圍內,當可作些許之更動與潤飾,因此本發明之專利保護範圍須視本說明書所附之申請專利範圍所界定者為準。
110:聚合主機
120:節點主機
130a~130n:使用者端主機
131:第一生成模組
132:第二生成模組
133:計算模組
134:解密模組
Claims (10)
- 一種區塊鏈錢包的非互動式批核系統,該系統包含: 一聚合主機,用以接收一交易訊息及多個簽名元數據以進行驗證,並且在所述簽名元數據驗證無誤後,傳送該交易訊息及所述簽名元數據,以及接收多個部分解密訊息以在所述部分解密訊息滿足一解密條件時,根據所述部分解密訊息計算出一第二簽章值,並且驗證包含一第一簽章值及該第二簽章值的一數位簽章後,再廣播已通過驗證的該數位簽章; 至少一節點主機,用以接收一第一公鑰,以及與一分派主機(Dealer)共同執行一分散式金鑰生成(Distributed Key Generation, DKG)機制以生成i個門檻式簽章方案共享單元及其相應的一第二公鑰,以及與一交易主機共同執行一門檻式簽章方案以計算出該第一簽章值及i個s值,再根據該第一簽章值及i個所述s值計算出相應的所述簽名元數據以傳送至該聚合主機,其中,i為大於數值1的正整數;以及 N個使用者端主機,用以分別作為一區塊鏈錢包的共同使用者,所述使用者端主機包含該分派主機及該交易主機,每一所述使用者端主機皆包含: 一第一生成模組,用以在所述使用者端主機為該分派主機時選擇一密文,並且與其他所述使用者端主機共同執行一線性整數秘密共享(Linear Integer Secret Sharing, LISS)以生成同態加密的i個共享單元及其相應的該第一公鑰,以及將該第一公鑰傳送至所述節點主機及所述使用者端主機、將第j個所述共享單元傳送至第j個所述使用者端主機,其中,N、i及j為正整數且N及i大於數值1; 一第二生成模組,連接該第一生成模組,用以在所述使用者端主機為該分派主機時,與所述節點主機共同執行該分散式金鑰生成機制,並將生成的所述門檻式簽章方案共享單元及其相應的該第二公鑰傳送至所述使用者端主機; 一計算模組,用以將接收到欲簽章的一交易訊息的所述使用者端主機作為該交易主機,該交易主機將該交易訊息傳送至該聚合主機,並且與所述節點主機共同執行該門檻式簽章方案,同時使所述使用者主機及所述節點主機均將自身生成的該簽名元數據傳送至該聚合主機以進行驗證;以及 一解密模組,連接該計算模組,用以自該聚合主機接收該交易訊息及所述簽名元數據進行驗證及部分解密以生成相應的所述部分解密訊息,再將所述部分解密訊息傳送至該聚合主機。
- 如請求項1之區塊鏈錢包的非互動式批核系統,其中所述簽名元數據包含多個參數,所述參數分別為該第一簽章值、一同態加密值、一乘積值及一一致性證明,當該聚合主機接收到所述簽名元數據時,以零知識證明分別驗證該同態加密值存在的證明、驗證該一致性證明及驗證所述參數的參數範圍是否正確。
- 如請求項2之區塊鏈錢包的非互動式批核系統,其中該聚合主機在接收到的所述部分解密訊息滿足該解密條件時,加總每一簽名元數據的該乘積值,其中,所述乘積值為橢圓曲線上的點,加總的所述乘積值等於該第一簽章值與該第二金鑰的乘積加上該交易訊息的雜湊值與一基點的乘積。
- 如請求項2之區塊鏈錢包的非互動式批核系統,其中該同態加密值係將相應的所述s值進行同態加密後所生成的值。
- 如請求項1之區塊鏈錢包的非互動式批核系統,其中該分派主機在分派共享單元時,建立一存取結構(Access Structure)以決定允許將該密文還原成明文的所述使用者端主機,該存取結構包含門檻式存取結構(Threshold Access Structure)及非門檻式存取結構以決定該解密條件。
- 一種區塊鏈錢包的非互動式批核方法,其步驟包括: 提供N個使用者端主機分別作為一區塊鏈錢包的共同使用者,以及提供至少一節點主機及一聚合主機,當所述使用者端主機為一分派主機(Dealer)時,該分派主機選擇一密文,並且與其他所述使用者端主機共同執行一線性整數秘密共享(Linear Integer Secret Sharing, LISS)以生成同態加密的i個共享單元及其相應的一第一公鑰,以及將該第一公鑰傳送至所述節點主機及所述使用者端主機、將第j個所述共享單元傳送至第j個所述使用者端主機,其中,N、i及j為正整數且N及i大於數值1; 該分派主機與所述節點主機共同執行一分散式金鑰生成(Distributed Key Generation, DKG)機制以生成i個門檻式簽章方案共享單元及其相應的一第二公鑰; 該分派主機將生成的該第二公鑰和所述門檻式簽章方案共享單元傳送至所述使用者端主機; 當所述使用者端主機接收到欲簽章的一交易訊息後,將該交易訊息傳送至該聚合主機,並且與所述節點主機共同執行一門檻式簽章方案以計算出一第一簽章值及i個s值,再根據該第一簽章值及i個所述s值計算出相應的一簽名元數據; 所述使用者端主機及所述節點主機均將自身生成的該簽名元數據傳送至該聚合主機以進行驗證,當該聚合主機驗證無誤後,該聚合主機將該交易訊息及所有接收到的所述簽名元數據傳送至已連線的所述使用者端主機進行驗證及部分解密以生成相應的一部分解密訊息,再將所述部分解密訊息傳送至該聚合主機;以及 當該聚合主機接收到的所述部分解密訊息滿足一解密條件時,允許在不知私鑰的情況下,根據所述部分解密訊息計算出一第二簽章值,以及驗證包含該第一簽章值及該第二簽章值的一數位簽章後,再廣播已通過驗證的該數位簽章。
- 如請求項6之區塊鏈錢包的非互動式批核方法,其中所述簽名元數據包含多個參數,所述參數分別為該第一簽章值、一同態加密值、一乘積值及一一致性證明,當該聚合主機接收到所述簽名元數據時,以零知識證明分別驗證該同態加密值存在的證明、驗證該一致性證明及驗證所述參數的參數範圍是否正確。
- 如請求項7之區塊鏈錢包的非互動式批核方法,其中該聚合主機在接收到的所述部分解密訊息滿足該解密條件時,加總每一簽名元數據的該乘積值,其中,所述乘積值為橢圓曲線上的點,加總的所述乘積值等於該第一簽章值與該第二金鑰的乘積加上該交易訊息的雜湊值與一基點的乘積。
- 如請求項7之區塊鏈錢包的非互動式批核方法,其中該同態加密值係將相應的所述s值進行同態加密後所生成的值。
- 如請求項6之區塊鏈錢包的非互動式批核方法,其中該分派主機在分派共享單元時,建立一存取結構(Access Structure)以決定允許將該密文還原成明文的所述使用者端主機,該存取結構包含門檻式存取結構(Threshold Access Structure)及非門檻式存取結構以決定該解密條件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW110133811A TWI782701B (zh) | 2021-09-10 | 2021-09-10 | 區塊鏈錢包的非互動式批核系統及其方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW110133811A TWI782701B (zh) | 2021-09-10 | 2021-09-10 | 區塊鏈錢包的非互動式批核系統及其方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI782701B true TWI782701B (zh) | 2022-11-01 |
TW202312055A TW202312055A (zh) | 2023-03-16 |
Family
ID=85794292
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW110133811A TWI782701B (zh) | 2021-09-10 | 2021-09-10 | 區塊鏈錢包的非互動式批核系統及其方法 |
Country Status (1)
Country | Link |
---|---|
TW (1) | TWI782701B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116938604A (zh) * | 2023-09-18 | 2023-10-24 | 深圳市上融科技有限公司 | 一种基于多方的电子签章***及方法与流程 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108776896A (zh) * | 2018-06-04 | 2018-11-09 | 中钞***产业发展有限公司杭州区块链技术研究院 | 基于多重签名的数字货币钱包业务管理方法及*** |
TWI706276B (zh) * | 2018-05-10 | 2020-10-01 | 香港商阿里巴巴集團服務有限公司 | 一種區塊鏈資料處理方法、裝置、處理設備及系統 |
CN112352238A (zh) * | 2018-06-28 | 2021-02-09 | 币即特株式会社 | 多重签名安全帐户控制*** |
US20210105144A1 (en) * | 2019-10-07 | 2021-04-08 | Accenture Global Solutions Limited | Cryptologic blockchain interoperability membership system |
-
2021
- 2021-09-10 TW TW110133811A patent/TWI782701B/zh active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI706276B (zh) * | 2018-05-10 | 2020-10-01 | 香港商阿里巴巴集團服務有限公司 | 一種區塊鏈資料處理方法、裝置、處理設備及系統 |
CN108776896A (zh) * | 2018-06-04 | 2018-11-09 | 中钞***产业发展有限公司杭州区块链技术研究院 | 基于多重签名的数字货币钱包业务管理方法及*** |
CN112352238A (zh) * | 2018-06-28 | 2021-02-09 | 币即特株式会社 | 多重签名安全帐户控制*** |
US20210105144A1 (en) * | 2019-10-07 | 2021-04-08 | Accenture Global Solutions Limited | Cryptologic blockchain interoperability membership system |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116938604A (zh) * | 2023-09-18 | 2023-10-24 | 深圳市上融科技有限公司 | 一种基于多方的电子签章***及方法与流程 |
CN116938604B (zh) * | 2023-09-18 | 2023-11-28 | 深圳市上融科技有限公司 | 一种基于多方的电子签章***及方法 |
Also Published As
Publication number | Publication date |
---|---|
TW202312055A (zh) | 2023-03-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113424185B (zh) | 快速不经意传输 | |
US10785019B2 (en) | Data transmission method and apparatus | |
CN114586313B (zh) | 用于签署一信息的***及方法 | |
TWI821248B (zh) | 用以移轉數位資產支配權之電腦實施方法及系統 | |
CN107483212A (zh) | 一种双方协作生成数字签名的方法 | |
CN111404950B (zh) | 一种基于区块链网络的信息共享方法、装置和相关设备 | |
CN113162752B (zh) | 基于混合同态加密的数据处理方法和装置 | |
CN111066285A (zh) | 基于sm2签名恢复公钥的方法 | |
CN110709874A (zh) | 用于区块链网络的凭证生成与分发方法和*** | |
US11516195B2 (en) | Terminal device, key distribution management device, server-client system, communication method, and programs | |
WO2019110018A1 (zh) | 通信网络***的消息验证方法、通信方法和通信网络*** | |
CN113901512A (zh) | 数据共享方法及*** | |
CN113609781A (zh) | 基于联邦学习的汽车生产模具优化方法、***、设备及介质 | |
CN118160275A (zh) | 阈值签名方案 | |
CN114301677B (zh) | 秘钥协商方法、装置、电子设备及存储介质 | |
CN113468580B (zh) | 多方协同签名的方法和*** | |
TWI782701B (zh) | 區塊鏈錢包的非互動式批核系統及其方法 | |
CN112003690B (zh) | 密码服务***、方法及装置 | |
JP2019208140A (ja) | 投票システム、投票中継サーバ、クライアント端末、投票方法、広告配信システム、及びプログラム | |
CN113362065A (zh) | 一种基于分散式私钥的在线签名交易实现方法 | |
Wang et al. | Secure mutual authentication quantum key agreement scheme for two-party setting with key recycling | |
TWI783804B (zh) | 基於線性整數秘密共享的共享單元生成系統及其方法 | |
TWI737956B (zh) | 基於秘密共享的門檻式簽章系統及其方法 | |
TWI764811B (zh) | 分層確定性錢包的金鑰生成系統及其方法 | |
CN110535873B (zh) | 应用于数据协同加密***的加密方法、解密方法 |