買以太坊 買以太坊
Ctrl+D 買以太坊
ads

TRU:觀點:務實地取消 SELFDESTRUCT_DEST

Author:

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

本文將介紹?SELFDESTRUCT?對以太坊生態弊大于利的一些理由,正是因為這些理由,我們應該以某種方式移除?SELFDESTRUCT?。鑒于有些合約已經使用了?SELFDESTRUCT?,我提出了一些只需要付出最小的代價就能消除?SELFDESTRUCT?危害的方法。

一段歷史:?SELFDESTRUCT?已經沒有必要了

SELFDESTRUCT?早在以太坊的極早期便已引入。實際上,它在2013年12月發布的以太坊協議“規范”預告中就已經出現了。那時候,幾乎沒人仔細考慮過狀態規模管理的長遠問題。但是,有個想法我大概還有些印象,為了防止沒用的垃圾狀態不受限制地膨脹,我們需要讓任何創建出來的對象都可以被銷毀。具體的思路是,當外部賬戶的余額為零時觸發自毀,而合約在沒用后可以調用代碼里的一行自毀語句觸發自毀。還有一個gas退款機制用于激勵大家銷毀沒用的狀態。

2014年1月,AndrewMiller指出了一個非常嚴重的問題:在2013年12月的規范設計中,EOA很容易被重放攻擊。如果我有100個幣,我通過一筆交易發給你10個幣,你可以簡單地在鏈上重放這筆交易十次,從而轉走我的全部余額。這個問題很快就修復了,為此我們增加了nonce字段。然而,nonce字段的引入讓刪除EOA的愿望徹底破滅了:nonce是不能被重置為零的一旦該賬戶被再次使用,nonce又要從零開始,就會被重放攻擊)。

觀點:區塊鏈技術能夠大幅度降低碳市場應用的成本:11月25日,在中國銀行業協會與深圳市地方金融監督管理局的指導下,由中小銀行互聯網金融(深圳)聯盟、《中國銀行業》雜志社聯合主辦,深圳市銀行業協會、金融壹賬通協辦的第五屆中國數字銀行論壇順利召開。倫敦大學可持續金融與基建轉型學院首席教授、廣東南方CCUS中心秘書長梁希在大會上分享了數字化技術如何助力金融機構碳排放管理。梁希表示,金融機構在應對氣候變化工作時要特別注意管理好氣候風險和轉型風險。數字化技術,特別是區塊鏈等信息化技術未來將在碳市場中大有可為。一方面,區塊鏈技術能夠大幅度降低碳市場應用的成本,提高客戶的黏性和忠誠度。另一方面,還增強碳市場的透明度,提升信息的對稱性。“基于區塊鏈的企業碳交易,可以可靠地記錄和傳輸信息流,實現供應商與需求者之間的點對點交易,有效降低碳交易市場的進入門檻。”(東方網)[2021/11/26 12:34:25]

2015年,有人提出了一些方案試圖繞過這個問題,使余額為零的賬戶可以被安全地刪除。然而,當時很明顯,幾乎沒有合約開發者真正使用自毀功能:因為要弄清楚什么時候自毀太難了,而獎勵也太少了。

觀點:ETF將為散戶投資者提供進入BTC市場的途徑:股票和加密分析師Ronnie Moas剛剛發推稱,現在有16個比特幣ETF正在接受美國證券交易委員會(SEC)的批準,也許會在未來的4-6周內有進展,也許更長時間。ETF將為散戶投資者提供進入比特幣市場的途徑,而不必擁有比特幣本身。ETF是許多退休投資組合的主要產品。[2021/5/27 22:49:49]

到2019-21年,事情已經變得很明顯了,我們需要的是其他形式的狀態管理,比如租金機制或者是長期未動的狀態“到期作廢””)。而如果我們采用這兩個方案中的任何一個,只要它是有效的,那么合約是否有能力主動刪除自己就一點兒也不重要了。

SELFDESTRUCT?是唯一一個破壞重要恒常性質的操作碼

