“一流VC”搞開發:a16z crypto的兩個SNARK工具

作者:Arrow@go2mars,來源:作者推特@ArrowCrypto_eth

最近在看一些海外加密基金對Crypto生態的拓展和創新。今天就來看看本月A16Z Crypto新推出的兩個SNARK工具。盡量只聊什麼東西可以解決什麼問題。

談到SNARK那就先聊一聊zkSNARKs吧,實際上今天聊的話題中這是兩個不同的方面。

既然從zkSNARKs開始聊起,零知識的基本原理證明就不再贅述,這項技術具有完備性,正確性和零知識性三個特點,可以實現即證明了結論又不需要透露任何細節。同時,在同態加密的背景下,驗證難度要遠遠低於生成證明難度。

我們之前在聊Layer2的時候其實提到過ZK,比如Zk-Rollup,作為一種有效證明機制為以太坊的擴容提出了新的方案。之前大家忙著擼空投做交互的zkSync,其核心即使用ZK將多個操作包到一個證明里,在鏈下完成大多數計算工作。

zkSNARKs——零知識證明應用最廣泛的技術

zk-SNARK,即“Zero-Knowledge Succinct Non-Interactive Argument of Knowledge”,即零知識簡明非交互式知識證明。

特性是①證明某個陳述為真但不揭露任何其他信息;②證明大小很小且易於驗證;③無交互。

實際上,這兩種ZKP的主要類型:交互式ZKP和非交互式ZKP都是證明者(prover)和驗證者(verifier)之間進行的過程,只是證明的交互流程不同。

以Schnorr協議為例,交互式需要verifier生成一個隨機數,而非交互式中則不需要這樣的角色,prover可以自行生成證明給所有人驗證。

zkSNARKs的大概原理是:

zkSNARKs是基於NP問題的,而NP問題屬於在多項式時間內不可解,但給定一個解,可以在多項式時間內進行驗證是否正確。 zkSNARKs就依託於某種NP問題,難以求解但可以快速驗證。 把這個問題換個形式,進行QAP二次算術程序轉化,同時會構建一個對應於代碼輸入的解“QAP的Witness”,再基於此解構建一個實際的零知識證明系統。

“一流VC”搞開發**:a16z crypto的兩個SNARK工具**

終於來到我們今天的話題了,也就是8月10號a16z crypto推出的兩個SNARK工具——**Lasso 和Jolt。 **

**SNARK(簡潔的非交互式知識證明)作為一種加密協議:允許任何人向不信任的驗證者,進行證明其知道滿足某些屬性的見證。 **

尤其是現在的應用是Layer2進行匯總,並向Layer1證明Layer2知道授權一系列交易的數字簽名。這樣就可以實現簽名本身並不需要由Layer1進行存儲和驗證,也就更有利於擴容。

SNARK背景

由於許多區塊鏈節點驗證並記錄每筆交易,因此在區塊鏈上運行計算非常昂貴。為了避免更高的交易成本,開發人員通常會執行最低限度的鏈上計算來啟用他們的應用程序。

SNARK在擴展區塊鏈方面就發揮著核心作用:使應用程序能夠在鏈下創建昂貴的計算收據,並且只承擔在鏈上驗證收據的成本。

其中的“簡潔”意味著這些收據很短。與重新計算每筆交易相比,可以用更少的工作量進行驗證。

問題

但實際上,SNARK的計算成本也很高,而且難以審計。驗證者需要被迫承擔高度並行化的額外工作。

性能更高的SNARK可以加速Layer2,也可以允許構建者解鎖尚未設想的應用程序。

所以A16Z Crypto引入了兩種新的技術:

①Lasso,一種新的查找參數,可以顯著降低證明者成本;

②Jolt,使用Lasso技術,為zkVM和更普遍的前端設計提供了一個設計SNARK的新框架。

**這兩個工具共同提高了SNARK設計的性能、開發人員體驗和可審計性,加快促近了Web3中的生態構建。 **

目前對Lasso的初始實現,已經證明:其比流行的SNARK工具鏈halo2中的查找參數加速了超過10倍。根據A16Z Crypto預計,當Lasso代碼庫完全優化時,速度會提高約40倍,同時Jolt在Lasso之上也會包含額外的創新。

查找參數(lookup argument)

查找參數(lookup argument)是SNARK 設計中的一個關鍵工具,該協議允許不受信任的證明者以加密方式提交到大型向量,然後證明向量的每個條目都包含在某個預定表中。

查找參數可以通過有效地處理不是通過少量加法和乘法自然計算的運算來幫助保持電路較小。

而電路,實際上是一種極其有限的計算模型。 SNARK前端就是將計算機程序轉換為可由SNARK後端攝取的電路的編譯器。

SNARK後端讓驗證者對電路中每個門的值進行加密承諾。然後,證明者要證明:其所提交的值,確實可以對應於驗證者檢查程序的正確執行。

目前,開發人員部署SNARK還是通過:用特殊的領域特定語言(將程序編譯為多項式約束)編寫程序或直接手動編碼約束。

但這樣耗費人力物力,還經常有安全漏洞。 Lasso 和Jolt 就是來解決這三個問題的:性能、開發人員體驗和可審計性。

Lasso作為一種新的“查找參數”方法,具有更快的證明器。與之前的方法相比,證明者承諾的值更少、更小,並且可以應用於相當巨大的表格。 而Jolt(Just One Lookup Table),是一種基於Lasso的zkVM(零知識虛擬機)設計的新方法。作為一個新的前端,可以實現基於Lasso使用巨型查找表的功能。

這就是二者所能實現的功能。

簡而言之:Lasso 引入了一種簡化的zkVM 方法,通過對大量結構化表執行查找來避免繁瑣的手動優化電路,浪費更少;

基於Jolt 的虛擬機簡單、快速且易於審核。

並且共同允許SNARK用於現有的流行編程語言,而不僅僅是那些為任務而設計的語言。

查看原文
此頁面可能包含第三方內容,僅供參考(非陳述或保證),不應被視為 Gate 認可其觀點表述,也不得被視為財務或專業建議。詳見聲明
  • 讚賞
  • 留言
  • 分享
留言
0/400
暫無留言
交易,隨時隨地
qrCode
掃碼下載 Gate APP
社群列表
繁體中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)