我们说,Earthlings 是可验证的。这样的说法只有在能够确切指出验证的对象和验证的方式时,才有意义。因此,我们不用“我们的代码是开源的”这类笼统说法,而是公布一条准确的界线:什么是开放的,什么是封闭的,出于什么原因。
现在正处在创立期:在《宣言》通过之日以前,人民仍在创立之中,下面列出的一部分数字,读法与通过之后不同。创立期的规则和期限载于 创立期 这份文件——这里不再重复,好让日期只有一个来源。
原则。 开放的是人民的可验证性所依赖的东西:谁是参与者,他如何成为参与者,我们有多少人,一票如何计算。封闭的是那些公布之后并不增加可验证性、却会给参与者带来风险的东西:服务器端的支撑部分和个人数据的处理。
| 组成部分 | 原因 |
|---|
| 平台的服务器端 | 其中包含访问账户的逻辑。在独立审计之前公布它,会提高参与者账户被攻破的风险,同时对人民的可验证性毫无增益。 |
| 身份验证系统 | 它处理证件和生物特征。这里的封闭是个人数据保护的一部分,而不是隐瞒。数据最小化如何实现,公开的文档中有说明。 |
| 部署用的基础设施 | 其中包含服务器的配置。公布它等于给攻击者一张地图。 |
封闭的组成部分中,没有一个决定谁是 earthling,也没有一个决定一票如何计算。决定这些的是开放的智能合约。
- Earthlings 护照的规则。 在仓库里读合约的源代码:护照不可转让,一个钱包一本,持有人可以自己销毁。
- 已经发放了多少本护照。 调用合约的
totalSupply。这个数字不是我们说出来的——是区块链说出来的。但这个数字需要读对,怎么读我们会说明。目前那里有四条测试记录,是系统启动之前调试时留下的,其中没有真实的参与者。从二〇二六年九月七日起到文本通过之日为止,这个数字表示已通过身份验证、正在参与创立的人:他们只有在《宣言》通过之后才成为 earthlings。通过之后,发放的护照数就是 earthlings 的人数。 - 某个具体地址有没有护照。 调用
balanceOf。答案是 1 或 0。 - DAO 的投票。 打开 Snapshot 里的空间,看到提案、投票和签名。每一票都由投票人的钱包签名——我们既不能添上一票,也不能伪造别人的一票。
- 投票权。 Snapshot 向我们的服务器查询某个地址是否持有护照。在投票的那一刻,这一步只能靠信任——但投票之后不必:所有投票者的地址都是公开的,任何人都可以自己在 Polygon 上的合约里逐个核对。若有不符,就会显现出来。
最后这一点我们直说,因为它是必须信任我们的两处之一。这两处我们宁可自己指出来,而不是留给核查的人去发现。
第二处是合约所有者的密钥。在已部署的合约版本中,发放和销毁护照的功能对所有者开放,而所有者的密钥现在在创立者手里。Earthlings 宪章第二十一条允许违背持有人的意愿销毁护照,但只限于一种根据——注销无效的发放——并且必须走完程序:通知、提出异议的期限、理事会的结论、以特定多数通过的无记名投票、申诉。代码里没有这些保障——它们是程序性的。也就是说,它们现在靠的是我们的话,而不是技术,这一点我们承认。正在做的事情是:把发放权和销毁权分给不同的角色,为销毁的执行加上延迟,把所有权交给由六名选出的签署人组成的多重签名。期限见 路线图。
护照名册存放在区块链上,而不在我们的服务器上,合约的代码是开放的。由此得出一个很实际的结论:如果基础设施被停掉,或者它的运行被夺取,社区可以针对同一份名册建设新的平台。迁移过去的是人和他们的护照;服务器端的支撑部分是可以更换的。
重建有两个支点,第二个并不比第一个次要。名册给出人的连续性,而已公布的规格说明给出重新组装工具的可能:规则、门槛、法定人数、期限和程序,都完整地写在宪章、司库文件和现在这些文件里。因此被重建的不是我们的代码,而是被描述出来的那套制度。复制封闭的服务器端既没有必要,将来也不会需要。
因此,服务器端的封闭并不取消人民在没有创立者的情况下继续存在的权利。合法延续的标志——保存下来的不可修改的核心、经过验证的人的意志、程序的连续性——载于 过渡期路线图 这份文件。