虽然项目称作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
- https://www.wbtc.network/dashboard/order-book
举例来说,下图是一笔mint 的交易,可以看到不同角色在铸币过程执行的动作,全程保持透明
合作伙伴
合约原始码
- WBTC合约原始码: https://github.com/WrappedBTC/bitcoin-token-smart-contracts/
- Audit report: https://github.com/WrappedBTC/DAO/blob/master/DeploymentVerification.md
本文链接地址:https://www.wwsww.cn/qkl/5970.html
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。