中美首个“合规稳定币”合约剖析:孰优孰劣?

作者系 MakerDAO 经济研究员和中国区负责人

从合约实现来看,两者都面临中心化托管风险,国产稳定币中心化程度更高,且代码安全度低。去中心化稳定币模式值得更多重视和研究。

稳定币最近火了。

9月10日,Gemini 和 Paxo 正式宣布推出受纽约金融服务局 (NYDFS) 批准的合规稳定币 - Gemini Dollar (GUSD) 和 Paxos (PAX)。

以 GUSD 为例:

  • GUSD 为以太坊 ERC20 标准代币
  • 由纽约信托公司 Gemini 发行
  • 与美元保持 1: 1 锚定
  • 受纽约金融服务局监管
  • 独立第三方审计

这一事件被很多国内媒体解读为美国政府开始主导加密数字货币,将进一步巩固美元霸权,对发展中国家的货币体系造成降维打击。

昨日,有新闻称,香港首家离岸人民币稳定币 WIT 将合规推出。

WIT是一项基于ERC20的区块链应用,是在审计机构的参与下,以离岸人民币作为结算标准,对客户的资金或超额质押的优质数字资产,按照相应的流程发出的电子凭证。WIT作为一种加密数字凭证,在以太坊体系上自由流通。WIT在和银河资管进行兑换时,锚定的法定货币是离岸人民币(CNH),按照1:1进行兑付。

剧本上看仿佛是中国对美国打了一手漂亮的“后手牌”,一场在数字领域的货币战争就要进入双方博弈了。

事实上,这两者都是夸大其词,无论从监管层面 (GUSD 只是州一级的许可,远远没到联邦政府层面。WIT 目前还没有获得监管和牌照)还是市值(加密货币100亿美元日交易量与5万亿美元的日均外汇交易量相比微乎其微)方面,目前的稳定币规模都对任何一个经济体没有太大影响,其是否能超越 USDT 30亿美金的市值都是一个很大的问号。

即使是风头正盛的 GUSD 想要取代 USDT,也需要更多的交易所和承兑机构支持,其中的运营和合规之路相当漫长。参考同样是有独立审计公开透明,且有交易量为 Gemini 两倍的 Bittrex 交易所支持的 ERC20 格式 TUSD,经过半年的时间,也只占了 USDT 3% 的市场份额。

既然都处于早期阶段,不如来仔细研究一下中美稳定币的合约代码和实现方式。得益于两者都是 ERC20,我们在 Etherscan 上可以获得相关的完整合约代码。

Gemini Dollar 

合约代码:

https://etherscan.io/address/0x056fd409e1d7a124bd7017459dfea2f387b6d5cd#code

Gemini Dollar 的合约主要由三个关键模块组成 ERC20ProxyERC20Store 和 ERC20lmpl

ERC20Proxy 是 GUSD 的公开交互接口,但是 ERC20Proxy 并不包含任何商业逻辑,主要逻辑在 ERClmpl 合约里,同时 ERClmpl 可以由 CustodianUpgradeable 进行更新。

ERC20Impl 是 GUSD 合约的主要商业逻辑,包括代币数量、代币转移、代币销毁等。

ERC20Store 是保存 GUSD 的账本数据,代币支持有和其余额的映射。

这其中很重要的合约便是 CustodianUpgradeable,用来批准一些高风险的功能,如增加代币发行量(通过 PrintLimiter 合约规定金额)等。

CustodianUpgradeable 包含一个双重签名的离线秘钥集,可以对合约进行任意的修改进行更新。

如果有需要,Custodian 可以冻结所有 GUSD 代币,并在48小时内修改升级合约,包括某账户和所有代币余额等。

可见,Gemini Dollar 的权限核心在于 Custodian(托管商)也就是 Gemini 公司自身,能够随时冻结账户并进行合约修改,一方面是配合监管(反洗钱等),另一方面也埋下了其中心化的特征。

总结GUSD 的实现方式仍然是中心化的法币托管,通过以太坊上发行 1:1 的ERC20 代币。Gemini 公司拥有更改合约的权限。不过由于州政府的监管和第三方的月度审计,这会让其更加可信。其中离线密钥、双重签名是个很好的安全实践。


WIT (Wealth in Token)

合约代码:

https://etherscan.io/address/0x0be4a987fd8dcbd2fff64ba4131d3a208307f667#code

通过 Etherscan 上的信息,找到了名为 Wealth in Token 的 ERC20 代币以及其相应代码。

WIT 的代码结构相对简单,只有一个合约文档,有以下结构:

  • BasicToken,StandardToken,PausableToken, TwoPhaseToken 扩展了 ERC20 功能
  • 使用 openzeppelin 的 Ownable, Roles, RBAC来做权限控制
  • BlackListToken 加入黑名单方法
  • UpgradedStandardToken 可以对合约进行升级修改

WIT 为 TwoPhaseToken,包含 ERC20 代币基础特征以及团队加入的冻结、清零、发行和赎回功能。

然而在 Token 设计方面有以下问题:

  1. Token 没有销毁功能,即将 Token 发送到 0x0 地址。这会让 WIT 与很多使用 Proof of Burn 合约无法兼容。
  2. Transfer 功能的 gas 费超高,涉及没有必要的 fee 计算和余额计算。

再来看权限控制的实现,也就是托管模式的重点。WIT 是通过 openzeppelin 的 Ownable, Roles, RBAC 来做权限控制,并且自定义了 CEO、COO、CRO(风控官)、经办员和审核员的权限。

在 BlackListToken 和 PauableToken 合约中,我们看到 CEO 可以随时冻结、解冻并清零任何账户的余额,CRO 也可以冻结 (加入黑名单) 任何账户

CEO 可以随时任命 COO,修改 CRO、经办员和审核员。可以说CEO 一人享有控制所有代币的权限。

同时 WIT 的发行和赎回只需要经办员和审核员的确认,合约设计并没有多重签名和离线私钥的保护。

与 GUSD 类似,WIT 合约中有更新功能,Owner 可以任意修改代币的总量、账户余额、转账等。

总结WIT 通过公司托管离岸人民币形式实现稳定币的发行,采用了 openzeppelin 框架下 SafeMath 防溢出等基本安全实践。但是 Owner 和 CEO 的权限高度集中,并且没有多重签名和离线私钥的保护,使得 WIT 在安全性和透明性方面十分薄弱。

写在后面的话

当我们在谈论稳定币的时候,我们需要清楚究竟在谈什么,是法定数字货币(央行数字货币)、去中心化抵押稳定币(MakerDAO 的 DAI )还是法币托管兑换证,更多的时候我们往往指的是最后一种,即和 USDT 类似的法币凭证。但如 USDT、GUSD 或是尝试锚定人民币的 WIT,都必须依赖托管机构,面临中心化风险。完全链上、基于智能合约的数字资产抵押去中心化稳定币值得更多的重视与研究,因为安全、无需许可和消除对手方风险才是区块链技术的初衷。