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

化險為夷:以太坊的狀態問題_以太坊:GAS

Author:

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

來源|EthereumBlog作者|MartinHolstSwende&PeterSzilagyiMartinHolstSwende及PeterSzilagyi于2021年5月18日發布本篇博文的目的在于正式揭露以太坊平臺在柏林硬分叉之前的一個嚴重且顯而易見的問題。State狀態

我們先從以太坊和及其“狀態”的背景開始梳理。以太坊的狀態由patricia-merkletrie組成,一種前綴樹。本文不會深入技術細節,簡單來說隨著狀態增長,樹的分支會越來越密集。每個加入的賬戶都是一片新葉子。在樹根之間和葉子之間,存在大量的“中間”節點。為了查找某個特定賬戶,或是說這顆巨樹中的一片“葉子”,從樹根再通過中間節點,需要按序解決6-9個哈希才能最終對我們所尋找的數據進行哈希計算。簡而言之,每執行一次查找賬戶的trie查詢,都要執行8-9個解析操作。每次解析操作都是一次數據庫查詢,而每次數據庫查詢都可能是任意數量的實際磁盤操作。磁盤操作的數量難以預估,但是由于trie密鑰是加密哈希(抗沖突),因此密鑰是“隨機的”,這對任何數據庫來說都是最糟糕的情況。隨著以太坊的發展,一直以來都有必要提高樹訪問操作的gas費用。2016年10月,在經歷了“上海攻擊”時間之后,以太坊網絡在區塊高度2,463,000進行了TangerineWhistle硬分叉,其中包含EIP150,大舉提升了某些操作的gas成本,并引入了大量更改以防御DoS攻擊。另一次對gas費用的提升是在2019年12月的Istanbul升級中,激活了EIP1884。EIP-1884針對gas費用引入了以下改動:?SLOAD從200提升至800gas?BALANCE從400提升至700gas(并添加了一個更便宜的SELFBALANCE)?EXTCODEHASH從400提升至700gas出現的問題

數據:DeFi代幣市場價值450.8億美元:金色財經報道,8月2日,去中心化金融鎖定的總價值在跌破400億美元大關的邊緣。截至2023年8月13日,DeFi代幣市場價值450.8億美元,24小時內交易量約為18億美元。日漲幅為6.17%,交易量上漲6.39%。在202個區塊鏈平臺中,以太坊的TVL占據了58%以上的主導地位,達到243.8億美元。Tron、BSC、Arbitrum、Polygon、Optimism、Avalanche、Mixin、Solana和Cronos緊隨其后。Tron的TVL占據13.31%的市場份額,截至東部時間周日上午9:30,總價值為55.6億美元。[2023/8/14 16:24:01]

2019年3月,MartinSwende當時在進行一些EVM操作碼性能的測定。之后的EIP-1884就是基于該調查而成的。在EIP-1884被激活的前幾個月,BrokenMetre發布了這篇論文(2019/9)。兩位以太坊安全研究員,HubertRitzdorf和MatthiasEgli,與論文的作者之一DanielPerez將一個漏洞“武器化”,提交給了以太坊的漏洞賞金(bugbounty)項目。這是在2019年10月4日。建議大家閱讀這份他們提交的完整文檔,寫得很詳盡。同日,在一個專門用于討論跨客戶端安全性的頻道中,來自Geth、Parity和Aleth的開發者都得知了這份文檔。這個漏洞的本質在于觸發隨機的trie查詢。以下是一個簡單的示例:

知情人士:若Genesis破產,DCG需立即向Eldridge償還3.5億美元的貸款:12月20日消息,Digital Currency Group正試圖籌集資金,避免其經紀子公司Genesis破產,部分原因是為了避免立即償還美國金融家Todd Boehly投資公司的貸款。Boehly去年11月通過自己的投資集團Eldridge為DCG進行了一次債務融資,其中包括Eldridge和一群其他投資者提供的6億美元貸款。

知情人士表示,如果Genesis破產,這筆貸款中仍未償還的3.5億美元將立即到期。據悉,優先擔保定期貸款的排名高于其他債務,并擁有一定的優先權,這意味著在任何情況下都必須首先償還。Eldridge認為Genesis暫停提款意味著DCG無法償還債務,因此處于違約狀態。然而,Eldridge急于避免損失其投資,并正在與DCG合作,幫助其籌集資金并支付Genesis的投資者、客戶和顧客。

