資產與風險

儲備證明是什麼?能證明什麼、不能證明什麼,以及怎麼自己核對餘額

儲備證明只說明某個快照時點,交易所持有的幣夠不夠支付帳上欠用戶的數量,以及你的帳戶有沒有被算進去。看懂準備金率、zk-SNARK 補了什麼,並以 Binance 為例自己驗一次。

儲備證明是什麼?能證明什麼、不能證明什麼,以及怎麼自己核對餘額

儲備證明(Proof of Reserves,常縮寫為 PoR)回答的是一個很窄的問題:在某一個快照時點,交易所持有的某種幣,夠不夠支付它記錄在帳上、欠所有用戶的那種幣;而你的帳戶有沒有被算進那筆「欠用戶總額」裡。

它不回答的問題同樣重要:快照之後資產有沒有被挪走、交易所有沒有帳外的其他負債、你現在能不能順利提領。把 PoR 看成「某月某日的一張對帳單」,而不是保險或即時擔保,後面的內容就好理解了。

一份儲備證明由兩半組成

資產端:交易所公開它控制的錢包地址或鏈上餘額,說明「我手上有多少幣」。

負債端:交易所把每位用戶在快照時點的餘額做成一棵默克爾樹(Merkle tree),公布樹根的雜湊值。每位用戶拿到自己那一片葉子和通往樹根的路徑,就能自己算一次,確認「我的餘額真的在這棵樹裡,而這棵樹加總出來就是公布的總額」。

兩半缺一不可。以太坊共同創辦人 Vitalik Buterin 在 2022 年談交易所償付證明的技術文章裡指出:只有負債端的證明,完全沒有說明資產;交易所可以一個幣都沒有,負債證明照樣成立。反過來,只秀錢包餘額而不公開負債,你也不知道那些幣夠不夠還。

準備金率怎麼讀

交易所通常會按幣種公布一個比率:

準備金率 = 交易所持有的該幣數量 ÷ 用戶在帳上的該幣淨餘額

教學示例(數字為假設,只用來說明算法):某交易所快照時用戶合計持有 10,000 BTC 淨餘額,它的錢包裡有 10,300 BTC,準備金率就是 10,300 ÷ 10,000 = 103%。

讀這個數字時留意三件事:

  • 看幣種,不看總額。總資產換算成美元後超過 100%,不代表每一種幣都超過 100%。你持有哪一種,就看哪一種的比率。
  • 「淨餘額」扣掉了借款。有槓桿或借貸的用戶,算進去的是扣除負債後的部分,所以你在帳戶裡看到的某個數字,未必等於被計入的數字。
  • 它是快照。比率只描述快照那一刻。

zk-SNARK 版本多證明了什麼

單純的默克爾樹有一個漏洞:交易所可以塞進幾個餘額為負數的假帳戶,把總額壓低,而一般用戶只看得到自己那片葉子,看不出來。

Binance 目前的做法是在默克爾樹之外加上 zk-SNARK(一種零知識證明)。它公開的電路設計文件列出了電路會強制檢查的條件,包括:每位用戶的抵押品必須足以覆蓋其負債、各幣種的權益與抵押品關係成立、所有用戶的權益、負債與抵押品加總必須等於交易所公布的總數。這份文件也說明了它要防的「假用戶攻擊」:用低市值幣種的權益去抵銷高市值幣種的負債,讓儲備悄悄從好賣的幣換成難變現的幣。

換句話說,zk-SNARK 補的是負債端的可信度;資產端是否真實、有沒有帳外負債,仍然不在它的證明範圍內。

以 Binance 為例:自己核對帳戶有沒有被計入

下面的步驟整理自 Binance 幫助中心〈如何在幣安驗證您的帳戶餘額〉(本文查閱時頁面標示更新於 2026-08-06)。選單名稱會隨版本與地區調整,以你看到的畫面為準。

Binance 幫助中心「如何在幣安驗證您的帳戶餘額」頁面,列出每月 1 日 UTC 快照、7 日前公布結果,以及各版本驗證工具對應的 PoR 驗證週期表

