Aptos 全面技术解读:核心仍是 Move 语言,自身创新不足
原文作者: Web3.com Ventures ,由 DeFi 之道翻译编辑。
介绍
随着 Aptos 最近主网的发布以及它在主流中心化交易所的上线交易,现在正是对这个备受期待的项目进行探索性分析的最佳时机。作为 Meta 尝试创建 Libra 加密货币的遗产,Aptos 继承了 Libra 的理想,即成为未来数百万加密用户的区块链。
Aptos 的首要重点是提供可扩展、安全和可靠的区块链 [1]。为此,Aptos 依赖于一种新的智能合约语言 Move,它表面上是一种比当前以太坊 Solidity 的“黄金标准”更“安全”的语言。当然,Aptos 并不是第一个将自己标榜为“可扩展、安全和可靠”的 L1 区块链。其他区块链,尤其是 Solana,过去也曾尝试将此作为他们的口号,并取得了不同程度的成功 [2]。在这篇文章中,我将努力从 Move 语言的基本属性入手,在其他类似项目的背景下分析 Aptos 的技术基础,并对这个热门新链的潜力和局限性进行批判性评估。
Move 语言
如果不分析 Move 语言,就无法分析 Aptos。事实上,这可以说是 Aptos 大部分潜力的来源。 Move 最初是由 Meta 的 Libra 团队(现名为 Diem)开发的,与其他智能合约语言相比,它提供了一种范式不同的智能合约编程模型; Move 没有采用基于交易的方法,而是采用基于资源的方法来定义智能合约模型 [3]。
那么这一切意味着什么呢?从比特币开始,绝大多数著名的区块链都采用了“交易优先”的方法,区块链块中的每个条目都是一笔交易(比如 Alice 和 Bob 之间的交易)。交易是相对的对象;要进行交易,需要存在 Alice 和 Bob 地址。为了确保 Alice 不会在交易优先的方法中“双重花费”代币,我们需要检查与所有其他交易没有冲突,这不可避免地会减慢交易速度。
另一方面,Move 的“基于资源”的方法截然不同。 Move 不记录 A 到 B 的交易行,而是记录对象(或资源)的易手情况,并相应地更新属性。重要的是,资源是原子实体——现有的资源 X 不依赖于任何其他现有的资源,这与事务的情况不同,其中事务 T 依赖于两个先前的代理 A 和 B 的存在。因此,拥有基于资源的方法允许针对并行执行进行优化的更加原子的、独立的结构。
基于事务与基于资源的方法的粗略草图。
Move 中的“资源”本质上是具有某些属性的对象。在技术术语中,它们是实现的结构(即容器数据结构)[4]。此时,有以太坊编程背景的人可能会提出一个问题:Solidity 也有结构体,还有其他数据结构体。是什么让 Move 中的结构特别?我认为最重要的区别在于,虽然 Solidity 中的结构在语言中具有相对外围的部分(主要用于清晰起见),但结构是 Move 中一切的基础。此外,Move 的结构具有不同的“功能”,包括“复制(copy)”、“删除(drop)”、“存储(store)”和“密钥(key)”,它们定义了对象是否可复制、可存储、可删除等 [5]。这种结构符号与 Solidity 或绝大多数常见编程语言(例如 C/C++)完全不同。然而,这些不同的“能力”是非常直观的。有些东西你可以“复制”,比如代币或通证。有些东西你可以“删除(drop)”或扔掉。其他东西,例如独特的数字资产,可能无法复制。现在考虑一下 Move 上“资源”的以下官方定义:
“如果结构值无法复制且无法删除,我们通常将其称为资源。” — 结构和资源,Move 语言文档 [4]
因此,“资源”本质上是独一无二的“结构”,将永远存在于你身边。多么浪漫。
Move 对“结构”的完全重新定义允许它使用一种数据结构以简洁的模块化方法简洁地定义代币、NFT、智能合约和其他数字资产 [6]。这是以太坊的 EVM 根本无法比拟的;任何使用 EVM 开发经验的人都知道在 Solidity 中处理结构(和嵌套结构)是多么令人沮丧。
至关重要的是,Move 的基于资源的方法为其安全保证提供了保障。正如 Move 的白皮书所提到的,在许多程序中存在资产的间接表示,这意味着稀缺性和访问控制是不可扩展的。例如,虽然以太币的稀缺性被 EVM 硬编码和保护,但其他 ERC-20 代币“不继承这些保护,它们必须小心不要引入允许复制、重用或资产丢失的错误”,[4]。考虑经典的重入攻击。这是长期困扰 EVM 项目的问题,经常导致它们损失数百万美元 [7]。由于 Move 采用基于资源的方法,因此无法在 Move 上进行重入攻击。因此,Move 编码的入门门槛可以说比 EVM 更容易获得——这是大规模采用的一个关键因素。
Aptos——技术原理
可以说,Aptos 最大的成就是将 Move 作为一种语言推向市场。 ****事实上,Aptos 的大部分设计都直接取自 Meta 开发的 Diem (Libra) 区块链。回想一下,Aptos 是一个强调可扩展性和安全性的链。有两种主要的技术实现用于实现这一点。首先是在它的共识层,即AptosBFT共识机制。第二个是它的执行层,即 Block-STM 执行引擎。让我们按顺序检查这些。
首先,AptosBFT 是一种拜占庭容错共识机制,本质上意味着只要网络上不超过 1/3 的节点是恶意行为者,它就可以继续保证安全性 [8]。这是一种标准做法:比特币的工作量证明、以太坊的权益证明等都是拜占庭容错的。那么 AptosBFT 究竟是如何实现其共识机制的呢?与所有其他权益证明链一样,Aptos 依赖于“质押”验证者节点。它实现了 HotStuff 共识算法的变体,这是一种现代 PoS 算法,与早期模型(例如 pBFT)相比,它通过让节点与“轮换领导者”而不是与所有其他节点进行通信,从而在节点之间提供更清洁的通信协议 [9 ]。虽然 AptosBFT 在 HotStuff 之上引入了一些优化,最显着的是“密钥轮换机制”(以增强安全性)和减少开销(以增强可扩展性),但 HotStuff 的 PoS 设计 [10] 没有重大的结构变化。
HotStuff 共识模型: https://hackernoon.com/hotstuff-the-consensus-protocol-behind-safestake-and-facebooks-librabft
另一方面,Block-STM 并行执行引擎是一个更具原创性的设计,可以说是该项目的主要技术突破 [11]。回想一下,资源是原子的——某个资源 X 的易手不依赖于任何其他资源。通过将交易分组(如乐高积木),我们可以在执行资源交易时利用大规模并行性,与以太坊 [11] 相比,计算速度提高了 20 倍。
但这与 Solana 和其他并行执行引擎相比如何? Solana 的主要创新是对其所有智能合约依赖项进行硬编码,以使其能够进行并行执行。有了预先知道的所有依赖项,Solana 执行引擎就可以在运行前锁定必要的依赖项。另一方面,Aptos 动态管理依赖关系,首先“乐观地”运行所有事务,然后在失败的情况下重新运行那些失败的特定事务 [12]。
以太坊、Solana 和 Aptos 的执行引擎比较。
让我们用一个简单的类比来解释上面的内容。以太坊是一条单车道的道路,所有的汽车都必须排成一条线,而 Solana 和 Aptos 都是四车道的高速公路。这显然加快了速度。但问题是,汽车如何在高速公路上行驶?在 Solana 的情况下,每辆车基本上都被分配了一个特定的车道,并且总是沿着车道行驶。在最好的情况下,这是非常快速和有效的,但是如果分配过程出错,那么你就会遇到非常糟糕的最坏情况。另一方面,在 Aptos 的情况下,首先为汽车分配一些车道,但如果这不起作用,则允许汽车转向其他车道以防止发生事故。因此,即使 Aptos 在最佳情况下运行速度可能不如 Solana,但它比 Solana 更可靠,并且具有更好的最坏情况 [13]。
评估——潜力和局限
Aptos 是目前第一个也是唯一一个推出主网的主要基于 Move 的 L1 链。因此,Aptos 的主网发布是一个非常具有象征意义的事件。 Aptos 所吸引的金钱和媒体关注不一定与其内在的技术创新相称。
如上所述,Aptos 自身的主要技术创新在于其 Block-STM 并行执行引擎。大多数其他技术方面,包括其共识机制和 Move 语言的使用,都是从 Meta [14] 继承的略微改进的遗留产品。关于 Block-STM 并行执行引擎,目前尚不清楚这是否会导致 Aptos 上的用户体验与 Solana 上的用户体验之间存在质的差异;如果用户体验相同,用户不会关心它在技术层面是如何实现的。
与任何基础设施项目一样,Aptos 的长期成功取决于选择在其上构建的项目。目前,其生态系统中的项目,如 Liquidswap DEX、Topaz NFT 市场和 Aptos 域名服务,虽然是任何区块链生态系统中的必要产品,但对于 Aptos 的设计来说还不够独特 [15]。这些项目就像一个小村庄的杂货店、学校和医院。虽然对村庄的运作是必要的,但它们并没有赋予村庄任何其他村庄所没有的独特特征。
回顾过去,Solana 的部分成功可能要归功于 StepN 等项目,这些项目实际上能够利用 Solana 的并行性优势。这些 GameFi 和 SocialFi 项目往往涉及大量相对孤立的并行数据。因此,这些应用程序特别适合并行执行引擎,例如 Aptos 和 Solana,同时还能够带来庞大的消费者基础和高交易量。事实上,在某一时刻,仅 StepN 就占 Solana 付费用户的约 20% [16]。
因此,要让 Aptos 作为一个基础设施项目取得成功,需要有一系列独特的项目来充分利用 Aptos 的并行执行引擎,这些项目无法在以太坊甚至 Solana 上完成。借助 Aptos 新颖的 Block-STM 设计,这些可能会以一种新的 SocialFi 项目的形式形成,用户在这些项目中以小群(如群聊)进行交互。因为这些组可以是流动的和动态的,同时也有点相互独立,所以它们比 Solana 或以太坊的更适合 Aptos 的并行执行引擎。但当然,这只是一个抽象的推测。
尽管如此,Aptos 的主网发布仍然是加密世界中非常重要和具有象征意义的事件。它代表了 Meta 工程师多年来为解决以太坊可扩展性瓶颈而带来的质量不同的范式努力的成果。 Move 独特的语言特性意味着不可避免地会有 DApp 在 Move 上实现,而不是在 Solidity 或其他智能合约语言上实现。但是这些项目一定会在 Aptos 生态系统中实施吗?没人知道。 Aptos 可能会享有一些先发优势,即能够将 Move 投入生产并将其名称与 Move 语言联系起来。但与此同时,它很可能会遭遇类似 MySpace 的先发制人命运。
至少有一件事是肯定的:Aptos 可能是市场上第一个 Move 实验,但肯定不会是最后一个 [17]。
原文:https://medium.com/@Web3comVC/on-the-move-a-critical-analysis-of-aptos-4a87bc7209cd