基於 BLS 和盲簽名的多方金鑰託管

買賣虛擬貨幣
現今,越來越多的企業與投資機構正湧入區塊鏈行業。與個人使用者使用的冷熱錢包保護資產不同,企業與投資機構由於資金量大而需要更高階別的安全性,因此多方金鑰託管服務應運而生。多方金鑰託管是指資產需要 M 箇中的 N 個金鑰(M>N)才能夠轉移,其中部分金鑰由專門的託管方所保護。目前的金鑰託管服務存在隱私性不足的問題,面臨著權威機構的審查與干預的風險。本文提出一種基於 BLS 和盲簽名的多方金鑰託管服務以解決上述問題。多重簽名技術多方金鑰託管服務以 Bitcoin 的多重簽名技術為最基本實現。BTC 的多籤技術最初在 BIP11 中進行了論述。假設一個 2/3 的多重簽名錢包,透過將某一個金鑰託管至專業的託管方,必須有 2 個以上的金鑰才能夠轉移該資金。這防止了單一金鑰的風險,駭客盜取某一金鑰將無法轉移資金。與此同時,這也能夠防止金鑰丟失的問題:假設丟失了其中一個私鑰,使用者也能夠再次設定另外一個 2/3 多重簽名,並寫入重新生成的公鑰即可。除此之外,多籤技術的應用領域廣泛。在企業中,多籤技術能夠防止單一人員控制企業資產的風險。在商業交易中,假設交易雙方互不信任,可以使用多籤技術選擇獨立第三方作為交易簽名者,以防止某一交易方的不誠信行為。多重簽名技術極大地提升了資產的安全性,並拓展了區塊鏈的應用場景。但是多重簽名技術的隱私性並無法得到保障,在解鎖多籤指令碼時將暴露多籤的公鑰:
m {pubkey}...{pubkey} n OP_CHECKMULTISIG公鑰隱私(地址)的暴露便捷了權威機構的審查與干預,權威機構可以根據多籤公鑰快速定位託管方以及審查物件,並要求當地運營的託管方對某些使用者拒絕提供簽名服務,甚至強制資產轉移。BLS 簽名技術就上述問題而言,BLS 簽名技術提供了相對好的隱私性。BLS 簽名所能夠實現的功能與目前 BTC 的多重簽名是一致的,但在鏈上僅表現為單一聚合簽名。在具體的實現中,BLS 簽名將金鑰拆分成 M 份分發給 M 個人,只需要有 N(N 小於等於 M)個人進行簽名,就可以進行解籤並轉移該金鑰下的數字資產。在採用 BLS 簽名的情況下,參與多籤的使用者與託管者資訊及其數量從未暴露。但是當使用者需要使用該資金並請求託管方進行簽名時,使用者需要將交易雜湊傳送至託管方進行簽名。如果交易成功上鍊,託管方就能夠掌握使用者的公鑰,也因此本質問題並未解決。多方盲簽名技術
根據上文的論述,我們只需要在使用者請求託管方簽名時,不傳遞交易雜湊(或者其他可能暴露使用者資訊的資料)就可以將使用者資訊與託管方相隔離,間接地解決上文中的諸多問題。此處需要引入盲簽名的概念。盲簽名由 David Chaum 於 1982 年提出,一般用於如下場景:使用者 A 的交易需要使用者 B 進行簽名,且不希望使用者 B 知道簽名資訊。我們將盲簽名與 BLS 簽名技術相結合,就能妥善地解決多籤隱私問題,其具體流程如下:1. 使用者為多個資產託管方生成私鑰份額,並透過秘密的方式傳送給對應的託管方;2. 當使用者需要對訊息簽名時,先對訊息進行盲化處理,然後再傳送給選定的託管方進行簽名;3. 託管方響應使用者的簽名請求,將盲化交易簽名後傳送給使用者;

4. 使用者收集好一定數量的託管方簽名後,進行去盲操作,計算出使用者自己的簽名。

Bingo!透過這種方式,託管方不僅無法掌握使用者的公鑰資訊,在類似 Bitcoin、Ethereum 這樣交易量大的區塊鏈中,亦不可能鎖定使用者的交易資訊。使用者既能夠享受到多籤技術帶來各種優勢,也能夠保證良好的隱私性,因此避免了上文中描述的諸多問題。在這種方案下,託管方所承擔的責任也僅僅是維護私鑰份額的安全,與使用者進行了風險隔離。

Nervos 能更好適配新密碼學演算法

具備隱私特性的多籤演算法能夠擴充套件區塊鏈的應用場景,但是並非所有的區塊鏈都支援 BLS 簽名。BLS 簽名的驗籤速度低於目前比特幣使用的 ECDSA 演算法,更低於 Blockstream 團隊所建議的 Schnorr 簽名演算法(https://medium.com/cryptoadvance/bls-signatures-better-than-schnorr-5a7fe30ea716)。因此,將 BLS 簽名演算法作為區塊鏈預設的簽名演算法會極大地降低整體區塊鏈的吞吐量。對於大多數只支援單一簽名演算法的區塊鏈來說,BLS 簽名演算法不是好的選擇。

Nervos 為此給出了答案。Cipher 在《Nervos CKB 應用層優勢二:安全與便捷兼得》(https://talk.nervos.org/t/nervos-ckb-2/2862)中談到:和幾乎所有的公鏈專案不同,Nervos CKB 將密碼學演算法作為抽象的原語與底層剝離。使用者可以指定自己的資產或合約採用任意預定義的密碼學演算法來驗證授權。這意味著在 Nervos 上可以部署任何種類的密碼學演算法作為交易的驗籤演算法,無需透過硬分叉的方式獲得支援。

相信 Nervos 的這一特效能夠促進更多密碼學創新應用的出現。

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;