神刀安全网

“可信代码”的“可扩展性” 研究

2018年2月23日由KYLE SAMANI@ Multicoin Capital提供,翻译 Effe

每个“分布式加密网络”(也经常被称为“智能合约平台”或者“区块链”)都在进行一系列的独一无二的妥协。这些妥协不仅仅是存在或不存在某些特定的功能,而是对“可信代码”到底是什么的根本不同的观点。

本文旨在提供一个清晰的框架,通过这个框架,人们可以理解这些妥协以及它们如何影响“数字黄金”,“可编程货币”,“抗审查”和“无需许可”等“分布式加密网络”中的一些主要概念。一些定义:

“抗审查”完全的言论自由。用更专业的术语来说,可以将任意记录提交给区块链。

“无需许可”无需向第三方请求许可即可访问网络并验证其完整性。

我不会探索第2层的“可扩展性”的解决方案,例如LightningRaidenPlasma

但首先,我们需要为“可信任”一词建立背景。尼克·萨博将“可信任”视为技术效率的反函数。基本上,计算机效率越低,操纵就越困难。操纵越困难,你就越能信任它,因此使它变得“可信任”。换句话说,“分布式加密网络”为了“社会可扩展性-可信任”而牺牲了技术效率。

“分布式加密网络”的最终表现形式不仅仅是一个“可信任”的数据库(或区块链),如其中每个人都同意其当前状态,而是“可信任”的通用计算– “可信代码,它是数据库的超集。这可能有点难以把握。区块链使地球上的每个人都能对世界状况达成共识,“可信代码”是超越这一步的。它不仅能够了解世界的状态,而且能够证明特定的计算运行正确。

虽然比特币在技术上是可编程的 – 通过其脚本语言实现“可信代码”– 但实际上比特币只是一个“可信任”的数据库。虽然有一些努力在让比特币更具表现力(比如MASTtaprootscriptless scripts和RSK),但这些都没有成果。说穿了,开发者已经离开了比特币,去了更加广阔的“牧场”。

以太坊给开发人员提供了第一个可以任意进行“可信任”计算的平台。今天,以太坊在加密网络领域获得了绝大多数开发人员的信任。

许多人称以太坊为世界电脑。虽然这在技术上是正确的,但实际上并不是,因为两个相关因素:吞吐量和成本。在以太坊上运行计算的成本比在亚马逊网络服务(AWS)上运行相同计算的成本高出100,000,000倍。

“可扩展性”的三难问题

“可信代码”的“可扩展性”挑战可以被认为是一个三难问题的妥协:假定每个节点处理每个计算并且每个节点对这些计算的顺序达成共识的区块链可以具有以下三个属性中的两个:

“安全性”,“可扩展性”和“区块生产的去中心化(DBP)”。

安全性可以量化为发起影响区块链存活或交易顺序的拜占庭攻击的成本。请注意,安全性并不是指加密签名的完整性,也不是指第三方从公钥导出一组私钥的可能性;

可扩展性可以量化为每单位时间系统可以处理的事务数量(TPS);

DBP可以量化为区块生产者的数量。

是什么导致“可信代码”系统实现一套妥协,抑或是另一套妥协?是共识机制和系统架构的组合。本文的其余部分将探讨这些概念,最后会引入“链下计算”(off-chain computation)方面的一些有趣的进展。

下面的每个系统在追求可扩展的“可信任”计算时进行了一系列不同的妥协。在本文中,我将使用1,2,3这三个数字来指代三角形的每条边:

“可信代码”的“可扩展性” 研究

第四个维度:Time to Finality(或者叫延迟、最终“确认”时长)

虽然不是“可扩展性”三难问题的明确部分,但在可扩展系统进行“可信任”计算的时候需要考虑第四个维度:Time to Finality(TTF),它对延迟有直接的影响。有些系统向来不保证最终“确认”,而是以概率方式来接近最终“确认”(比如比特币)。另外一些系统在一段时间后提供最终“确认”。 最终“确认”不仅对避免“双花”攻击非常重要,而且还因为如果要实现“跨链”通信,最终“确认”是必要的。TTF越慢,跨链通信中的延迟就越高。