SELFDESTRUCT?不僅沒什么用,還會產生危害。它破壞了一些重要的恒常性質,這些性質本來是很好的,但是僅僅因為這一個操作碼,我們就失去了這些性質。

SELFDESTRUCT?是唯一一個能在單個區塊中變更無限個狀態對象的操作碼

觀點:比特幣適用于國際支付的特性彌補了其在日常交易能力方面的不足:富達數字資產研究公司主管Ria Bhutoria針對比特幣的幾種常見批評在一份報告中發表了反駁意見。首先,Bhutoria駁斥了比特幣波動性太大,不適合作為價值儲存手段的說法。他認為比特幣的波動性是由于它的供應確定性和抗干預特性的結果。另一個對比特幣的批評是它不適合作為一種支付手段。Bhutoria指出,BTC的設計初衷并不是為了方便銷售點付款。比特幣具有不變性和透明性,這些獨特的特性最適合用于國際支付,如匯款和企業間的全球結算,彌補了其日常交易能力方面的不足。[2020/11/15 20:52:25]

其他所有的操作碼都只能操作賬戶中的單個值或者存儲樹上的單個key,所以它們能變更多少固定大小的對象是有限制的。但是,SELFDESTRUCT可以刪除整棵存儲樹。

在目前的狀態樹結構中,這是可以容忍的。但是,考慮一種特殊的情況:當調用SELFDESTRUCT刪除許多存儲插槽后,下一個事務又在同一個地址上創建一個合約并訪問同一些存儲槽。為了處理這種情況,需要額外設計復雜的緩存機制。此外,SELFDESTRUCT還阻礙了我們變更狀態存儲格式。

觀點:加密貨幣可能是人類歷史上最偉大的發明之一:今年比特幣經歷了強烈的波動,因為新冠肺炎震撼了市場。雖然這種波動讓許多人對這個領域不感興趣,但一些人表示,當前的宏觀經濟和地緣趨勢使得比特幣比以往任何時候都更加重要。

Uber、推特和Identity等公司的天使投資人、AngelList聯合創始人兼董事長Naval Ravikant最近接受采訪時提到他目前關于比特幣、加密貨幣的想法。“我認為加密貨幣可能是人類歷史上最偉大的發明之一,它們之所以有趣,是因為如果你看看科技行業,科技在不受監管的空間里發揮作用。”

他解釋稱,“從金融角度來看,2020年發生的最可怕的事情可能是共和黨和民主黨都認為,‘哦,實際上我們可以印很多很多的錢。當我們印刷1美元時,70%的通貨膨脹沖擊效應成本由世界其他地方承擔,而不是由我們自己承擔。所以美國政府已經解決了這個問題。’”他還提到,“我不想做價格預測,但我覺得現在的持有者比以往任何時候都要多。”(NewsBTC)[2020/10/17]

以SELFDESTRUCT會阻礙的兩類狀態存儲格式為例:

觀點:USDT仍無真正對手 更強監管下加密抵押穩定幣解決方案或更受歡迎:LongHash發布分析文章表示,目前Tether ( USDT ) 在穩定幣的市場上并沒有遇到真正的競爭對手。數據顯示,當前市場上有近80億美元的USDT ,而市值第二的穩定幣USDC 供應量僅約7.5億美元。Tether一直都處在輿論的中心。一些人質疑Tether背后的公司是否真的有足夠的儲備金支持該穩定幣,一些學者認為它可能被用來操縱整個BTC市場,其他人則對此表示質疑。現實是,當人們嘗試擺脫加密貨幣的波動性時,他們最需要的依舊Tether,其他穩定幣在需求量方面始終難以望其項背。文章指出,一方面網絡效應是Tether成功的一個因素,但另一方面該穩定幣還有另一個關鍵優勢。相較于市場上的其他穩定幣,USDT似乎更不容易被監管機構和立法者接受。實際上,令Tether受益頗多的另一個點是,人們認為如果他們采用USDT ,而不是USDC之類的穩定幣,他們的資金被收繳的概率會更低。一種不太可能被收繳的數字資產會比那些有方便執法的后門的數字資產有用得多。這也是比特幣被創造的初衷。文章最后表示,隨著時間的流逝,所有穩定幣可能都會在更大程度上受到監管,因為在技術層面上,他們實際上并不比傳統、中心化的支付解決方案更去中心化或者更抗監管。到那時,像DAI這樣的加密抵押穩定幣解決方案可能會更受歡迎。[2020/5/7]

