http://www.www.tnmanning.com

重塑大发3d的可扩展性:状态和时间的分离

前言:关于大发3d的可扩展性,我们有各种共识机制的优化,比如Tendermint,也有分片模式等,而新的方案将时间和状态更新进行解藕,提出了异步处理的交易的解决方案,它能重新定义大发3d的可扩展性吗?让我们看看未来会发生什么吧。本文作者Ryan Gentry,由“蓝狐笔记”的“SIEN”翻译。

未来的一两年,会有很多智能合约平台面市(ETH2.0、波卡、Dfinity、Near、Algrorand、Kadena、Spacemesh、Solana)每个团队都在寻求与众不同的扩展性策略。(蓝狐笔记译注:同时已发布也不少,比如Harmony、EOS等)。

不过,这些方法中的大多数都没有解决拜占庭环境中分布式计算系统的一个基本问题:时钟问题。为了取得共识,网络中至少51%的机器必须以相同的时间和相同顺序执行同一交易。为实现这一点,机器需要就全局一致的时钟达成一致。

让许多互不信任的机器在拜占庭环境下就全局时钟达成一致,“时钟问题”是面临挑战的。一旦所有人就全局时钟达成一致,交易排序就会变得简单很多,因为每个交易都使用相同的全局时钟加上时间戳。

在现代加密时代之前,在其他大规模网络中,时钟问题已经凸显出来,尤其是在无线通信领域。手机信号塔必须同时支持数以万计的手机。这导致没有足够的带宽来让每部手机都按自己的无线电频率进行传输。因此,电信公司需要“多重接入技术”,以在同一频率上可以拨打多个电话。

二战时期发明了码分多址的技术,也就是CDMA。为了解决时钟问题,CDMA要求每部电话用唯一密钥对其数据进行加密,并与其他电话同时在几个频率上传输数据,依靠发射塔将组合信号分为单独的呼叫。这种模式效率的优化与加密模式的复杂性同步。对于要实现大规模采用的网络来说,它必须支持廉价低端设备,而这种优化的速度显得缓慢而稳定。

从2G网络诞生以来,通过实施时分多址(TDMA)技术,电信公司已经实现更快的效率提升,TDMA已经成为处理时钟问题的标准解决方案。TDMA指定这些发射塔,将每个无线电频率划分为时间段,并把这些时间段分配给每个电话呼叫。

以此,发射塔为网络提供全局可用的时钟。通过让每个频率支持多个同时进行的数据信道,并减少同一时间在相同频率上多个电话广播的干扰,这在有限的带宽上大规模提升了可扩展性。

在这篇文章中,我将探索不同大发3d在拜占庭环境下如何应对时钟问题。最后,我将论证,构建出最有效时钟的大发3d将能成功分离时间和状态,并能在安全和去中心化的方式下实现扩展,以支持数百万计用户。

有时钟的去中心化共识

Google的Spanner数据库是全世界性能最好的全球分布式数据库之一,有18个实例,其所有交易处理都同步。它支持50,000+TPS,最终性在1秒以内。Spanner利用了Paxos共识算法,该算法首次发布于1989年。Spanner是一个需要许可的可信数据库。Paxos允许Spanner在面临停电、服务器故障、恶意错误以及无数其他故障时,依然可以运行。

当如今吞吐量最高的大发3d仅有21个实例,还在挣扎着实现5,000+TPS时,Paxos是如何实现这样的性能的?Google有全职的工程师维护,定期到每个数据中心同步原子时钟,达到很高的精度。

提供全局可用的可信时钟允许对交易加上时间戳,这样,每个实例可以不用按顺序接收交易,但却能以正确的顺序来处理它们。这就是对时间和状态进行了分离。因为每个实例都会更新状态,而无须检查其对等节点以确保它们以相同的顺序处理相同的操作。

可以从Spanner中学到什么?如果在非拜占庭环境下有全局可用的时钟,那么达成共识是很容易的。

不幸地是,当今的智能合约平台还有两个额外的限制是Spanner所没有的:

1.为保证平台有抗审查能力,成为验证者是无须许可的
2.即使多达1/3的节点是恶意的,大发3d也必须保证用户的资金安全

如果任何人都可以在全球的任何地方启动验证者实例,那么,共识算法的设计必须能够包容不同的硬件和网络配置,以及必须管理恶意节点。此外,为了真正具有抗审查能力,不能信任带外信息(也就是Oracle问题)。

在Paxos发明20年之后,有人想出了在无须许可的计算网络中如何就规范的交易顺序达成共识。这个人就是中本聪,而解决的方案就是PoW共识。

PoW+时间链=时钟

值得注意的是,中本聪的预发布一分PK10代码实际上将大家熟悉的大发3d数据结构称为“时间链”。这一时间链设计为平均每10分钟滴答一次(通过巧妙地将PoW、难度调整和最长链规则结合在一起),其中每次滴答都以更新全局状态的交易区块的形式出现。

在节点执行一个交易区块之后,它会锁定,不做任何状态更新,直到它产生自己的有效新区块,或接收到来自网络的有效新区块。在PoW中,时间和状态耦合在一起,总是一致行进。没有状态更新,时间就无法推进。

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。