比特幣價格 比特幣價格
Ctrl+D 比特幣價格
ads

GAS:Vitalik:值得考慮刪除的EVM功能_ITA

Author:

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

前言:為什么“合并”是我們刪掉一些東西的最后機會,以及為什么我們應該這樣做

到2020年,我們對如何設計智能合約和區塊鏈協議的理解已經遠超2013-15年。因此,如果我們在2021年從頭開始搭建以太坊,我們就不會引入很多早期添加的功能了。然而從一條正在運行的、擁有活躍生態的區塊鏈中移除功能,遠比在一個新系統中不添加它們要難得多。

有些“缺陷功能”是無害的。有些可以安全而緩慢地移除或改進。還有些已經深深地嵌入到了太多的應用中,以至于根本改不動。另一方面,也有一些功能要么已經被移除,要么已經被改進,要么即將被移除。

但是還有一些中間情況:有些功能過于復雜,對生態的發展造成了中等程度的傷害,我們可以移除它們,但是需要冒一點風險。如果我們移除這些功能,可能會有少量的應用被破壞。但是不移除的話,它們會繼續拖累生態。

就跟別的“長痛短痛”抉擇情形一樣,人們很容易低估短痛帶來的長期收益。特別是在我們的情況中,由于解決復雜情況的代碼已經寫好了,所以感覺保留它們不需要付出任何成本。但實際上有兩個重要的成本要考慮:

為協議開發新實現的成本

若要改變功能B,但B會跟沒必要存在的復雜功能A交互,可能會產生“交互bug”

Vitalik:Rollup有可能使以太坊TPS達到每秒10萬筆交易,甚至更多:7月24日,“2021世界區塊鏈大會·杭州”在杭州未來科技城學術交流中心開幕。以太坊創始人Vitalik Buterin(V神)受邀出席并發表主題演講《以太坊進入2.0之后,會發生什么?》。他表示,現階段, Rollup可以擴展到每秒大約4000到5000筆交易。假設整個以太坊生態都可以用上Rollup,然后有了數據分片之后,我們可能有20到50倍更多的空間。Rollup有可能使以太坊TPS達到每秒10萬筆交易,未來甚至更多。分片首先會添加一些基礎的安全性,然后再增加更多的安全性,然后分片會迎來越來越多的改進。(巴比特)[2021/7/24 1:12:51]

以重新設計狀態樹為例:若以太坊的狀態越是遵循一些簡單的恒常性質,那么替換更高效的雙層十六進制Patricia樹就會越容易。然而在現實情況中,因為SELFDESTRUCT操作碼可以在單筆事務中不受限制地刪除大量存儲插槽,這給改良狀態樹帶來了很大的困難。另一個例子是2300gas津貼機制使gas重新定價變得更復雜。

"合并"可能是我們扯掉一些痛苦繃帶的最后機會,這篇文章就是解釋這樣做的理由。

合并是進行最后一輪不兼容更新的一個非常自然的時間節點,有以下幾個理由:

以太坊創始人Vitalik提倡加密貨幣廣泛采用社交恢復型錢包:1月11日消息,以太坊創始人VitalikButerin發布博文章提倡加密貨幣行業應采用一種社交恢復型錢包(socialrecoverywallets),這種新型智能合約錢包可更好的提升加密貨幣的安全保護。社交恢復型錢包工作原理主要有兩部分,第一,只有一個簽名密鑰可用于批準交易;第二,至少有3個(或更多)監護人,其中大多數可以配合更改帳戶的簽名密鑰。如果用戶丟失了簽名密鑰,那么社交恢復功能就會啟動。用戶可以直接與監護人聯系,要求他們簽署一項特殊交易,以將錢包合同中注冊的簽名公鑰更改為新的簽名。目前,已實現社交恢復功能的兩個主要錢包是Argent錢包和Loopring錢包。不過,這兩個錢包都存在兩大問題,分別是依賴中繼器來解決交易,以及高交易費,但可以通過將生態系統移至第2層協議解決,例如ZKrollups。[2021/1/11 15:51:02]

