你的随身 DAO 治理工具
在过去 Web3 大浪淘沙的几年,涌现了一大批所谓的 Web3 链上应用,内容涉及各个赛道。虽然大多数最后都是昙花一现的炮灰,但其中不乏非常有创意、有前景 App。我个人非常看好 DAO 这一赛道。不仅在于它极大地发挥了区块链的特点,更重要的是这将重构人类社会协作的范式。如果说区块链是技术革命,那么 DAO 更像是一次社会革命,虽然现在只是故事的开始,真正实现这个目标恐怕还要很久。
在 2022 上半年上海 Covid-19 疫情封锁期间,我也深刻体验到了 DAO 模式在现实世界的力量。当时小区全部封锁,线上的物资几乎抢购一空,群众只能依靠有渠道的小区楼长统一采购物资。大家自发在小区群里分工合作,采购的采购、搬运的搬运、线上答疑的答疑..... 当时给我的第一感觉是,这俨然就像一个热门的 Web3 项目。Web3 项目的玩法就是在早期你为社区贡献越多,后续就能获得越多项目的空投,包括但不限于 Token 或者 NFT,从而后续项目火了,你可以在市场上套现。本质上和创业获得原始股是一个道理。有人说这是投机和浪费时间的工作,但现实世界中的工作何尝不是这样呢?搞好上级关系、拼命工作赚钱、努力充电学习,不都是为了各种利益,只要别去坑蒙拐骗。所以说底层逻辑是没问题的:越早对社区有贡献的人,理应获得更丰厚的回报,只是区块链把这一过程变得门槛更低、程序化、并且链上可证了。对于项目来说也有好处,早期拥有一批全心全意的粉丝共建,也为后续发展提供了更多可能。
回到小区 DAO 的例子,群里答疑的人就像 Discord 里的 MOD、采购就像项目的运营在和外界洽谈商务合作、搬运的人就像是开发者埋头写着代码。可以想象如果真的按现有 Web3 项目的路子走下去,发行小区治理代币,任何对小区有利的举动都能获得相应激励,比如上面的采购、搬运、答疑等早期角色都能获得大量空投,那么反过来也会促进更多人加入进来参与小区的共建。到时候小区变得更和谐、居民幸福指数,房价自然水涨船高,然后又会吸引更多优质教育、医疗资源聚集,最终又会不断推动房价。如果外部居民虽不能直接体验小区的居住环境,但通过购买你们的小区货币也能分一杯羹。看吧,Web3 项目的这套玩法放在现实世界似乎也行得通。而那段时间,长宁辖区的居民能分配更好的物资,人民都是用脚投票的,舆情情绪里明显表现出未来在长宁区置业的意向明显高于其他区。现实世界也确实证实了这一点。因此如果 DAO 的基础设施和政策一切准备就绪的时候,是对全社会组织形式的一次大洗牌。
上面对于 DAO 的案例太过于宏大了,其实我们家庭就是一个小型的 DAO,比如你和你的爱人小孩三个人是家庭DAO 的成员,发行一个初始供应量为10000的家庭币,那么谁为家庭做出了贡献了都能获得一定的货币激励,包括但不限于做家务、为家庭创收、孩子做了一件优秀的事等等等等,大家表面上为了获得激励努力为家庭做贡献,实际上最终都是让这个家变得更好了。同时可以加入多签钱包的思路,每一笔激励需要家庭指定数目的成员同时同意才可以通过,后续这些激励可以作为治理代币进行家庭投票,比如今年选择去哪里旅游啊、周末吃什么好吃的、小孩是出国留学还是国内读研...... 谁的货币持有量越多,谁的投票权重就越大,毕竟代表你过去对家庭做出贡献更大嘛,最后投票数最多的提案才能通过。一切都是透明、可追溯、不可篡改的。
当我和家庭成员讨论了这个想法,大家都对觉得这个玩法可以尝试下,失败就失败嘛,人生就是在不断试错。于是我开始调研市面上已有的方案。这里就不得不提智能合约的好处了,你能想到的点子这个世界上某个角落的人可能早就已经想到了,并且代码都是链上公开透明的,也就是说你不用自己重复造轮子,更重要的不用担心 Web2 世界里各种环境依赖、不兼容等问题,直接几行代码调用智能合约就行了。而上面想法需要的两个关键应用,正是多签钱包和链上投票。
所谓多签钱包,顾名思义就是需要多份签名。一个最基本 BIP 钱包拥有一个彼此唯一对应的公钥、私钥对,一旦你的私钥泄漏了,那么你的这个钱包就彻底废了,因此安全性大打折扣。因此在这之上,就有人想到了,为啥不可以人为的再包装一层逻辑呢?反正都是一个智能合约的事。于是,多签钱包的市场就出现了。在如今堪比黑暗森林的早期 Web3 世界,多签钱包可以说是进场狩猎的猎人们必备的防弹衣了。其重要性不言而喻。
而这个赛道目前的佼佼者,非 Gnosis Safe 莫属。
在体验了 Gnosis Safe 的 DApp、拜读了 Github 开源的源码、潜水 Discord 开发者日常群一段时间之后,我果断选择了这个DApp。主要还是因为它迭代频繁、支持最多主流链、最完善的拓展服务。这应该是目前多签领域现有的最佳方案了。
而且 Gnosis Safe 还有 GNU 协议的 iOS 客户端源码,对于自己实现这些多签规则的细节也有很多参考价值。
DAO 的另一个重要组成便是如何消费货币。对于大多数没有金融属性的社区货币,最有用的功能便是社区治理了。而治理中投票便是最常见的方式。
这个赛道的选择就很多了。Aragon、Syndicate、Snapshot 等等,最终评估下来还是链下签名、链上提交结果的方式更经济,因此选择了 Snapshot,而且 Snapshot 正好也有测试网的环境,方便配合 Gnosis Safe 进行开发调试,而且 Snapshot 的开发社群也很活跃,提交的问题基本秒回复。
但是 Snapshot 是一个纯前端的 DApp,因此要移植到移动端需要逆向很多接口和步骤。比如它要求你先有一个 ENS 域名,所以还得先逆向出 ENS 的注册逻辑,在端上重新实现一遍。好在都是开源的合约,需要挖坟一些隐藏地比较深的代码。移植的这个过程就像是寻宝,你挠破头皮的想不出的一个参数,最后在一个毫不起眼的 repo 里找到了上古 JS 实现。
同时 Snapshot 可以说是把投票玩出花了,除了最基本的单选投票,还有赞成投票、排序选择投票、二次投票、加权投票等多种玩法,同时社区还在不断开发新功能。
有了上述两个主要功能,还需要自己实现一些 DAO 的基本功能。
目前 SafeDao 只支持 ETH 主网和 Goreli 测试网,主要是因为 Snapshot 支持这两个;因此需要在主网上发布一个 TokenFactory 的智能合约,用来发行 DAO 货币;同时初始货币在创建后就要全部转移到多签钱包以便后续从多签钱包分发给成员。而多签钱包的成员只要持有了相应 DAO 的 token,就会自动成为拥有 Snapshot 投票权的成员。至于两个服务如何串联起来,我想了一个比较 triky 的路子,直接用多签钱包的 hash 地址作为 Snapshot 的 Space 名,虽然有点搓就是了。
另外,这是我完全用 SwiftUI 框架编写的第一个完整 App,心得就是,SwiftUI 目前还是一个很早期的 Baby,处理数据的机制非常现代和高效,但是很多自定义动画和追求极致性能的需求下,目前还是有很多限制和 bug。
起初这个想法还是为了自己家庭服务的,后来发现市面上对这两个产品有需求的不在少数,并且都没有一个整合起来的移动端,因此有了对外发布的想法,当然必然是开放源代码的,毕竟我也是从开源项目中来的。
最后的最后,希望区块链不再只有炒币、数字藏品这些投机的东西了,让影响现实世界的那一天早点到来,真正点燃人类协作的潜力。