Aptos白皮书中文版

在此先感谢肥龙猫翻译小组组长@feizijie01用的机器翻译

你问我看这玩意有啥用?

起码以后能在广大韭菜面前说,哥当年也是看完了aptos的白皮书!

由于片尾太长,我这边先把广告打完以免大家没耐心看到

谢谢大家的关注,我是肥仔杰,推特@feizijie01

要是真没耐心看完,这边有个5分钟版白皮书

以下为正文

=======================================================

Aptos区块链:安全、可扩展和可升级的Web3基础设施

摘要

区块链作为一种新兴的互联网基础设施而崛起,让开发者得以惊人的速度部署了数万个去中心化的应用程序。不幸的是,由于频繁的中断、高成本、低吞吐量限制和许多安全问题,区块链的使用还不普及。为了在web3时代实现大规模采用,区块链基础设施需要遵循云基础设施的路径,作为一个可信的、可扩展的、成本效益的、不断改进的平台来构建广泛使用的应用程序。

我们提出了Aptos区块链,设计以可伸缩性、安全性、可靠性和可升级性作为关键原则,以解决这些挑战。Aptos在过去三年中由全球的350多名开发人员共同开发。它在共识、智能合同设计、系统安全、性能和去中心化等方面有所创新。这些技术的结合将为Web3的普及提供一个重要的基础模块:

第一,Aptos区块链本地集成并在内部使用Move语言,用于快速和安全地执行交易。Move prover是用MOVE语言编写的智能合约的正式验证器,它为合约的常量和行为提供了额外的保护措施。这种对安全的关注使开发者更好地保护他们的程序免受恶意入侵。

第二,Aptos数据模型可以实现灵活的密钥管理和混合托管选项。这一点,以及签名之前的交易透明度和实用的轻客户端协议,为用户提供更安全、更值得信赖的体验。

第三,为了实现高吞吐量和低延迟,Aptos利用了一种流水线和模块化的方法来处理交易的关键阶段。具体来说,交易广播、块元数据排序、交易并行处理、批存储和分类帐认证都同时进行。这种方法充分利用了所有可用的物理资源,提高了硬件效率,并实现了高并发处理。

第四,一些需要提前知道数据读写知识的并行引擎,打破了交易的原子性,而aptos对开发人员没有这种限制。它有效支持任意复杂事务的原子性,为实际应用程序提供更高的吞吐量、更低的延迟,并且简化开发。

第五,Aptos模块化架构设计支持客户的灵活性,并优化频繁和即时升级。此外,为了快速部署新的技术创新和支持新的web3用例,Aptos提供了嵌入式的链上变更管理协议。

最后,Aptos区块链正在试验未来的举措,以提高单个验证器的性能:其模块化设计和并行执行引擎支持验证器的内部分片,同构状态分片提供了水平吞吐量可扩展性的潜力,而不增加节点操作员额外的复杂性。

一,介绍

在互联网2.0时代,信息、社交媒体、金融、游戏、购物和音频/视频流等服务都是由控制用户数据直接访问的中心化公司提供的(如谷歌、亚马逊、苹果和Meta)。这些公司使用针对目标用例优化的特定于应用程序的软件开发基础设施,并利用云基础设施将这些应用程序部署给用户。云基础设施提供了对虚拟化和/或物理基础设施服务的访问,例如租用的虚拟机(VMs)和在全球数据中心内运行的裸金属硬件(如AWS、Azure和谷歌Cloud)。

因此,构建能够扩展到数十亿用户的web2互联网服务从来没有像今天这样容易过。然而,web2要求用户明确地信任中心化实体,这一要求已经越来越引起社会的关注。

为了解决这种担忧,一个新的互联网时代已经开始:web3。在互联网3.0,区块链已经出现,提供了去中心化的、不可变的账本,使用户能够安全可靠地交互,所有这些都不需要对控制中介或中心化实体的信任。类似于web2互联网服务和应用程序如何依赖云基础设施作为构建块,去中心化的应用程序可以使用区块链作为去中心化的基础设施层,以覆盖世界各地的数十亿用户。

然而,尽管目前存在许多公链,但web3尚未广泛应用。虽然技术继续推动行业发展,但现有的区块链不可靠,对用户收取较高的交易费用,具有低吞吐量限制,由于安全问题而遭受资产损失,不能支持实时响应。与云基础设施使web2服务达到数十亿美元体量相比,区块链尚未使web3应用程序实现同样的规模。

二 ,Aptos的愿景

Aptos的愿景是提供一个区块链,可以让web3引入主流,并授权一个去中心化应用程序的生态系统来解决现实世界的用户问题。我们的使命是通过提供一个灵活和模块化的区块链架构,来推进提高区块链在可靠性、安全性和性能方面的最先进水平。该体系结构应该支持频繁的升级、快速采用最新的技术进步,以及对新的和新兴的用例的一流支持。

我们设想了一个分散的、安全的、可扩展的网络,由使用它的社区管理和运营。当全球的基础设施需求增长时,区块链的计算资源将水平和垂直扩展,以满足这些需求。随着新的用例和技术进步的出现,网络应该频繁地、无缝地升级,而不中断用户,降低他们对基础设施的担忧。

开发人员和用户将可以访问许多不同的权限,包括关键恢复、数据建模、智能合同标准、资源使用权衡、隐私性和可组合性。用户知道他们的资产是安全的,总是可用的,并以极低的手续费进行访问。任何人都可以安全、轻松地与世界各地的任何个体或者组织进行交易。区块链和云基础设施一样无处不在。

为了实现这一愿景,必须取得重大的技术进步。我们在过去三年中构建、开发、推进和部署Diem区块链(Aptos的前身)的经验证明,一个网络可以在不干扰其客户的情况下不断升级其协议。在2020年初,Dime主网被部署到十多个节点运营商和多个钱包提供商.

在接下来的一年里,我们的团队发布了两个主要的升级,改变了共识协议和核心框架。两个升级完成,用户没有停机。通过Aptos区块链,我们对技术堆栈进行了一系列彻底的改进,同时也将安全、透明和频繁的升级作为核心功能。我们强调了处理交易的新方法(如第7节所述)和去中心化与网络治理的新方法。

随着Aptos不断改进和增长,我们将发布本白皮书的更新版本,其中包括我们的协议和设计选择的最新迭代版本。在本文档的其余部分中,我们将描述Aptos区块链的当前状态以及未来的计划。

三 ,概览

