以太幣交易所 以太幣交易所
Ctrl+D 以太幣交易所
ads
首頁 > Coinw > Info

干貨 | zkEVM:設計挑戰與解決思路_LAYER

Author:

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

感謝VitalikButerin、BarryWhitehat、Chih-ChengLiang、KobiGurkan和GeorgiosKonstantopoulos的審閱和真知灼見。

太長不看

我們相信zk-Rollup會成為“香餑餑”——其成本優勢和極高的安全性使得一眾Layer2可擴展性方案相形見絀。然而,現有的zk-Rollup實現都是針對特定應用的,因此我們很難在某個zk-Rollup內構建具有可組合性的通用dApp,把現有的應用遷移過來也無從談起。我們引入了zkEVM用來為通用的EVM驗證生成零知識證明。這樣一來,我們就可以構建出完全兼容EVM的zk-Rollup,以便現有以太坊應用輕松遷移到這個zk-Rollup上。

在本文中,我們明確指出了zkEVM在設計上面臨哪些挑戰以及為何zkEVM在當下有可能實現。我們還給出了更加具體、直觀的認知,并概述了如何從頭開始構建zkEVM。

背景

zk-Rollup?是公認的最佳以太坊可擴展性方案。它不僅在安全性上媲美以太坊Layer1,而且在交易敲定速度上是Layer2解決方案的翹楚)。

從中長期來看,隨著ZK-SNARK技術不斷發展,zk-rollup將在所有應用場景中力拔頭籌。——VitalikButerinzk-Rollup的基礎原理是將大量交易打包到一個Rollup區塊內,并在鏈下為該區塊生成一個簡潔證明。隨后,Layer1上的智能合約只需驗證該證明即可直接應用新的狀態,無需重新執行這些交易。這樣就可以節約一個數量級的gas費,因為證明的驗證成本遠低于重新執行的計算成本。另一個好處是可以通過數據壓縮來節省存儲空間。

雖然zk-Rollup安全且高效,但是其應用依然局限于付款和互換。通用dApp構建起來很難,主要有以下兩個原因:

第一,如果你想在某個zk-Rollup內開發dApp,你需要使用一種特殊的語言來編寫你的所有智能合約的邏輯。這種語言有著復雜的語法,而且要求使用者精通零知識證明。第二,現有的zk-Rollup實現不支持可組合性1。因此,在Layer2上,不同的zk-Rollup應用之間無法交互,嚴重破壞了DeFi應用的可組合性。簡而言之,zk-Rollup目前對開發者并不友好,而且功能有限。這是我們想要解決的最大問題。我們想要通過直接支持原生EVM驗證來提供最好的開發者體驗,并在Layer2上支持可組合性,讓現有以太坊應用可以原封不動地遷移到zk-Rollup上。

火幣宣布贊助亞洲加密盛會TOKEN2049:據官方消息,加密貨幣交易所火幣官方宣布再次贊助亞洲加密盛會TOKEN2049,火幣相關負責人將出席峰會并發表演講。峰會開幕當晚,火幣還將于新加坡舉辦Afterparty。屆時,火幣全球顧問委員會成員孫宇晨將出席,并宣布火幣重大品牌事項及火幣成立十周年等相關事宜。火幣已是第二次贊助TOKEN2049,火幣方面表示,火幣最近一年在品牌推廣和產品升級方面都取得了突破性進展,對于此類峰會的深度參與有助于火幣走在行業前列,與社區、用戶保持密切聯系,并持續為用戶提供更優質的服務和體驗,推進加密生態繁榮發展。

據悉,TOKEN2049將于今年9月13-14日在新加坡舉行。峰會聚集Web3企業家、投資者、開發者、業內人士等,在為期兩天的主要活動中將催生數百場聚會、研討會,共同分享行業機遇并推動其發展。[2023/7/21 15:50:06]

在zk-Rollup中構建通用dApp

我們可以通過以下兩種方法在zk-Rollup內構建通用dApp:

一種是為不同dApp構建專用電路。另一種是構建通用“EVM”電路用于執行智能合約。“電路”指的是零知識證明中使用的程序表示。例如,如果你想要證明hash(x)=y,你需要使用電路形式重新編寫哈希函數。電路形式只支持非常有限的表示。因此,使用circuit語言編寫程序難度很高——你只能使用加法和乘法來構建所有程序邏輯。第一種方法要求開發者為不同dApp設計專用“ASIC”電路。這是最傳統的使用零知識證明的方式。自定義的電路設計有助于降低各個dApp的成本。但是,這也帶來了可組合性問題,因為電路是“靜態的”,而且對電路設計知識的高度依賴導致開發者體驗很糟糕2。

