WBTC.VN – Wrapped Assets & Cross-chain Trust 🔗 ZRO.VN
Xác Minh · Solvency · Merkle · ZK

Proof-of-Reserves Là Gì?
Attestation, Merkle PoR và ZK-PoR

3 Phương Pháp · FTX Paradox · Hướng Dẫn Tự Verify WBTC On-chain
🔗 WBTC.VN – ZRO Research ⏱ ~14 phút đọc
⚡ TL;DR — Đọc 60 giây
  • PoR chứng minh custodian giữ đủ tài sản để cover nghĩa vụ. 3 loại: Attestation → Merkle PoR → ZK-PoR (phức tạp tăng dần, trust giảm dần).
  • FTX có PoR tài sản nhưng không có PoL (Proof-of-Liabilities) — đây là lỗ hổng chết người.
  • WBTC có thể verify on-chain: total supply ERC-20 vs BTC trong custody address = 1:1.
  • ZK-PoR là hướng tốt nhất về lý thuyết nhưng chi phí compute vẫn cao — chưa phổ biến.

1Proof-of-Reserves Là Gì và Tại Sao Cần?

Vấn đề fractional reserve ẩn

Trong hệ thống ngân hàng truyền thống, ngân hàng được phép cho vay nhiều hơn tiền gửi thực tế (fractional reserve banking) vì được bảo hiểm và có lender of last resort. Trong crypto, không có cơ chế nào tương tự. Custodian hoặc exchange crypto có thể dùng tài sản của user để trade, cho vay, hoặc đầu cơ — và nếu khoản đầu tư xấu đi, tài sản của user mất mà user không hề biết cho đến khi quá muộn. Đây chính xác là điều đã xảy ra với FTX, Celsius, BlockFi, và Voyager.

Proof-of-Reserves (PoR) là cơ chế cho phép custodian chứng minh công khai rằng tài sản họ đang giữ ≥ tổng số dư người dùng. Mục tiêu: người dùng có thể verify solvency của custodian mà không cần đặt niềm tin mù quáng. PoR không phủ nhận rủi ro — nó làm rủi ro minh bạch hơn.

PoR áp dụng cho ai?

PoR quan trọng cho bất kỳ entity nào giữ tài sản thay mặt người dùng: centralized exchange (Binance, Coinbase, OKX), custodian (BitGo, Anchorage), và cả wrapped asset issuer (WBTC cần chứng minh BTC backing cho ERC-20 supply). Với wrapped BTC cụ thể, PoR là câu hỏi cốt lõi: "Có đủ BTC thực để back toàn bộ WBTC đang lưu thông không?"

2So Sánh 3 Phương Pháp

Phương phápVerify bởiTrust assumptionUser self-verify?PrivacyDùng bởi
Attestation Auditor/Firm bên ngoài Trust auditor Không Cao (không tiết lộ detail) BitGo/WBTC, Coinbase
Merkle PoR User tự verify với Merkle proof Trust exchange publish đúng root Có — tự verify balance Trung bình (path tiết lộ một phần) Binance, Kraken, Bybit
ZK-PoR ZK validity proof Trust ZK math Có — verify proof Cao (privacy-preserving) Polygon Hermez, nghiên cứu

3Phương Pháp 1: Attestation

Attestation (Kiểm Toán Truyền Thống)
Đơn giản nhất · Trust cao nhất

Cách hoạt động: Custodian thuê auditor bên ngoài (thường là Big 4 hoặc firm chuyên crypto như Armanino, Mazars) để kiểm tra tài sản tại thời điểm snapshot. Auditor verify rằng địa chỉ ví được khai báo thực sự thuộc custodian (thông qua signed message), đọc số dư on-chain, và so sánh với sổ kế toán nội bộ. Kết quả: báo cáo attestation ký bởi auditor xác nhận "tại thời điểm T, custodian giữ X tài sản".

Giới hạn: Attestation là point-in-time snapshot — không ngăn custodian dùng tài sản vào trước/sau thời điểm audit. Không có cơ chế continuous verification. User không thể tự verify — phải trust auditor. FTX từng có attestation nhưng không phát hiện được vấn đề với Alameda vì Alameda là entity riêng biệt không trong scope audit.

Áp dụng cho WBTC: BitGo cung cấp monthly attestation của BTC custody addresses. Đây là phương pháp PoR của WBTC — đơn giản nhưng có thể verify on-chain một cách thủ công vì Bitcoin blockchain public.

4Phương Pháp 2: Merkle Proof-of-Reserves