如图1所示,Aptos区块链由一组验证节点组成,这些验证节点使用拜占庭容错(BFT)、股权证明共识机制共同接收和处理来自用户的事务。令牌持有者在其选定的验证节点中锁定或持有令牌。每个验证节点的共识投票权重与其中所投入的金额成比例。验证节点可以活跃并参与共识。同样地,如果验证器没有足够的股份参与,旋转出验证器集(直译),在同步区块链状态时选择脱机,或者由于历史性能不佳而被共识协议淘汰,那么它也可能处于不活动状态。

客户端是系统中需要提交事务或查询区块链的状态和历史记录的任何部分。客户端可以选择下载并验证查询数据的验证器签名证明。完整节点是从验证器或从网络中的其他完整节点复制交易和区块链状态的客户机。他们可以选择根据需要删除交易历史记录和区块链状态,以回收存储。轻客户端只维护当前的验证器集,并且可以安全地查询部分区块链状态,通常是从完整的节点上查询的。钱包是轻客户端的一个常见例子。

为了满足安全、快速、可靠、可升级的web3基础设施并且被广泛采用的需求,Aptos区块链建立在以下核心设计原则之上:

1,通过一种新的智能合同编程语言,Move,快速和安全的执行,以及简单的可审核性和机械可分析性。Move起源于Aptos的前身,并随着这个项目的发展继续发展。

2,通过批处理、流水线和并行的事务处理方法实现极高的吞吐量和低延迟。

3,新颖的并行事务处理,通过block-stm有效地支持任意复杂交易的原子性,不同于现有的并行执行引擎,它需要读写数据位置的预备知识。

4,通过节点淘汰机制、声誉机制、质押权重等等来提高性能与去中心化。

5,可升级性和可配置性作为首要的设计原则,采用新的用例和最新的技术

6,模块化设计,支持严格的组件级别测试,以及适当的威胁建模和无缝部署,所有这些都确保了高度安全和可靠的操作。

7,在保持去中心化的同时,还具有水平吞吐量的可伸缩性。其中分片是向用户公开的一流概念,也是编程和数据模型的原生概念。

第4节解释了开发者在Aptos中如何使用Move进行交互。第5节描述了逻辑数据模型。第6节详细介绍了Aptos如何通过强大的验证方法来实现安全的用户体验。第7节描述了关于流水线、批处理和并行化的关键性能创新。第8节详细介绍了不同客户端与其他节点同步状态的各种选项。第9节描述了我们的社区所有权和治理计划。最后,第10节讨论了在保持分散化的同时,未来的性能方向。

四,MOVE语言

Move是一种新的智能合约编程语言,它强调了安全性和灵活性。Aptos使用Move的对象模型来表示其分类帐状态(见第5.5节),并使用Move代码(模块)来编码状态转换的规则。用户提交的交易可以发布新模块、升级现有模块、执行模块中定义的入口函数,或者包含可以直接与模块的公共接口交互的脚本。

Move生态系统包含一个编译器、一个虚拟机和许多其他开发者工具。Move的灵感来自于Rust编程语言,它通过线性类型等概念在语言中明确了数据的所有权。Move强调了资源的稀缺性、保存和访问控制。移动模块定义了每个资源的生命周期、存储和访问模式。这确保了像硬币这样的资源在没有适当的凭证的情况下就不会产生,不能重复使用,也不会消失。

Move利用一个字节码验证器来保证类型和内存的安全,即使存在不受信任的代码。为了帮助编写更可信的代码,Move包括一个正式的验证器,Move验证器,能够根据给定的规范验证Move程序的功能正确性,用集成到Move中的规范语言制定。

除了用户帐户和相应的帐户内容外,分类帐状态还包含了Aptos区块链的链上配置。此网络配置包括一组活跃验证节点、质押的资产以及Aptos区块链中的各种服务的配置。Move支持模块可升级性和全面可编程性,所以可以无缝更改配置,并可以对Aptos区块链本身进行升级(两组升级都在私有主网上执行了多次,期间没有停机)。

Aptos团队进一步增强了Move,支持更广泛的web3用例。正如后面在第5.5节中提到的,Aptos区块链支持精确的资源控制。这不仅支持并行处理交易,而且还实现了访问和修改数据的成本基本固定。此外,Aptos区块链提供了建立在精确存储之上的用例支持,这允许在单个帐户中使用大规模的数据集(例如,大量的nft集合)。此外,Aptos支持完全在链上表示的共享或自治帐户。这允许复杂的分散式自治组织(DAOs)协作地共享帐户,并将这些帐户用作异构资源集合的容器。

五,逻辑数据模型

Aptos区块链的分类帐状态表示所有帐户的状态。账本状态使用无符号64位整数与系统已处理交易数量相对应。任何人都可以向Aptos区块链提交一个事务,以修改分类帐状态。在执行事务时,将生成事务输出。事务输出包含零个或多个操作来处理分类帐状态(称为写集)、结果事件的向量(参见第5.1.1节)、消耗的手续费和执行的事务状态。

5.1  交易

已签名的交易处理包含以下信息:

交易身份验证器:发送人使用包含一个或多个数字签名的交易身份验证器来验证交易是否经过身份验证。

发送人地址:发件人的帐户地址。

有效负载:有效负载引用链上现有的输入函数,或者包含作为内联字节码(称为脚本的)执行的函数。此外,一组输入参数被编码在字节数组中。对于点对点交易,输入包含接收者的信息和转移给它们的金额。

GAS价格(以指定货币/GAS单位表示):这是发送方为执行交易而按每单位GAS愿意支付的金额。GAS是一种支付计算、网络和存储费用的方式。GAS单元是一种抽象的计算测量,没有固有的真实价值。

最大GAS:最大GAS是交易在中止前允许消耗的最大GAS单位。该账户必须至少有GAS价格乘以最大GAS数量,否则该交易将在验证期间被取消。

序号:交易记录的序号。这必须与交易执行时存储在发件人帐户中的序列号相匹配。在交易执行成功后,将增加帐户序列号,以防止重播攻击。

到期时间:交易的有效时间。

链id:标识此事务有效的区块链,为用户提供进一步的保护,以防止签名错误。

在每个版本i中,状态变化由元组(Ti、Oi、Si)表示,分别包含交易、交易输出和生成的分类帐状态。给定一个确定性函数应用,执行具有分类帐状态Si−1的交易Ti将产生交易输出Oi和一个新的分类帐状态Si。即,应用(Si−1,Ti)→Oi,Si

5.1.1  事件

事件将在交易的执行期间发出。每个MOVE模块都可以定义自己的事件,并在执行时选择何时发出这些事件。例如,在硬币转移过程中,发送方和接收方的帐户将分别发出发送事件和接收事件。这些数据存储在分类帐中,并且可以通过一个Aptos节点进行查询。每个已注册的事件都有一个唯一的KEY,可以用于查询事件的详细信息。