第二種方法不需要任何特殊的設計,也不要求開發者具備極強的專業知識。這種基于機器的證明背后的深層概念是,任何程序終將運行在CPU上。因此,我們只需要構建一個通用CPU電路來驗證低級CPU操作。然后,我們可以使用這個CPU電路來驗證任何程序執行。就本文的應用場景而言,程序指的就是智能合約,CPU就是EVM。然而,由于成本過高,這個方法在過去幾年里沒有得到普遍采用。例如,即使你只想證明某一個操作中?add?的結果是正確的,你依然需要負擔整個EVM電路的成本。如果你的執行追蹤中有上千個操作,證明者就要負擔1000倍的EVM電路成本3。

加密貨幣投資公司Pantera Capital計劃重新轉向山寨幣投資:金色財經報道,加密貨幣投資公司Pantera Capital首席投資官Joey Krug表示,該公司去年從山寨幣轉向ETH“試圖避免投資進一步縮水”,但現在已經開始重新轉回一些山寨幣,因為他們認為這些山寨幣“未來周期中將會跑贏ETH”,這也是該公司自春季以來首次從比特幣和以太坊轉向山寨幣。加密貨幣市場在去年暴跌后于今年一月出現溫和反彈,Pantera 的 Liquid Token Fund 在 2022 年下跌了 80%,在上周投資者電話會議上Pantera Capital表示Liquid Token Fund 本月回升,今年迄今上漲約 47%。相比之下,Bloomberg Galaxy Crypto Index 基金在 1 月份上漲了近 40%。(The Block)[2023/1/31 11:37:42]

最近,有很多研究致力于利用這兩種方法來優化零知識證明,包括提議新的零知識證明友好型原語?Poseidon哈希;持續提高通用可驗證虛擬機的效率,就像?TinyRAM?那樣;越來越多的通用優化技巧,如Plookup,以及運行速度更快的密碼學庫。

在我們之前的文章中,我們提議為每個dApp設計“ASIC”電路,并讓它們通過密碼學承諾進行通信。然而,根據社區的反饋,我們改變了研究重點,將聚焦于使用第二種方式構建通用EVM電路。zkEVM將帶來與Layer1完全相同的開發體驗。我們不會把設計復雜性留給開發者,而是利用自定義EVM電路設計取而代之,解決效率問題。

zkEVM的設計挑戰

zkEVM構建起來很難。盡管多年來這種直覺都很清晰,但是至今還沒有人成功構建出原生EVM電路。不同于TinyRAM,zkEVM在設計和實現上更具挑戰性,具體原因如下:

第一,EVM對橢圓曲線的支持有限。目前,EVM只支持BN254配對。由于不直接支持循環橢圓曲線,EVM很難實現證明遞歸。在這種設置下,我們也很難使用其它專用協議。驗證算法必須是EVM友好型的。第二,EVM的word大小是256位。EVM基于256位整數運行,零知識證明則“天然”基于素域運行。在電路中進行“錯配域算術”需要范圍證明,進而給每個EVM操作增加大約100個約束。這會將EVM電路大小增加兩個數量級。第三,EVM有許多特殊的操作碼。不同于傳統虛擬機,EVM有很多特殊的操作碼,如?CALL?,以及與執行環境和gas相關的錯誤類型。這會給電路設計帶來新的挑戰。第四,EVM是基于堆棧的虛擬機。SyncVM和?Cario架構在基于寄存器的模型中定義自己的IR/AIR。它們構建了一個專門的編譯器來將智能合約代碼編譯成一個新的零知識證明友好型IR。該方法是語言兼容的,而非原生EVM兼容的。無論是證明基于堆棧的模型,還是直接支持原生工具鏈,都會變得更加困難。第五,以太坊存儲布局帶來了高昂的成本。以太坊存儲布局高度依賴?Keccak?和一個巨型?MPT4。二者都不是零知識證明友好型的,而且會產生高昂的證明成本。例如,Keccak哈希的電路大小是Poseidon哈希的1000倍。但是,如果你將Keccak哈希替換成另一種哈希,就會給現有的以太坊基礎設施帶來一些兼容問題。第六,基于機器的證明帶來了高昂的成本。即使你可以妥善處理上述所有問題,你依然需要找到一種有效的方法來將它們組合起來得到一個完整的EVM電路。正如我在上一節中提到的,即使像?add?這樣簡單的操作碼也有可能需要你負擔整個EVM電路的成本。

