无信任计算的扩容模型

通過 Kyle Samani

February 23, 2018 | 15 Minute Read

无信任计算的扩容模型

每个主流智能合约平台都做了各自独特的权衡。这些权衡不仅仅反映了某些特定功能的存在与否,更代表了对“什么是无信任计算”理解的根本性不同观点。 本文旨在提供一个条理清晰的框架,以便读者理解这些取舍以及它们对加密领域一些主流说法的影响,如数字黄金、可编程货币、抗审查性和无需许可性。本文中一些概念的定义如下: 抗审查性——完全的言论自由。更专业的说法是,向区块链提交任意记录的能力。 零许可——在无需第三方许可的情况下,访问网络和验证区块链完整性的能力。 本文不探究闪电网络、雷电网络和 Plasma 这样的第二层(layer 2)扩容方案。 但首先我们需要解释一下“无信任”这个术语。Nick Szabo 认为 无信任性与技术效率呈反函数关系。基本上计算效率越低,被操控的难度就越大;而被操控的难度越大,可信程度就越高,从而使得它无需信任。 换句话来说,Szabo 的意思是区块链通过牺牲技术效率来增强社交可扩展性。 加密货币的最终表现形式不仅仅是一个无需信任的数据库(或区块链),其中每个人对当前状态达成共识——它更是无需信任的通用计算,这种计算是某个数据库的超级集合。这句话理解起来比较费劲。简单来说就是,区块链能让全球所有人人对世界的某个状态达成共识。而无需信任的通用计算在此基础上更进一步:它不仅能让我们了解某个状态,还能证明某个特定计算被正确执行了。 虽然从技术上来说比特币是可编程的——人们能够通过它的 Script 编程语言实现无需信任的通用计算——但实际上它只是一个无需信任的数据库。尽管很多项目在努力让比特币的表现力更强(例如 MASTtaprootscriptless scriptsRSK),但目前它们当中没有一个能投入实际使用的。坦白地说,很多开发者已经离开比特币,转向更好的平台了。 以太坊是首个开放式平台,其中开发者可以无需信任地运行任意的计算。如今,以太坊吸引了加密领域中绝大多数的开发者。 许多人将以太坊称为一台“世界级计算机”。虽然从技术上来说这种说法是正确的,但实际上却不是这样,因为它没有考虑这两个相关因素:吞吐量和成本。运行同一次计算,以太坊的成本比亚马逊云服务(AWS)贵 1 亿倍左右。 ## 可扩展性的三难困境 无信任计算的扩容面临着“不可能三角”。区块链中的每个节点单独处理各自的计算,并且对这些计算的顺序达成共识,三难困境指出某个区块链只能具备三种特性中的两种:安全性、可扩展性和区块产生的去中心化程度(DBP)。 DBP 可以用出块节点的数量来衡量。 可扩展性可以用每单位时间内系统能够处理的交易数量来衡量。 安全性可以用发动一次影响活跃度或交易顺序的拜占庭攻击的成本来衡量。要注意的是,安全性不是指加密签名的完整性,或者第三方根据公钥推导出私钥。 那么,是什么导致系统采用某一组权衡机制,而不是另一组?答案是:共识机制与系统构架的组合。我会在下文探索这些概念,最后再谈谈链下计算中一些有趣的发现。 为实现各自可扩容的无信任计算,下文中的每个系统都做了不同的取舍。本文将使用下图标注的数字来代表“不可能三角”的每一条边:

第四个维度:最终确定时间(即延迟时间)

