在我之前的新型交易gossip廣播網絡設計中其實可以看到我最初在為狀態網絡設計gossip廣播方面的嘗試。在之前的文章中,我介紹了一種設計,可以讓節點在無需處理完整交易池的情況下參與gossip廣播。
從較高層面上來說,我們關于交易gossip廣播的問題陳述如下:
交易來自整個網絡。
一些網絡參與者本身就需要維護完整的交易池。
一些網絡參與者缺少足夠的資源來處理完整的交易池。
我提議的交易gossip廣播方案采用了距離指標,讓節點可以自行調整它們必須處理的交易池規模。節點采用一組簡單的規則來管理與之連接的對等節點集合,從而形成網絡拓撲結構。半徑最大的節點被視為網絡的“中心”,半徑最小的節點被視為網絡的“邊緣”。
該方案之所以有效,主要的兩點原因如下:
以太坊DeFi協議Cream Finance遭受攻擊,損失1.15億美元:金色財經報道,DeFi借貸協議CreamFinance再次遭受攻擊,損失達1.15億美元。被盜的資金主要是CreamLP代幣和其他ERC-20代幣。PeckShield發現了一筆用于實施這一攻擊行為的大額閃電貸。根據區塊鏈記錄,9200萬美元被盜到一個地址,2300萬美元被盜到另一個地址,盡管這些資金現在被轉移到不同的錢包中。根據Rekt的排行榜,這是有史以來第三大DeFi黑客攻擊(盡管兩個更大的黑客攻擊事件都有資金返還)。(TheBlock)[2021/10/28 6:16:25]
第一,我們預期,節點的半徑值會有很大差別,但?同時?都會相對較大。這種差異源自那些有動力維護“完整”半徑以及“較大”半徑的參與者。正是這些節點將位于網絡邊緣的節點連接到了一起。
EthHub創始人Sassano:以太坊一旦實施EIP-1559,每一筆交易都將燒毀ETH:4月22日消息,EthHub聯合創始人Anthony Sassano今日發推稱:“一旦實施EIP-1559,以太坊上的每一筆交易都將燒毀ETH。每一次清算,每一次ETH轉移,每一次第二層證明,每一次DEX交易,甚至每一次rug pull。不管交易是什么,ETH都將繼續被燒毀。”[2021/4/22 20:46:43]
第二,我們關于半徑值較大的預期是根據鍵空間推測出的。根據Peter最近關于交易池的文章,geth節點默認最多可維護4000筆交易。在任意時刻,整個網絡中的待處理交易高達4萬至40萬筆。輕節點無法處理4000筆交易,但是處理其中5%不成問題。因此,我們預期半徑值通常在整個鍵空間的1%至100%之間。
將同樣的設計應用到狀態gossip廣播上
以太坊微信指數日環比上升2.44%:金色財經報道,微信指數顯示,9月20日,區塊鏈微信指數為1325508,日環比下降16.58%;比特幣微信指數為451284,日環比下降12.67%;以太坊微信指數為140083,日環比上升2.44%;IPFS微信指數為221607,日環比下降11.25%。[2020/9/21]
我最初嘗試將這種設計應用到針對狀態網絡的gossip廣播上,但是沒有成功。主要原因如下:
第一,狀態網絡中各節點在半徑值上的差異會小得多。我們預期不太可能會有網絡參與者維護“完整”半徑。這會導致網絡中缺少一個起到連接邊緣作用的“中心”。
第二,半徑值會很小。假設有200GB的狀態,平均每個節點提供100MB的存儲空間,且復制因子為10,那么計算下來我們需要一個由2萬個節點組成的網絡。平均每個節點需要存儲0.002%的數據。
動態 | 以太坊未確認交易36967筆:據Etherscan.io數據顯示,當前以太坊未確認交易為36967筆,近期未確認筆數相對穩定,網絡擁堵情況沒有得到進一步改善。[2019/1/22]
正是上述兩個不同之處從根本上改變了網絡拓撲結構,導致原來的交易gossip廣播網絡設計失靈。
與交易gossip廣播不同的目標
別忘了,交易gossip廣播的目標之一是,讓交易進入礦工所在的網絡“中心”。位于網絡邊緣的節點其實不是很在乎是否能看到所有待處理交易,即使一個都看不到也沒關系。它們主要關心的是能否廣播自己的交易,并讓這些交易可靠地打包進區塊內。
狀態網絡不僅缺少中心,而且數據流向與交易gossip廣播相反。狀態gossip廣播的目標是將數據發送到網絡邊緣進行存儲。
動態 | 以太坊君士坦丁堡硬分叉倒計時:已有1138個全節點支持:1月9日晚,據ethernodes網站提供的數據顯示,當前以太坊全網7863個全節點當中,已有1138個節點已更新支持以太坊君士坦丁堡(Constantinople)硬分叉,占比為14.47%。根據計劃,以太坊區塊鏈將在第7,080,000個區塊激活這次升級,預計將于1月16日附近發生,屆時,礦工獎勵將從3 ETH 降低至 2 ETH 。[2019/1/9]
另外,在交易gossip廣播中,消息來自整個網絡;在狀態網絡中,我們預期新數據只會來自一小部分友善的橋節點。這些橋節點負責生成證明,并將這些證明發送到狀態網絡。
中繼機制會導致DOS攻擊和不可歸因的錯誤
我想到的一個改進方向是引入中繼節點。
我們預期每個節點會對網絡中0.002%的數據感興趣。我認為,根據我的結論可以構建出多個不同的網絡模型,但是一種簡單的做法是,根據DHT網絡中每個節點的路由表為gossip節點之間的連接構建模型。在這樣一個網絡中,數據需要經過log(n)跳才能到達需要它的節點那里。
這里的問題在于,如果一個節點轉發了其它節點都不感興趣的數據,但是這個數據需要經歷一次以上的跳躍,就會變成一個放大向量。惡意節點可以通過在gossip網絡中廣播無用數據來放大DOS攻擊。
一個笨辦法
目前,我比較偏向于一個“笨”辦法,旨在從非網絡層面解決上述問題。
有“一小批”狀態提供商節點為每個區塊內新的狀態數據生成證明。
每個證明預期有大約2000個trie節點。其中一部分節點是新數據或更新后的數據。只有這個子集需要發送到網絡中。
已知每個節點只關心每個區塊中0.002%的數據,也就是說不同節點感興趣的數據之間很少有重疊。如果一個區塊內包含2000條新數據,我們可以預見每條數據要發送給完全不同的節點。這就意味著,為了在區塊時間內廣播新區塊的證明數據,一個狀態提供商每15秒要將2000個不同的證明發送給2000個不同的節點。要做到這點不是不可能,但是會很難。一旦證明大小增加或網絡延遲稍微高一點,狀態提供商就無法在區塊時間內發送完整的證明數據。
幸好我們可以有不止一個數據提供商。我們可以合理預期將會出現數量不多的狀態提供商發送證明數據。在這個模型下,我們可以設計一個能夠在不同狀態提供商之間平均分配負載的系統。
每個狀態提供商都會為每一個新區塊生成證明。狀態提供商會按照距離其節點ID的遠近對該證明包含的每項數據進行排序,先從那些距離最近的數據開始,查詢對這些數據感興趣的節點,并將它們廣播出去。在這個模型中,負載會在不同狀態提供商之間平均分配。等輪到那些距離其節點ID較遠的數據時,狀態提供商會發現節點對這些數據的興趣減弱,因為其節點ID距離這些數據較近的提供商已經廣播了這些數據。
可以改進/擴展/優化之處
或許,我們可以稍微優化一下這個方案。
我們的網絡結構需要存儲的不僅是葉節點,還有中間節點。也就是說,如果按葉子節點和對等節點的需要來分割區塊證明,這些碎片證明之間會出現大量重疊。例如,當要你要證明一個葉節點的時候,其證明中也會包含對其默克爾路徑上所有中間節點的數據的證明。
如果網絡中的某個節點想存儲某個葉子,TA當然希望獲得該葉子節點的中間節點也可以在網絡中找到。如果這些中間節點不可得,甚至都沒有人會請求葉子節點數據,因為本地還沒有中間節點的數據,還沒法順著這些中間節點發現對葉子節點的需要。我們或許可以利用這一點在整個網絡中分散廣播數據的責任。
狀態提供商只通過gossip方式廣播葉節點數據的證明。
節點一收到自己想要存儲的內容的證明,就會找出“父證明”——對上一級中間節點數據的證明——并發送出去。
這一“遞歸”過程可以讓狀態提供商只需將葉節點數據發送至網絡,并將廣播中間節點數據的責任分配給那些對葉節點數據感興趣的節點。這些節點會一級一級地把上一層級的中間節點的數據的證明推送到網絡中,直到所有節點都把最終的狀態根推送到網絡中。
原文鏈接:
https://ethresear.ch/t/scalable-gossip-for-state-network/8958
作者:??PiperMerriam
翻譯&校對:?閔敏&?阿劍
Tags:OSSGOSSIPETHPOSS幣lingose幣有投資價值嗎Space SIPusepeerethereum
我很高興地宣布,imToken近期完成了3000萬美元的B輪融資。感謝我們的新伙伴:啟明創投、HashKey、BreyerCapital、SignumCapital、LonglingCapita.
1900/1/1 0:00:00加入PolkaWorld社區,共建Web3.0!Substrate創業營第一批入選名單出爐了!6?個項目從139個申請者中脫穎而出,入選了Substrate創業營.
1900/1/1 0:00:00尊敬的LBank藍貝殼用戶:LBank藍貝殼“NFT交易區”將于2021年3月30日16:00(UTC8)上線K21、BLES(BlindBoxes),具體如下:開啟交易對:K21/USDT.
1900/1/1 0:00:001.關注公眾號:道說區塊鏈2.后臺回復:電子書3.獲取《DeFi實戰投資方法論》電子書在前陣子的文章中,我寫過華爾街重量級投資家霍華德·馬克思近來改變了對比特幣的負面看法.
1900/1/1 0:00:00親愛的用戶: 為了給用戶帶來較好的交易深度與使用體驗,幣安將于2021年04月02日18:00移除以下交易對:USDT/ZAR、BTC/ZAR、ETH/ZAR、BUSD/ZAR、BNB/ZAR比.
1900/1/1 0:00:00行情觀點:上午給出的行情分析,建議反彈空單先看一波回調,建議57500-58000附近分批空,目標56500-56000,止損58500,小時級別來看,大餅回踩57077.41一線反彈.
1900/1/1 0:00:00