自从今年 1 月 9 日我在 Mirror 上宣布进入创业间隔年以来,安全度过第一季度几乎是地狱般的困难。起初,我花了一些时间适应从完全无规律的退休生活转向每日有计划的进行编码,但在 2 月,这一努力随着每日 5、6 场的融资电话会议被打乱,从 2 月 13 日到 3 月 2 日,这样的会面节奏对我个人的身体状态也产生了负面影响,我意识到自己需要更稳定的生活方式来持续贡献代码,而不是对所有知名机构投资者阐述我的宏伟计划。
魔鬼般的节奏带来了一些好处,我认识了约 30 家 VC 的投资经理,其中不少是这些机构的投资合伙人,此外,我和 OpenSea 的天使投资人张睿也有远程会面,并和 Gumi Crypto 的 CEO 国光先生在神田 WeWork 进行了现场会面,在疫情行动受控的时期,这是为数不多的难得而宝贵的交流体验。
Checks Finance 因为这样的融资节奏收获了一些 Offer,但大部分来自于机构中的个人投资者,很遗憾,我没有收到 Gumi 的进一步邀请,考虑再三,我决定搁置天使轮融资的计划,将主要精力投入到 Checks 与 CodeforDAO 这两个项目的编码中去。
当我意识到这一点时,我所面临的交付压力已经和 1 月无法同日而语。因此,整个 3 月,我几乎保持每日稳定的编码节奏,大部分时间,我都住在安曇野,白天,会有一些外出时间,通常在傍晚时刻进入编码状态,一直工作到深夜,每隔两天,作为重设个人压力状态的有效方法,我会去附近的温泉乡泡温泉。一周中可能有一天,我会开车去白马滑雪。这样的生活方式下,项目在 3 月有了明显的进展,与此同时,我恢复了去年低碳水为主的饮食方案,这让体重减少了 5kg,能够更加专注地进行编码。
当我们准备做一件事情时,通常会对事情的进度保持极度乐观,但真正着手于事情本身时,总会遇到一些意外的难题。我很高兴自己跨过了这些困难,由于这些琐碎的生活经历,我得以在今日与大家分享一个 CodeforDAO 的雏形,昨天晚上,我在 GitHub 开源了它的代码,这意味着至少在目前,我完成了一个不起眼却十分重要的里程碑,如果你感兴趣的话,可以在阅读完这篇文章后看看它的代码,这些代码尚未经过审计或 Gas 优化,但它至少能更具体地代我阐明我对 CodeforDAO 的长远规划。
2021 年以来,DAO 的概念进入了公众视野,我曾在 Mirror 上写过一篇文章「DAO 与最佳组织的迷思」那篇文章中,我曾提及或许我们可以使用 DAO 的方法论来改善创业公司的架构,甚至,能否再进一步,允许任何人轻易地创建一个自组织的链上公司。
为了达成这个目标,首先我需要知道业内有哪些聪明人正在做一些他们认可的事情,我翻阅了 Aragon 的开源合约代码,体验了他们的线上服务,除了 Aragon 之外,我还体验了许多尚未发行 utility token 的 DAO 服务,这些服务解决了一个重要的问题:任何用户可以通过使用钱包连接他们的 Web 界面从而创建一个完整的 DAO,但我也注意到这些服务背后都有相似的缺点,一些开发团队正在尝试解决那些问题,但另外一些开发团队决定将重心转移到代币的营销和其他更赚钱的事情上去,有意地将缺点忽略。
首先,这些产品似乎并非为小型效率组织而设计,在发表这个观点之前,我想重申我目前观察到的关于 DAO 的现状:互联网上已经有相当多的 DAO,但大部分 DAO 似乎并不依赖于他们的基础合约而运行,换句话说,许多 DAO 采用广泛的人治,而有限地依赖合约治理。这些治理的目的都相当宏观,譬如,是否允许使用 DAO 金库的一些钱来完成一笔投资,或者是制定一个复杂的 Roadmap,由于目的过于宏观,这些治理大部分使用 snapshot 的链下投票来完成,它有点像我们熟悉的代议制民主:可以参与投票,但没有人能保证提案目的是否会得到完整执行。
这样的组织与 DAO 最吸引我的特点相悖。关于这种现状,存在许多解释,譬如链上治理极其昂贵,大部分用户也无法理解议题将如何被自动执行(他们甚至不会打开提案的日志查阅交易参数)关于这个问题,Aragon 提供了一种插件生态结构,这非常棒,如果他们优化提案和交易的 Web UI,这会帮助更多人参与真正的自动化治理。但我在这里想说的是,CodeforDAO 更关心的是我们能否借助 DAO 来实现去中心化的,高效和受信任的组织,我想,我可以先从小型组织来入手,而这正是我感兴趣的部分。
整个三月,我几乎保持着每天编码的节奏,由于这种努力,目前为止我们有了一个 CodeforDAO 的雏形,在这里,我不会解释具体的技术细节,但我想为大家阐述一下我如何理解「将 DAO 变成小型高效组织的效率工具」这一话题。
CodeforDAO 的核心概念是多层积极治理与模块化提案。这些术语看起来不知所云,但我使用创业公司来举例,我们能更加容易理解它。
当你创办一家科技型创业公司时,通常有这几种角色:持有技术股份的创始人,使用资本入股的股东,参与期权池的早期雇员,获取稳定薪酬的普通雇员与临时薪酬的外部雇员。于此对应的是,你会拥有一家注册在本地的法人实体与对应的法人账户。
大部分时候,作为创始人,你不会希望每个会议都扩大到所有人,除非,这些会议影响到几乎所有人的利益。这是我们所说的「科层制」的权力关系,DAO 的概念在某种程度上将这种权力关系打平,但世界并非如此理想化,因为,无论是在最激进的科技公司或成功的 DAO 的角度来看,这些组织都有一个精英化的决策中心,通常,这个决策中心的结构类似董事会。
这就意味着,治理必须是分层而且积极的。分层意味着关于组织治理需要划定操作者。积极意味着并非所有时刻我们都需要进行全员投票(如上所述,除非该投票影响到所有人的利益)
于此对应的,我们需要为分层积极治理设计模块化的提案。这是最让我感兴趣的一部分:将公司事务都抽象为智能合约,并最终将他们完全自动化。看起来,这个目的有些理想化,但当我们面对实际问题时,我发现的确存在一些可行方案。
例如,当初创公司要进行薪酬分发时,通常,我们需要专业的财务人员来进行月度规划,并且在发薪日之前手动校验这些数据,再将信息同步到银行的批量转账系统中去。对于 DAO 来说,发放固定薪酬是个非常常见的需求,但这些薪酬并不会设计到 DAO 的投票(并且这也不太可能实现)他们被设计成了链下的决策,再手动被加入到资产负债表中作为成本。
我们可以让这些事情变得更自动化,透明,而且受到所有成员的信任。CodeforDAO 的设计是抽象一个 Payroll 模块,允许部分操作员对这个模块进行确认(类似财务人员的授权)每个模块拥有自己的时间锁金库,通过授权的方式从 DAO 金库获得部分资产,而非直接利用它们,在一个结算周期后,模块的时间锁金库将会清零,这也意味着所有的成本支出都进入了 DAO 金库的账单,我们不需要再进行手动对账,便能将 DAO 的事务稳妥地运行。
于此同时,在这个雏形中,我也设计了期权模块,期权模块可以将激励通过模块的时间锁金库线性释放给雇员。
模块允许 DAO 中存在分层的积极治理,这些操作员未来会形成某种树状结构(这有点想提案中对某个提案的依赖)我们可以根据决策指令结构来设计 OKR 模块,确保所有人的短期目的都面向一个方向,让我们换个角度思考,OKR 中的 360 度环向评价其实也是一种匿名投票,而我们可以根据投票结果来给出成员的绩效基准线。
模块与 DAO 的合约是解耦设计,任何成员可以决定将模块挂载到 DAO 的金库合约上,从而建立关系,但任何关于模块时间锁金库的授权都需要进行 DAO 的投票过程,这可以确保模块无法私自滥用 DAO 的资产。
此外,CodeforDAO 还设计了一套 NFT 工卡合约和股份合约,并支持两种治理方式共同管理金库(分别是成员 NFT 投票与股份投票)金库合约开箱便默认支持外部投资者使用 ETH 与 ERC20 Token 进行投资,并自动获取对应的折价股份,与此同时,外部投资者会得到一份特殊的,被标记为「投资者」的NFT 工卡,从而拥有 NFT 投票的资格。
目前,CodeforDAO 的合约还非常初级,我使用了大量未经 Gas 优化的 OpenZeppelin 合约作为基准合约,这意味着在主网部署它会非常昂贵,不过,短时间内,我可能不会将 Gas 优化作为 CodeforDAO 的主要目标,因为我们会在近期上线配套的 off-chain 服务,并将合约部署到 zkSync2.0 和其他测试网络,届时,NFT 会员卡的白名单将能够自助申请,在界面上,我花费了许多精力让它变得高效与好用,相信大家一定会对 DAO 的崭新工具感到新鲜和兴奋,但我们还有相当多的构建代码需要完成。
这两个月以来,我在 CodeforDAO 和 Checks 花费了大量的精力,以避免技术债务的累积,提升交付效率,尽可能地将产品打磨的足够好用。我独自完成了 CodeforDAO 的所有代码,包括合约,前端和后端代码,但这并不意味着我有能力一直这么做,如果你对这个项目感兴趣,也欢迎加入到代码贡献者的行列中来,目前,CodeforDAO 的合约测试覆盖率是 61%,这还远远没到线上产品质量的水平,如果你能贡献单元测试,我也非常感谢。
这篇文章稍微有点冗长,但我很兴奋和大家分享我在这两个项目中遇到的问题,我仍然坚信,今年将会对是所有 Web3 参与者和贡献者都至关重要的一年,我们会经历 ETH 的重要升级,并且获得比以往更加有效率的 Layer2 方案,所有在可预见的未来发生的一切都有利于 Web3 的广泛和全面技术采用,所以,让我们废话少说,为实现一个高效而自组织的未来互联网,Keep BUIDL!