共識機制(Consensus Mechanism)是區塊鏈事務達成分佈式共識的算法。區塊鏈節點共識過程中,所有節點都需要對整個區塊進行簽名,並將區塊數據、節點公鑰、簽名數據等數據存儲在區塊中。區塊鍊主要使用數字簽名來實現權限控制、識別交易發起者的合法身份,以防止惡意節點冒充。

而隨著區塊鏈技術的發展與廣泛應用,簽名相關存儲數據也會不停增長。區別於傳統的應用,理論上區塊鏈上的數據只會不斷地增加,海量簽名帶來了海量數據,給簽名驗證帶來了巨大負擔。驗籤時所需要使用的公鑰究竟有多大?不同的簽名算法數據也有所不同,一般而言ECDSA/Schnorr/EdDSA 算法256 bits、BLS 算法384 bits,如果有上萬公鑰在驗證時候被需要,那麼所需的存儲的數據量十分龐大。

由上可知,在算法層面大量驗證信息需要被存儲、被處理,那該如何解決區塊鍊網絡繁重的驗證問題?近期,Web3 基金會的研究員Syed Hosseini 介紹了完全簡潔的BLS 聚合簽名APK 證明的強大功能和驗證示例。下面將為大家翻譯整理Syed Hosseini 報告中的關鍵內容,感興趣的開發者可至文末查看所有參考文獻的來源鏈接。

APK 證明技術所解決的問題

在傳統的數字簽名算法中,如果一個委員會有很多成員,驗證者需要知道每個成員的公鑰,並收集每個成員在簽署過程中的簽名信息,但是這樣操作的驗證成本非常高

APK 驗證是由Web3 基金會研究人員設計和實現的一種協議。它允許驗證者在不知道每個成員的個別公鑰的情況下,驗證由簽署委員會的部分成員(如一組驗證者集合)簽署的事實。這項協議的關鍵之處在於,它利用了SNARKs 技術,將驗證所需的成本大大降低。下面將介紹其如何利用SNARKs 技術和BLS 聚合簽名實現上述功能。

SNARKs 技術

首先讓我們認識一下SNARKs 技術,其是一種零知識證明的形式,具有以下關鍵特點:

  • 零知識:意味著除了特定陳述為真之外,不會透露有關證明者秘密輸入的信息。

  • 簡潔:意味著證明體積小,可以快速檢查。這是一個至關重要的屬性,因為它使系統高效且可擴展。

  • 非交互式:這意味著證明由從證明者發送到驗證者的單個消息組成,不需要來回交互。這是通過稱為Fiat-Shamir 啟發式的過程實現的,該過程將交互式證明轉換為非交互式證明。

  • 知識論證:這是一個技術術語,本質上意味著計算上合理的證明,其中計算有界的驗證者不能被計算無界的證明者說服錯誤陳述。

儘管SNARKs 非常有潛力,但不可忽視的事,其在“可信設置”初始階段會生成一些必須保密的參數。如果這些參數受到損害,整個系統的安全性就會受到損害。這導致了其他零知識證明系統的發展,如zk-STARKs,它們不需要可信的設置,但該技術目前尚不成熟,未得到廣泛應用。

而APK 證明的SNARKs 基於多項式協議和多項式承諾。其將在委員會成員的公共關鍵點坐標之間定義一組多項式關係。如果證明者能夠說服驗證者這些關係成立,那麼驗證者可以確定小組委員會的聚合公鑰是正確的。即APK 證明可以有效地驗證多個成員的簽名,而無需知道每個成員的具體公鑰。

BLS 聚合簽名

BLS 聚合簽名是Boneh–Lynn–Shacham 的簡稱,其最初由斯坦福大學教授Dan Boneh 等人提出的一種簽名方案。 BLS 特點在於採用了基於雙線性映射的橢圓曲線配對技術,以實現簽名的驗證與聚合,即BLS 簽名使用配對函數進行驗證來節省區塊空間。在運行APK 證明時,並不需要驗證BLS 簽名本身,只驗證聚合公鑰是否確實正確聚合,這只需要在Einnₑr (BLS 公鑰在曲線Einnₑr上定義)上添加功能,並且驗證者在驗證聚合公鑰正確之前,永遠不需要使用配對功能。