发送到同一事件KEY的多个事件产生事件流,一个事件列表,每个条目包含一个从0开始的顺序递增的数字、一个类型和数据。每个事件都必须由某种类型来定义。可能会有多个由相同或相似的类型定义的事件,特别是在使用泛型时。事件具有相关数据。对于Move模块开发人员,一般原则是包括在执行更改数据和发出事件的交易之前和之后理解底层资源更改所需的所有数据。

交易处理只能生成事件,而不能读取事件。这种设计允许交易执行仅是当前状态和交易输入的函数,而不是历史信息(例如,以前生成的事件)

5.2  账户

每个帐户由一个唯一的256位值标识。当从现有帐户发送的交易处理调用creat_帐户(addr)Move功能时,将在分类帐状态下创建新帐户(参见第5.5节)。当事务尝试将Aptos令牌发送到尚未创建的帐户地址时,通常会发生这种情况。为方便起见,Aptos还支持一个转移(frome,to,amount)函数,如果一个帐户在转移之前还不存在,则该函数将隐式地创建一个帐户。

要创建一个新帐户,用户首先生成一个签名密钥对:(vk、sk)。接下来,使用与签名方案标识符(ssid)连接的公共验证密钥vk的密码哈希H推导出给定签名方案的新帐户地址:其中addr=H(vk,ssid)。

在地址addr创建新帐户后,用户可以使用私人签名密钥sk签名要从addr的帐户发送的事务。用户还可以换sk,以主动更改sk或响应可能的妥协。这不会更改帐户地址,因为帐户地址在创建期间只从公共验证密钥导出一次。

Aptos区块链不会将账户与现实世界的身份联系起来。用户可以通过生成多个密钥对来创建多个帐户。由同一用户控制的帐户彼此之间没有内在的链接。但是,一个用户仍然可以在一个钱包中管理多个帐户,以便进行简单的资产管理。这种灵活性为用户提供了假名,而我们为未来的版本提供了隐私保护原语。如第7.4节所述,还提供多个帐户以增加执行并发性。

5.3  MOVE模块

MOVE模块包含可声明数据类型(结构)和过程的MOVE字节码。它由声明模块的帐户的地址以及模块名称来标识。例如,图2中第一个货币模块的标识符是0x1::coin。一个模块可以依赖于其他链上的模块,如图2中的wallet模块所示,从而实现了代码重用。

一个模块必须在一个帐户中被唯一地命名,即,每个帐户最多可以声明一个具有任何给定名称的模块。例如,图2中地址为0x1处的帐户无法声明另一个名为coin的模块。另一方面,地址为0x3的帐户可以声明一个名为coin的模块,该模块的标识符为0x3::coin。请注意,0x1::coin::coin和0x3::coin::coin是不同的类型,不能互换使用,也不能共享公共模块代码。相比之下,0x1::coin::coin<0x2::wallet::USD>和0x1::coin::coin<0x2::wallet::JPY>是相同泛型类型的不同实例,不能互换使用,但可以共享共同的模块代码。

模块被分组为位于同一地址的软件包。此地址的所有者将包作为一个整体在链上发布,包括字节码和包元数据。这个包的元数据决定了一个包是可以升级的还是不可变的。对于可升级的包,在允许升级之前执行兼容性检查:不必须更改现有的入口点函数,也不能存储内存中的资源。但是,可以添加新的功能和资源。

Aptos框架由Aptos区块链的核心库和配置组成,被定义为一个常规的可升级的模块包(见第9.2节)。

5.4  资源

与模块类似,帐户地址也可以具有与之关联的数据值。在每个帐户地址中,值由其类型key控,每个类型的最多一个值属于该帐户。图3提供了一个示例。地址0x50包含一个值,0x3::coin::Coin为完全限定类型。0x3是coin模块存储的地址,coin是模块的名称,Coin是数据类型的名称。还允许使用泛型类型的值,而不同的实例化将被视为不同的类型。这对于可扩展性至关重要,因为它允许不同的实例化共享相同的功能代码。

修改、删除和发布值的规则被编码在定义数据类型的模块中。Move的安全性和验证规则可以阻止其他代码或实体直接创建、修改或删除在其他模块中定义的数据类型的实例。

在一个地址下最多有一个每种类型的顶级值,可以首先进行声音限制(这句话我是真的不懂怎么翻)。然而,这在实践中不是问题,因为程序员可以将其他数据定义为内部字段,从而避免了任何限制。图3中的Wallet结构是如何使用包装类型的示例。

还应该注意的是,并非所有的数据类型都可以存储在链上。要使数据实例符合顶级值,数据类型必须具有关键能力。同样,对于嵌套值也需要具有存储能力。具有这两种能力的数据类型也被称为资源。

5.5  分类帐状态

从Move虚拟机(MoveVM)的角度来看,每个帐户都由一组值和键值数据结构组成。这些数据结构被称为表条目,并以二进制规范序列化格式(BCS)存储。这种数据布局使开发人员能够编写智能合约,它可以有效地操作跨大量账户复制的少量数据,以及存储在少量账户中的大量数据。MOVE模块存储与帐户数据类似,但在独立的名称空间下。起源账本状态定义了初始帐户集及其在区块链初始化时的关联状态。

在发布时,Aptos区块链将由一个单一的分类帐状态来表示。然而,随着采用程度的增加和技术的发展,Aptos将扩大碎片的数量,以增加吞吐量(即,启用多个分类帐状态),并支持跨碎片移动或访问资产的事务。每个分类帐状态将维护特定碎片的所有链上资产,并提供相同的帐户模型和精确的键值数据存储,为存储提供接近固定的存储访问成本。

六,提供一个安全的用户体验

为了接触到数十亿的互联网用户,web3的用户体验必须是安全的和可访问的。在下面的章节中,我们将描述由Aptos区块链提供的旨在实现这一目标的几个创新。

6.1  交易可行性保护

签署交易意味着签名者授权区块链提交和执行该交易。偶尔,用户可能会在无意中签署交易,或者没有充分考虑他们的交易可能被操纵的所有方式。为了降低这种风险,Aptos区块链限制了每笔交易的可行性,并取消签名者无限时长的有效性。目前,Aptos区块链提供了三种不同的保护措施——发送者的序列号、一个交易过期时间和一个指定的链标识符。

一个交易的序列号对于每个发送者的帐户只能恰好提交一次。因此,发件人可以观察到,如果当前帐户序列号是≥的交易t的序列号,那么t已经提交或t将永远不会提交(因为t使用的序列号已经被另一个交易消耗)。

区块链时间具有高精度和频率(通常亚秒),详见7.3.1节。如果区块链时间超过了交易t的到期时间,那么同样地,t要么已经提交,或者t将永远不会提交。

