前言
7月末,新公链Aptos宣布再次完成1.5亿美元融资,由FTX Ventures和Jump Crypto领投,其于今年3月份,刚完成由A16Z领投、Multicoin Capital、FTX Ventures 、Coinbase Ventures参与的2亿美元融资。
公众号:币圈小七
公链的可扩展性是加密世界永恒的话题,自2020年Defi Summer以来,Defi、Gamefi、NFT等链上活动的指数级增长,对各个公链带来了巨大的压力,开发者和用户对于公链性能的需求愈发强烈,为了应对未来大规模商业化的应用的诞生,Web3应用需要一个低交易费用的高性能底层作为发展土壤。
Solana通过塔式节点架构、异步架构以及并行消息处理等设计成为高性能单片链的代表,以太坊上的各类Rollup、专注于DA层的Celestia、ETH2.0的分片采用模块化的方式构建底层网络。
新公链Aptos则采用模块化的理念在高性能单片链方向上又走出了一条另类的扩容之路。本文我们主要对比Aptos与Solana的一些关键设计,探讨:
- Aptos是否从本质上建设了新一代的高性能公链?
- Aptos是否解决了单片链的两个核心问题?
- Aptos是资本推动的又一个Solana吗?
一、并行化
Aptos的网络设计中将交易划分为了不同的阶段,每个阶段都是且可以单独并行的,这实现了多指令流和多数据流,在可以显著提升网络性能的同时,使得验证节点可以在存储、运算等方面进行额外的扩展,也使得整个网络的开发更加的灵活,迭代更新可以只针对其中一个模块。
批量处理:在交易传播过程中,交易被每个验证者分组为批次,而在共识过程中,批次被合并为区块。
连续的交易广播:交易的传播和共识脱钩,验证节点不断的将分组后的批次发送给其他验证节点。
交易排序和交易执行:这一步实际是通过DiemBFTV4实现共识的过程,验证者会提议对区块进行状态更新,将状态增量和包含已被认证区块状态发送给其他验证节点,其他验证节点决定是否投票,如果投票,则可以直接进行计算和执行,不再需要等待共识完成。Aptos通过Block-STM并行执行引擎来管理事务的执行,这是一个乐观的并发控制,其性能测试如下:
可以看到在10k个账户竞争的情况下,32线程情况下可以达到16w的TPS,并行执行的优势在大量账户的竞争交易空间时得到体现。
单片链历来存在两个核心问题:
1、资源定价。所有交易竞争同一个区块空间,消耗相同的资源,在交易拥挤的时候,所有人的花费会被动上涨,结果是某一类交易的大量需求影响到了全局的用户,这样就无法针对不同的应用提供的交易执行和结算。
2、链式交易对性能的限制,单片链中,所有交易都需要排队等待打包、计算、验证最后形成共识,之后完成验证后才开始向其他节点进行打包传递,这种串行的步骤无疑对交易性能形成了巨大的限制。
并行化机制可以很好的解决链式交易的问题,但资源定价的问题仍然存在。
二、状态同步
状态同步简单来讲就是协调所有的节点使其保持同一个状态。
为什么说状态同步对性能有着重要的影响:
1、通常我们通过TPS来衡量一个公链的交易性能,但另外一个指标TTF(Time To Finality)更加重要,因为TPS指的是链每秒处理多少交易,而对于用户而言,用户感知到的交易所花费的时间应当=交易在链上被处理的时间+被同步到对等节点和客户端的时间,我们会发现状态同步对TTF的影响是很大的,如果一个公链TPS很高,但其实现同步需要较长时间,用户感知到的仍然是整条链性能低下。
2、状态同步负责在节点之间同步信息时验证信息的正确性,状态同步做的好坏会决定全节点或客户端会不会有较大可能性接收到恶意、欺骗性的数据。
Aptos以Block-STM的方法为核心构建状态同步方案,具有乐观并发控制、多版本数据结构、协作调度、动态依赖估计等特性。由于Aptos将交易划分不同阶段的并行方案对于节点之间的状态同步有很高要求,目前的解决方案能否实现理论上的亚秒级确认还有待验证。
Solana通过POH机制实现并发控制和可靠的同步:
POH是一个高频的VDF(可验证延迟函数,即使在多线程,或者说可进行大量并行计算的机器上仍然需要规定的时间才能求解的函数)。通过POH,Solana相当于创建了一个全局的时间链,验证节点持续在区块内对哈希值连续哈希,每一段时间都生成一个证明,每一个都证明了有一些交易数据是存在于创建证明之前,同时上一个证明已经过去一段时间了。在POH机制下,节点通过VDF函数赋予区块链一个时间戳证明,然后将区块发送给验证节点,验证节点通过不断生成和验证VDF这个函数,就可以得到需要的时间间隔,从而验证收到的节点的时间戳证明是否正确。
相较于大多数通过将交易广播至全网后才能完成确认的公链 (节点间也需要再沟通自己的 precommit 和 prevote, 之后节点集体投票代表某个区块高度的全账本, 交易确认),在 Solana 上,交易确认只需要验证上个批次的 POH 哈希即可完成。POH机制下,携带有时间戳证明的交易批次已确认被排序完毕,验证节点可以对时间戳进行本地验证,那么消息就可以持续不断进行可靠的传输,实现共识和消息传递的脱钩。
三、节点架构
Solana采用的节点为中心的金字塔式结构,Leader节点从验证节点中竞争选出,负责收集交易,创建包含 PoH 的区块,更新网络状态。而Aptos采用的是星状结构,网络中有一组验证节点使用DiemBFTv4实现共识。
对于Solana而言,只有被选中的节点才能生产下一个区块,这大大减少了网络的冗余程度,可以大幅度提高网络的性能,但这种设计降低了整个网络的去中心化程度,当Leader节点崩溃时,容易造成整个网络会陷入瘫痪。
对于Aptos而言,没有所谓的节点,验证节点和全节点都需要保证一定数据备份来防止极端情况的发生,这样虽然增加了整个网络的冗余程度,但在去中心化和网络弹性方面表现会更加良好,不会因为一个验证节点的崩溃导致整个网络宕机。
节点硬件要求
Aptos的并行化的架构采用CPU进行事务处理,Solana在执行层面的并行化架构采用CPU+GPU作为运算单元,Solana对于节点的硬件要求明显高于Aptos不少。
小结
- Solana和Aptos用以提高网络性能的解决方案有着比较多的相似性,都通过解耦消息传递和共识提升处理速度,共同使用了乐观并发控制的机制,但是Solana则更多的注重在共识和消息广播并行化层面,Aptos则在并行化方面做的更加彻底,实现共识、广播、执行、存储的全部并行化,再结合Aptos优秀的状态同步解决方案,在UX和DX方面表现较为优秀。
- Solana激进的节点架构可以极大的提升网络性能,但随之而来的是网络弹性的不足,节点瘫痪则会引起网络大规模宕机,除此之外Solana对于节点硬件的需求也会过高,会进一步导致网络的中心化,Aptos采用的则是更加中庸的方案,在性能和去中心化之间进行了一定的平衡。
公众号:币圈小七