很难在二维三角形上用一种视觉上干净的方式来代表TTF。因此,我将使用深色背景色来表示较快的TTF和浅色背景色来表示较慢的TTF。

三角形的“1号”边:“无需许可”的PoW共识机制 (比特币,以太坊1.0等)

在比特币之前,所有数字货币系统都存在同样的根本缺陷:用户必须信任第三方并由他来管理该系统,这个第三方可以审查交易。比特币的主要设计目标是设计一个系统,任何人都可以验证“账簿”的完整性,并且没有任何第三方可以审查交易。工作量证明(PoW)共识机制使得“抗审查”的,“无需许可”的“账簿”成为可能。

PoW共识机制在实现抗审查能力的同时却很难实现“可扩展性”,除非区块生产集中化。这种根本的妥协最终导致了比特币现金分叉,它相对于比特币而言,将进行集中化的区块生产(虽然对于这种做法存在争论)。

在这篇文章中提出的所有共识机制中,PoW是最“无需许可”的。从字面上看,任何拥有电脑和互联网连接的人都可以“见证交易”和“挖矿”。这在理论上能够实现最大的DBP。

但在实践中,因为“挖矿”的规模经济效应,所有“无需许可”的 PoW共识系统最终都区块生产集中化了。今天,在比特币以太坊区块链中,不超过20个组织/矿池控制了绝大多数的算力。从“分布式加密网络”有限的历史来看,似乎基于ASIC和GPU的挖矿算法中,这种区块生产集中化的现象总是会出现。

PoW共识机制受困于缓慢的TTF。实际从设计上,他们永远没有最终“确认”,而是随着新的区块被添加到区块链中,旧的区块中的交易成指数级的更可能是可以被最终“确认”的。这就是为什么很多人要等到6个额外的区块被添加到区块链上之后,才认为自己的交易被“最终确认”了。当考虑到比特币系统每10分钟出一个区块,所以可能需要一个小时甚至更长的时间才能完成比特币交易的“最终确认”,因为此时,交易被篡改的概率已经接近于0。

实际上,由于PoW共识机制中“挖矿”的规模经济效应,相关系统落在了三角形的右下角:

“可信代码”的“可扩展性” 研究

簇”PoWKadena

Kadena是我所知道的唯一一个试图通过PoW共识机制解决“可扩展性”问题的系统。Kadena通过创建一个称为Chainweb的区块链“簇”来实现这一点。在Chainweb中,除了“见证”自身区块链中的交易之外,每个区块链必须见证一些预先指定的其它区块链的区块头,以产生新的区块。

为了实现消息和价值的“跨链”传递,用户需要向Chainweb中的其他区块链提交“声明”一条区块链的状态的Merkle证明。因为不是所有的区块链都直接相连,所以用户可能必须“跳”几次才能将消息从一条区块链传递到另一条区块链。

乍一看,这有点像以太坊的“分片(Sharding)”方案(后面有更多相关的内容)。然而,以太坊的Sharding将交易见证和共识机制分离到“辐条链spoke chains”和“中心链hub chain”中分别完成,但Kadena并未把交易见证和共识分开,在Chainweb中,每条区块链都保持着自己的共识方式,Kadena提供了一种从根本上非常独特的方法。

 Kadena的ChainWeb 看起来像这样:

“可信代码”的“可扩展性” 研究

ChainWeb的独特之处之一就是在扩展系统的同时提升了安全性。为什么?因为每个区块链都会引用来自其他区块链的区块,Chainweb中的区块链越多,发起51%攻击的难度越大。在此模型中,撤销一条区块链上的交易需要撤销系统中每个其他区块链上的交易,鉴于区块链自然交织在一起,随着区块链的数量的增长,这变得越来越困难。这与三角形“3号”边上的区块链相反:其中,随着区块链的数量增加,系统的总体安全性不会显著增加。

这种设计基本上解决了“可扩展性”的难题,但是有一个重要的妥协:TTF和跨链延迟。

从一条区块链到另一条区块链可能需要跳多次,Kadena的目标是在PoW体系中提供<1分钟的TTF,从而如果在Chainweb中发送消息需要跳几次,那么就需要几分钟。

