撰文:0xjs@金色财经
在预告推出超平行计算机AO两周后,北京时间2024年2月28日凌晨,去中心化存储项目Arweave正式发布AO公开测试网。
从预告到正式推出,Arweave代币AR价格已经上涨超过1倍。
据Arweave团队说法,Arweave早在2020年初就有此想法,即Arweave数据存储平台可以支撑高度可扩展的区块链网络。2023年在制定使用代币代表内容所有权的计划时,意识到需要一个高度可扩展的网络来支持此类代币的市场,随后开始默默开发。
Arweave创始人Wiliams表示,AO构建了一台超并行计算机,其可以同时并行运行任意数量线程的计算机,可扩展性令人难以置信。
也就是说,原本做去中心化存储的Arweave进入计算和智能合约市场。尽管其采取的架构和方法,和以太坊等公链迥异,但事实上已经进入公链市场并和它们竞争。
Arweave创始人Williams表示,AO有信心与以太坊竞争。那么,到底什么是AO?有何特性让其创始人有信心与以太坊竞争?
什么是AO?
据AO官方文档,AO计算机是面向参与者的(actor oriented)机器,从遵守其核心数据协议的节点网络中涌现,运行在Arweave网络上。下面简要介绍该协议及其功能以及技术细节。
AO计算机是一个单一的、统一的计算环境( Single System Image,单系统映像,其是分布式计算的一种模式,使用一个多网络的通用接口,分布式数据库,或者多个服务器,但对用户而言是一个系统),托管在分布式网络中的一组异构节点上。AO旨在提供一个环境,其中可以驻留任意数量的并行进程,并通过开放的消息传递层进行协调。这种消息传递标准将机器的独立操作流程连接到一个“网络”中,就像网站在独立服务器上运行但通过超链接连接成一个凝聚的统一体验一样。
与现有的去中心化计算系统不同,AO能够支持计算操作而无需协议强制限制大小和形式,同时还保持网络本身的可验证性(从而实现信任最小化)。此外,ao分布式和模块化架构允许现有的智能合约平台轻松“插入”网络,充当可以从任何其他进程发送和接收消息的单个进程。
AO,不是对计算环境的所有用户强制执行一组选择,而是以模块化形式构建。AO允许用户选择最适合他们的虚拟机、去中心化排序权衡、消息传递安全保证和支付选项。然后,通过将所有消息(每条消息共享相同的格式)最终结算到 Arweave 的去中心化数据层上来统一该模块化环境。这种模块化创建了一个适合极其广泛的工作负载的统一计算环境,其中每个进程都可以轻松地传输消息并进行协作。
AO的核心目标是在没有任何实际规模限制的情况下实现无需信任和协作的计算服务。这为应用程序提供了一个以前不可能的全新设计空间,其融合了智能合约应用程序(除了代码之外不需要信任任何东西的服务)和传统计算环境(Amazon EC2 等)的优点。
由于其可扩展性,开发人员使用AO的自然方式是在网络内生成自己的命令行 ( aos) 进程,并开始发出命令。这个开发者体验类似于开发人员在云主机上创建新的服务器实例并通过 SSH 连接到它,只不过这个命令行过程具有智能合约的属性。他们的命令行进程ao 并不存在于任何特定的数据中心或任何一个物理位置,并且其计算是完全无需信任的。每个用户都可以与其他所有进程和程序发送消息并进行交互。其结果是一个全局性的“单系统映像”:一台统一的计算机——分布在世界各地,以任何规模运行——在所有用户之间共享。
从最终用户或开发人员的角度来看,AO本质很简单: AO是一台共享计算机,他们可以在其中运行任意数量的进程。这些进程不托管在任何特定服务器上,也不受任何个人或团体的控制。相反,一旦启动,这些流程就可以通过加密方式委托,以可证明中立的方式永久地提供服务。这使他们能够随着时间的推移保证用户的权利。
AO核心功能
与现有的去中心化和分布式计算系统相比,AO协议具有以下特点:
并行运行任意数量的进程(“合约”):在AO中,应用程序由任意数量的通信进程构建。受到原始 Actor 模型(Carl Hewitt,1973)和Erlang的启发,ao不允许进程之间共享内存,但允许它们通过原生消息传递标准进行协调。然后,这些进程中的每一个都可以以可用计算资源的全速运行,而不会相互干扰。通过专注于消息传递,AO可以实现比传统智能合约更类似于传统 Web2/分布式系统环境的扩展机制。
进程中的无限资源利用:建立在SmartWeave和LazyLedger原始版本(后来改名为Celestia)的延迟评估架构之上,AO网络中的节点根本不需要执行任何计算即可就程序状态达成共识过渡。状态由 Arweave 托管的进程消息日志“全息”暗示。然后,计算成本被委托给用户,他们可以计算自己的状态,或者请求由他们选择的节点执行。
访问原生无限硬盘Arweave:AO进程可以无缝地将任何大小的数据直接加载到内存中、执行并写回网络。这种设置消除了典型的资源限制,并实现了完全并行执行,极大地扩展了应用程序开发的可能性,超越了传统智能合约平台的限制。因此,它为需要大量数据处理和计算资源的复杂应用程序打开了大门,例如机器学习任务和高计算自主智能体。
自动激活合约:在传统的智能合约环境(如以太坊、Solana、Polygon 等)中,合约会根据用户交易的请求“唤醒”以执行计算。这创建了一个环境,在该环境中,除非用户与程序交互,否则程序不是“实时”的,从而缩小了可以在其上构建的应用程序的范围。ao通过允许合约进行预定的“cron”交互来消除此限制,这些交互会自动唤醒它们并按设定的时间间隔执行计算。任何用户,或者实际上是进程本身,都可以向节点付费以“订阅”进程,以便以适当的频率触发计算评估。
支持扩展的模块化架构:ao的核心架构是一个开放数据协议,任何人都可以构建其实现。所有东西——从排序器、消息传递中继器,甚至系统的虚拟机——都可以随意交换和扩展。这种灵活性将允许 Arweave 生态系统中现有的智能合约系统(Warp、Ever、Mem 等)插入ao统一网络并能够从统一网络发送和接收消息。这也将允许所有这些智能合约系统共享一些相同的基础设施和工具,从而在 Arweave 上提供更加连贯的计算体验。
AO基本架构
进程(Processes):网络的计算单元。进程由存储在 Arweave 上的交互消息日志以及初始化数据项表示。进程在初始化时定义其所需的计算环境(其虚拟机、调度程序、内存需求和必要的扩展)。虽然流程以这种方式在共识级别上表示,但它们也意味着可以由满足要求的计算单元计算并选择执行该流程的状态。除了从用户钱包接收消息之外,进程还通过消息单元转发来自其他进程的消息。流程开发人员可以自由选择如何确定这些消息的可信度。
消息(Messages):与进程的每次交互都由消息表示。消息的核心是符合ANS-104标准的数据项。用户和进程(通过其发件箱和消息单元)可以通过调度程序单元将消息发送到网络上的其他进程。AO消息的语义介于UDP和TCP数据包之间:保证仅传递一次,但如果消息从未被消息单元转发——或者接收者从未实际处理它——那么它的传递将不会发生。
调度程序单元 (Scheduler Units,SU):负责将发送给进程的信息分配 slot 编号并确保数据上传到 Arweave。调度程序单元负责将原子递增的slot编号单一分配给发送到进程的消息。分配后,调度程序需要确保数据上传到 Arweave,从而永久可供其他人访问。进程可以自由选择其首选的排序器,可以通过多种方式实现:去中心化、中心化甚至用户托管。
计算单元 (Compute Units,CU):计算单元是用户和消息单元可以用来计算AO中进程状态的节点。虽然 SU 有义务对它们已接受的进程的消息进行排序,但不需要 CU 来计算进程的状态。这创建了一个点对点的计算市场,其中 CU 提供解决进程状态的服务,并相互竞争——权衡价格、进程的计算要求和其他参数。一旦状态计算完成,CU 将向调用者返回特定消息解析的输出(日志、发件箱和生成其他进程的请求)的签名证明。CU 还可以生成并发布其他节点可以加载的签名状态证明——可选择支付UDL指定费用。
通信单元 (Messenger Units,MU):一种根据 cranking 的进程在AO网络中传递消息的节点,将消息传递给计算单元,并协调以计算输出结果。本质上,当 MU 在系统中发送消息时,它们将其发送到适当的SU进行处理,然后与CU协调以计算交互的输出,然后对任何生成的发件箱消息递归地重复该过程。这个过程一直持续到没有更多的消息需要处理为止。
结语
AO的推出,意味着Arweave从存储平台转身为计算平台。尽管AO采取的架构和方法完全不同于传统的区块链,AO已经处于与以太坊等众多智能合约公链的竞争地位。
AO声称自己扩展性极强,让人们无疑以为又是一个“以太坊杀手”。
AO未来到底能会给加密市场带来什么改变?
AO目前还处于测试网阶段,一切后续发展都还有待观察。