Poly Network被盜事件對於主打跨鏈的波卡而言,有何借鑒經驗?

隨著行業的向前發展以及新的解決方案的誕生,沒有什麼能阻攔到區塊鏈的前進

圖片

Polkadot生態研究院出品,必屬精品(文章很長,建議先收藏再閱讀)

背景

儘管Poly Network的黑客攻擊事件已經接近尾聲,並且這兩天有消息傳出,區塊鏈跨鏈平台Poly Network考慮到黑客已歸還大部分被盜數字資產,決定不再追究其法律責任,甚至還邀請其擔任公司首席安全顧問,以協助Poly Network在後續安全事宜上提供幫助。

至此,作為DeFi領域至今最大的一起被盜案(超過6億美金被盜),以一種比較和諧的方式走下了“熱點新聞”。放眼望去,該事件也被認為是有史以來最大的一起加密資產領域的被盜案,超過了之前有記錄的日本Coincheck交易所被盜的5.348億美元(2018年)。

回望這件事,更有趣的點在於,8月13日凌晨,Poly Network失竊案的黑客在以太坊網絡上公佈了自己的心路歷程,他在自問自答中寫道:“為什麼選擇攻擊Poly Network?因為近期跨鏈協議攻擊很’火’。”

圖片圖片

於是故事又回到了一個在2020年備受關注的詞語——跨鏈。

跨鏈攻擊很火?

我們不禁想問,跨鏈攻擊真的很火嗎,還是這位黑客開的一個玩笑話?

據PeckShield統計,截至8月12日,2021年第三季度(Q3)共計發生19 起DeFi 安全事件,平均兩天發生1 起安全事件,總損失6.77 億美元。而從數量上來看,在以太坊和跨鏈協議上發生的安全事件確實位居居榜首,分別達到了6 起。

圖片圖片

當然,PeckShield統計的僅僅是第三季度的情況,如果放大來看依然有不少參考價值,畢竟我們可以直觀的發現,今年以來,隨著DeFi的火熱,該領域的被盜金額一直在快速增長著,據不完全統計在過去半年,平均每一個月就會發生一起DeFi領域的被盜案,損失金額早已突破數千萬美金,只是Poly Network的被盜拉高了這個數據。

跨鏈領域之所以被眾多黑客盯上了,其原因在於自從Layer2和側鏈火熱以來,以Polygon網絡為首的二層網絡開啟了飛速的鎖倉增長,短時間內就節節突破1億美元,10億美元,甚至50億美元大關,面對這樣一塊大蛋糕,自然引起了眾多黑客的關注。

另一個點正如BlockSec聯合創始人所言,“跨鏈橋的整個流程比較複雜,涉及到多條鍊和多個合約之間的交互,而這些安全風險的監測需要通過對跨鏈橋做整體安全評估分析。對某一個模塊的審計和分析並不能完整覆蓋全鏈路的安全風險”。

通過上面的分析我們不難發現,對於跨鏈的香餑餑來說,一方面是巨大的鎖倉金額,另一方面卻充斥著複雜的流程,有非常多風險點,需要極高的安全意識,這也是為什麼黑客會說“跨鏈協議攻擊很’火’”的原因,畢竟對他們來說既是一種挑戰,也是部分黑客眼饞的“碩果”。

當然,在探究跨鏈攻擊之前,我們以Poly Network被盜事件為例,為大家拆解下跨鏈協議被盯上的原因,以及跨鏈協議攻擊又是如何發生的? (下文內容在所難免會涉及一些技術分析,我們盡量用通俗的語言向大家講解,便於理解)

回顧PolyNetwork事件

作為DeFi發展史上最大的黑客攻擊事件,Poly Network為項目方和普通用戶都敲響了警鐘,如何在快速發展的區塊鏈領域保護好我們的資產,並且將整個生態的做的更好更安全,需要大家的不懈努力。而當下,讓我們來先來對Poly Network事件進行複盤和分析,以對該事件擁有更清楚的認知,而不僅僅是一味的焦慮和恐慌。

1、事件起因經過結果

攻擊最早發生於8月10日17:55,黑客在以太坊鏈上先後從Poly Network的智能合約中轉移了價值超過2.6億美元的資產,分別為9638萬枚USDC和1032枚WBTC。然而攻擊並沒有結束,18:04黑客在Polygon上從智能合約中轉移了8508萬枚USDC,18:08黑客在BSC上從智能合約中轉移了8760萬枚USDC和26629枚ETH。至此,黑客已經盜取了價值6.1億美元的數字資產。

之後黑客在8月11日13:00之前,對BSC和以太坊上的部分資金進行了移動,分別為將BSC上合計價值1.2億美元的3210萬枚BUSD和8760萬枚USDC的流動性添加到了Curve分叉項目Ellipsis Finance中。以及將以太坊上超過9706萬美元,包括67萬枚DAI和9638萬枚USDC的流動性添加到了Curve,而後又撤銷了流動性,將其轉換為9694萬枚DAI。