合并后構建的客戶端很可能不處理PoW鏈,而是專門驗證PoS信標鏈。因此,如果在合并時或合并前去除不必要的復雜功能,客戶端最容易從中受益,因為它們根本不需要實現這些功能。(從技術上講,即使是在合并前建立的客戶端也可以設計成只處理最近1-2個硬分叉之后的數據,但是“PoS信標鏈作為一條獨立的鏈而不需要處理PoW鏈上過于久遠的數據”的說法更容易讓人接受)

動態 | EOS 的Activity指數為61,173,284:據IMEOS報道,截止01月24號11點,blocktivity.info上顯示,排名第一的 EOS 的Activity指數為61,173,284 ,排名第二、第三分別為 TLOS 和 KIN 。Acitivity指數為最近24小時內在區塊鏈上執行的操作數量。[2020/1/24]

以太坊已經發生了很大的改變,社區對這將是“以太坊的一次重大升級”達成了共識。特別是“在分片和合并完成之前會出現快速的進化,但合并之后就會趨于穩定”的觀點也得到了社區的一致認可。

必要的向后不兼容的改變已經發生了。

這篇文章將介紹一些可以考慮刪除的功能的例子。

功能列表

2300gas津貼

這是什么?當一個合約調用另一個合約時,被調用的合約會得到2300gas用于執行非常有限的操作

為何引入?最初是為了讓智能合約錢包在收錢時能自動生成一條日志。后來還被用于實現“守衛”功能以防止合約收到ETH。

有何問題?

由于它設置的是固定的gas數量,因此只要gas價格可以調整,人們就沒有辦法確定這些gas到底能支持什么類型的計算。

動態 | 加密項目Vite與TROY達成戰略合作關系:自定義區塊鏈應用生態系統Vite今日宣布與加密經紀商Troy Trade(TROY)達成戰略合作關系。通過此次合作,Vite成為TROY推出的“全球生態社區計劃(Global Ecological Community Program)”的第十一位成員,而TROY也將加入Vite網絡成為區塊生產者。(Crypto Ninjas)[2020/1/2]

它并沒有很好地滿足設計意圖,有兩個原因。首先,很多用戶仍然在使用外部賬戶,而外部賬戶并不會生成日志。其次,SELFDESTRUCT操作碼繞過了津貼機制。從長遠來看,通過賬戶抽象化,外部賬戶的作用將被弱化,并且SELFDESTRUCT操作碼可能將被移除,但是在這兩件事完成之前,它都只是一個不充分的解決方式。

如何移除?有兩種可能——要么將2300改成0)要么不限制數量

移除有何副作用?

如果我們移除子執行,那么這將需要在合約調用中添加一個笨拙的二分處置,即0gas解釋為0,任何其他數字解釋為“發送所有的gas”。它還會破壞反接收守衛功能和日志記錄。

如果我們在執行中允許子執行獲得全部的gas,那么通過調用發送ETH會變成一個需要信任的操作,惡意合約可能會借此擾亂一些應用。不過,Solidity文檔已經建議大家用withdrawal模式代替transfer,這樣就不會有任何風險了。

動態 | Kavita Gupta離職后 ConsenSys宣布重組其各項業務:據Cointelegraph消息,5月6日,風險投資公司ConsenSys在一份新聞稿中證實,其正在重組其各項業務,以鞏固其市場地位。據悉,其ConsenSys將整合ConsenSys實驗室、加速器Tachyon、風險投資運營公司以及ConsenSys Ventures合并為一個傘型投資部門。此前報道, ConsenSys Ventures負責人Kavita Gupta表示即將辭職,將擔任顧問并在斯坦福大學任教。[2019/5/7]

如何消除顧慮?

