BLS簽名

BLS簽名,即Boneh-Lynn-Shacham簽名,是一種基於橢圓曲線雙線性映射的數字簽名方案,由Dan Boneh、Ben Lynn和Hovav Shacham於2001年提出。該方案具有簽名長度短、支持簽名與公鑰的非互動式聚合等特性,其驗證過程依賴於雙線性配對運算。

BLS簽名因其聚合特性在區塊鏈等領域得到套用,但其單個簽名驗證速度相對較慢。後續出現了針對驗證速度的改進方案,如引入Chaum-Pedersen證明的CPABLS方案。同時,實踐中也發現了與零值處理相關的安全漏洞及Rogue Key攻擊等風險。一些區塊鏈項目為提升安全性,從BN254曲線遷移至安全級別更高的BLS12-381曲線。

基本含義,發展歷程,基本特徵,套用,影響,相關研究,

基本含義

BLS簽名全稱為Boneh-Lynn-Shacham簽名,由Dan Boneh、Ben Lynn和Hovav Shacham於2001年提出。它是一種基於橢圓曲線密碼體制和雙線性映射的數字簽名方案。
該方案具有簽名長度短、支持簽名聚合與多重簽名等特性。

發展歷程

BLS(Boneh-Lynn-Shacham)簽名方案由Dan Boneh、Ben Lynn和Hovav Shacham於2001年提出。該方案因其獨特的聚合簽名特性,在區塊鏈技術興起後逐漸從理論研究走向工程實踐。
以太坊2.0、Zcash、Algorand、Filecoin、EigenLayer等多個知名區塊鏈項目相繼採納了BLS簽名方案,主要用於驗證者投票聚合、多重簽名等場景,以提升效率並減少鏈上數據大小。
在套用初期,許多項目(如以太坊)使用BN254曲線,並通過預編譯契約(如EIP-196、EIP-197)來最佳化智慧型契約中的驗證效率。後續分析表明BN254曲線的安全級別約為100位,而非之前認為的128位。為提高長期安全性,行業開始向安全級別更高的BLS12-381曲線遷移,以太坊在Pectra升級中也通過EIP-2537預編譯契約增加了對該曲線的支持。
隨著套用的深入,研究人員也在不斷最佳化BLS簽名。例如,2024年有研究提出了CPABLS變體,通過引入Chaum-Pedersen證明來消除驗證時的雙線性映射操作,以提升單個簽名的驗證速度。同時,在實際套用中也暴露出一些安全挑戰,例如在特定實現中存在的簽名可延展性漏洞、與零值處理相關的“零值分裂”攻擊以及聚合場景下的Rogue Key攻擊風險,這些推動了相關密碼學庫和協定規範的不斷完善。

基本特徵

BLS簽名是一種基於橢圓曲線雙線性映射的數字簽名方案,其核心特徵主要體現在簽名短小緊湊、支持高效的簽名與公鑰聚合,以及驗證過程依賴計算相對耗時的雙線性配對。
簽名短小緊湊:BLS簽名是單個曲線點,長度固定且較短,相比Schnorr簽名或ECDSA簽名,其簽名大小通常要小2倍。
可聚合性是BLS簽名的核心優勢,包括簽名聚合與公鑰聚合。支持非互動式簽名聚合:多個簽名者對不同或相同訊息的簽名,可以通過簡單的點加運算聚合成一個單一的簽名,且聚合簽名的大小與單個簽名相同。對於n個簽名,驗證聚合簽名只需n+1次配對運算,而非n次獨立的驗證,顯著提升了批量驗證效率。支持公鑰聚合:在驗證多個簽名者對同一訊息的簽名時,可將多個公鑰聚合成一個聚合公鑰,驗證時僅需兩次配對運算,驗證開銷與簽名者數量無關。
基於雙線性配對驗證:驗證過程依賴雙線性配對函式,雖然聚合驗證能大幅提升效率,但單個簽名的配對驗證計算複雜度較高,比其他橢圓曲線簽名方案更耗時,這是BLS簽名的主要性能瓶頸。
BLS簽名的安全性基於橢圓曲線離散對數問題等困難問題,並依賴於所選配對友好曲線的安全性。

套用