Merkle Tree Proof-of-Reserves
User có thể self-verify · Privacy một phần

Cấu trúc Merkle Tree: Exchange tạo Merkle tree với mỗi leaf node chứa: (userID_hash, balance). Các nodes được hash pair-wise lên đến root. Exchange publish root hash này cùng với tổng số tài sản on-chain. Mỗi user được cấp Merkle path — chuỗi sibling hashes từ leaf của họ lên đến root.

Cách user tự verify: User hash thông tin của mình → verify path dẫn đến root đã publish → xác nhận balance của mình trong tổng. Nếu root hash khớp, balance của user được include. Không cần tin tưởng exchange hay auditor — chỉ cần tin vào SHA256.

// Verify Merkle path (pseudo-code)
function verifyMerklePath(
  userBalance,
  userId,
  merklePath,  // array of sibling hashes
  publishedRoot
) {
  let hash = sha256(userId + ":" + userBalance);
  for (const siblingHash of merklePath) {
    hash = sha256(min(hash, siblingHash) + max(hash, siblingHash));
  }
  return hash === publishedRoot;  // true = your balance is included
}

Giới hạn: Merkle PoR chỉ prove rằng user balance có trong tree — không prove tổng tree = tổng liabilities. Exchange có thể tạo leaf nodes fake với negative balances để inflate tổng. Exchange cũng phải chứng minh tổng của tất cả leaf nodes ≤ tổng assets on-chain — cần thêm bước aggregate sum verification. Ngoài ra, Merkle path tiết lộ một phần cấu trúc tree — bị chỉ trích về privacy.

Binance là exchange lớn đầu tiên triển khai Merkle PoR (11/2022, sau sự cố FTX). Kraken, Bybit, OKX và nhiều exchange khác đã follow sau đó.

5Phương Pháp 3: ZK Proof-of-Reserves

ZK Proof-of-Reserves (Zero-Knowledge)
Tốt nhất về trust · Chi phí cao nhất

Ý tưởng: Dùng zero-knowledge proof để chứng minh câu lệnh: "Tổng tài sản ≥ tổng nghĩa vụ, và không có nghĩa vụ âm nào" — mà không tiết lộ bất kỳ balance cá nhân hay địa chỉ ví nào. ZK-PoR giải quyết đồng thời cả assets và liabilities trong một proof duy nhất, không yêu cầu trust auditor hay trust exchange publish đúng.

Tại sao khó: ZK proof phải cover constraint phức tạp: tổng của hàng triệu user balances cùng lúc (từng balance phải ≥ 0), đối chiếu với on-chain assets. Chi phí compute để generate proof cho hàng triệu accounts vẫn rất cao. Hiện tại chỉ có một số exchange nhỏ và project nghiên cứu đã triển khai ZK-PoR trong production.

ZK-PoR cho wrapped assets: Về lý thuyết, tBTC và WBTC tương lai có thể dùng ZK-PoR để prove mọi lúc rằng total minted tokens ≤ total BTC locked, với privacy hoàn toàn cho custodian addresses. Đây là hướng phát triển 5-10 năm tới khi ZK tooling trưởng thành.

6FTX Paradox: Tại Sao PoR Không Đủ

FTX collapse (11/2022) là bài học rõ nhất về giới hạn của PoR. FTX có Proof-of-Reserves một phần — nhưng fail ở điểm cốt lõi: không có Proof-of-Liabilities.

FTX Paradox: Exchange có thể "chứng minh" rằng họ giữ $8B tài sản — nhưng nếu họ nợ $20B, họ vẫn insolvent. PoR không hỏi "bạn nợ bao nhiêu?" mà chỉ hỏi "bạn có bao nhiêu?" Nếu không biết cả hai vế, PoR vô nghĩa về solvency.

FTX dùng FTT token làm collateral

FTX PoR bao gồm FTT — token tự phát hành bởi FTX, giá trị do FTX tự kiểm soát. Khi FTX publish "tài sản $8B", phần lớn trong đó là FTT. Khi Binance tuyên bố bán FTT, giá FTT sập, "tài sản" trong PoR biến mất — nhưng liabilities (số tiền user gửi) vẫn còn nguyên. Một PoR đúng đắn phải loại trừ self-issued tokens khỏi tài sản.

Loophole: mượn tài sản trước audit

Ngay cả Merkle PoR không ngăn được "window dressing": exchange mượn tài sản từ bên thứ ba ngay trước snapshot, tạo PoR, rồi trả lại sau. Đây là lý do cần continuous PoR (realtime, không chỉ monthly snapshot) kết hợp với PoL verified bởi auditor độc lập.