讓所有的ETH轉賬,無論是來自調用還是SELFDESTRUCT,都生成一條日志,這樣錢包就不需要生成日志了

增加一條規則,對于提供0gas的調用,可看做是一個“可以生成日志的STATICCALL”。這樣就復制了在gas津貼的執行環境里實際做到的功能。

剩余Gas額度可見性

這是什么?GAS操作碼允許合約查看當前的執行環境中還剩多少gas可用。CALL允許調用者為子上下文提供固定數量的gas。

為何引入?反對讓CALL將父環境中剩余的全部gas都交給子環境的最主要原因是避免“不可信任的調用”:即發送者不信任接受者的調用。一個簡單的例子是發送ETH給參與方的金融機制。另一個例子是M-of-N外部價格信息的輸入機制,通過調用一些合約,在獲得所有合約回復后取中位數作為輸出。

有何問題?

其實絕大多數不可信任調用的用例都可以通過其他方式繞過去。對于轉賬,Solidity文檔已經建議大家用withdrawal模式代替transfer。M-of-N外部價格信息的輸入機制可以很容易地通過為每一個外部輸入單獨創建一筆交易實現。

這會讓gas重定價變得很難做,當操作碼的gas消耗量發生變化,固定gas數量的調用可能會不夠用。

如何移除?

讓CALL可以自動將父環境的所有可用gas額度都交給子環境。GAS操作碼只需簡單地返回交易的初始gas數量。

移除有何副作用?

我們知道的“不可信任調用的合法用例”主要是第三方贊助調用。第三方發布一筆事務,事務中包含你希望的調用,當調用發生后,可以自動地向你扣費。這對用戶沒有任何ETH的智能合約錢包、混幣者的隱私保護以及其他一些用例都很有用。我們需要一個有限gas數量的調用以確保最終的支付語句真正被調用,而不會因為gas不足而被回退。

如何消除顧慮?

礦工可以直接充當中介,如果交易最終沒有付錢給他們,他們就可以直接丟棄事務。參見PhilDaian的工作,他創建了一個由第三方機器人構成的生態,礦工可以自動產生“安全”的批量交易。

在協議內增加一個明確的“第三方付款人”的交易類型。參見EIP2711的例子。

還請注意,如果我們想要走得更遠,我們還需要調整63/64規則使得如果子調用失敗,父調用也徹底失敗。這可能會破壞更多的用例,但它將確保當gas消耗量發生變化時只會引起一種類型的行為變化。

SELFDESTRUCT

請看這篇文章。

Gas退款

這是什么?調用SELFDESTRUCT銷毀一個合約,或者將一個存儲槽設置為零,會退回15000-25000gas。退款會在事務執行的最后觸發,并抵扣發送者需要支付的費用。

為何引入?激勵應用開發者踐行“良好的狀態衛生”,清除不再需要的存儲插槽和合約。

有何問題?

在實踐中,幾乎沒有人真正踐行良好的狀態衛生。這是因為激勵不夠高,不值得為此增加代碼的復雜度甚至帶來安全風險。

退費機制使得GasToken興起。GasToken有利于將低費率時期的gas調配到高費率時期使用,但是它不利于網絡,特別是加重了狀態規模的膨脹,并使低效的gas使用方法阻塞了區塊鏈。

它加劇了區塊大小的波動,使一個區塊實際上的理論最大gas消耗量幾乎是字面意義上區塊Gas上限的兩倍。這并不致命,但仍然不可取,特別是考慮到,在EIP-1559實施后,退款機制可以使網絡的實際Gas使用量長期維持高水平,阻礙1559機制的運行。

如何移除?只要把退款功能從協議中完全刪除。

移除有何副作用?

我們可以相當確信,沒有任何應用會因此無法使用,因為退款只在執行結束后觸發,所以取消退款并不會改變任何執行的可用gas數量。

GasToken將變得毫無用處

