來源|?ethresear.ch
作者|?VitalikButerin
譯者按:本文需要讀者對狀態管理和stateexpiry機制作一定了解。
回顧:狀態大小管理技術
為了防止以太坊的狀態容量無止境地膨脹,我們需要用一些方法使舊狀態“失活”,這樣加入網絡的節點就不再需要存儲舊狀態了。即使大多數的客戶端都變成無狀態,似乎也可以合理預見,最終這個系統會擴容到網絡無法一直保證所有狀態都可用的地步。有兩個方法可以使舊狀態失活:
1、直接刪掉,然后可以把它移到另外的默克爾樹,這樣關心該狀態對象的人可以獲取相應的默克爾分支,在未來某個時候用它來激活該狀態。
V神:xDai僅可作為臨時解決方案 長期發展需遷移到rollup:V神晚間發推稱,xDai僅作為臨時解決方案是可接受的。 從長遠來看,它仍然是一個PoA鏈。 它基本上只是一個私有聯盟鏈(而喜歡聯盟的企業應用會希望擁有自己的聯盟),所以它需要遷移到一個rollup。最好的方法當然是xDai本身遷移到rollup!注:xDai?Chain是一個由MakerDAO基金會與POA Network聯合推出的美元穩定幣區塊鏈,也是一個與以太坊兼容的側鏈,其使用穩定幣xDai作為基礎代幣用于交易和支付gas費用,并通過STAKE代幣,借助獨特的POSDAO權益證明算法來進行記賬和治理。[2020/9/25]
2、不把對象移出樹結構;相反,只在樹的該位置標記“失活”,這樣節點就不會存儲它(且協議也不會要求它們這樣做)。通過發送一個提供默克爾證明(即見證數據)的事務來訪問該狀態,失活的對象就可以重新被訪問了。
V神:以太坊尊重自由,人們有時候會在上面做一些愚蠢的事情:以太坊聯合創始人Vitalik Buterin在一場名為“Bitcoin VS Ethereum”的播客活動中表示,以太坊尊重自由,有時候人們會在上面做愚蠢的事情,所以你能看到一些智能合約,代碼低于標準質量,你能看到一些瘋狂的應用,以太坊無法阻止它們,如果你不是那些瘋狂應用的用戶,那么你可以不用擔心目前的狀況。以太坊的用戶是那些持幣人,比如穩定幣DAI的持幣人,但是他們不會影響DAI的發展,DAI就是DAI。(嗶嗶News)[2020/8/17]
方法(1)對應于“經典的存儲租金方案”,方法(2)對應于傳統“無狀態客戶端”的最簡單延伸——舊狀態可以被遺忘的模型。這兩種方法都允許關心特定狀態對象的個人追蹤默克爾分支,這樣隨后如果那些狀態對象失活了它們可以用來激活這些對象。然而,這兩種方法都是有明顯問題的。
聲音 | V神:加密經濟學只是完善及圍繞中本聰共識建立附屬體系的觀點非常保守:V神在推特表示,加密經濟學“只是”完善中本聰共識以及圍繞其建立附屬體系的觀點,是對加密經濟學可以完成的事情的一種非常保守的看法。[2019/11/26]
當要在某個已失效合約的同一個地址上再創建合約時,方法(1)會出現一些極端情況。那就是,如果一個合約在地址A上創建了,然后已經失效了,那么在地址A上創建這個合約的事務會被重新執行,這樣會在地址A上創建一個新對象,這會影響原始對象的激活。另一種情況是當在地址A上創建了一個對象,然后經歷失活、被激活、被修改(例如,發送合約上的資金到另一個賬戶)、再失活、再用第一次失活所在的默克爾分支激活。這違背了保留規則,且可能被用于鑄幣;需要增加額外的默克爾證明來證明一個合約還沒有被另一個特定狀態激活,而該狀態也嘗試被激活。
聲音 | V神:過去三周Zk-SNARKs確實取得了巨大進步:在以色列特拉維夫舉行的以太坊會議上,當被問及關于隱私技術的最新發展(特別是隱私幣 Zcash 等使用的零知識證明)時,V神表示:“過去三周里,Zk-SNARKs確實取得了巨大的進步,但很多人還沒有意識到這一點。”V神還提到了Plonk,一種將由Aztec Protocol推出的、創建零知識證明的新方法,這是ConsenSys支持的一個項目,項目重點是在10月份將隱私技術引入以太坊。這一技術將降低創建零知識證明的復雜性,使更多人能夠更容易使用它。V神說,“這意味著成千上萬的人將很容易參與進來”。此外,在DeFi方面,V神肯定DeFi潛在價值,但指出其存在明確的中心化后門和預言機問題。(Decrypt)[2019/9/16]
方法(2)遇到的是不同的問題。假設兩個相鄰的地址(也就是兩者間沒有對象)A1和A2都已失活。這樣,不僅A1和A2都不再可以訪問(除非有人存儲了默克爾分支),而且A1和A2之間的所有地址都不可以訪問了。也就是說,如果總共有N個地址,那么大約1/N的可用地址空間都不再可訪問了。當一半的地址都失活了,大約1/4的地址空間不再可訪問。隨著時間推移,會越來越難找到空間生成新的地址。而且由于新地址越來越集中在剩下的“可訪問”空間上,每N年可訪問空間減半的這種影響會呈指數增長。
提議
我提議對方法(2)進行修改,可以解決以上的問題。正如很多方法(2)的提議實現方案所呈現的,賬戶有“活躍”與“失活”兩種狀態,失活賬戶是那些超過一年未被訪問過的賬戶。要訪問失活賬戶,你需要提供見證數據;當失活賬戶被訪問了,該賬戶會自動解除失活狀態(觸及任何賬戶都會重置它的一年失活期計算)。修改內容如下:
我們給每個地址添加一個32個字節的"epoch前綴"。例如,epoch前綴是9的地址是這樣:0x00000009de0b295669a9fd93d5f28d9ec85e40f4cb697bae,以00000009作為前綴。
默克爾路徑會直接依賴epoch的前綴而不是它的哈希值(因此merkle_path_key=address+hash(address)而不是現在在用的merkle_path_key=hash(address)。這確保了“沒用過的”地址空間是連續的。
除非地址的epoch前綴是小于或等于區塊鏈已運行的年數,否則地址不能被使用
會增加一個CREATE3操作碼,它會把epoch前綴作為一個參數,并在具有該epoch前綴的一個地址上創建一個合約。
推薦用戶和合約總是使用具有盡可能新的epoch前綴來創建賬戶,甚至設為默認設置,因為肯定會有具有最新epoch前綴的全狀態仍然是可以訪問的。為了還能保有“反事實地址(counterfactualaddresses)”,用舊epoch前綴來創建合約還是可能的。但是,對于想要創建反事實地址的用戶,如果長期不創建,他們就要負責為該賬戶存儲舊狀態的分支。
經過多年的運行,預計活躍狀態會由兩部分構成:(i)有最新epoch前綴的全部地址空間,(ii)與最近被活躍使用過的賬戶相對應的特定舊狀態
請注意,這個方案正常情況下擴展到合約上;事實上,主動遵循這個方案是符合合約自身運作的。因為在這個方案里,地址中代表存儲的部分以幾個字節為前綴,它們所代表的數字N指的是這些數據是在N年與這些地址產生關聯。這很適合用于存儲像代幣余額這樣的數據。
為什么做市商很重要? 金融中的做市不僅僅是指x*y=k這一等式。在傳統的中央限價訂單簿市場中,做市商專門提交買方和賣方訂單.
1900/1/1 0:00:00作為美國最受歡迎的交易所,Coinbase充當了數百萬美國人和他們數十億美元的法幣轉換到加密貨幣的橋梁。鑒于其巨大的影響力,當代幣在該平臺上上市時,該代幣的價格就會出現大幅飆升.
1900/1/1 0:00:00什么是EthSign? EthSign是一個去中心化的電子協議簽署平臺,希望通過區塊鏈技術解決傳統電子簽名的痛點。用戶在使用傳統電子簽名時,必須獲得服務商的允許才能驗證簽名和檢索已經簽過的協議.
1900/1/1 0:00:00什么是日食攻擊? 日食攻擊是一種攻擊去中心化網絡的方法,攻擊者通過這種方法試圖隔離和攻擊一個或多個特定用戶,而不是攻擊整個網絡.
1900/1/1 0:00:00固定利率貸款是傳統金融中最常見的貸款類型,固定利率允許參與者鎖定一個預先確定的利率,而不必承受利率波動的風險.
1900/1/1 0:00:00加拿大是北美大陸人口第三多的國家,目前正在逐漸成為最大的加密貨幣公司的所在地。加拿大對于加密貨幣的監管環境的有利程度超過了美國。加拿大最近批準了第一個加密貨幣ETF.
1900/1/1 0:00:00