我写过很多关于创新型执行层的内容 —— StarkNet 和 zkSync 2.0 是最惊艳我的两个项目。感谢 Volition,智能合约行业有望于明年左右在全球范围内广泛落地。
但是,关于这两个项目,我已经写不出更多东西了。我意识到我从来没有真正解决如何构建有效安全层的问题。这里要澄清的一点是,我说的只是安全性和验证,而非数据可用性。更确切地说,我要讨论的是一个久经考验且具有弹性的去中心化强安全层,以便 Rollup、volition 和 validium (以及执行层未来的创新成果)在上面运行。我之所以没有谈论这个问题,主要原因在于这是一个乏善可陈的领域,目前只有两个项目聚焦于此 —— 其它所有链全都为了执行之便在不同程度上牺牲了安全性和去中心化。本文带有较强的主观色彩,因为安全性和去中心化很难量化。在本文中,我会尝试对它们进行量化,并根据重要性进行排序。
用户自验证文化
(我认为相比本文提到的其它几点来说)最重要的一点是终端用户、开发者、钱包、交易所、基础设施提供商和生态系统中的其他参与者运行非验证(non-validating)全节点的文化。(译者注:这里的 non-validating 指的是不参与出块。因为全节点是一定会验证区块的合法性的,否则就不是全节点了。造成这种混淆的原因是在一些 PoS 算法的表述中,参与出块的也被叫做 「验证者」,因此动词和名词之间失去了关联:做了验证工作的也不一定是 「验证者」。在后文中读者还会遇到这种混淆。)
有很多方法可以做到这一点:
首先,让开销保持在一定限度内 —— 将节点运行的容易程度置于可扩展性之上。
可以更好地同步并存储数据的高效客户端。
无状态性和状态有效期等密码学解决方案。
目前,比特币仍是最容易验证的主流网络 —— 任何人都可以在笔记本电脑上运行比特币节点。相比之下,以太坊的门槛要高得多,尽管某些智能硬件配置是可以支持的(主要是需要固态硬盘)。用户自验证文化并未消亡。无状态性和状态有效期是当前的两大首要任务,可以有效降低以太坊节点的运行难度。从短期来看,等 Eth1 和 Eth2 合并之后,我们将获得高效的轻客户端。我只知道这两个关注安全性和去中心化的项目。
我将在后文解释为何这一点如此重要。要知道,如果一个网络不能让用户运行自己的节点,这个网络就称不上是免许可网络。你只不过是在用一个有限的验证者集合来代替政府和银行家。
广泛的代币分布
尤其是对于权益证明网络来说,广泛的代币分布至关重要。目前,我认为没有一个网络的代币分布是足够去中心化的,尽管比特币和以太币遥遥领先,莱特币远远排在第三位。可笑的是,一些新项目还是中心化的,如 Solana 和 Avalanche —— 我觉得还不如相信信誉好的银行。有人可能会争辩说,这些项目最后都会变成去中心化的,但是没有实际的方法可以实现去中心化。去中心化与它们采用的委托型共识机制(通过质押获取收益)相悖。全球范围内参与者的人数和类型越多,网络的弹性越强。
从长期来看,随着以太坊转向 PoS 机制,比特币的机制就会成为去中心化程度最高的机制。
用户自验证文化和广泛的代币分布是安全层最关键的两个要素。还有几个要素虽然没这么关键,但是也很重要。
经济安全性
正如 Justin Drake 在 Bankless 上发布的必读三部曲中所言,经济安全性是可以量化的,但是比乍看之下更为棘手。我们可以将经济安全性定义为攻击网络的成本。就工作量证明网络而言,经济安全性就是获得 51% 算力所需的成本。这些算力可以通过租用和收购 ASIC 等方式获得。我们可以根据租用算力的价格并将其乘以 51% 算力来估算出攻击成本。虽然这只是假设性估测,但是根据 crypto51.app 数据显示,目前以太坊的经济安全性排第一,比特币排第二,其它网络则望尘莫及。当然了,要想获得 51% 算力是不切实际的,而且实际成本很难计算。就权益证明而言,由于共识机制之间存在很多差异,计算起来会很复杂。
安全的共识机制
虽然这么说可能会引起争议,但是我认为共识机制对于一条链的安全性来说是最不重要的。相比之下,用户自验证和广泛的代币分布重要得多。如果没有达到这两个标准,共识机制之间的细微差别根本无足轻重。
这是因为验证者是为网络提供服务的 —— 共识规则由运行节点的用户执行。如果你拥有庞大的用户参与验证,就会对验证者起到威慑作用。即使出现攻击,网络也不会崩溃或被彻底摧毁。
但是,共识机制之间的差别确实很重要。例如,Ethereum 和 Algorand 等网络采用的非委托型共识机制就优于委托型共识机制(在财阀政治体制下选举出验证者)。后者是一种反乌托邦的观点,认为网络安全性由 「巨鲸」 决定,其他利益相关者不会关心这一点 —— 他们只想通过质押(更准确地来说,叫作 「预贿赂」)来分一杯羹。当然了,如果代币分布足够去中心化,这不是什么大问题 —— 再一次凸显了代币分布广泛的重要性。当然了,有人会辩称说,委托池构建在没有委托机制的 「真正」 权益证明上,即使是这种委托池也具有优越性。例如,Rocket Pool 和 SSV 的自动化、随机化系统可以完全规避财阀政治选举和委托机制引入的贿赂等攻击向量。最后,无需委托给巨鲸或向巨鲸寻求许可即可运行验证者节点这一点尤为重要。
这里还有其它很多细微差异需要考虑,例如,典型的 BFT 委托共识机制无法抵御 33% 攻击,信标链和工作量证明链最高可以抵御 50% 攻击;罚没 / 黑名单 在起到威慑作用的同时可以让网络从大多数攻击中更好地恢复;小组领袖选举是否是私密的;是否可以快速实现确定性等等。最后还有社区在社会协调以及从攻击成功这样的边缘场景中恢复的力量。
费了这么多口舌,我想表达的核心观点是 —— 共识机制之间存在很多细微差异,但是这些差异没那么重要。如果有数百万用户参与验证且持币者多达 10 亿人,即使是仅有 1000 名验证者的不达标的委托型共识机制也是可以接受的。(译者注:再一次地,读者可以感受到混用术语造成的伤害:前面的 「数百万用户参与验证」 的 「验证」 指的是运行全节点,验证区块的完整性;后面的 「1000 名验证者」 的 「验证者」 指的是协议的出块者。)
另外还有两点同样重要,但是并不适合上述机制。
林迪效应和网络效应、去中心化开发、生态支持
对于一条安全链来说,久经考验的弹性网络、代币溢价高、数万名开发者参与构建都是理想特征。重申一遍,比特币位居第一,但是以太坊正在迎头赶上。以太坊在开发者采用和多客户端开发方面遥遥领先。多客户端网络远比单客户端网络更具弹性,因为后者只有一个开发团队在构建一个客户端。当然了,有人可能会说,与其将人力资源分配给多个客户端,不如全都用来打造一个完美的客户端。
是否对 ZKP 友好
如果你思考过了我在本文讨论的内容,就会得出这样的结论:区块链行业只有两条可以一较高下的安全链 —— 比特币和以太坊。遗憾的是,比特币在一件事上无能为力:它不具备验证 ZKP (零知识证明)的能力。甚至都没人提到这点,但是我认为要引入这一功能是轻而易举的,而且这是比特币可以实现的最具影响力的升级,远胜过 Taproot。
以太坊确实能够验证 zk-SN(T)ARK。EIP 1679 当然有帮助,但是 EVM 对 ZKP 验证依然非常不友好。现在,我的 ZKP 密码学知识储备还不够多,无法理解具体细节,但是有些预编译可以降低 zkR、validium 和 volition 在以太坊上结算的难度 —— 尤其是 STARK。幸运的是,Matter Labs、Aztec 和 StarkWare 之类的执行层开发者已经展现了出众的创新才能,可以有效规避 EVM 的局限性。但是,距离效率最大化还有改进的空间。我希望核心研究者和开发者会在 Eth1 和 Eth2 合并完成后实现相关预编译和操作码,因为以太坊对 rollup 的依赖性越来越强。当然了,我知道 EVM 有些僵化,导致很难实现重大变革 —— 我有个灵感是在从头开始构建一个虚拟机分片链,专门用于验证 ZKP,或者将这个功能做进信标链。(虽然现实地来说,现在执行层的开发首先关注的是(信标链质押者)取款、(PoW-PoS)合并后清理和无状态性。)
额外好处:海量数据可用性层
一个合格的安全层还有可能带来一个隐形的好处:海量数据可用性层。例如,以太坊最开始会有 64 条分片链,之后再扩展至 1024 条分片链,其数据可用性根据摩尔定律(Moore‘s Law)和尼尔森定律(Nielsen’s Law)还有可能扩展至数 GB/s。如此惊人的数据可用性提升是永远不会在中心化的一体式区块链上实现的,有效解决了区块链的三难困境。我预测,10 年后 rollup 可能会将以太坊的 TPS 扩展至 1500 万。届时,如果还有其它数据可用性方案,以太坊的 TPS 甚至有可能达到更高水平。
结论
遗憾的是,安全层领域缺少竞争。目前基本上只有以太坊,一体式区块链仍聚焦于执行和可扩展性。我希望看到新的项目出现,从而解决安全层挑战。但是,我不知道如何才能做到这一点!最好的选择似乎是将 ZKP 验证功能添加到比特币上,但是也有可能出现某个全球科技巨头联盟发布一个安全层,服务于数十亿持币用户,成为这场竞赛的黑马。不妨想想。说不定将来会有某个革命性安全机制横空出世,将 PoS 淘汰出局。但是已有的解决方案看起来还不够格。