而與此同時,一位hanashiro.eth的地址通過黑客的地址提醒他Thether凍結了其以太坊上的USDT,黑客為了表示感謝,向該地址轉入了13.37枚代表黑客語“Leet”的ETH。黑客在炫耀自己的黑客技術的同時,引起了部分群眾的參與,一些用戶紛紛向黑客地址發送鏈上信息以期可以獲得打賞。

而Poly Network在經過了短時期的商討之後,號召同業機構將黑客地址納入黑名單,並公開喊話黑客,其行為在任何國家都是違反法律的。最終在多方努力和黑客自身在多重因素的考慮之下,黑客於8月11日17:00左右開始逐步歸還資金,包括polygon上1010100枚USDC、BSC上23.99枚PBTC、以太坊上的SHIB和FEI等。

之後在22:00,退回了BSC鏈上價值2.53億美金的BUSD ETH和BTC;23:30開始退回以太坊上的資產;並於8月12日9:00,退回了全部Polygon和BSC上的資產。當前除了凍結資產基本上都已退回。

那麼這是否代表了黑客的妥協呢。黑客在以太坊的交易信息中高調的發布了自問自答,公開表示,在DeFi的世界中,除了代碼和你自己,你不能相信任何人。而他所做的一切都是為了社區用戶資金的安全。他不過是待在黑暗中拯救世界。而選擇Poly Network不過是因為跨鏈攻擊當前很火,他只是為了好玩。

無論求財還是求名,毫無疑問,這名黑客做到了,這件驚天大案會被區塊鏈歷史載入史冊。然而這是否代表了跨鏈相關協議的不可靠,筆者認為,在任何類型的早期項目發展中,無可避免的會出現一些瑕疵。作為開拓者的他們需要摸著石頭過河,而這個過程中磕磕碰碰在所難免,我們不能因為一時的挫折而完全不信任跨鏈相關協議,因噎廢食。總的來說,作為異構跨鏈領域,首先解決了各區塊鏈間算法和底層架構差異大、跨鏈信息交互執行速度低、信息不安全等技術難點的Poly Network依舊有其價值所在。

那麼究竟為何會出現這樣的問題,並且及時有效的修改和避免它成為了大家最關注的話題。黑客究竟是如何做到的?目前在全網流傳著一個形象的比喻,“黑客拿著房主證明找物業拿鑰匙,證明是假的,卻從物業那裡拿到了真的鑰匙”

那麼讓我們來簡單的進行進一步的剖析。

2、黑客手法及事件總結

要想理解黑客的手法,我們需要先看一看Poly Network的架構。 Poly Network的架構分為SRC chain(源鏈)、Poly chain、DST chain(目標鏈)三個部分,簡單的講,就是源鏈發起的跨鏈交易確認後,RelayerA將區塊頭信息同步至Poly chain,之後Poly chain將區塊鏈信息同步至目標鏈RelayerB,目標鏈RelayerB將驗證信息轉移到目標鏈進行驗證並執行交易。

圖片圖片

在這樣的架構中,Relayer的作用非常的重要。而黑客抓住了智能合約中的漏洞,將EthCrossChainData合約的keeper通過EthCrossChainManager合約進行修改,繼而通過EthCrossChainManager合約的verifyHeaderAndExecuteTx函數經由_executeCrossChainTx函數盜取資金。

簡單的說就是,黑客在源鏈上初始化的未被充分檢查的的攻擊交易被RelayerA納入了Merkle tree並進行了簽名,黑客利用有效的Merkle證明,再利用RelayerB將keeper改成了黑客控制的公鑰,繼而盜取了資金。

圖片圖片

究其緣由在於,RelayerB的Merkle證明並沒有對驗證其所收到的信息是否被破壞和修改。而任意用戶都可以調用verifyHeaderAndExecuteTx函數進行交易的執行,並且在其內部進行call調用時可以調用用戶名。同時EthCrossChainManager合約中對Keeper的修改權限,使得黑客能夠通過數據異常調用修改keeper,並對交易進行簽名。毫無疑問這是合約權限管理邏輯中的問題。

而這也為Poly Network及類似的相關協議敲響了警鐘,在跨鏈交易事件的驗證及合約權限管理的設計上,項目方似乎需要更加精心的打磨。

對於波卡的啟示

1、波卡面對跨鏈攻擊會有怎樣的情況呢?

其實從黑客對於這次跨鏈攻擊的手法來看,此次PolyNetwork主要的問題還是在於跨鏈功能中扮演中繼作用的組件對鏈上跨鏈過來的消息的驗證上存在缺陷,以及合約權限的管理邏輯存在問題,這使得黑客能讓惡意的跨鏈消息被接收並在對應的鏈上進行了跨鏈消息所指定的操作。

