往期回顾:
1.???? 引言
去中心化自制组织(Decentralized Autonomous Organization, DAO) 是一种全新的互联网人类组织协同方式。它的运作依托于区块链网络,并由其内部成员委员会共同拥有与治理。DAO的特点在于其“去中心化”,这意味着,该类型的组织无需经由某一中心化机构监管运营,其内部的决策通常以提案(Proposal)与投票(Voting)方式管理推进。
1.1 ????为什么使用DAO?
从智能合约的角度来看,常规的合约中往往存在着一些特权级别的操作,类似于:
合约业务逻辑的升级
合约关键配置信息的更改
合约职能账户的更替
涉及到DeFi资金池的敏感操作
等...
在以太坊中部署的Solidity合约,通常会采用诸如onlyOwner
的modifier
来避免合约的普通用户执行这些特权函数,并同时设定这些特权级别的操作须由合约所允许的管理者(Administer)或操作者(Operator)代为执行。
然而,采用这样的方式进行权限控制,合约将不可避免地存在“中心化问题”
试想存在如下情形:
合约职能账户(如管理者、操作者)的私钥可能丢失,这将引发单点故障问题,导致合约永久处于拒绝服务的状态。
开发合约的项目方团队不可信或不担责,存在实施某些类似于“卷款跑路”等恶意行为的可能性。
这些隐患将给合约用户的资产安全带来诸多不确定因素。因此,为实现区块链智能合约绝对的“去中心化”,现有的项目实现一般都会引入社区投票(一种常见的DAO应用)机制,用以提升所编写智能合约的可靠性与特权事物处理的公开透明性,并借此赢得更多普通用户的信任。
DAO常用于组织范围内的投票。相比于传统的中心化运营机构,且具体的事物不由特定的“CEO”掌控。同样的,该组织中也没有CFO,CMO等众多管理层角色。取而代之的,则是一份集成了业务逻辑并部署在链上自动运行的智能合约。
2. Spuntnik DAO合约系列解读说明
NEAR Protocol所提供的DAO基础设施平台Sputnik DAO(又名astrodao
)赋予了NEAR生态良好的社区自治能力。
项目方利用Sputnik DAO平台,可方便地为其智能合约进一步地集成DAO机制。与此同时,Sputnik DAO还支持为项目方制定不同的治理模式,以及提供设置多签治理、发布和分配治理通证(Token)等DAO中常见的个性化服务配置需求。
本系列《Rust智能合约养成日记 (10)——SpuntnikDAO》将围绕Spuntnik-DAO展开详细介绍,并将在后续的文章中逐步地剖析其智能合约内部的实现原理,同时帮助大家更好地思考“如何从安全的角度开发Rust智能合约”????
3. Spuntnik DAO项目架构
Spuntnik DAO 平台主要由3个NEAR智能合约构成,分别履行该项目中不同的职能:
sputnikdao2
合约:即具体的DAO实例合约,可实现对DAO治理模式/策略的制定,并履行Spuntnik DAO 平台内部有关决策管理的职能。例如处理提案与投票,控制DAO成员理事会角色权限等...
以下为该合约的精简示意图,更多详细的解读将在后续的文章中进一步展开
sputnik-staking
合约:与DAO实例合约所绑定的治理代币合约。例如用户可将一定数量的治理代币存入该合约,以获得在该用户sputnikdao2合约中的投票权重,又或者将治理代币委托给指定的用户,以增加该代理者的投票权重。sputnikdao-factory2
合约:该合约利用创建型工厂设计模式(Factory Pattern)实现了该平台下所有去中心化自治组织(DAO)
实例的统一创建与管理。注:Spuntnik-DAO v2版本的的开源代码仓库位于【这里】该版本代码尚处于开发测试阶段,暂未正式上线NEAR主网,本系列Rust合约养成日记仅作学习研究目的。 后续《Rust智能合约养成日记》系列将自顶向下地为大家详细介绍NEAR生态基础设施——Spuntnik DAO 平台,敬请关注。