昨晚,波卡生態鏈項目Moonbeam和Ownbit進行了技術交流,期望未來Ownbit對波卡生態鏈進行更好地支持。Moonbeam也將競爭成為第一批波卡平行鏈。借著交流的機會,我對波卡平行鏈也有了更深的理解,遂成此文。
ETH2.0和波卡平行鏈是未來的兩個重要技術,他們雖分屬于兩個不同的重量級項目,但在設計上卻有驚人的相似。
波卡平行鏈
在波卡的設計里,有兩個重要的概念,一個是波卡平行鏈,另一個是波卡平行線程。理解這兩個概念是理解整個波卡生態的重要環節。
波卡平行鏈,故名思議,是與波卡主鏈平行的其他鏈。要成為平行鏈,需要占用波卡系統的一個插槽。波卡系統的插槽數量是有限的。波卡設計出了一套插槽拍賣的系統,通過出價拍賣獲得一個插槽有限的使用權。
因此每次插槽的占有都是有限時間內,到期后要重新進行插槽競拍。用于競拍的DOT將在插槽使用到期后歸還,因此使用插槽,只是占用金額,而不花費資金。
慢霧:跨鏈互操作協議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]
為什么要成為波卡平行鏈?
慢霧:Inverse Finance遭遇閃電貸攻擊簡析:據慢霧安全團隊鏈上情報,Inverse Finance遭遇閃電貸攻擊,損失53.2445WBTC和99,976.29USDT。慢霧安全團隊以簡訊的形式將攻擊原理分享如下:
1.攻擊者先從AAVE閃電貸借出27,000WBTC,然后存225WBTC到CurveUSDT-WETH-WBTC的池子獲得5,375.5個crv3crypto和4,906.7yvCurve-3Crypto,隨后攻擊者把獲得的2個憑證存入Inverse Finance獲得245,337.73個存款憑證anYvCrv3Crypto。
2.接下來攻擊者在CurveUSDT-WETH-WBTC的池子進行了一次swap,用26,775個WBTC兌換出了75,403,376.18USDT,由于anYvCrv3Crypto的存款憑證使用的價格計算合約除了采用Chainlink的喂價之外還會根據CurveUSDT-WETH-WBTC的池子的WBTC,WETH,USDT的實時余額變化進行計算所以在攻擊者進行swap之后anYvCrv3Crypto的價格被拉高從而導致攻擊者可以從合約中借出超額的10,133,949.1個DOLA。
3.借貸完DOLA之后攻擊者在把第二步獲取的75,403,376.18USDT再次swap成26,626.4個WBTC,攻擊者在把10,133,949.1DOLAswap成9,881,355個3crv,之后攻擊者通過移除3crv的流動性獲得10,099,976.2個USDT。
4.最后攻擊者把去除流動性的10,000,000個USDTswap成451.0個WBT,歸還閃電貸獲利離場。
針對該事件,慢霧給出以下防范建議:本次攻擊的原因主要在于使用了不安全的預言機來計算LP價格,慢霧安全團隊建議可以參考Alpha Finance關于獲取公平LP價格的方法。[2022/6/16 4:32:58]
成為波卡平行鏈主要獲得兩個好處:鏈本身更加安全,以及擁有和其他平行鏈的互操作性。
慢霧:Polkatrain 薅羊毛事故簡析:據慢霧區消息,波卡生態IDO平臺Polkatrain于今早發生事故,慢霧安全團隊第一時間介入分析,并定位到了具體問題。本次出現問題的合約為Polkatrain項目的POLT_LBP合約,該合約有一個swap函數,并存在一個返傭機制,當用戶通過swap函數購買PLOT代幣的時候獲得一定量的返傭,該筆返傭會通過合約里的_update函數調用transferFrom的形式轉發送給用戶。由于_update函數沒有設置一個池子的最多的返傭數量,也未在返傭的時候判斷總返傭金是否用完了,導致惡意的套利者可通過不斷調用swap函數進行代幣兌換來薅取合約的返傭獎勵。慢霧安全團隊提醒DApp項目方在設計AMM兌換機制的時候需充分考慮項目的業務場景及其經濟模型,防止意外情況發生。[2021/4/5 19:46:39]
為了更好理解鏈更加安全這個概念,我們可以把波卡系統想象成可以容納多條平行鏈的容器。每個平行鏈會有自己的共識機制,以及產生區塊的方式。容器定時將所有平行鏈產生的區塊收集起來,形成容器層面的區塊。該容器在波卡中被稱為:中繼鏈。被中繼鏈打包對于平行鏈而言,稱為區塊的finalize。
Harvest.Finance被黑事件簡析:10月26號,據慢霧區消息 Harvest Finance 項目遭受閃電貸攻擊,損失超過 400 萬美元。以下為慢霧安全團隊對此事件的簡要分析。
1. 攻擊者通過 Tornado.cash 轉入 20ETH 作為后續攻擊手續費;
2. 攻擊者通過 UniswapV2 閃電貸借出巨額 USDC 與 USDT;
3. 攻擊者先通過 Curve 的 exchange_underlying 函數將 USDT 換成 USDC,此時 Curve yUSDC 池中的 investedUnderlyingBalance 將相對應的變小;
4. 隨后攻擊者通過 Harvest 的 deposit 將巨額 USDC 充值進 Vault 中,充值的同時 Harvest 的 Vault 將鑄出 fUSDC,而鑄出的數量計算方式如下:
amount.mul(totalSupply()).div(underlyingBalanceWithInvestment());
計算方式中的 underlyingBalanceWithInvestment 一部分取的是 Curve 中的 investedUnderlyingBalance 值,由于 Curve 中 investedUnderlyingBalance 的變化將導致 Vault 鑄出更多的 fUSDC;
5. 之后再通過 Curve 把 USDC 換成 USDT 將失衡的價格拉回正常;
6. 最后只需要把 fUSDC 歸還給 Vault 即可獲得比充值時更多的 USDC;
7. 隨后攻擊者開始重復此過程持續獲利;
其他攻擊流程與上訴分析過程類似。參考交易哈希:0x35f8d2f572fceaac9288e5d462117850ef2694786992a8c3f6d02612277b0877。
此次攻擊主要是 Harvest Finance 的 fToken(fUSDC、fUSDT...) 在鑄幣時采用的是 Curve y池中的報價(即使用 Curve 作為喂價來源),導致攻擊者可以通過巨額兌換操控預言機的價格來控制 Harvest Finance 中 fToken 的鑄幣數量,從而使攻擊者有利可圖。[2020/10/26]
波卡中繼鏈對平行連區塊的最終確認讓平行鏈更加安全。這樣每個平行鏈可以得益于波卡系統的強大共識,而不用擔心本鏈可能存在各種共識層面的攻擊或問題。
波卡平行鏈和其他平行鏈的互操作性是另一個優點。波卡在系統層面設計了一套消息傳遞系統,可以讓各平行鏈之間相互傳遞消息、執行指令、轉移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創始人
11月11日,建行擔任顧問的數字代幣美元債券發行消息公布。時隔5日,這筆價值30億美元ERC20債券發行宣布將推遲.
1900/1/1 0:00:001.登錄火幣APP,即可看到底部導航欄“合約”。用戶點擊“首頁”左上角頭像可以查看賬戶UID、賬戶中心、設置等信息以及進入聯系客服通道.
1900/1/1 0:00:00尊敬的CITEX用戶: CITEX將支持FIL持有者接受FIC空投活動,按照FIC官方計劃,CITEX在2020年11月17日上午10:00:00已完成FIL持倉用戶資產快照.
1900/1/1 0:00:00近日,一種不經意中透露出自己優越生活的“凡爾賽文學”悄然火起來。每一種文化現象流行的背后,似乎總能找到其對應的文化事物,而當“凡爾賽文學”成為幣圈互為傳送的“熱梗”,大家或能從中得到啟發.
1900/1/1 0:00:00陸百川11.17以太坊早間行情分析及操作策略耐心之樹,結黃金之果,忍耐和堅持是痛苦的,但它會逐給你好處,不經歷風雨,長不成大樹,不受百煉,難以成鋼.
1900/1/1 0:00:00數字人民幣進入實測階段后,經常會被問到一個問題:數字人民幣與支付寶或財付通有什么不同?對于這個問題,有不少人總結出不少的不同點,比如:數字人民幣是央行貨幣,支付寶、財付通等是銀行貨幣或錢包貨幣.
1900/1/1 0:00:00