在gas價格反常時,應用失去了降低費用的能力。好在這個功能目前最主要的用戶是defi的套利機器人,而套利機器人之間的gas價格競爭是一種零和活動,不過還不清楚移除這個它們用于競爭的武器會造成什么全局性的不利影響。

如何消除顧慮?

Gastoken在他們的網站上已經警告過,未來的協議變更可能會使GasToken無效,所以用戶不會覺得驚訝

我們可以提前公布變更時間

其他候選功能

相比上面列舉的,我對移除以下功能會帶來多少價值缺乏信心,不過還是值得列出一個清單。

RIPEMD160預編譯:這是一個非標準的哈希函數,很少有項目使用。我們可以用鏈上部署的合約進行替換,對于真正需要高效驗證的項目,可以直接使用ZK-SNARK。

動態跳轉:使用變量作為跳轉目標會使代碼的分析和操作變得更加困難。去掉動態跳轉,只允許相對偏移的靜態跳轉,并且為子程序提供一些專用的指針方案可以解決這個問題。然而,這將是一個底層的改變,可能會破壞許多自定義的合約,所以其收益/成本比似乎不如這個列表中的其他項目。

MODEXP預編譯:對于大整數計算來說,這顯然是一個錯誤的“基本元件”,并且其gas消耗的計算方案也相當復雜。更好的選擇是:(i)用預編譯的ADD、MUL和MOD作為替代的基本原語,并用這些預編譯的指令編寫用于替代MODEXP的實現,或者(ii)將EVM384擴展到更多的長度

原文鏈接:https://hackmd.io/@HWeNw8hNRimMm2m2GH56Cw/evm_feature_removing作者:Vitalik翻譯&校對:戡亂&阿劍

Tags:GASVIT以太坊ITAgas幣騙局Vitteey以太坊交易幣怎么交易SafuTitano

酷幣下載
比特幣:3.4午間行情:資金獲利了結 進入震蕩時間_BTC

文章系金色財經專欄作者牛七的區塊鏈分析記供稿,發表言論僅代表其個人觀點,僅供學習交流!金色盤面不會主動提供任何交易指導,亦不會收取任何費用指導交易,請讀者仔細甄別,謹防上當.

1900/1/1 0:00:00
比特幣:NewBloc:就當下全球經濟形勢討論比特幣的短期投資_萊特幣和比特幣的區別在哪

據俄羅斯衛星通訊社3月7日報道,俄軍密集發射圓點導彈,摧毀美石油交易市場。同日晚間,沙特石油重鎮宰赫蘭市上空傳出巨大爆炸聲.

1900/1/1 0:00:00
NFT:NFT生態大起底:最值得關注的項目都在這里_GDEFI幣

原文作者:0x13、0x26,律動BlockBeats從2020年末開始,NFT領域迎來了前所未有的迅猛增長,社群中對NFT的討論也與日俱增.

1900/1/1 0:00:00
SIN:簡析meerkat跑路事件 如何躲避DeFi野礦?_EOS

安全生產簡析下meerkat跑路事件 一、核心問題 1.AdminUpgradeabilityProxy天然的負面影響一代理的邏輯合約可以被替換2.

1900/1/1 0:00:00
比特幣:彭博分析師:比特幣取代黃金的步伐正在加快_MCG

?彭博資訊的一位頂級商品策略分析師MikeMcGlone,在推特上分享了他的分析數據,指出比特幣取代黃金作為投資者投資組合中的價值儲存的步伐正在加快.

1900/1/1 0:00:00
比特幣:高盛:機構需求量巨大,比特幣年內或有望漲至10萬美元_加密貨幣市場總市值多少億

本文來源:金十數據 高盛集團在重啟加密貨幣交易平臺之際,發現了機構對數字資產的巨大需求。高盛數字資產全球負責人MattMcDermott在播客上表示,在對近300名機構客戶進行調查后,發現目前有.

1900/1/1 0:00:00
ads