任意的“單層”方案

存儲槽可以存儲在一些地址“附近”,而不是存儲在合約里的方案有用,比如在ERC20轉賬或Uniswap交易的場景下)

請注意,這不是在空想,從根本上變更狀態存儲格式的討論已經開始了,如果狀態存儲的數據結構能夠接近單一的的鍵/值存儲結構,并且單個區塊中可以變更的狀態數量有一個較低的上限,那將大大擴展我們的選擇空間。

SELFDESTRUCT?是唯一一個會導致合約代碼變動的操作碼

如果在一個特定的地址上存儲了一段代碼,那么這段代碼就會永遠保留在鏈上。這樣的恒常性質是有用的,因為在構建應用時不需要擔心這些代碼會出現變動。

賬戶抽象化非常依賴該恒常性質用以支持庫調用。因為代碼存在變動的可能,還會導致應用的安全性變得復雜很多:2017年Parity的多簽錢包就曾因為其引用的庫代碼合約被偶然刪除而徹底癱瘓。

而唯一破壞代碼不變性的操作碼就是?SELFDESTRUCT?。

SELFDESTRUCT?是唯一一個可以未經賬戶同意就能修改賬戶余額的操作碼

SELFDESTRUCT?有一個內置的“轉賬”的功能,其并不走正常的轉賬流程,因而可以繞過避免合約地址接收Ether的守護功能,以及對轉賬事件的日志記錄。這為智能合約錢包埋下了隱患,讓一些潛在有用的技巧沒法使用,加重了開發者和審計者的心智負擔。

SELFDESTRUCT?當前的用例

如今?SELFDESTRUCT?有兩類重要的應用:

GasToken:當gas價格低時通過創建合約用掉gas,當gas價格高時通過調用?SELFDESTRUCT?獲得gas退款。

利用SELFDESTRUCT實現代碼的動態變更:這可用于dApp或DAO及其他類似用例的“升級”。

可以被安全地銷毀。GasToken的開發者已經發出了警告“雖然對以太坊網絡的變更會導致GasToken無法使用、不可贖回、不能互換以及/或毫無價值,但是GasToken的開發者極可能會擁護該變更”。移除selfdestruct退款只會導致有些操作的費用變得更貴。

從長遠來看,是沒必要的,還有其他一些被廣泛使用的范式可用于支持動態代碼變更。最容易實現的是?DELEGATECALL?轉發器,合約從一個存儲插槽中獲取一個代碼地址,然后調用對應地址的代碼;修改這個存儲插槽就能更新代碼。不過,從短期來看,有少數應用已經使用了。

提案1:完全移除?SELFDESTRUCT

從某個區塊開始,完全停用?SELFDESTRUCT?。在這個及之后的區塊里,如果EVM在執行時遇到?0xff?操作碼,只要拋出異常直接退出即可,就像EVM執行時遇到不存在的操作碼一樣。

在完全停用前,為了警示用戶避免使用?SELFDESTRUCT?,我們可以漸進式地增加其gas費用:如果?block.number10**6>=FLAG_BLOCK?,則?SELFDESTRUCT?的gas費用增加到?10**10//(FLAG_BLOCK-block.number)?。

提案2:閹割?SELFDESTRUCT

我們也可以保留這個操作碼,但是改變其行為,一方面消除其對狀態樹的破壞,另一方面增加一個新特性,讓合約可以標識為不可自毀,從而確保代碼不可變。

暫時提議新增的行為包括:

當一個合約調用?SELFDESTRUCT?時,并不會刪除合約賬戶,而是清空代碼,并且將nonce值增加?2**40?。沒有退款。