而出現這樣的問題,其實也是因為跨鏈會涉及到不同鏈之間的不同合約的交互,複雜程度驟然上升。基於區塊鏈本身的特點,大部分公有鏈的安全性還是比較有保障的,但是一旦涉及到從一條鏈跨鏈發送信息到另一條鏈,信息如何在不同鏈之間傳輸,這個過程就沒有區塊鏈本身的特性作為安全保障了。因此,為了防止這個過程出現風險,往往設計的機制和流程都比較複雜,也就有比較多的風險點了。這好比是銀行金庫本身安全係數很高,但是兩個銀行之間轉移資產時,由於這個過程中無法獲得金庫一樣的安保,往往會採用複雜的流程和配備運鈔車和安保人員。但這就給了犯罪分子許多可以趁機打劫的環節,跨鏈也是面臨類似的問題。

那麼,被稱為跨鏈之王的波卡是否會有類似的問題呢?

其實,從這次的事件我們可以注意到,跨鏈出問題往往是在異構跨鏈方面,也就是在不同架構的區塊鏈之間。波卡其基本結構是中繼鏈+平行鏈的架構,而平行鏈的架構都有一個共同的來源,那就是Substrate框架。因此,平行鍊是波卡的一部分,波卡的平行鏈之間的信息傳遞是屬於同構跨鏈,也就相當於是波卡自己的功能,直接用XCMP(跨鏈信息傳遞)就實現了,所以也就不會遇到同樣的問題。

不過,對於波卡利用轉接橋的方式將不同架構的區塊鍊鍊接到波卡上,也就是對於異構跨鏈的情況,仍然會有問題,這就在於轉接橋的安全性了。而轉接橋並不是一個唯一性的問題,比如不僅波卡官方正在與Snowfork團隊在做以太坊到波卡的轉接橋,也有其他波卡的平行鏈在做以太坊的轉接橋。也並沒有任何規定,來約定以太坊的轉接橋只能有多少個,或者哪一個是唯一的被認可的,因為本質上,轉接橋也好,Layer2也好,都是在一條鏈鎖住資產,再在另一條鏈增發影子資產。既然是智能合約的問題,那就可以做很多個轉接橋了,所以轉接橋的數量是可以沒有限制的。

綜上所述,對於跨鏈攻擊的問題,儘管波卡每一步都會進行嚴格的代碼審計,但是有代碼審計並不能完全保證沒有一些特殊的情況發生,比如Poly Network本就是已經接受過代碼審計的,依然被黑客攻擊了。只不過,經過代碼審計後的項目至少不會出現一些常見的問題,也算加了一道保險。另外,對於波卡來說,由於其技術架構的原因,其平行鏈與平行鏈之間的信息傳遞是屬於同構跨鏈,是波卡的一項功能,相對來說安全性會更高一些,風險點少了許多,不過依然要等待實際的檢驗。對波卡來說,最核心的問題在於轉接橋的安全性,因為轉接橋是異構跨鏈的環節,所以這也是波卡生態上最有可能受到跨鏈攻擊的地方。因此,我們並不能說波卡能完全避免跨鏈攻擊這種情況的發生。

圖片圖片

2、如何正確看待波卡面臨的跨鏈攻擊問題

那麼應該如何正確看待波卡面臨的跨鏈攻擊問題呢?

拋開區塊鏈,我們放大到整個計算機領域來說,是沒有絕對安全這個概念的,有的只是把作惡的難度設計為非常難以實現,只是有相對的安全。回到區塊鏈,像比特幣這樣的PoW共識機制的區塊鏈也不是完全安全的,因為有51%算力攻擊的概念,事實上,這幾年來也確實有許多項目比如ETC、BitcoinGold被51%算力攻擊過。而在智能合約方面,以太坊這個智能合約的代表,也因為合約漏洞問題而在The DAO上吃過大虧。

但是,以太坊也並沒有因此而倒下,反而是越做越強,成為當下最熱門的區塊鏈項目之一。一些經歷過黑客攻擊事件的項目也並沒有一蹶不振,通過各種手段把黑客攻擊帶來的影響全部抹平,把漏洞修復,重振旗鼓繼續推進項目就是了。

所以,我們不能完美地期望說波卡不會遇到這種事情,而是應該清醒地明白,這樣的事情防不勝防,真要遇到了,想辦法積極解決就好,總有辦法可以解決的,而解決之後便可以進一步完善項目,只要項目本身發展得好,就會達到更高的高度,以太坊正是如此。

3、解決方案

其實我們也不用太擔心黑客攻擊的問題,隨著黑客攻擊事件頻發,我們對於如何處理這些問題也已經駕輕就熟了。主要有兩大類方法。