NBA勇士隊終止與FTX合作關系:11月15日消息,在FTX申請破產后,NBA勇士隊終止所有與FTX相關的推廣合作,所有其他場館內的推廣廣告都將被移除。

此前報道,在FTX申請破產后幾個小時,美國佛羅里達州邁阿密戴德縣和邁阿密熱火隊發表聯合聲明,宣布將立即采取行動終止與FTX的業務關系,并將為其球場尋找新的冠名權合作伙伴。[2022/11/15 13:06:07]

為何zkEVM在當下有可能實現

得益于研究者取得的重大進展,過去兩年里越來越多效率問題得到了解決,zkEVM的證明成本終于不再是障礙!最主要的技術進展體現在以下幾個方面:

多項式承諾的使用。過去幾年來,大多數簡潔零知識證明協議都使用R1CS,PCP查詢被編碼到了特定于應用的受信任起步設置中。這往往會增加電路的大小,導致很多自定義優化都無法實現,因為每個約束的度必須是2只允許進行一次指數乘法計算)。有了多項式承諾方案,你可以通過通用設置乃至透明設置將你的約束提高到任何階,大幅提高了后端選擇的靈活性。查找表參數和自定義小工具的出現。另一個重要優化是查找表的使用。這個優化首次提議于Arya,然后在?Plookup?中得到實現。對于零知識證明不友好型原語來說,查找表可以省很多事。自定義小工具可以高效實現高階的約束。TurboPlonk?和?UltraPlonk?定義了優雅的程序語法,降低了使用查找表和定義自定義小工具的難度。這對于降低EVM電路的成本幫助很大。遞歸證明的可行性越來越高。過去,遞歸證明會帶來很高的成本,因為它依賴特殊的配對友好型循環橢圓曲線。這會產生很高的計算成本。然而,越來越多技術能夠在不犧牲效率的情況下使得遞歸證明成為可能。例如,Halo?無需配對友好型曲線,還可以使用特殊的內積參數來攤銷遞歸成本。Aztec證明了可以直接聚合現有協議的證明。同樣的電路規模現在能夠實現更多的功能。硬件加速正在提高證明效率。據我們了解,我們已經為證明程序打造了最快的GPU和ASIC/FPGA加速器。我們關于ASIC證明程序的論文已于今年被頂級計算機學術會議ISCA接受了。我們的GPU證明器比?Filecoin的實現快了大約5至10倍,可大幅提高證明器的計算效率。

參議員Lummis:《負責任的金融創新法案》將授權SEC保護加密貨幣投資者:9月8日消息,美國參議員Cynthia Lummis與參議員Kirsten Gillibrand合作推出《負責任的金融創新法案》,作為美國聯邦關于數字資產討論的開場白。此外,她表示將允許授權證券交易委員會(SEC)確定哪些加密貨幣屬于其監管范圍,以保護加密貨幣投資者,其余的則留給CFTC決定,并表示數字資產將創新安全地融入美國金融體系。(Cointelegraph)[2022/9/8 13:17:38]

zkEVM是如何運作和構建的?

除了強烈的直覺和技術改進,我們還得想明白我們需要證明的是什么,并構思好一個更加具體的架構。更多的技術細節和對比分析會留到之后的文章中進行介紹。在本文中,我們會介紹整個工作流程和一些核心概念。

開發者和用戶的工作流程

開發者可以使用EVM兼容語言實現智能合約并在Scroll上部署編譯好的字節碼。之后,用戶可以發送交易來與已經部署好的智能合約進行交互。用戶和開發者將獲得與在Layer1上相同的體驗。但是,gas費會顯著降低,交易將在Scroll上即時得到預先確認。

zkEVM的工作流程

即使外部工作流程保持不變,Layer1和Layer2的底層處理過程是完全不同的:

Layer1靠的是重新執行智能合約。Layer2靠的是zkEVM電路的有效性證明我們來詳細解釋下Layer1和Layer2上的交易有何不同。

在Layer1上,已部署智能合約的字節碼都存儲在以太坊storage內。交易將在點對點網絡中傳播。對于每一筆交易,每個全節點需要加載對應的字節碼并在EVM上執行以獲得相同的狀態。