尽管存在这种限制,但Kadena提供了一个真正地建立在经过验证的共识机制-PoW-上的解决方案,来解决“可扩展性”难题。尽管“簇”为整个系统增添了新的变量,但每条区块链都是一个PoW区块链。PoW共识机制经历了比“股权证明(PoS)”更严格的验证,因为通常在现实世界中证明共识机制的安全性需要数年的时间。正因为如此,Kadena的建立在PoW共识之上的“可扩展性”提升方案具有真正的价值和机会。

在三角形上,Kadena落在这里:

“可信代码”的“可扩展性” 研究

Proof–of–Stake股权证明

上面介绍的方案是基于PoW共识机制的,下面的方案是基于PoS共识机制。

实际上,从设计上,相对于纯粹“无需许可”的PoW共识机制,所有的 PoS系统都将区块生产进行了集中化。这是由于区块生产者的数量和吞吐量之间存在着天然的冲突。

但是,这并不意味着所有的PoS共识机制都对区块生产者进行了相同程度的集中化,正如我们将看到的,使用PoS方案可以实现各种各样的DBP。

PoS共识机制在实践中接受的考验比PoW方案要少得多。例如,第一个PoS的实践者- Peercoin -曾经遭受“nothing-at-stake”攻击,等等。因此,PoS共识机制应该被认为具有更高的风险。

三角形的“2号”边:区块生产集中化(EOSCardanoNEO等)

“委托权益证明(DPoS)”共识机制在承认PoW机制会因为“挖矿”的规模经济效应而自然集中化的基础上,主动拥抱集中化。鉴于这一实际情况,DanLarimer[if !supportNestedAnchors][endif]发明了DPoS,它承认了区块生产自然而然集中化的事实,并利用它实现“可扩展性”。

例如,EOS作为Larimer最近的项目,公开宣称该系统一次只有21个区块生产者。预计最终只能在数据中心运行EOS节点。

通过限制区块生产者的数量,可以认为每个区块生产者具有更多的资源。此外,减少区块生产者的数量可以减少拜占庭容错(BFT)算法的延迟,这些算法通常需要n ^ 2个消息才能达成一致。减少DBP显然会增加“可扩展性”。

基于DPoS共识机制的链不仅可以提供可扩展性,而且TTF速度更快,因此延迟更低。EOS特有的仅仅0.5秒的出块时间,这在其他共识机制中根本不可行,这是DPoS系统的主要优势。许多应用程序需要低延迟和高吞吐量。

以去中心化交易所为例,随着以太坊的0x生态系统的成熟,延迟和吞吐量的劣势变得越来越明显。目前最大的问题之一是快速增长的“冲突订单order collisions”的数量,这是由以太坊缓慢的出块速度和高延迟直接造成的,虽然0x团队提出了解决方案,但目前还不清楚对于这些由于以太坊区块链的内在限制而产生的问题是否有效。考虑到DPoS共识机制提供的快速出块,高吞吐量和低延迟,这完全不成问题。

总的来说,DPoS共识机制押注在:

有一些应用程序可以接受“相对中性的数据库”以达到高吞吐量和低延迟。

并非所有的分布式系统必须是“那么的”分布式,以便正面承受来自政府的攻击(审查和监督等)。

在三角形上,DPoS共识机制系统将落在三角形的底部。请注意,相对于之前的2个三角形(TTF较慢的系统),DPoS系统提供快速TTF,因此使用较深的背景色进行表示。

“可信代码”的“可扩展性” 研究

