引言
隱私性和可擴展性研究團隊都在填補零知識證明的前沿研究和以太坊應用開發之間的空白。
我們最近研究的一個重點領域是 zkopru(使用零知識證明的optimistic rollup),這是一套為隱私交易節約gas 的新協議。我們已經在四月份完成了一場信任起步設置,自那時開始,我們就一直在埋頭苦幹。我們已經到了實現網頁版錢包和壓力測試的最終階段。第二次審計也已在進行中。在本文中,我們想對Zkopru 的特點作概要的說明,順便預告下Zkopru 在未來幾周里有關公開測試網和主網的計劃。
本文預設了你已經大體了解以太坊、Layer2 和零知識證明的基礎知識。
什麼是Zkopru?
Zkopru 的名字來源於zk(零知識證明)和opru(optimistic rollup)。你可能聽過零知識證明、zk rollup 和optimisitc rollup。那到底什麼是zk-optimistic rollup?且聽我仔細分解。
什麼是零知識證明?
零知識證明方案(比如zkSnark)讓驗證者可以驗證一個計算過程的正確性,且驗證者無需自己重新執行這段計算、證明者也無需暴露計算的輸入。因此,零知識證明可以用於實現可擴展性和隱私性。 Zkopru 使用零知識證明來保證交易的隱私性。 Zcash、AZTEK network 和 tornado.cash 都是在區塊鏈上使用零知識證明來實現隱私性的例子。
什麼是optimistic rollup?
Optimistic rollup 是一種Layer-2 技術方案,其內部運行是平行於以太坊主鏈的。 optimistic rollup 可以帶來可擴展性上的提升,因為它們默認不在主鏈上執行任何計算。相反,用戶在optimistic rollup 環境下發送交易後,它只會在主鏈上發布執行後的狀態根以及這些交易的數據,這一切都不會造成主鏈狀態的增長,因此可以減少gas 開銷。在使用以太坊時,修改狀態是開銷繁重的事情,所以,optimistic rollup 可以提供高達10~100 倍的吞吐量提升(視乎交易的類型而定)。這篇文章介紹了optimistic rollup 的更多細節。 Rollup 的運行需要一種稱為“協調者” 的角色,需要他們來計算新狀態並在以太坊區塊鏈上發送數據。
什麼是zk+ opru
Zkopru 是一個基於UTXO 的optimistic rollup 項目。還有另一種類型的rollup 叫做zk-rollup,它使用零知識證明來驗證rollup 狀態更新計算(即交易執行)的正確性—— 但Zkopru 不是 zk-rollup。因為zk-rollup 僅使用零知識證明作為生成計算有效性證明的方法,但Zkopru 使用零知識證明來保證每一筆轉賬都是隱私的。
這個概念在gas 消耗量上具有很大的優勢。在以太坊主鏈上直接執行一筆零知識的交易,必須使用一個對SNARK 友好的哈希函數來構建一棵默克爾樹,這都是非常昂貴的(gas 消耗量非常大)。使用optimistic rollup,我們可以在鏈下更新這棵默克爾樹,成本低得多。結果是,我們這套協議,單次隱私轉賬在主鏈上只需使用8800 gas(哪怕一筆普通的以太坊ETH 轉賬,都要消耗21000 gas)。
為什麼我需要Zkopru 呢?
接下來,我們講講最重要的部分:Zkopru 面向用戶的功能。用戶可以通過一個網頁端錢包跟這個系統交互,從充值、取款、轉賬到在L2 上做幣幣互換,都可以。下面我們概要介紹下這幾個功能的用戶體驗;更詳盡的技術描述,請看我們的文檔和 GitHub。
充值:用戶可以把ETH、ERC-20 代幣和NFT 存入L1(以太坊)上的Zkopru 合約(可藉助我們提供的用戶接口)。在存入資金之後,用戶就可以在L2 上轉移自己的資產,而這背後是一套基於UTXO 的表示方法。
轉賬:存入資產後,資產還是關聯著用戶的賬戶,但隱私交易功能可以打破這種關聯。在轉賬時,發送者需要接收方的Zkopru 地址,這個不是以太坊地址哈,但用戶可以在Zkopru 錢包中使用同一把私鑰生成一個相應的地址。錢包軟件會生成一個零知識證明,證明轉賬前後系統的完整性,而無需把交易提交給Zkopru 的協調者,也無需公開任何細節。
取款:用戶希望從L2(Zkopru)撤出資金到L1(以太坊)的時候,可以直接使用錢包的取款功能。這個操作的交易細節就需要公開了,所以取款的地址和數量都不再是隱私的了。就像其它optimistic rollup 方案一樣,Zkopru 需要用戶等待7 天,取款才能完成。不想等待的用戶可以使用即時取款機制。
即時取款:如果用戶想要即時取款,他們可以出價請求另一個用戶預付資金。預付資金者可以拿到手續費,但要承擔交易被欺詐證明無效化的風險。
原子化互換:Zkopru 支持原子化互換。兩名用戶可以請求協調者協助兩者資產的互換,如果協調者拒絕協助,他們就會被懲罰。這項服務會有專門的一個網站。現在很難高效而隱私地找到相互匹配的訂單。我們正在開發一個支持隱私訂單匹配的解決方案。
成本:
用戶可以存取ETH、ERC-20 代幣和NFT。而且也有可能做到在一筆交易中同時存入ETH、ERC-20 代幣和NFT。下圖所示的USD 價值基於gas price 為25 gwei 和ETH 的價格為2500 美元的假設。
對於rollup 內的隱私轉賬,協調者會根據相關交易在L1(以太坊)上發生的成本收取一定的手續費。批量的交易會更便宜,而且要看UTXO 的數量:
除了上面列出的成本,協調者還需要為每批交易支付一筆一次性費用17 1954 Gas。
那什麼時候能用上呢?
大約兩週後,Zkopru 合約將部署在測試網上,錢包UI 也會放出,我們也會放出更多文檔來講解用戶如何上手。如果測試網上沒有出現大的問題,那麼再過約兩週,我們會放出主網合約。預計第二次審計也會在這個時間出結果。
結論
經過多年的努力,Zkopru 將很快進入生產環境,為以太坊提供便宜、隱私的交易。如果你想在測試網上使用Zkopru,請關注我們的下一篇博客。你也可以在我們的 github、網站和博客了解更多。