——我们不将分片技术(sharding)作为一种扩展技术

这篇文章简要介绍了一些关于分片的争论,以及我们对Tezos“扩展性”的计划。

摘要:扩展并不需要真正的二次方,非常高的交易量也可以在不显著损害去中心化的前提下而实现,一个更强大的技术就在眼前 – SNARK 或者STARK。

扩展并不需要真正的二次方

区块链模型通常被描述为让每个参与者验证每个交易。如果交易次数随着参与者数量的增加而增加,那么将要验证的次数是整个网络参与者数量的二次方,然后才能进行下一步。人们经常争论说,只要这仍然是主流范式,那么没有任何调整可以提高“扩展性”。这被用来证明“分片”是一种可行的扩展技术或方法,这样可以让验证者在单独的子链上工作,然后这些子链再周期性地编合在一起。然而,这种二次方扩展的概念仅在狭窄的理论层面上是正确的,而不具有现实相关性。

首先,比特币区块链的交易吞吐量的一个主要瓶颈是,验证时间相对于区块间隔来说非常短以避免孤立区块。权益验证 (POS)的区块链具有同步共识模型,仅仅要求验证时间短于区块间隔(某些工作验证POW方案,比如Bitcoin-NG,无此问题)。假设验证速度为17秒/ MB,吞吐量可以增加到1到2个数量级,意味着验证速度可以减小到1.7 秒/MB或者 0.17秒/ MB。虽然每个验证者仍然需要验证每笔交易,但两个数量级的增加还是不可小觑的!

其次,更重要的是,这一思路让参与网络的验证者同时也使用网络简单的支付验证是原始比特币白皮书中描述的一项技术,可以在不进行有效验证的情况下使用网络,同时最大程度降低信任。一般来说,越多独立的个体参与验证区块链,他们越不可能串通和破坏账本的内容。更为讽刺的(或者可能是谨慎的)观点是,每个个体本质都是腐败的,因此网络的安全会随着验证者的数量和贿赂成本的增加而线性增加。但即使如此,网络的安全,本质上是与独立验证者的数量相关,而不是与网络参与者的数量相关。随着参与者数量的增加,验证者的数量并不需要按比例增加,他们可能成为网络中一小部分,但不会破坏网络的安全性。

高交易量可以在不显著损害去中心化前提下获得

——低门槛的验证

一个更复杂的观点是,自由出入的验证者群体的权利对维持验证者诚实性至关重要。

如果没有新鲜血液的验证者进入和竞争,一群恶意的验证者可能很快就会成为一个稳定的垄断群体(卡特尔cartel 群体)。如果验证区块链的计算要求很高,那么它可能会垒起一个技术护城河来保护这群卡特尔验证者。分片以太坊区块链的目的是能够让“便宜的笔记本电脑”来验证拟定方案中涉及的轻量级子链。他们也暗示了一个经济模型,验证者投钱下注去说服其他验证者相信他们的验证,而不需要再去检查他们的工作。

我们来看看一些实际的数字。 Visa的峰值交易率为每秒4000笔。 ED25519(一种加密学算法)验证操作需要273364个周期。在当代CPU 3Ghz计算机上,这意味着可以在0.36s内验证超过4000个签名。当然,验证区块链不仅仅只是验证签名,但验证签名往往占用绝大部分计算资源。

使用Visa的高峰交易速率可能过于保守。毕竟,小额交易和网络交易的迹象表明交易量需求大大的增加了。让我们大胆地将这一速率提高一百倍。粗略的保守估算,每秒40万笔交易可以通过千兆网络和低于2万美元的服务器机群实现。在大部分OECD 国家里,千兆网络只需要每年几百刀就可以实现了。2万美元的服务器机群可能在五年后只需要2000美元不到就能搞定。这些就是支持高于VISA 峰值交易量100倍所需要的资源。

即使我们看到交易吞吐量需求的激增,同时计算能力和带宽的成本也会急剧下降。当然,还有很多链下扩展解决方案,比如支付渠道,这是实施小型支付的更合理的方式。

在我看来,以太坊分片区块链的做法似乎太复杂了。为了获得最大的信誉,他们似乎正在用形式验证工具来解决这一问题,包括关于贿赂验证人的经济假设的验证。我赞赏这种方法(我们非常重视Tezos中的形式验证,并设计了我们的架构来实现它),但是在验证高吞吐量的成本比标准挖矿更合理的当下,我不明白他们为什么采取如此复杂的尝试。

我的理解是,这个领域的人过分理想化了链式验证和共识参与。人们经常说比特币是一个“无需权限”的网络。对我来说,无需权限意味着我可以建立一个网站并立即开始接受比特币。特别是,我不需要银行的批准,就可以开始接收或发送比特币。它是金融自由的强大武器。然而,很多人都认为挖矿使比特币拥有无需权限的特征。我觉得这令人费解。某种程度上,我们可以争辩说,挖矿算法实现了“无需许可”,但是交易和存储价格才是有意义的事,而不是hashing哈希计算。

正如我们之前所说的,验证的低门槛对于维持一个健康的去中心化和公开的网络非常重要。但是在实现了公开性后,作为一个用户,成为一个小矿工和微薄的贡献是无关的。最好的情况下,我会做一个象征性的声明,最坏的情况是我会在电价和比特币价格之间进行赌博。考虑到我通常交易的金额,我最多仅需要担心一下安全协议验证工具(SPV-Security Protocol Verifier)级别的安全性。任何完全验证这条链的交易金额都可以承担这样做的花费。链条验证必须能够以廉价方式访问的想法似乎更多地来源于错误的平等主义意识形态,而不是来自实际的经济或安全论点。