每个交易都有一个指定的链标识符,以防止恶意实体在不同的区块链环境之间(例如,跨测试网和主网)重播交易。

6.2  基于MOVE语言的密钥管理

如第5.2节中所讨论的,Aptos帐户支持密钥轮换,这是一个重要的特性,可以帮助减少与私钥泄露、远程攻击和可能破坏现有密码算法的未来进展相关的风险。此外,Aptos的账户也足够灵活,可以支持新的混合托管模式。在一个这样的模型中,用户可以将帐户的私钥轮换权委托给一个或多个保管人和其他受信任的实体。然后,MOVE模块可以定义一个策略,授权这些受信任的实体在特定情况下轮换密钥。例如,实体可能由许多可信方持有的k-ouf-n多站点密钥表示,并提供密钥恢复服务以防止用户密钥丢失(例如,20%的比特币目前被锁定在不可恢复的帐户[7]中)。

此外,虽然许多钱包支持各种关键恢复方案,如将私钥备份到云基础设施、多方计算和社交恢复,但它们通常不需要区块链支持(即链外)。因此,每个钱包都需要实现自己的密钥管理基础设施,相关操作对用户来说变得不透明。相比之下,在Aptos区块链层支持密钥管理功能提供了所有与密钥相关的操作的完全透明度,并使具有丰富密钥的钱包管理变得更简单。

6.3  预签交易的透明度

如今,钱包对他们所签署的交易几乎没有提供任何透明度。因此,用户往往很容易被骗去签署恶意交易,这些交易可能会窃取资金,并产生毁灭性的后果。即使对于需要枚举每个交易访问的所有链上数据的区块链也是如此。因此,目前现有的用户保护措施很少,使用户容易受到各种各样的攻击。

为了解决这个问题,Aptos生态系统为交易预执行提供了服务:一种预防措施,向用户(以人类可读的形式)描述他们在签名之前的交易结果。将其与已知的先前攻击历史和恶意智能合同相结合,将有助于减少欺诈。此外,Aptos还允许钱包在执行期间指示对交易的约束。违反这些约束将导致交易被中止,以进一步保护用户免受恶意应用程序或社会工程攻击。

6.4 实用的轻客户端协议

仅仅依靠API提供者的TLS/SSL证书来建立区块链客户端和服务器之间的信任,并不能充分保护客户端。即使有有效的证书,钱包和客户也不能保证所呈现给他们的数据的真实性和完整性。因此,API提供商可能会返回不正确或恶意的区块链数据,欺骗第三方并执行重复攻击。

为了防止这种情况发生,Aptos提供了状态证明和轻客户端验证协议,钱包和客户端可以使用这些协议来验证由不可信的第三方服务器提供的数据的有效性。此外,通过利用第7.6.2节中基于时间戳的状态证明,轻客户端可以始终严格确保帐户状态的新鲜度(例如,在几秒钟内),并且只需要跟踪网络配置的变化(时代变化)或使用当前受信任的检查点(路径点)来保持最新的状态。通过结合高频时间戳和廉价的状态证明,Aptos区块链为客户提供了更多的安全保证。

此外,Aptos节点还公开了丰富的、高性能的存储接口,这些接口可以进一步进行微调,以允许针对链上的特定数据和帐户进行订阅证明。轻客户端可以利用这一点来保留最小的可验证数据,而不需要运行一个完整的节点或处理大量的事务。

七,流水线处理、批处理和并行交易处理

为了最大化吞吐量,提高并发性,并降低工程复杂性,Aptos区块链上的交易处理被划分为单独的阶段。每个阶段都是完全独立的和可单独并行的,类似于现代的超量处理器架构。这不仅提供了显著的性能优势,而且还使Aptos能够提供新的验证节点-客户端交互模式。例如:

当特定事务包含在一批持久事务中时,可以通知客户端。持久的和有效的交易极有可能立即提交。

当一批持久事务已安排序列时,可以通知客户端。因此,为了减少确定已执行的事务输出的延迟,客户端可以选择在本地执行事务,而不是等待验证节点远程完成执行。

客户端可以选择等待验证节点的已认证的事务执行,并对已验证的结果执行状态同步(例如,请参见第8节)。

Aptos模块化设计有助于加快开发速度并支持更快的发布周期,因为更改可以针对单个模块,而不是单一架构。类似地,模块化设计还提供了一个结构化的路径,可以将验证节点扩展到单台机器之外,从而提供了对额外的计算、网络和存储资源的访问。图4显示了跨各个处理阶段的事务生命周期。

7.1  批处理

批处理是一个重要的效率优化,它是Aptos中每个操作阶段的一部分。在交易广播期间,每个验证节点将交易分组为批,在协商一致期间将批合并成块。执行、存储和分类账认证阶段也分批工作,以为重新排序、减少操作(例如,重复计算或签名验证)和并行执行提供条件。

将交易事务分组为一批可能会导致少量的延迟,例如,在执行广播之前,要等待200毫秒来积累一批事务。然而,对于最大等待时间和最大批处理大小,批处理很容易配置,使去中心化网络能够跨延迟和效率自动优化。批处理还允许高效的收费市场对交易进行优先排序,并避免来自过度热心的客户的意外拒绝服务(DoS)攻击。

7.2  持续的交易广播

根据独角鲸和Tusk的主要见解,Aptos中的交易广播与共识脱钩。验证节点不断地相互处理事务,同时利用所有可用的网络资源。由验证节点v分发的每个批都被持久化,批摘要上的签名被发送回v。根据第7.3节中定义的共识要求,批处理摘要上的任何2f+1股份加权签名都将形成可用性证明(PoAv)。这样的证明保证至少f+1股份加权诚实验证节点存储了批,因此所有诚实验证节点将能够在执行之前检索它。

无限持久化的事务批可以通过导致验证节点耗尽存储空间和崩溃来打开DoS攻击向量。为了防止这种情况发生,每批事务都有一个关联的时间戳。批处理上的时间戳允许在每个验证器上进行有效的垃圾收集。此外,还设计了一个单独的每个验证节点配额机制,以保护验证者即使在最极端的情况下,比如在潜在的拜占庭攻击下。批还有大小限制,在协议持续到稳定存储之前进行验证。最后,对消除重复事务和缓存事务的几种优化降低了存储成本,并确保了与并行执行引擎的性能集成。

7.3  块元数据排序

一个常见的误解是,共识是缓慢的,因此是区块链吞吐量和延迟的主要瓶颈。Aptos的关键创新之一是将与非协议相关的任务从共识阶段中分离出来,如交易传播、交易执行/存储和分类账认证。通过将事务传播与共识阶段解耦,排序可以发生在非常低的带宽下(仅限块元数据和证明),从而导致较高的事务吞吐量和最小化的延迟。