尽管不属于可扩展性三难困境中关键的部分,无信任计算系统的扩容需要考虑第四个维度:最终确定时间(TTF),它会直接影响延迟时间。有些系统并不保证绝对的确定性,但是提供一定概率的确定性(例如比特币)。其它系统在一段时间后才能保证确定性。确定性的重要之处不仅在于能够避免双花攻击,它还能实现跨链通信。最终确定时间越长,跨链通信的延迟性越高。 用二维三角形表现最终确定时间的视觉效果不是很好。因此,我将使用更深的背景颜色表示较短的 TTF ,更浅的背景颜色表示较长的 TTF 。 ## 第一条边:无需许可的工作量证明(比特币、以太坊 1.0 等) 在比特币诞生以前,所有数字现金系统都存在同样的致命性缺陷:用户必须信任管理某个系统的第三方。该第三方有权审查交易。而比特币的主要目标是设计一个让所有人都能验证区块链的完整性,但是没有第三方对交易进行审查的系统。工作量证明(PoW)共识算法使得抵抗审查、无需许可的账本成为可能。 过度侧重抗审查性的缺点在于:如果区块生成不够中心化,目前的 PoW 系统无法实现扩容。最终,这种权衡关系导致了比特币现金分叉,相对比特币来说,它的区块生成更加中心化(尽管这种做法备受争议)。 本文提到的共识模型中,PoW 的无需许可程度最高。从字面上看,只要拥有一台计算机和互联网连接,任何人都可以验证交易和挖矿。在理论上它做到了最大程度的 DBP。 实际上,所有无需许可的 PoW 系统都会通过中心化的方式生产区块。经验告诉我们:由于挖矿过程的规模经济效益,所有基于 PoW 的主流区块链都会形成挖矿过程的中心化。目前,不超过 20 个组织/矿池控制了比特币以太坊区块链的绝大部分算力。从区块链发展的有限历史来看,基于 ASIC 和 GPU 的挖矿算法似乎很可能都会形成这个局面。 较长的 TTF 会影响 PoW 系统。在设计上,这类系统并不能保证确定性。随着新的区块添加到基于 PoW 的区块链上,之前打包上链的交易获得确认的可能性成倍增长。这就是比特币交易为什么要经过 6 个以上区块确认才被认为是 “确定的”。而比特币出块时间为 10 分钟, 因此一笔比特币交易要一个小时甚至更久才能确认。这个时候,鉴于交易已经被确认,链式重组的可能性非常接近零 。 实际上,由于 PoW 挖矿的规模经济,基于 PoW 的区块链会侧重于三角形的右下角:

网状 PoW (Kadena)

Kadena 是我所了解的唯一尝试采用 PoW 方案解决可扩展性三难困境的系统。Kadena 通过创建一种叫做“链网”的网状区块链来实现这个目标。在链网里,每条链除了验证自身链上的交易以外,还要验证一些预先指定链的区块头,才能产生一个新的区块。 为了跨链传输信息和价值,用户需要提交默克尔证明,以将连网中某条链的状态传递给其它链。因为并不是所有的链都是直接相连的,所以用户可能需要“跳转”几次才能将信息传递给另一条链。 乍看之下,它很像以太坊的分片概念(详情见下文)。以太坊的分片是将交易的校验和确认分别分离到辐条链和单中心轴链。然而 Kadena 没有将交易验证和共识分开,链网上的每条链都有自己的共识。因此本质上 Kadena提出了一种独特的方法。 Kadena 链网的可视化效果图如下:

链网的特性之一是:系统扩容能够显著提高安全性。为什么?因为每条链都引用来自其它链的区块,随着链条数量的增加,发起 51% 攻击的难度随之增加。在这个模型中,要想撤销一条链上的交易,必须撤销该系统中其它的交易。由于这些链之间原本就错综复杂,随着链条数量的增加,撤销交易的难度也会呈指数增长。这与三角形第三条边的区块链形成鲜明对比,因为后者系统的总体安全性不会随着链条数量的增长而大幅提高。 这种设计从根本上解决了可扩展性的三难困境。但是它还有一个重要的因素:TTF 和跨链延迟。 单条链之间可能要经历多次转跳。Kadena 的目标是把 PoW 方案的 TTF 控制在一分钟以内。在整个链网中发送信息需要转跳数次,因此该过程需要花费几分钟。 尽管存在这样的限制,Kadena 还是提出了一个解决可扩展性三难困境的切实解决方案,并且它基于 PoW 共识模型。虽然网状化为整个系统增添了一种新的动态,但每条链都是 PoW 链。相比权益证明(PoS),PoW 经历了更多检验。它花费了数年时间向世界证明了 PoW 共识机制的安全性。因此,Kadena 在 PoW 共识模型上开发扩容系统有真正的价值和机会。 在三角形中,Kadena 的位置如下图所示:

