7月20日,Ethereum9?創始人WanseobLim在太坊技術論壇ethresear.ch上正式發布了Zkopru,這是一種二層私人交易擴容解決方案,同時使用了zk-SNARK和Optimisticrollup技術。它能夠以很低的成本支持ETH,ERC20,ERC721代幣在二層網絡內進行私人轉移和原子交換。此外,借助預付款功能,用戶可以在交易確認之前從二層提取資產。
非常高興分享以太坊二層隱私技術Zkopru的實現。從去年11月開始,我和
4.使用chacha20算法對數據進行加密,并使用臨時公共密鑰創建備忘錄數據:
ephemeral=random.new()
public_ephemeral=generator.multiply(ephemeral)
shared_key=recipient_jubjub.multiply(ephemeral)
ciphertext=chacha20.encrypt(data,shared_key)
memo=public_ephemeral+ciphertext
解密
使用Diffie-Hellman密鑰交換協議,接收者還使用公共臨時密鑰和私有密鑰創建共享密鑰。
1.解析備注并獲取共享密鑰:
public_ephemeral,ciphertext=parse(memo)
shared_key=public_ephemeral.multiply(private_key)
2.使用共享密鑰解密ciphertext:
decrypted=ciphertext.decrypt(shared_key)
當前NFT市場情緒指數為26,等級為“Cool”:金色財經報道,據NFTGo數據顯示,當前NFT市場情緒指數為26,等級為“Cool”。近24小時NFT市場買家地址數量為17,353個,賣家地址數量為21,589個。近30天盈利地址數量為102,262個,虧損地址數量為363,853個。
注:NFT市場情緒指數是根據波動率、交易量、社交媒體和谷歌趨勢計算得出。[2023/1/1 22:19:01]
3.接收者使用解密結果嘗試生成各種可能的UTXO。這是因為加密的數據只有49個字節以最小化調用數據的大小。因此,接收者應嘗試各種組合以檢查交易是否包括被恢復的UTXO哈希。如果未能在TX中找到已恢復的UTXO,則認為TX沒有接收方的輸出。
壓縮數據
為了最大程度地減少調用數據,Zkopru將原始數據壓縮為49字節數據。首先,它擺脫了加密候選者的公鑰,因為接收者將使用自己的公鑰來推斷出。并且,它使用TokenID,該TokenID將支持的token地址和索引從0映射到255。然后,由于value可以是ether,erc20Amount或nftId,因此接收者針對這3種情況創建了三種類型的UTXO。最后,如果在交易的輸出列表中存在任何推斷出的UTXO,則接收者成功接收了UTXO。
局限性
Zkopru不會強制回路檢查加密協議。因此,如果發送者未使用適當的共享密鑰或數據,則接受者將不會收到備注。
原子交換
Zkopru以直接方式支持原子交換。如果A和B想要交換其資產,則它們會彼此創建備注并將所需的備注公開在交易數據上。然后,協調者應對相反的交易進行配對或被削減。
加密研究員:Jump Trading可能通過操縱Pyth喂價阻止鏈上倉位被清算:11月27日消息,加密貨幣和金融研究員FatMan發推表示,對做市商Jump Trading產生質疑,認為其有可能通過操縱Pyth預言機喂價阻止某些鏈上倉位被清算,甚至表示有Jump員工透露數月前Jump有意使用Pyth狙擊散戶倉位。[2022/11/28 21:05:32]
例如,愛麗絲想用天的50ETH交換鮑勃的1000DAI。
愛麗絲支出她的60ETHnote,并為自己創建了10ETHnote,并為鮑勃創建了50ETHnote。
愛麗絲還計算她未來的1000DAInote的哈希值,并將該哈希值暴露給她交易的swap字段。
鮑勃則支出他的3000DAInote,并為自己創建了2000DAInote,為愛麗絲創建了1000DAInote。
鮑勃還計算他未來的50ETHnote的哈希值,并將該哈希值暴露給他的交易的swap字段。
一旦協調者匹配了交易池中成對的交易集,它將把交易對包括在一個新區塊中。
如果一個區塊僅包含其中一個,則協調者將被削減。
Zkopru正在使用一種簡單版本的原子互換。然而如果你想要檢驗一種基于MPC的zk原子互換模型,你可以在這里看到詳細信息。
Merkle樹結構
UTXO樹和withdrawal樹中的備注在下一個版本將有64深度。將只有一個單一的UTXO樹和一個提取樹。
Zkopru的樹林由UTXO樹,nullifier樹和withdrawal樹組成。
數支F1車隊被迫在法國大獎賽期間移除加密相關廣告商標:7月26日消息,長期以來,法國對多種產品的廣告都有嚴格的規定,加密貨幣是最新一個違反法國規定的產品。在上周末的法國大獎賽期間,幾支F1車隊不得不遮蓋或移除加密相關產品的商標貼紙。(RacingNews365)[2022/7/26 2:38:57]
UTXO樹是僅追加用法,包含UTXO的Merkle樹。通過提交包含Merkle證明,用戶可以將UTXO用作交易的流入。并將交易的輸出結果附加回最新的UTXO樹中。
另外,如果zk-transaction創建withdrawal輸出,則Zkopru會將它們附加到最新的withdrawal樹中。將樹的根被標記為已完成后,所有者可以通過證明所有權來提取資產。
然后,通過commitment-nullifier方案,將用過的UTXO的nullifier標記為在nullifier樹中使用。如果交易試圖使用已經無效的葉子,它將變為無效,并且挑戰者系統會大幅削減區塊提議者。
Merkle樹規范
{%hintstyle=“warning”%}
UTXO樹&withdrawal樹在Burrito版本上有64深度https://github.com/zkopru-network/zkopru/issues/35
{%endhint%}
如何管理UTXO樹
Lossless Protocol 將推出新產品Security Oracle和Token Relaunch工具包:金色財經消息,DeFi黑客識別協議Lossless Protocol將推出兩個新產品Security Oracle和Token Relaunch 工具包,其中Security Oracle將允許識別可疑的錢包,并在黑客發生攻擊之前阻止他們。[2022/6/8 4:11:18]
單個UTXO樹是用于成員資格證明的稀疏Merkle樹。它使用Poseidon哈希生成zkSNARK證明以隱藏支出哈希及其路徑。
要將新樹葉追加到UTXO樹,協調者將執行以下步驟。1.準備一個陣列。2.協調者選擇要包括的MassDeposits,并將MassDeposits中的每筆存款附加到陣列中。3.二層交易生成新的UTXO。將新生成的UTXO附加到陣列。4.以區塊大小為32對準備好的數組進行分割。5.構造子樹(sub-tree)并執行子樹rollup。
假設UTXO樹已被個事項完全填充,系統將被填充的樹進行存檔并啟動一個新樹。也允許使用歸檔樹來引用交易的包含證明。
Nullifier樹
每次轉賬,提款和遷移交易都支出帶有包含證明的UTXO,并標記在nullifier樹上使用的派生nullifier。因此,nullifier樹是一個很大的稀疏Merkle樹,它記錄了深度為254的稀疏Merkle樹中每一個用過的UTXO。因此,Zkopru使用最便宜的哈希函數keccak256作為nullifier樹的哈希函數。
要更新nullifier樹,協調者執行以下步驟:
數據:當前Solana生態總市值為220.08億美元:金色財經消息,據CoinGecko最新數據顯示,當前Solana生態總市值為220.08億美元(截至發稿時為22,008,402,572美元),24小時交易額為3,900,987,573美元。[2022/6/3 4:00:49]
選擇交易并從交易中收集所有nullifier。
檢查是否存在任何已使用的nullifier。
將每個nullifier標記為已使用。在更新過程中,如果所有nullifier都沒有更改nullifier樹的根,請丟棄該交易,因為它會嘗試進行雙花。
就像UTXO樹一樣,Zkopru樂觀地更新了nullifier樹的根。如果有任何問題,我們可以通過生成防欺詐鏈上證明一個nullifier被使用了不止一次。要查看工作原理,請參閱
RollUpChallenge.sol和
SMT.sol。
提款樹
與withdrawal樹和UTXO樹的唯一區別在于,withdrawal樹使用keccak256作為哈希函數。之所以使用keccak256,是因為Zkopru在智能合約上需要提取樹的Merkle證明,而在SNARK回路中則需要UTXO樹的Merkle證明。在樹的根定型后,withdrawal樹中的葉子在1層智能合約中便是可以提取的。
要更新提款樹,協調者執行以下步驟:
收集已選擇交易的所有withdrawal葉子。
拆分出區塊大小為32的withdrawal數組。
構造子樹并執行子樹rollup。
大量存款
當用戶將資產存入Zkropu時會發生什么:
Zkopru合約將給定數量的資產從用戶帳戶轉移到自身。
驗證note是否帶有給定信息的一個有效哈希。
將note合并到MassDeposit列表的最后一項。
什么是MassDeposit?
MassDeposit是用于rollup證明的單個mergedLeavesbytes32值。可在此處檢查什么是rollup證明mergedLeaves。如果協調員提出一個包含MassDeposits的區塊,則該區塊會將MassDeposit中的所有note追加到其UTXOMerkle樹。
協調員如何處理MassDeposits?
協調員只能包括不再更改的“已承諾”MassDeposit。為了包含MassDeposit,協調員將監視Zkopru合約中的存款事件。
MassDeposit什么時候變成“已承諾”?
盡快將存款推到二層網絡。因此,當協調員提出每個新區塊時,它將凍結最新的MassDeposit。
協調員可以包含多個MassDeposit嗎?
是的,可以在最大挑戰成本范圍內一次包含多個MassDeposit。
大規模遷移
大規模遷移的基本思想非常簡單。雖然1層合約上的存款交易創建了MassDeposit對象,但是交易的“遷移”類型輸出可以創建MassMigration,該MassMigration為其目的地網絡構造MassDeposit。
交易可以具有UTXO,遷移或取款類型的輸出。
在Zkopru中,要進行遷移,就會涉及到源網絡和目標網絡。一旦完成源網絡上的大規模遷移,就可以執行源網絡上的migrationTo函數。該函數可以移動資產,同時為目標網絡創建MassDeposit對象。
因此,目標網絡應實現acceptMigration函數。更多信息在這里
rollup之間的遷移標準將通過EIP進行標準化。
即時取款
在Zkopru中,提取者可以通過設置每個提取note的即時提取費用來請求即時提取。然后,任何人都可以提前為未完成的提款付款并收取費用。
為了請求即時提款,所有者為她的note生成ECDSA簽名并進行廣播。擁有足夠資產且可支付的任何人都可以使用簽名提前支付取款。一旦Zkopru成功包含該交易,智能合約便將提款note的所有權轉移給付款人。最后,預付款人在完成交易后將其提取。
我們可以有一個分散的公開市場來收取即時取款費。要跟進最新進展,請訂閱此github:?https://github.com/zkopru-network/zkopru/issues/333
結論
根據此規范,我們已成功使用Circom,Solidity,Typescript等構建了測試網。
使用zk-SNARK和Optimisticrollup的以太坊二層私人交易擴展解決方案。-zkopru-network/zkopru
首先,我們可以實現了一種每筆zk交易可承受的gas成本。平均值約為8800gas,當gas限制為1,150,000且區塊時間為13.2秒時,理論上最大的TPS為105。在Zkopru中,交易數據消耗約534個字節。由于證明數據為256字節,因此如果將來應用證明聚合,我們可以減少大約兩倍的交易成本。否則,每個區塊提出和最終確定的存儲成本分別約為168kgas和55kgas。當我們包括350筆交易時,此成本約為區塊生成成本的6.7%。
此外,我們可以利用OptimisticRollup的靈活性來實現許多功能。首先,Zkopru通過多個SNARK驗證密鑰支持各種類型的交易。您甚至可以使用1個輸入和4個輸出,或4個輸入和1個輸出完成一筆交易。通過OptimisticRollup的靈活性,使其支持多種類型的交易非常簡單。其次,Zkopru實現了精確類型的挑戰案例。這意味著,如果區塊的第n個交易有問題,則質詢僅檢查該特定交易。
另外,Zkopru需要您在計算機上運行節點,這一點也很重要。因此,SNARK高效率性和輕節點是軟件實現要考慮的重要因素。因此,我們將使用Typescript和NodeJS構建該項目,以供將來在基于本機的移動應用程序中使用。預計輕型節點將僅消耗約50?100MB的存儲空間用于樹管理。
總結一下工作,我們希望Zkopru可以用于以太坊的隱私交易層。它既快速,便宜,又可移植到升級版本。歡迎感興趣的人為該項目進行捐款。您可以通過Zkopru的文檔頁面查看一個已經組織過的版本。
感謝你閱讀本文。
參考文獻:
Ethereum93/4:Optimisticrollupforzk-Mimblewimble1
BarryWhitehat’szk-rollup1
JohnAdler’sMinimalViableMergedConsensus1
Plasma-group’sOptimisticRollup
BatchDepositsforrollup/mixers/MACI
Massmigrationtopreventuserlockininrollup
據外媒7月14日報道,新加坡創建了一個基于區塊鏈的支付系統Ubin。新加坡金融管理局指出,該區塊鏈支付網絡有可能實現更快、更廉價的國際結算.
1900/1/1 0:00:00來源:Unitimes,作者:Jhonny在過去的三個月里,10種DeFi代幣的漲幅超過了比特幣和更廣泛的加密貨幣市場,但這是可持續的嗎?在過去的三個月里.
1900/1/1 0:00:00高盛前對沖基金經理拉烏爾·帕爾表示,他正在考慮買入以太坊,因為他認為這個第二大加密貨幣可能帶動下一次牛市反彈.
1900/1/1 0:00:00CenterPrime基于Hyperledger,是一條有權限訪問韓國開放的銀行API的私有鏈.
1900/1/1 0:00:00近日,德國電信子公司T-SystemsMultimediaSolutions已作為節點運營商加入Chainlink去中心化預言機網絡,此舉讓T-SystemsMMS在獲得數字資產收益的同時.
1900/1/1 0:00:00比特幣和區塊鏈技術的引入為加密貨幣領域的其他重要發明鋪平了道路。其中最重要的便是以太坊區塊鏈。VitalikButerin是以太坊區塊鏈背后的大腦,其目的是消除互聯網中的第三方.
1900/1/1 0:00:00