EOS 去中心化交易所 Newdex 本月上週爆出「假 EOS」刷幣事件,造成用戶價值 11,803 個 EOS 的損失 (時價約 6 萬美元),交易所 Newdex 全盤承擔損失。
事件始末
EOS 帳戶「oo1122334455」於 9 月 14 日於 EOS 主網發行 10 億個名為「EOS」的冒名代幣,多次轉換至帳戶「iambillgates」後,在去 EOS 中心化交易所 Newdex 上成功交換了 IPOS 、 BLACK 、 IQ 和 ADD 代幣。
帳戶「iambillgates」首先是嘗試性地用一個假「EOS」掛單成功買入 IPOS 和 ADD 代幣。之後變開始展開大規模的攻擊,分多筆共 11,800 個「假 EOS」以市價購買 BLACK 、 IQ 和 ADD 代幣,並全數交易成功。
得手之後,隨即轉入「xx1234512345」與「x12345x12345」帳戶,最終賣得 4,028 個「真實 EOS」。
去中心化交易所 Newdex 在攻擊一個小時逾後停止相關服務,緊急修復後恢復正常營運。不過在停止服務之前,攻擊者已將非法獲得的 4,028 個「真實 EOS」轉入中心化交易所「Bitfinex」,用「假 EOS」換得的剩餘代幣,則留在「xx1234512345」帳戶中。
Newdex 官方完整公布始末,並表示:
Newdex 認為駭客的此次行為嚴重破壞 EOS 生態的穩定,表示強烈譴責,Newdex 將會進一步追查駭客的資訊,並追究駭客行為。
雙重問題點:代幣名稱 + 假去中心化交易所
- 自由創建代幣 可重複命名
在 EOS 、以太坊這樣的公鏈上,都能用智能合約創建代幣,並且自由命名。既有了 EOS,再度命名新的代幣為「EOS」也無仿,包含你想要創建名為「ETH」的代幣也可行。
判別真偽的方式就是「智能合約地址」,每個代幣項目都有一個獨有的智能合約地址,這是不能重複與偽造的。
這件事在 Newdex 出現了漏洞,從結果看來,它的系統並沒有區別真偽代幣的能力。
- 假去中心化交易所
在事發前一天,論壇 reddit 上才出現名為「勿相信 Newdex 為去中心化交易所,他們甚至沒有智能合約,也為公開其中心化搓合伺服器的開源代碼」討論串。
reddit 帖主 0xFF810000 提出四大疑點:
- Newdex 不使用智能合約搓合交易, 而是用中心化伺服器處理所有鏈下訂單。
- Newdex 根本沒有智能合約在處理交易,用戶只是在交易時將資金轉入該交易所的所屬 EOS 帳戶,再由其處理交易。
- 因資金不在智能合約中處理,用戶無法查看搓合訂單的原始代碼,以及檢視交易安全性。假設交易所的密鑰被盜,所有交易用戶都會受損失。
- 該交易所使用相同的密鑰管理交易活動,也因此只要一個密鑰被盜,就會影響全體用戶。大多的交易所至少會使用多個錢包管理。
Newdex 網站上的宣傳「智慧合約鏈上存儲」(圖一),對比這次遭攻擊事件與 reddit 帖主 0xFF810000 所得到的「無智能合約」官方回應 (圖二),讓無辜的交易用戶在茫茫交易所海中更加無所適從。