权益证明(PoS)

上文提到的方案都是基于 PoW ,接下来我们了解一下 PoS 方案。 实际上,相对于完全无需许可的 PoW 方案,所有 PoS 系统在设计上都对区块生产进行了中心化。这是出块节点数量和吞吐量之间固有的权衡。(详情见 Vitalik Buterin 这篇精彩的文章。) 然而,这并不表示所有 PoS 方案都会中心化区块的产生。我们将在下文看到,使用 PoS 方案也能实现大范围的 DBP。 在实际环境中,PoS 方案远不如 PoW 那样经过检验。例如,第一个使用 PoS 模型的加密货币点点币(Peercoin)就遭遇了“无利害关系”攻击。因此,PoS 方案本质上的风险性更高。 ## 第二条边:区块生产中心化(EOS、Cardano、NEO 等) 在意识到 PoW 方案由于挖矿的规模效应而演变为中心化后,委任权益证明(DPoS)主动拥抱中心化。Dan Larimer 基于该结论发明了 DPoS 。该方案接受区块链无论如何都会自然而然形成中心化的事实,并据此去实现可扩展性。 比如说,Larimer 最新的成果是 EOS,它公开宣称该系统在同一时间只有 21 个出块节点。随着时间推移,我预计只有数据中心才能运行一个 EOS 节点。 通过限制出块节点的数量,可以推测出每个出块节点拥有更多的资源。此外,拜占庭容错(BFT)算法通常需要 n² 次通信才能达成共识,而减少出块节点的数量能够降低网络延迟。因此,降低 DBP 明显能够提高可扩展性。 基于 DPoS 的区块链不仅提供了可扩展性,还能缩短 TTF ,因此,它的延迟也更低。EOS 明确提出它的目标出块时间为 0.5 秒,这一点是其它共识方案根本无法做到的。这就是 DPoS 系统的最大优势。许多应用都需要低延迟性和高吞吐量。 以去中心化交易所为例。随着 0x 生态系统在以太坊生态逐渐成熟,上述需求变得更加明显。如今,0x 最大的一个问题是订单冲突的数量迅速增加,直接原因是以太坊的出块时间长,延迟高。0x 开发团队已经提出了解决方案。考虑到底层以太坊区块链的内在局限,这些解决方案的效果还是不明确的。但在快速出块、高吞吐量和低延迟的 DPoS 系统中,这些根本都不是问题。 总的来说,押注 DPoS 其实就是在赌两件事: 在中立的数据库,有一些应用需要高吞吐量和低延迟性。 并不是所有的分布式系统都要那么高度的去中心化来抵抗各国政府的联合攻击。 在三角形中,DPoS 系统会侧重于三角形的底边。需要注意的是,相对于前面提到的两个更慢 TTF 的三角形,DPoS 系统的 TTF 更快,因此图中更暗的背景色表示。

第三条边:多链并存的宇宙(Cosmos、AION、ICON、Ark)

