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