第一,是純鏈上的方式來解決,以治理的方式或者中心化的方式來處理。比如項目方通過投票等治理的方式凍結被盜資產,或者與中心化的穩定幣提供商協作,讓其凍結資產;比如快照到某一個未受攻擊前的區塊後,在原有的基礎之上分叉一條新的鍊和新的資產,並根據快照得到的數據,將老的資產轉移到新的鏈上等等。這些處理方式已經是比較通常的解決方案了,有實際操作成功的案例,值得借鑒。

第二種,則是鏈上與鏈下的力量相互配合達到追回資產的方式。這次的Poly Network就是動用了鏈上和鏈下等資源對黑客進行施壓,隨後將所損失的金額全部討回。而另一起在今年6月份發生的項目方跑路事件StableMagnet Finance,最終是通過鏈上與鏈下相結合的方式,最終由英國警方偵破,如數追回所有被盜資產,現在已開始著手將其與合法的所有者重新聯繫起來。此次案件的受害者可以通過聯繫警方處理,需要提供相關信息,包括錢包地址和持有證明等,最終在鏈上的方式退還資產。

所以,隨著各國對加密貨幣的監管逐漸加強,加密貨幣交易所對於KYC的要求會越來越高,鏈上的蛛絲馬跡結合鏈下的執法,會讓許多黑客成員望而卻步,或者伏法被抓。

總之,通過現有的解決方案,已經可以比較圓滿的解決黑客事件帶來的影響,大家不必太介意。

圖片圖片

4、給所有波卡生態相關者的建議

那麼,對於波卡生態的參與者來說,需要注意些什麼呢?

對於波卡官方來說,官方已經做得比較好了,專門做了一條先行網Kusama來測試所有功能,並且每次更新迭代都謹小慎微地進行審計和更新,一步步地研發做了好幾年。唯一比較被大家詬病的地方就是它的進度太慢了。但是看到那麼多跨鏈攻擊的情況出現,波卡的慢工出細活或許也是為了我們今後能更安全地使用跨鏈功能,做了充分的保障,這樣看來,進度問題是可以理解的。

對於波卡生態中的應用或者項目方來說,由於涉及到智能合約這個事故多發地,所以一定要吸取過往安全事件的經驗,避免犯同樣的錯誤,同時安全審計一定不可少。但另一方面,也要去探索一些新的解決方案,比如像波卡生態中的Layer2擴容平台Celer Network就推出了像cBridge這樣的非合約型流動性鎖定方式。又或者讓項目不那麼去中心化,運用中心化的一些機制讓產品更適用於一些專業場景,比如Aave面向機構用戶推出了Aave Pro產品,通過添加白名單系統僅允許KYC參與者訪問Aave Pro池,以此做到屏蔽作惡者,保護資金安全。

對於投入資金去參與這些跨鏈項目的參與者來說,參與任何項目要做好足夠的調查,尤其是要大量投入之前,要盡量選擇審計狀況完善、運行時間比較久的項目,並且對於一些授權行為一定要多加註意,不要隨意的就同意一些很高權限的授權。對於生態中有異構跨鏈的應用一定要慎之又慎,沒做好充分的調查和準備不要輕易嘗試。另外,盡可能找有知名機構背書的,萬一真有問題追責起來也會更容易一些。

後記

在區塊鏈行業從業多年,我們早已見慣了各類黑客事件,雖然現在依舊層出不窮,但是我們也可以很直觀的感受到,區塊鏈從業者們,各類相關機構已經越來越團結,同時,隨著傳統資金進入區塊鏈行業,鏈下的力量也逐漸重視區塊鏈上的犯罪,黑客要想得逞也越來越難了。

另外,在解決方案層面,也有一些去中心化應用與中心化機構相結合的新的解決方案誕生,留給黑客的法外之地越來越少了。

區塊鏈的發展一定是坎坷的,黑客事件雖然是絆腳石,但也是區塊鏈必經的考驗,不會真正阻攔到它,只會讓它鍛煉出腳力,往前走得更遠。

*Polkadot生態研究院所提供的信息不代表任何投資暗示,所發布文章僅代表個人觀點,僅供參考學習,鑑於國內尚未出台數字資產相關政策及法規,請中國大陸用戶謹慎關注Crypto的發展。

鑑於波卡生態項目層出不窮,但其中劣質項目,騙局項目充斥其中,值得警惕,而另一方面只在波卡項目方的群又很難了解到波卡整個生態發展的全貌,錯失許多機會。所以,我們決定建立一個波卡生態群,可以開放式地討論所有波卡生態項目,大家可以客觀的分享對各個項目的觀點,了解波卡各個項目的發展情況,又可以互通信息共同把握機會。關注公眾號”Polkadot生態研究院”,回复“ 進群”,可與眾多愛好者暢談波卡。

展開全文打開碳鏈價值APP 查看更多精彩資訊

Total
0
Shares
Related Posts