CosmosAIONICONArk 团队认为未来会出现成千上万甚至上百万个区块链。不像以太坊和 EOS 那么庞大,基于“不可能三角”第三条边开发的团队认为不同的应用不一定必须共享同一组验证节点。相反,这些应用应该有各自独立的验证节点集合。 在可扩展性的三难困境下,系统中每条链在第三条边包含的价值较少。无论是 PoW 还是 PoS 方案,安全性都会随着价值的增加而提升。然而每条承担了额外风险的链,相对应的都获得了一定的主权(虽然这种主权可能不太必要或没什么价值)、可扩展性和更快速的 TTF。 主权有什么价值?参考一些例子,我们就容易理解了。如果一些国家由于行政目的而使用区块链,它们会倾向创建自己的验证者集合来贯彻自己国家的社会价值观,而不是其它国家或全球社区的价值观。例如,以太坊和 Ethereum Classic 就不应该共享验证者。 在主权问题上,以太坊项目本身明显是相反的例子。2013 年,Vitalik 着手创建了以太坊,因为他发现加密领域的所有应用开发者围绕挖矿和共识算法都面临相同的挑战。他看到了抽象出所有复杂性,从而让开发者专注于应用层的机会。 在云计算的历史中也有一些有趣的相似之处。在本世纪初,许多网站主机都将多个网站搭建在一台服务器上。每当某一个站点的流量过大,服务器就会崩溃,进而累及其它站点。 以太坊在很多方面都类似早期的网络主机:它简单地将多个应用捆绑在一起,创造出一个整体上不稳定的系统。只要某一个应用拖垮了系统,其余所有应用都跟着遭殃。 网络主机问题的解决方案是虚拟机(VM)。用独立的虚拟机将每个应用都隔离开之后,一台服务器就可以运行多个应用,这样既能最大化硬件利用率,又能在保持完整性的情况下降低成本。如果大量流量涌入,只会造成一台虚拟机的崩溃,但是服务器上其它的虚拟机是完好的。虚拟机可以在物理服务器之间移植,进一步提高冗余度和安全性。与能够实现巨大的水平可扩展性的系统相结合,虚拟机是云计算的一个关键。虽然最近 Docker 容器代替了虚拟机,但他们本质是类似的。 同理,如果分布式应用必须搭建在前文所述的独立区块链上,那么基于第三条边构建的系统是一个巨大的机遇。 为了实现该愿景,基于第三条边的系统需要极大降低创建新链以及链间互操作的难度。Cosmos 是通过 Ethermint 将这一愿景变为现实。Ethermint 是百分之百开源和免费的。它是一种基于 Tendermint 运行以太坊虚拟机(EVM)的空模板链。Tendermint 是 Cosmos 团队开发的一种吞吐量高、TTF 短的半中心化共识算法。通过极大降低开发者创建新链的难度,Cosmos 希望开发者能专注于开发应用。AION、ICON 和 Ark 都拥有相同的愿景,它们通过正致力于为开发者提供模板化,帮助他们轻松高效地创建新链。(请注意,虽然 Wanchain 通常被认为是一种可以实现链间互操作性的解决方案,与这一节中提到的其它方案差别很大,提供的功能也不一样。) 请注意,这些系统能实现较短的 TTF 。这是因为每条链都是相对中心化的,从而能够实现低延迟性。尽管如此,整个系统的去中心化程度还是很高的,因为很多链都有独立的验证者集合,集合中的每一个都可以使用不同的共识机制。 在三角形中,许多具有互操作性小链的可视化效果图如下:

分片(Ethereum 2.0、Polkadot)

Vitalik 和 Gavin Wood 已公开讨论以太坊分片很多年了。 每个分片本质上就是一条独特的链。以太坊的分片和 Cosmos 生态系统中的独立链的区别在于,在 Cosmos 中,每条链都保留自己的共识机制(因此才有安全性),而以太坊的各个分片没有自己独立的共识机制。在分片中,共识及其带来的安全性被汇集在所有的分片上,并由主分片中的验证者管理合约(Validator Manager Contract)进行管理。在大多数情况下,集中起来的安全性会比许多安全系数低的链要好。 目前为止,还没有人能把分片的区块链投入实际生产(Zilliqa 声称自己可以做到,然而,他们的实现并不是完整状态的分片)。 分片解决了可扩展性的三难困境,尽管它以牺牲某条链的主权为代价。此外,分片间的通信也面临延迟问题。从根本上来说,延迟是每个分片上共识算法的后果。 以太坊打算使用 Casper 最终确认每个分片。尽管具体的参数还未确定,但 Casper 似乎会产生以分钟为单位的TTF,这使得分片后的以太坊变成一个高延迟的系统。 而 DfinityAlgorand 使用一种叫做“门限中继(threshold relay)”的新型共识算法,旨在实现区块生产去中心化、安全性、比以太坊单个分片更好的可扩展性(尽管远远比不上 DPoS 提供的可扩展性),以及较短的 TTF 。如果门限中继在实际生产环境中也能有测试环境中的优秀表现,我们就能期望 Dfinity 和 Alogrand 对它们的链进行分片,利用快速 TTF 和低延迟性提供高效的跨链分片通信。 Polkadot 将使用 TBA BFT 共识算法创建一个分片网络,牺牲 DBP 减少 TTF (与 Tendermint 做了类似的权衡 )。然而,Polkadot 很可能比以太坊或 Dfinity 更早上线分片网络。与以太坊和 Dfinity 不同,Polkadot 不要求分片使用特定的状态机,例如以太坊虚拟机(EVM)或 WebAssembly(WASM)。相反,Polkadot 允许每条链定义各自的状态机。该特定能够让专注于发行任意数字资产但不具备智能合约功能的 Stellar,或是需要高度优化的状态机来处理 SNARK 证明的 Zcash 等项目将自身包含的共识系统移植到 Polkadot。 综上所述:

