比特幣交易所 比特幣交易所
Ctrl+D 比特幣交易所
ads
首頁 > 火幣APP > Info

解讀智能合約:Harmony的跨鏈橋是如何被盜一億美金的?-ODAILY_Horizon

Author:

Time:1900/1/1 0:00:00

內容概要

2022年6月24日,由Layer1公鏈Harmony開發的,以太坊與Harmony間的資產跨鏈橋Horizon遭到攻擊,損失金額約為1億美元。

這到底是怎么回事?

雖然黑客攻擊發生的當天就能斷定屬于“公證人私鑰被盜”,既然貴客點開,不妨來展開聊聊,放心,有少數硬核源碼但全篇講白話,通俗易懂!

跨鏈橋分類與技術原理

Horizon合約審計報告解讀

被盜原因復盤分析與總結

1、跨鏈橋技術原理

跨鏈,顧名思義是不同區塊鏈之間資產信息如何轉移的問題,也稱之為互操作性,而目前有超50種跨鏈解決方案,其方案定義是多種多樣的。

《來自iosg-跨鏈橋方案一覽,誰能匯聚多鏈流動性》

1.1、跨鏈方案有哪些?

概括來講,要實現資產價值在另一條鏈上恒定,有兩種大路徑按”價格”錨定和按”物理”錨定

乍一聽復雜,其實按價格錨定就是在各公鏈上的USDT這種穩定幣,他與美元1:1錨定,因此也屬于跨鏈資產的一種。

拋開各類穩定幣更直觀一種跨鏈方案則是物理錨定,即流動性總量是恒定的,其方案也很多,咱們重點講公證人模式。

公證人模式依據”公證人是誰“有三種區分:

交易所做擔保型:比如幣安提幣,各種買賣均在中心化交易所進行,提幣才兌現

流動性池橋接型:比如bridge.connext,o3swap

動態 | 江卓爾解讀甘孜藏族自治州通知:冬天枯水期發電少,挖礦的就不要用了:金色財經報道,就甘孜藏族自治州發布《我州積極做好迎峰度冬保電工作》通知一事,江卓爾發微博稱,看標題,翻譯一下:雖然我們四川甘孜州,夏天豐水期棄水棄電很多,歡迎你們挖礦來用,增加我們收入,但是現在冬天枯水期了,發電少,你們挖礦的就不要用了,各電站要把大部分電賣給電網,不要自己礦場用光光,不然我們電就不夠用了,還要從外面買電。[2019/12/26]

合約鎖定鑄造型:各類官方橋通用方案polygon/arbitrum/avax/celer,以及今天的主角harmony

鎖定鑄造型由于產生的是包裝代幣,因此往往是各公鏈具有一定公信力的官方橋才采用。

以上均各有優缺,或是怕交易所跑路,或是流動性枯竭,或是公證人私鑰被盜,目前并沒有完美實現不可能三角的跨鏈方案出現。

如下圖是o3swap的流動性總量和交易量趨勢,近半年已然跌去90%,或許是因為去年8月的質押資產被盜案導致不斷式微吧。

《流動性總量與交易量,來自o3swap官網》

1.2、Horizon橋的跨鏈原理

Harmony開發的Horizon橋是非常標準的公證人鎖定鑄造型。

為何鎖定鑄造可以被信任呢?

是由于區塊鏈上的合約具有不可更改特性,如果不留后門的話,甚至一旦部署將無任何方式可以影響他的運作,正如無聊猿官方自己將所有權限轉入0地址,放棄所有權后,無任何方式可以進一步鑄造出新的猴子,其流動性總量將被鎖死。

分析 | 幣安中簽解讀:最新中簽率顯示持倉逐步分散 機構投資者或有一定撤離:據TokenGazer觀察BNB最新的中簽信息,TokenGazer猜測機構投資者可能已經有一定程度撤離。

本次elrond中簽率僅為11.07%,大幅度低于one的30%和matic的58%;

總簽數10833,共計鎖定978.5萬BNB,約占BNB總體供應的10%,遠遠高于之前鎖定2%左右的量,說明BNB的持倉已經有了一定程度的分散。

