版本比较

密钥

  • 该行被添加。
  • 该行被删除。
  • 格式已经改变。

...

  1. 将投票权重积累到一个具体的数值上,这个数值用一种不可转让的 Token 来表达,可以称为灵魂绑定的 Token(Soulbound Token),简写为 SBT。

  2. 设计基于快照的投票系统,用户使用快照时的 SBT 的数值来投票,可以同时给多个提案投票。

  3. 每个成员有一个成员 NFT 用于标识该用户的身份,该 NFT 是不可转让的,通过 StarcoinFramework 中的 IdentifierNFT 来实现,上面的 SBT 嵌入到 NFT 中,同时实现不可转让。

  4. Dao 可以适用于不同规模的 Dao,比如 Starcoin Dao,DeFi 项目 Dao,或者一个几人合作的独立工作室 Dao。Dao。不同规模的 Dao 之间可以无缝切换。

三、基本概念

GenesisDao

StarcoinFramework 中的 Dao 相关的系统合约。它是一个用来创建 Dao 的框架,提供有扩展能力的插件机制,可以让开发者组合出适合自己项目场景的 Dao。同时它也通过 DApp 方式提供一种简易的组合方式,让普通用户可以通过无代码的方式,利用系统合约内置以及第三方提供的插件来组合出符合自己需求的 Dao。

...

比如有个叫 XDao 的类型标识类似 0x_dao_address::XDao::XDao

每个 Dao 代表一个合约控制的账户,以及在合约中定义的一组“能力(Capability)”,Dao 的成员可以通过发起提案以及 Dao 插件使用 Dao 的能力。

当前 Dao 定义了以下能力:

  • Install plugin capability:给 Dao 安装插件的能力

  • Upgrade module capability:升级 Dao 账户下合约的能力

  • Modify dao config capability:修改 Dao 配置的能力

  • Withdraw Token capability:从 Dao 账户下提取 Token 的能力

  • Withdraw NFT capability:从 Dao 账户下提取 NFT 的能力

  • Storage capability:给 Dao 账户下保存数据的能力

  • Member capability:给 Dao 添加成员,以及修改 Dao 成员 SBT 的能力

  • Proposal capability:给 Dao 发起提案的能力

Dao 注册表(Dao Registry)

每个 Dao 创建的时候,会将自己的类型标识和 Dao 进行关联,记录在 Dao 注册表中,合约中可以通过 Dao 的类型标识来反向查询 Dao 的账户地址。

...

Dao 创建的时候,会同时发行一个 NFT,复用 Dao 的类型标识,DaoMemberNFT<X>(名字待定)。该 的类型标识,DaoMemberNFT<X>。该 NFT 创建之后就立刻存入 IdentiferNFT 容器中,和用户绑定。成员加入 Dao 的过程就是领取 DaoMemberNFT 的过程,退出 Dao 的过程就是解除绑定并销毁 NFT 的过程。

Dao SBT

Dao 创建的时候,会同时发行一个 Token,复用 Dao 的类型标识,Token<X>。这个 Token 并不自由流通,而是锁在 DaoMemberNFT 的 Body 中,代表用户在 Dao 中积累的 reputation。之所以不直接用一个数字来代表 reputation,主要是这样可以复用 Token 的一些基础工具,比如总量追踪,比如安全计算。

Dao Governance

不同的 Dao 有不同的治理策略,如果可能,需要考虑支持插件式治理模式机制

Dao Proposal

Dao 中治理投票的权重。不同的 Dao 可以根据自己的场景来映射 SBT,用来代表不同的含义。

Dao 提案(Dao Proposal)

Dao 中发起的治理提案,通过治理机制决定提案是否执行,Proposal 是抽象的,具体的 Proposal 如何执行取决于 ActionDao 的 Action。

Dao Proposal Action

Dao Proposal Action 决定了具体的 Proposal 的行为,可以由第三方作为插件提供,每个 Dao 可以安装不同的插件Dao 可以安装不同的插件。

Dao 插件(Dao Plugin)

Dao 插件是给 Dao 提供扩展的主要方式,通过不同插件的组合,可以让 Dao 适用于不同的场景。每个插件安装时需要表明自己需要使用的“能力(Capability)”,插件可以在必要时从 GenesisDao 申请能力的使用权限进行调用。

四、使用场景预演

个人 Dao(Personal Dao)

类比个人独资公司。创始人拥有所有权限,不需要治理,但有和个人独立的账号和品牌。比直接使用个人账户的优势:类比个人独资公司。创始人拥有对 Dao 的直接控制力。比直接使用个人账户的优势:

  1. 可以升级为其他类型的 可以逐渐升级为其他类型的 Dao,适合初创的过渡阶段。

  2. 个人 Dao 可以转让所有权。

...

类比上市的股份有限责任公司。参与 Dao 的成员无限制,只要符合一定的公开条件,比如持有或者抵押某种 Token 等,即可成为 Dao 的成员,并且治理权重根据公开条件计算。

比如,创始人 Alice 开始有了一个想法,于是创建了一个 ADao,这时候成员只有创始人一人,所以他的 SBT 权重为 100%,所有的提案他一个人就可以通过。后来他招募了两个合伙人,Bob 和 Tom,每人占 1/3 的 SBT 权重,所有的提案至少需要 2 个人同意(Dao 投票阈值为 50%的情况),ADao 变成了合伙 Dao。再后来,ADao 发行了一个 Token,安装了 Stake 插件,抵押该 Token 的自动成为 Dao 成员,成员 SBT 根据抵押时长计算,该 Dao 成为一个公共 Dao。

五、整体设计

文档参考: /wiki/spaces/WESTAR/pages/34078721

...