據悉,DCG欠Genesis的債務為16億美元,但它從Eldridge獲得的貸款具有優惠條款。DCG表示,其與Eldridge的關系“完全獨立于Genesis的重組戰略,對Genesis的任何結果都沒有影響”。(金融時報)[2022/12/20 21:56:22]

美國非營利性兒童福利組織Upbring推出首個加密捐贈基金:金色財經報道,美國最大非營利性兒童福利組織之一Upbring旗下創新實驗室 Upbring Innovation Labs (UIL) 宣布推出首個加密捐贈基金Crypto Endowment Fund for Better Childhoods,該組織稱這是首個兒童加密捐贈基金,由其合作伙伴The Giving Block(加密慈善行業領導者)管理,捐贈者可以提供加密貨幣,據悉他們正在與挖礦公司、加密協議和NFT 藝術家合作,以建立一系列具有社會影響力的合作伙伴關系,目前NFT平臺ArtBlocks創始人 Erick Calderon已捐款15 ETH。(globenewswire)[2022/9/22 7:12:12]

在其報告中,研究員們通過eth_call對同步了主網的節點執行了這個payload,以下是他們執行過程中的數據,耗費了一千萬gas:?消耗一千萬gas的EXTCODEHASH(400gas)Parity:~90sGeth:~70s?消耗一千萬gas的EXTCODEHASH(700gas)Parity:~50sGeth:~38s顯而易見,EIP-1884的更改確實在降低該攻擊的影響上起到了幫助,但還遠遠不夠。當時已經臨近在大阪的開發者大會。在開發者大會上,這個問題的信息分享給了主網的客戶端開發者。我們也和Hubert、Mathias以及GregMarkou(來自Chainsafe,當時也在進行一些ETC的工作)見面了。ETC的開發者也收到了這份報告。隨著2019年臨近尾聲,我們知道這個問題比之前預期的要嚴重,惡意交易可能將區塊時間提升到分鐘范圍。更糟的是,開發者社區對EIP-1884感到不滿,因為EIP-1884破壞了一些合約流程,而且用戶和礦工都非常希望提高區塊的gaslimit。此外,僅兩個月后的2019年12月,ParityEthereum宣布停止運維,而OpenEthereum接管了代碼庫的維護工作。隨后搭建了一個新的客戶端協調頻道,Geth、Nethermind、OpenEthereum和Besu的開發者在此繼續進行協作。解決方案

高盛:美聯儲一定程度承認通脹的積極表現方能促使美元策略性拋售:7月26日消息,高盛認為,美元若要出現令人信服的轉向,可能需要有更多安撫通脹的消息,以及更為平衡的美聯儲政策。盡管最近有關通脹的一些消息令人鼓舞,但需要美聯儲官員本周在一定程度上承認這一點才會出現美元策略性拋售。雖然市場將在這次會議上再次關注加息和9月的指引,但更重要的是關注美聯儲調整其政策的標準。高盛稱,在本周的會議上將主要關注官員們是否會擴大標準,把更多注意力放在放緩的經濟活動數據上。在這種轉變更加明確之前,市場將很難對美聯儲更加寬松的立場和美元走軟進行定價。(金十)[2022/7/26 2:37:47]

我們意識到要解決這個問題,必須要雙管齊下。一種方法是通過以太坊協議以某種方式在協議層解決該問題。最好不要破壞合約,并且避免波及“良好”行為,但仍要設法防止攻擊。第二種方式是通過軟件工程來解決,修改客戶端中的數據模型和結構。協議層的工作

