數字簽名是否只能由單一主體簽署?在涉及多方授權的場景中,如何實現多方聯合簽名?多方聯合簽名是否支持決策權重分配?其背後的門限簽名技術除了支持多方授權功能之外,還有哪些神奇之處?
在倡導價值流通、價值融合的數字化經濟中,多方合作無處不在。此過程中籤訂的數字契約,難免遇到需要在多個參與方之間分配獨立決策權重的場景,然後對於一個擬定的決策目標,只有滿足一定數量協作方同時授權才能生效。
一個典型的示例是基金會區塊鏈資金賬戶管理。
該賬戶的資金由多個參與方共有,因此其賬戶私鑰一般不應由單一主體保管,以避免權利過於集中,出現肆意操作資金的風險。另一方面,如果出現唯一的私鑰丟失,則資金可能永久性丟失,潛在風險巨大。
如何以一種公平有效的方式,讓多個參與方共同掌控賬戶資金,是一個十分現實的需求。
經典數字簽名技術,由於只能由單一主體來掌控私鑰,所以無法直接用以解決上述問題。為此,我們需要引入門限簽名技術。門限簽名究竟是如何實現公平有效的多方授權機制?可以支持哪些具體的應用場景?本文將進行專題解析。
門限簽名的協作性
在協作中實現有效多方授權的關鍵在於『分權機制』,對應的機制在中國古已有之。
“虎符”就是一個典型的見證。作為調兵遣將用的兵符,虎符是一種伏虎形狀的令牌,一般由青銅或者黃金製成,製成後,劈為兩半,分別交由將帥和皇帝保管。只有集齊對應的兩個虎符,無縫合併成完整的伏虎形態,持符者才有權調兵遣將。
虎符生效所需的最小數量其實就對應到了密碼學中的術語——門限值,只有達到了門限值的授權數量,授權才生效。
門限簽名是門限密碼學(參見第13論)中的一個重要分支,從構造上來看,門限簽名可以看作數字簽名和秘密分享的結合體。
對於一個(t, n)門限簽名算法,其典型的使用過程如下:
在一個由n個參與方組成的群體中,群體中各參與方通過一定方法獲得相應的簽名私鑰分片,群體中至少有t方使用各自的簽名私鑰分片對同一份數據進行簽名,產生簽名分片,然後將各方簽名分片合併,才能產生最終有效的簽名。其中,t為門限值,當簽名方的個數小於t時,無法產生有效的簽名。
門限簽名在諸多分佈式協作場景中均有應用,以下從兩個典型場景來展示其效果。
基金會區塊鏈資金賬戶管理
針對其賬戶資金權需要由多方共同授權才能動用的需求,可以使用門限簽名來解決其中的業務痛點:
管理資金賬戶的n個參與方可以各自擁有一個私鑰分片,可以進行獨立的決策過程。動用資金賬戶必須獲得由至少t個參與方進行簽名授權,才能生成有效的門限簽名。少於t個參與方簽名授權,無法動用資金賬戶。
除此之外,門限簽名還提供了以下額外特性:
身份隱匿:第三方無法從聚合的門限簽名中恢復出授權簽名的參與方的個體身份。容災恢復:最多允許nt方私鑰丟失,不影響資金賬戶的使用。
跨機構投票決議
針對其多數獨立決策方同意才能通過決議的需求,利用門限簽名可以容易地實現這種規則效果。
假定投票決議通過的條件是獲得多於50%同意,則可以設置門限值為t > n/2。由此,只有當某個決議項收集了至少t個決策方的簽名時,才能針對該決議項生成有效的簽名,進而通過該項決議。
同時,正如基金會區塊鏈資金賬戶所有展示的身份隱匿特性,所有決策方的身份都受到匿名保護,可以安心獨立地完成做出符合自身意願的決策。
對於不同決策方擁有不同權重的投票決議過程,門限簽名也可以輕易支持。
簡單設計是按權重分配不同數量的私鑰給對應決策方,這樣各個決策方能產生不同個數的簽名分片,體現其分佈式協作中的權重分配。高階設計可以採用帶權重的門限簽名方案,即參與方均是一個私鑰,但產生的簽名自帶權重。
由此可見,對於多方協作中所涉及的聯合決策、權重分配、身份保護、容災恢復等核心需求,門限簽名都能提供很好的支持。
門限簽名的使用注意事項
門限簽名的構造和使用相對比較直白,但也有其特別的注意事項。
基本算法選型
門限簽名的構造方式很多,算法變種也不少,選型時可能會帶來一定的困惑。
首先,我們需要區分一類與門限簽名功能類似的簽名技術,即多重簽名技術。其實現機制是讓多個參與方進行多次簽名操作,最終生成多個簽名,但不能對這些簽名進行合併,驗證時需要按各個參與方的簽名公鑰依次驗證。
多重簽名與門限簽名的具體區別如下圖所示:
多重簽名在公私鑰對的初始化便捷度指標上佔優,但綜合各項指標,門限簽名通常是更優的選擇。
目前比較常見的門限簽名算法有,基於RSA的Shoup門限簽名方案、基於Elgamal 的Harn 門限簽名方案、基於ECDSA的門限簽名方案,以及基於BLS的門限簽名方案。
從綜合性能方面考量,比較推薦使用基於ECDSA的門限簽名方案和基於BLS的門限簽名方案,目前其簽名效率均可以達到毫秒級。
是否引入可信第三方
回到公私鑰對的初始化指標,門限簽名需要一個協商過程才能完成初始化。如何安全地進行初始化,讓各個參與方獲得自身的私鑰分片,是保障門限簽名有效性的關鍵。
根據這一初始化過程中,是否需要引入可信第三方,門限簽名可以分成以下兩個大類:
中心化門限簽名:由可信第三方生成所有簽名方的私鑰分片,然後進行私鑰分片分發,最後各簽名方使用私鑰分片進行簽名。簽名方之間不需要進行私鑰分片生成過程中的數據交互。分佈式門限簽名:不需要引入可信第三方,簽名方可以通過交互進行相關參數的協商,完成各自私鑰分片的生成過程。獲得私鑰分片後,簽名方使用其進行簽名。
上述兩類門限簽名方式的不同之處在於,中心化門限簽名的簽名方之間,數據交互少,甚至沒有交互,極大程度降低通信開銷,但所有簽名方均需信任一個第三方。分佈式門限簽名不需要可信第三方,但是簽名方之間需要進行數據交互,增加了通信開銷。
具體業務場景中,如果存在一個可以擔任可信第三方的角色,採用中心化門限簽名方案是較好的選擇,可以提高系統效率。如果不存在此類角色,則可以選擇分佈式門限簽名。
門限簽名的應用賞析
隨著經濟數字化改革的深入,在以區塊鍊為代表的分佈式協作技術的驅動下,以往難以實現的分佈式商業場景,如今成為了可能,其中門限簽名更是大有用武之地。
基於門限簽名的典型應用場景有:分佈式資產託管、可共識區塊鏈預言機、分佈式公鑰證書服務等。如果我們用threshold signature作為關鍵詞搜索,可以查到很多和不同類別簽名技術結合的融合方案。
限於篇幅,這里以公鑰證書服務PKI(Public Key Infrastructure)的分佈式版本DPKI(Decentralized Public Key Infrastructure)為例,進行應用賞析。
正如第15論所提到的,PKI作為鑑別數字簽名有效性的三大必備共性技術之一,其解決的核心問題是:公鑰密碼算法中,公鑰有效性的認證問題。
PKI一般由一個權威機構運營,提供對實體身份和公鑰的認證服務,認證通過後簽發一個對應的數字證書。通過數字證書可以證明身份的真實性,以及身份與公鑰的關聯性。
傳統PKI面臨的不足之處主要體現在,傳統PKI證書籤發機構在簽發和管理證書的過程中,可能存在單點脆弱性,即出現單一證書籤發機構的證書籤發私鑰洩露或被竊取,從而導致重大聲譽和財務損失。
例如,黑客從中心化的證書籤發機構獲得簽名證書並竊取私鑰,然後對惡意軟件進行簽名,生成看似安全的簽名認證軟件,但這實際是一個惡意軟件,非常容易導致網絡安全事故。
保障數字證書的有效性是PKI 系統的信任基礎,影響到整個系統的可靠性。為了提高系統可靠性,可以基於門限簽名來構造分佈式公鑰證書服務DPKI。
在證書籤發過程中,使用門限簽名算法,使得一個有效的數字證書必須獲得來自不少於門限個數的簽名分片才能生效。同時,證書的驗證過程只需要使用單個合併公鑰,所以也不會影響原有的證書驗證過程。
DPKI實現了一種分佈式公鑰證書管理體系,要求多方授權才能簽發數字證書,不再依賴單一實體對簽名私鑰的保護能力。當黑客獲取的簽名私鑰個數少於門限值,就無法自行簽發有效的數字證書,無法進行網絡破壞和攻擊行為。
門限簽名使得傳統PKI的單一信任點變為了分佈式PKI的信任網,可以有效提高PKI的穩健性,使其簽發的數字證書更安全、更可信。
正是:平等分權契約須聯名,門限簽名不合則不達!
在多方協同、互利互惠的分佈式商業大環境中,如何有效地支持各個參與方之間權利分配、獨立決策是至關重要的業務需求。門限簽名則是滿足這些協作性需求的一類關鍵技術,控制權利過分集中導致的系統性風險,鼓勵更多實體參與合作,並建立公平、對等的伙伴關係,在數字契約的框架下,切實保障各個參與方的合法權益。
門限簽名對參與方的身份也提供了一定的匿名保護,但是對於待簽數據本身沒有提供直接的保護。簽名方依舊可以看到待簽數據的明文,在某些特定的業務場景中,這是不可接受的。為什麼這些業務場景會有這樣的隱私保護需求?技術上如何滿足這一需求?欲知詳情,敬請關注下文分解。