而幣安自6月中宣布在9月隔離美國用戶后出現較大幅度的跌幅,時間點上和本次Launchpad抽簽時間段重合,可能說明機構投資者對監管有所顧慮已經出現一定程度撤離。[2019/7/2]

同理的,不同公鏈之間雖然合約不同,但如果在以太坊上用合約鎖住10個ETH,在另一條公鏈上也以同樣有公信力的合約,來釋放10個wETH,這樣一來其實全局上流動性是固定的,只要wETH可以隨時轉回以太坊并兌換得到ETH,那wETH就可以被認為是具有了ETH的等同價值。

因此其核心的操作就是

Lock-and-Mint:A鏈鎖定代幣流動性+B鏈發行等量的可流通包裝代幣

Burn-and-Release:B鏈銷毀包裝代幣+A鏈解鎖等量基礎代幣的流動性

公證人:負責發現A鏈Lock鎖定事件后,去B鏈Mint鑄造出錨定代幣,轉入目標地址。

Horizon橋的流程示意圖,來自官方github

有鎖定自然衡量各個跨鏈橋規模的最佳方式就是TVL,可以顯著看到6.24之后,Horizon的TVL瞬間跌入谷底,當安全事故來臨再多的TVL也就如流水一般,蜂擁而至也一哄而散。

楊東教授解讀:央行開展對虛擬貨幣的清理整頓,切實保護金融消費者始終是基礎:楊東教授發文稱,當前虛擬貨幣交易存在一定風險與亂象,而投資者是風險的主要承擔者,因為區塊鏈技術應用于金融業態在包裝和銷售小額化金融資產的同時,也將金融風險擴散到了廣大小微投融資者之間。但值得注意的是,投資者是區塊鏈應用于金融業態的重要基礎,金融科技必然回歸到投資者保護。[2018/3/31]

Horizon鏈橋TVL圖,來自dune

2、Horizon橋的合約審計報告解讀

一次事故對很多Web3項目而言,做不到100%安全就基本等于0的價值,因此為了檢查合約的安全性,一般會測試模擬多種攻擊場景,通過checklist進行安全審查,以確保合約安全

開發或許幾天而已,但要足夠可靠則流程多且昂貴

審計報告的核心信息是:風險名稱、漏洞描述、風險等級、安全建議、修復狀態及審計結果等

而Horizon橋的合約審計報告是老牌審計公司PeckShield進行的,發現了5個漏洞風險

2.1、中低風險點1-兼容不足

是不是很難想象區區3行代碼都能有bug?

其實鎖定token的邏輯很簡單,就是用戶制定金額和目標地址,在授權代扣權限后,合約將USDT轉入此合約鎖定,并發出一個locked事件,讓鏈下的公證人可以得知資產已經被鎖定了。

金色財經獨家分析 巨人轉讓區塊鏈相關股份的兩種解讀:被投資公司盈利能力反映在巨人公司的投資損益項,盈利能力存在風險會直接對其財務報表產生風險,而這正是股東看重的地方。巨人公司出售OKC股份,從因“不確定性”而“保護投資者”理由解釋合理充分,轉讓對價2850萬美元占2%左右比例并不高,董事會在其職權范圍內作出決定也不用勞煩整個股東大會,巨人也按照程序做了相同的關聯方解釋,資產并未被低估賤賣,完全符合要求。

然而“不確定性”卻存在兩種解讀。如果解釋為風險,史玉柱等自然展現了擔當與無私;如果解釋為潛在收益,那么OKC成功轉型帶來的利潤巨人公司的廣大股東也是享受不到的。旁人并不知道史玉柱和董事會的想法,但至少,此次減少“區塊鏈”相關的股權,并不能說明OKC或區塊鏈概念的利空。如果真是巨大風險,就沒必要賣給“利益相關方”了,解釋為史玉柱與股東會的“分歧”更為準確。而且值得注意的是,OKC是從經營幣到搞區塊鏈“實業”,更符合政策,有理由是個正向消息。[2018/3/24]

但PeckShield審計發現LockToken鎖定函數對通縮型token是不兼容的,用戶傳入的amount如果是100,自然Locked事件發出的是成功鎖定100個