今天,Aptos区块链利用了DiemBFTv4的最新版本,这是一款响应良好的BFT共识协议。在常见情况下,共识只需要两次网络往返(在全球范围内,往返时间通常小于300毫秒),并通过领导者声誉机制动态调整到错误的验证节点。链上的领导者声誉机制促进了在窗口中成功提交块的验证节点,并降级了未参与的验证节点。这种新的机制显著地提高了分散环境中的性能,相应地为适当的激励提供了基础设施,并把失败的验证节点对吞吐量和延迟所产生的影响最小化。

一个共识块和一个提案时间戳由一个领导提出,并由其他验证者同意,如图5所示。请注意,每个共识块只包含批处理元数据和证明。在该块中不需要实际交易,因为PoAV确保各批交易将在排序后的执行阶段可用(见第7.2节)。验证者可以在验证证明和满足块元数据标准后,对领导者的提案进行投票(例如,提案时间戳≤块过期时间)。

7.3.1  区块链时间

Aptos区块链对每个提议的区块采用一个近似的、商定的物理时间戳,以及相应的,该区块内的所有事务。这个时间戳启用了许多重要的用例。例如:

智能合约中的时间依赖性逻辑。例如,开发商希望编码,所有拍卖的投标必须在周四中午之前收到。

当预言机发布链上数据时,需要一个准确和可信的链上时间戳来关联事件和处理来自真实世界数据的延迟。

客户端可以辨别出他们对区块链的最新情况。出于安全原因,为了避免陈旧的数据和远程攻击,客户端应该可以访问帐户状态更新时的高精度时间戳。

使用一个非常可信的时间戳来审计区块链可以提供与链外事件的强相关性,例如确保法律强制执行的支付满足预期的要求。

事务截止时间是基于最近提交的时间戳。作为客户端事务的额外保护保障,客户端可以为事务选择截止时间,如第6.1节所述。

Aptos区块链为一个区块内的所有交易的时间戳提供了以下保证:

时间在区块链中是单调递增的。也就是说,如果block B1 < block B2, 则B1.Time < B2.Time.

如果一个交易块与时间戳T达成协议,那么至少有+1诚实的验证者已经决定T是过去的时间。一个诚实的验证节点将只在T时间之后对一个块进行投票。见第7.2节。

如果一个事务块具有与时间戳T一致的法定签名数,那么一个诚实的验证节点将在其自己的时钟≥时戳T之前不会将该块提供给其他验证节点。

每个提交块的时间戳更新,并用作该块中所有交易的时间戳。当网络同步时,每个网络往返都会提交一个事务块,并提供快速更新和高度可靠的时钟。如果需要,可以确定事务块中更精确的排序。

7.4  并行事务处理的执行

一旦对一致块元数据进行排序,事务就可以由任何验证器、全节点或客户端执行。至少有2f+1个股权验证节点确实持续了提议批次的交易。由于交易传播是连续的,额外的诚实验证节点将随着时间的推移接收交易批次。如果一个诚实的验证节点到达执行阶段没有收到订单批次的事务,它可以从2f+1股权验证节点,知道至少f+1股份加权验证器(≥一半的股份加权PoAV签名者)是诚实的。

任何区块链的一个重要目标都是实现尽可能多的并行执行。Aptos区块链从数据模型和执行引擎都向前推进了这个方向。

7.4.1 并行数据模型

MOVE数据模型本机支持数据和模块的全局寻址。在数据和帐户中没有重叠冲突的事务可以并行执行。考虑到Aptos区块链所使用的流水线设计,重新排序一组事务可以减少冲突的数量,从而提高并发性。

即使事务修改了同一组链上的值,大部分事务执行过程仍然可以并行化。Aptos区块链引入了一个新的概念,delta writes,它描述了对帐户状态的修改,而不是修改后的帐户状态(例如,增加一个整数,而不是简单地确定最终值)。所有的事务处理都可以并行完成,然后对冲突的值以正确的顺序应用增量写入,以确保确定性的结果。

随着时间的推移,Aptos区块链将继续以改善并发性的方式增强数据模型(例如,利用读/写提示),并改善人体工程学,使开发人员更自然地创建、修改和组合链上的值。Move提供了在语言级别和通过平台特定的功能进行这些改进的灵活性。

7.4.2 并行执行引擎

Block-STM并行执行引擎检测和管理一组有序事务的冲突,以及乐观的并发控制,以允许给定特定有序的最大并行性。

批事务并行良好地执行,并在执行后进行验证。验证失败会导致重新执行。Block-STM使用多版本的数据结构来避免写入冲突。所有到相同位置的写入都与它们的版本一起存储,这些版本包含它们的事务id和写入事务被重新执行的次数。当事务tx读取内存位置时,它从多版本数据结构中获得在tx之前出现的最高事务写入该位置的值,以及关联的版本。

Block-STM已经集成到Aptos区块链中。为了充分了解Block-STM性能的潜力,我们使用典型的点对点Move事务进行实验,作为一个内存数据库的单独的、只执行的(不是端到端)基准测试。在图6中,我们展示了我们的Block-STM执行结果。每个区块包含10k个事务处理,和决定冲突与争用级别的帐户数量。

在低争用下,Block-STM通过32个线程的顺序执行实现了16倍的加速,而在高争用下,Block-STM实现了超过8倍的加速。与其他并行执行引擎不同,Block-STM能够动态地、透明地(没有来自用户的任何提示)从任何工作负载中提取固有的并行性。与需要预先读取或写入数据位置信息的并行执行环境相比,BlockSTM可以同时支持更复杂的事务。此属性将导致更少但更有效的事务,降低成本,并为用户提供更低的延迟。也许最重要的是,将一个原子事务分割成多个较小的事务,会破坏具有复杂状态结果的单个事务的“全有或全无”语义。将Block-STM中的表达性事务语义与并行执行相结合,使开发人员在这两方面得到较好的结果。

请注意,块元数据排序并不排除在并行执行阶段中对事务进行重新排序。事务可以跨一个或多个块进行重新排序,以优化并行执行的并发性。唯一的要求是,重新排序必须在所有诚实的验证节点上都是确定性的。对并行处理进行优化以及在重新排序中添加随机化可以提高性能,并潜在地阻止可盈利的验证节点事务重新排序的最大可提取值(MEV)技术。“排序然后输出”MEV抗策略也可以纳入这个流水线设计中。

7.5  批量存储

