# Aptos中文版5分钟白皮书

By [肥仔杰](https://paragraph.com/@0xdfdc5082621389e80de9954809af70d67b9ce105) · 2022-09-08

---

为了让各位快速浏览aptos白皮书，于是有了5分钟版本

如果有耐心和时间，也可以看[完整版](https://mirror.xyz/0xdfDC5082621389e80DE9954809Af70d67b9Ce105/V2SGQFbv50qSV3zsRb9atx1epVo-4jJ2BKQ9XAV6AVQ)

再次感谢翻译工作人员[@feizijie01](https://twitter.com/feizijie01)

以下是正题

\=======================================================

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

### 一、摘要

Aptos为Web3的普及提供一个重要的基础模块：

第一，Aptos区块链本地集成并在内部使用Move语言，用于快速和安全地执行交易。

第二，Aptos数据模型可以实现灵活的密钥管理和混合托管选项。

第三，为了实现高吞吐量和低延迟，Aptos利用了一种流水线和模块化的方法来处理交易的关键阶段。

第四，它有效支持任意复杂事务的原子性，并且为程序提供高吞吐、低延迟，并且简化开发。

第五，Aptos模块化架构设计支持客户的灵活性，并优化频繁和即时升级。

最后，Aptos区块链正在试验未来的举措，以提高单个验证器的性能

### 二、Aptos的愿景

Aptos的愿景是提供一个区块链，可以让web3引入主流，并授权一个去中心化应用程序的生态系统来解决现实世界的用户问题。

我们的使命是通过提供一个灵活和模块化的区块链架构，来推进提高区块链在可靠性、安全性和性能方面的最先进水平。

### 三、Aptos核心设计原则

Aptos区块链由一组验证节点组成，这些验证节点使用拜占庭容错(BFT)、股权证明共识机制共同接收和处理来自用户的事务。令牌持有者在其选定的验证节点中锁定或持有令牌。

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

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

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

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

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

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

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

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

### 四、有关MOVE语言

Move是一种新的智能合约编程语言，它强调了安全性和灵活性。

Move生态系统包含一个编译器、一个虚拟机和许多其他开发者工具。

Move通过线性类型等概念在语言中明确了数据的所有权，强调了资源的稀缺性、保存和访问控制。MOVE模块定义了每个资源的生命周期、存储和访问模式。

Move利用一个字节码验证器来保证类型和内存的安全，即使存在不受信任的代码。

Move支持模块可升级性和全面可编程性，可以无缝更改配置，并可以对Aptos区块链本身进行升级。

Aptos团队进一步增强了Move，支持更广泛的web3用例。

### 五、逻辑数据模型

Aptos区块链的分类帐状态表示所有帐户的状态。任何人都可以向Aptos区块链提交一个事务，以修改分类帐状态。在执行事务时，将生成事务输出。事务输出包含零个或多个操作来处理分类帐状态（称为写集）、结果事件的向量、消耗的手续费和执行的事务状态。

### 5.1  交易

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

交易身份验证器、发送人地址、有效负载、GAS价格、最大GAS、序号、到期时间、链id

在每个版本i中，状态变化由元组(Ti、Oi、Si)表示，分别包含交易、交易输出和生成的分类帐状态。

### 5.1.1  事件

事件将在交易的执行期间发出。每个MOVE模块都可以定义自己的事件，并在执行时选择何时发出这些事件。

发送到同一事件KEY的多个事件产生事件流，一个事件列表，每个条目包含一个从0开始的顺序递增的数字、一个类型和数据。

交易处理只能生成事件，而不能读取事件。

### 5.2  账户

每个帐户由一个唯一的256位值标识。

要创建一个新帐户，用户首先生成一个签名密钥对：(vk、sk)。

在地址addr创建新帐户后，用户可以使用私人签名密钥sk签名要从addr的帐户发送的事务。用户还可以换sk，以主动更改sk或响应可能的妥协。

Aptos区块链不会将账户与现实世界的身份联系起来。

### 5.3  MOVE模块

MOVE模块包含可声明数据类型（结构）和过程的MOVE字节码。

一个模块必须在一个帐户中被唯一地命名，即，每个帐户最多可以声明一个具有任何给定名称的模块。

模块被分组为位于同一地址的软件包。此地址的所有者将包作为一个整体在链上发布，包括字节码和包元数据。这个包的元数据决定了一个包是可以升级的还是不可变的。

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

### 5.4  资源

与模块类似，帐户地址也可以具有与之关联的数据值。

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

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

### 5.5  分类帐状态

在发布时，Aptos区块链将由一个单一的分类帐状态来表示，然后渐渐启用多个分类帐状态，并支持跨碎片移动或访问资产的事务。

### 六、安全性

### 6.1  交易可行性保护

Aptos提供了三种不同的保护措施——发送者的序列号、一个交易过期时间和一个指定的链标识符。以此限制每笔交易的可行性，并取消签名者无限时长的有效性，提高交易安全。

### 6.2  基于MOVE语言的密钥管理

Aptos帐户支持密钥轮换，以减少与私钥泄露、远程攻击和可能破坏现有密码算法相关的风险。此外，Aptos的账户可以支持新的混合托管模式。

在Aptos区块链支持密钥管理功能，提供了所有与密钥相关的操作的完全透明度，使钱包管理变得更简单。

### 6.3  预签交易的透明度

Aptos生态系统为交易预执行提供了服务：一种预防措施，向用户描述他们在签名之前的交易结果。将其与已知的先前攻击历史和恶意智能合同相结合，将有助于减少欺诈。此外，Aptos还允许钱包在执行期间指示对交易的约束。违反这些约束将导致交易被中止，以进一步保护用户资产。

### 6.4 实用的轻客户端协议

Aptos提供了状态证明和轻客户端验证协议，钱包和客户端可以使用这些协议来验证由第三方服务器提供的数据的有效性。通过利用基于时间戳的状态证明，轻客户端可以始终严格确保帐户状态的新鲜度，从而提高安全性。

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

为了最大化吞吐量，提高并发性，并降低工程复杂性，Aptos区块链上的交易处理被划分为单独的阶段。每个阶段都是完全独立的和可单独并行的，类似于现代的超量处理器架构。

Aptos模块化设计有助于加快开发速度并支持更快的发布周期。

### 7.1  批处理

在交易广播期间，每个验证节点将交易分组为批，在协商一致期间将批合并成块。执行、存储和分类账认证阶段也分批工作，以为重新排序、减少操作和并行执行提供条件。

### 7.2  持续的交易广播

验证节点不断地相互处理事务，同时利用所有可用的网络资源。

### 7.3  块元数据排序

Aptos将与非协议相关的任务从共识阶段中分离出来，如交易传播、交易执行/存储和分类账认证。通过将事务传播与共识阶段解耦，排序可以发生在非常低的带宽下从而导致较高的事务吞吐量和最小化的延迟。

### 7.3.1  区块链时间

Aptos区块链对每个提议的区块采用一个近似的、商定的物理时间戳，以及相应的，该区块内的所有事务。

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

时间在区块链中是单调递增的。

每个提交块的时间戳更新，并用作该块中所有交易的时间戳。

### 7.4  并行事务处理的执行

一旦对一致块元数据进行排序，事务就可以由任何验证器、全节点或客户端执行。

### 7.4.1 并行数据模型

MOVE数据模型本机支持数据和模块的全局寻址。在数据和帐户中没有重叠冲突的事务可以并行执行。

即使事务修改了同一组链上的值，大部分事务执行过程仍然可以并行化。

### 7.4.2 并行执行引擎

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

批事务并行良好地执行，并在执行后进行验证。验证失败会导致重新执行。Block-STM使用多版本的数据结构来避免写入冲突。

### 7.5  批量存储

并行执行阶段会为组中的所有事务生成写入集。这些写入集可以存储在内存中用作要执行的下一个块或一组块的缓存。重叠的写入操作都只需要写入稳定的存储器一次。

### 7.6  分类帐认证

Aptos区块链为分类帐历史记录和分类帐状态实现了分类帐认证。

### 7.6.1  分类帐历史记录认证

验证节点将事务及其执行输出附加到全局经过身份验证的分类帐数据结构中。

每个验证器将短身份验证器签名到结果数据库的新版本。验证器彼此共享它们最近的签名短身份验证器集。

### 7.6.2  定期状态认证

Move可访问的整个全局状态可以在历史记录上的任何时刻总结为一个简短的身份验证器，类似于分类帐历史记录的摘要。

在确定性和配置期间，网络会发出状态检查点事务。

使用状态检查点，可用以不信任的方式从其中读取任何状态值，而不存储所有全局状态。

状态检查点绑定到事务处理批相关联的时间戳。

### 八，状态同步

Aptos区块链利用验证器、全节点和其他复制器提供的经过验证的分类账历史和认证的状态证明（见7.6.1节），以提供灵活和可配置的同步协议，网络中的参与者可以根据不同的同步策略来优化他们的用例和需求。

### 九，社区所有权

Aptos区块链将由一个广泛和多样化的社区拥有、运营和管理。原生Aptos令牌将用于交易和网络费用、协议升级和链上/链外流程的治理投票，以及通过股权证明模型保护区块链。

### 9.1 交易费用和网络费用

所有的Aptos交易都有一个GAS单价，出价高者，优先排序。随着时间的推移，aptos网络部署费用，会与成本挂钩，让开发程序花费更低。

### 9.2  网络治理

Aptos区块链将支持链上治理，即令牌持有者可以根据他们所持有的令牌权重进行投票。链上的投票协议是公开的，可验证的，并且是即时的。

### 9.3  股权证明共识

要参与Aptos区块链上的交易验证，验证者必须拥有最低数量的Aptos代牌。声明者可以选择任意数量的验证者，将他们的令牌进行预先商定的奖励分配。在每一个阶段结束时，验证者和他们各自的质押者将通过相关的链上MOVE模块获得他们的奖励。

任何拥有足够股份的验证器运营商都可以自由加入Aptos区块链。

### 十，性能

Aptos区块链能够通过其并行、批处理优化和模块化的事务处理流水线来实现最佳的吞吐量和硬件效率。

Aptos区块链将继续优化单个验证器的性能，并试验扩展技术，添加更多的验证器的网络。

### 10.1  均质状态分片（翻译失败）

最初，Aptos区块链将以单一的账本状态启动。随着时间的推移，Aptos网络将采取一种独特的方法来实现水平可扩展性，同时仍然保持分散化。这将通过多个分片分类帐状态发生，每个状态提供一个同质的API和分片。

数据可以通过均质桥在碎片之间传输。用户和开发者可以根据自己的需要选择自己的分片方案。通过在不同的碎片之间提供硬件的灵活性，开发人员可以为他们的应用程序选用适当的系统特性。

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

**以上就是Aptos白皮书的简概内容**

**如有不明白，可以上官网看看**[**原版白皮书**](https://aptos.dev/assets/files/Aptos-Whitepaper-47099b4b907b432f81fc0effd34f3b6a.pdf)**内容**

**感谢大家的关注，我的推特：**[**@feizijie01**](https://twitter.com/feizijie01)

---

*Originally published on [肥仔杰](https://paragraph.com/@0xdfdc5082621389e80de9954809af70d67b9ce105/aptos-5)*
