安全、可扩展和可升级的 Web3 基础设施
随着全新的互联网基础设施区块链的崛起,开发者正以飞快的速度部署着数以万计的去中心化应用程序。遗憾的是,由于稳定性差、成本高、低吞吐量及一些安全问题,区块链尚未被广泛应用。为了能够在 Web3 时代被广泛使用,区块链基础设施应该效仿云基础设施的特点,即为众多的去中心化应用提供可信、可扩展、经济高效且持续优化的平台。
为应对这些挑战,我们以可扩展、安全、可靠和可升级为核心设计原则推出 Aptos 区块链。Aptos 区块链在过去三年中由全球 350 多名开发人员共同开发 [1]。它在共识、智能合约设计、系统安全、性能和去中心化方面提供了新的创新。这些技术的结合将为把 Web3 带向更广泛的人群提供一个坚实的基础:
1、Aptos 区块链原生集成并使用 Move 语言 来实现快速安全的交易执行 [2]。Move prover,一个用 Move 语言开发的智能合约形式化验证工具,为合约常量和运行提供额外保障。这种注重安全的做法,可以让开发人员能够更好地保护软件,以免受恶意实体的攻击。
2、Aptos 数据模型允许灵活的密钥管理和混合托管选项。这与签名前的交易透明性和实用的轻客户端协议一起,共同提供了更安全、更值得信赖的用户体验。
3、为了实现高吞吐量和低延迟,Aptos 区块链在交易处理的关键阶段使用了流水线和模块化方法。具体而言,事务分发、区块元数据排序、并行事务执行、批量存储和账本认证等操作会同时运行。这种做法充分利用了所有可用的硬件资源,提升了硬件效率,并实现了高度并行处理。
4、与需要读写前获取被读写数据而破坏交易原子性的并行执行引擎不同,Aptos 区块链没有对开发者设置这种限制。它通过保证复杂的交易的原子性,为应用程序提供更高的吞吐量和更低的延迟,并简化了开发。
5、Aptos 模块化架构保证了客户端的灵活性,并针对频繁的升级进行优化。此外,为了迅速部署新的技术创新和支持新的Web3使用案例,Aptos 区块链提供了嵌入式的链上变化管理协议。
6、Aptos 区块链正在试验未来超越单个验证器性能的举措:其模块化设计和并行执行引擎支持验证者的内部分片,而同质状态分片(homogeneous state sharding)提供了水平吞吐量可扩展的潜力,而不会给节点运营商带来额外的复杂性。
1. 序言
在 Web2 时代,诸如通讯、社交媒体、金融、游戏、购物以及音视频流媒体等服务, 是由掌握了用户数据权限的中心化公司来提供(例如 Google、Amazon、Apple 和 Meta)。针对目标用例,这些公司利用具备特定应用的软件,来优化开发基础设施,并利用云端基础设施向用户部署这些应用程序。云端基础设施可提供虚拟或物理基础设施服务的访问,例如虚拟机(VM)租用和在世界各地数据中心内运行的裸机硬件(例如 AWS,Azure,和 Google Cloud)。因此,建立能够扩大到数十亿用户的 Web2 互联网服务从来没有像今天这样容易。然而,Web2 要求用户明确信任中心化实体,这一要求愈发引起社会的担忧。
为了消除这种担忧,新的互联网时代已经开始:Web3。在 Web 3 版本的互联网中, 出现了区块链来提供去中心化、不可篡改的账本,让用户能够安全可靠地相互交流,而不需要信任控制中间人或中心化实体。与 Web2 互联网服务和应用程序依赖云基础设施类似,去中心化的应用程序可以使用区块链作为去中心化的基础设施层,从而触达全世界数十亿用户。
然而,尽管现已存在许多条区块链,但是 Web3 尚未得到广泛采纳[3]。虽然技术不断地推动着行业发展,但现有的区块链仍是不可靠的。昂贵的交易费用,低吞吐量,因安全问题资产经常遭受损失,并且无法支持实时响应。与云端基础设施赋能 Web2 服务,成功触达数十亿人群相比,区块链还并没有使得 Web3 应用达到同样的高度。
2. Aptos 愿景
Aptos 的愿景是提供一个能够为 Web3 带来主流应用的区块链,并授权一个去中心化应用的生态系统来解决现实世界的用户痛点。我们的使命是通过提供灵活和模块化的区块链架构,推动区块链可靠性、安全性和性能方面的新高度。该架构应支持频繁升级,快速采用最新的技术,并能对新兴的用例提供一流支持。
我们设想建立社区管理运营的去中心化、安全和可扩展的网络。当世界各地对基础设施的需求增长时,区块链的计算资源就会横向和纵向扩展以满足这些需求。随着新的用例和技术进步的出现,网络应该在不干扰用户的情况下频繁地、无缝地升级。让用户不再关注基础设施相关问题。开发人员和用户将可以访问许多不同的密钥恢复、数据建模、智能合约标准、资源使用权衡、隐私和可组合性选项。用户确信他们的资产是安全,可用,并且几乎可以成本费访问。任何人都能够安全、容易地与全世界不受信任的各方进行不可篡改的交易。区块链将像云基础设施一样无所不在。
为了实现这一愿景,必须在技术方面取得重大进展。过去三年里,我们开发,升级和部署 Diem 区块链(Aptos 区块链的前身)的经验已经证明,网络可以在不中断客户端的情况下持续升级协议[4]。2020 年初,Diem 主网被部署到拥有多个钱包供应商的十几个节点上。在之后一年,我们团队进行了共识协议和核心框架两次重大的升级。两次升级都在用户不停机的情况下顺利完成。在 Aptos 区块链中,我们对技术栈进行了一系列彻底的改进,同时还受 Diem 区块链启发将安全、透明、以及可频繁的升级作为核心功能。我们特别强调新的交易处理方法(如第 7 节所述)以及去中心化和网络治理的新方法。
随着 Aptos 区块链的不断改善和发展,, 我们将不断更新协议和设计,届时发布最新版的白皮书。在下文中,我们描述了 Aptos 区块链的现状以及今后的计划。
3. 概述
如图 1 所示,Aptos 区块链由 1 组验证者(Validator)组成,他们使用拜占庭容错(BFT),权益证明(POS)的共识机制来接收与处理用户的交易。代币持有人在他们选定的验证者(Validator)中锁定或者质押他们手上的代币。每个验证者的共识投票权重与所质押代币量成正比。一个验证者可以是活跃的状态,并参与到共识决策中。同样,一个验证节点如果没有足够的质押代币,或被从验证者集合中轮换出来,亦或在同步区块链状态时离线,再或共识协议因历史表现不佳而拒绝其参与共识,那么该验证节点也可能处于不活跃的状态。
客户端是系统中需要提交交易或查询区块链状态和历史的任何部分。客户端可以选择下载并验证那些被验证节点签署验证过的数据。*全节点(Full Node)*是从验证节点或网络中其他全节点复制交易和区块链状态的客户端。他们可能会根据需要裁剪掉一些交易历史和区块链状态记录,以重新获得充足的存储空间。轻客户端 只维护当前验证节点的集合,并且可以从全节点中安全地查询部分区块链状态。钱包是轻客户端的常见例子。
为了满足安全、快速、可靠和可升级的 Web3 基础设施的需求,以便被广泛采用,Aptos 区块链基于下列核心设计原则建立。
4. Move 编程语言
Move 是一种注重安全和灵活性的新型智能合约编程语言。Aptos 区块链使用 Move 的对象模型来表示其账本状态(见第 5.5 节),并使用 Move 代码(模块)来编码状态转换的规则。用户提交的交易中,可以包括发布新模块、升级现有的模块、执行模块内定义的接口功能,以及可以直接与模块的公共接口互动的脚本。
Move生态系统包含一个编译器、一个虚拟机和许多其他的开发工具。Move 受到 Rust 编程语言的启发,该语言通过线性类型等概念来明确数据的所有权 Move 强调了资源的稀缺性、保存和访问控制。Move 模块定义了每个资源的生命周期、存储和访问模式。这确保了像 Coin 这样的资源不会在没有适当凭证的情况下产生,且不能被重复消费,也不会消失。
即使存在不受信的代码,Move 仍然可以利用字节码验证工具来保证类型和内存安全。为有助于编写更可信的代码,Move 包括了一个类型验证器,Move Prover [6],能够根据给定的规范,验证 Move 程序的功能正确性,该类型验证功能已经集成到了 Move 语言中。
除了用户帐户和相应的帐户内容,分布式账本的状态还包含 Aptos 区块链的链上配置。这个网络配置包括当前活跃状态的验证节点的集合,质押的属性,以及 Aptos 区块链内各种服务的配置。Move对模块可升级性和全面可编程性的支持实现了无缝的配置变化,并支持对 Aptos 区块链本身的升级(这两类升级已经在非公开的主网上执行了多次,并且没有宕机记录)。
Aptos 团队已经进一步增加了 Move 的特性,支持更广泛的 Web3 用例。如下文第 5.5 节所述,Aptos 区块链实现了细粒度的资源控制。这个特性不仅有效支持了并行执行,而且几乎固定了访问与更改数据的成本。此外,Aptos 区块链提供了建立在细粒度存储之上的表支持,这使得大规模的数据集(例如,大量的 NFT 集合)可以在一个账户中实现。同时,Aptos 支持完全在链上体现的共享或自动化账户。这使得复杂的去中心化自治组织(DAO)能够共享账户,以及将这些账户作为异质资源集合的容器。
5. 逻辑模型
Aptos 区块链的 账本状态 代表了链上所有帐户的状态。账本状态使用一个无符号的 64 位整数进行版本划分,对应与当前系统所执行的交易数量。任何人都可以向 Aptos 区块链提交交易以修改账本状态。交易执行后,会生成一个交易输出 。一个交易的输出包含零个或多个操作来操纵账本状态
6. 安全的用户体验
为了覆盖数十亿互联网用户,Web3 的用户体验必须是安全便捷的。在该章节中,将描述 Aptos区块链为实现这一目标的几项创新。
7. 流水化、批量、并行的交易处理
为了最大限度提高吞吐量,增加并发性,并且降低工程复杂性,Aptos 区块链的交易处理过程被划分为不同的阶段。每个阶段都是完全独立的并且可以各自并行,类似于现代的超标量处理器架构。这不仅提供了显著的性能优势,而且让 Aptos 区块链能够提供新的验证者-客户端交互模式。例如:
当指定交易被包含在一批留存交易中,客户端会被通知。已留存且有效的交易一般会被立即提交。
当一批已留存交易被排序时,客户端会被通知。因此,为了减少确定要执行的交易结果的延迟,客户端可以在本地执行交易,而不是等待远程验证节点的完成执行。
客户端可以选择等待验证者执行已认证的交易,然后同步已执行完成的交易状态(见第8节)。
Aptos 模块设计有助于提高开发速度以及更短的发布周期,开发者可以对单个模块而不是整个系统进行优化。类似地,模块设计提供了一条扩展验证器的结构化路径,可以让验证器利用多台机器的计算、网络和存储资源。图 4 显示了交易处理生命周期的各个处理阶段。
8. 状态同步
Aptos 区块链旨在为生态中的所有参与者提供一个高吞吐量,低延迟的系统。因此,区块链必须提供一个高效的状态同步协议,来传播、校验并持久化区块链数据到轻客户端、全节点和验证节点[14]。此外,考虑到用户不同的硬件资源,同步协议还必须兼容网络内存在的资源限制和差异性。例如,它必须允许存档的全节点来验证和存储着整个区块链状态及历史, 同时也允许轻客户端高效地只获取一小部分区块链状态。
为实现这一特点,Aptos 区块链会利用由验证节点、全节点和其他同步器提供的已认证的账本历史和状态证明(见第 7.6.1 节),来实现一个灵活可配置的同步协议。具体而言,网络参与者可以选择不同的同步策略,来优化自己的用例和需求。
例如,Aptos 为全节点提供了多种同步策略,包括全量同步策略;和忽略历史记录,利用锚点只同步最新的区块链状态的策略。Aptos 为轻客户端提供了多种同步策略,包括可以同步特定账户或数据的部分同步策略;和可以获取已验证账户余额的获取已验证数据策略。在所有情况下,Aptos允许参与者通过配置配置获取、处理和存储特定数量和版本的数据。
通过这种灵活可配置的状态同步协议, Aptos 可以满足各种客户的需求,并在未来可以提供更先进高效的同步策略。
9. 社区治理
Aptos 区块链将由一个广泛而多样化的社区拥有、运营和管理。原生 Aptos 代币将用于交易和网络费用、协议升级和链上/链下流程的治理投票,以及通过权益证明(PoS)模型保护区块链。关于 Aptos 代币的具体经济模型将在之后发布。
随着时间的推移,链上治理可以部署在整个升级管理过程中。例如:
1、代币持有者在链上投票决定过渡到新的抗量子计算签名方案
2、开发者实施并验证新的签名计划并创建一个新的软件版本。
3、验证者升级他们的软件到新的版本。
4、代币持有人在链上就启用一个新的签名方案进行投票,链上配置被更新,更改已生效。
作为一个开源项目,Aptos 区块链的管理方式主要依赖于强大的社区反馈以及链上治理。在某些情况下,可能仍需要启用链外升级,但这种情况会随着时间的推移将尽量最小化。
10. 性能表现
如第 7 节所述,Aptos 区块链能够通过其并行、批量优化和模块化的交易处理管道实现最佳吞吐量和硬件效率。额外的性能举措,如共识升级、延迟写入、交易提示和关键路径缓存,将继续增加吞吐量,并随着时间的推移提高效率。
如今,区块链的吞吐量通常以每秒交易量来衡量。然而,鉴于交易和基础设施成本和复杂程度各异,这是一种不精确的系统比较方法。交易延迟也同样有缺陷,因为在不同的实验中,提交至最终性的起点和终点是不一样的。
此外,一些系统要求事先了解交易的输入和输出,并迫使逻辑交易被拆分成较小的、不太复杂的交易。拆分交易会导致用户体验差,并人为地影响延迟和吞吐量,忽视了开发者想要实现的目标。相比之下,Aptos 的方法让开发者能够不受限制地自由构建,并根据真实世界的使用案例而不是合成交易来衡量吞吐量和延迟情况。
Aptos 区块链将继续优化单个验证器的性能,以及试验将更多验证器添加到网络的扩展技术。这两个方向都有明显的取舍。任何具有并行执行能力的区块链都可以通过要求更强大的硬件或甚至将每个验证器构造为一个单独的机器集群,来支持更大的并发。然而,全局验证器的数量是有实际限制的,它与验证器操作者的成本和复杂性是相对应的。云服务中无服务器数据库的兴起和流行,说明很少有实体能够有效地部署和维护这些类型的复杂分布式系统。
Bitcoin Price Consolidates Below Resistance, Are Dips Still Supported?
Bitcoin Price Consolidates Below Resistance, Are Dips Still Supported?
XRP, Solana, Cardano, Shiba Inu Making Up for Lost Time as Big Whale Transaction Spikes Pop Up
XRP, Solana, Cardano, Shiba Inu Making Up for Lost Time as Big Whale Transaction Spikes Pop Up
Justin Sun suspected to have purchased $160m in Ethereum
Justin Sun suspected to have purchased $160m in Ethereum