完整的状态分片是计算机科学领域未解决的一个问题。在实际生产环境中,可能没有团队能够进行大规模推广。然而,一旦它成功了,那么它展示了可能是解决可扩容性三难困境最好的解决方案,并且能够做到快速的 TTF 和低延迟。 在三角形中,分片式 PoS 的可视化效果图如下:

可验证的链下计算

如果不通过降低效率的手段来实现免信任性,用户可以只要求一台计算机执行一个计算来实现这点吗?除了让数十或数百台计算机执行相同的计算之外,还有其他方法能够证明这台计算机进行的计算是正确的吗?我们可以不通过在根本上效率低下的区块链技术来保证准确性吗? Truebit 正在试图通过一个验证游戏(Prover-verifier Game)来解决这一问题。这个游戏将通过证明者-反馈(Prover-response)的交互式协议来实现。在计算结果没有遭受质疑的预期情况下,每个计算都在本地完成, 只需一个解题者(solver)和几个验证者(verifier),没有网络成本。在罕见的遭受质疑的情况下,解题者和验证者需要重新运行一个基于 WASM 的计算密集型虚拟机来确定谁是作恶者。 交互式验证协议将透明性、安全性和底层链的不可篡改性与链下计算的高效率结合在一起。Truebit 是在交互过程中运行的,而且具有概率性,因此在需要低 TTF 的环境中效果不佳。Truebit 运行在第一个“全体一致”的共识体制上,每个任务最少需要一位合理的验证者才能确保安全性。 将来,Truebit 或是它的竞争者可能会使用 SNARKs 和 STARKs 通过非交互证明而非交互证明来验证任意计算的准确性。果真如此的话,Truebit 将缩短 TTF ,增加免信任型链下计算的设计空间。然而,将 SNARKs 和 STARKs 用于通用计算时,任意计算的零知识证明在很大程度上依然是不确定的,尚待证实,而且技术效率低下,最终可能无法发挥潜力。 ## 开源、抄袭和政治 从长远来看,主流区块链很可能吸收规模更小、非主流区块链最好的技术。例如,以太坊正在部署 zkSNARKs ,这是 Zcash 进行隐私交易的主要技术。而且,Vitalik 已经宣布他想要将以太坊移植到 WASM 上,在此之前 EOS 和 Dfinity 已经采用了这种技术。以太坊极端主义者提出利用 Plasma 解决以太坊的所有缺陷,因为它能够在以太坊原有生态下选择替代共识算法和状态机。 考虑到上述问题和智能合约网络效应的谬论,某个区块链如何实现差异化? 答案是:政治。意识形态。信仰。 假设在不做任何牺牲的情况下,没人能解决可扩展性的三难问题,不同的开发者和企业需要的是一个适合手头任务的独特的区块链。 最后,媒体会将这渲染成一场宗教辩论。区块链将变成宗教,因为它们的信仰者变成了传教士,乐于传播福音,吸引更多教众。 用户会选择那些去中心化程度最高、防审查性最强的链吗?哪怕是要以牺牲性能和高昂的网络费用为代价?或者,他们会接受降低防审查性的门槛吗?如果接受的话,这个门槛在哪里? ## 抵抗审查的数字黄金 基于本文提出的框架,我们可以客观评估数字黄金和可编程货币在可预见的未来可能实现独立的方式和原因。 比特币核心团队不惜一切代价把最大化 DBP 和交易验证作为首要任务,甚至不惜牺牲可扩展性和其它形式的实用性。通过降低比特币的效率,它的弹性得到了提升。比特币核心团队似乎没有受到任何限制,必须要牺牲技术效率来换取社交可扩展性。 你可以反驳说,即使考虑到他们的信仰,比特币核心团队也被误导了。例如,PoS 拥护者认为 PoS 的安全性比 PoW 更高,因为一旦某个恶意攻击者被识别出来,他的财产会立即被没收。反而在 PoW 方案中,作恶方可以继续永远攻击网络。 从长远来看,我们不知道 PoS 方案是否比 PoW 方案更能抵抗政府的攻击。这两个方案各有千秋。然而,我们知道 PoW 是经过时间考验的。鉴于比特币核心团队的首要任务是最大化审查抵抗性,根据我们的经验,比特币核心的开发者做出了正确的决定。 有证据表明,比特币核心团队的观点过于极端,为实现不必要的防审查性,比特币牺牲实用性,而效用的缺乏会导致比特币被边缘化。 目前的问题是,多大程度的 DBP 才足够呢?如果你的设计门槛不是“能够抵御来自美国、中国和俄罗斯的正面联合攻击”,而是更低一些的标准的话,那么无信任计算的设计空间会更加宽阔。 上世纪 90 年代,许多人认为互联网将成为一股最终的民主化力量,它将以前所未有的方式将人们联系在一起,摧毁传统媒体公司和专制政府。但事实证明,恰恰是这些大型公司和政府利用互联网来集中权力和控制权。 因为所有无信任计算系统都是无需许可的,意味着政府可以利用它们加强自身优势。除了正面攻击之外,政府也许会通过加密手段,采取新型和无法预见的新方式加强而不是放松对社会的控制。 ## 错综复杂的无信任计算模型 在可预见的未来,随着加密生态经历寒武纪试的试验性大爆发,上述无信任计算扩容模型都将共存并繁荣发展。 在目前和未来某个稳定的状态之间不存在一条明确的线性路径。相反,在事物变得更加同质化之前,它们可能要经历更加异质和相互交织的过程。 例如,开发人员或许会在 Polkadot 上创建新链,却发现 Polkadot 上的某条中继链达到了极限。这条 Polkadot 上的中继链或许与其它中继链相连,而后者又通过 Cosmos Hub 与 EOS、以太坊和 Kadena 上的链相连。每条链都可能被切分。各种以太坊分片可能包含着使用 DPoS 和权威证明(PoA)共识保障安全性的 Plasma 链。 未来,这些主流系统中的合约都能调用 Truebit 进行链下计算,这使得上述系统更加具有不确定性。有多少工作可以交由 Truebit 处理?T它又将如何整合主链和侧链? 目前还不清楚这些系统的价值在哪里以及如何积累。有观点认为,如果 Cosmos 的 ATOM 代币不遵循门格尔的边际效用论,像 Cosmos 这样具备互操作性的链捕获不了这么大的价值(可能是数十亿和数万亿的差别)。Polkadot 的 DOT 代币也面临同样的风险。 随着时间的推移,我期望能在未来看到实质性的、即使不是彻底的融合。考虑到主权对某些链的基本价值(例如,那些政府控制的链),我认为 Cosmos 这样的系统即使成不了最大赢家,也总会有一席之地。 目前一切皆无定数,全看造化。 感谢 Trent McConaghy (Ocean)、Peter Czaban (Web3/Polkadot)、Jesse Walden (a16z)、Will Martino (Kadena)、Matt Luongo (Keep)、James Prestwich (Integral)、Robbie Bent (Truebit)、and Zaki Manian (Cosmos) 对本文的贡献。 注:完成本文的初稿之后,我发现 Trent McConaghy 早在 20 个月之前提出了类似的框架。特此感谢 Trent 对本文的贡献。 风险披露:Multicoin Capital 看多比特币、以太、Kadena 和 EOS。

有兴趣加入我们的团队,与我们共事,或者创造一些伟大的东西?

联系方式