ZKEVM是一個具有可編程性,以ZK技術為基礎的虛擬機,它可以為虛擬機執行的所有操作生成一個零知識證明,用來證明虛擬機執行操作的正確性。有關ZKEVM的幾種實現方案介紹及優劣對比,可以參考V神的文章:ThedifferenttypesofZK-EVMs;如果你想了解更多的設計細節,你也可以閱讀PSE的ZKEVM方案(native-level):privacy-scaling-explorations/zkevm-specsPolygon的ZKEVM設計(bytecode-level):PolygonzkEVMDocumentation;Sin7y的ZKEVM設計(language-level):OlaVM:AnEthereumcompatibleZKVM。\n\n無論是哪種方案,都需要用zk去約束VM的所有的行為,這些行為包括:
公告 | 中幣(ZB)關于支持BSV Genesis升級公告:BSV將于區塊高度620,538進行Genesis升級,為支持本次升級,中幣(ZB)將于香港時間2020年2月3日21:00暫停BSV充值和提現業務,BSV交易不受影響。更多BSV Genesis升級詳情請登錄中幣(ZB)官網。[2020/2/3]
?執行合約計算邏輯
?執行內存訪問
?執行哈希計算
?執行世界狀態更新
?...
眾所周知,zk在計算壓縮領域,具有極大的應用的前景;無論原始的計算多么復雜,其驗證過程都十分高效,這是所有zk算法的基本技能。因此,對于VM執行過程中的計算部分,zk可以很好的發揮作用;而在VM執行的過程中,除了計算本身外,還存在一些內存訪問操作,我們需要把一些數據提前放在內存里,然后在執行計算的時候取出來。
動態 | 幣安編輯了白皮書中關于BNB回購的條款:幣安編輯了白皮書關于BNB回購的條款。白皮書刪除了“公司用20%的利潤回購BNB”的條款。幣安首席執行官趙長鵬表示,這樣做是為了澄清幣安實際上并沒有回購BNB,而是進行了銷毀。“我們還刪除了關于利潤的描述,因為一些地區傾向于將利潤與證券聯系在一起,我們希望BNB與此保持距離。” 消息人士表示,此舉可能與使用與證券界相關條款的合規性難題有關。律師Stephen Palley表示,如果監管機構是幣安決定背后的原因,那么編輯(白皮書)可能不足以避免進一步的問題。 據The Block估計,2019年,幣安在第一季度的利潤總額為7800萬美元,同比增長66%。[2019/4/19]
而由于大部分的VM都是讀寫內存,因此不得不約束這些內存訪問操作的正確性;對于內存訪問的約束本身并不復雜,但是由于內存訪問的次數很高,所以導致多項式的階數很高,使得內存相關的約束證明耗時比較可觀。
聲音 | 日本金融廳:進一步審查ICO有關事項 整理目前關于ICO的論點:日本金融廳今日召開第10次加密貨幣交易所研討會,會議主題為:進一步審查與ICO有關的事項,并將目前關于ICO的論點進行整理。[2018/11/26]
在ZK(E)VM的方案中,我們更應該把zk主要應用在對于計算本身的證明,對于EVM的其他行為,我們可以在VM層面去優化,以減少zk約束的規模。
Memory的設計
以EVM為例,EVM的內存是一塊很簡單的字節數組,可以存儲32字節或者1字節的數據,也可以讀取32字節的數據。
圖片來源:ethereum_evm_illustrated,page51
ebtcbank發布關于量化鏈(QAS)首期回購方案的公告:ebtcbank發布關于量化鏈(QAS)首期回購方案的公告稱,目前量化鏈項目運行良好,經量化鏈項目基金會批準,量化鏈運營團隊將依照白皮書上的約定開啟第一次回購,運營團隊會將運營所得利潤的20%用于公開回購,回購所得QAS將在區塊鏈上銷毀。[2018/5/11]
在EVM中,和Memory相關的指令有:
?MLOAD(x):從地址x處加載32字節的數據到調用棧(stack)
?MSTORE(x,y):從地址x開始,寫入32字節的y
?MSTORE8(x,y):從地址x開始,寫入8字節的y(低位開始)\n有興趣的讀者可以在EVMPlayground上感受下,上述內存操作帶來的內存和棧的變化。
日本警察廳和Bic Camera合作,簽訂關于對非法使用虛擬貨幣解決方案的協議:日本警察廳和日本屈指可數的大型綜合購物中心Bic Camera等簽訂協議,在客戶的虛擬貨幣非法使用等網絡犯罪發生時共享信息。據警察廳介紹,這是首次與用虛擬貨幣作為結算方式的商家合作進行合作。KOJIMA、Sofmap公司也參與了協議。除了虛擬貨幣以外,公司方面掌握了非法訪問導致的會員積分的擅自使用等可疑交易的情況下,也將向警察廳舉報。該廳為了防止損失擴大,除調查外,還就安全問題提供咨詢意見。Bic Camera公司川村仁志副社長指出,由于支付手段多樣化導致非法使用的風險增加,并表示“為減少犯罪,我將促進與警察局的信息共享”。[2018/2/6]
Memory的約束
在OlaVM的5.3.5節,你可以看到關于Memory約束的設計原則(OlaVM內存相關的指令和EVM類似)。
在OlaVM中,RAM的所有操作組成一個獨立的table,table里的內容由memory和storage兩種類型組成。在這里,我們只關注對于memory的約束。\n內存的操作類型大體可以分為三類:
?Init操作
?write操作
?read操作
觸發Init的場景有三種,分別是ctx的變換,type的變化,addr的變化;當任何一個場景觸發時,需要約束,操作類型為w(write),v(value)為0。
當上述三種場景沒有觸發時,則需要根據當前的操作類型來約束;
?如果是w(write)操作,需要約束clk是遞增的,寫入的值v是對的。
?如果是r(read)操作,需要約束clk是遞增的,讀取的值和上次寫入的值是相同的。
一些可能性提升
?對于Init操作,需要約束一個內存地址的初始化的值為0么?
我認為沒有必要對初始化的操作進行約束;實際上,對于任何地址,你可以約束它的第一次訪問必須是write操作,而不是read操作;而如果是write-once內存模型,這個限制將天然存在,因此,如果虛擬機的內存模型改為write-once模型,將減少對內存的訪問約束。
?對于read操作,能否避免對應的約束,即避免校驗讀取的值和上次寫入的值一致?
由于VM本身定義的memory類型的讀寫內存,無法保證,VM在讀取這個內存地址的值之前,這個地址的值沒有被修改,因此需要增加一個相等性校驗,如下圖所示:
由此可以看出,產生這個約束的核心原因,內存模型是讀寫內存,地址的值存在被改寫的可能,因此,如果嘗試使用只讀內存,那么就不需要在memory的約束去實現上述的一致性約束。
注意:這可能會增加虛擬機的實現難度,因為這是一個不常用的內存模型;并且,我們應該不會首先在這個虛擬機上面去定義一個高級DSL,因為這個語言對Dapp開發者會有些不友好,需要在編譯器層面去消除,使得這些不友好,對開發者不可見。\n\n所以,如果采用上述內存模型,內存模塊的約束,將只剩下針對write操作的約束,即使用copyconstraints來保證寫入的值是對的即可。無須約束:
?讀取的值等于寫入的值,因為內存只能被寫一次
?讀的clk大于寫的clk,因為只能先寫再讀
?內存的初始化值為0
參考
ethereum_evm_illustrated,page51
關于我們
Sin7y成立于2021年,由頂尖的區塊鏈開發者組成。我們既是項目孵化器也是區塊鏈技術研究團隊,探索EVM、Layer2、跨鏈、隱私計算、自主支付解決方案等最重要和最前沿的技術。
微信公眾號:Sin7Y
GitHub|Twitter|Telegram|Medium|Mirror|HackMD|HackerNoon
據官方消息,現加入格林納達常駐世界貿易組織代表、特命全權大使、波場TRON創始人孫宇晨先生閣下官方Telegram頻道,即有機會贏取USDD空投獎勵.
1900/1/1 0:00:00最新數據顯示,截至10月31日,JustLendDAO借貸市場中存款規模TOP3分別為BTC、USDC、USDT;借款規模TOP3分別為USDC、USDT、USDD.
1900/1/1 0:00:00據區塊鏈瀏覽器TRONSCAN數據,9月8日,波場TRON總質押量為12,133,394,168美金,超過121億美金.
1900/1/1 0:00:00據官方消息,9月10日,Blockchain.com錢包支持TRX,轉入獎勵賬戶即可賺取最高8%年化收益.
1900/1/1 0:00:0011月22日,波場TRON創始人,Huobi全球顧問委員會成員,格林納達常駐世界貿易組織代表、特命全權大使孫宇晨先生閣下出席Huobi品牌升級發布會.
1900/1/1 0:00:00北京時間2022年10月7日,據成都鏈安鷹眼-區塊鏈安全態勢感知平臺輿情監測顯示,BNBChain跨鏈橋“代幣中心”遭遇黑客攻擊,由于涉及的金額較為龐大,并且涉及多個鏈之間的跨鏈.
1900/1/1 0:00:00