并行执行阶段会为组中的所有事务生成写入集。这些写入集可以存储在内存中以获得最大的执行速度,然后用作要执行的下一个块或一组块的缓存。任何重叠的写入操作都只需要写入稳定的存储器一次。如果验证节点在存储内存中的写集之前脱机,它可以简单地从块元数据排序阶段恢复并行执行。从并行执行步骤将写集的批存储解耦,确保并行执行能够有效地运行。总之,批处理写集减少了存储操作的数量,并利用了更高效、更大的读写操作。

为写集缓存保留的内存量可以为每台机器手动配置,并提供了一个自然的背压机制。如果需要针对特定的读写和内存环境进行调优,那么批处理的粒度可能与并行执行块的粒度不同。

7.6  分类帐认证

在传递途径中,每个验证节点都计算了已提交的事务块的新状态。然而,为了有效地支持已验证的轻客户端和状态同步,Aptos区块链为分类帐历史记录和分类帐状态实现了分类帐认证。Aptos区块链的一个关键区别是,分类帐认证并不在事务处理的关键路径上,如果需要,甚至可以完全在带外运行。

7.6.1  分类帐历史记录认证

验证节点将事务及其执行输出附加到全局经过身份验证的分类帐数据结构中。事务输出的一部分是状态写集,包括通过MOVE对可访问的全局状态所做的更改。此数据结构的简短身份验证器是对分类帐历史记录的绑定承诺,其中包括新执行的一批事务。与事务执行类似,此数据结构的生成也是确定性的。

每个验证器将短身份验证器签名到结果数据库的新版本。验证器彼此共享它们最近的签名短身份验证器集,集体聚合定量签名短身份验证器,并彼此共享最近已签名的短身份验证器。

使用这个集体签名,客户机可以相信一个数据库版本根据协议的BFT属性代表了完整、有效的和不可逆的分类帐历史记录。客户端可以查询任何验证器(或数据库的任何第三方副本,如完整节点),以读取数据库值,并使用身份验证器和所需数据的证明来验证结果。

7.6.2  定期状态认证

Move可访问的整个全局状态可以在历史记录上的任何时刻总结为一个简短的身份验证器,类似于分类帐历史记录的摘要。由于全局状态的随机访问特性(不像仅附加的分类帐历史记录),维护此身份验证的成本非常高。然而,当大批量更新数据结构时,我们可以并行计算更新,也可以利用当每个单独的状态值发生变化时必须更新的部分之间的任何重叠。Aptos故意只定期认证全局状态,以减少重复的共享更新。

在确定性和配置期间,网络会发出状态检查点事务,其中包括将全局状态身份验证器作为其输出的一部分。这些版本被表示为状态检查点。两个检查点之间的差距越大,更新每个事务的状态身份验证数据结构的摊余成本就越低。

使用状态检查点,可用以不信任的方式从其中读取任何状态值,而不存储所有全局状态。此功能对于增量状态同步、跨验证器的分片存储、无状态验证器节点和存储受到限制的轻客户端等应用程序非常有用。

但是,由于状态检查点是周期性的,因此获得分类帐状态的特定版本的证明需要对缺失状态变更进行额外的事务执行,或者从经过验证的分类帐历史中获得它们的包含证明。

状态检查点与分类帐历史记录中的特定事务处理版本绑定,因此绑定到与第7节中提到的事务处理批相关联的时间戳。使用时间戳,轻客户端可以理解已验证的状态值的近因性。如果没有时间戳,一个轻的客户证明只能确保以前的状态的有效性,这几乎不能提供相关性的保证。此外,状态证明的时间戳对于跟踪历史访问和审计目的是必要的,例如计算令牌储备中的令牌的平均每小时余额。

状态检查点可以根据以前的状态检查点和之后事务输出中的状态变化派生。因此,对稳定存储的持久化状态检查点不需要在事务处理的关键路径上。此外,在持续使用状态检查点时,也存在有益的批处理效应。在内存中缓存最近的状态检查点(或者更确切地说是它们之间的增量),并且只将周期性的状态检查点转储到稳定的存储中,可以大大减少存储带宽的消耗。选择要持久化的检查点的方式不会影响对经过身份验证的数据结构的计算。因此,这是每个节点的选择:节点操作员可以在内存容量和存储带宽之间配置适当的权衡。

八,状态同步

Aptos区块链旨在为生态系统中的所有参与者提供一个高吞吐量、低延迟的系统。因此,区块链必须提供一个有效的状态同步协议,以传播、验证和加固区块链数据到轻客户端、全节点和验证器。此外,同步协议还必须容忍网络内的资源约束和异构性,并考虑到不同的用户和用例。例如,它必须允许归档完整节点来验证和持久化整个区块链历史和状态,同时也允许轻客户端只有效地跟踪Aptos区块链状态的一小部分集。

为了实现这个属性,Aptos区块链利用验证器、全节点和其他复制器提供的经过验证的分类账历史和认证的状态证明(见7.6.1节),以提供灵活和可配置的同步协议。具体来说,网络中的参与者可以根据不同的同步策略来优化他们的用例和需求。

例如,在全节点的情况下,Aptos允许多种同步策略,包括能够处理自时间开始以来的所有事务,或者完全跳过区块链历史记录,并使用路径点只同步最新的区块链状态。在轻客户端的情况下,策略包括同步部分区块链状态,例如,特定的帐户或数据值,以及启用已验证的状态读取,例如,已验证的帐户余额抓取。在所有情况下,Aptos都允许参与者配置数据的数量和时间参数,以获取、处理和保留数据。

通过采用一种灵活和可配置的状态同步方法,Aptos可以适应各种客户端需求,并在未来继续提供新的、更有效的同步策略。

九,社区所有权

Aptos区块链将由一个广泛和多样化的社区拥有、运营和管理。原生Aptos令牌将用于交易和网络费用、协议升级和链上/链外流程的治理投票,以及通过股权证明模型保护区块链。对Aptos代币经济学的完整描述将在未来中发表。

9.1 交易费用和网络费用

所有的Aptos交易都有一个GAS单价(在Aptos令牌中指定),允许验证者对网络中价值最高的交易进行优先排序。此外,在流水线模型的每个阶段,都有多种机会丢弃低价值事务(允许区块链在系统容量下有效运行)。随着时间的推移,将部署网络费用,以确保使用Aptos区块链的成本与硬件部署、维护和节点操作的实际成本成比例。此外,开发人员将有机会在计算、存储和网络之间设计具有不同成本权衡的应用程序。

9.2  网络治理

Aptos区块链上的每一个重要的特性变更和改进都将经过几个阶段,包括提议、实现、测试和部署。这种结构为相关方和利益相关者提供反馈、分享关注和提供建议的机会。最后一个阶段,即部署,通常可以通过两个步骤来实现。首先,一个带有新功能的软件版本将被部署到每个节点上,其次,该功能将被启用,例如,通过一个特性标志或链上的配置变量。

