內容概要
2022年6月24日,由Layer1公鏈Harmony開發的,以太坊與Harmony間的資產跨鏈橋Horizon遭到攻擊,損失金額約為1億美元。
這到底是怎么回事?
雖然黑客攻擊發生的當天就能斷定屬于“公證人私鑰被盜”,既然貴客點開,不妨來展開聊聊,放心,有少數硬核源碼但全篇講白話,通俗易懂!
跨鏈橋分類與技術原理
Horizon合約審計報告解讀
被盜原因復盤分析與總結
1、跨鏈橋技術原理
跨鏈,顧名思義是不同區塊鏈之間資產信息如何轉移的問題,也稱之為互操作性,而目前有超50種跨鏈解決方案,其方案定義是多種多樣的。
《來自iosg-跨鏈橋方案一覽,誰能匯聚多鏈流動性》
1.1、跨鏈方案有哪些?
概括來講,要實現資產價值在另一條鏈上恒定,有兩種大路徑按”價格”錨定和按”物理”錨定
乍一聽復雜,其實按價格錨定就是在各公鏈上的USDT這種穩定幣,他與美元1:1錨定,因此也屬于跨鏈資產的一種。
拋開各類穩定幣更直觀一種跨鏈方案則是物理錨定,即流動性總量是恒定的,其方案也很多,咱們重點講公證人模式。
公證人模式依據”公證人是誰“有三種區分:
交易所做擔保型:比如幣安提幣,各種買賣均在中心化交易所進行,提幣才兌現
流動性池橋接型:比如bridge.connext,o3swap
動態 | 西秀區干部大講堂專題解讀區塊鏈:12月3日,2019年第六期西秀干部大講堂在西秀文化中心開講,邀請中誠區塊鏈研究院副院長、中國金融培訓中心專家講師、國家信息工程研究院專家講師馬強,為全區廣大干部職工專題解讀了區塊鏈相關內容。
講座上,主講人從什么是區塊鏈、區塊鏈核心技術的突破與發展、區塊鏈在各個行業的典型應用、區塊鏈在政務服務和政務監管中的典型應用、探索使用區塊鏈賦能誠信建設、政府部門如何有效參與和監管企業區塊鏈應用等方面,給大家做了詳細的講解,詳細介紹區塊鏈的發展歷程及所帶來的經濟效益,并就區塊鏈的現狀和未來進行具體的分析展望,還與現場的參會人員進行了互動解答。
通過這次講座,大家對區塊鏈在建設網絡強國、發展數字經濟、助力經濟社會發展等方面的作用,有了較為全面的認識,也為今后西秀區在提高運用和管理區塊鏈技術能力、加速推進以信息技術帶動全區經濟高質量發展奠定了一定的基礎。(西秀區委宣傳部)[2019/12/6]
合約鎖定鑄造型:各類官方橋通用方案polygon/arbitrum/avax/celer,以及今天的主角harmony
鎖定鑄造型由于產生的是包裝代幣,因此往往是各公鏈具有一定公信力的官方橋才采用。
以上均各有優缺,或是怕交易所跑路,或是流動性枯竭,或是公證人私鑰被盜,目前并沒有完美實現不可能三角的跨鏈方案出現。
如下圖是o3swap的流動性總量和交易量趨勢,近半年已然跌去90%,或許是因為去年8月的質押資產被盜案導致不斷式微吧。
《流動性總量與交易量,來自o3swap官網》
聲音 | 證券日報:應正視區塊鏈信息服務備案編號的作用 不可過度解讀:據證券日報4月2日報道,日前,國家互聯網信息辦公室官網發布公告,披露第一批共197個境內區塊鏈信息服務名稱及備案編號。值得注意的是,“備案編號”并不能看做是給區塊鏈披上合法的“黃馬甲”,應正確認識“備案編號”的作用。網信辦表示,備案僅是對主體區塊鏈信息服務相關情況的登記,不代表對其機構、產品和服務的認可,并強調,任何機構和個人不得用于任何商業目的。[2019/4/2]
1.2、Horizon橋的跨鏈原理
Harmony開發的Horizon橋是非常標準的公證人鎖定鑄造型。
為何鎖定鑄造可以被信任呢?
是由于區塊鏈上的合約具有不可更改特性,如果不留后門的話,甚至一旦部署將無任何方式可以影響他的運作,正如無聊猿官方自己將所有權限轉入0地址,放棄所有權后,無任何方式可以進一步鑄造出新的猴子,其流動性總量將被鎖死。
同理的,不同公鏈之間雖然合約不同,但如果在以太坊上用合約鎖住10個ETH,在另一條公鏈上也以同樣有公信力的合約,來釋放10個wETH,這樣一來其實全局上流動性是固定的,只要wETH可以隨時轉回以太坊并兌換得到ETH,那wETH就可以被認為是具有了ETH的等同價值。
因此其核心的操作就是
Lock-and-Mint:A鏈鎖定代幣流動性+B鏈發行等量的可流通包裝代幣
Burn-and-Release:B鏈銷毀包裝代幣+A鏈解鎖等量基礎代幣的流動性
公證人:負責發現A鏈Lock鎖定事件后,去B鏈Mint鑄造出錨定代幣,轉入目標地址。
動態 | 媒體:螞蟻金服成立區塊鏈公司只是事務性公司 不要過度解讀:據上海黃埔2月25日報道,螞蟻金服旗下螞蟻區塊鏈科技(上海)有限公司在黃浦區正式揭牌成立。據了解,除螞蟻區塊鏈科技(上海)有限公司之外,螞蟻金服旗下另一創新企業螞蟻雙鏈科技(上海)有限公司也在同期成立。消息人士稱,螞蟻金服旗下的子公司眾多,而這些子公司往往跟注冊地有關,跟實際負責業務關聯不大。而成立這兩家公司只是屬于事務性的,為了當地辦事方便,不必做過分解讀。(財經網)[2019/2/26]
Horizon橋的流程示意圖,來自官方github
有鎖定自然衡量各個跨鏈橋規模的最佳方式就是TVL,可以顯著看到6.24之后,Horizon的TVL瞬間跌入谷底,當安全事故來臨再多的TVL也就如流水一般,蜂擁而至也一哄而散。
Horizon鏈橋TVL圖,來自dune
2、Horizon橋的合約審計報告解讀
一次事故對很多Web3項目而言,做不到100%安全就基本等于0的價值,因此為了檢查合約的安全性,一般會測試模擬多種攻擊場景,通過checklist進行安全審查,以確保合約安全
開發或許幾天而已,但要足夠可靠則流程多且昂貴
審計報告的核心信息是:風險名稱、漏洞描述、風險等級、安全建議、修復狀態及審計結果等
而Horizon橋的合約審計報告是老牌審計公司PeckShield進行的,發現了5個漏洞風險
分析 | 肖颯律師解讀五部門風險提示:今日,大成律師事務所律師肖颯在其個人公眾號上發文,解讀銀保監會等五部門共同發布的《關于防范以\"虛擬貨幣\"\"區塊鏈\"名義進行非法集資的風險提示》。肖颯表示,風險提示中明確提出\"代為投資,極可能是詐騙活動\"。這句話具有重要的現實立案價值。這就意味著,ETH等也有望成為詐騙罪的犯罪對象,而不僅僅是2013年被定性的特定的虛擬商品一比特幣。也就是說,未來詐騙罪立案的范圍可能會較大幅度擴大,保護的范圍也在擴大。[2018/8/27]
2.1、中低風險點1-兼容不足
是不是很難想象區區3行代碼都能有bug?
其實鎖定token的邏輯很簡單,就是用戶制定金額和目標地址,在授權代扣權限后,合約將USDT轉入此合約鎖定,并發出一個locked事件,讓鏈下的公證人可以得知資產已經被鎖定了。
但PeckShield審計發現LockToken鎖定函數對通縮型token是不兼容的,用戶傳入的amount如果是100,自然Locked事件發出的是成功鎖定100個
但是如果是”通縮型“的token呢?進行safeTransferFrom的過程中amount變少了怎么辦?這就會出現鎖倉額低于B鏈釋放額的風險
可看前文:你買的NFT到底是什么?
標準協議中都會以虛函數為鉤子的方法,在轉移前后增加邏輯,有些token則可能在這里_beforeTokenTransfer增加交易損耗,從而控制流通量實現通縮。
聲音 | EOS pacific創始人解讀EOS憲法2.0:刪減多條目是為仲裁機構減輕壓力:今天,EOS pacific創始人王棟在引力生態峰會上表示,BM推出的憲法2.0版最核心的有以下幾個方面:
1、CODE IS LAW。所有的法律都應代碼化,即使代碼有BUG。
2、BM進一步詮釋合約,把整個合約清晰定義。如果各方理解有不同,才需要仲裁員出現。仲裁機制主要的工作范圍已經大幅度縮小。
3、私鑰的丟失是個人的責任,不是通過仲裁可以解決的問題。
4、在智能合約定義的范圍內,仲裁能冷凍Token的轉移。
王棟還表示,EOS憲法從1.0版的20條減到9條,把很多東西去掉,就是讓Token不要根據自己對憲法的理解套用自己的情形,無限的給仲裁機構施加壓力。[2018/7/15]
當然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:區塊鏈ETHRizonHOR區塊鏈游戲幣拍賣Ethical翻譯Horizon幣fasthorsevictory
本周摘要 -V神通過靈魂綁定代幣分享了他對未來Web3.0的看法。什么是SBT?它將如何改變未來?-dYdX選擇逃離以太坊,并使用Cosmos啟動獨立區塊鏈.
1900/1/1 0:00:006月4日,據區塊鏈瀏覽器TRONSCAN數據,波場TRON賬戶總數達到96,160,208,正式突破9600萬.
1900/1/1 0:00:00如果對行業略顯迷茫,覺得整個市場沒有新的敘事可講,不妨看看孫宇晨和波場在做什么,找找方向,畢竟“敬業狂魔”、熱點制造機的強大做事能力,行業有目共睹。最近,孫宇晨再次出圈.
1900/1/1 0:00:00PocketNetwork將為波卡的去中心化基礎設施提供更廣泛的應用支持。 PocketNetwork(https://www.pokt.network/)是去中心化的Web3基礎設施協議,與領.
1900/1/1 0:00:007月21日,參議員TomEmmer在新聞中表示,美國證券交易委員會仍在積極尋求Crypto公司實體化。TomEmmer認為SEC此舉超越了其管轄權.
1900/1/1 0:00:00據最新消息,SUN.io已于6月7日推出新的2pool(USDT/USDD)礦池,支持USDT、USDD之間的兌換。與此同時,現有的2pool更名為“Old2pool”.
1900/1/1 0:00:00