在Layer2上,字節碼同樣存儲在存儲項內,用戶的操作方式也相同。交易將在鏈下發送至一個中心化的zkEVM節點。然后,zkEVM不單執行字節碼,還將生成一個簡潔證明來表明交易達成后狀態已正確更新。最后,Layer1合約將驗證該證明并更新狀態,不再重新執行交易。

Tether宣布已在Polygon上發行USDT:5月27日消息,Tether已在Polygon(前身為Matic Network)網絡上發行USDT Stablecoin。Tether表示,Polygon是其原生USDT Stablecoin部署的第11個區塊鏈,此舉將有助于擴大其在加密市場的影響力,用戶現在可以通過USDT將資金移入和移出Polygon生態系統并產生收益。(TheBlock)[2022/5/27 3:46:17]

我們來深入了解一下執行過程,看看zkEVM最終需要證明的是什么。在原生執行中,EVM將加載字節碼并從頭開始逐個執行字節碼中的操作碼。每個操作碼都可以被看作是在執行以下三個步驟:(i)從堆棧、memory或存儲項中讀取元素;(ii)基于這些元素執行計算;(iii)將結果寫入堆棧、memory或存儲項5。例如,add?操作碼需要從堆棧中讀取兩個元素,將它們相加并將結果寫入堆棧。

因此,顯而易見的是,zkEVM的證明需要包含以下幾個方面:

字節碼從永久存儲項中正確加載字節碼中的操作碼始終逐一執行每個操作碼均正確執行

zkEVM設計亮點

在為zkEVM設計架構時,我們需要分別采取措施滿足上述三個方面的需求。

1.我們需要為某個密碼學累加器設計一個電路。

這是為了起到“可驗證存儲器”的作用,我們需要通過某種技術來證明讀取過程是準確無誤的。密碼學累加器可以更高效地實現這一點?6。我們以默克爾樹為例。已部署的字節碼會被存儲為默克爾樹上的葉節點。然后,驗證者可以使用簡潔證明來驗證該字節碼是否正確加載自某個地址。針對以太坊存儲,我們需要這個電路同時兼容默克爾-帕特里夏樹和Keccak哈希函數。

2.我們需要設計一個電路將字節碼與實際的執行追蹤關聯起來。

將字節碼轉移到靜態電路中會帶來一個問題:像?jump?這樣的條件式操作碼可能會跳轉到任何地方。在某個人使用特定輸入運行該字節碼之前,跳轉目的地都是不確定的。這就是為什么我們需要驗證實際的執行蹤跡。執行蹤跡可以被認為是“展開的字節碼”,包含按實際執行順序排列的操作碼。

證明者將直接提供執行蹤跡作為電路的見證數據。我們需要證明該執行追蹤確實是特定的字節碼使用特定的輸入“展開”的。我們的想法是強制讓程序計數器的值保持一致。針對目的地不確定的問題,解決思路是讓證明者提供一切數據。然后,你可以使用查找參數高效地檢查一致性。

3.我們需要為每個操作碼設計電路。

這是最重要的部分——證明執行追蹤中的每個操作碼都是正確且一致的。如果你直接將所有東西都放在一起,會產生高昂的成本。此處重要的優化思路是:

我們可以將R/W和計算分成兩個證明。一個證明會將所有操作碼用到的元素都放到“總線”中。另一個證明會證明對“總線”上元素的計算是正確執行的。這會大幅降低每個部分的成本。在更詳細的規范中,前者被稱為“狀態證明”,后者被稱為“EVM證明”。另一個發現是,查找聲明可以有效處理“總線映射”。我們可以為每個操作碼設計度數更高的定制化約束。我們可以選擇是否根據需求通過一個選擇符多項式來“打開”一個約束。這樣可以避免每個操作都要消耗整個EVM電路的成本。這個架構最初由以太坊基金會提出,依然處于早期階段,正在積極開發中。我們正在與以太坊基金會進行密切合作,旨在找到最佳方式實現該EVM電路。迄今為止,我們已經定義了EVM電路最重要的特點,并實現了一些操作碼。更詳細的內容將在后續文章中介紹。我們推薦感興趣的讀者閱讀這篇文檔。開發流程將是透明化的。這將是集整個社區之力的完全開源的設計。希望會有更多人加入進來,貢獻出一份力量。

zkEVM還能給我們帶來什么?

zkEVM遠不僅僅是Layer2擴容。我們可以將它理解為通過Layer1有效性證明擴展以太坊Layer1的直接方式。這意味著不需要任何特殊的Layer2就可以擴展現有的Layer1。