總之,APK 證明利用了一種承諾機制,只需要驗證者擁有一個固定大小的已驗證的公鑰集合,就可以通過協議提供的簡單的證明,來驗證聚合簽名的正確性。由此,其極大地簡化了驗證過程,並且減少了所需的信息交換量。這為構建安全可靠的去中心化應用和系統,提供了更加高效和可擴展的解決方案。

一文解讀 APK 證明的強大功能與輕客戶端實踐

APK 證明的區塊鏈輕客戶端實踐

目前,現有區塊鏈上的計算和存儲成本遠高於現代手機瀏覽器中的成本。因此,受到手機等設備在計算能力方面存在的限制,很多區塊鏈應用無法得到普及。目前輕客戶端又依賴於全節點去執行大量操作,輕客戶端需要發送多個請求來執行簡單的操作,因此所需的總體網絡帶寬高於全節點的帶寬。

此外,對於波卡生態而言,區塊鏈互操作性的一個關鍵挑戰是實現一個擁有高效且安全的鏈上輕客戶端協議。現有的協議在驗證方面要么缺乏責任制,要么效率低下。如Cosmos 的採用跨鏈通信IBC 協議,該協議的效率問題成為網橋中使用鏈上輕客戶端驗證器的障礙。而APK 證明憑藉高效的驗證,為構建安全可靠的去中心化應用和系統,提供了更加高效和可擴展的解決方案。

責任制的輕客戶端系統

Web3 基金會研究員定義設計並實現了第一個責任制的輕客戶端系統(accountable light client system) ,其具有高效驗證、安全等優勢,且可作為核心模塊集成到SNARKs 友好的PoS 區塊鏈安全橋中。具體而言,該輕客戶端系統將具有以下特點:

- 責任制:該輕客戶端系統是負責任的。即如果輕客戶端驗證器被誤導,並且其通信的記錄被提供給網絡,那麼可以識別到大量行為不端的共識參與者。一方面,當向輕客戶端驗證器發送最少的數據時,在輕客戶端系統上識別行為不端的共識參與者是具有挑戰性的。另一方面,識別不當行為對於任何利益證明協議都是必要的,其安全依賴於識別和懲罰不當行為的共識參與者。

- 異步安全:即在共識的誠實假設下,該輕客戶驗證器不會被誤導。即使它對網絡的視野有限,如其只連接到一個節點,這可能是惡意的。這是其繼承了區塊鏈拜占庭協議的異步(asynchronous)安全特性,在異步的網路環境中,確定性質的協議無法容忍任何錯誤。

- 遞增性:即它的簡潔狀態(Succinct State)是漸進更新的。有效的更新與橋接應用程序關係密切,而不是試圖優化驗證區塊鏈起源的共識決策。

總之,責任制的輕客戶端系統在使用BLS 聚合簽名和SNARKs 技術的區塊鏈之上輕鬆實現高效驗證。作為Polkadot 生態系統的一部分,目前開發人員正在將該輕客戶端整合到Polkadot 和Kusama 中的live Substrate bridge。

利用此類證明設計的區塊鏈輕客戶端部分代碼示例請參閱:

https://github.com/w3f/apk-proofs/blob/main/bw6/examples/recursive.rs

一文解讀 APK 證明的強大功能與輕客戶端實踐

輕客戶端將為去中心應用程序的發展、促進加密網絡的大範圍採用提供關鍵推動力。如上文所述,APK 以技術創新實現強大的功能,進一步提高輕客戶端協議的效率和可靠性,也期待該技術後續更多地應用到去中心化應用之中。 OneBlock 將持續關注波卡與Substrate 生態相關技術更新,希望能夠為各位開發者提供一些啟發。

參考文獻

Fully Succinct BLS Signature Aggregation

Accountable Light Client Systems for PoS Blockchains

Zero Knowledge Proofs, SNARKs, STARKs and Bulletproofs

Research Update: APK Proofs By Hand and Sage

Accountable light clients From SNARKS