BLS簽名憑藉其簽名短小、支持非互動式聚合以及驗證高效等特性,在多個對安全性和效率有高要求的領域得到了廣泛套用。其核心套用主要集中在以下幾個方面。
在區塊鏈領域,BLS簽名是實現高效共識與驗證的關鍵技術。例如,在以太坊信標鏈等權益證明共識機制中,成千上萬個驗證者對同一區塊的投票可以被聚合成一個單一的BLS簽名。這種聚合極大地節省了區塊空間和網路頻寬,並顯著降低了鏈上驗證的計算開銷。
在Layer2擴容方案和中間件協定中,BLS簽名同樣扮演著重要角色。以EigenLayer的主動驗證服務為例,其利用BLS聚合簽名來高效地驗證眾多運營商對任務完成情況的證明。聚合器收集到足夠數量的運營商簽名後,將其聚合成一個,隨後在智慧型契約中一次性完成驗證,從而大幅提升了系統的可擴展性和經濟性。
在分散式系統和物聯網場景中,BLS簽名可用於確保訊息的完整性與真實性。其聚合特性使得在資源受限或高吞吐量、低延遲的網路環境中,能夠有效減少通信開銷和驗證負擔,適合大規模設備間的安全認證。
在隱私保護領域,BLS簽名可用於構建匿名憑證系統。這類系統允許用戶向驗證方證明自己擁有某些屬性或許可權,而無需泄露其真實身份信息。
在雲計算數據安全等新興領域,BLS簽名也有探索性套用。例如,有研究提出了一種修改版的BLS簽名動態審計算法,用於支持隱私保護的雲數據動態審計方案。該方案通過集成同態認證器和隨機掩碼技術,在實現第三方高效審計的同時,保護了用戶數據的隱私。

影響

BLS簽名作為一種創新的密碼學方案,其獨特的聚合特性對區塊鏈和分散式系統領域產生了影響。
BLS簽名顯著提升了區塊鏈系統的可擴展性。通過簽名聚合技術,BLS簽名能夠將多個簽名合併為一個,大幅減少了鏈上存儲簽名數據的空間占用,並降低了批量驗證簽名時所需的計算量。
BLS簽名有效降低了分散式系統的通信與驗證成本。其聚合特性使得系統能夠對來自多個參與者的簽名進行高效的批量驗證,極大地提升了共識機制和分散式套用的整體運行效率。
BLS簽名的廣泛套用推動了密碼學庫與相關標準的演進與發展。這催生了對高效、安全橢圓曲線的深入研究,並促進了相應密碼學庫的最佳化與標準化進程。
BLS簽名方案也帶來了一系列獨特的安全挑戰與關注點。在實現和套用中暴露出一些安全漏洞,例如Rogue Key攻擊、簽名可延展性以及零值處理相關的“零值分裂”攻擊等。
在性能方面,BLS簽名存在權衡。儘管聚合驗證能極大提升效率,但單個BLS簽名的驗證過程因涉及複雜的雙線性配對操作,其速度通常慢於ECDSA或Schnorr等傳統方案。與同樣支持聚合的Schnorr簽名方案相比,BLS簽名在驗證速度上處於劣勢。

相關研究

針對BLS簽名方案在套用中存在的驗證效率與安全性等問題,研究者們從多個方向展開了研究。這些研究主要包括旨在提升驗證速度的性能最佳化方案、修補已發現安全漏洞的增強措施、為適應特定套用場景而進行的算法修改,以及構建更安全靈活的多重簽名方案等。
在性能最佳化方面,針對BLS簽名驗證需要進行雙線性配對操作導致速度較慢的問題,研究者提出了多種變體方案。例如,潘天雨和趙運磊於2024年提出的CPABLS方案,通過將Chaum-Pedersen離散對數相等性證明納入簽名,使得驗證算法不再需要雙線性映射操作,從而顯著提升了驗證速度。該方案在公鑰聚合時也只需對公鑰進行簡單求和,減少了計算開銷。
在安全性方面,實踐中發現了BLS簽名存在多種安全漏洞,並催生了相應的修複方案。例如,針對Filecoin實現中因簽名序列化與壓縮格式不統一導致的‘簽名格式可延展性’漏洞,建議在驗證前統一簽名格式。針對多個主流BLS庫中存在的‘零值分裂’攻擊(涉及零長度簽名、零公鑰、模運算中的零值處理缺陷等),建議明確定義並一致實現零值處理策略。此外,針對多重簽名中可能發生的Rogue Key攻擊,普遍建議採用Proof-of-Possession(PoP)機制進行嚴格驗證,或使用非線性聚合方法。
為拓展BLS簽名的套用場景,研究者對其進行了多種改進。例如,有研究提出了一種修改版的Boneh-Lynn-Shacham動態審計(MBLSDA)算法,該算法將同態認證器集成到動態簽名審計中,並利用Rijndael算法加密數據,旨在為雲環境下的多用戶數據提供支持動態審計的隱私保護安全方案。
在多重簽名方案方面,研究重點在於構建更安全、靈活的方案以應對聚合過程中的安全問題。除了廣泛採用的Proof-of-Possession機制來防禦Rogue Key攻擊外,也在探索m-of-n門限簽名等更複雜的構造。

相關詞條

熱門詞條

聯絡我們