往期回顧:
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 平台,敬請關注。