加密貨幣交易所 加密貨幣交易所
Ctrl+D 加密貨幣交易所
ads
首頁 > Luna > Info

以太坊今日將完成柏林硬分叉升級,這些知識點你需要了解_GAS:SLOT

Author:

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

在北京時間4月15日下午18:00左右,以太坊的柏林硬分叉升級將會發生,這次升級將納入4個新的EIP改進提案,而其中兩個將會影響交易的gas成本計算。

本文解釋了在這次硬分叉升級前后的gas成本計算,這將如何隨EIP-2929而發生改變,以及如何使用EIP-2930引入的訪問列表功能,原文作者是NomicLabs軟件開發者FrancoVictorio。

注:文章篇幅較長,以下是其中的一些要點:

柏林硬分叉改變了一些opcode操作碼的gas成本。如果你在dapp或智能合約中有一個硬編碼的gas值,它們可能會停止工作。如果發生這種情況,并且智能合約是不可升級的,則用戶將需要使用訪問列表來啟用它。

訪問列表可用于稍稍降低gas成本,但在某些情況下,它們實際上會增加gas消耗總量。

geth包含了一個新的RPC方法來簡化訪問列表的創建。

柏林硬分叉前的gas成本

EVM執行的每個opcode操作碼都有一個相關的gas成本。對于大多數操作碼而言,這個成本是固定的:PUSH1總是消耗3個單位的gas,MUL則消耗5個單位的gas,等等。而對于其他操作碼來說,它是可變的:例如,SHA3操作碼的成本取決于其輸入的大小。

幣安:支持以太坊合并計劃,目前不做任何上幣保證:8月10日消息,幣安發布《關于支持以太坊合并計劃的公告》,據公告內容顯示,幣安密切關注預計將于 2022 年第三季度/第四季度在以太坊網絡上進行的合并計劃,該計劃可能產生新的分叉 Token。幣安將支持以太坊合并計劃,若產生新的分叉 Token,幣安將評估并支持分叉 Token 的分發和提現。

幣安補充表示,所有分叉幣需和其它 Token 一樣通過幣安的上幣審核流程。根據內部政策,幣安不會做任何的上幣保證。[2022/8/10 12:16:32]

我們將重點討論SLOAD和SSTORE操作碼,因為它們是受柏林硬分叉影響最大的操作碼。我們稍后將討論那些以地址為目標的操作碼,就像所有的EXT*和CALL*操作碼,因為它們的gas成本也會發生變化。

柏林硬分叉之前的SLOAD

如果沒有EIP-2929,SLOAD的成本很簡單:它總是會消耗800gas。

柏林硬分叉之前的SSTORE

就gas而言,SSTORE可能是最復雜的操作碼,因為它的成本取決于存儲slot的當前值、新值以及它是否以前被修改過。我們將只分析一些場景以獲得基本的理解。如果你想了解更多,請閱讀本文末尾鏈接的eip。

如果slot的的值從0更改為1,則成本為20000;

如果slot的的值從1更改為2,則成本為5000;

聯合國兒童基金會在以太坊上推出NFT系列,展覽盈利將幫助學校接入互聯網:12月11日消息,聯合國兒童基金會(UNICEF)今天宣布在以太坊推出一系列NFT,以紀念該聯合國機構成立75周年。UNICEF表示,將于2022年1月開啟NFT展覽,由數字藝術家和數據科學家Nadieh Bremer舉辦,名為“拼湊王國”(Patchwork Kingdoms)。該展覽的利潤將用于支持該基金會的許多項目,包括為全球兒童提供互聯網接入資金的Giga計劃。

“Patchwork Kingdoms”系列是與NFT市場Snowcrash Labs、以太坊基金會、Metagood等合作創建的,包含1000個NFT。UNICEF表示,為了巧妙地傳達Giga的重要性,每個NFT都使用了該計劃從21個國家的28.2萬所學校收集的數據。(Decrypt)[2021/12/11 7:32:32]

如果slot的的值從1更改為0,則成本也為5000,但在交易結束時你將獲得gas退款。這篇文章中,我們不會詳細討論退款,因為它們不受柏林硬分叉的影響;

如果以前在同一事務中修改了該值,則所有后續sstore的成本為800;

這里的細節有些枯燥,重要的一點是,SSTORE是非常昂貴的,其成本取決于幾個因素。

實施EIP-2929之后的gas成本

EIP-2929改變了所有這些值,但在此之前,我們需要先談談這個EIP引入的一個重要概念:已訪問地址和已訪問存儲密鑰。

Anchorage將通過BankProv提供以太坊支持的貸款:加密托管銀行Anchorage正在通過BankProv擴大其貸款服務,提供以太坊支持的貸款,BankProv是一家傳統的馬薩諸塞州銀行,前身為Provident Bank。Anchorage已經通過包括Silvergate 銀行在內的其他資本提供比特幣支持的貸款。(CoinDesk)[2021/6/3 23:09:23]