通過調用將合約中的ETH轉移到目標地址。

可以在代碼為空的地址上創建合約。

在合約里調用?SSTORE?和?SLOAD?操作地址?A?時,實際操作的是?A_offset=(AA.nonce//2**40)%2**160?的存儲樹。

注意,從EIP-2929的角度來看,?A_offset?需要“可達”。如果該賬戶不在可達賬戶集合中,則需要額外支付2600gas以加入可達集合。

另一種選擇是調整將storagekey轉換為treekey的哈希函數,用?sha3(storage_keycontract_nonce//2**40)?代替?sha3(storage_key)?。需要注意的是,無論如何都需要做一些類似的調整,以方便合約級別的無狀態key空間擴展。

合約可以在代碼中指定?0xA8?作為第一個字節,EVM會將其識別為無操作,但使用它來開啟一個標志,在執行過程中完全禁用?SELFDESTRUCT?的功能。

這兩種解決方案也可以結合起來:當前立即閹割,將來完全移除。或者,這個操作碼也可以永遠不被完全移除,但是最終只保留一個功能,即向目標地址發送合約當前的全部ETH余額,我們可以將這個操作碼重命名為?CLEAR?。

原文鏈接:

https://hackmd.io/@HWeNw8hNRimMm2m2GH56Cw/selfdestruct

作者:??Vitalik

翻譯&校對:戡亂&?阿劍

Tags:TRUCTRUDESTDESRSK Infrastructure Frameworktrue幣未來價值Destiny AIStay In Destiny World

加密貨幣
比特幣:辰逸解幣:3.20今日比特幣震蕩熬得住初心,才能守得住繁華,_BNB

前言: 在幣圈,無論你做的是什么幣種,還是在做數字貨幣的交易,都躲不過交易大盤起起伏伏的風云變幻,看著那些不斷漲漲停停的曲線,讓人眼花繚亂,甚至一些投資者為了盯盤,累人又累心.

1900/1/1 0:00:00
COI:技術周刊|以太坊客戶端OpenEthereum已開始部署EIP-1559_區塊鏈

本周技術周刊包含以太坊、波卡、Filecoin、COSMOS網絡的技術類新聞。 以太坊網絡 以太坊核心開發者會議召開,包括等“柏林分叉更新”等四項議程以太坊核心開發者會議召開.

1900/1/1 0:00:00
區塊鏈:Pantera 合伙人:區塊鏈會如何改變價值數萬億美元的保險生意?_DEFI

智能合約保險只是區塊鏈保險的第一個「殺手級應用」,新型保險產品會迎來爆炸式增長。撰文:PaulVeradittakit,PanteraCapital合伙人傳統保險業是一門大生意.

1900/1/1 0:00:00
Maker:席幕楓:3.20比特幣6萬關口屢棒喝,空穴來風已成定局_makerdao白皮書

多言不可與謀,多動不可與久處,交易與其沖動,還不如一動不動!大家好,我是席幕楓。心存陽光必有詩與遠方,認識我老席何懼再遇荒涼?席幕楓:3.20比特幣行情分析大餅,昨日全天震蕩上行,凌晨沖擊594.

1900/1/1 0:00:00
GLO:BKEX Global 關于上線JULD(JulSwap)并開放充值功能的公告_FIL

尊敬的用戶:????????BKEXGlobal即將上線JULD,詳情如下:上線交易對:JULD/USDT??幣種類型:BEP20充值功能開放時間:已開放??交易功能開放時間:2021年3月19.

1900/1/1 0:00:00
INFT:UNI官方技術支持的分叉幣UNINFT開啟空投._Influencer Finance

2021年將是幣圈價值投資元年!DCEP的落地將是其標志性事件。最近央視開始頻繁報道虛擬數字貨幣,標志著其已被正名,數字貨幣價值投資即將開始,數字貨幣投資也會逐漸成為新的社會共識和常態.

1900/1/1 0:00:00
ads