昨晚,波卡生態鏈項目Moonbeam和Ownbit進行了技術交流,期望未來Ownbit對波卡生態鏈進行更好地支持。Moonbeam也將競爭成為第一批波卡平行鏈。借著交流的機會,我對波卡平行鏈也有了更深的理解,遂成此文。
ETH2.0和波卡平行鏈是未來的兩個重要技術,他們雖分屬于兩個不同的重量級項目,但在設計上卻有驚人的相似。
波卡平行鏈
在波卡的設計里,有兩個重要的概念,一個是波卡平行鏈,另一個是波卡平行線程。理解這兩個概念是理解整個波卡生態的重要環節。
波卡平行鏈,故名思議,是與波卡主鏈平行的其他鏈。要成為平行鏈,需要占用波卡系統的一個插槽。波卡系統的插槽數量是有限的。波卡設計出了一套插槽拍賣的系統,通過出價拍賣獲得一個插槽有限的使用權。
因此每次插槽的占有都是有限時間內,到期后要重新進行插槽競拍。用于競拍的DOT將在插槽使用到期后歸還,因此使用插槽,只是占用金額,而不花費資金。
LendHub被黑簡析:系LendHub中存在新舊兩市場:金色財經報道,據慢霧安全區情報,2023 年 1 月 13 日,HECO 生態跨鏈借貸平臺 LendHub 被攻擊損失近 600 萬美金。慢霧安全團隊以簡訊的形式分享如下:
此次攻擊原因系 LendHub 中存在兩個 lBSV cToken,其一已在 2021 年 4 月被廢棄但并未從市場中移除,這導致了新舊兩個 lBSV 都存在市場中。且新舊兩個 lBSV 所對應的 Comptroller 并不相同但卻都在市場中有價格,這造成新舊市場負債計算割裂。攻擊者利用此問題在舊的市場進行抵押贖回,在新的市場進行借貸操作,惡意套取了新市場中的協議資金。
目前主要黑客獲利地址為 0x9d01..ab03,黑客攻擊手續費來源為 1 月 12 日從 Tornado.Cash 接收的 100 ETH。截至此時,黑客已分 11 筆共轉 1,100 ETH 到 Tornado.Cash。通過威脅情報網絡,已經得到黑客的部分痕跡,慢霧安全團隊將持續跟進分析。[2023/1/13 11:11:00]
為什么要成為波卡平行鏈?
安全團隊:Rubic被攻擊事件簡析:金色財經報道,據區塊鏈安全審計公司Beosin旗下Beosin EagleEye安全風險監控、預警與阻斷平臺監測顯示,Rubic項目被攻擊,Beosin安全團隊分析發現RubicProxy合約的routerCallNative函數由于缺乏參數校驗,_params可以指定任意的參數,攻擊者可以使用特定的integrator來讓RubicProxy合約可以幾乎零成本的調用自己傳入的函數data。攻擊者通過調用routerCallNative函數,把所有授權給RubicProxy合約的USDC全部通過transferFrom轉入了0x001B地址,被盜資金近1100個以太坊,通過Beosin Trace追蹤發現被盜資金已經全部轉入了Tornado cash。[2022/12/25 22:06:32]
成為波卡平行鏈主要獲得兩個好處:鏈本身更加安全,以及擁有和其他平行鏈的互操作性。
慢霧:跨鏈互操作協議Nomad橋攻擊事件簡析:金色財經消息,據慢霧區消息,跨鏈互操作協議Nomad橋遭受黑客攻擊,導致資金被非預期的取出。慢霧安全團隊分析如下:
1. 在Nomad的Replica合約中,用戶可以通過send函數發起跨鏈交易,并在目標鏈上通過process函數進行執行。在進行process操作時會通過acceptableRoot檢查用戶提交的消息必須屬于是可接受的根,其會在prove中被設置。因此用戶必須提交有效的消息才可進行操作。
2. 項目方在進行Replica合約部署初始化時,先將可信根設置為0,隨后又通過update函數對可信根設置為正常非0數據。Replica合約中會通過confirmAt映射保存可信根開始生效的時間以便在acceptableRoot中檢查消息根是否有效。但在update新根時卻并未將舊的根的confirmAt設置為0,這將導致雖然合約中可信根改變了但舊的根仍然在生效狀態。
3. 因此攻擊者可以直接構造任意消息,由于未經過prove因此此消息映射返回的根是0,而項目方由于在初始化時將0設置為可信根且其并未隨著可信根的修改而失效,導致了攻擊者任意構造的消息可以正常執行,從而竊取Nomad橋的資產。
綜上,本次攻擊是由于Nomad橋Replica合約在初始化時可信根被設置為0x0,且在進行可信根修改時并未將舊根失效,導致了攻擊可以構造任意消息對橋進行資金竊取。[2022/8/2 2:52:59]
為了更好理解鏈更加安全這個概念,我們可以把波卡系統想象成可以容納多條平行鏈的容器。每個平行鏈會有自己的共識機制,以及產生區塊的方式。容器定時將所有平行鏈產生的區塊收集起來,形成容器層面的區塊。該容器在波卡中被稱為:中繼鏈。被中繼鏈打包對于平行鏈而言,稱為區塊的finalize。
Grim Finance 被黑簡析:攻擊者通過閃電貸借出 WFTM 與 BTC 代幣:據慢霧區情報,2021 年 12 月 19 日,Fantom 鏈上 Grim Finance 項目遭受攻擊。慢霧安全團隊進行分析后以簡訊的形式分享給大家。
1. 攻擊者通過閃電貸借出 WFTM 與 BTC 代幣,并在 SpiritSwap 中添加流動性獲得 SPIRIT-LP 流動性憑證。
2. 隨后攻擊者通過 Grim Finance 的 GrimBoostVault 合約中的 depositFor 函數進行流動性抵押操作,而 depositFor 允許用戶指定轉入的 token 并通過 safeTransferFrom 將用戶指定的代幣轉入 GrimBoostVault 中,depositFor 會根據用戶轉賬前后本合約與策略池預期接收代幣(預期接收 want 代幣,本次攻擊中應為 SPIRIT-LP)的差值為用戶鑄造抵押憑證。
3. 但由于 depositFor 函數并未檢查用戶指定轉入的 token 的合法性,攻擊者在調用 depositFor 函數時傳入了由攻擊者惡意創建的代幣合約地址。當 GrimBoostVault 通過 safeTransferFrom 函數調用惡意合約的 transferFrom 函數時,惡意合約再次重入調用了 depositFor 函數。攻擊者進行了多次重入并在最后一次轉入真正的 SPIRIT-LP 流動性憑證進行抵押,此操作確保了在重入前后 GrimBoostVault 預期接收代幣的差值存在。隨后 depositFor 函數根據此差值計算并為攻擊者鑄造對應的抵押憑證。
4. 由于攻擊者對 GrimBoostVault 合約重入了多次,因此 GrimBoostVault 合約為攻擊者鑄造了遠多于預期的抵押憑證。攻擊者使用此憑證在 GrimBoostVault 合約中取出了遠多于之前抵押的 SPIRIT-LP 流動性憑證。隨后攻擊者使用此 SPIRIT-LP 流動性憑證移除流動性獲得 WFTM 與 BTC 代幣并歸還閃電貸完成獲利。
此次攻擊是由于 GrimBoostVault 合約的 depositFor 函數未對用戶傳入的 token 的合法性進行檢查且無防重入鎖,導致惡意用戶可以傳入惡意代幣地址對 depositFor 進行重入獲得遠多于預期的抵押憑證。慢霧安全團隊建議:對于用戶傳入的參數應檢查其是否符合預期,對于函數中的外部調用應控制好外部調用帶來的重入攻擊等風險。[2021/12/19 7:49:04]
波卡中繼鏈對平行連區塊的最終確認讓平行鏈更加安全。這樣每個平行鏈可以得益于波卡系統的強大共識,而不用擔心本鏈可能存在各種共識層面的攻擊或問題。
波卡平行鏈和其他平行鏈的互操作性是另一個優點。波卡在系統層面設計了一套消息傳遞系統,可以讓各平行鏈之間相互傳遞消息、執行指令、轉移token等等。各平行鏈根據XCMP定義自己可以接收處理的消息類型,便可以讓自己擁有和其他平行鏈的互操作性。
如果把平行鏈比喻成操作系統里的進程,那么XCMP可以理解為進程間通信機制IPC(InterProcessCommunication)。
平行鏈資源是有限的
因為平行鏈資源有限,大部分鏈可能無法競拍到平行鏈插槽。這時,波卡官方給出的方案是,使用測試網絡KUSAMA,或者平行線程。
平行線程和平行鏈之間的區別僅在于一點:平行鏈永久占用中繼鏈資源,而平行線程只在需要時占用。平行線程需要中繼鏈對其區塊進行確認時,便提出請求,并給予一定的費用。因為同時會有多個平行線程提出確認需求,中繼鏈會按照給予的費用高低進行優先選擇。如下圖所示:
比起平行鏈而言,使用平行線程,無需參與插槽競拍,因此無需大額的啟動資金。對于一些不需要頻繁確認的應用,使用平行線程更加適合。
ETH2.0
ETH2.0的線路圖按照分片技術在前進。分片技術最早出現在數據庫技術中。為了讓數據庫擁有更大的執行查詢或插入的能力,將一個數據庫拆分成多個數據庫,并且部署到多個機器上,讓執行能力成倍地提升。
ETH2.0將以太坊網絡拆分成多片,將以太坊的執行能力提升相應的倍數。每個分片就是一個子網絡。處理ETH2.0共識,以及系統各個子分片之間通信的模塊被成為:BeaconChain,這相當于波卡網絡里的中繼鏈。ETH2.0分片示意圖如下:
可以看出,在大的架構方面,ETH2.0和波卡有著驚人的相似。但在細節和理念層面又有很多的不同。
波卡平行鏈VSETH2.0
從設計目的而言,波卡平行鏈主要是為了跨鏈目的,通過平行鏈水平擴張,進而解決性能吞吐問題。而ETH2.0的設計完全是為了解決性能吞吐問題。
波卡和ETH2.0都有狀態確認的功能。ETH2.0每一個時代finalize一次,一個時代定義為64個區塊,所以6-12分鐘finalize一次。而波卡網絡的finalize時間則更短,一般1分鐘以內。
從共識機制而言,ETH2.0和波卡也有明顯的區別。ETH2.0采用PoS機制。質押32ETH可以成為驗證者。每個分片至少需要256個驗證者才能進行finalize操作。以64個分片計算,ETH2.0需驗證者16,384名。而波卡采用提名者PoS機制,所需驗證者數量遠小于ETH2.0,大約每個平行鏈需10個驗證者,以整個系統100個平行鏈計算,共需1000個驗證者。
另外一個不同點在于,波卡是不同系統間互聯的框架。而ETH2.0是同一套系統間互聯的框架。
波卡更關注其他鏈,而ETH2.0只是更關注本身,這也反應出它們對未來不同的展望。波卡打造的是多鏈并存、互聯互通的場景。而ETH2.0則打造的強大統一的底層區塊鏈系統,上層繁榮的DApp則通過應用接口彼此互通的場景。
跨鏈
波卡對于平行鏈之間,天然具有跨鏈優勢。而ETH2.0不具有跨鏈能力。但這并不意味這波卡比在跨鏈方面ETH2.0強大很多。
例如對于跨鏈比特幣網絡而言,波卡需要使用比特幣橋才能完成跨鏈。而這點,跟以太坊跨鏈比特幣方案是一致的。因此,對于跨鏈而言,波卡只是對于未來部署在波卡網絡上的平行鏈之間才具有優勢。
結語
目前波卡生態的平行鏈項目正如火如荼地進行。它們是否會在未來占有非常重要的地位,將是區塊鏈最大的看點之一。
從時間而言,波卡主網的上線時間較遲,錯過了以太坊發展的這幾年黃金時間。然而,ETH2.0上線又將是2年以后的事情,而波卡平行鏈項目有望在今年年底或明年初上線波卡主網。這也給波卡留下了更多追趕以太坊的時間。所以未來波卡網絡能否像以太坊那樣大放異彩,非常值得我們關注!
原文標題:《波卡平行鏈與ETH2.0》撰文:談國鵬,Ownbit創始人
親愛的用戶:幣安現已完成AMB主網切換,并開放AMB充值、提現功能,敬請體驗!注意:主網切換完成后,幣安將繼續支持充值AMB的ERC20代幣,并幫助用戶自動兌換成主網代幣.
1900/1/1 0:00:0011月13日,SushiSwap聯合創始人0xMaki發布SIMP#1提案表示,當前Sushibar發現漏洞,外部擁有的帳戶利用SushiBar在不到12分鐘內賺取了10ETH以上的利潤.
1900/1/1 0:00:00鏈聞消息,ValueDeFi的MultiStables保險庫遭遇閃電貸攻擊,慢霧安全團隊于第一時間跟進并進行相關分析,以簡要的形式呈現給大家,供大家參考.
1900/1/1 0:00:00區塊鏈是當下最時髦的科技詞匯之一,近年來各類金融機構大手筆投資區塊鏈技術,金融主管部門也在積極研究區塊鏈技術應用.
1900/1/1 0:00:00今年開年實在是比較特殊,注定了不會平淡的一年,具體到礦業而言,說是跌宕起伏,險象環生也一點都不夸張,過去半年礦工到底經歷了什么?讓經久考驗的老礦工都直呼刺激年初疫情肆虐.
1900/1/1 0:00:00親愛的用戶: 為支持波卡生態發展,BigONE上線波卡生態頁面,同步開啟參與DOT兩款理財產品,壕送20000枚DOT半價認購額度的活動,用戶可積極參與.
1900/1/1 0:00:00