Bài học thực tế: Nhìn PoR như một điều kiện cần nhưng không đủ. PoR tốt khi: (1) assets không bao gồm self-issued token; (2) có PoL kèm theo; (3) continuous hoặc frequent, không phải annual; (4) auditor độc lập verify cả hai vế.

7Hướng Dẫn Tự Verify WBTC On-chain

WBTC là trường hợp đặc biệt: cả tài sản (BTC trên Bitcoin blockchain) và representative token (ERC-20 trên Ethereum) đều hoàn toàn public, bất kỳ ai cũng có thể verify mà không cần tool đặc biệt.

Bước 1: Kiểm tra WBTC Total Supply trên Ethereum

WBTC contract address: 0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599

Truy cập Etherscan hoặc dùng eth_call để đọc totalSupply(). Kết quả là số WBTC đang lưu hành (đơn vị: satoshi, chia 108 để ra BTC). Ví dụ: totalSupply = 1.500.000 * 108 = 150.000 WBTC.

Bước 2: Kiểm tra BTC trong Custody

BitGo công bố danh sách custody addresses tại wbtc.network. Cộng tổng balance của tất cả địa chỉ này trên Bitcoin blockchain. Tool: blockchain.info, mempool.space, hoặc Bitcoin Core node nếu bạn tự run.

Bước 3: Đối chiếu

Verify condition: sum(BTC in custody) >= WBTC totalSupply / 1e8

Ví dụ:
  BTC in custody addresses: 150,234.5 BTC
  WBTC total supply: 150,000 WBTC (= 1.500.000 * 10^8 satoshi)
  Ratio: 150,234.5 / 150,000 = 100.16% — fully backed ✓

Nếu ratio < 100%: WBTC under-collateralized (PoR fail)
Giới hạn của verify thủ công WBTC: Bạn trust rằng addresses BitGo công bố là địa chỉ thực sự thuộc BitGo — không có bot nào gửi BTC vào đó rồi rút ra. Đây là trust assumption còn lại của Attestation model. ZK-PoR sẽ giải quyết điều này, nhưng chưa có với WBTC hiện tại.

8Câu Hỏi Thường Gặp

Proof-of-Reserves (PoR) là cơ chế cho phép exchange hoặc custodian chứng minh công khai rằng họ đang giữ đủ tài sản để cover toàn bộ số dư của người dùng. PoR được thực hiện bằng on-chain balance verification và/hoặc Merkle proof cho phép từng user tự verify balance của mình trong tổng.
Merkle PoR dùng Merkle tree để aggregate tất cả user balances thành một root hash. Exchange publish root hash và cung cấp Merkle path cho từng user để verify balance của họ có trong tree. User tự verify mà không cần trust exchange — chỉ cần tin vào SHA256. Binance, Kraken, Bybit đang dùng Merkle PoR.
FTX có PoR tài sản một phần — nhưng không có Proof-of-Liabilities. PoR chỉ chứng minh "tôi giữ X tài sản" không chứng minh "tôi chỉ nợ X, không nợ nhiều hơn". FTX còn dùng FTT (self-issued token) làm phần lớn tài sản trong PoR — khi FTT sập, toàn bộ solvency picture sụp đổ. Bài học: PoR phải kết hợp PoL mới đủ ý nghĩa.
ZK-PoR dùng zero-knowledge proof để chứng minh tổng tài sản ≥ tổng nghĩa vụ mà không tiết lộ balance cá nhân hay địa chỉ ví. ZK-PoR giải quyết privacy của Merkle PoR và có thể prove cả assets lẫn liabilities đồng thời. Chi phí compute vẫn cao — đây là hướng dài hạn chưa phổ biến trong production.
3 bước: (1) Đọc WBTC totalSupply() trên Etherscan tại contract 0x2260FAC5...c599; (2) Cộng BTC balance của tất cả custody addresses mà BitGo công bố tại wbtc.network; (3) Đối chiếu: nếu BTC ≥ WBTC supply → fully backed. Bạn vẫn trust rằng BitGo công bố đúng custody addresses — đây là trust assumption còn lại của Attestation model.
🔗
ZRO Research · WBTC.VN
Nghiên cứu và biên soạn bởi ZRO Research
Nguồn: WBTC.network, BitGo custody docs, Binance Merkle PoR, Vitalik Buterin PoR essay. Về phương pháp nghiên cứu →