
雖然專案稱作 WBTC,但在白皮書中,主要描述多個組織間管理代幣的框架,如何將資產代幣化,及避免單點風險的治理模式,以下內容取自白皮書的敘述:
- 專案網址: https://www.wbtc.network/
- 白皮書: https://www.wbtc.network/assets/wrapped-tokens-whitepaper.pdf (v0.2)
A multi-institutional framework for tokenizing any asset
白皮書
由於 ERC20 Token 的易用與普遍性,ERC20 代幣成為重要的數位資產表示方式,並同時繼承來自區塊鏈與以太坊的優點,更佳的透明度與較快的交易時間。如果能將某個資產,打包成 ERC20 Token,某種程度像是在以太鏈上發行穩定貨幣,這裡的穩定貨幣意義不一定是指代幣與法幣價格上的 1:1,也可指數量上的 1:1,例如 1 BTC=1 ERC20 BTC Token。
創造穩定幣的做法通常有兩類:
- 算法型穩定幣 (ex: DAI, Basis, Carbon, NuBits)
- 中心化穩定幣 (ex: Tether, True USD, USDC, Digix, Globcoin)
在這份白皮書,採中心化穩定幣的方式,即儲備證明來產生穩定幣。代幣化的好處在於:
- 較快的交易速度
- 減少中間人摩擦
- 強化安全
- 即時的易用性
- 改善透明性
另外為什麼想要發行 ERC20 Token 的目的
- 促進分散式交易所或 DApp 上代幣的流通性
- ETH/Token 的交易對很多,但沒有 BTC/Token 的交易對,而 BTC 又是主流且常被交易的代幣
- DApp 上的工具較成熟,開發及使用相對容易
- 在節點管理上相對省力,無需管理多個不同類型的區塊鏈節點
- 若有法幣型穩定幣,也有助於電商用於交易收付
在發行代幣上,問題與挑戰為:
- 能支持較大的交易量
- 代幣發行的信任問題
- 由於採中心化的發幣方式,需要分散機構的風險
- 誰被授權持有該資產?
- 如何防止濫發幣?
- 保管方如何證明妥善保管資產?
- 如何監管?
- Custodian 必須有執照才能擔保與保管資產,且各地法律不同,Custodian 也必須提供證明,有足夠的擔保資產。針對 User,需要經過 KYC/AML 才能進行代幣交易/購買/贖回
- 聯盟的利益相關者如何治理?
- 由於系統有多個利益相關者,當代幣規則改變時,如何調整規則?
場景描述
關鍵角色, 如下圖:
- Custodian: 負責保管資產 (WBTC 中,角色為 BitGo )
- Merchant: 負責代幣的分配,鑄幣或燒幣 (WBTC 中是 Kyber Network 及 Republic protocol 來管理 )
- Minting (鑄造新代幣)
- Burning (燒毀代幣/減少總量)
- User: 持有代幣的使用者, 代幣可用於與他人交易
- WBTC DAO member: 當 Custodian, Merchant 的組織方有新加入或離開時,由這些組織會員一起投票管理 (多簽錢包)
Merchant 會維持一部分的水位, 當用戶想來換的時候才不需要重新 mint

系統設計
01. 託管錢包設定 (Custodian wallet setup)
託管錢包被設計於保管多個 Merchant 的資金池,而錢包則由 Custodian 的多簽錢包所控制,當 Custodian 對 Merchant 進行交易發送時,Merchant 的地址必須存在於錢包的白名單當中,此外鑄幣/燒幣的行為規定必須在 48 小時內完成。
02. 鑄幣 (Minting)
鑄幣必須由 Merchant 發起請求,由 Custodian 進行鑄幣來完成流程,整個過程牽涉多個交易行為,如下:

- Merchant 在 ETH 鏈上發起一筆請求鑄幣的交易,授權 Custodian 進行鑄幣,並且記錄 Merchant 用於接收 BTC 的地址
- Merchant 傳送 BTC 給 Custodian
- Custodian 等待 BTC 入金 (6 個確認)
- Custodian 發起一筆鑄幣的交易,在 ETH 鏈上產生 WBTC 代幣
03. 接收 WBTC (receiving)
User 接收 WBTC 的流程

