來源 | ethresear.ch
作者 | Vitalik Buterin
譯者按:本文需要讀者對狀態管理和 state expiry 機制作一定了解。
為了防止以太坊的狀態容量無止境地膨脹,我們需要用一些方法使舊狀態“失活”,這樣加入網絡的節點就不再需要存儲舊狀態了。即使大多數的客戶端都變成無狀態,似乎也可以合理預見,最終這個系統會擴容到網絡無法一直保證所有狀態都可用的地步。有兩個方法可以使舊狀態失活:
1、直接刪掉,然后可以把它移到另外的默克爾樹,這樣關心該狀態對象的人可以獲取相應的默克爾分支,在未來某個時候用它來激活該狀態。
2、不把對象移出樹結構;相反,只在樹的該位置標記“失活”,這樣節點就不會存儲它 (且協議也不會要求它們這樣做)。通過發送一個提供默克爾證明 (即見證數據) 的事務來訪問該狀態,失活的對象就可以重新被訪問了。
V神:使用L2解決方案并不困難:推特網友Fabrice Darice今日稱,大多數人不知道如何使用那些L2解決方案。對此V神回復稱,是的,但在我看來他們并不困難。它們在網站上都有用戶界面,你可以直接使用,不需要親自去安裝新的錢包,或理解命令行和ZK rollup上面密碼學之類的東西。[2020/9/1]
方法 (1) 對應于“經典的存儲租金方案”,方法 (2) 對應于傳統“無狀態客戶端”的最簡單延伸——舊狀態可以被遺忘的模型。這兩種方法都允許關心特定狀態對象的個人追蹤默克爾分支,這樣隨后如果那些狀態對象失活了它們可以用來激活這些對象。然而,這兩種方法都是有明顯問題的。
當要在某個已失效合約的同一個地址上再創建合約時,方法 (1) 會出現一些極端情況。那就是,如果一個合約在地址 A 上創建了,然后已經失效了,那么在地址 A 上創建這個合約的事務會被重新執行,這樣會在地址 A 上創建一個新對象,這會影響原始對象的激活。另一種情況是當在地址 A 上創建了一個對象,然后經歷失活、被激活、被修改 (例如,發送合約上的資金到另一個賬戶)、再失活、再用第一次失活所在的默克爾分支激活。這違背了保留規則,且可能被用于鑄幣;需要增加額外的默克爾證明來證明一個合約還沒有被另一個特定狀態激活,而該狀態也嘗試被激活。
V神:以太坊供應量比原先預期少4000萬:金色財經報道,V神(Vitalik Buterin)今天在推特上表示,以太坊供應量比原始白皮書中估計的要少4000萬。他認為,這駁斥了以太坊是由通貨膨脹主義技術官僚統治的理論。[2020/6/18]
方法 (2) 遇到的是不同的問題。假設兩個相鄰的地址 (也就是兩者間沒有對象) A1 和 A2 都已失活。這樣,不僅 A1 和 A2 都不再可以訪問 (除非有人存儲了默克爾分支),而且 A1 和 A2 之間的所有地址都不可以訪問了。也就是說,如果總共有 N 個地址,那么大約 1/N 的可用地址空間都不再可訪問了。當一半的地址都失活了,大約 1/4 的地址空間不再可訪問。隨著時間推移,會越來越難找到空間生成新的地址。而且由于新地址越來越集中在剩下的“可訪問”空間上,每 N 年可訪問空間減半的這種影響會呈指數增長。
現場丨V神:對以太坊可以有的多個期待:金色財經現場報道,在9月18日的2019第五屆區塊鏈全球峰會上,以太坊創始人Vitalik Buterin介紹了未來對以太坊可以有的期待:更好、更可信的數據來源,讓應用更好更便捷地與真實世界連接;以太坊上的PoS和分片擴容技術;更多智能錢包、智能融資合約等等;現有的交易所可用零知識證明提高自身的安全性;去中心化應用會比中心化的應用更友好。[2019/9/18]
提議
我提議對方法 (2) 進行修改,可以解決以上的問題。正如很多方法 (2) 的提議實現方案所呈現的,賬戶有“活躍”與“失活”兩種狀態,失活賬戶是那些超過一年未被訪問過的賬戶。要訪問失活賬戶,你需要提供見證數據;當失活賬戶被訪問了,該賬戶會自動解除失活狀態 (觸及任何賬戶都會重置它的一年失活期計算)。修改內容如下:
聲音 | V神:對股東治理更加悲觀 在想給創始人股份10倍投票權的規則:V神Vitalik Buterin在推特回復網友表示,我對股東治理更加悲觀!似乎它需要大量的法規來保護小股東免受51%的攻擊等等。此外,許多SV科技公司選擇退出股東治理,轉而支持創始人獨裁。我不是說他們不是IPO,我想的是給創始人的股份10倍投票權的規則,也就是說事實上51%以上的控制權。[2019/7/21]
我們給每個地址添加一個 32 個字節的 "epoch 前綴" (會被解譯為一個整數)。例如,epoch 前綴是 9 的地址是這樣:0x00000009de0b295669a9fd93d5f28d9ec85e40f4cb697bae,以 00000009 作為前綴。
默克爾路徑會直接依賴 epoch 的前綴而不是它的哈希值 (因此 merkle_path_key = address[:4] + hash(address[4:]) 而不是現在在用的 merkle_path_key = hash(address) 。這確保了“沒用過的”地址空間是連續的。
除非地址的 epoch 前綴是小于或等于區塊鏈已運行的年數,否則地址不能被使用
會增加一個 CREATE3 操作碼,它會把 epoch 前綴作為一個參數,并在具有該 epoch 前綴的一個地址上創建一個合約。
推薦用戶和合約總是使用具有盡可能新的 epoch 前綴來創建賬戶,甚至設為默認設置,因為肯定會有具有最新 epoch 前綴的全狀態仍然是可以訪問的。為了還能保有“反事實地址 (counterfactual addresses)”(即在合約代碼被發布前,用戶在鏈上 [例如通過發送 ETH 或 ERC20 代幣]或鏈下[通過在一個通道里互動]交互的地址),用舊 epoch 前綴來創建合約還是可能的。但是,對于想要創建反事實地址的用戶,如果長期不創建,他們就要負責為該賬戶存儲舊狀態的分支。
經過多年的運行,預計活躍狀態會由兩部分構成:(i) 有最新 epoch 前綴的全部地址空間,(ii) 與最近被活躍使用過的賬戶相對應的特定舊狀態
請注意,這個方案正常情況下擴展到合約上;事實上,主動遵循這個方案是符合合約自身運作的。因為在這個方案里,地址中代表存儲的部分以幾個字節為前綴,它們所代表的數字 N 指的是這些數據是在 N 年與這些地址產生關聯。這很適合用于存儲像代幣余額這樣的數據。
財經法學
金色早8點
鏈捕手
PANews
Bress
區塊律動BlockBeats
成都鏈安
Odaily星球日報
自 8 月 9 日來,Web3 學習型社區 Biteye 開啟了為期五周的「周年慶 & 品牌升級」主題活動,圍繞 DeFi、公鏈、Web3、NFT 和 DAO 五個領域.
1900/1/1 0:00:00原文來源:阿法兔研究筆記本文是筆者最近關于基礎安全領域的人、趨勢、現象的觀察,把系列思考總結成為了文章,試圖從幾個角度,探討一個國內相對較少有人探討的賽道——固件安全市場和需求變化的方向.
1900/1/1 0:00:00Aptos Labs 于 10 月 14 日公布了 Aptos 的 GAS 計劃,因為 MOVE 語言的上一個版本其實是打算在沒有 GAS 的前提下運行的,所以并沒有為 GAS 計劃做好準備.
1900/1/1 0:00:00文/Donovan Choy,譯/金色財經xiaozou2022年,我們見證了新的Mt. Gox事件。FTX這個世界上第二大加密貨幣交易所,僅在48小時內,就陡然從頂峰跌落谷底.
1900/1/1 0:00:00隨著試點不斷深入,數字人民幣逐漸走進市民生活的方方面面。7月14日,北京商報記者走訪了石景山區數字人民幣試點商戶,在壹公里果蔬店,記者發現,已有不少市民熟絡數字人民幣支付,甚至有不少老年人也開始.
1900/1/1 0:00:00昨天,“帶你走進NFT的奇幻世界”主題活動在上海世博文化公園原意大利館舉行,來自樹圖區塊鏈研究院、淘派科技的區塊鏈專家與“窗——杜海軍藝術展”策展人、藝術家共聚一堂.
1900/1/1 0:00:00