如果地址或存儲密鑰以前在交易期間被“使用”,則該地址或存儲密鑰就被視為已訪問。例如,當你調用另一個合約時,該合約的地址會被標記為已訪問。類似地,當你SLOAD或SSTORE某些slot時,它將被視為在交易的其余部分已被訪問。不管是哪個操作碼做的:如果一個SLOAD讀取了一個slot,那么它將被認為對接下來的SLOAD以及SSTORE都是已訪問的。

這里需要注意的一點是,存儲密鑰位于某個地址的“內部”。正如EIP所解釋的:

“執行事務時,維護一組accessed_addresses:Set和accessed_storage_keys:Set]”

也就是說,當我們說一個存儲slot被訪問時,我們實際上是說一對(address,storageKey)被訪問了。

話雖如此,我們還是來談談新的gas成本吧。

柏林硬分叉之后的SLOAD

以太坊近24小時內鏈上交易額有所上升,約為15.66億美元:據Tokenview數據顯示:ETH近24小時內鏈上交易額為2858521.27 ETH,同比24小時前上升5.02%,ETH近24小時內鏈上交易數為1175506筆,同比24小時前上升6.13%;昨日ETH活躍地址數為568480個,較前日上升0.12%,較近7日日均活躍地址數下降0.02%;昨日ETH新增地址數為117217個,較前日下降18.44%,較近7日日均新增地址數下降16.54%。 截至下午14時,以太坊全網算力272.85TH/s, 建議Gas費用48.03Gwei,未確認交易筆數約為9.81萬筆。[2020/12/9 14:41:23]

在柏林硬分叉之前,SLOAD的固定成本是800gas,現在,這取決于是否已訪問了存儲slot。如果未訪問,則成本為2100gas,如果已訪問,則成本為100gas。因此,如果slot在已訪問的存儲密鑰列表中,則一次SLOAD的成本會降低2000gas。

柏林硬分叉之后的SSTORE

讓我們在部署EIP-2929的環境下回顧一下之前的SSTORE示例:

如果slot的值從0更改為1,則成本為:22100,20000;

如果slot的值從1更改為2,則成本為:5000,2900;

如果slot的值從1更改為0,則成本與上一項相同,然后加上退款;

以太坊有望在2020年第三季度提供質押:金色財經報道,Eth 2.0客戶運營商Teku的Ben Edgington今天在Ethereal虛擬峰會上透露,以太坊2.0的質押計劃最早可在2020年7月啟用。Beacon鏈將可在“幾周或幾個月”內啟動,但Edgington稱有80-90%的信心會在第三季度發布。據悉,Beacon鏈是以太坊2.0路線圖第0階段的主要里程碑。Beacon鏈將成為以太坊2.0的主鏈,并將以PoS機制運作。1.5階段將使Eth 1.0與Eth 2.0合并,并且當前的以太坊區塊鏈將成為新組建的64個分片之一。[2020/5/9]

如果以前在同一交易中修改了該值,則所有后續SSTORE的成本為100;

如你所見,如果要修改的slot以前被訪問過,那么第一次SSTORE的成本將降低2100gas。

下面的表總結了目前為止所有改變的值:

請注意,在最后一行中,談論是否訪問了slot是沒有意義的,因為如果它以前被寫入過,則表明其也被訪問過。

EIP-2930

我們在文章開頭提到的另一個EIP就是EIP-2930,這個改進提案添加了一種新類型的事務,該事務可以在事務負載中包括訪問列表。這意味著你可以在事務開始執行之前預先聲明哪些地址和slot應被視為是已訪問的。例如,一個未訪問slot的SLOAD成本為2100,但是如果該slot包含在事務的訪問列表中,則相同的操作碼成本就為100。

但是,如果當地址或存儲密鑰已被訪問時,gas成本變更低了,這是否意味著我們可以將所有內容添加到事務的訪問列表中并降低gas成本呢?不完全是這樣,因為你還需要為添加的每個地址和每個存儲密鑰支付gas。

讓我們看一個例子,假設我們正在向合約A發送一筆交易,訪問列表可能如下所示:

如果我們用這個訪問列表發送了一筆交易,并且第一個使用0x0slot的操作碼是SLOAD,則它將花費100gas,這就降低了2000gas的消耗量。但事務訪問列表中包含的每個存儲密鑰的成本為1900gas,所以我們只省了100gas。

這是否意味著我們在使用帶有訪問列表的交易時總是能節省gas消耗?并非如此,因為我們還要為訪問列表中的地址支付gas成本

已訪問地址

以上,我們只討論了SLOAD和SSTORE操作碼,但這些并不是柏林硬分叉之后唯一改變的操作碼。例如,原先調用操作碼的固定成本為700gas。但是在實施EIP-2929之后,如果地址不在訪問列表中,則開銷就是2600gas,但如果是在已訪問列表中,則開銷就是100gas。而且,與已訪問存儲密鑰一樣,之前訪問該地址的操作碼并不重要。

這是如何受到訪問列表交易的影響的?例如,如果我們將一筆交易發送至合約A,而該合約調用另一個合約B,那么我們可以包含如下訪問列表:

