一句話總結
FCMP++ 把 Monero 16 個誘餌的環簽,換成一個零知識證明,這個證明說的是「我正在花費的這個輸出,是在這個巨大集合裡某一個」,而集合涵蓋鏈上每一筆可花費輸出。一般使用者看不到變化——還是同樣的錢包、同樣的 UX、同樣的 XMR。但底層上,匿名集從 16 漲到上千萬,而且好幾種長期存在的誘餌選擇攻擊全部失效。
為什麼誘餌環簽該被退役
環簽是 2016 年的聰明設計:把你真正的花費藏在誘餌之間,逼驗證者必須把每個誘餌都當成可能的真實。問題在於誘餌選擇是啟發式的——錢包依據鏈齡、最近性曲線和其他訊號挑出誘餌。研究者已展示一連串攻擊,能把機率拉離 1/16:
- EAE(Eve-Alice-Eve)攻擊——追蹤你充提的交易所,可以把你的真實花費透過交叉雙端來縮小範圍。
- 誘餌分布不一致——如果你的錢包用了跟網路平均稍微不同的選擇曲線,真實花費會在統計上突出。
- 偏好較新輸出——真實花費在統計上比較容易是環裡最新的那個;鏈分析廠商利用這點。
這些單獨都不會打破 Monero,但在敵手條件下,會把 1/16 的下限侵蝕到 1/4 甚至更糟。社群多年來一直在加大環數量、改進誘餌選擇;FCMP++ 是結構性的修補。
FCMP++ 實際怎麼運作
FCMP 是 Full-Chain Membership Proof(全鏈成員證明)。花費者不再隨機挑 15 個誘餌,而是產出一個簡潔的零知識證明,斷言「這個 Merkle 樹承諾的集合裡,有一個輸出是我擁有花費鑰匙的那個」。集合是對 Monero 區塊鏈從分叉高度起每一筆可花費輸出的承諾。
「++」是 Luke「kayabaNerve」Parker 在 2024 年提出的特定構造——一個 Bulletproof+ 風格的證明系統,配上代數群作用的承諾方案,驗證快、證明小到能塞進 Monero 區塊裡。早期的全鏈方案(Seraphis、Lelantus、RingCT-Spark 變體)若不是 tx 太大、就是驗證太慢;FCMP++ 是第一個對主網足夠便宜的提案。
你花費的輸出在密碼學上與整個可花費集合無法區分。再也沒有「環大小」這件事;匿名集就是整條鏈。
一般使用者會感受到的變化
幾乎看不到變化。你還是:
- 用相同方式打開 Cake / Feather / Monero GUI
- 產生相同類型的地址 + 子地址
- 付相同的手續費(邊際略低——證明更精簡)
- 等相同的約 20 分鐘 10 確認
你不再需要操心的事:
- 錢包的誘餌選擇品質(「我的錢包挑誘餌挑得對嗎?」的焦慮消失——沒有誘餌了)
- 「Churning」——把資金反覆轉給自己以擴大有效匿名集。匿名集已經是最大了。
- 擔心環大小升幅在時間上收緊。FCMP++ 沒有環大小。
同行的 Carrot — 地址方案升級
FCMP++ 會跟 Carrot 一起出貨,這是新的地址 + 掃描方案。Carrot 處理的是另一個問題:目前 view-only 錢包的運作方式下,拿到你 view key 的攻擊者,可以看到你地址上所有的收款。Carrot 重新設計密碼學,讓 view-only 錢包能看到收款,卻不用一把總鑰匙——也就不會同時揭露整個帳戶歷史。
實際效果:把 view key 交給稅務會計、整合付款的開發者、或某個唯讀的手機 App,不再是永久單向的揭露。Carrot 的 view-key 可被限縮、輪換、無歷史隱私損失地揭露。
Carrot 還帶來視圖標籤(view tags)——每筆交易上的小提示,能讓錢包掃描跳過鏈上大部分內容。結果是:慢裝置上的同步時間大幅下降,特別是從種子恢復的新錢包。
引擎蓋下(不好奇可以跳過)
- 證明大小:每個輸入約 2 KB(vs 目前 RingCT-Bulletproofs+ 約 1.5 KB)。每筆 tx 額外負擔略增。
- 驗證成本:批次驗證下,每輸入比目前環簽快。節點驗證區塊在網路層面更快。
- 錢包同步:Carrot 的視圖標籤讓掃描跳過約 95% 的輸出。從種子恢復 5 年的錢包,在手機上會明顯變快。
- 修剪節點相容:保留——相對鏈資料,Merkle 承諾很小。
- 僅硬分叉部署:沒有「軟」FCMP++;每個節點都必須在分叉高度升級。
時程(會變動 — 最後檢視 2026-05-18)
FCMP++ 在積極工程中,撰稿時還沒上測試網。Luke Parker 與 Monero Research Lab 的最佳公開估計:
- 2026 Q2-Q3:參考實作 + 測試網
- 2026 Q4 / 2027 Q1:主網硬分叉——最早可能視窗
- Carrot:通常與同一次分叉綁定(程式路徑分開,發行版相同)
日期以前也移動過。MRL 的 Issues 追蹤是權威來源。看 monero-project/research-lab 與 monero core repo 了解工程里程碑。
現在該做什麼
- 沒有急迫的事。你的 XMR 會自動跟著分叉走。錢包負責遷移,你不需要動鑰匙。
- 分叉接近時,追蹤你錢包的更新日誌——Feather、Cake、Monerujo、Monero GUI 都會標示 FCMP++/Carrot 版本。分叉高度前更新,不要拖到後面。
- 若你公開過 view key(捐款地址、業務唯讀存取),預期在 Carrot 之後需要更新它。把這當成一次性家務事安排,不是緊急狀況。
- 不要先發制人地 churn。FCMP++ 啟用後,匿名集上限已經拉滿。在分叉前或後花費——升級後的隱私一樣。
放在更大的隱私技術版圖裡
其他隱私鏈走不同路:Zcash 用 zk-SNARKs(證明較小、隱私是 opt-in、有可信設置),Mimblewimble 鏈(Beam、Grin)用不同的承諾模型,比特幣的 CoinJoin 家族是在透明鏈上的 opt-in 混合,Lelantus-Spark(Firo)是 Monero 風格的 ZK 路徑,使用不同的證明系統。FCMP++ 是 Monero 在說「我們不會切到 zk-SNARK 或可信設置領域;我們要把既有的『預設即隱私』模型,擴展到可能最大的匿名集」。並排見 FCMP++ 與其他隱私技術。
權威來源
FCMP++ 主要是 Luke「kayabaNerve」Parker 的工作,由 Monero Research Lab 同行審查。本篇是 xmr.club 的白話版本;想看正規來源請從這幾處開始:
- Luke Parker 在 getmonero.org 上的FCMP++ 技術說明
- MRL Issues 追蹤看工程討論串
- Monero Observer看週度進度摘要
xmr.club 不取代上述任何一個作為密碼學來源。我們的角色是把研究翻譯成「對今年持有 Monero 的人,這代表什麼?」。要看數學請追 Luke 的文章。