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