节点操作员的每个软件部署必须向后兼容,以确保新软件可以与支持的版本互操作。部署新软件版本的过程可能会跨越多日,以考虑到在不同时区的操作人员和任何外部问题。一旦升级了足够数量的节点,新功能的启用就可以由一个同步点触发,例如商定的块高度或历元更改。在紧急情况下(例如,当停机时间不可避免时),启用可以通过节点操作员的手动和强制更改,在最坏的情况下,通过网络中的硬分叉。

与其他区块链相比,Aptos区块链对其在链上的配置进行了编码。每个验证器都有能力与区块链的当前状态进行同步,并根据当前的链上的值自动选择正确的配置(例如,共识协议和Aptos框架版本)。由于这个功能,Aptos区块链的升级是无缝的和即时的。

为了让启用过程具备灵活性和可配置性,Aptos区块链将支持链上治理,即令牌持有者可以根据他们所持有的令牌权重进行投票。链上的投票协议是公开的,可验证的,并且可以是即时的。链上治理还可以支持在不部署软件的情况下实现非二元结果。例如,链上的领导选举协议参数可以通过链上的治理进行修改,而一个预先已知的同步点将无法处理动态修改,因为所有的更改都必须提前知道。

随着时间的推移,链上的治理可以部署在整个升级管理过程中。例如:

令牌持有者将投票决定过渡到一个新的量子抵抗签名方案。

开发人员实现并验证了新的签名方案,并创建了一个新的软件版本。

验证器会将他们的软件升级到新的版本。

令牌持有者在链上投票以启用新的签名方案,链上的配置将被更新,并且更改将生效。

作为一个开源项目,Aptos区块链将依赖于强大的社区反馈,并使用链上治理来管理适当的流程。在某些条件下,可能仍然需要链外升级支持,但随着时间的推移将被最小化。

9.3  股权证明共识

要参与Aptos区块链上的交易验证,验证者必须拥有最低数量的Aptos代牌。在交易传播过程中,持股金额成比例地影响2f + 1股份加权PoAv,以及在块元数据排序期间的投票权重和领导选择。验证者决定在他们自己和他们各自的支架之间的奖励分配。声明者可以选择任意数量的验证者,将他们的令牌进行预先商定的奖励分割。在每一个阶段结束时,验证者和他们各自的质押者将通过相关的链上MOVE模块获得他们的奖励。

任何拥有足够股份的验证器运营商都可以自由加入Aptos区块链。所有参数,包括所需的最小质押率,都可以通过第9.2节中描述的链上启用过程来设置。

十,性能

如第7节所述,Aptos区块链能够通过其并行、批处理优化和模块化的事务处理流水线来实现最佳的吞吐量和硬件效率。其他的性能计划,如一致升级、增量写入、事务提示和关键路径缓存,将随着时间的推移继续提高吞吐量和提高效率。

今天,区块链吞吐量通常是以每秒的事务来衡量的。然而,考虑到事务和基础设施之间的广泛成本和复杂性,这是比较系统的不精确方法。事务延迟也同样存在缺陷,因为提交到最终性的起点和终点在不同的实验中是不同的。

此外,一些系统需要对事务输入和输出的先验知识,并迫使逻辑事务被分成更小、更不复杂的事务。拆分事务会导致糟糕的用户体验,并人为地影响延迟和吞吐量,而不考虑开发人员正试图完成什么。相比之下,Aptos方法是让开发人员能够无限制地构建,并根据真实用例而不是合成事务测量吞吐量和延迟,从而衡量吞吐量和延迟。

Aptos区块链将继续优化单个验证器的性能,并试验扩展技术,添加更多的验证器的网络。这两个方向都有明显的权衡。任何具有并行执行功能的区块链都可以通过需要更强大的硬件,甚至将每个验证器构建为单独机器的集群来支持额外的并发性。然而,与验证器操作员的成本和复杂性一样,全局验证器的数量存在实际的限制。云服务中无服务器数据库的兴起和流行表明,很少有实体能够有效地部署和维护这些类型的复杂分布式系统。

10.1  同质性状态分片

最初,Aptos区块链将以单一的账本状态启动。随着时间的推移,Aptos网络将采取一种独特的方法来实现水平可扩展性,同时仍然保持分散化。这将通过多个分片分类帐状态发生,每个状态提供一个同质的API和分片。Aptos令牌将用于所有碎片上的交易费用、质押和治理。

数据可以通过均质桥在碎片之间传输。用户和开发者可以根据自己的需要选择自己的分片方案。例如,开发人员可以在现有的碎片中提出一个新的碎片或集群用户,以实现分片内部高度连接。此外,碎片可能具有不同的系统特征。一个碎片可以使用ssd进行计算优化,另一个碎片可以针对具有低计算特性的大型硬盘驱动器进行优化。通过在不同的碎片之间提供硬件的灵活性,开发人员可以为他们的应用程序选用适当的系统特性。

总之,均质状态分片提供了横向吞吐量可伸缩性的潜力,允许开发人员跨碎片使用单一的通用状态进行编程,并允许钱包轻松地为其用户合并分片数据。这提供了显著的性能优势,以及单一统一的移动智能合约平台的简单性。

参考:

[1] “Aptos-core,” 2022. [Online].