關于如何處理這些類型的攻擊的第一個版本在這里。2020年2月,正式發布為EIP2583。其理念是,每當一次Trie查找導致未命中時,施加一次罰款。但是,Peter找到了應對方法,即“shieldedrelay”攻擊,可以有效地限制這種懲罰的上限(約為800)。對未命中查詢進行懲罰的問題在于,首先需要進行查找,以確定是否施加懲罰。但是如果剩余的gas不足以支付罰款,已執行了未付費的消耗。即使確實會導致拋出異常,也可以將這些狀態讀取包裝到嵌套調用中,允許外部呼叫者繼續重復攻擊而無需支付(全部)罰款。因為這個原因,這個EIP被放棄了,我們也在尋找更好的替代方案。?AlexeyAkhunov提出了Oil的概念,gas的第二來源,但和gas在本質上不一樣,因為它對執行層不可見,并可能導致事務全局回滾。?Martin在2020年5月也撰寫了一個類似的提案(GasAndKarma)在對這些不同機制進行迭代的同時,VitalikButerin提議直接提高gas成本,并且保留訪問列表。2020年8月,Martin和Vitalik開始完善EIP-2929及配套的EIP-2930。EIP-2929有效地解決了許多之前的問題。?與無條件提升gas成本的EIP-1884相比,EIP-2929只提升了未訪問部分的gas成本。這導致凈成本提升了不足一個百分點。?加上EIP-2930,不會對任何合約流程造成破壞?并且能夠在不造成破壞的前提下進一步調整gas成本2021年4月15日,這兩個EIP都在Berlin升級中被激活了。開發工作

HyperPay新版本發布,自管錢包EVM全系兼容Wallet Connect:據官方消息,HyperPay錢包發布V5.0.5版本,在該版本中,HyperPay自管錢包新增支持EVM全系兼容Wallet Connect鏈接功能;新增自管身份錢包在創建/導入助記詞時支持EVM系生成相同地址,提供整個生態中相對較低的手續費消耗,同時,HyperPay自管錢包新增空投版塊和DApp瀏覽器支持錢包切換功能,托管錢包優化了HyperCard申請流程,申請更便捷,幫助用戶獲得更好的錢包使用體驗。

HyperPay錢包成立于2017年,是集托管理財錢包、去中心化自管錢包、HyperMate硬件錢包、共管錢包于一體的多生態數字資產錢包,為用戶提供資產存管、理財增值、消費支付等一站式服務。迄今,HyperPay錢包用戶逾百萬,資管規模超10億美元,轉賬超3.1億次,托管錢包公鏈支持57+,自管錢包公鏈支持33+,HyperMate硬件錢包支持公鏈17+。[2022/7/15 2:15:40]

Peter在2019年10月提出的解決方案是“動態狀態快照”(dynamicstatesnapshots)。快照是用于以平面格式存儲以太坊狀態的輔助數據結構,在Geth節點的實時操作期間,可以完全在線構建。快照的好處在于充當狀態訪問的加速結構:?無需通過O(logN)次磁盤讀取(xLevelDB開銷)來訪問一個賬戶或存儲插槽,快照可以提供直接的O(1)訪問時間(xLevelDB開銷)。?快照支持每項條目以O(1)復雜度迭代賬戶和存儲,這使遠程節點能夠以比以前便宜得多的方式檢索順序狀態數據。?快照還啟用了更多奇特的用例,例如離線修剪狀態Trie或遷移到其他數據格式。快照的缺點在于原始帳戶和存儲數據實際上是重復的。對于主網來說這意味著將占用額外的25GBSSD空間。動態快照的概念從2019年中就已經發軔,起初的目的主要是推動快照同步的實現。當時Geth團隊在忙于許多“大項目”。?離線狀態修剪?動態快照+快照同步?通過分片化狀態實現LES(LightEthereumSubprotocol)狀態分發然而,最終決定將快照的優先級排到最前,將其他項目暫時擱置。這為后來的snap/1同步算法奠定了基礎,并于2020年3月合并。隨著“動態快照”功能的發布,我們有了一些喘息的空間。如果以太坊網絡受到攻擊,那將是痛苦的,是的,但是至少有可能通知用戶啟用快照。完整生成快照將花費大量時間,并且當時尚無法同步快照,但是網絡至少可以繼續運行。總結

