这是一本在书桌上写成的书。
我想先把这件事说清楚,因为它决定了这本书能走多远、又在哪里必须停下。从第一章到第十二章,所有的材料都来自任何人都能调取的公开记录:以太坊和其它链上的交易、提案、投票,区块的高度和时间戳;法院的判决书、监管机构的指控文件与和解协议;项目自己发布的白皮书、合约代码、审计报告;治理论坛上一条条带着发言时间的帖子;学者写的论文;以及记者在现场或不在现场写下的报道。我没有进过任何一个 DAO 的内部群组,没有和它的核心开发者喝过咖啡,没有坐在 Ooki 案或 Mango 案的旁听席上。这本书里出现的每一个数字、每一次转账、每一句引述,原则上都可以被另一个坐在书桌前的人重新找到、重新核对。
把来源限定在公开材料里,是一种诚实,也是一种代价。诚实在于:我不能凭一句“据知情人士”就写下一个无法验证的断言,读者也不必信任我个人的人脉或运气。代价在于:有些只有当事人才知道的东西,我够不着。一笔多签转账背后,是谁在深夜发了那条最终拍板的私信,链上看不到;一个项目方决定推翻 75% 的投票结果时,会议室里真正说了算的是谁,论坛帖子不会告诉你。这些地方,我只能写到证据的边缘为止,然后停下,用“目前仅见于二手”“有理由认为”这样的措辞把判断的强度标出来,而不是假装自己看见了没看见的东西。一本研究类的书,最容易骗人的地方不是它说错了什么,而是它把推断说得像目击。我尽量不这样做。
我选择把 DAO 当成一台机器来读,而不是当成一桩道德事件来审判。这是这本书最核心的方法选择,值得解释。
“去中心化自治组织”这个词,从诞生起就裹着一层信念——它许诺把人从治理里拿掉,用不可篡改的代码替人做决定。围绕这个许诺,有人把它当信仰,有人把它当骗局,两边都很容易动感情。但情绪是最差的研究工具。如果我一开始就认定 DAO 是一场骗局,我会只挑那些坍塌的案例;如果我把它当成解放的希望,我会原谅它每一次失灵。所以我换了个看法:把每一个 DAO 拆成它的零件——代币最初是怎么分的,私钥握在谁手里,多数票能不能在一个区块里借到,出事时是哪个国家的法院传唤谁——然后看这些零件在压力下怎么咬合、怎么卡死、怎么被人撬动。机器不需要我喜欢它或讨厌它。它只需要被准确地描述。
这样做还有一个好处:判断可以藏进结构里,而不必由我替读者喊出来。当我把一次治理攻击拆解到“法定票数低于可借代币、且执行与投票在同一笔交易里完成”这一步,攻击为什么能发生,已经写在零件的排列里了,我不需要再加一句“这太可怕了”。同样,当账面上数百亿的“社区金库”里九成是项目自己的代币、而平均投票率不到 7%,“社区拥有”这四个字的分量,读者自己会掂量。我相信结构比形容词更有说服力。一台机器最诚实的样子,就是它运转时的样子。
当然,机器这个比喻也有它管不到的地方。机器没有处境,人有。这本书写到的人——被定罪后又因为另一重理由撤销的交易者,化名背后藏着旧案的财务官,在论坛上为一个注定失败的提案辩护到最后的开发者——都不是机器的零件。他们有各自的处境、各自的算计、各自的局限。我尽量和他们保持一种同情的距离:不嘲讽,不把谁写成怪物,也不替谁涂上光环。一个人做出某个选择,往往是因为站在他的位置上,那个选择看起来是合理的。把这一点写出来,比骂他一句更接近真相。
写到这里,我得承认这本书有它够不到的判断。
有些结论,我是站在书桌前、靠交叉比对公开材料得出的,它们足够稳。另一些,我手里的证据只够支撑一个偏弱的判断——我能看见链上的痕迹,却看不见痕迹背后的动机;我能读到法院认定的事实,却进不了那间作出决定的会议室。这些偏弱的判断,我没有删掉,因为删掉它们等于假装这些问题不存在;但我也没有把它们写得比证据更硬。它们各自需要什么样的进一步工作才能被确证或推翻——哪些只能靠直接拉取链上数据,哪些要去旁听一场庭审,哪些得进入那些公开材料照不到的私域——我把它们整理成了紧接其后的附录。那是写给愿意继续往前走的人的一份地图,不是写给此刻这位读者的功课。读到这一页,你不欠这本书任何田野。
最后说一句关于这个书名的话。《代码不是法律》当然是对“代码即法律”那句口号的回应。但我想强调的不是哪句话对、哪句话错。代码确实能管很多事,它管不了的那些,才是这本书真正想看清的——权力没有因为去中心化而消失,它只是换了个藏身的地方,藏进了最初的分配、最后的私钥、可以租来的多数票、和代码之外那个会被传唤的法律实体里。把这些藏身处一个个指出来,是我能为读者做的全部。
至于这台机器最终会停在哪里、还是会一直运转下去,我不知道,也没打算假装知道。这本书结束在一个问题上,而不是一个答案上。