例如,你可以將zkEVM當作全節點來使用。該證明可以用來直接證明現有狀態之間的轉換。無需將任何東西遷移到Layer2上,你可以直接證明所有Layer1交易!更寬泛地來說,你可以使用zkEVM為整個以太坊生成簡潔證明,就像Mina那樣。唯一需要增加的東西是證明遞歸7。

結論

zkEVM可以為開發者和用戶提供相同的體驗,而且可以在不犧牲安全性的前提下將成本降低幾個數量級。目前已經有人提議了一種架構,可以通過模塊化方式構建zkEVM。這個架構利用零知識證明的最新突破降低成本。我們期待看到更多人為zkEVM社區貢獻力量,與我們一起進行頭腦風暴!

注:

Starkware于2021年9月1日的公告中聲明已實現可組合性。電路是固定且靜態的。例如,在將一個程序實現為電路時,你無法使用可變上限循環。上限必須固定為最大值。電路無法處理動態邏輯。為便于讀者理解,我們在這里詳細說明EVM電路的成本。正如前文所言,電路是固定且靜態的。因此,EVM電路需要包含所有可能的邏輯。這就意味著,即使你只想證明?add,你依然需要負擔該EVM電路中可能包含的所有邏輯的成本。也就是說,成本被放大了10000倍。在執行追蹤中,你需要證明一連串操作碼,而且每個操作碼都會帶來高昂的成本。EVM本身并沒有與默克爾-帕特里夏樹緊密綁定。目前,MPT僅用于存儲以太坊狀態。要換一個很容易。這是經過高度簡化的抽象概念。從技術上來說,“EVM狀態”的名單更長,包括程序計數器、gas余量、調用棧、一組日志和交易范圍變量。我們可以另外引入針對不同調用環境的標識符來直接支持可組合性。由于存儲量很大,我們使用累加器進行存儲。內存和堆棧可以使用可編輯的Plookup。將一個完整的遞歸證明添加進zkEVM電路并非易事。實現遞歸的最好方式還是使用循環橢圓曲線。我們需要引入某種“包裝”過程讓遞歸在以太坊Layer1上可驗證。

原文鏈接:

https://hackmd.io/@yezhang/S1_KMMbGt

作者:YeZhang@Scroll

Tags:LAYERROLROLL以太坊Layer 1 Quality Indexroll幣是什么TROLL以太坊幣今日價格行情查詢

Coinw
為什么說人們對元宇宙沉浸式虛擬世界的期待即美好又荒謬?_元宇宙

元宇宙試圖在讓用戶“生活在”互聯網中,而不僅僅是在2D中沖浪。盡管這個想法雄心勃勃,但由于技術和理念的限制,由于增強現實和虛擬現實驅動的元宇宙在現實世界中尚未得到充分的探索.

1900/1/1 0:00:00
外媒:近期或有5只比特幣期貨ETF準備推出,本周可能會推出2只_比特幣

據TheBlock10月18日報道,美國第一個比特幣交易所交易基金預計將在當地時間周二推出,近期將有大約5只比特幣期貨ETF準備推出,本周可能會推出2只.

1900/1/1 0:00:00
觀察 | 元宇宙經濟體系初探_元宇宙

Roblox就表現形式和用戶體驗上來講,并不能達到很多游戲的精彩程度,圖形也是像素化,那么為什么說Roblox具備了元宇宙的雛形.

1900/1/1 0:00:00
或為第二個運行比特幣節點的安全研究員堅稱Craig Wright不是中本聰?_比特幣

據U.Today10月12日消息,在最近的一系列推文中,聲稱自己可能是第二個運行比特幣節點的安全研究員DustinTrammell提供了一些令人信服的證據.

1900/1/1 0:00:00
美加密游說團體數字商會推動穩定幣監管:推動創新、摒棄誤導、合理監管_穩定幣

出品|白澤研究院 以Tether為首的穩定幣最近受到了越來越多的監管審查。本月早些時候,Tether及其附屬加密交易所Bitfinex同意支付4250萬美元,以和解美國商品期貨交易委員會(CFT.

1900/1/1 0:00:00
以太坊2.0進展更新:Altair升級進入倒計時,合并或推遲到22年6月_以太坊

注:原文作者是以太坊2.0開發者BenEdgington。?信標鏈Altair升級將于UTC時間10月27日10:56:23實施,請確保你的節點已更新并準備就緒!如果有任何疑問,請咨詢相關客戶端.

1900/1/1 0:00:00
ads