2021年的三月到四月,snap/1協議在geth客戶端中實現了,使得通過新的基于快照的算法進行同步成為可能。雖然仍不是默認的同步模式,但這是很重要的一個步驟,使快照不僅可用作攻擊防護措施,并且對于用戶來說也是一項重要優化。在協議方面,柏林升級于2021年4月完成。以下是在我們的AWS監控環境中制定的一些基準:?柏林升級之前,無快照,25Mgas:14.3s?柏林升級之前,有快照,25Mgas:1.5s?柏林升級之后,無快照,25Mgas:~3.1s?柏林升級之后,有快照,25Mgas:~0.3s大致的數據顯示柏林升級能夠將攻擊的效率降低5倍,快照能夠將其降低10倍,總計將影響降低了50倍。我們估計目前在主網(15Mgas),對于未使用快照的geth節點來說,有可能創建執行時間在2.5-3秒的區塊。對于非快照節點來說,隨著狀態增長這個數字會持續惡化。如果通過gas退還來增加區塊內的有效gas使用量,則可能會進一步加劇為(最大)2倍。隨著EIP1559的實施,區塊的gaslimit的彈性會更大,并且在臨時爆發中會再增加2倍。至于實施這種攻擊的可行性,攻擊者購買一整個區塊的成本約為幾個ETH(100Gwei時15Mgas為1.5ETH)。為什么現在公布?

這個風險其實一直以來都是一個“公開的秘密”,已經不止一次被意外公開披露,并且在核心開發者會議中多次被提及,但并未涉及細節。現在既然已經實施了柏林升級,geth的節點也在默認情況下使用快照同步,因此我們估計現在的威脅性已經非常低了,現在是時候對幕后工作進行全面公開了。重要的是,讓社區有機會了解一些變更背后的原因,而這些變更會對用戶體驗造成負面影響,例如gas成本增加和限制gas返還。本文由MartinHolstSwende和PeterSzilagyi在2021-04-23寫就。并于2021-04-26與基于以太坊的項目進行分享,2021-05-18公開發布。原地址:https://blog.ethereum.org/2021/05/18/eth_state_problems/

Tags:GASETH以太坊ELDGASG幣TogetherBNB和娜娜互動以太坊最新價格人民幣DeFi Yield Protocol

TRX
從一萬個比特幣換披薩到半個比特幣換特斯拉,比特幣在經歷著什么_WEB3:比特幣一個多少人民幣2023年

之前不知道比特幣是什么,當知道的時候,它已經是我們普通人不能觸碰也無法觸碰的巨大所在了。以前只是聽說,中間把它當成笑話,后來把它當成了傳說.

1900/1/1 0:00:00
步入主網時代,高性能公鏈智圖(SmartX)如何后發超車?_300:女生報區塊鏈專業怎么樣啊

還記得幾年前的公鏈大戰嗎?彼時,新公鏈們高舉各類創新共識機制、算法和架構的大旗,涌入市場,妄圖在以太坊尚未稱王前占有一席之地.

1900/1/1 0:00:00
一文看懂馬斯克說的比特幣能源問題_比特幣:LANA

圖源:Twitter美國時間5月13日早上,特斯拉CEO馬斯克發推稱,將停止接受用戶用比特幣購買特斯拉產品的計劃,理由是比特幣挖礦造成了嚴重的能源負擔和化石燃料消耗.

1900/1/1 0:00:00
動物幣兇猛:誰在點火?誰在獲益?會留下什么_DOG:SHI

吳說作者|ColinWu本期編輯|ColinWu除了批評動物幣,我們也應該反思,為何所謂的“價值幣”,流量那么低?5月10日會成為中國行業人士難忘的一天。首先是Doge.

1900/1/1 0:00:00
關于波卡的插槽拍賣、眾貸,看這一篇就夠了_區塊鏈:有人靠區塊鏈4天就掙了30萬

在5月19日的波卡社區大會PolkadotDecoded中,Parity核心開發者,也是拍賣和眾貸系統的開發者之一的ShawnTabrizi介紹了波卡平行鏈的拍賣、眾貸和插槽.

1900/1/1 0:00:00
OEC正式發車,哪些信息值得重點關注?_OSMO:oec幣怎么挖

5月10日,歐易OKExCEOJayHao發布關于OEC生態建設的公開信。信中提到,OEC主網已支持EVM,生態建設正式開啟.

1900/1/1 0:00:00
ads