近来以 Aptos、Sui 等新公链浪潮逐步走入更多人的视野,而 Aptos 作为新新公链的代表更是热度持续攀升,今天 Aptos 也发表了其白皮书,让我们来一睹为快。
原文标题:《The Aptos Blockchain: Safe, Scalable, and Upgradeable Web3 Infrastructure》
编译:Frank,Foresight News
Aptos 在过去三年中由全球 350 多名开发人员共同开发,并以可伸缩性、安全性、可靠性和可升级性作为关键设计原则,它在共识、智能合约设计、系统安全、性能和去中心化等方面都有新的创新:
- Aptos 本地集成并使用 Move 语言,用于快速和安全的事务执行;
- Aptos 数据模型可以实现灵活的密钥管理和混合托管选项;
- Aptos 利用流水线和模块化的方法来执行事务处理的关键阶段,以实现高吞吐量和低延迟;
- Aptos 没有对开发人员施加预先了解要读写数据的限制,可以有效地支持任意复杂事务的原子性,提供更高的吞吐量和更低的延迟,并简化开发流程;
- Aptos 采用模块化架构设计以支持客户端的灵活性,此外 Aptos 提供了嵌入式的链上变更管理协议;
- Aptos 正在尝试扩展到单个验证节点性能之外的未来计划:其模块化设计和并行执行引擎 支持验证节点的内部分片,均匀状态分片提供了可扩展性的潜力,且不会增加节点操作的复杂性;
愿景与概述
Aptos 的愿景是将 Web3 引入主流,并构建一个去中心化应用的生态系统,以解决现实世界中用户的问题。
Aptos 团队在过去三年中构建、开发、推进和部署 Diem 区块链(Aptos 的前身)的经验证明,一个网络可以在不干扰其用户的情况下不断升级其协议。
Aptos 对技术堆栈进行了一系列彻底的改进,同时也将安全、透明和频繁的升级作为核心功能,同时强调事务处理的新方法以及去中心化和网络治理的新方法。
Aptos 生态系统的组件
如图所示,Aptos 由一组验证节点组成,这些验证节点使用拜占庭容错(BFT)、股权证明共识机制(PoS)共同接收和处理来自用户的事务请求。
代币持有者在其选定的验证节点中锁定或质押代币,每个验证节点的共识投票权重与其中所投入的金额成正比。
客户端在系统中需要提交事务或查询区块链的状态、历史记录的任何部分;完整节点从验证节点或从网络中的其他完整节点复制事务和区块链状态,可以根据需要修剪事务历史记录和区块链状态以回收存储空间;轻客户端只维护当前的验证节点集合,并且可以安全地查询部分区块链状态,通常是从完整节点上查询的(钱包是轻客户端的一个常见例子)。
为了满足安全、快速、可靠、可升级的 Web3 基础设施被广泛采用的需求,Aptos 建立在以下核心设计原则之上:
- 通过新的智能合约编程语言 Move 来实现快速和安全的事务执行;
- 通过批量处理、流水线处理和并行事务处理方法实现极高的吞吐量和低延迟;
- 新的并行事务处理,支持任意复杂事务的原子性;
- 通过快速的、有质押权重的验证器集轮换和信誉跟踪,优化网络性能和去中心化程度;
- 可升级性和可配置性,以拥抱新的用例和最新的技术;
- 模块化设计,支持严格的组件级别测试,以及适当的威胁建模和无缝部署,所有这些都确保了高度安 全和可靠的操作。
- 在保持去中心性的同时,通过分片保证吞吐量的可扩展性;
Move 语言
Move 是一种新的智能合约编程语言,它强调安全性和灵活性。Aptos 使用 Move 的对象模型来表示其账本状态,并使用 Move 代码(模块)来编码状态转换的规则。
Move 的灵感来自于 Rust 编程语言,Aptos 团队进一步增强了 Move,以支持更广泛的 Web3 用例。
逻辑数据模型(Logical data model)
Aptos 的账本状态表示所有帐户的状态,任何人都可以向 Aptos 提交一个事务处理,以修改账本状态。
交易
已签名的事务处理包含以下信息:
- 事务身份验证节点:发件人使用包含一个或多个数字签名的事务身份验证节点来验证事务是否经过身份验证;
- 发件人地址:发件人的帐户地址;
- 有效负载:对于点对点交易,包含收件人的信息和转账金额;
- Gas 价格:发送方为执行交易而按每单位 Gas 愿意支付的金额;
- 最大 Gas 量:交易在中止前允许消耗的最大 Gas 单位;
- 序号:交易记录的序号,在事务执行成功后,将增加帐户序列号,以防止重放攻击(Replay Attacks);
- 到期时间:事务停止有效的时间戳。
- 链 ID:标识此事务有效的区块链 ID,以防止签名错误;
账户
Aptos 不会将账户与现实世界的身份联系起来,用户可以通过生成多个密钥对来创建多个帐户, 由同一用户控制的帐户彼此之间没有内在的联系。
但是一个用户仍然可以在一个钱包中管理多个帐户, 以便进行简单的资产管理,这种灵活性为用户提供了匿名性,而我们为未来的版本提供了隐私保护功能,还提供多个帐户以增加执行并发性。
Move 模块
Aptos 框架由 Aptos 的核心库和配置组成,被定义为一个常规的可升级的模块包。
链上的数据示例
如何实现安全的用户体验
交易可行性保护(Transaction viability protection)
签署交易意味着签名者授权区块链提交和执行该交易,偶尔用户可能会在无意中签署事务,或者没有充分考虑他们的事务可能被操纵的所有方式。
为了降低这种风险,Aptos 限制了每笔交易的可行性,以保护签名者。目前 Aptos 提供了三种不同的保护措施:发送者的序列号、 事务过期时间和指定的链 ID。
- 事务的序列号对于每个发送者的帐户只能提交一次。因此如果当前帐序列号是 ≥ 事务 t 的序列号,那么 t 已经提交或 t 将永远不会提交,因为 t 使用的序列号已经被另一个事务消耗;
- 如果区块链时间超过了事务 t 的到期时间 ,那么同样地 t 要么已经提交,或者 t 将永远不会提交;
- 每个事务都有一个指定的链 ID,以防止恶意实体在不同的区块链环境之间进行重放攻击;
基于 Move 的密钥管理(Move-based key management)
Aptos 帐户支持「密钥轮换」(key rotation),这是一个重要的特性,可以降低与私钥泄露、远程攻击和可能破坏现有密码算法的未来进展相关的风险。
此外 Aptos 的账户也足够灵活,可以支持新的混合托管模型,用户可以将轮换帐户私钥的能力委托给一个或多个托管人和其他可信实体。然后 Move 模块可以定义一个策略,使这些受信任实体能够在特定情况下轮换私钥,例如实体可能是由许多受信任方持有的 k-out-of-n 多签密钥形式,从而可提供密钥恢复服务以防止用户密钥丢失。
透明的预签名交易(Pre-signing transaction transparency)
如今,钱包对他们所签署的交易几乎没有提供任何透明度,因此用户往往很容易被骗去签署恶意交易,这可能会窃取资金,并产生严重后果。
为了解决这个问题,Aptos 生态系统提供事务预执行服务:可向用户(以人类可读的形式)描述他们在签名之前的事务结果,将其与已知的先前攻击历史和恶意智能合约相结合,将有助于减少欺诈。
此外,Aptos 还允许钱包在执行过程中规定对交易的限制,违反这些约束将导致事务被中止,以进一步保护用户免受恶意应用程序或社会工程攻击。
实用的轻型客户端协议(Practical light client protocols)
Aptos 提供状态证明和轻客户端验证协议,钱包和客户端可以使用这些协议来验证由不可信的第三方服务器提供的数据的有效性。
此外轻客户端可以保留最小的可验证数据,而不需要运行一个完整的节点或处理大量的事务。
流水线处理、批量处理和并行事务处理(Pipelining, batching, and parallel transaction processing)
为了最大化吞吐量、提高并发性和降低工程复杂性,Aptos 上的事务处理被划分为单独的阶段,每个阶段都是完全独立的和可单独并行的。
这不仅提供了显著的性能优势,而且还使 Aptos 能够提供新的验证节点 - 客户端交互模式,此外 Aptos 模块化设计也有助于提升开发速度并支持更快的发布周期。
批量处理(Batch processing)
批量处理是一个重要的效率优化,在广播交易时,每个验证节点将交易分组为批,在达成一致后将批合并成块。
连续事务传播(Continuous transaction dissemination)
Aptos 中的交易广播与共识脱钩。
区块元数据排序(Block metadata ordering)
Aptos 区块链的关键创新之一 是将与非协议相关的任务从共识阶段中分离出来,如交易传播、交易执行 / 存储和分类账认证。
通过将事务广播与共识阶段分离,可以在非常低的带宽下进行排序,从而实现高事务吞吐量和最小化延迟。
此外 Aptos 对每个提议的区块块采用一个近似的、商定的物理时间戳,以及相应的该区块块内的所有事务,这个时间戳启用了许多重要的用例,例如:
智能合约中的时间依赖性逻辑,譬如开发人员可以设置所有拍卖的投标必须在周四中午之前收到等等。
并行事务处理(Parallel transaction execution)
一旦对一致区块元数据进行排序,事务就可以由任何验证器、全节点或客户端执行。
批量存储(Batch storage)
批量处理减少了存储操作的数量,并利用了更高效、更大的 I/O 操作。
分类账认证(Ledger certification)
Aptos 为分类帐历史记录和分类帐状态实现了分类帐认证,且分类账认证并不在交易处理的关键路径上。
状态同步
Aptos 旨在为生态系统中的所有参与者提供一个高吞吐量、低延迟的系统,因此必须提供一个有效的状态同步协议,以传播、验证和持久化区块链数据到轻客户端、全节点和验证节点。
Aptos 利用验证节点、全节点和其他复制节点提供的经过验证的分类账历史和认证的状态证明,以提供灵活和可配置的同步协议,具体来说,网络中的参与者可以根据不同的同步策略来优化他们的用例和需求。
例如,在全节点的情况下,Aptos 允许多种同步策略,包括能够处理自时间开始以来的所有事务,或者完全跳过区块链历史记录,并使用路径点只同步最新的区块链状态;在轻客户端的情况下,策略包括同步部分区块链状态。
通过采用一种灵活和可配置的状态同步方法,Aptos 可以适应各种客户端需求,并在未来继续提供新的、更有效的同步策略。
社区共同治理
Aptos 将由一个广泛和多样化的社区拥有、运营和管理。
原生 Aptos 代币将用于交易和网络费用、协议升级和链上 / 链外流程的治理投票,以及通过 PoS 模型保护区块链。
对 Aptos 代币经济学的完整描述将在未来公布。
交易和网络费用(Transaction and network fees)
所有的 Aptos 交易都有一个 Gas 单价,允许验证节点对网络中价值最高的交易进行优先排序。
此外,在流水线模型的每个阶段,有多种机会丢弃低价值事务(允许区块链在系统容量下有效 运行)。
随着时间的推移,将部署网络费用以确保使用 Aptos 的成本与硬件部署、维护和节点操作的实际成本成正比。
网络治理(Network governance)
Aptos 上的每一个重要的特性更改和改进都将经过几个阶段,包括提议、实现、测试和部署。
这种结构为相关方和利益相关者提供反馈、分享关注和提供建议的机会。其中最后一个阶段(即部署),通常可以通过两个步骤来实现:
首先,一个带有新功能的软件版本将被部署到每个节点上;
其次,将通过一个特性标志或链上的配置变量启用该功能;
与其他区块链相比,Aptos 对其在链上的配置进行了编码,每个验证节点都能够同步区块链的当前状态,并自动选择正确的配置。
为了为支持过程提供灵活性和可配置性,Aptos 将支持链上治理,即代币持有者可以根据他们所持有的代币权重进行投票。
PoS 共识机制
要参与 Aptos 上的交易验证,验证者必须拥有最低数量的 Aptos 代币。
性能
Aptos 能够通过其并行、批量处理优化和模块化的事务处理来实现最佳的吞吐量和硬件效率,其他的性能计划,如一致升级、增量写入、事务提示和关键路径缓存,将随着时间的推移继续提高吞吐量和提高效率。
Aptos 将继续优化单个验证节点的性能,并试验扩展技术,添加更多验证节点的网络,这两个方向需要权衡。
任何具有并行执行功能的区块链都可以通过更强大的硬件,甚至将每个验证节点构建为单片机集群来支持额外的并发性,然而很少有实体能够有效地部署和维护这些类型的复杂分布式系统。
均匀状态分片(Homogeneous state sharding)
Aptos 将以单一的账本状态启动,随着时间的推移,Aptos 网络将采取一种独特的方法来实现 水平可扩展性,同时仍然保持去中心化。
这将通过多个分片分类账状态实现,每个状态都提供一个同质 API,而分片是一级概念。Aptos 代币将用于所有分片上的交易费用、持股和治理。
数据可以通过桥在分片之间传输,用户和开发者可以根据自己的需要选择自己的分片方案,例如开发人员可以在现有的分片中提出一个新的分片或集群用户,以实现高效的分片内连接。
此外分片可能具有不同的系统特性,譬如可以使用一个分片进行计算优化。总之均匀状态分片提供了横向吞吐量可扩展性的潜力,允许开发人员跨分片使用单一的通用状态进行编程,并允许钱包轻松地为其用户合并分片数据。
链云财经原创,作者:链云财经官方,转载请注明出处:http://www.lianwin8.com/?p=18059