我們必須支付2400gas的費用才能將這個訪問列表包含在交易中,但是第一個使用B地址的操作碼將花費100gas。所以我們這樣做就節省了100gas,如果B以某種方式使用它的存儲,并且我們知道它將使用哪些密鑰,那么我們還可以將它們包括在訪問列表中,并為每個密鑰節省100/200的gas。

但我們為什么要談另一個合約呢?我們調用的合約怎么了?我們為什么不這樣做?

我們可以這樣做,但這是不值得的,因為EIP-2929指定了被調用的合約地址總是包含在accessed_addresses列表中,因此這只會白白浪費2400gas。

讓我們再次分析上一節的示例:

這實際上是浪費,除非我們包含多個存儲密鑰。如果我們假設一個SLOAD總是首先使用一個存儲密鑰,那么我們至少需要24個存儲密鑰才能實現收支平衡。

顯然,分析并創建這樣的一個訪問列表是沒有意義的。幸運的是,我們有更好的方法。

eth_createAccessListRPC方法

Geth包含了一個新的eth\ucreateAccessListRPC方法,其可以用來生成訪問列表。它的用法類似于eth_estimateGas,但它不是用于估算gas,而是返回如下內容:

也就是說,它為你提供了該交易將使用的地址和存儲密鑰的列表,以及如果包含訪問列表,則會消耗的gas。

我想,隨著時間的推移,我們會發現執行此操作的正確方法是什么,而我的偽代碼猜測是:

激活合約

必須要指出的是,訪問列表的主要目的不是使用gas,正如EIP所解釋的:

“EIP-2929所引入的是減輕合約破壞風險,因為交易可預先指定和支付交易計劃訪問的帳戶和存儲slot。因此,在實際執行中,SLOAD和EXT*操作碼只需要100gas,這已經足夠低了,它不僅可防止因該EIP而導致的破壞,還可以“激活”由于EIP1884而卡住的任何合約。”

這意味著,如果一個合約對執行某些操作的成本做出假設,那么gas成本的增加可能會導致它無法工作。例如,一個合約調用另一個合約因為它假設某個函數正好使用34500gas,那么它就會中斷,但如果在事務中包含適當的訪問列表,那么合約將再次工作。

如果你想自己測試這些EIP,你可以復制這個repo,它有幾個可使用Hardhat和geth執行的示例。有關說明,請查看README文件。

相關資料:

1、EIP-2929?和EIP-2930?

2、EIP-2930依賴于柏林硬分叉的另一組成部分:EIP-2718?;

3、EIP-2929引用了大量EIP-2200?的內容,所以如果你想更深入地了解gas成本,你應該從EIP-2200開始;

4、有關比較gas使用量變化的更復雜示例?;

Tags:GASSLOTLOT以太坊ugas幣什么時候爆發SLOT價格SHIFLOTRI幣比特幣以太坊最新消息分析

Luna
金色觀察丨穩定幣不穩定?投資者拋售FEI的背后故事_FEI:Uniswap Finance

金色財經區塊鏈4月16日訊得到多家主流風險投資方支持的穩定幣項目FeiProtocol希望構建與美元1:1錨定的穩定幣,打造一個穩定幣協議,該協議將直接使用其代幣購買資產.

1900/1/1 0:00:00
全球算力大會| Foundry(DCG)首席執行官Michael Colyer:國家、能源公司、主權財富基金未來將成為比特幣挖礦的新型參與者_比特幣:比特幣市場規模排名

4月17日,“超算·融合,2021全球區塊鏈算力大會”在四川成都開幕。本屆大會由巴比特、鏈節點、幣印聯合主辦,吳說區塊鏈協辦。這是繼“2020全球區塊鏈算力大會”落地成都以來的第二屆算力大會.

1900/1/1 0:00:00
觀點:阻止加密支付成為主流的究竟是什么?_加密貨幣:穩定幣

在過去的幾年中,隨著企業和個人開始認識到區塊鏈技術的好處,人們對加密技術的興趣急劇增加。同時,隨著比特幣價格最近達到歷史新高,許多新消費者希望在日常生活中使用加密貨幣.

1900/1/1 0:00:00
一文了解MEV賽道的ARCH和ROOK,誰是最后的勝利者?_MEV:CARCADE價格

原標題:《MEV賽道》 什么是MEV MEV是MinerExtractableValue,指的是礦工可提取價值.

1900/1/1 0:00:00
為DeFi的大規模應用鋪路——風險分級協議_EFI:DefyDefi

"風險分級將擴大DeFi的總可尋址市場,為用戶提供更高的收益率和更低的風險選擇"——SaffronFinance創始人PsyKeeper.

1900/1/1 0:00:00
“戲耍”蘋果公司,裁掉聯合創始人……揭秘Coinbase的7段往事_coinbase:OIN

周三,Coinbase在萬眾矚目下如約登陸納斯達克。過去,Coinbase在安全和監管上一直保持謹慎態度,給人留下專業且保守的形象.

1900/1/1 0:00:00
ads