三角形的“3边:许多区块链的集合(CosmosAIONICONArk

CosmosAIONICON,和Ark的团队看来,最终会有几十万甚至上百万条区块链。不同于以太坊或EOS这种单一链,在三角形的“3号”边建立分布式加密网络的团队认为,不同的应用程序不一定共享同一组见证人,而是拥有自己独立的见证人。

在“可扩展性”三难问题的背景下,“3号”边的分布式加密网络中的每条单独的区块链都拥有较低的价值。因为在PoWPoS共识机制中,安全性随着区块链“价值”的增加而增加,所以“3号”边的系统中的每条链通过降低安全性而获得了“独立自主权”(这可能不是必要的和有价值的),可扩展性和快速的TTF

为什么“独立自主权”有价值?通过一些例子我们很容易理解。比如国家出于行政管理的目的而采用区块链,他们会希望用自己的见证者来强化他们的社会价值,而不是使用其他国家或全球见证者的集合。再例如,以太坊和以太经典不应共享见证者。

对于“独立自主权”的明显的反面案例是以太坊本身。2013年,Vitalik意识到每个应用程序开发人员都在处理与挖矿和共识相关的相同挑战,为了让开发人员可以专注于应用程序层,他决定把复杂的挖矿和共识抽象出来,从而构建了以太坊。

在云计算的发展历史中,有一些有趣的相似之处。在二十一世纪初,许多网站托管服务商在一台服务器上托管多个网站,当一个网站收到过多的流量时,服务器就会崩溃,并导致托管在同一台服务器上的其他网站无法提供服务。在很多方面,以太坊就像早期的网站托管服务商,它只是简单地将太多东西捆绑在一起,然而却创造出一个总体上不稳定的系统。

网站托管问题的解决方案是虚拟机(VM)。通过将每个应用程序隔离到单独的VM中,单台服务器可以运行多个应用程序,从而最大限度地提高硬件利用率并降低成本,同时保持完整性。在流量大量涌入的情况下,单个虚拟机会崩溃,而不是服务器上的所有虚拟机。而且随着技术的发展,虚拟机跨物理服务器的迁移变得可行,从而进一步提高了冗余和安全性。结合可实现大规模水平可扩展性的系统,虚拟机成为云计算的关键组件之一。近来,Docker Containers已经开始逐步取代虚拟机,但Docker Containers并没有从根本上改变这种内在机制。

如果由于上述原因,分布式应用程序必须位于不同的链上,那么位于三角形的第3条边上的分布式加密网络将有很大的机会。

为了支持这个未来,第3条边上的分布式加密网络需要轻松地接纳新的区块链,并使区块链之间彼此互操作。Cosmos正在用Ethermint使这个愿景成为现实。Ethermint是一个100%开放和免费的空白模板区块链,它基于Tendermint共识算法 – 由Cosmos团队率先推出的半集中式,高吞吐量,低TTF共识算法- 运行以太坊虚拟机(EVM)。Cosmos希望应用程序开发人员在开发完成后,仅仅接入分布式加密网络即可。AION,ICON和Ark总体上来说具有相同的愿景,并正在努力通过模板化的方式来帮助应用程序开发人员快速轻松地被系统纳入网络。(请注意,尽管Wanchain 通常被列为“可互操作区块链”解决方案,但它与本节中的其他内容大不相同,并且不提供相同的功能。)

请注意,这些系统提供快速的TTF,这是因为每条链都是相对集中化的,可以实现低延迟。尽管每条链都是相对集中化的,但整个系统是相当分散的,因为如此多的区块链都拥有各自独立的见证人,并且使用不同的共识机制。

在三角形上,众多较小的,可互操作的区块链的集合的愿景可以形象化地表示如下:

“可信代码”的“可扩展性” 研究

分片Sharding(以太坊2.0Polkadot

Vitalik和Gavin Wood多年来一直在公开讨论以太坊分片(Sharding)。

每个分片基本上就是一条独立的区块链。以太坊中的分片与Cosmos生态系统中的独立区块链之间的区别在于,在Cosmos中,每条区块链必须管理自己的共识机制(也就是安全),而以太坊分片则不然:所有分片的共识(也就是安全)汇集在一起,并由“主分片”中的见证人管理合约进行管理。在大多数情况下,集中的“安全”应该比分散在许多区块链中的较低的“安全”要好。

到目前为止还没有人将任何一个分片区块链投入运转(虽然Zilliqa声称如此,但他们所做的并不是“全状态”分片- Full State Sharding)。

Sharding解决了“可扩展性”三难问题,尽管是以牺牲区块链的“独立自主权”为代价的。此外,跨分片的通信可能会造成延迟,主要是由每个分片的共识机制导致的。

以太坊将使用Casper来实现每个“分片”的区块的最终确认TTF。虽然具体参数还没有确定,但看起来Casper很可能会以分钟为单位测量TTF,这使以太坊成为了高延迟的系统。

使用被称为“阈值中继(threshold relay)”的新型共识算法,DfinityAlgorand的目标是在单个“分片”中提供DBP,安全性,比以太坊更高的可扩展性(尽管远低于DPoS提供的可扩展性)和快速TTF。如果“阀值中继”在实践中也能像它在测试环境中表现的那样有效,我们可以期望看到Dfinity和Alogrand将它们的区块链分片,并利用快速TTF和低延迟来提供有效的跨分片通信。

Polkadot将作为使用TBA BFT共识算法的分片网络发布,该算法以牺牲DBP为代价提供快速确认(与Tendermint有类似的妥协方案)。不过,Polkadot可能会在以太坊或Dfinity之前推出分片网络。与以太坊和Dfinity不同,Polkadot不需要每个分片使用特定的状态机,如EVM或WebAssembly(WASM),相反,Polkadot允许每个链定义自己的状态机。这将允许像Stellar这样的协议 – 专注于发布任意数字资产而没有任何智能合约功能,或者Zcash – 它需要一个高度优化的状态机来处理SNARK证明,可以将其自带的共识系统移至Polkadot。

总结以上内容:

协议共识机制虚拟机(每个分片)公共分片计划

EthereumCasperEVM→eWASM定义,开发中

DfinityThreshold RelayWASM未定义

PolkadotTBA未定义定义

全状态分片(Full State Sharding)是一个未解决的计算机科学问题,可能没有人能在生产环境中大规模地将其实现。但是,如果可能的话,它可能是解决可扩展性难题的最佳途径,同时提供快速TTF和低延迟。

在三角形上,分片的PoS可以表示如下:

“可信代码”的“可扩展性” 研究

可验证的“链下计算”(Verifiable Off-Chain Computation

为了达到“可信任”,如果用户不是去降低效率,而仅仅是要求单台计算机“可信任地”执行计算?有没有办法证明计算是正确执行的,而不要求数十或数百台计算机执行相同的计算?因为效率低是区块链固有的特征,我们是否能够撇开区块链而获得“确定的正确”?

Truebit正试图通过“证明者-见证者游戏(prover-verifier game)”来实现这一愿景,这将通过交互式的“证明者 – 响应协议”来完成。在正常情况下,每个计算都是在本地完成的,只有一个计算者和少量几个见证者,没有额外开销。万一遇到挑战,计算者和见证者都需要重新运行基于WASM的计算密集型的虚拟机来找出作恶者。

“交互式见证”协议将区块链的透明性,安全性和不可篡改性与“链下计算”的效率相结合。由于Truebit发生在交互式轮次中,因此具有概率性,所以它在需要低TTF的环境中不会有效。Truebit运行于第一个“一致同意”共识机制,每个任务至少需要一个合理的见证者来确保安全。

今后,我们可能会看到Truebit或竞争对手使用SNARKs和STARKs来见证任意的使用“非交互式见证”的计算的准确性。如果到了这一天,Truebit将能减少TTF来增加可信的“链下计算”的设计空间。然而,SNARKs和STARKs作为通用方案,任意计算的零知识证明仍然具有高度推测性,无法证实,技术上效率低下,并且最终可能无法发挥其潜力。

开源,拷贝和政治

在未来足够长的时间范围内,占主导地位的区块链可能会采用较小的,主导性较低的区块链的最佳技术。例如,以太坊采用 zkSNARKs,这是Zcash中支持“隐私交易”的主要技术;此外,Vitalik已表示,他希望将以太坊搬到WASM(在以太坊之前将会被EOS和Dfinity采用);以太坊的热衷者提出Plasma作为以太坊所有不足之处的解决方案,因为它允许在以太坊生态系统中使用其它的共识算法和“状态机”。

鉴于此以及我的另外一篇文章《智能合约网络效应谬误》,区块链将依靠什么标识自己?

政治、意识形态、信仰。

假设没有人能够完美地解决“可扩展性”难题,那么不同的人和企业将需要最适合于自己手头的任务的独特的区块链。

最终,媒体会将此视为宗教之争。区块链将变得像宗教,因为他们的信徒是传教士,有动力传播他们的福音并转化他人。

用户是否会选择最大程度上去中心化的区块链,从而最大程度地抗审查,甚至愿意牺牲性能和支付较高的网络费用?或者他们会接受较低的抗审查阀值吗?如果是这样,那么这个阀值是多少?

“抗审查”的“数字黄金”

通过本文提出的框架,我们可以对“数字黄金”和“可编程货币”进行客观的评估:在可预见的未来如何以及为什么他们会独立存在。

比特币Core团队已经将不惜代价地最大化DBP和交易见证作为优先事项,甚至以可扩展性和其他形式的效用为代价。通过让比特币非常低效,从而使它更具弹性,比特币Core团队似乎对于使用“技术效率”换取“社会可扩展性-可信任”方面的追求没有止境。

你可以争辩说 – 即使考虑到他们的信仰 – 比特币Core团队也被误导了。例如,PoS机制的倡导者认为PoS比PoW更安全,因为如果恶意攻击者被识别出来,人们可以立即剔除他。这与PoW机制形成对比,在PoW机制中,恶意方可以永久性地继续攻击网络。

我们不知道长期来看,PoS机制是否会比PoW机制更能抵抗政府的“攻击”,双方都有很好的理由,但是,我们确实知道PoW是经过实战考验的。考虑到比特币Core的单一优先级是最大化“抗审查”,从我们已有的经验来看,比特币Core开发人员做出了正确的决定。

有人认为比特币Core团队的观点太过于极端,比特币为了获得多余的“抗审查”而牺牲实际效用,并且缺乏效用最终会导致比特币陷入无关紧要的地步。

现在的问题是,有多少DBP是足够的?如果你认为方案设计的前提约束条件不是 “经得起美国,中国和俄罗斯政府的全面的正面协调攻击”,而是有一些较低的条件,那么“可信任”的计算的设计空间就会扩大。

在90年代,许多人认为互联网将成为最终的民主化力量,通过以前所未有的方式将人们联系起来,从而摧毁传统媒体公司和政府的压迫。然而事实证明,大多数情况下,大公司和政府反而利用互联网加强了权力和控制。

由于所有用于“可信代码”的系统都是“无需许可”的,这意味着政府可以利用它们来获得优势。也许 – 不是进行全面的敌对和攻击- 我们会看到政府采用分布式加密网络的方式来加强对社会的控制,而不是放松。

“共存共生”的可信计算

在可预见的未来,随着分布式加密网络生态系统正在经历的“寒武纪大爆炸”式的大规模实验,上述用于“可信代码”“可扩展性”的所有模型将共同存在。

在当前和未来的稳定状态之间不会有明确的路径,事实上,在它们变得更加同质化之前将变得更加混杂并且交织在一起。

例如:开发人员可能基于Polkadot进行开发,仅仅发现单个Polkadot中继区块链达到极限;Polkadot中继区块链可以连接到其他Polkadot中继区块链,后者又可以通过Cosmos Hub连接到EOS,以太坊和Kadena区块链。这些区块链中的每一条都可能会被分片。各种各样的以太坊分片可能包含使用DPoS和“权威证明(PoA)”共识方案的Plasma区块链。

在这些主要系统中的每个合约都可以将Truebit用于链下计算,使得上面的所有交织更加简洁。有多少工作能够被卸载到Truebit,以及如何进行区块链内部和区块链之间(intra and inter-chains)的整合?

目前还不清楚这些系统在哪里以及如何产生价值。如果Cosmos的ATOM令牌不能成为“门格尔商品Menger Goods”,那么Cosmos就会成为这样的一个例子:像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), 和Zaki Manian (Cosmos) 在这篇文章上的贡献。

注意:在撰写本文的初稿后,我发现Trent McConaghy20个月之前 [if !supportNestedAnchors][endif]了一个类似的框架。特别感谢Trent对本论文提供的输入。

披露:Multicoin Capital在三角形的所有三条边上都有长仓。

转载本站任何文章请注明:转载至神刀安全网,谢谢神刀安全网 » “可信代码”的“可扩展性” 研究

分享到:更多 ()