本講將分四個部分介紹門限籤名的概念與應用:第一部分,介紹數字籤名的概念與分類,闡述其基本算法組成以及具備的應用功能;第二部分,針對數字籤名存在的單點失效風險引入門限籤名概念,並介紹其技術優勢與特徵;第三部分,對門限籤名和多重籤名進行比較,闡述門限籤名在靈活性、匿名性和可擴展性方面的優勢,這也是其能夠成爲當今密碼學領域研究熱點的原因;最後,介紹門限籤名在區塊鏈領域的典型應用,展示其如何賦能不同的應用場景,並產生核心價值。
Part 1:數字籤名的概念與分類
數字籤名不是籤名的數字化
早期社會,籤署合同、文件、條約等通常使用手寫籤字與印章,但是當計算機網絡出現之後,如何對電子文檔、電子文件進行籤名就成了一個亟待解決的問題,而強大的應用需求也催生了問題的解決方案——數字籤名。
數字籤名是一種新型不同於傳統手寫籤名而以電子形式傳輸或存儲的消息籤名方式,並不是“手寫籤名的數字化”。學術層面,數字籤名是指一種能爲接收者驗證數據完整性和確認數據發送者身份,並可由第三方確定籤名和所籤數據真實性的算法方案。
數字籤名的五元組表示
通過對數字籤名的運行原理進行抽象和形式化概括,可以得到數字籤名的五元組表示,即(M,K,S,SIG,VER):
M:消息集合,一般爲被籤名對象的哈希摘要;
K:密鑰集合,即數字籤名可使用的密鑰範圍,一般爲 256 比特隨機數集合;
S:籤名集合,籤名算法的輸出,可被驗證算法驗證通過;
SIG:籤名算法,定義爲 K×M→S,以消息和密鑰爲輸入,輸出籤名;
VER:驗證算法,定義爲 MS{True,False},驗證消息和籤名的一致性,當然這個過程也需要輸入籤名密鑰對應的公鑰。
數字籤名的分類
數字籤名可以通過不同的維度進行分類,如基於數學難題、籤名用戶數量、數字籤名是否可恢復、籤名者對消息是否可見、籤名是否支持委托等,具體見下圖。
目前常見的數字籤名有 Shamir 背包數字籤名、Rabin 數字籤名、GOST 數字籤名、ElGamal 數字籤名、Schnorr 數字籤名、RSA 數字籤名、ECDSA 數字籤名、BLS 數字籤名等。
Part 2:門限籤名的誕生與技術特徵
數字籤名的阿喀琉斯之踵
阿喀琉斯是荷馬史詩中的英雄,其在沙場战無不勝、無所畏懼,然而這樣一個強大的战士也有他的致命弱點——腳踝,而其最終死去也是由於腳踝中箭。同樣的道理也適用於數字籤名,作爲一個強大的密碼學工具,它能夠防僞造和防抵賴,但是這一切都是建立在籤名私鑰安全的基礎之上,一旦私鑰泄漏,攻擊者將很容易完成身份的僞造以及非授權訪問等惡意行爲。
傳統的數字籤名方案下,籤名的私鑰是由單一主體掌握,通常通過加密存儲或者通過硬件保護(U 盾)等方式進行存儲,但是仍然具備極大的使用風險。
私鑰的安全性:攻擊者可以通過網絡攻擊的方式入侵籤名者計算機,即使加密存儲,也能夠在籤名過程中在內存中抓取私鑰,從而竊取籤名密鑰;
私鑰的可用性:無論是硬件還是軟件存儲的方式,都存在單一節點失效風險(Single Point of Failure),一旦籤名私鑰丟失,將無法復原。
門限籤名——雞蛋從不放在一個籠子裏
門限籤名正是解決數字籤名私鑰中心化控制安全性風險的方案。其核心思路是私鑰不再由單個節點掌握,而是拆分爲多個碎片並由多個節點掌握,從而實現私鑰的高安全性和可用性。具體而言,門限籤名是普通數字籤名“門限化”後的結果,它將籤名的權力分散到一組節點,只需超過門限值數量的節點合作,即可完成籤名的生成。因此可以認爲普通數字籤名算法的籤名過程是“中心化”的,而門限籤名算法的籤名過程是“分布式”的。
門限籤名的算法構成
門限籤名算法生成的籤名和普通籤名算法是一致且不可區分的,二者籤名驗證過程相同。因此對於門限籤名算法,關注的重點在於其密鑰生成過程 KeyGen 和籤名過程 TSig。一個(t,n)門限籤名算法包含以下兩個過程:
KeyGen:以安全參數作爲輸入,輸出籤名公鑰 pk 和 n 個私鑰碎片(sks1,sks2,…,sksn)。每個私鑰碎片 sksi 僅被節點 Pi 掌握,且 n 個私鑰碎片共同構成籤名私鑰 sk 的(t,n)祕密分享。需要注意的是,sk 只是理論存在,不會在密鑰生成或者籤名過程中出現;
TSig:以待籤名的消息和不少於 t 個私鑰碎片作爲輸入,輸出一個合法籤名。
Part 3:門限籤名與多重籤名的比較與優勢
除門限籤名外,另一個防止單點失效的方式即爲多重籤名(Multi-signature)。樸素來講,在多重籤名機制下,籤名的公鑰不再是一個,而是有多個公鑰,只有收集超過門限值個數的籤名才算籤名成功。雖然多重籤名能夠在一定意義上實現和門限籤名等效的應用價值,但是門限籤名仍然在靈活性、匿名性和可擴展性三個方面具備優勢。以下將從區塊鏈角度去闡述這三方面優勢:
靈活性(Flexibility)
多重籤名在實現账戶的多方管理過程中,其靈活性顯著低於門限籤名,具體體現在兩方面:首先,多重籤名機制下籤名者的公鑰以及其他信息共同決定账戶地址,一旦账戶的控制邏輯發生變化(如增加或者減少籤名者),那么账戶地址就會發生變化,需要將資金從舊账戶地址轉移到新账戶地址,靈活性較低;其次,在比特幣中,多重籤名的公鑰數量是有上限要求的,因此超過上限數量的多方账戶管理場景,無法使用多重籤名。
而在門限籤名機制下,籤名者身份的變化會體現爲账戶私鑰份額的重新分配和生成(Reshare),账戶地址並不會發生變化;同時,門限籤名中的 n 和 t 可以任意設置,不存在任何限制,可以支撐任意場景需求。
匿名性(Anonymity)
區塊鏈的一個核心特徵即爲匿名性,即鏈上账戶地址與現實身份無法一一對應。然而,多重籤名的使用會導致用戶匿名性的急劇降低,具體體現在兩個方面:首先,鏈上账戶地址雖然與現實身份無法一一對應,但是其相關的交易是公共可見的,而多重籤名機制下,每個籤名者的公鑰都是暴露出來的,因此不同的账戶就會通過公共的籤名者進行關聯,導致账戶隱私和匿名性的破壞;其次,多重籤名公鑰集合的暴露,以及完整交易的所附的籤名個數,能夠有效推導出該账戶的控制邏輯,甚至可以根據账戶行爲與現實業務進行掛鉤,降低了匿名性。
而在門限籤名機制下,其最終生成的交易和普通交易數據結構一致且不可區分,而籤名的過程則是在鏈下完成,並不會導致任何匿名風險。
可擴展性(Scalability)
在多重籤名機制下,最終的區塊鏈交易上需要附上所有籤名者的數字籤名,因此交易大小和籤名者的數量是呈线性增長關系的。因此,控制邏輯(如籤名者數量增加)越復雜,那么最終的交易的數據量就越大。這一特徵導致兩個後果:首先,區塊鏈交易費是與交易大小掛鉤的,因此使用多重籤名會導致交易費升高,增加其使用成本,對於一些高頻業務場景,並不適配;其次,交易佔用空間的提升也會額外增加整個區塊鏈的運行載荷,間接降低系統運行效率。
而門限籤名則完全沒有這一顧慮,因爲其最終的輸出結果和普通數字籤名是一致的,只是在籤名過程中需要各節點進行相關的通信和計算。
具體而言,門限籤名機制下,交易的數據結構中仍然只包含一個籤名,和普通交易並無區別,因此交易費較低,也不會給區塊鏈系統增添額外的負擔。
Part 4:門限籤名在區塊鏈領域中的應用
保障區塊鏈账戶安全
近年來,以比特幣爲代表的加密數字貨幣得到了迅速發展,並作爲一種新興的支付手段逐漸進入普通人的生活。與傳統支付系統不同,加密數字貨幣系統不存在中心化的運營機構,所有支付操作都是通過從账戶發送帶數字籤名的交易完成。因此,加密貨幣账戶的安全等價於籤名私鑰的安全,私鑰的泄露會直接導致账戶內資產被竊取。然而用戶加密數字貨幣账戶的安全正在遭受巨大威脅:黑客通過發送帶木馬的郵件控制用戶電腦,竊取账戶私鑰,然後發送交易將其中的加密貨幣轉移到交易所出售牟利。因此,保障加密數字貨幣账戶安全已經迫在眉睫。
門限籤名算法是保障加密數字貨幣账戶安全的有效手段。用戶账戶私鑰不再由單一節點生成和保存,而是由 n 個節點合作生成一個账戶地址,每個節點保存账戶私鑰的一個碎片。發送交易時,由其中一個節點構造交易內容並發送其他節點。然後所有節點運行門限籤名算法,合作生成交易的合法籤名。最終由某個節點將帶籤名交易廣播到區塊鏈網絡中即可。攻擊者需要對至少 t 個節點攻擊成功才能夠恢復账戶私鑰。用戶可以根據實際需求靈活確定節點總數 n 和安全門限 t 的取值。因此,門限籤名算法能夠有效提高加密數字貨幣账戶的安全性。
跨鏈資產鎖定
跨鏈技術能夠使得數字資產在不同區塊鏈上自由流動,打破不同區塊鏈之間信息孤島。跨鏈過程中一個重要前提是“資產守恆”,即當數字資產從一條區塊鏈轉移到另一條區塊鏈上時,原區塊鏈的數字資產需要鎖定。爲保證去中心化,資產鎖定往往是由一組節點完成,只有超過一定數量節點合作才能夠完成解鎖。
對於以太坊、EOS 等支持智能合約的區塊鏈而言,僅需將資產鎖定的邏輯編寫爲智能合約,用戶將資產轉入這一特定合約即可完成鎖定。而對於比特幣等不支持智能合約的區塊鏈而言,資產鎖定依賴於建立一個多方托管的鎖定账戶,用戶將資產轉入這一账戶即可完成鎖定。
正如第三部分介紹,雖然多重籤名也能完成账戶的多方托管,但是門限籤名在靈活性、匿名性和可擴展性方面的優勢,更加適合跨鏈資產鎖定場景。靈活性方面,n 和 t 的取值可以任意設置,滿足不同的場景需求;匿名性方面,門限籤名算法生成的鎖定账戶與普通账戶數據結構和使用方式完全相同,合法的籤名並不能暴露參與籤名過程節點的信息;可擴展性方面,每筆交易和普通交易一致,僅需攜帶一個數字籤名,降低了交易費用。
共識機制的設計
在拜佔庭類(BFT)的共識協議中,共識節點需要對所要共識的內容進行投票,投票超過一定比例(如三分之二),即爲達成共識。算法過程中,“投票”需要對投票者身份進行核驗,且要防止重放攻擊,而採用的解決方案即爲對共識內容進行數字籤名,然後廣播。分析整個共識過程,其核心邏輯和門限籤名是非常吻合的,即超過一定門限值節點認可,即爲共識/籤名成功。因此,與其共識節點需要在網絡中收集足夠數量的籤名信息,不如基於門限籤名構造一個共同的公鑰,然後每個共識節點掌握一個私鑰碎片,認可共識內容即用私鑰碎片計算得到籤名碎片,超過門限值數量的共識節點參與即可獲得完整的數字籤名。這種設計模式可以有效降低共識結果所佔用的空間。
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播信息之目的,不構成任何投資建議,如有侵權行為,請第一時間聯絡我們修改或刪除,多謝。
標題:門限籤名的概念與應用
地址:https://www.torrentbusiness.com/article/41339.html