UDT再思考-cipher@nervos.org
2020-03-01 251浏览
- 1.UDT 再思考 从 Omni Layer 到 First Class Assets Cipher
- 2.内容 UDT 历史 ERC20 的问题 FCA 的优势与落地姿势
- 3.BTC 上的 omni layer • Omni UDT 的功能 • Mint / Burn / Send • Fee / ICO / DEX • 智能合约 • Omni 的原理理 • 使⽤用 OP_RETURN 存储账本数据 • 将⽐比特币账本⽤用作交易易排序器器 • 在客户端实现状态更更新 • Omni 的问题 • 链不不对状态更更新做约束,容易易产⽣生漏漏洞洞 • 合约之间难以交互
- 4.Ethereum 上的 ERC20 • ⽐比 Omni Layer 的进化 • 业务逻辑保存在链上并由链执⾏行行 • 所有⼈人计算⼀一遍得到统⼀一的状态 • 不不同的合约提供⽅方可以相互信任 • ERC20 的特点 • 统⼀一协议,分离实现 • 代码与状态混合
- 5.ERC20 遇到的⼀一个基本问题 • 转账到合约难题 • 两种转账⽅方式:transfer & approve + transfer_from • 直接调⽤用 transfer 到合约,将导致⽆无法(在链上)通知到 资产持有⼈人,也就⽆无法进⾏行行下⼀一步操作 • 本质原因 • 所有权由 ERC20 ⽽而不不是资产持有⼈人控制 • 解决⽅方案:ERC223(禁⽌止转账到合约) • Ether 转账到合约为什什么没问题 • Ether 是更更底层的资产,合约可以直接和它交互 • 通过 fallback 函数感知所有权变更更
- 6.First Class Assets • FCA 的概念由 Nervos CKB ⾸首次提出,并在 Libra ⽩白⽪皮书出现后引发社区热议 • FCA 的例例⼦子 • Bitcoin on BTC Chain • Ether on Ethereum Chain • Libra currency • FCA 的定义 • ⽤用户可直接操作⽽而不不是透过其他代理理操作的对象 • 资产所有权管理理(⽤用户)与资产⾏行行为管理理分离(发⾏行行⽅方) • 访问 ERC20 代币时,访问路路径为 • 操作⽅方 => 被操作代币所在合约 => 被操作代币 • 访问 FCA 时,访问路路径为 • 操作⽅方 => 被操作代币
- 7.FCA vs Non-FCA
- 8.So What?
- 9.UDT 作为矿⼯工费⽀支付 • ERC20 为什什么做不不到 • 假设必要的基础功能以太坊通过硬分叉都已经准备好 • ⽤用户需要声明“我⾃自愿将 0.1 DAI ⽀支付给打包我交易易的⼈人” • 矿⼯工能够收取这部分 DAI 的前提 • 1)它是特殊的标记过的 ERC20,否则⽆无法信任其代码的安全性 • 2)矿⼯工可以直接对余额进⾏行行操作,⽽而不不需要获得特殊授权 • 这两点本质上讲 Non-FCA 升级成了了 FCA • ERC865 ⽀支持第三⽅方代付⼿手续费,但矿⼯工仍然收 ether • FCA 为什什么能做到 • ⽤用户可以⾃自定义资产的所属权⾏行行为 • ⽤用户/矿⼯工可以直接操作资产,不不需要透过资产合约 • 前者是系统层,后者是合约层
- 10.在岸与离岸 • 但归属于不不同所有⼈人的代币理理论上不不应该是完全同质的 • 在岸和离岸美元都是美元,但⼆二者互通⾮非常困难,内部流动性⼜又很⾼高 • 如何⽤用 ERC20 设计这样的体系? • 如果“在岸”与国家有关,有 10 种在岸美元,1 ⼀一种离岸美元,⼜又该如何处理理? • ERC1410 • 同⼀一个 token 分成了了多个 tranche,同 tranche 下可以⾃自由流动 • Non-FCA 的问题 • 永远在合约内处理理所有可能的业务 • FCA 为什什么更更好 • ⽤用户⾃自⼰己定义所属权规则 • 例例如 Alice 对⾃自⼰己持有的所有 USDT 打标签,相同标签的 USDT 可以合并、拆分⾃自由转移,但变更更标签需要 Alice 本⼈人的同意——Alice 就创造了了⼀一种在岸美元 • 类似的:24 ⼩小时内可撤回转账
- 11.凭证租⽤用(NFT) • 假设有个⽤用 cryptokitties 作为英雄的 PK 游戏 • Alice 将她的 kitty 租给 Bob,Bob ⽤用它来玩 PK 游戏 • Non-FCA ⽆无法实现该功能,因为 • 原始的 cryptokitties 不不⽀支持租⽤用功能 • 新建的租⽤用合约⽆无法与 PK 游戏交互 • FCA 可以实现该功能 • 因为租⽤用协议是资产持有⼈人⾃自⾏行行增加的功能,⽆无需写⼊入 cryptokitties 的合约 • PK 游戏可以直接与资产交互,⽆无需通过租⽤用协议
- 12.FCA 优点总结 • 资产所有权逻辑和资产使⽤用逻辑分离 • ⽤用户⾃自定义如何可以动⽤用⼀一笔资产,与这笔资产动⽤用后的⾏行行为⽆无关 • 例例如⼀一个 DEX 仅仅提供资产的撮合业务,⽤用户可以⾃自⾏行行定义挂单有效期、单次 成交最⼤大⾦金金额、阶梯价格等业务。在 Non-FCA 中,⾃自定义挂单只能由 DEX 本身 提供。FCA 提供了了巨⼤大的可组合空间。
- 13.FCA 将资产所有权完整地归还给了了持有⼈人 Thanks cipher@nervos.org