XRP Ledger 自2015年起隱藏「鑄幣」漏洞 開發團隊現正式披露

A payment engine flaw in the XRP Ledger, present since 2015, could have let attackers mint spendable XRP past its 100 billion cap (Image: Shutterstock)
A payment engine flaw in the XRP Ledger, present since 2015, could have let attackers mint spendable XRP past its 100 billion cap (Image: Shutterstock)

XRP Ledger 支付引擎自2015年起潛伏一個嚴重設計漏洞,理論上可讓攻擊者鑄造額外、可自由支出的 XRP (XRP), 完全突破原本1,000億枚的總供應上限,相關開發人員近日披露事件詳情。

重點摘要:

  • 一名研究員利用人工智能保安工具發現溢位錯誤,並於9月22日透過網絡的臭蟲懸賞計劃提交報告。
  • 開發團隊在3日後推出修補更新,為逾十年來首次跳過常規的驗證者表決程序。
  • 維護團隊暫未發現有人實際利用該缺陷牟利。

XRP「偽幣」漏洞詳情

XRP Ledger 維護團隊在10月9日發表漏洞披露報告,指9月22日收到一名研究員 透過平台臭蟲懸賞計劃提交的通報。Ripple 的開發部門 RippleX 在成功重現攻擊後,將其定性為「極度嚴重」漏洞,但表示暫未找到任何被利用的證據。

問題出在支付引擎的設計:系統在處理單一付款同時撮合多條訂單簿報價時,使用了未經檢查的64-bit整數運算,以累加買家應付總額。

研究指,若有黑客部署數以百計「刻意離譜定價」的訂單,就可以把這個累計金額推高至超出數值上限,觸發整數溢位並「繞回」到一個極細的數字。 結果是賣家按原價收足款項,而買家實際只付出接近零成本。由於帳本內用來檢查是否鑄造新XRP的安全機制,同樣依賴這組數學運算, 因此最終完全偵測不到這批「偽幣」。

延伸閱讀: GPT-6.1 Sol 協助 Asana 將代理成本壓低76倍,但代價是甚麼?

廖凱登拆解攻擊手法

Veria Labs 安全聯合創辦人 廖凱登(Cayden Liao) 在 X 上撰文 指出, 其公司的AI代理工具成功找出這個漏洞,並構建出一個可行的攻擊樣本。按其估算,單一交易理論上可鑄造約18萬億枚XRP。

他相信漏洞多年來未被發現,是因為「它其實是兩個各自嚴重程度不高的錯誤串連起來,才演變成致命問題。」

廖凱登透露,Ripple最終向 Veria 支付了計劃上限25萬美元的懸賞獎金。RippleX 工程主管 J. Ayo Akinyele 則表示,團隊未來會進一步擴大 AI輔助尋找漏洞及形式化驗證(formal verification)的應用,強調人工智能「正從根本上改變發現軟件漏洞的速度」。

XRPL 緊急修補 史上罕見跳過表決

是次修補以 xrpld 3.4.1 版本於9月25日推出,即漏洞獲報三日後。當日已有逾八成「受信任驗證者」完成升級,更新隨即生效,過程未按傳統機制 進行為期兩週的修訂(amendment)表決,屬逾十年來首見。

開發人員解釋,若依照開源常規流程,先公開修訂代碼再等待表決通過,等同把漏洞細節「攤開」予潛在攻擊者,讓其有數星期時間研究並利用, 風險過高,因此決定以非常程序處理。

事實上,加密貨幣歷史上並非首次出現類似「鑄幣」事故。早在2010年,一個 Bitcoin (BTC) 溢位錯誤 曾在單一交易中意外產生逾1,840億枚比特幣, 開發者其後在數小時內修補並透過分叉把多鑄的幣全部抹去。今年較早時,Zcash (ZEC) 也曾緊急堵塞一個 可能導致偽幣的缺陷,消息一出令其代幣價格急挫。

下一篇: 法國加密資產持有人隱報錢包 或面臨最高一萬歐元罰款

Ester Shlain profile photo

Ester Shlain

Yellow 的業務分析師,專注交易機制、具代理能力的基建,以及加密貨幣交易所技術棧的市場研究。在 Web3 領域有七年經驗,涉獵 DAO 平台、啓動平台(launchpad)及代幣經濟學設計。為想要理解敘事背後數據的人而寫作。

免責聲明及風險提示: 本文資訊僅供教育與參考之用,並基於作者意見,並不構成金融、投資、法律或稅務建議。 加密貨幣資產具高度波動性並伴隨高風險,可能導致投資大幅虧損或全部損失,並非適合所有投資者。 文章內容僅代表作者觀點,不代表 Yellow、創辦人或管理層立場。 投資前請務必自行徹底研究(D.Y.O.R.),並諮詢持牌金融專業人士。
XRP Ledger 自2015年起隱藏「鑄幣」漏洞 開發團隊現正式披露 | Yellow