但是如果是”通縮型“的token呢?進行safeTransferFrom的過程中amount變少了怎么辦?這就會出現鎖倉額低于B鏈釋放額的風險

可看前文:你買的NFT到底是什么?

標準協議中都會以虛函數為鉤子的方法,在轉移前后增加邏輯,有些token則可能在這里_beforeTokenTransfer增加交易損耗,從而控制流通量實現通縮。

尹振濤解讀數字貨幣政策:對數字貨幣的監管還可以更嚴厲:中國社會科學院金融研究所法與金融研究室副主任尹振濤認為:對數字貨幣的定位不明確,各國對數字貨幣的監管都在同一起跑線上;各國的監管差異體現了背后的經濟博弈;從效果上看,當前國內監管做的還不夠,在某些領域,我們還可以更嚴一點;禁止ICO不應是阻礙區塊鏈發展的借口;數字貨幣交易被禁止,風險仍留在國內;未來各國的監管會漸趨一致。[2018/3/22]

當然harmony最后肯定是修改優化了,采用轉移前后兩次讀取balance的方法來算出實際鎖定額。

2.2、中低風險點2-異常鎖定

還是這段代碼,是不是很難想象區區3行代碼不僅有BUG,而且有2個!

可看前文:你買的NFT到底是什么?

為了安全的Mint,其實標準協議是禁止向0地址mint的,如果lockToken的時候目的轉入地址recipient填寫為0地址,則會B鏈上鑄造失敗,造成鎖入此合約但無跨鏈效果,如果此金庫合約沒有預留合適的轉出方法則會永久鎖定。

2.3、高風險點

鑄造解鎖等函數的調用者為單簽賬戶

在原先程序里,Mint鑄造資產unlock解鎖釋放,都是只能指定公證人進行。

這也正是本次中招的原因,harmony是最終將公證人改了多簽錢包,但只不過只改成3個,其中2個私鑰被盜就可以橫行無忌。

PeckShield對Horizon橋的審計報告

怎么說呢,你說他改了吧總覺得有些敷衍,甚至黑客盜出資產的時候,harmony橋依舊在運作中,意味著他的私鑰甚至是明文保存被黑客拷貝走的

3、黑客盜取過程

通過合約審計報告的解讀可以發現,原來跨鏈公證人的權限如此之大,只有他可以進行鑄造和釋放,而黑客事件發生的時候,看他交易操作就能分辨出來被盜原因

區塊鏈瀏覽器使用指南見:當我們在看Etherscan的時候,到底在看什么?

3.1、關鍵信息

攻擊者錢包

wallet1:0x0d043128146654C7683Fbf30ac98D7B2285DeD00

wallet2:0x9E91ae672E7f7330Fc6B9bAb9C259BD94Cd08715

wallet3:0x58f4baccb411acef70a5f6dd174af7854fc48fa9

跨鏈橋相關地址

MultiSigWallet:0x715cdda5e9ad30a0ced14940f9997ee611496de6

ETH的金庫地址:0xF9Fb1c508Ff49F78b60d3A96dea99Fa5d7F3A8A6

ERC20金庫地址:0x2dccdb493827e15a5dc8f8b72147e6c4a5620857

被盜公證人地址:0x812d8622c6f3c45959439e7ede3c580da06f8f25

3.2、盜取過程分析

盜取13100個Ether,詳情見交易Link

執行的是確認某個交易ID

公證人確認->等待確認的公證人數量達標->解鎖金庫資產轉入目標地址

在多簽合約合約代碼里邏輯可以看出,這個函數會進行notConfirmed判斷,因此只有系統之前設置過的公證人地址可以調用

后續會執行executeTransaction方法,再調用isConfirmed方法做判斷,如果認證這筆交易的管理員數量達到2位,就會內部調用EthManager合約的unlockEth方法,最終將ETH發送至攻擊者錢包。

至此很明顯,除了私鑰被盜,如此簡單明了的合約不會有什么特別的犯錯可能性了。

順道看了下現在跨鏈橋的ETH金庫的余額還有94個Eth,ERC20的金庫還有30W刀的各類代幣

4、思考總結

4.1、盜者會如何?