一个更强大的技术就在眼前

一个简单但非常实用的链验证方法就在眼前,它就是仍处于活跃研究中的“递归SNARK (recursive SNARK)”。SNARK全称是简洁的非交互式零知识知识证明,是Zcash用于保护交易隐私的技术(如果你不喜欢SNARK需要建立可信赖的设置,请耐心等待,我们有更好的好消息)。除了保护隐私的好处之外,SNARKs可以成为增强可扩展性的强大工具,而且我们希望在未来的Tezos迭代中采用该工具。

下面是它的工作原理:选取某段计算机代码,例如验证从A发送到B交易令牌的代码。通过该代码,你可以生成一个零知识证明,你知道这是一个有效的交易。从而不用将交易本身提交给矿工,你可以只提交与证明一起的余额变化。无论交易的复杂性如何,该验证过程都可以被任何验证者在几毫秒内完成。这意味着智能合同的交易费将成为过去。你可以在你的机器上运行一个智能合约,你可以让它执行数小时的计算,然后向网络提交一个小小的证明,证明你做了计算并且这些数字确实符合计算值。这种显然违反直观的可能性是计算复杂性理论(PCP)的一个结果。如此我们可以获得真正的加密保证该交易被充分验证,而不用试图参与到经济赌注中。

以上只涉及到表层。有一种可能性,待生成的证明是一个你之前见证过和验证过的证明,而这就是另一个新的证明 (这就是为什么叫做重复递归SNARK的原因)。因此,区块创建者可以汇总他们收到的所有证明并生成一个新的证明,证明他们已经看到所有这些其他证明。这些交易仍然是完全隐私不可见的,包括区块创建者,但他们都会被压缩成一个加密证明。区块创建者然后会把那一个,单独的证明以及相应的交易结果一起发布出来。

更深一步,我们可以想象一个区块链,其中每个区块链仅由账本内容的原始哈希值(root hash)和有效交易(包括智能合同交易)的证明组成。这让账本进入新的状态,而且存储在前面区块的证明本身是有效的。

事实上,这意味着用户从创世区块开始同步验证整个链条的时间,不会超过一秒钟。

SNARK有一个众所周知的缺点:他们需要建立一个可信的机制,可以安全地执行,但事后不能审计。然而,最近一个不同的构想被公布出来:STARK。他们共享类似的属性,但是不需要建立信赖机制,并依赖于较少的数学假设。但STARK技术的额外好处是:他们免疫于量子计算的攻击。我推荐观看Eli Ben Sasson关于这方面的研究介绍。(https://www.youtube.com/watch?v=HJ9K_o-RRSY)

那有什么需要的注意的吗?为什么区块链社区目前不使用这种魔术技术?不幸的是,这种方法的致命弱点是证明生成仍然需要相当长的时间,远超过我所描述的实用方案所要求的时间。证明已被验证的证明的另一个证明(递归SNARK)可以在一分钟水平上实现。STARK领域的研究非常活跃,而且证明生成的速度已经大大提高。 目前STARK证明生成已经比SNARK快三倍。我们大胆的估算,未来几年STARK证明生成的速度会继续保持快速增长。貌似我们可以有采用一些最有可能实现的技术。

在这些最有可能的技术中,我们特别感兴趣的是设计一种编程语言的可能性(编程语言理论是我们的工具)。该编程语言在STARK的计算模型(有限的多项式迭代)中是有效的,同时能描述智能合约的逻辑。另一个值得探索的是为此任务建立专用硬件。

结论

以下是我们扩展Tezos交易量的计划:

  1. 拥有大的区块有很重要的意义(因为我们没有使用比特币的工作证明共识算法),所以我们打算这样做,因为渐近性的成本问题,但现实世界中的倍增系数也是如此。
  2. 使用支付渠道等离线扩展解决方案。并非所有事情都需要在区块链上进行。在智能合约平台上构建闪电般的网络也比比特币更容易。
  3. 需要认识到, 从长远角度来看计算和带宽成本的下降速度将远远超过未来交易的需求。
  4. 验证的计算能力要求会比普通的笔记本高。我们显然不希望我们的验证者只能是财富500强公司,但我们也可以构建安全的区块链即使在验证无法立即进行验证的情况下,比如囊中羞涩的大学生。重要的是,这些大学生可以使用并信任区块链,他们可以在其上开发出出色的应用程序并部署智能合约。网络并不是由极客在地下室用顶级路由器运行而制造的。网络验证并没有什么特别之处,我们更重视大众的参与。
  5. 在我们的第一个版本中,我们将从非常保守的参数和低吞吐量开始,以促进广泛采用。因此,一开始便宜的笔记本电脑实际上足以验证区块链。但是,随着网络的建立越来越成熟,我们认为Tezos的利益相关者将被建议提高验证者的吞吐量和相关的计算负载。利益相关者的利益将是在验证的低成本,促进去中心化和高交易量之间找到平衡点,所有这些都有利于最大限度地发挥其代币的价值。很难给出具体的数字,但是我们的相关经验认为,高达每月1000美元的验证费用不会对网络的分散化造成重大影响。然而,我们不能将这种建议强加给代币持有者。
  6. 搁置以上的各种博弈。忘记去中心化和吞吐量之间的冲突,忘记担心验证的成本。让我们努力改进零知识证明技术,如此我们可以将区块链转变为碎小的证明,从而任何人都可以在一秒内得以验证。

作者:Arthur Breitman/Apr 19, 2017

原文链接

翻译:Tezos中文社区成员/祥子