以太坊基金會今日發布了以太坊目前資助支持的團隊名單,其中關於layer2擴容項裡有重點提到了zkopru,這是一個綜合技術解決方案。使用了zk-SNARK和樂觀匯總的隱私交易layer2擴展解決方案。
為了詳細了解其原理,我們整理了相關內容如下。
zkopru可以實現支持ETH、ERC20、ERC721之間的layer2網絡內的隱私傳輸和隱私原子交換。此外,通過預付款功能,用戶可以在最終確定之前從layer2提取資產。
以太坊中的“樂觀”方式意味著如果我們在鏈上提供足夠的數據,我們可以跳過挑戰系統對交易的計算。 PlasmaGroup提出這個概念是為了解決Plasma解決方案中的數據可用性問題。這個概念給了我們一個顯著的計算優勢。特別是在以太坊上實現zk-transaction,需要使用對SNARK友好的哈希函數來構建Merkle樹,這在EVM上通常是非常昂貴的。
然而,使用樂觀匯總,與在鏈上計算它相比,我們可以以較低的成本更新對SNARK友好的Merkle樹。因此,該協議每筆隱私交易消耗約8,800gas。最重要的是,zkopru可以不斷升級自身,因為它支持大規模遷移,允許將資產移動到另一個layer2層網絡。
舉例,假如賬戶在layer1有100ETH,我們將使用存款菜單將其轉移到layer2。選擇“存款”。選擇“ETH(餘額:100ETH)”。輸入ETH的數量。鍵入協調員的費用。確認存款交易。然後錢包會存儲你的存款葉子的詳細信息,葉子被記錄在layer1合約上。
然後合同將您的葉子合併到分階段的“大量存款”中。隨後,協調器在提出新區塊時提交分階段的批量存款。或者,協調員可以手動提交分階段的批量存款。最後,協調器將承諾的大量存款包含到新提案中,然後您可以在layer2上使用您的UTXO。
如果用戶要發送ETH、ERC20或ERC721,需要獲取收件人的Babyjubjub公鑰。
Babyjubjub公鑰來自相應的以太坊賬戶的私鑰。輸入收件人的Babyjubjub公鑰。為了進行測試,可以從信息框獲取其他帳戶的公鑰。輸入轉賬金額。輸入交易費用的每字節價格。 zkopru錢包從協調器獲取每字節費用,並將其設置為默認值。
如果想提供更多費用,可以輸入自定義值。請注意,總費用取決於交易規模。這是因為calldata大小主要影響OptimisticRollup的成本。
最後,它在幾秒鐘內生成zkSNARK證明,並將交易發送給協調器。它目前使用HTTP協議向協調器發送事務。為了保護網絡隱私,用戶可以使用Tor。創建交易後,用於交易的UTXO將被鎖定。在協調器包含交易後,錢包會將鎖定的UTXO標記為已花費,並將新的UTXO應用到您賬戶的餘額中。
如果要將資產提現到layer-1,需要先發送提現請求。然後,用戶需要等待7天才能完成提款請求。但是,系統支持使用預付款功能即時取款。創建提款請求時,您可以為預付款設置額外費用。在塊包含提款請求後,您可以向代理付款人請求預付款。它的工作方式是代理付款人在轉移取款葉子的所有權時先付款。提款請求並在最終確定後退出。
zkopru使用銷毀拍賣來確定允許誰在網絡中提議區塊。協調員必須花費他們的以太幣來換取提議區塊和收取費用的權利。拍賣以太幣由zkopru收集,目的是用於公共物品服務。
每輪拍賣持續40個區塊(10分鐘,15秒/區塊)。如果該輪沒有出價,任何人都可以提出新的區塊。如果獲勝的提議者未能在該輪的前半段提出一個區塊,則任何人都可以在該輪的剩餘時間提出一個區塊。
潛在的區塊提議者可以通過輪次競標以獲得獨家提議權。每個出價必須至少比前一個出價高10%。輪次可以提前30天出價,直到開始區塊前2輪(80個區塊)。