版本比较

密钥

  • 该行被添加。
  • 该行被删除。
  • 格式已经改变。
  1. 账号模型

    1. Authkey 的初始化问题

      1. 问题描述:第一次创建账号的时候需要 Authkey,导致转账的方法需要判断对方账号是否在链上,然后需要填充不同的参数,增加了第三方(比如交易所)的介入复杂度。Authkey,导致转账的方法需要判断对方账号是否在链上,然后需要填充不同的参数,增加了第三方(比如交易所)的接入复杂度。

      2. 解决方案:第一次创建账号时 Authkey 留空,使用 address 作为 Authkey,虽然 address 的长度小于 Authkey,安全性比 Authkey 低,但提高了易用性,当用户第一次发起交易的时候自动更新 Authkey(当然用户可以主动发起更新 Authkey 的交易)。

    2. 合约账户问题

      TODO

      1. Move 中并没有专门的合约账户。但有一些情况,需要类似合约账号的机制。比如:提供全局注册表,并允许任何人注册。

      2. 通过提供 SignerDelegated 的机制,允许用户将自己的账号的 SignerCapability 代理给合约,合约可以通过 SignerCapability 在合约中创建出 signer 实例,模拟该用户。

  2. 合约升级

    1. 两阶段提交升级

    2. DAO 治理方式升级提供了用户级别的设置 ModuleUpgradeStrategy

      Image Added
    3. 两阶段提交升级:先提交升级计划以及代码 Hash,再执行升级交易。

    4. DAO 治理方式升级:将 UpgradePlanCapability 托管给 DAO

  3. DAO 链上治理

    1. 合约升级

    2. 修改链上配置

    3. 国库资金支配

    4. Token 铸造

  4. Token 协议

    1. 全局注册表难题: Token::name_of<T>

    2. 用户需要先初始化 Balance<T>,才能接受 Token T,提供了 AutoAcceptToken 的用户级别的

      Image Added

      设置。

  5. NFT
    通过 SignerDelegated 代理机制实现全局注册表。

    Image Added
  6. Oracle
    通过 SignerDelegated 代理机制实现全局注册表。

    Image Added
  7. YieldFarming
    提供了任意资产的流动性挖矿算法

    Image Added

  8. Native 方法的扩充

    1. Hash::keccak_256

    2. Hash::ripemd16

    3. Signature::ecrecover

    4. Token::name_of