MarsBit |2023-04-26 8:01
近年來,零知識證明 (ZKP) 的重要性呈指數級增長,成為過去半個世紀計算機科學中最重要的創新之一。這可以歸因於 ZKP 有可能極大地增強區塊鏈平台 ( 如以太坊 ) 的可擴展性。
原文:《ZK Hardware Acceleration: The Past, the Present and the Future》by Luke Pearson、the Cysic team
編譯:Kate
近年來,零知識證明 (ZKP) 的重要性呈指數級增長,成為過去半個世紀計算機科學中最重要的創新之一。這可以歸因於 ZKP 有可能極大地增強區塊鏈平台 ( 如以太坊 ) 的可擴展性。
ZKP 的一個關鍵方麵是它們能夠顯著提高各種區塊鏈平台上的每秒交易量 (TPS),這完全依賴於數學原理而不是信任。通過使驗證者能夠將多個交易合並到一個單一的、簡潔的證明中,ZKP 確保了整個過程的準確性和完整性。ZKP 提供了許多其他功能,使它們成為各種擴展和隱私解決方案的重要組成部分,包括像 StarkNet 這樣的 ZK 聚合,像 Aztec 這樣的私有 ZK 聚合,以及像 Mina、Filecoin、Manta 和 Aleo 這樣的第 1 層鏈。儘管如此,ZKP 也不是冇有局限性,因為生成證明的過程在時間和精力方麵都是非常耗費資源的。由於需要許多複雜的數學運算,例如冪運算、倒數運算和雙線性配對計算,證明的創建通常會減慢速度。因此,優化 ZKP 解決方案以充分利用其潛力仍然是一項挑戰。為了克服所有提出的 ZKP 構造的這些問題,開發硬件加速方法是至關重要的。也就是說,通過使用專用硬件,如現場可編程門陣列 (FPGA) 和專用集成電路 (ASIC),它們可以加速 10-1000 倍。
在本文中,我們將概述與 ZKP 相關的計算挑戰,然後討論有助於解決這些問題並提高這些加密技術效率的潛在改進。
zkSNARK (Zero-Knowledge Succinct Non-Interactive ARgument of Knowledge) 方案是一種 ZKP,它允許證明者說服驗證者,證明者知道一個證人,而不透露有關該證人的任何信息。該方案包括四種算法:Setup、KeyGen、Prove 和 Verify。Setup 算法生成一些結構化的參考字符串,KeyGen 算法將使用該字符串為某些指定電路生成證明密鑰和驗證密鑰。證明者擁有證明密鑰和陳述 / 見證對,可以通過指定的電路對陳述 / 見證對的關係生成 ZK 證明。驗證者可以使用驗證密鑰和聲明來檢查 ZK 證明的有效性。
zkSNARK 方案需要滿足以下特點:
另一種變體稱為 zkSTARK (Zero-Knowledge Scalable and Transparent ARgument of Knowledge)。它可以在零知識的情況下運行,也可以在冇有零知識的情況下運行,並且可以是交互式或非交互式協議。它們也可以取代 zkSNARK 作為交互協議。與 zkSNARK 不同,交互式證明不需要可信的 Setup 設置階段,這使 STARK 係統成為更好的選擇。STARK 係統通過利用交互式 Oracle 證明 (IOP) 域克服了這一缺點,該域依賴於快速 Reed-Solomon 代碼來提高可擴展性,從而開發了 zkSTARK 證明係統。此外,基於 zkSTARK 的係統對於證明者和驗證者來說都具有對數複雜度,使它們變得高效,並防止一方執行拒絕服務 (DoS) 攻擊,因為每一方的計算需要相似的時間。zkSTARK 的另一個值得注意的特性是推測的後量子安全性,而 zkSNARK 則不是由於 Shor 的量子算法。zkSTARK 係統提供後量子安全,前提是框架內使用的哈希函數本身能夠抵抗量子計算攻擊。