嗨,早!
上週發生一起歷史性的加密貨幣竊案,受到全球媒體的高度關注。不僅失竊金額創下歷史新高,事件的峰迴路轉更是堪比電影情節。
雖然遭竊的加密貨幣在 2 天後全數失而復得。但身份未知的駭客,至今仍不斷收到各方的加密貨幣「捐款」。這篇文章會先介紹被駭的 DeFi 應用 Poly Network 是什麼,再以鏈上數據還原當時社群與駭客的攻防,最後討論這起竊案的啟示。
Poly Network
2018 年,日本第二大交易所 Coincheck 被駭的新聞震驚全球。當時 Coincheck 被駭走價值 5 億美金的加密資產,成為史上失竊金額最高的加密貨幣竊案。
這次的苦主不是中心化的交易所,而是去中心化的 DeFi 跨鏈協定 —— Poly Network。它的功能是以去中心化的方式,替用戶將加密貨幣從 A 區塊鏈轉移到 B 區塊鏈,全程不必透過中心化的交易所就能完成。
根據網站敘述:
Poly Network 的用途是實現跨鏈之間的互聯互通。只要是 Poly Network 支援的區塊鏈,彼此都可以透過公開、透明的機制相互轉移資產。目前支援的區塊鏈包含:比特幣、以太坊、幣安智能鏈、Polygon、Neo、Ontology ....
DeFi 玩家未必聽過 Poly Network,但對它的功能肯定不陌生。它就是俗稱的橋(bridge),用來連接彼此不互通的區塊鏈。
舉例來說,鏈上遊戲 Axie Infinity 建立在獨立的 Ronin 區塊鏈上。進入遊戲之前,玩家得先將加密貨幣存入 Ronin 區塊鏈,才有錢購買精靈、開始遊戲。偏偏幾乎沒有中心化的交易所支援 Ronin 區塊鏈的資產提領。這時玩家就得透過去中心化的「橋」,才能將個人資產轉移到 Ronin 區塊鏈上。
真實世界的橋樑通常是連接兩地,而 Poly Network 這座數位的橋,共連接 12 種區塊鏈。這讓 Poly Network 儼然成為轉移資產的交通樞紐,也就自然引來駭客覬覦。
尤其 Poly Network 的運作方式,並不是實際將用戶的資產轉移到另一個區塊鏈。而是像銀行跨國轉帳,實際上不會有鈔票搭飛機跨國移動。只要兩家銀行在彼此帳本上增加一筆資產與負債的交易,就能完成跨境匯款。
Poly Network 就像是一家在不同區塊鏈上都有設有據點的「銀行」,滿足人們跨鏈轉帳的需求。此外,為了確保每筆跨鏈轉帳都能如期到帳,Poly Network 帳戶內都得存放相當規模的資產才行。也因此,讓這起竊案的金額創下歷史新高。
竊案發生
Poly Network 的跨鏈轉帳功能完全是由智慧合約執行。如果沒有充分檢查,程式碼的漏洞(bug)就成為駭客眼中的「功能」(feature),順著操作就能把資產領走。
根據資安公司的事後分析,駭客雖然有嘗試暴力破解,但大致上是循著既定功能就成功地將 Poly Network 的金庫保管者(keeper)替換成自己人,把資產領走。
下圖的鏈上數據就清楚地記錄案發當時的情況。駭客的錢包在發動攻擊的 3 分鐘左右,就陸續收到各式加密貨幣,總價值 6.1 億美金。
這些數據都是即時公開在網路上。在安全機制觸發、媒體報導之前,許多專門監控鏈上大額交易的機器人就已經自動通知投資者、開發者和用戶了。只是鏈上的大額交易通知每天都有成千上百則,因此這幾筆異常交易並沒有馬上被注意到。
一直到事發後 2 小時,Poly Network 才在推特上宣布智慧合約被駭。Poly Network 公布駭客地址,呼籲礦工不要處理駭客的交易,並通知各大交易所將駭客地址列入黑名單。
這已經算是加密貨幣被駭之後的標準作業流程。
區塊鏈上的金流無法像銀行一樣凍結帳戶、逆轉交易,因此只能轉而呼籲礦工、交易所幫忙圍堵駭客。理想上,只要全球礦工都不打包由特定地址發出的交易,效果就等同於凍結帳戶。交易所則是第二道防線,阻止駭客藉此變現。
幣安、OKEx 交易所馬上響應。鏈上數據查詢網站 Etherscan 也替駭客地址加上 PolyNetwork Exploiter 標籤,提醒用戶。
就在人們奔相走告、苦思因應對策之時,駭客的地址忽然開始移動了。他打算將 3 種美金穩定幣 DAI、USDC 和 USDT 放入去中心化交易所 Curve 內提供流動性,卻連續幾次嘗試都失敗。
幾分鐘後,駭客地址收到了一筆來自 hanashiro.eth 的交易。轉入的金額是 0 元,只見交易的備註欄位留下了兩句話:「不要使用 USDT 代幣,你已經被列入黑名單了。」
原來,USDT 的發行商 Tether 已經響應圍堵行動,啟用事先寫好的黑名單功能,凍結駭客手上的 3,300 萬美金等值的 USDT。這等於是宣告那些 USDT 成了「廢紙」。儘管 USDT 仍然在駭客的地址裡,卻無法再用來交易了。
不過駭客仍然成功地將 USDC、DAI 轉入去中心化交易所 Curve 內。顯見礦工並沒有響應 Poly Network 的圍堵行動,才讓駭客手上的資產得以持續流通。
令人意外的是,駭客竟然轉了一筆 13.37 顆 ETH(約 4.2 萬美金)給剛剛這位通風報信的 hanashiro.eth 網友當成「獎勵」。這讓其他人馬上群起效尤,至今共有約 1,500 筆的小額交易轉入駭客地址,期待也能收到「回禮」。甚至還有網友自稱是黎巴嫩難民,向駭客乞討。
網友的錢有去無回,倒是駭客得到了新靈感。
駭客把鏈上的交易備註欄位當成是公告欄,以自問自答的方式寫了一大篇 Q&A。先是解釋為什麼要攻擊 Poly Network、為什麼要轉錢給那位網友,接著還向事件的受害者道歉,承諾會退還所有款項,最後呼籲大家捐款到他的另一個地址。
至今他的地址已經獲得 1.6 萬美金等值的加密貨幣捐款。
駭客在寫完公告後的數小時內也兌現承諾,將手上 5.8 億美金等值的加密貨幣分批歸還至 Poly Network 的指定地址。只剩那些被凍結的 3,300 萬美金 USDT 無法移動。這算是整起被駭事件中最峰迴路轉的環節。
隨著事件走向尾聲,大家事後檢討,原來連像 Poly Network 這種不算知名的 DeFi 應用,失竊金額都能輕鬆打破中心化交易所的歷史紀錄。一方面這顯示 DeFi 的快速崛起,卻也凸顯加密貨幣在緊急應變機制上的不成熟。
圍堵取代凍結
根據統計,整體 DeFi 市值目前約為 1,470 億美金。其中規模最大的去中心化借貸服務 Aave 就佔了 137 億美金,而且共有 28 款 DeFi 應用的市值超過 10 億美金。如果這些應用不幸被駭,「破紀錄」一點也不是新聞。
偏偏目前最有效反制駭客的方法,竟是仰賴推特發文,呼籲所有人圍堵。或是靠 Tether 公司以中心化的方式凍結加密貨幣,控制損失。可見去中心化的應用,目前仍缺乏一套緊急應變機制。
許多交易所都會購買由 Ciphertrace 或 Elliptic 等公司提供的加密貨幣反洗錢服務。它們就像電腦的防毒軟體,會自動辨別有問題的金流,並通知交易所。即便不用隨時盯著社群動向,也可以知道哪些是贓款。
但這套工具對於分佈在世界各地的礦工、開發者來說卻不適用。因此礦工 Ethermine 在不知情的狀況下成了「幫兇」,而 Curve 去中心化交易所也意外變成駭客藏匿贓款的溫床。
此時,網路上開始出現「最終還不是要靠中心化解決」的聲音。但我認為如果全球礦工、開發者都能在第一時間判別贓款的話,或許就更有機會以去中心化的方式圍堵駭客的帳戶。
凍結資產是人們最熟悉的方式,但也是中心化的方式。長期而言,就會演變成當今社群平台內容管理的困境,衍生出「誰說了算」的治理爭議。尤其凍結資金的嚴重性遠高於禁止發言。而去中心化圍堵的難度雖然更高,卻可能會是更加民主、更能保障人權的新解方。
區塊勢是由讀者付費訂閱來維持營運的獨立媒體。如果你覺得區塊勢的文章不錯,歡迎你分享這篇文章或是成為付費會員支持我們走得更遠 🙏
此外,也請大家推薦區塊勢給親朋好友。若想查閱區塊勢過往的出刊內容,可以參考文章列表。有鑒於常會有讀者寄信來問我推薦碼,因此我將它們整理成一頁。歡迎大家使用。