All posts

HKDAP 穩定幣代碼爆雷?拆解 Blocksec 報告背後的真相與技術盲點

區塊鏈安全機構 Blocksec 最近找到了香港穩定幣 HKDAP 的合約,在查看過源代碼後出具了一份報告。隨後許多幣圈傳媒錯誤解讀成「有 Bug」、「危險」等安全隱患的角度來譁眾取寵地報導。

區塊鏈安全機構 Blocksec 最近找到了香港穩定幣 HKDAP 的合約,在查看過源代碼後出具了一份報告。隨後許多幣圈傳媒錯誤解讀成「有 Bug」、「危險」等安全隱患的角度來譁眾取寵地報導。

本來,因為這個穩定幣目前散戶根本無法直接觸碰,實際運作上也不會有機構或大眾直接用錢包操作,就算傳媒再怎麼誇大,我也沒打算特別撰文。畢竟,純技術細節從來不是大眾最關心的事吧?但我的確擔心,這件事會像之前的各種幣圈假新聞一樣,因為缺乏專業解讀而無限發酵。為了防止Fake News散播,唯有把事情說清楚。

標題至少能嚇到官員和相關公司高層了吧?說香港第一、香港最大、最高市值且持牌的穩定幣 HKDAP 竟然「NOT READY」,這到底是不是真的?(畢竟香港目前也只有這一隻穩定幣,最好最壞都是它了。)

以下我們先還原報告中指出的三大狀況:

1. 合約代碼來源:僅為 Beta Access

雖然新聞都寫著 8 月正式推出,但被抓出來檢視的合約其實是在 Anchorpoint 官網 Beta Access 處找到的。既然標籤為 Beta,很多細微的問題在開發階段是有轉圜餘地的。這不能說是狡猾,畢竟智能合約語言 Solidity 發展到今天,甚至連 1.0 版本都還沒到。

2. KYC 與權限控制相關的 3 個漏洞

眾所周知,香港的穩定幣法案要求「所有」持有穩定幣的用戶,都必須經過 KYC(實名認證)。報告中指出的 3 個 Bug 主要集中在此:

權限註銷漏洞(2 個):在註銷(Delist)用戶的功能上存在邏輯問題,導致原本控制 KYC 的機構,即使其審核權限已經被取消,卻仍然可以任意登記或取消用戶資格。

轉帳上限繞過(1 個):針對非 KYC 用戶,合約設有一個單次的過數上限 freeTransferLimit。這與金管局(HKMA)的本意有些出入,意味著不 KYC 也能使用穩定幣,只是每次受限於該金額。但由於代碼沒有設定「時限」或「總額」限制,用戶完全可以將大筆資金拆分成無數筆小額轉帳來繞過限制。

3. 過度中心化的單點控制

報告指出,發行、註銷、凍結穩定幣,以及暫停穩定幣正常運作等核心功能,目前都是由「單一錢包」控制。一般而言,為防止人為出錯或駭客攻擊,穩定幣的控制權必須採用多重簽名(Multi-sig),這也是 HKMA 的要求,目前的做法顯然不達標。

然而,正如我前面所說,絕大部分使用 HKDAP 的用戶根本不會透過自己的錢包去操作穩定幣,所有轉帳都由機構代行。因此,機構內部的中心化問題對終端用戶的直接影響不大;反而是機構本身如果缺乏充足的風險認知,隨時會背上黑鍋。說到底,穩定幣本來就是中心化的產物,在香港的嚴格監管下,穩定幣與傳統 FPS(轉數快)在底層邏輯上的分別,並沒有大眾想像得那麼大。

我的意見與 6 個關鍵觀察

撇除媒體的 FUD(恐懼、不確定、懷疑),從技術與行業發展的角度來看,這份報告真正暴露出的是開發流程與架構選擇上的問題:

1. 沒有採用久經考驗的 OpenZeppelin 實作 ERC20 標準已經在幣圈使用多年,經歷過無數駭客攻擊的洗禮,其開源代碼(尤其是 OpenZeppelin 的標準實作)早已滴水不漏。正常的開發流程應該直接 Clone 來使用。但 HKDAP 竟然選擇重新寫一次。這次被發現的 Bug,主因就是放棄了成熟的開源代碼,硬要自己「造輪子」。

2. 忽視了更先進、更合規的 ERC3643 標準 ERC20 只是幣圈最原始的代幣標準,本身並沒有 KYC、KYT 或機構管理的概念。簡單來說,ERC3643 就是內建了 KYC 和監管功能的升級版代幣標準,是專為真實世界資產(RWA)和合規穩定幣量身訂做的。 在 ERC3643 中,KYC 撤銷、驗證者註銷等邏輯都有標準且經過審計的實作。開發團隊完全不需要自己手寫容易出錯的 Linked-list 或 freeTransferLimit,治理上也可以直接沿用標準的 AccessControl + Timelock,根本不需要自行從零建構多簽機制。

3. 審計流程的缺失與忽視 AI 輔助 一個背負「香港首個持牌穩定幣」光環的項目,為何會在官網放上一個未經嚴謹外部獨立審計的 Beta 合約?此外,在 AI 時代,代碼審計早已由 AI 深度輔助。Blocksec 的報告明顯是透過 AI 協助才精準抓出這些邏輯漏洞。作為一個自稱世界金融中心、Web3 中心、AI 中心的香港,在第一次上線穩定幣時竟然沒有善用 AI 工具進行防錯,確實令人失望。

4. 傳統金融轉型 Web3 的技術包袱 寧願自己寫也不用 Open Source,這是傳統金融機構轉型 Web3 時常有的技術包袱。傳統思維總認為「自己機房的 Server 比雲端安全」、「自己寫的 Code 比抄來的安全」。但在區塊鏈的世界裡,多一行自己手寫的 Code,就等於多開了一扇風險之門。Linux 和各大 Cloud Provider 早就證明了開源的安全性。習慣閉門造車而忽視開源社群的力量,對日後大規模應用的安全性來說,是一個危險的信號。

5. 合約具備可升級性,問題其實不大 HKDAP 的合約是 Upgradable(可升級的),並且已經升級過一次。加上目前仍是 Beta 階段,在嚴謹的機構入網程序和極少數用戶的封閉環境下,這些漏洞都不算致命傷,後續完全可以修補。因此,坊間所有無限放大 HKDAP 安全隱患的報導,多少都有點誤導且無必要。

6. 需具備專業識讀能力來看待安全報告 Blocksec 的報告並非 Anchorpoint 或 HKMA 付費委託的,這在幣圈是常態——任何人都可以在開源代碼中找漏洞。但作為一家安全機構,主動出具報告多多少少帶有 PR 目的,期望透過公眾傳播來提升知名度,甚至藉此拿下 HKDAP 的審計生意。在這種前提下,解讀報告更需要技術底子;如果傳媒缺乏專業知識,很容易就會得出偏頗、甚至製造恐慌的結論。

總結來說,作為香港 Fintech 圈的一份子,我希望後續 Anchorpoint 能夠積極採納安全機構的建議,盡快修補問題。當然,最好也能將上述的技術建議聽進去:擁抱 Open Source,善用成熟的標準合約。這不僅能讓代碼更安全,大家日後的推進工作也會順利得多。

原文刊於 X:https://x.com/i/status/2091508975653261785

Discussion

No comments yet