• <sup id="ykcwk"><dd id="ykcwk"></dd></sup>
    <center id="ykcwk"><dd id="ykcwk"></dd></center>
  • <ul id="ykcwk"></ul>
    • <ul id="ykcwk"></ul>
    • Vitalik新文:以太坊協(xié)議可能的未來The Verge

      發(fā)布時(shí)間 :

      特別感謝 Justin Drake、Hsia-wei Wanp、Guillaume Ballet、Icinacio、Rosh Rudolf、Lev Soukhanoy Ryan Sean Adams 和 Uma Roy 的反饋和審閱。

      區(qū)塊鏈最強(qiáng)大的功能之一就是任何人都可以在自己的電腦上運(yùn)行一個(gè)節(jié)點(diǎn),并驗(yàn)證區(qū)塊鏈的正確性。即使 9596 個(gè)運(yùn)行鏈共識(shí)(PoW、PoS)的節(jié)點(diǎn)都立即同意更改規(guī)則,并開始根據(jù)新規(guī)則生產(chǎn)區(qū)塊,每個(gè)運(yùn)行完全驗(yàn)證節(jié)點(diǎn)的人都會(huì)拒絕接受鏈。不屬于這種陰謀集團(tuán)的造幣者會(huì)自動(dòng)匯聚到一條繼續(xù)遵循舊規(guī)則的鏈上,并繼續(xù)構(gòu)建這條鏈,而完全通過驗(yàn)證的用戶將遵循這條鏈。

      這是區(qū)塊鏈與中心化系統(tǒng)的關(guān)鍵區(qū)別。然而,要使這一特性成立,運(yùn)行一個(gè)完全驗(yàn)證的節(jié)點(diǎn)需要對(duì)足夠多的人來說確實(shí)可行。這既適用于造勢(shì)者(因?yàn)槿绻靹?shì)者不驗(yàn)證鏈,他們就沒有為執(zhí)行協(xié)議規(guī)則做出貢獻(xiàn)),也適用于普通用戶。如今,在消費(fèi)類筆記本電腦(包括寫這篇文章時(shí)使用的筆記本電腦)上運(yùn)行節(jié)點(diǎn)是可能的,但要做到這一點(diǎn)卻很困難。The Verge 就是要改變這種狀況,讓完全驗(yàn)證鏈的計(jì)算成本變得低廉,讓每個(gè)手機(jī)錢包、瀏覽器錢包甚至智能手表都會(huì)默認(rèn)進(jìn)行驗(yàn)證。

      Vitalik新文:以太坊協(xié)議可能的未來The VergeVitalik新文:以太坊協(xié)議可能的未來The Verge

      The Verge 2023 路線圖

      最初,「Verge」指的是將以太坊狀態(tài)存儲(chǔ)轉(zhuǎn)移到 Verkle 樹——一種允許更緊湊證明的樹形結(jié)構(gòu),可實(shí)現(xiàn)以太坊區(qū)塊的無狀態(tài)驗(yàn)證。節(jié)點(diǎn)可以驗(yàn)證一個(gè)以太坊區(qū)塊,而無需在其硬盤上存儲(chǔ)任何以太坊狀態(tài)(賬戶余額、合約代碼、存儲(chǔ)空間……),代價(jià)是花費(fèi)幾百 KB 的證明數(shù)據(jù)和幾百毫秒的額外時(shí)間來驗(yàn)證一個(gè)證明。如今,Verge 代表了一個(gè)更大的愿景,專注于實(shí)現(xiàn)以太坊鏈的最大資源效率驗(yàn)證,其中不僅包括無狀態(tài)驗(yàn)證技術(shù),還包括使用 SNARK 驗(yàn)證所有以太坊執(zhí)行。

      除了對(duì) SNARK 驗(yàn)證整條鏈的長期關(guān)注之外,另一個(gè)新問題與 Verkle 樹是否是最佳技術(shù)有關(guān)。Verkle 樹容易受到量子計(jì)算機(jī)的攻擊,因此,如果我們將目前的 KECCAK Merkle Patricia 樹中的 Verkle 樹,我們以后還得再次替換樹。Merkle 樹的自替代方法是直接跳過使用 Merkle 分支的 STARK,將其放入二叉樹。從歷史上看,由于開銷和技術(shù)復(fù)雜性,這種方法一直被認(rèn)為是不可行的。不過最近,我們看到 Starkware 在一臺(tái)筆記本電腦上使用 ckcle STARKs 每秒證明了 170 萬個(gè) Poseidon 哈希,而且由于 GKB 等技術(shù)的出現(xiàn),更多「?jìng)鹘y(tǒng)」哈希值的證明時(shí)間也在迅速縮短。因此,在過去的一年里,「Verge」變得更加開放,它有幾種可能性。

      The Verge:關(guān)鍵目標(biāo)

      • 無狀態(tài)客戶機(jī):完全驗(yàn)證客戶機(jī)和標(biāo)記節(jié)點(diǎn)所需的存儲(chǔ)空間不應(yīng)超過幾 GB。
      • ( 長期)在智能手表上完全驗(yàn)證鏈(共識(shí)和執(zhí)行)。下載一些數(shù)據(jù),驗(yàn)證 SNARK,完成。

      在本章中

      • 無狀態(tài)客戶機(jī):Verkle 還是 STARKs
      • EVM 執(zhí)行的有效性證明
      • 共識(shí)的有效性證明

      無狀態(tài)驗(yàn)證:Verkle 還是 STARKs

      我們要解決什么問題?

      如今,以太坊客戶端需要存儲(chǔ)數(shù)百千兆字節(jié)的狀態(tài)數(shù)據(jù)來驗(yàn)證區(qū)塊,而且這一數(shù)量每年都在增加。原始狀態(tài)數(shù)據(jù)每年增加約 30GB,單個(gè)客戶端必須在上面存儲(chǔ)一些額外的數(shù)據(jù),才能有效地更新三元組。

      Vitalik新文:以太坊協(xié)議可能的未來The VergeVitalik新文:以太坊協(xié)議可能的未來The Verge

      這就減少了能夠運(yùn)行完全驗(yàn)證以太坊節(jié)點(diǎn)的用戶數(shù)量:盡管足以存儲(chǔ)所有以太坊狀態(tài)甚至多年歷史的大硬盤隨處可見,但人們默認(rèn)購買的電腦往往只有幾百千兆字節(jié)的存儲(chǔ)空間。狀態(tài)大小也給首次建立節(jié)點(diǎn)的過程帶來了巨大的摩擦:節(jié)點(diǎn)需要下載整個(gè)狀態(tài),這可能需要數(shù)小時(shí)或數(shù)天的時(shí)間。這會(huì)產(chǎn)生各種連鎖反應(yīng)。例如,它大大增加了節(jié)點(diǎn)制作者升級(jí)其節(jié)點(diǎn)設(shè)置的難度。從技術(shù)上講,可以在不停機(jī)的情況下完成升級(jí)——啟動(dòng)一個(gè)新客戶端,等待它同步,后關(guān)閉舊客戶端并傳輸密鑰——但在實(shí)際操作中,這在技術(shù)上非常復(fù)雜。

      它如何工作?

      無狀態(tài)驗(yàn)證是一種允許節(jié)點(diǎn)在不掌握整個(gè)狀態(tài)的情況下驗(yàn)證區(qū)塊的技術(shù)。取而代之的是,每個(gè)區(qū)塊都附帶一個(gè)見證,其中包括:(i) 該區(qū)塊將訪問的狀態(tài)中特定位置的值、代碼、余額、存儲(chǔ); (ii) 證明這些值正確的加密證明。

      實(shí)際上,實(shí)現(xiàn)無狀態(tài)驗(yàn)證需要改變以太坊的狀態(tài)樹結(jié)構(gòu)。這是因?yàn)楫?dāng)前的 Merkle Patricia 樹對(duì)于實(shí)施任何加密證明方案都是極端不友好的,尤其是在最壞的情況下。無論是「原始」Merblk 分枝,還是「包裝」成 STARK 的可能性,都是如此。主要困難源于 MPT 的一些弱點(diǎn):

      1.這是一棵六叉樹(即每個(gè)節(jié)點(diǎn)有 16 個(gè)子節(jié)點(diǎn))。這意味著,在大小為 N 的樹中,一個(gè)證明平均需要 32*(16-1)*log16(N) = 120* log2(N) 字節(jié),或者在 2^32 項(xiàng)的樹中大約需要 3840 字節(jié)。對(duì)于二叉樹,只需要 32*(2-1)*log2(N) = 32* log2(N) 字節(jié),或大約 1024 字節(jié)。

      2.代碼未被 Merkle 化。這意味著要證明賬戶代碼的任何訪問權(quán)限,都需要提供整個(gè)代碼,最多為 24000 字節(jié)。

      Vitalik新文:以太坊協(xié)議可能的未來The VergeVitalik新文:以太坊協(xié)議可能的未來The Verge

      我們可以計(jì)算出最壞的情況如下:

      30000000 gas / 2400 ( 冷賬戶閱讀成本 ) * (5 * 488 + 24000) = 330000000 字節(jié)

      分支成本略有降低(用 5*480 代替 8*480),因?yàn)楫?dāng)分支較多時(shí),其頂端部分會(huì)重復(fù)出現(xiàn)。但即便如此,在一個(gè)時(shí)隙內(nèi)要下載的數(shù)據(jù)量也是完全不現(xiàn)實(shí)的。如果我們嘗試用 STARK 來封裝它,就會(huì)遇到兩個(gè)問題:(i) KECCAK 對(duì) STARK 相對(duì)不友好;(ii) 330MB 的數(shù)據(jù)意味著我們必須證明對(duì) KECCAK round 函數(shù)的 500 萬次調(diào)用,這對(duì)于除了最強(qiáng)大的消費(fèi)級(jí)硬件之外的所有硬件來說,都可能證明不了,即使我們能讓 STARK 證明 KECCAK 的效率更高。

      如果我們直接用二叉樹代替十六進(jìn)制樹,并對(duì)代碼進(jìn)行額外的 Merkle 化處理,那么最壞的情況大致會(huì)變成 30000000/2400*32*(32-14+8) = 10400000 字節(jié)(14 是對(duì) 2^14 分支的冗余位進(jìn)行的減法,而 8 則是進(jìn)入代碼塊中葉的證明的長度)。需要注意的是,這需要改變 gas 成本,對(duì)訪問每個(gè)單獨(dú)的代碼塊收費(fèi);EIP-4762 就是這么做的。10.4 MB 的容量要好得多,但對(duì)于許多節(jié)點(diǎn)來說,在一個(gè)時(shí)隙內(nèi)下載的數(shù)據(jù)還是太多了 。因此,我們需要引入更強(qiáng)大的技術(shù)。在這方面,有兩種領(lǐng)先的解決方案:Verkle 樹和 STARKed 二進(jìn)制哈希樹。

      Verkle 樹

      Verkle 樹使用基于橢圓曲線的矢量承諾來進(jìn)行更短的證明。解鎖的關(guān)鍵在于,無論樹的寬度如何,每個(gè)父子關(guān)系對(duì)應(yīng)的證明部分都只有 32 字節(jié)。證明樹寬度的唯一限制是,如果證明樹過寬 ,證明的計(jì)算效率就會(huì)降低。為以太坊提出的實(shí)現(xiàn)方案寬度為 256。

      Vitalik新文:以太坊協(xié)議可能的未來The VergeVitalik新文:以太坊協(xié)議可能的未來The Verge

      因此,證明中單個(gè)分支的大小變?yōu)?32 – 1og256(N) = 4* log2(N) 字節(jié)。因此,理論上的最大證明大小大致為 30000000 / 2400 *32* (32 -14 + 8) / 8 = 130000 字節(jié)(由于狀態(tài)塊的分布不均勻,實(shí)際計(jì)算結(jié)果略有不同, 但作為第一近似值是可以的)。

      另外需要注意的是,在上述所有示例中,這種「最壞情況」并不是最壞情況:更壞的情況是攻擊者故意「挖掘」兩個(gè)地址,使其在樹中具有較長的共同前綴,并從其中一個(gè)地址讀取數(shù)據(jù),這可能會(huì)將最壞情況下的分支長度再延長 2 倍。但即使有這樣的情況,Verkle 樹的最壞證明長度為 2.6MB,與目前最壞情況下的校驗(yàn)數(shù)據(jù)基本吻合。

      我們還利用這一注意事項(xiàng)做了另一件事:我們讓訪問「相鄰」存儲(chǔ)空間的成本變得非常低廉:要么是相同合同的許多代碼塊,要么是相鄰的存儲(chǔ)槽。EIP – 4762 提供了鄰接的定義,對(duì)鄰接訪問只收取 200 gas 費(fèi)。在相鄰訪問的情況下,最壞情況下的證明大小變?yōu)?30000000 / 200*32 – 4800800 字節(jié),這仍大致在公差范圍內(nèi)。如果為了安全起見,我們希望減少這個(gè)值,可以稍微增加相鄰訪問的費(fèi)用。

      STARKed 二進(jìn)制哈希樹

      這項(xiàng)技術(shù)的原理不言自明:你只需做一棵二叉樹,獲取最大 10.4 MB 的證明,證明塊中的值,后用證明的 STARK 代替證明。這樣,證明本身就只包含被證明的數(shù)據(jù),再加上來自實(shí)際 STARK 的 100-300kB 固定開銷。

      這里的主要挑戰(zhàn)是驗(yàn)證時(shí)間。我們可以進(jìn)行與上述基本相同的計(jì)算,只不過我們計(jì)算的不是字節(jié)數(shù),而是哈希值。一個(gè) 10.4 MB 的區(qū)塊意味著 330000 個(gè)哈希值。如果再加上攻擊者「挖掘」地址樹中具有較長公共前綴的可能性,那么最壞情況下的哈希值將達(dá)到約 660000 哈希值。因此,如果我們能證明每秒的哈希值為 200,000,那就沒問題了。

      在使用 Poseidon 哈希函數(shù)的消費(fèi)類筆記本電腦上,這些數(shù)字已經(jīng)達(dá)到,而 Poseidon 哈希函數(shù)是專門為 STARK 友好性而設(shè)計(jì)的。但是,Poseidon 系統(tǒng)還相對(duì)不成熟,因此很多人還不信任它的安全性。因此,有兩條現(xiàn)實(shí)的前進(jìn)道路:

      1. 快速對(duì) Poseidon 進(jìn)行大量安全分析,并對(duì)其足夠熟悉,以便在 L1 進(jìn)行部署
      2. 使用更「保守」的哈希函數(shù),如 SHA256 或 BLAKE

      如果要證明保守的哈希函數(shù),Starkware 的 STARK 圈在撰寫本文時(shí)只能在消費(fèi)類筆記本電腦上每秒證明 10-30k 哈希值。不過,STARK 技術(shù)正在迅速改進(jìn)。即使在今天,基于 GKR 的技術(shù)也顯示出將這一速度提高到 100-2O0k 范圍。

      除驗(yàn)證區(qū)塊外的見證使用案例

      除了驗(yàn)證區(qū)塊外,還有其他三個(gè)關(guān)鍵用例需要更高效的無狀態(tài)驗(yàn)證:

      • 內(nèi)存池:當(dāng)交易被廣播時(shí),P2P 網(wǎng)絡(luò)中的節(jié)點(diǎn)需要在重新廣播之前驗(yàn)證交易是否有效。如今驗(yàn)證包括驗(yàn)證簽名,還包括檢查余額是否充足和前綴是否正確。在未來(例如,使用原生賬戶抽象,如 EIP-7701,這可能會(huì)涉及運(yùn)行一些 EVM 代碼,這些代碼會(huì)進(jìn)行一些狀態(tài)訪問。如果節(jié)點(diǎn)是無狀態(tài)的,則交易需要附帶證明狀態(tài)對(duì)象的證明。
      • 包含列表:這是一個(gè)提議的功能,允許(可能規(guī)模較小且不復(fù)雜的)權(quán)益證明驗(yàn)證者強(qiáng)制下一個(gè)區(qū)塊包含交易,而不管(可能規(guī)模較大且復(fù)雜的)區(qū)塊構(gòu)建者的意愿。這將削弱有權(quán)勢(shì)者通過延遲交易來操縱區(qū)塊鏈的能力。不過,這需要驗(yàn)證者有辦法驗(yàn)證包含列表中交易的有效性。
      • 輕客戶端:如果我們希望用戶通過錢包訪問鏈(如 Metamask、Rainbow、Rabby 等),要做到這一點(diǎn),他們需要運(yùn)行輕型客戶端(如 Helios).Helios 核心模塊為用戶提供經(jīng)過驗(yàn)證的狀態(tài)根。而為了獲得完全無信任的體驗(yàn),用戶需要為他們所做的每個(gè) RPC?調(diào)用提供證明(例如,對(duì)于以太網(wǎng)調(diào)用請(qǐng)求(用戶需要證明在調(diào)用過程中訪問的所有狀態(tài))。

      所有這些用例都有一個(gè)共同點(diǎn),那就是它們需要相當(dāng)多的證明,但每個(gè)證明都很小。因此,STARK 證明對(duì)它們并沒有實(shí)際意義;相反,最現(xiàn)實(shí)的做法是直接使用 Merkle 分支。Merkle 分支的另一個(gè)優(yōu)點(diǎn)是可更新:給定一個(gè)以區(qū)塊 B 為根的狀態(tài)對(duì)象 X 的證明,如果收到一個(gè)子區(qū)塊 B2 及其見證,就可以更新證明,使其以區(qū)塊 B2 為根。Verkle 證明也是原生可更新的。

      與現(xiàn)有研究有哪些聯(lián)系:

      • Verkle trees
      • John Kuszmaul 關(guān)于 Verkle tree 的原始論文
      • Starkware
      • Poseidon2 paper
      • Ajtai ( 基于晶格硬度的替代快速哈希函數(shù) )
      • Verkle.info

      還能做些什么?

      剩下的主要工作是

      1.關(guān)于 EIP-4762 后果的更多分析(無狀態(tài) gas 成本變化)

      2.完成和測(cè)試過渡程序的更多工作,這是任何無國籍環(huán)境實(shí)施方案復(fù)雜性的主要部分

      3.對(duì) Poseidon、Ajtai 和其他「STARK-friendly」哈希函數(shù)的更多安全分析

      4.為「保守」(或「?jìng)鹘y(tǒng)」)哈希進(jìn)一步開發(fā)超高效 STARK 協(xié)議功能,例如基于 Binius 或 GKR 的觀點(diǎn)。

      此外,我們很快就會(huì)決定從以下三個(gè)選項(xiàng)中選擇一個(gè):(i) Verkle 樹,(ii) STARK 友好哈希函數(shù)以及 (iii) 保守哈希函數(shù)。它們的特性可大致歸納在下表中:

      Vitalik新文:以太坊協(xié)議可能的未來The VergeVitalik新文:以太坊協(xié)議可能的未來The Verge

      除了這些「標(biāo)題數(shù)字」,還有其他一些重要的考慮因素:

      • 如今,Verkle 樹代碼已經(jīng)相當(dāng)成熟。除了 Verkle 之外,使用其他任何代碼都會(huì)推遲部署,很可能會(huì)推遲一個(gè)硬分叉。這也沒有關(guān)系,尤其是如果我們需要額外的時(shí)間來進(jìn)行哈希函數(shù)分析或驗(yàn)證器實(shí)現(xiàn),或者我們有其他重要的功能想要更早地納入以太坊。
      • 使用哈希值更新狀態(tài)根比使用 Verkle 樹更快。這意味著基于哈希值的方法可以降低全節(jié)點(diǎn)的同步時(shí)間。
      • Verkle 樹具有有趣的見證更新屬性——Verkle 樹見證是可更新的。這個(gè)屬性對(duì) mempool、包含列表和其他用例都很有用,而且還可能有助于提高實(shí)現(xiàn)效率:如果更新了狀態(tài)對(duì)象,就可以更新倒數(shù)第二層的見證,而無需讀取最后一層的內(nèi)容。
      • Verkle 樹更難進(jìn)行 SNARK 證明。如果我們想把證明大小一直減小到幾千字節(jié),Verkle 證明就會(huì)帶來一些困難。這是因?yàn)?Verkle 證明的驗(yàn)證引入了大量 256 位操作,這就要求證明系統(tǒng)要么有大量開銷,要么本身有一個(gè)定制的內(nèi)部結(jié)構(gòu),其中包含 256 位的 Verkle 證明部分。這對(duì)無狀態(tài)本身不是問題,但會(huì)帶來更多困難。

      如果我們想以量子安全且合理高效的方式獲得 Verkle 見證可更新性,另一種可能的途徑是基于 lattice 的 Merkle 樹。

      如果在最壞的情況下,證明系統(tǒng)的效率不夠高,那么我們還可以利用多維 gas 這意料之外的工具來彌補(bǔ)這種不足:為 (i) calldata;(ii) 計(jì)算;(iii) 狀態(tài)訪問以及可能的其他不同資源設(shè)定單獨(dú)的 gas 限制。多維 gas 增加了復(fù)雜性,但作為交換,它更嚴(yán)格地限制了平均情況和最壞情況之間的比率。有了多維 gas,理論上需要證明的最大分支數(shù)可能會(huì)從 12500 減少到例如 3000。這將使 BLAKE3 即使在今天也(勉強(qiáng))夠用。

      Vitalik新文:以太坊協(xié)議可能的未來The VergeVitalik新文:以太坊協(xié)議可能的未來The Verge

      多維 gas 允許區(qū)塊的資源限制更接近于底層硬件的資源限制

      另一個(gè)意料之外的工具是將狀態(tài)根計(jì)算延遲到區(qū)塊之后的時(shí)隙。這樣,我們就有整整 12 秒的時(shí)間來計(jì)算狀態(tài)根,這意味著即使在最極端的情況下,每秒也只有 60000 哈希數(shù)的證明時(shí)間是足夠的,這再次讓我們認(rèn)為 BLAKE3 只能勉強(qiáng)滿足要求。

      這種方法的缺點(diǎn)是會(huì)增加一個(gè)時(shí)隙的輕客戶端延遲,不過也有更巧妙的技術(shù)可以將這種延遲減少到僅為證明生成延遲。例如,證明可以在任何節(jié)點(diǎn)生成后立即在網(wǎng)絡(luò)上廣播,而不 是等待下一個(gè)區(qū)塊。

      它與路線圖的其他部分如何互動(dòng)?

      解決無狀態(tài)問題大大提高了單人定點(diǎn)的難度。如果有技術(shù)能降低單人定點(diǎn)的最低平衡,如 Orbit SSF 或應(yīng)用層策略,如小隊(duì)定點(diǎn),這將變得更可行。

      如果同時(shí)引入 EOF,多維 gas 分析就會(huì)變得更加容易。這是因?yàn)槎嗑S gas 最主要的執(zhí)行復(fù)雜度來源于處理不傳遞父調(diào)用全部 gas 的子調(diào)用,而 EOF 只需將此類子調(diào)用設(shè)為非法,就可將這一問題變得微不足道(和本機(jī)帳戶抽象將為部分 gas 的當(dāng)前主要使用情況提供一個(gè)協(xié)議內(nèi)替代方案。

      無狀態(tài)驗(yàn)證和歷史過期之間還有一個(gè)重要的協(xié)同作用。如今,客戶端必須存儲(chǔ)近 1TB 的歷史數(shù)據(jù);這些數(shù)據(jù)是狀態(tài)數(shù)據(jù)的數(shù)倍。即使客戶機(jī)是無狀態(tài)的,除非我們能解除客戶機(jī)存儲(chǔ)歷史數(shù)據(jù)的責(zé)任,否則幾乎無存儲(chǔ)客戶機(jī)的夢(mèng)想將無法實(shí)現(xiàn)。這方面的第一步是 EIP-4444,這也意味著將歷史數(shù)據(jù)存儲(chǔ)在 torrents 或門戶網(wǎng)站 Portal Network 中。

      EVM 執(zhí)行的有效性證明

      我們要解決什么問題?

      以太坊區(qū)塊驗(yàn)證的長期目標(biāo)很明確——應(yīng)該能夠通過以下方式驗(yàn)證以太坊區(qū)塊:(i) 下載區(qū)塊,或者甚至只下載區(qū)塊中數(shù)據(jù)可用性采樣的一小部分;(ii) 驗(yàn)證區(qū)塊有效的一個(gè)小證明。這將是一個(gè)資源占用極低的操作,可以在移動(dòng)客戶端、瀏覽器錢包中完成,甚至可以在另一個(gè)鏈中完成(沒有數(shù)據(jù)可用性部分)。

      要達(dá)到這一點(diǎn),需要對(duì)(i)共識(shí)層(即股權(quán)證明)和(ii)執(zhí)行層(即 EVM)進(jìn)行 SNARK 或 STARK 證明。前者本身就是一個(gè)挑戰(zhàn),應(yīng)該在進(jìn)一步不斷改進(jìn)共識(shí)層的過程中加以解決(例如,針對(duì)單槽終局性)。后者需要 EVM 執(zhí)行證明。

      它是什么,如何運(yùn)作?

      從形式上看,在以太坊規(guī)范中,EVM 被定義為一個(gè)狀態(tài)轉(zhuǎn)換函數(shù):你有一些前狀態(tài) S,一個(gè)區(qū)塊 B,你正在計(jì)算一個(gè)后狀態(tài) S’ = STF(S,B)。如果用戶使用的是輕客戶端,他們并不完整地?fù)碛?S 和 S’,甚至 E;相反,他們擁有一個(gè)前狀態(tài)根 R,一個(gè)后狀態(tài)根 R’和一個(gè)區(qū)塊哈希值 H。

      • 公共輸入:前狀態(tài)根 R, 后狀態(tài)根 R’ , 塊哈希 H
      • 私人輸入:程序塊主體 B、程序塊 Q 訪問的狀態(tài)中的對(duì)象、執(zhí)行程序塊 Q’后的相同對(duì)象、狀態(tài)證明(如 Merkle 分支)P
      • 主張 1:P 是一個(gè)有效的證明,證明 Q 包含 R 所代表的狀態(tài)的某些部分
      • 主張 2:如果在 Q 上運(yùn)行 STF,(i) 執(zhí)行過程只訪問 Q 內(nèi)部的對(duì)象,(ii) 數(shù)據(jù)塊是有效的,(iii) 結(jié)果是 Q’
      • 主張 3:如果利用 Q’ 和 P 的信息重新計(jì)算新的狀態(tài)根,就會(huì)得到 R’

      如果存在這種情況,就可以擁有一個(gè)完全驗(yàn)證以太坊 EVM 執(zhí)行的輕型客戶端。這使得客戶端的資源已經(jīng)相當(dāng)?shù)汀R獙?shí)現(xiàn)真正的完全驗(yàn)證以太坊客戶端,還需要在共識(shí)方面做同樣的工作。

      用于 EVM 計(jì)算的有效性證明的實(shí)現(xiàn)已經(jīng)存在,并被 L2 大量使用。而要使 EVM 有效性證明在 L1 中可行,還有很多工作要做。

      與現(xiàn)有研究有哪些聯(lián)系?

      • EFPSE ZK-EVM(由于存在更好的選擇,現(xiàn)已停用)
      • Zeth,其工作原理是將 EVM 編譯到 RISC-0 ZK-VM 中
      • ZK-EVM 形式化驗(yàn)證項(xiàng)目

      還能做些什么?

      如今,電子記賬系統(tǒng)的有效性證明在兩個(gè)方面存在不足:安全性和驗(yàn)證時(shí)間。

      一個(gè)安全的有效性證明需要保證 SNARK 確實(shí)驗(yàn)證了 EVM 的計(jì)算,并且不存在漏洞。提高安全性的兩種主要技術(shù)是多驗(yàn)證器和形式驗(yàn)證。多驗(yàn)證器指的是有多個(gè)獨(dú)立編寫的有效性證明實(shí)現(xiàn),就像有多個(gè)客戶端一樣,如果一個(gè)區(qū)塊被這些實(shí)現(xiàn)中的一個(gè)足夠大的子集證明,客戶端就會(huì)接受該區(qū)塊。形式驗(yàn)證涉及使用通常用于證明數(shù)學(xué)定理的工具,如 Lean4,以證明有效性證明只接受正確執(zhí)行底層 EVM 規(guī)范(例如 EVM K 語義或用 python 編寫的以太坊執(zhí)行層規(guī)范 (EELS))。

      足夠快的驗(yàn)證時(shí)間意味著任何以太坊區(qū)塊都能在不到 4 秒的時(shí)間內(nèi)得到驗(yàn)證。今天,我們離這個(gè)目標(biāo)還很遙遠(yuǎn),盡管我們已經(jīng)比兩年前想象的要接近得多。要實(shí)現(xiàn)這一目標(biāo),我們需要在三個(gè)方向上取得進(jìn)展:

      • 并行化——目前最快的 EVM 校驗(yàn)器平均可在 15 秒內(nèi)證明一個(gè)以太坊區(qū)塊。它是通過在數(shù)百個(gè) GPU 之間進(jìn)行并行化,后在最后將它們的工作匯總在一起來實(shí)現(xiàn)這一點(diǎn)的。從理論上講,我們完全知道如何制造一個(gè)能在 O(log(N)) 時(shí)間內(nèi)證明計(jì)算的 EVM 驗(yàn)證器:讓一個(gè) GPU 完成每一步,后做一個(gè)「聚合樹」:
      Vitalik新文:以太坊協(xié)議可能的未來The VergeVitalik新文:以太坊協(xié)議可能的未來The Verge

      實(shí)現(xiàn)這一點(diǎn)存在挑戰(zhàn)。即使是在最壞的情況下,即一個(gè)非常大的事務(wù)占用了整個(gè)區(qū)塊,計(jì)算的分割也不能按次進(jìn)行,而必須按操作碼(EVM 或 RISC-V 等底層虛擬機(jī)的操作碼)進(jìn)行。要確保虛擬機(jī)的「內(nèi)存」在證明的不同部分之間保持一致,是實(shí)施過程中的一個(gè)關(guān)鍵挑戰(zhàn)。不過,如果我們能實(shí)現(xiàn)這種遞歸證明,那么我們知道,即使在其他方面沒有任何改進(jìn),至少證明者的延遲問題已經(jīng)解決了。

      • 證明系統(tǒng)優(yōu)化 — 新的證明系統(tǒng),如 Orion、Binius、GRK 以及其他更多信息,很可能會(huì)導(dǎo)致又一次大大縮短了通用計(jì)算的驗(yàn)證時(shí)間。
      • EVM gas 成本的其他變化——EVM 中的許多東西都可以優(yōu)化,使其更有利于證明者,尤其是在最壞的情況下。如果攻擊者可以構(gòu)建一個(gè)阻塞證明者十分鐘時(shí)間的區(qū)塊,那么僅能在 4 秒內(nèi)證明一個(gè)普通的以太坊區(qū)塊是不夠的。所需的 EVM 更改可大致分為以下幾類:
      • gas 成本的變化——如果一個(gè)操作需要很長時(shí)間才能證明,那么即使它的計(jì)算速度相對(duì)較快,也應(yīng)該有很高的 gas 成本。EIP-7667 是為處理這方面最嚴(yán)重的問題而提出的一個(gè) EIP:它大大增加了(傳統(tǒng))哈希函數(shù)的 gas 成本,因?yàn)檫@些函數(shù)的操作碼和預(yù)編譯相對(duì)便宜。為了彌補(bǔ)這些 gas 成本的增加,我們可以降低證明成本相對(duì)較低的 EVM 操作碼的 gas 成本,從而保持平均吞吐量不變。
      • 數(shù)據(jù)結(jié)構(gòu)替換——除了用對(duì) STARK 更友好的方法替換狀態(tài)樹外,我們還需要替換事務(wù)列表、收據(jù)樹和其他證明成本高昂的結(jié)構(gòu)。Etan Kissling 將事務(wù)和收據(jù)結(jié)構(gòu)移至 SSZ 的 EIP 就是朝著這個(gè)方向邁出的一步。

      除此之外,上一節(jié)提到的兩個(gè)工具(多維 gas 和延遲狀態(tài)根)也能在這方面提供幫助。不過,值得注意的是,與無狀態(tài)驗(yàn)證不同的是,使用這兩個(gè)工具意味著我們已經(jīng)擁有了足夠的技術(shù)來完成我們目前所需的工作,而即使使用了這些技術(shù),完整的 ZK-EVM 驗(yàn)證也需要更多的工作——只是需要的工作更少而已。

      上文沒有提到的一點(diǎn)是證明器硬件:使用 GPU、FPGA 和 ASIC 更快地生成證明。Fabric Cryptography、Cysic 和 Accseal 是三家在這方面取得進(jìn)展的公司。這對(duì) L2 來說非常有價(jià)值,但不太可能成為 L1 的決定性考慮因素,因?yàn)槿藗儚?qiáng)烈希望 L1 保持高度去中心化,這意味著證明生成必須在以太坊用戶的合理范圍內(nèi),而不應(yīng)受到單個(gè)公司硬件的瓶頸限制。L2 可以做出更積極的權(quán)衡。

      在這些領(lǐng)域中,還有更多的工作要做:

      • 并行化證明要求證明系統(tǒng)的不同部分可以「共享內(nèi)存」(如查找表)。我們知道這樣做的技術(shù),但需要加以實(shí)現(xiàn)。
      • 我們需要進(jìn)行更多的分析,以找出理想的 gas 成本變化集,從而最大限度地減少最壞情況下的驗(yàn)證時(shí)間。
      • 我們需要在證明系統(tǒng)方面做更多的工作

      可能的代價(jià)是:

      • 安全性與驗(yàn)證器時(shí)間:如果選擇更激進(jìn)的哈希函數(shù)、更復(fù)雜的證明系統(tǒng)或更激進(jìn)的安全假設(shè)或其他設(shè)計(jì)方案,就有可能縮短驗(yàn)證器時(shí)間。
      • 去中心化與證明器時(shí)間:社區(qū)需要就所針對(duì)的證明器硬件的「規(guī)格」達(dá)成一致。要求證明者是大規(guī)模實(shí)體可以嗎?我們希望高端消費(fèi)筆記本電腦能在 4 秒內(nèi)證明一個(gè)以太坊區(qū)塊嗎?介于兩者之間?
      • 打破向后兼容性的程度:其他方面的不足可以通過更積極的 gas 成本變化來彌補(bǔ),但這更有可能不成比例地增加某些應(yīng)用程序的成本,迫使開發(fā)人員重寫和重新部署代碼,以保持經(jīng)濟(jì)可行性。同樣,這兩個(gè)工具也有其自身的復(fù)雜性和弊端。

      它與路線圖的其他部分如何互動(dòng)?

      實(shí)現(xiàn) L1 EVM 有效性證明所需的核心技術(shù)在很大程度上與其他兩個(gè)領(lǐng)域共享:

      • L2 的有效性證明(即「ZK rollup」)
      • 無狀態(tài)的「STARK 二進(jìn)制哈希證明」方法

      在 L1 成功實(shí)現(xiàn)有效性證明,就能最終實(shí)現(xiàn)輕松的單人質(zhì)押:即使是最弱的計(jì)算機(jī)(包括手 機(jī)或智能手表)也能質(zhì)押。這進(jìn)一步提高了解決單人質(zhì)押的其他限制(如 32ETH 最低限額)的價(jià)值。

      此外,L1 的 EVM 有效性證明可以大大提高 L1 的 gas 限值。

      共識(shí)的有效性證明

      我們要解決什么問題?

      如果我們想用 SNARK 完全驗(yàn)證一個(gè)以太坊區(qū)塊,那么 EVM 的執(zhí)行并不是我們需要證明的唯一部分。我們還需要證明共識(shí),即系統(tǒng)中處理存款、取款、簽名、驗(yàn)證器余額更新以及以太坊權(quán)益證明部分其他元素的部分。

      共識(shí)比 EVM 簡單得多,但它面臨的挑戰(zhàn)是,我們沒有 L2 EVM 卷積,因此無論如何,大部分工作都要完成。因此,任何證明以太坊共識(shí)的實(shí)現(xiàn)都需要「從頭開始」,盡管證明系統(tǒng)本身是可以在其基礎(chǔ)上構(gòu)建的共享工作。

      它是什么,如何工作?

      信標(biāo)鏈被定義為狀態(tài)轉(zhuǎn)換函數(shù),就像 EVM 一樣。狀態(tài)轉(zhuǎn)換函數(shù)主要由三部分組成:

      • ECADD(用于驗(yàn)證 BLS 簽名)
      • 配對(duì)(用于驗(yàn)證 BLS 簽名)
      • SHA256 哈希值(用于讀取和更新狀態(tài))

      在每個(gè)區(qū)塊中,我們需要為每個(gè)驗(yàn)證器證明 1-16 個(gè) BLS12-381 ECADD(可能不止一個(gè),因?yàn)楹灻赡馨诙鄠€(gè)集合中)。這可以通過子集預(yù)計(jì)算技術(shù)來彌補(bǔ),因此我們可以說每個(gè)驗(yàn)證者只需證明一個(gè) BLS12-381 ECADD。目前,每個(gè)插槽有 30000 個(gè)驗(yàn)證器簽名。未來,隨著單時(shí)隙終局性的實(shí)現(xiàn),這種情況可能會(huì)向兩個(gè)方向發(fā)生變化:如果我們采取「蠻力」路線,每個(gè)時(shí)隙的驗(yàn)證者數(shù)量可能會(huì)增加到 100 萬。與此同時(shí),如果采用 Orbit SSF,驗(yàn)證器數(shù)量將保持在 32768 個(gè),甚至減少到 8192 個(gè)。

      Vitalik新文:以太坊協(xié)議可能的未來The VergeVitalik新文:以太坊協(xié)議可能的未來The Verge

      BLS 聚合如何工作:驗(yàn)證總簽名只需要每個(gè)參與者一個(gè) ECADD,而不是一個(gè) ECMUL。但是 30000 個(gè) ECADD 仍然是一個(gè)很大的證明量。

      就配對(duì)而言,目前每個(gè)插槽最多有 128 個(gè)證明,這意味著需要驗(yàn)證 128 個(gè)配對(duì)。通過 ElP-7549 和進(jìn)一步的修改,每個(gè)插槽可以減少到 16 個(gè)。配對(duì)的數(shù)量很少,但成本極高:每個(gè)配對(duì)的運(yùn)行(或證明)時(shí)間比 ECADD 長數(shù)千倍。

      證明 BLS12-381 運(yùn)算的一個(gè)主要挑戰(zhàn)是,沒有曲線階數(shù)等于 BLS12-381 字段大小的便捷曲線,這給任何證明系統(tǒng)都增加了相當(dāng)大的開銷。另一方面,為以太坊提出的 Verkle 樹是用 Bandersnatch 曲線構(gòu)建的,這使得 BLS12-381 本身成為 SNARK 系統(tǒng)中用于證明 Verkle 分支的自曲線。一個(gè)比較簡單的實(shí)現(xiàn)每秒可以證明 100 G1 的加法;要使證明速度足夠快,幾乎肯定需要像 GKR 這樣的巧妙技術(shù)。

      對(duì)于 SHA256 哈希值來說,目前最糟糕的情況是紀(jì)元轉(zhuǎn)換塊,整個(gè)驗(yàn)證器短平衡樹和大量驗(yàn)證器平衡都會(huì)被更新。每個(gè)驗(yàn)證器的短平衡樹只有一個(gè)字節(jié),因此有 1 MB 的數(shù)據(jù)會(huì)被重新取哈希。這相當(dāng)于 32768 次 SHA256 調(diào)用。如果有一千個(gè)驗(yàn)證者的余額高于或低于一個(gè)閾值,需要更新驗(yàn)證者記錄中的有效余額,這相當(dāng)于一千個(gè) Merkle 分支,因此可能需要一萬次哈希值。洗牌機(jī)制需要每個(gè)驗(yàn)證器 90 比特(因此需要 11 MB 的數(shù)據(jù)),但這可以在一個(gè)紀(jì)元的任何時(shí)間計(jì)算。在單槽終結(jié)的情況下,這些數(shù)字可能會(huì)根據(jù)具體情況有所增減。洗牌變得沒有必要,盡管 Orbit 可能會(huì)在一定程度上恢復(fù)這種需要。

      另一個(gè)挑戰(zhàn)是需要重新獲取所有驗(yàn)證器狀態(tài),包括公鑰,才能驗(yàn)證一個(gè)區(qū)塊。對(duì)于 100 萬個(gè)驗(yàn)證器來說,僅讀取公鑰就需要 4800 萬字節(jié),再加上 Merkle 分支。這就需要每個(gè)紀(jì)元數(shù)以百萬計(jì)的哈希值。如果我們必須證明 PoS 的有效性,一種現(xiàn)實(shí)的方法是某種形式的增量可驗(yàn)證計(jì)算:在證明系統(tǒng)內(nèi)存儲(chǔ)一個(gè)單獨(dú)的數(shù)據(jù)結(jié)構(gòu),該數(shù)據(jù)結(jié)構(gòu)經(jīng)過優(yōu)化,可以高效查找,并證明對(duì)該結(jié)構(gòu)的更新。

      總之,挑戰(zhàn)很多。要最有效地應(yīng)對(duì)這些挑戰(zhàn),很可能需要對(duì)信標(biāo)鏈進(jìn)行深入的重新設(shè)計(jì),而這可能與轉(zhuǎn)向單槽終結(jié)同時(shí)進(jìn)行。這種重新設(shè)計(jì)的特點(diǎn)可能包括:

      • 哈希函數(shù)的變化:現(xiàn)在使用的是「完整」的 SHA256 哈希函數(shù),因此由于填充的原因,每次調(diào)用都要對(duì)應(yīng)兩次底層壓縮函數(shù)調(diào)用。如果改用 SHA256 壓縮函數(shù),我們至少可以獲得 2 倍的收益。如果改用 Poseidon,我們可能會(huì)獲得 100 倍的增益,從而徹底解決我們的所有問題(至少在哈希值方面):在每秒 170 萬哈希值(54MB),即使是一百萬條驗(yàn)證記錄也能在幾秒鐘內(nèi)「讀取」到證明中。
      • 如果是 Orbit,則直接存儲(chǔ)洗牌后的驗(yàn)證器記錄:如果選擇一定數(shù)量的驗(yàn)證器(如 8192 或 32768 個(gè))作為給定插槽的委員會(huì),則將它們直接放入彼此旁邊的狀態(tài)中,這樣只需最少的哈希就能將所有驗(yàn)證器的公鑰讀入證明中。這樣還可以高效地完成所有平衡更新。
      • 簽名聚合:任何高性能簽名聚合方案都會(huì)涉及某種遞歸證明,網(wǎng)絡(luò)中的不同節(jié)點(diǎn)會(huì)對(duì)簽名子集進(jìn)行中間證明。這就自然而然地將證明工作分擔(dān)給了網(wǎng)絡(luò)中的多個(gè)節(jié)點(diǎn),從而大大減少了「最終證明者」的工作量。
      • 其他簽名方案:對(duì)于 Lamport+ Merkle 簽名 ,我們需要 256 + 32 個(gè)哈希值來驗(yàn)證簽名;乘以 32768 個(gè)簽名者,就得到 9437184 個(gè)哈希值。對(duì)簽名方案進(jìn)行優(yōu)化后,可以通過一個(gè)很小的常數(shù)因子進(jìn)一步改善這一結(jié)果。如果我們使用 Poseidon,這在單個(gè)插槽內(nèi)就能證明。但實(shí)際上,使用遞歸聚合方案會(huì)更快。

      與現(xiàn)有研究有哪些聯(lián)系?

      • 簡潔的以太坊共識(shí)證明(僅限同步委員會(huì))
      • 簡潔 SP1 內(nèi)的 Helios
      • 簡明 BLS12-381 預(yù)編譯
      • 基于 Halo2 的 BLS 集合簽名驗(yàn)證

      還有哪些工作要做,如何取舍:

      實(shí)際上,我們需要數(shù)年時(shí)間才能獲得以太坊共識(shí)的有效性證明。這與我們實(shí)現(xiàn)單槽終局性、Orbit、修改簽名算法以及安全分析所需的時(shí)間大致相同,而安全分析需要足夠的信心才能使用像 Poseidon 這樣「激進(jìn)」的哈希函數(shù)。因此,最明智的做法是解決這些其他問題,并在解決這些問題的同時(shí)考慮到 STARK 的友好性。

      主要的權(quán)衡很可能是在操作順序上,在改革以太坊共識(shí)層的更漸進(jìn)的方法和更激進(jìn)的「一次改變?cè)S多」的方法之間。對(duì)于 EVM 來說,漸進(jìn)式方法是合理的,因?yàn)樗茏畲笙薅鹊販p少對(duì)向后兼容性的干擾。對(duì)共識(shí)層來說,向后兼容性的影響較小,而且對(duì)信標(biāo)鏈構(gòu)建方式的各種細(xì)節(jié)進(jìn)行更「全面」的重新思考,以最佳方式優(yōu)化 SNARK 友好性也有好處。

      它與路線圖的其他部分如何互動(dòng)?

      在對(duì)以太坊 PoS 進(jìn)行長期重新設(shè)計(jì)時(shí),STARK 友好性必須成為首要考慮因素,尤其是單槽終局性、Orbit、簽名方案變更和簽名聚合。

      主站蜘蛛池模板: 久久线看观看精品香蕉国产| 国产一区二区精品尤物| 亚洲精品高清久久| 欧美日韩国产精品自在自线| 欧美韩国精品另类综合| 亚洲国产精品成人精品无码区在线 | 亚洲а∨天堂久久精品9966| 亚洲国产精品嫩草影院| 国产精品免费AV片在线观看| 中文字幕精品无码一区二区 | 久久无码精品一区二区三区| 91久久精品无码一区二区毛片| 国产在线精品一区二区中文| 夜夜高潮夜夜爽国产伦精品| 欧美精品91欧美日韩操| 久草欧美精品在线观看| 国产精品爱搞视频网站| 欧洲精品视频在线观看| 国产精品看高国产精品不卡| 无码精品A∨在线观看中文| 亚洲国产精品一区二区第一页免| 精品无码综合一区| 国内精品久久久久久久涩爱| 国产精品超碰12396| 国产高清一级毛片精品| 一区二区三区日韩精品| 亚洲嫩草影院久久精品| 中文字幕一区二区精品区| 久久亚洲国产午夜精品理论片| 2021最新国产精品网站| 97久久久精品综合88久久| 久久99久久99精品免视看动漫| 日本伊人精品一区二区三区| 午夜精品久久久久久久久| 久久精品无码专区免费东京热| 亚洲一区爱区精品无码| 亚洲国产精品久久电影欧美| 日产精品99久久久久久| 国产精品v片在线观看不卡 | 日韩精品系列产品| 精品无码人妻一区二区三区品|