[[1] “Aptos-core,” 2022. [Online]. Available: https://github.com/aptos-labs/aptos-core ]([1] “Aptos-core,” 2022. [Online]. Available: https://github.com/aptos-labs/aptos-core )

[2] “Move,” 2022. [Online]

[[2] “Move,” 2022. [Online]. Available: https://github.com/move-language/move ]([2] “Move,” 2022. [Online]. Available: https://github.com/move-language/move )

[3] D. Matsuoka, C. Dixon, E. Lazzarin, and R. Hackett. (2022) Introducing the 2022 state of crypto report.

[[3] D. Matsuoka, C. Dixon, E. Lazzarin, and R. Hackett. (2022) Introducing the 2022 state of crypto report.
[Online]. Available: https://a16z.com/tag/state-of-crypto-2022/ ]([3] D. Matsuoka, C. Dixon, E. Lazzarin, and R. Hackett. (2022) Introducing the 2022 state of crypto report.
[Online]. Available: https://a16z.com/tag/state-of-crypto-2022/ )

[4] Z. Amsden, R. Arora, S. Bano, M. Baudet, S. Blackshear, A. Bothra, G. Cabrera, C. Catalini, K. Chalkias,E. Cheng, A. Ching, A. Chursin, G. Danezis, G. D. Giacomo, D. L. Dill, H. Ding, N. Doudchenko,V. Gao, Z. Gao, F. Garillot, M. Gorven, P. Hayes, J. M. Hou, Y. Hu, K. Hurley, K. Lewi, C. Li, Z. Li,D. Malkhi, S. Margulis, B. Maurer, P. Mohassel, L. de Naurois, V. Nikolaenko, T. Nowacki, O. Orlov,D. Perelman, A. Pott, B. Proctor, S. Qadeer, Rain, D. Russi, B. Schwab, S. Sezer, A. Sonnino, H. Venter,L. Wei, N. Wernerfelt, B. Williams, Q. Wu, X. Yan, T. Zakian, and R. Zhou, “The libra blockchain,”2019. [Online].

[[4] Z. Amsden, R. Arora, S. Bano, M. Baudet, S. Blackshear, A. Bothra, G. Cabrera, C. Catalini, K. Chalkias,
E. Cheng, A. Ching, A. Chursin, G. Danezis, G. D. Giacomo, D. L. Dill, H. Ding, N. Doudchenko,
V. Gao, Z. Gao, F. Garillot, M. Gorven, P. Hayes, J. M. Hou, Y. Hu, K. Hurley, K. Lewi, C. Li, Z. Li,
D. Malkhi, S. Margulis, B. Maurer, P. Mohassel, L. de Naurois, V. Nikolaenko, T. Nowacki, O. Orlov,
D. Perelman, A. Pott, B. Proctor, S. Qadeer, Rain, D. Russi, B. Schwab, S. Sezer, A. Sonnino, H. Venter,
L. Wei, N. Wernerfelt, B. Williams, Q. Wu, X. Yan, T. Zakian, and R. Zhou, “The libra blockchain,”
2019. [Online]. Available: https://developers.diem.com/papers/the-diem-blockchain/2020-05-26.pdf ]([4] Z. Amsden, R. Arora, S. Bano, M. Baudet, S. Blackshear, A. Bothra, G. Cabrera, C. Catalini, K. Chalkias,
E. Cheng, A. Ching, A. Chursin, G. Danezis, G. D. Giacomo, D. L. Dill, H. Ding, N. Doudchenko,
V. Gao, Z. Gao, F. Garillot, M. Gorven, P. Hayes, J. M. Hou, Y. Hu, K. Hurley, K. Lewi, C. Li, Z. Li,
D. Malkhi, S. Margulis, B. Maurer, P. Mohassel, L. de Naurois, V. Nikolaenko, T. Nowacki, O. Orlov,
D. Perelman, A. Pott, B. Proctor, S. Qadeer, Rain, D. Russi, B. Schwab, S. Sezer, A. Sonnino, H. Venter,
L. Wei, N. Wernerfelt, B. Williams, Q. Wu, X. Yan, T. Zakian, and R. Zhou, “The libra blockchain,”
2019. [Online]. Available: https://developers.diem.com/papers/the-diem-blockchain/2020-05-26.pdf )

[5] S. Blackshear, E. Cheng, D. L. Dill, V. Gao, B. Maurer, T. Nowacki, A. Pott, S. Qadeer, D. R.Rain, S. Sezer, T. Zakian, and R. Zhou, “Move: A language with programmable resources,” 2019.

[[5] S. Blackshear, E. Cheng, D. L. Dill, V. Gao, B. Maurer, T. Nowacki, A. Pott, S. Qadeer, D. R.
Rain, S. Sezer, T. Zakian, and R. Zhou, “Move: A language with programmable resources,” 2019.
[Online]. Available:
https://developers.diem.com/papers/diem-move-a-language-with-programmable
resources/2019-06-18.pdf ]([5] S. Blackshear, E. Cheng, D. L. Dill, V. Gao, B. Maurer, T. Nowacki, A. Pott, S. Qadeer, D. R.
Rain, S. Sezer, T. Zakian, and R. Zhou, “Move: A language with programmable resources,” 2019.
[Online]. Available:
https://developers.diem.com/papers/diem-move-a-language-with-programmable
resources/2019-06-18.pdf )

[6] D. Dill, W. Grieskamp, J. Park, S. Qadeer, M. Xu, and E. Zhong, “Fast and reliable formal verification of smart contracts with the move prover,” in Tools and Algorithms for the Construction and Analysis of Systems, D. Fisman and G. Rosu, Eds. Cham: Springer International Publishing, 2022, pp. 183–200.

[7] N. Popper. (2021) Lost passwords lock millionaires out of their bitcoin fortunes.

[8] The Diem Team, “State synchronization and verification of committed information in a system with reconfigurations,” 2020

[https://github.com/aptos-labs/aptos
core/blob/main/documentation/tech-papers/lbft-verification/lbft-verification.pdf ](https://github.com/aptos-labs/aptos
core/blob/main/documentation/tech-papers/lbft-verification/lbft-verification.pdf )

[9] G. Danezis, L. Kokoris-Kogias, A. Sonnino, and A. Spiegelman, “Narwhal and tusk: A dag-based mempool and efficient bft consensus,” in Proceedings of the Seventeenth European Conference on Computer Systems, ser. EuroSys ’22. New York, NY, USA: Association for Computing Machinery, 2022, p. 34–50.

[10] The Diem Team, “Diembft v4: State machine replication in the diem blockchain,” 2021.

[https://developers.diem.com/papers/diem-consensus-state-machine-replication-in-the-diem
blockchain/2021-08-17.pdf ](https://developers.diem.com/papers/diem-consensus-state-machine-replication-in-the-diem
blockchain/2021-08-17.pdf )

[11] S. Cohen, R. Gelashvili, L. Kokoris-Kogias, Z. Li, D. Malkhi, A. Sonnino, and A. Spiegelman, “Be aware of your leaders,” CoRR, vol. abs/2110.00960, 2021

[12] A. Spiegelman, N. Giridharan, A. Sonnino, and L. Kokoris-Kogias, “Bullshark: Dag bft protocols made practical,” in Proceedings of the 20th Conference on Computer and Communications Security (CCS), ser. CCS ’22. Los Angeles, CA, USA: Association for Computing Machinery, 2022.

[13] R. Gelashvili, A. Spiegelman, Z. Xiang, G. Danezis, Z. Li, Y. Xia, R. Zhou, and D. Malkhi, “Block-stm: Scaling blockchain execution by turning ordering curse to a performance blessing,” 2022

[14] J. Lind, “The evolution of state sync: The path to 100k+ transactions per second with sub-second latency at aptos,” 2022

Subscribe to 肥仔杰
Receive the latest updates directly to your inbox.
Mint this entry as an NFT to add it to your collection.
Verification
This entry has been permanently stored onchain and signed by its creator.