以太坊交易所 以太坊交易所
Ctrl+D 以太坊交易所
ads
首頁 > Uniswap > Info

關于在ZKEVM中移除內存限制的一些想法-ODAILY_MEM:MEMO

Author:

Time:1900/1/1 0:00:00

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的所有的行為,這些行為包括:

OpenAI收到日本監管機構關于數據收集的警告:金色財經報道,在日本當地隱私監管機構就其數據收集方法向ChatGPT母公司發出警告后,日本官員開始收緊對人工智能(AI)的立場。6月2日,日本個人信息保護委員會發表聲明,要求OpenAI盡量減少為機器學習目的收集的敏感數據量。此外,它強調未經人們許可不得這樣做。該委員會還強調需要平衡其隱私問題與留出空間來促進AI的潛在好處,例如推動創新。[2023/6/2 11:55:15]

?執行合約計算邏輯

?執行內存訪問

?執行哈希計算

?執行世界狀態更新

?...

眾所周知,zk在計算壓縮領域,具有極大的應用的前景;無論原始的計算多么復雜,其驗證過程都十分高效,這是所有zk算法的基本技能。因此,對于VM執行過程中的計算部分,zk可以很好的發揮作用;而在VM執行的過程中,除了計算本身外,還存在一些內存訪問操作,我們需要把一些數據提前放在內存里,然后在執行計算的時候取出來。

歷史上的今天 | 2017年9月4日央行等七部門聯合發布《關于防范代幣發行融資風險的公告》:2017年9月4日,中國人民銀行、中央網信辦、工信部、工商總局、銀監會、證監會、保監會等七個部門聯合下發《關于防范代幣發行融資風險的公告》,并且要求所有從即日起停止一切的代幣發行融資活動。七部門通知指出,任何組織和個人不得非法從事代幣發行融資活動,各類代幣發行融資活動應當立即停止。當日下午3點公告一出,各個交易所代幣價格一路下跌,其中,通過ICO融資發行的代幣跌幅最高,數種代幣跌破發行價,最高跌幅超過90%。

2021年9月3日,央行發布《中國金融穩定報告(2021)》。報告在展望部分中提到,虛擬貨幣交易等領域整治工作基本完成,已轉入常態化監管。[2021/9/4 22:59:41]

而由于大部分的VM都是讀寫內存,因此不得不約束這些內存訪問操作的正確性;對于內存訪問的約束本身并不復雜,但是由于內存訪問的次數很高,所以導致多項式的階數很高,使得內存相關的約束證明耗時比較可觀。

關于螞蟻礦池官方超頻固件聲明:螞蟻礦池針對其官方超頻固件做如下幾點聲明:

1. 螞蟻礦池始終將用戶利益放在首要位置,螞蟻礦池超頻固件誕生的初衷是幫助礦工充分發揮礦機的性能,從而獲取更高的挖礦收益;

2. 螞蟻礦池超頻固件是眾多超頻固件之一,旨在為用戶挖礦提供更多選擇,用戶可以根據個人需求自主選擇;

3. 螞蟻礦池超頻固件目前已在逐步推廣階段。[2020/4/1]

在ZK(E)VM的方案中,我們更應該把zk主要應用在對于計算本身的證明,對于EVM的其他行為,我們可以在VM層面去優化,以減少zk約束的規模。

Memory的設計

以EVM為例,EVM的內存是一塊很簡單的字節數組,可以存儲32字節或者1字節的數據,也可以讀取32字節的數據。

動態 | 國信辦發布關于《區塊鏈信息服務管理規定》涉安全評估條款說明的公告:國家互聯網信息辦公室發布的《區塊鏈信息服務管理規定》第九條明確“區塊鏈信息服務提供者開發上線新產品、新應用、新功能的,應當按照有關規定報國家和省、自治區、直轄市互聯網信息辦公室進行安全評估”。為落實規定要求,指導相關企業開展安全評估工作,現就安全評估的有關要求明確如下:

1.國家市場監管總局所屬的中國國家認證認可監督管理委員會,已經在信息安全管理和信息技術服務管理方面建立了完整的認證體系,具備一批已獲認定認可的測評機構。2.國家互聯網信息辦公室未指定或授權任何單位和機構開展區塊鏈安全技術檢測和安全評估。[2019/8/9]

圖片來源:ethereum_evm_illustrated,page51

在EVM中,和Memory相關的指令有:

B-I.TOP關于eosDAC發放及上線公告:B-I.TOP已完成eosDAC空投的代幣分發,按照1EOS:1eosDAC的比例,全額分發到快照時持有EOS的用戶。[2018/5/14]

?MLOAD(x):從地址x處加載32字節的數據到調用棧(stack)

?MSTORE(x,y):從地址x開始,寫入32字節的y

?MSTORE8(x,y):從地址x開始,寫入8字節的y(低位開始)\n有興趣的讀者可以在EVMPlayground上感受下,上述內存操作帶來的內存和棧的變化。

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

Tags:MEMMOREMOMEMOMemeNationMORPHUNSAFEMOONMEMO幣

Uniswap
什么是MEV,如何實現交易利益最大化?-ODAILY_HER:TSSEA幣

最大可提取價值(MaximalextractablevalueMEV)是指驗證者通過添加、刪除并更改區塊中的交易順序,在超過標準區塊獎勵和gas費用的區塊生產中所能提取的最大價值.

1900/1/1 0:00:00
SignalPlus美聯儲專題-ODAILY_IGN:SIG

今年最后一個重要的宏觀事件-美聯儲FOMC利率決議結果在昨天出爐,整體而言,會議結果的基調偏向鷹派但仍在市場預期的范圍內.

1900/1/1 0:00:00
使用交易量份額來評估DEXs-ODAILY_ANC:Poo Finance

Aug.2022,JamesDatasource:FootprintAnalytics去中心化的交易所是一個核心的Web3基礎設施,其使用用途已得到證實.

1900/1/1 0:00:00
Weekly Brief:Sui的應用細分賽道前瞻-ODAILY_EFI:TweeB

Sui的應用細分賽道:NFT與GameFi在下一個公鏈發展周期中,新公鏈的主要布局思路有兩個:能夠承接以太坊溢出的EVM兼容的L1、擁有特色技術或創新架構的公鏈.

1900/1/1 0:00:00
波卡中的Oracle是怎樣的,作為預言機有哪些用途?-ODAILY_DOT:dot幣前景怎么樣

“波卡知識圖譜”是我們針對波卡從零到一的入門級文章,我們嘗試從波卡最基礎的部分講起,為大家提供全方位了解波卡的內容,當然這是一項巨大的工程,也充滿了挑戰.

1900/1/1 0:00:00
SUN平臺流動性礦池最高APY超56%-ODAILY_SUN:iron幣收益

據官方數據,9月26日,SUN平臺智能礦池2poolLP最高APY超過56%,智能礦池USDD-USDTLP最高APY超過67%.

1900/1/1 0:00:00
ads