雖然馬上harmony開出了100W美金,提出黑客歸還資產并承諾不追究責任,但即使黑客歸還且官方不追究也會有其他社會團隊做公訴,因此黑客的最佳路線只有想盡一切辦法為被盜資產脫敏。

截至6月29日,攻擊者已將大約35,000個以太坊轉移到TornadoCash,這是一種常見的混幣器,雖然區塊鏈是賬本公開,任何交易均可被追蹤,但是混幣器猶如為100個人集合交易,并不能準確得出哪筆資金最終落到哪個人手里。

4.2、如何更安全?

harmony對多簽的實現是每筆投票均上鏈,或許是出于成本的考慮所以他的公證人只有3位,當初的降本優化造成了滿盤皆輸

要優化可采用分布式托管的方法,托管給MPC(Multi-PartyComputation)公證人網絡,不超過一定比例的節點同時作惡即可保證安全

即使公證人稀少也可以參考雪崩橋采用的SGX可信計算技術

AvalancheBridge:用英特爾SGX保護跨鏈資產

本質上還是對安全重要性的淡漠,在跨鏈橋的開源代碼中寫的執行計劃,2年前就實現了可用的鏈橋,卻遲遲不進一步優化。

引用:

iosg-跨鏈橋方案一覽,誰能匯聚多鏈流動性

Horizon橋官方GIT:https://github.com/harmony-one/ethhmy-bridge

Horizon鏈橋TVL圖:https://dune.com/queries/118245

盜取交易Link:

https://etherscan.io/tx/0x27981c7289c372e601c9475e5b5466310be18ed10b59d1ac840145f6e7804c97

《PeckShield對Horizon橋的審計報告》

https://docs.harmony.one/home/general/bridges/horizon-bridge/audit

《AvalancheBridge:用英特爾SGX保護跨鏈資產》

https://medium.com/avalancheavax/avalanche-bridge-secure-cross-chain-asset-transfers-using-intel-sgx-b04f5a4c7ad1

Tags:ETHORIHorizonRizonRUN TOGETHERCHORIZOHorizon ProtocolHorizon Finance

火幣APP
全球領先的區塊鏈旅游服務平臺Travala.com新增USDD為支付方式-ODAILY_SDD

據官方消息,Travala.com現已新增去中心化超抵押穩定幣USDD作為支付方式,用戶可通過USDD支付旅游訂單.

1900/1/1 0:00:00
加密衍生品生態穩步發展,賽道黑馬嶄露頭角-ODAILY_COI

在傳統金融交易圈,衍生品的交易量往往比現貨市場的交易量要更高。近幾年,盡管與傳統金融市場相比,加密金融市場的體量還較小,但加密衍生品市場的交易量正在迅猛增長.

1900/1/1 0:00:00
JZL Capital區塊鏈行業周報第30期:V神解讀以太坊最新藍圖-ODAILY_AND

本周概覽 -V神在ETHCC5上宣布最新路線圖,主要內容是什么?-特斯拉在其Q2財報符合預期的情況下拋售了75%的比特幣,還有哪些科技巨頭值得關注? 一、行業動態 上周加密市場觸底反彈.

1900/1/1 0:00:00
JustLend總質押價值突破33億美元,過去24小時成交量增加188%-ODAILY_JUS

據最新消息,JustLend總質押價值為3,374,931,949美元,突破33億美元,目前在波場TRON項目中位列第一.

1900/1/1 0:00:00
SUN平臺推出的全新智能礦池中的USDD-USDT LP最高APY超過205%-ODAILY_USDT

據官方數據,7月22日,SUN平臺全新升級的智能礦池中的2poolLP最高APY超過202%,USDD-USDTLP最高APY超過205%.

1900/1/1 0:00:00
創宇區塊鏈:6 月安全月報-ODAILY_DIS

前言 六月以來,安全事件仍層出不窮,即使幣價下跌,攻擊者卻沒有停下攻擊的腳步。據知道創宇區塊鏈安全實驗室數據顯示:該月發生的安全事件超46起,其中跑路騙局變得更加嚴重,而跨鏈橋HarmonyBr.

1900/1/1 0:00:00
ads