快照時間:每月 1 日 00:00:00(UTC)對用戶餘額拍快照,結果在同月 7 日前公布。換算成台灣時間是 1 日早上 8 點。

  1. 下載對應版本的驗證工具。工具放在 Binance 的 GitHub 倉庫 zkmerkle-proof-of-solvency 的 Releases 頁。上圖的表格很關鍵:不同快照週期要用不同版本,例如 2026-08-01 之後的週期用 1.2.1,2026-06-01 到 2026-07-01 用 1.2.0。拿舊版本驗新快照,失敗不代表你的資產有問題。只從官方倉庫下載,不要用群組或私訊傳來的「驗證工具」。

    GitHub 上 binance/zkmerkle-proof-of-solvency 倉庫的 Releases 頁面,最新版本 v1.2.1 標示為 Latest,更新說明為增加 700 種資產的支援

  2. 找到你的驗證資料。登入後依序點「個人檔案 → 錢包 → 驗證」,展開驗證資料,找「驗證類型」為「Merkle Tree + Zksnarks」的那一筆,點「下載默克爾樹」存到電腦。

  3. 驗證樹根。按官方說明把 config.json、proof.csv、zkpor864.vk.save 放進驗證工具的 config 資料夾,然後執行對應系統的程式:Windows 是 verifier_windows_amd64.exe,macOS 是 verifier_darwin_amd64,Linux 是 verifier_linux_amd64。這一步確認的是公布的總額與整棵樹一致。

  4. 驗證你自己的帳戶。把快照時為你帳戶生成的 user_config.json 放進同一個 config 資料夾,執行同一個程式並加上 -user 參數。這一步確認的是你的那片葉子確實在樹裡。

在 Windows 的 PowerShell 裡執行時,要寫成 .\verifier_windows_amd64.exe -user。

怎樣才算核對完成

  • 兩個指令都通過,沒有報錯。
  • 你打開 user_config.json 看到的餘額,和你自己記錄的快照時點餘額一致。

第二點要換算單位。官方頁面說明,檔案裡的資產餘額多數以 10^8 為單位(少數代幣用 10^2),權益、負債、抵押品的總值以 10^16 為單位。教學示例:檔案裡某個 BTC 欄位顯示 50000000,除以 10^8 就是 0.5 BTC。

對不上的時候按這個順序查

  1. 你是不是拿現在的餘額去比? 快照是每月 1 日 UTC 零點的數字,這一個月內的買賣、入金、提領都不會反映在裡面。官方頁面本身也寫明報告不是即時資產。帳戶裡「看到的數字」和「實際能動用的數字」本來就可能不同,美元估值與可提領金額的差別有更完整的說明。
  2. 工具版本和快照週期對得上嗎? 回到上面的表格核對。
  3. 你的資產放在哪個帳戶或產品裡? 現貨、資金帳戶、理財、合約保證金是分開記帳的,借款會從淨額扣掉。先弄清楚錢到底在哪一格,可以參考現貨、資金帳戶與 Binance Wallet 的差別。哪些產品會被計入,以官方的說明為準。
  4. 都排除了還是不一致:保留下載的原始檔案和執行結果截圖,從官方網站的客服入口提交,說明快照日期、幣種、你記錄的數字和檔案顯示的數字。驗證檔包含你的帳戶識別資訊,不要貼到公開群組,也不要交給主動私訊你、自稱能「幫你查資產」的人。

儲備證明不能替你擋掉的風險

幾個結構性限制值得記住:

  • 只是一個時點。資產可以在快照前借進來、快照後還回去。
  • 資產端證明不了「這些幣沒有別人的債權」。幣在錢包裡,不代表沒被拿去抵押或借出。
  • 帳外負債看不到。證明只涵蓋交易所記在用戶帳上的負債,公司其他借款、營運債務不在範圍內。
  • 靠用戶抽查才有效。前面引用的 Vitalik 文章提到,如果交易所確信某些帳戶的主人永遠不會去驗證,理論上就有空間動手腳,所以每個人自己驗一次是有意義的。

實際上可以這樣用儲備證明:把它當成挑選交易所時的一個篩選條件,也在每月公布後抽空驗一次自己的帳戶。但它不等於存款保險,不保證你隨時能提領。如果有一筆幣你打算長期不動,也不需要在交易所交易,自己保管私鑰是另一個選項;轉出前要核對網路、地址和小額測試,步驟見加密貨幣提領完整教學。