ZKEVM是一個具有可編程性,以ZK技術為基礎的虛擬機,它可以為虛擬機執行的所有操作生成一個零知識證明,用來證明虛擬機執行操作的正確性。有關ZKEVM的幾種實現方案介紹及優劣對比,可以參考V神的文章:ThedifferenttypesofZK-EVMs;如果你想了解更多的設計細節,你也可以閱讀PSE的ZKEVM方案(native-level):privacy-scaling-explorations/zkevm-specs?Polygon的ZKEVM設計(bytecode-level):?PolygonzkEVMDocumentation;Sin7y的ZKEVM設計(language-level):OlaVM:AnEthereumcompatibleZKVM。
無論是哪種方案,都需要用zk去約束VM的所有的行為,這些行為包括:
?執行合約計算邏輯
??執行內存訪問
??執行哈希計算
??執行世界狀態更新
??...
眾所周知,zk在計算壓縮領域,具有極大的應用的前景;無論原始的計算多么復雜,其驗證過程都十分高效,這是所有zk算法的基本技能。因此,對于VM執行過程中的計算部分,zk可以很好的發揮作用;而在VM執行的過程中,除了計算本身外,還存在一些內存訪問操作,我們需要把一些數據提前放在內存里,然后在執行計算的時候取出來。
Ordi突破50美元 24小時漲幅114.36%:金色財經報道,BRC-20.io數據顯示,比特幣銘文代幣Ordi突破50美元,暫報52.29美元,24小時漲幅114.36%,總市值達10.98億美元。[2023/5/10 14:54:11]
而由于大部分的VM都是讀寫內存,因此不得不約束這些內存訪問操作的正確性;對于內存訪問的約束本身并不復雜,但是由于內存訪問的次數很高,所以導致多項式的階數很高,使得內存相關的約束證明耗時比較可觀。
在ZK(E)VM的方案中,我們更應該把zk主要應用在對于計算本身的證明,對于EVM的其他行為,我們可以在VM層面去優化,以減少zk約束的規模。
Memory的設計
以EVM為例,EVM的內存是一塊很簡單的字節數組,可以存儲32字節或者1字節的數據,也可以讀取32字節的數據。
圖片來源:ethereum_evm_illustrated,page51
美聯儲戴利:預計美聯儲將進一步加息:9月30日消息,美聯儲戴利表示:我們已經采取的行動以及計劃中的加息將降低通貨膨脹,需要看到通貨膨脹得到更多的緩解。進一步加息是正確的做法,但我們會加息多少取決于數據。預計美聯儲將進一步加息。美國經濟并沒有陷入衰退,經濟目前需要減速。(金十)[2022/9/30 6:04:40]
在EVM中,和Memory相關的指令有:
???MLOAD(x):從地址x處加載32字節的數據到調用棧(stack)
???MSTORE(x,y):從地址x開始,寫入32字節的y
???MSTORE8(x,y):從地址x開始,寫入8字節的y(低位開始)
有興趣的讀者可以在EVMPlayground上感受下,上述內存操作帶來的內存和棧的變化。
Memory的約束
在OlaVM的5.3.5節,你可以看到關于Memory約束的設計原則(OlaVM內存相關的指令和EVM類似)。
Transit Swap已開啟用戶資產第一部分退還工作,約占總金額68%:10月7日消息,Transit Swap現已開啟用戶資產的第一部分退還工作(約68%),受該事件影響的用戶可以前往退還網站進行申領,對于因個人原因泄露私鑰、助記詞的用戶,Transit Swap團隊將盡快協助其安全地退回資產。
在BlockSec的協助下,Hacker#4攻擊的所有資產已于昨天全部退回。今天,Hacker#2以及Hacker#5已進行了部分資產的退還,由于該部分資產在第一次退還統計工作完成后才退還,因此該部分資產不計入本次退還中。
此外,Transit Swap官方再次呼吁所有相關黑客、模仿攻擊者、搶跑套利者,盡快根據漏洞賞金及退還獎勵與官方聯系并退還用戶資產。[2022/10/7 18:41:56]
在OlaVM中,RAM的所有操作組成一個獨立的table,table里的內容由memory和storage兩種類型組成。在這里,我們只關注對于memory的約束。
內存的操作類型大體可以分為三類:
??Init操作
伊朗開始根據新的監管框架向加密礦工發放許可證:9月5日消息,伊朗政府已開始根據上周批準的新“全面和詳細”監管框架向加密礦工發放許可證。當局此前曾向一些加密挖礦業務頒發許可證,但由于電力消耗和非法挖礦問題而停止了這一過程。伊朗工業、礦業和貿易部長Reza Fatemi Amin表示,根據規定,礦企/實體開始在伊朗挖采加密貨幣之前需要兩個許可證:建立許可證和運營許可證。建立許可證將實體建立為合法的加密礦工,而運營許可證允許其實際開始加密挖礦。
據悉,伊朗根據之前的監管框架頒發了1,?000多個加密采礦許可證。伊朗當局在5月份透露,已經關閉了近6914個非法加密礦場。(Bitcoin.com)[2022/9/5 13:09:53]
??write操作
??read操作
觸發Init的場景有三種,分別是ctx的變換,type的變化,addr的變化;當任何一個場景觸發時,需要約束,操作類型為w(write),v(value)為0。
當上述三種場景沒有觸發時,則需要根據當前的操作類型來約束;
FBI就DeFi網絡犯罪攻擊向投資者和相關平臺發出警報:金色財經消息,美國聯邦調查局(FBI)向DeFi平臺的投資者發出了新的警告:網絡犯罪分子越來越多地利用DeFi平臺的漏洞竊取加密貨幣,導致投資者蒙受損失。FBI 觀察到網絡犯罪分子利用管理 DeFi 平臺的智能合約中的漏洞竊取投資者的加密貨幣。FBI 鼓勵懷疑網絡犯罪分子竊取其 DeFi 投資的投資者通過互聯網犯罪投訴中心或當地的 FBI 外地辦事處聯系FBI。[2022/8/30 12:56:56]
??如果是w(write)操作,需要約束clk是遞增的,寫入的值v是對的。
??如果是r(read)操作,需要約束clk是遞增的,讀取的值和上次寫入的值是相同的。
一些可能性的提升
??對于Init操作,需要約束一個內存地址的初始化的值為0么?
我認為沒有必要對初始化的操作進行約束;實際上,對于任何地址,你可以約束它的第一次訪問必須是write操作,而不是read操作;而如果是write-once內存模型,這個限制將天然存在,因此,如果虛擬機的內存模型改為write-once模型,將減少對內存的訪問約束。
??對于read操作,能否避免對應的約束,即避免校驗讀取的值和上次寫入的值一致?
由于VM本身定義的memory類型的讀寫內存,無法保證,VM在讀取這個內存地址的值之前,這個地址的值沒有被修改,因此需要增加一個相等性校驗,如下圖所示:
由此可以看出,產生這個約束的核心原因,內存模型是讀寫內存,地址的值存在被改寫的可能,因此,如果嘗試使用只讀內存,那么就不需要在memory的約束去實現上述的一致性約束。
注意:這可能會增加虛擬機的實現難度,因為這是一個不常用的內存模型;并且,我們應該不會首先在這個虛擬機上面去定義一個高級DSL,因為這個語言對Dapp開發者會有些不友好,需要在編譯器層面去消除,使得這些不友好,對開發者不可見。
所以,如果采用上述內存模型,內存模塊的約束,將只剩下針對write操作的約束,即使用copyconstraints來保證寫入的值是對的即可。無須約束:
??讀取的值等于寫入的值,因為內存只能被寫一次
??讀的clk大于寫的clk,因為只能先寫再讀
??內存的初始化值為0
參考
1.ThedifferenttypesofZK-EVMs:
https://vitalik.ca/general/2022/08/04/zkevm.html
2.privacy-scaling-explorations/zkevm-specs:
https://github.com/privacy-scaling-explorations/zkevm-specs
3.PolygonzkEVMDocumentation:
https://docs.hermez.io/zkEVM/Overview/Overview/
4.OlaVM:AnEthereumcompatibleZKVM:
https://olavm.org/whitepaper/OlaVM-07-25.pdf
5.EVM:
https://ethereum.github.io/yellowpaper/paper.pdf
6.ethereum_evm_illustrated,page51:
https://takenobu-hs.github.io/downloads/ethereum_evm_illustrated.pdf
7.EVMPlayground:
https://www.evm.codes/playground
8.OlaVM:
https://olavm.org/whitepaper/OlaVM-07-25.pdf
關于我們
Sin7y成立于2021年,由頂尖的區塊鏈開發者和密碼學工程師組成。我們既是項目孵化器也是區塊鏈技術研究團隊,探索EVM、Layer2、跨鏈、隱私計算、自主支付解決方案等最重要和最前沿的技術。
微信公眾號:Sin7y
GitHub:Sin7y
Twitter:@Sin7y_Labs
Medium:Sin7y
Mirror:Sin7y
HackMD:Sin7y
HackerNoon:Sin7y
Email:contact@sin7y.org
來源:金色財經
當前,新冠疫情重創全球,經濟持續下行,漫天都是裁員、降薪消息。為了從諸多不確定性里找到確定性,風水命理、取名占卜、化煞開運、星座塔羅等玄學、神秘學領域受到前所未有的關注.
1900/1/1 0:00:00美聯儲準備了一項通脹舉措,這可能會成為加密貨幣和風險資產的“大錘”。自7月以來的最低周收盤價之后,比特幣(?BTC?)又面臨一周的“巨大”宏觀公告.
1900/1/1 0:00:00當大多數人還在試圖適應熊市時,我們發現已經有人想要盡快跳到市場的下一個階段了。當心,歷史無數次向我們證明,熊市總有自己獨特的游戲方式我們現在大多都是以復盤的角度去審視問題,過時敘事的包袱,擺脫D.
1900/1/1 0:00:00越來越多的大學正在發展成立“元宇宙大學”,將實體校園帶入一個虛擬的在線世界——也就是當下非常火熱的元宇宙中.
1900/1/1 0:00:00Celestia是第一個模塊化區塊鏈的數據可用性和共識層,允許其他鏈擴展數據可用性并專注于執行.
1900/1/1 0:00:00投資者正在為更“瘋狂”的加息做準備。周一,10年期美國國債收益率躍升至3.5%以上,創2011年以來最高水平,美聯儲將在9月20日至21日開啟為期兩天的會議,市場普遍預計官員們將在美東時間周三下.
1900/1/1 0:00:00