NexisDAO 将解决 CKB 在 Nervos DAO 上流动性差的问题。Nervos DAO 作为 Nervos 的一个系统合约,是 CKB 经济模型的重要亮点之一,持有者可以随时将他们的 CKB 存入 Nervos DAO 中从而获取收益。但是,Nervos DAO 是一种定期存款,存在一个最短存款期限,造成 CKB 流动性比较差。 dCKB 是 NexisDAO 针对 Nervos DAO 实现的一个代币。用户将 CKB 存入 Nervos DAO 后,可以同时铸造相同数量的 dCKB。这样既有 Nervos DAO 的固定收益,又有 dCKB 的流动性,并且 dCKB 可以自由交易。当然,想要从 Nervos DAO 取款,需要销毁对应的 dCKB。 这些功能都是基于智能合约实现的。默认的 Nervos DAO,存款时,存款单的拥有者是用户自己;而 dCKB 存款单的拥有者是智能合约,智能合约会给用户发放另一张存单。 同时,基于 xUDT,铸造出一批 dCKB(数量等于存款单上的 CKB 数量),用户想从 Nervos DAO 中取出已存储的 CKB,需要销毁 dCKB 和存单。 存款流程 普通的 Nervos DAO 交易: Input1: Cell: { capacity: 10000 lock: User type: null data: null } Output1: Cell: { capacity: 10000 lock: User type: Nervos DAO data: 0x0000000000000000 } dCKB的交易: Input: Cell: { capacity: 10300 lock: User type: null data: null } Output1: Cell: { capacity: 10000 lock: //特殊的lock type: Nervos DAO data: 0x0000000000000000 }Output2: Cell: { capacity: 150 lock: User type: DAO Info data: 10000 }Output3: Cell: { capacity: 150 lock: User type: dCKB(xUDT) data: 10000 } 从上面的交易可以看出,Nervos DAO 存款时,增加了 2 个 Cell,且 Nervos DAO 的lock换成了特殊的lock。 DAO Info:用户的存单信息,用于铸造/销毁 dCKB,处理存取款流程。它的拥有者是用户,所以只有用户能够取款。 特殊lock:要求解锁时,存在 DAO Info 的智能合约。 dCKB:智能合约铸造出来的代币,用户可以任意处置它,如转账、买卖等。 智能合约的校验逻辑: DAO Info 要求output1的lock为特殊的lock DAO Info 要求output1的type为 Nervos DAO DAO Info 要求data中保存的是要铸造的 dCKB 数量 DAO Info 要求 dCKB 增加的数量等于 CKB 锁定数量 DAO Info 要求 Nervos DAO 处于存款流程 dCKB 为 xUDT,它的args为 DAO Info Nervos DAO:验证对应的存款流程 取款 用户可以随时发送交易从 Nervos DAO 中取出已存储的 CKByte(但这里会涉及到一个锁定期来确定什么时候可以取出代币)。一个 Nervos DAO Cell 获得的利息只会在取出阶段发放,这意味着对于一个包含 Nervos DAO 提取交易来说,所有 Onput Cell 的 Capacity 总和可能超过所有 Input Cell 的 Capacity 总和。 与存款过程不同,从 Nervos DAO 取出需要两个步骤: 在第一阶段,第一个交易是将 Nervos DAO 存款单转换为 Nervos DAO 取款单。 在第二阶段,第二个交易是从 Nervos DAO 取款单中提取代币。 取款阶段 1 默认的 Nervos DAO 流程: Input1: Cell: { capacity: 10000 lock: User type: Nervos DAO data: 0x0000000000000000 }Output1: Cell: { capacity: 10000 lock: User type: Nervos DAO data: 0x0012300000000000 } dCKB 的取款流程: Input1: Cell: { capacity: 10000 lock: //特殊的lock type: Nervos DAO data: 0x0000000000000000 }Input2: Cell: { capacity: 150 lock: User type: DAO Info data: 10000 }Input3: Cell: { capacity: 150 lock: User type: dCKB(UDT) data: 10000 }Output1: Cell: { capacity: 10000 lock: User type: Nervos DAO data: 0x0012300000000000 }Output2: Cell: { capacity: 300 lock: User type: null data: null } 通过上面的交易对比,可以发现,dCKB 的取款流程要求用户同时提供「DAO Info」的存单和 dCKB。 通过销毁存单和 dCKB,实现 Nervos DAO 的阶段一的取款,对应的 Cell 就交给用户了,后续的正式取款就跟默认的流程一样。 智能合约的校验逻辑: 特殊的lock:判断input中存在 DAO Info DAO Info:判断input1为 Nervos DAO DAO Info:判断input1、input2的tx_hash一致 DAO Info:判断 Nervos DAO 流程处于「取款阶段 1」 DAO Info:判断 dCKB 销毁的数量等于 CKB 存款数量 Nervos DAO:验证对应的取款流程 取款阶段 2 阶段 2 的交易是从 Nervos DAO 中取出已存的代币和利息。注意,与第一阶段交易不同的是,用户可以在任何时候发送第一阶段的交易,但在第二阶段的交易中,Nervos DAO 要求存款周期到了才能够真正取出 CKB。当前的周期大约是 1 个月,如果你在半个月的时候执行了「取款阶段 1」,则需要再等待半个月,才能够执行「取款阶段2」。 该流程完全按照 Nervos DAO 合约的逻辑,dCKB 这边没有任何修改。 关于 NexisDAO,欢迎移步 Nervos Talk,加入下方链接参与讨论: https://talk.nervos.org/t/nexisdao-nervos-dao/6076 —- 编译者/作者:Nervos 玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。 |
NexisDAO:让 Nervos DAO 的资产流动起来
2021-08-19 Nervos 来源:区块链网络
LOADING...
相关阅读:
- ArweaveAR能持续火爆的原因是什么?背后有什么资本在推动NFT版块撑起区2021-08-19
- MyDeFiPet入门教程2021-08-19
- 资管公司 VanEck 向美 SEC 提交以太坊 ETF 申请,计划购买以太坊期货合约2021-08-19
- 打新资讯|匈牙利狗狗慈善:HungarianVizslaInu(HVI)即将登陆Hotbit2021-08-19
- 区块链的近期发展趋势:碳抵消过程追踪2021-08-19