<strike id="vg2kr"><sup id="vg2kr"></sup></strike>

        <var id="vg2kr"></var>

        Herodotus:如何利用Starknet存儲證明來證明以太坊狀態?

        11-06 22:09 18

        概要

        • StarkWare 與 Herodotus 合作開發了一種追溯以太坊自創始至今所有區塊的證明方法。

        • 通過使用加密證明和區塊哈希值來實現。

        • 實現了 EIP-2935 的目標 — 以一種鏈原生的方式訪問超過 256 個區塊的歷史區塊哈希值,并為 DeFi 等新用例解鎖新可能性。

        • Herodotus 和 StarkWare 將這項技術作為公共產品帶入以太坊。

        引言

        在以太坊上以可證明的方式訪問歷史狀態非常重要。但到目前為止,我們能夠無需信任地訪問的歷史記錄只限于過去一小時。

        但 Starknet 是一個充滿活力、不斷創新、突破可能性邊界的生態系統。如今,得益于 Herodotus 和 StarkWare,我們能夠以鏈原生且可證明的方式,追溯并獲取自創世區塊以來的所有以太坊區塊哈希值。

        讓我們詳細了解 Herodotus 和 StarkWare 是如何實現這一目標的,以及這一切意味著什么。我們將從存儲證明的背景知識開始講起。

        什么是存儲證明?

        存儲證明允許我們在無需任何信任第三方的情況下,證明某個狀態在過去的某個時間點確實存在。通過存儲證明,信任就內置于數學之中的。存儲證明還可用于跨鏈訪問這些狀態。

        在最近一篇關于存儲證明的文章中,我們介紹了引領存儲證明研究和創新的團隊——Herodotus。目前,Herodotus 團隊實現了一種新技術,能夠自創始區塊以來無需信任地證明以太坊狀態,從而大幅提升存儲證明性能。

        讓我們探究 Herodotus 如何實現這一點,以及其重要性。

        在鏈上證明以太坊創始區塊

        首先,我們需要理解以太坊區塊頭和區塊哈希值的工作原理。

        什么是區塊頭和區塊哈希值?

        區塊頭是區塊的一部分,概括了該區塊中包含的所有信息,包括父區塊的哈希值、區塊時間戳、狀態根等。

        Herodotus:如何利用Starknet存儲證明來證明以太坊狀態?

        以太坊區塊頭和狀態默克爾樹(內容來源)

        區塊頭包含許多信息。在本文中,我們重點關注狀態根。讓我們來看看原因。

        通過上圖可以看到,區塊頭下方是以太坊賬戶狀態。每個以太坊賬戶都有一個關聯的存儲空間,用于存儲該賬戶的變量(本質上是智能合約的狀態)。賬戶存儲的加密承諾通過哈希處理后,連同賬戶余額、隨機數和代碼哈希一起,存儲為存儲根。這些合起來,基本上構成了該賬戶狀態的概要。

        一棵包含所有以太坊賬戶狀態的默克爾帕特里夏樹(Merkle Patricia Trie)被構建起來,其哈希值作為狀態根儲存在區塊頭(在上圖中標記為stateRoot)。這個狀態根包含了證明任意特定時間點整個以太坊網絡狀態所需的所有信息。

        最后,由于以太坊(及EVM鏈)上的每個區塊都包含這個狀態根,且每個區塊還有一個被稱為區塊哈希值的關聯字符串(這是對包含狀態根在內的區塊頭內的所有內容進行哈希處理的結果),區塊哈希值就是整個以太坊狀態在特定時間點的加密承諾。

        EVM上的歷史區塊哈希值

        鑒于區塊哈希值中保存了大量的關鍵信息,我們經常需要訪問它們的歷史記錄。

        在Solidity中,如果我們想要檢索兩個區塊前開采的區塊哈希值(回溯計數從包含交易的區塊開始),可以使用以下語法:

        Herodotus:如何利用Starknet存儲證明來證明以太坊狀態?

        方法非常簡單。但有一個問題—這種區塊哈希方法只能檢索最近的256個區塊的哈希值。以以太坊平均12秒一個區塊來計算,相當于鏈上51.2分鐘的歷史記錄。

        對于希望使用歷史區塊哈希值作為熵(隨機性)來源的人來說,256個區塊的限制通常是足夠的。然而,就以太坊八年的歷史來說,如果你想使用區塊哈希值來獲取其在特定區塊的歷史狀態,51分鐘的歷史記錄遠遠不夠。

        這個鏈上256個區塊哈希值檢索限制主要是為了提高狀態存儲效率和減少潛在的狀態增長問題。

        Herodotus使獲取完整的區塊哈希值歷史記錄成為可能

        Herodotus是如何解決這一限制,并讓我們實現:

        • 訪問以太坊區塊哈希值的完整歷史記錄

        • 證明自創始區塊以來的所有以太坊狀態

        • 并且全部以無需信任的方式完成

        關鍵在于加密證明的力量。

        讓我們深入探討一下Herodotus歷史塊哈希值累加器的程序步驟:

        第一步:注冊一個最近的區塊哈希值

        在以太坊主網上,一個最近的區塊哈希值會在名為 SharpFactsAggregator的智能合約中注冊??梢允褂脜^塊哈希操作碼(操作碼值0x40)檢索這個區塊哈希值,并將其作為一個簡單的字符串變量保存在上述智能合約中。還可以登記相應的區塊編號,以方便以后訪問。

        假設注冊的區塊號是18,000,000,通過Etherscan我們可以看到,這個區塊的哈希值是0x95b1…4baf3。

        第二步:證明最新區塊的哈希值

        下一步是從一個存檔節點檢索區塊18,000,000的區塊頭信息,通過鏈下計算得出它的區塊哈希值,并與已注冊的區塊哈希值0x95b1…4baf3進行對比。這個計算過程同樣會通過一個證明器來創建這一計算的證明。

        這個區塊的哈希值加入到默克爾山脈范圍(Merkle Mountain Range)中。這是默克爾樹的一種變體,向樹中添加新元素不需要大量計算。

        第三步:證明X-1區塊的哈希值

        一旦我們證明了從存檔節點檢索的區塊頭是有效的,我們接著獲取X-1區塊的區塊頭,計算其哈希值,并將其與X區塊的父哈希值進行對比(這個值可以在我們之前檢索到的X區塊的區塊頭中找到)。

        如果哈希值匹配,我們就可以確定X-1區塊的區塊頭也是有效。由于整個計算可以建模為一個函數,因此可以同時創建該計算的STARK證明。由此產生了對X-1區塊頭有效性的證明(見下圖)。

        Herodotus:如何利用Starknet存儲證明來證明以太坊狀態?

        第四步:遞歸證明前序區塊的哈希值

        對所有前序區塊的區塊哈希值進行類似的計算處理,直到追溯至以太坊主網的創世區塊。這些哈希值都會附加到 MMR 樹中,從而創建一個最終的 MMR 根。

        Herodotus:如何利用Starknet存儲證明來證明以太坊狀態?

        需要注意的是,這些計算都是在鏈下完成的,并且 Herodotus 同時生成了計算證明。

        第五步:在鏈上發布證明及其后續使用

        一旦生成了最終的 MMR 根,這個根就可以連同數百萬區塊的計算證明一起發布在鏈上(在一個證明聚合智能合約上)。由于生成的 STARK 證明驗證成本極低,使得在鏈上驗證這些證明的成本變得合理。

        我們就此實現了一種方法,可以追溯并訪問以太坊自創世區塊起的所有狀態。

        Herodotus 團隊將這些 MMR 稱作「歷史區塊哈希值累加器」,實現了 Vitalik Buterin 與 Tomasz Stanczak 于 2020 年提出的 EIP-2935 目標 — 訪問超過 256 個區塊歷史數據的方法。這是一個三年多來一直懸而未決的問題!然而,Herodotus 和 Starknet 在不更改任何協議層面的前提下實現了這一目標。

        關于上述過程的一些關鍵點:

        • Herodotus 按每批約 1350 個區塊處理,并且每批的證明都會發布在鏈上。一旦完成了以太坊前 1800 萬個區塊的整個處理流程,隨著新區塊不斷加入鏈歷史,區塊歷史的 MMR 根可以定期更新。

        Herodotus:如何利用Starknet存儲證明來證明以太坊狀態?

        一旦在鏈上找到MMR根,就可以證明MMR中包含每個區塊哈希值(這是默克爾樹的基本屬性)。

        在將證明發送到以太坊主網之前,Herodotus團隊的證明者使用StarkWare團隊創建的SHARP 系統。SHARP系統的主要優勢在于它能夠降低成本并提高生成證明的效率。

        上述工作流程正在被復制到兩個獨立的MMR中,一個使用Keccak256哈希函數,另一個則使用Poseidon。以太坊將使用Keccak256變體,而Starknet將使用Poseidon變體。

        以太坊主網的MMR根通過原生的Starknet L1到L2消息傳遞協議發送到Starknet,以便在Starknet上使用。Herodotus區塊哈希值累加器還實現了在Starknet上訪問以太坊歷史數據的功能。Starknet L1到L2的消息系統可用于以安全的方式將L1區塊哈希值和經過驗證的MMR根轉發到Starknet。一旦發送到Starknet,就可以根據這些承諾來驗證以太坊歷史數據的存儲證明。

        Herodotus區塊哈希值累加器帶來的新機遇

        Herodotus和StarkWare將區塊哈希值累加器作為公共產品帶到以太坊。一旦最終的MMR根和計算證明發布在以太坊主網上,任何開發者都可以利用它們來訪問自鏈創始以來任何時間點的可證明狀態。

        由于以太坊的MMR根也將通過原生的跨鏈消息協議發送到Starknet,因此可以以簡單且無需信任的方式訪問跨鏈狀態信息。DeFi協議可以通過利用特定時間點上某個賬戶的余額信息或賬戶的杠桿持倉信息,從歷史狀態證明中獲益。使用更大歷史區塊哈希值記錄來生成更加穩健的隨機數成為可能??珂溚镀币沧兊煤唵?,用戶在L2投票前,無需先將資產進行跨鏈轉移。除此之外,還會帶來更多其他的可能性。

        結語

        在區塊鏈的可擴展性、去中心化和可驗證性不斷發展的世界中,Starknet的團隊正在成為創新的燈塔。在Starknet上創建的項目正在成為擴展以太坊的關鍵元素。當我們深入這個新未來時,熟悉Starknet生態系統將為你未來的發展奠定基礎。

        *本文轉載自互聯網,版權歸原作者所有。本站只是轉載分享,不代表贊同其中觀點。請自行判斷風險,本文不構成投資建議。*
        風險提示:防范以“虛擬貨幣”“區塊鏈”名義進行非法集資的風險,本公司所發資訊及視頻,不代表本公司任何投資建議
        Copyright ? 2022 77zhijia.com All Rights Reserved.
        国产精品国产三级国产专区_日本男女做爰在线观看_亚洲色图系列免费自拍视频_国产少妇精彩视频
        <strike id="vg2kr"><sup id="vg2kr"></sup></strike>

              <var id="vg2kr"></var>