- User 請求 Merchant 將 BTC 換成 WBTC (打包成 WBTC)
- 在發送代幣之前,Merchant 必須針對 User 通過 KYC/AML 的程序
- User 與 Merchant 執行原子交換或是可信任的交易方式
– User 收到 Merchant 給的 WBTC
– Merchant 收到用戶給的 BTC
04. 燒幣 (Burning )
燒幣事實上是將手上的 WBTC 贖回 BTC 的意思,只有 Merchant 能夠燒毀 WBTC,做法是由 Merchant 發起燒幣的交易,針對自己地址上的 WBTC 進行燒毀的動作。

- Merchant 發起燒幣的交易,燒毀等量的 WBTC
- Custodian 等待燒幣完成 (25 個區塊確認)
- Custodian 將等量的 BTC 傳送到 Merchant 的 BTC 地址
- Custodian 在 ETH 鏈上發起燒幣完成的請求
05. 接收 BTC (receiving)

- 用戶向 Merchant 發起贖回 BTC 的請求
- 在發送代幣之前,Merchant 必須針對用戶通過 KYC/AML 的程序
- 用戶與 Merchant 執行原子交換或是可信任的交易方式
- 用戶收到 Merchant 給的 BTC
- Merchant 收到用戶給的 WBTC
治理 (Governance)
關於智能合約的多簽錢包中,DAO 成員的加入與移除,需經由委員會的同意流程,M-of-N multisig wallet。
側鏈上交易
目前,WBTC 的發行與流通在 ETH 鏈上,由於主鏈上對於代幣的操作與開發環境相對友善,有錢包、瀏覽器與 DApp 等。雖然交易成本相對 BTC 便宜,但實際上操作仍需要手續費,當以太鏈壅塞時,未必能有較便宜的交易手續費。而這可以藉由 pegged sidechain 的幫助,由 DAO 成員運行既有的 parity-bridge 方案。該鏈將以 PoA 的方式運行,產塊的時間約每 4 秒一個,如此,WBTC 就能夠在主鏈與側鏈上達到較佳的擴展性。
原子交易 (Atomic Swap)
Atomic swap 會用於 Merchant 與 User 之間,為了要進行 WBTC 與 BTC 的交換。一旦 User 的 KYC 通過之後:
- User 產生一組 secret,並且以 off chain 的方式交給 Merchant 一個雜湊值 Hash(secret)
- User 與 Merchant 同意一組彼此用來交換的 ETH 與 BTC 地址
- User 產生一個 BTC HTLC (Hashed Time Lock Contract) 的交易,使用 Merchant 的 BTC 地址作為收款地址,退款地址為自己的 BTC 地址,其中包含用於鎖的 Hash(secret),與交易過期時間。P2SH 的地址
- 在確認 BTC 入金後,Merchant 以同樣的方式在 ETH 上建構 HTLC 合約,使用 User 的 ETH 地址作為收款地址,退款地址為 Merchant 的 ETH 地址,並包含用於鎖的 Hash(secret),與交易過期時間。Merchant 將 WBTC 轉送到 atomic swap contract。
- 用戶揭露 secret 並提領 WBTC 到用戶的 ETH 地址。
- Merchant 利用這個 secret 來提領 P2SH 上的 BTC。
- 如果 User 沒有揭露 secret 來提領 WBTC,則上述的過程將不會發生。
由於上述的動作,牽涉到交易,所以 User 必須支付手續費,當開始執行流程的時候。另外,上述的確認數目可以調降,根據信任的程度,來加速交易執行,畢竟整個流程牽涉許多 BTC 與 ETH 交易。
費用
- Custodian fee: 當 Merchant 鑄幣或燒幣時,由 Custodain 收走
- Merchant fee: 當 User 與 Merchant 交易時,由 Merchant 收走
- Sidechain transaction fee: 由運行 PoA 鏈的 DAO 成員收走,用於維護鏈
Trust and Transparency
所有的紀錄必須在鏈上,可定期被審查與保持透明性
Dashboard
舉例來說,下圖是一筆 mint 的交易,可以看到不同角色在鑄幣過程執行的動作,全程保持透明

合作夥伴

合約原始碼
- WBTC 合約原始碼: https://github.com/WrappedBTC/bitcoin-token-smart-contracts/
- Audit report: https://github.com/WrappedBTC/DAO/blob/master/DeploymentVerification.md
本文由 AMIS Chang-Wu Chen 提供