技术详解 ao 超并行计算机
作者:PermaDAO
导语
AO 实际上是基于存储的共识范式(SCP,Storage-based Consensus Paradigm)的延伸,后者类似于主权 Rollup,核心思路是把计算和DA/存储相解耦,链上发布/存储数据 + 链下计算/验证数据。
由于 Arweave 具备极高的数据承载量,基于 AO 和 SCP 架构的 DApp 平台可以极大程度节约数据发布与存储成本,便于支持一些对吞吐量有较强追求的场景。
在大多数人的既有认知中,Arweave 主打永久存储概念,长期被各类项目作为存储层使用。Arweave 曾经的最为人所知的叙事便是:成为永不消失的亚历山大图书馆,终极目的是保存人类文明的火种。
因此,在 Arweave 的 ao 计算机发布后,Arweave 变身成为并行超级计算机非常出人意料,需要指出的是,Arweave 依然可以被作为存储层去使用,ao 架构是存储功能的叠加而非取代关系。
ao 与 SCP 一致,ao 的计算进程可以并行执行,因此可具备高效计算能力。ao 的进程之间可以互联互通,它们的数据格式保持一致,所有的数据最终都按照 ANS-104 的 Bundle 格式存入 Arweave 主网。
每个进程的所有日志都被完全存储,最终进程的全息状态(HolographicState)被留存在了 Arweave 上。
ao 的计算能力结合 Arweave 的永久存储能力,实际上是一个无审查、无处不在的全球性高并发计算机,在其上,任意类型、任意语言、任意公链的 DApp 都可接入 Arweave,畅享比以太坊廉价,但是更高效的去中心化计算服务。
AOS 稍有不同,如果将 ao 理解为计算机架构,那么 AOS 就是一个操作系统实例。
本质上,ao 是一种架构体系,用户需要和类似 AOS 的操作系统交互才能使用相应的功能,为了论述便利,以下统一用 ao 来指代,但是用户需要自行注意二者区别
本文要点:
Arweave 推出 ao 架构,希望借此变身为存储和计算的全能选手,改变目前市场上对其仅有存储概念认知的现状;
Arweave 的 ao 架构是在存储上的功能叠加,ao 架构具备沟通任意公链和 DApp 的潜力;
ao 相关技术包含分布式架构 SSI(单系统映像)、Actor Model(erlang 语言并非模型)和 SU/MU/CU 单元组建构成,其中并发和异步是理解 ao 架构的关键;
ao/SCP 拥有巨大的潜力,有望刺激 Arweave 生态的发展,需要观察“链下计算+链上存储”模式对项目的持续吸引力。
技术解读
让我们先引入一些前提知识,作为对 ao 的补充。在近期坎昆升级和 EIP-4844 激活后,以太坊的数据存储问题显得越来越重要。
比如,专门用于存放 Layer2 DA 数据的 blob,并不会永久保留在以太坊网络中,节点可以自行删除掉超过时间窗口的 blob 数据,届时被淘汰的数据就需要另寻一个存储去处。
虽然有 EthStorage 等基于以太坊的存储平台,在解决 blob 数据过期淘汰问题,但这并非以太坊原生的解决方案,需要依赖于一些额外设计一些机制。
此外,虽然 EIP-4844 可以将数据发布成本极大程度降低,但相比于 Arweave,还是显得非常高昂。
不同于以太坊,在启动之初就奔着“亚历山大图书馆”口号而去的 Arweave,虽然在计算功能上显得简陋,但其原生支持数据永存,且成本极低(存储 1GB 数据约数十美元,与 1 笔以太坊交易的费用持平)。
在数据冗余存储方面,Arweave 把出块概率与节点本地数据集的完备性相关联,如果存储节点删除了一些数据,则其成功出块的概率会降低,而保留数据最多的节点,具备更高的出块“算力”,它们将获取到更多的奖励。
通过这种方法,Arweave 的激励系统能保证任意一段历史数据,能极大概率的被冗余存储。
可以说,Arweave 适合作为一个存储成本极低的去中心化数据存储与发布层,而 ao 和 SCP 便是基于 AR 的模块化区块链及 DApp 架构。
SCP 的设计模式虽然在理论上,与以太坊 Rollup 等以安全为主的模块化方案存在较大差异,但在落地简易度以及与 Web2 平台衔接的难易度上,可行性却很高。
因为他从一开始就不打算像 Rollup 那样,把自己限制在一个狭窄的实现路径上,想要以一种更宽泛、更开放的框架,将 Web2 平台与 Web3 设施融合起来。
图源:极客 Web3《解读SCP:跳出Rollup定式的去信任化基础设施范式》
上图是一个采用 SCP 方案应用 everPay 的原理图,DA 层采用了 Arweave,即图中的大圆圈。
棕色圆圈是协调者 Coordinator,即执行层,类似于以太坊 Layer2 的排序器,用户将交易提交至协调者后,协调者会执行运算,并将这些 DA 数据批量提交至 AR 上。
至于检测者 Detector,有点类似于以太坊 Layer2 的挑战者/验证人,他们会从 Arweave 上拉取协调者提交的 DA 数据,对交易结果进行计算或者验证。
检测者的客户端是开源的,任何人都可以运行。而守望者 Watchmen,实际上是管理跨链系统的多重签名节点,会对跨链请求进行验证和执行。另外守望者也负责签署治理提案。
值得强调的是,SCP 这种架构,对于安全性的要求没有以太坊 Layer2 那么严格,但实际上给采用该架构的项目方提供了更高的自由度、更多的定制化选项,且降低了采用成本,可以说是一种特立独行、脑洞大开的做法。
图源:极客 Web3 《解读SCP:跳出Rollup定式的去信任化基础设施范式》
删繁就简,ao 的框架可以分为三部分,分别是:分布式架构,并行计算功能和通信调度组件三部分,将三者统一起来便是完整的超级计算机功能。
分布式架构,ao 使用单系统映像(SSI,Single-system image)来组织 ao 网络的去中心化体系。
并行计算功能,ao 使用并行计算理论的 Actor Model 理论,来处理高并发环境,并有效结合区块链的相关技术,ao 一词也是从 Actor Orient 而来(面向 Actor,模仿 OOP 的面向对象一词)。
通信调度组件,ao 设计了 MU/CU/SU 三个关键部分,Messenger Units 负责信息传递,Scheduler Units 负责进程调度,Compute Units 负责并行的计算进程。
我们来分别解释下上述各个部分。首先是 SSI 单系统映像,实际上就是一种分布式架构。
比如,各大 Web2 应用背后对应的服务器系统,基本都是由许多台服务器节点共同构成的分布式系统,这些服务器之间通过特殊的消息传递与通讯协议,来确保彼此的状态、对新增数据的看法是一致的。
但在客户端/前端层面,用户感知不到前端背后对应的服务器是分布式的,对用户而言,再庞大的计算机集群也像是一台单一的计算机。
这其实就是计算机工程中常提到的“抽象”,把复杂的底层组件统一汇总在一起,合并为一个模块,外界不需要知道这个模块的内部构造,只需要把输入信息传递给该模块,就可以得到输出结果。
前文提及的 SSI 单系统映像,采用了 Arweave 的“廉价去中心化存储”特性,可以说 ao/SCP 的叙事根基,主要建立在Arweave 相比于其他公链的存储价格优势,以及相比于传统 Web2 平台的抗审查性与数据透明度优势。
在 ao 与 SCP 的叙事中,AR 被当作一个巨大的数据公告板与日志记录仪,DApp 前端发出的数据会传递至 Arweave 网络中,被大量的 Arweave 节点存储在分布式的区块链网络中。
相对于以太坊等去信任程度更高的主流公链网络,由于 Arweave 上的存储成本极其低廉,可以更好的支持那些对数据吞吐量有较高追求的应用场景。
而不同于传统 Web2 平台及联盟链,Arweave 网络的开放性更利于抗审查和数据透明,依附于 AR 的 DApp 要比 Web2 应用更去信任。
比如说,传统的支付宝也可以被 Web3 化,只要支付宝将接口设计为兼容 ao 协议,支付宝的交互数据将自动上传到 Arweave 网络,成为一个 Web3 版本的去信任化“支付宝”。
如果是以太坊或者 EVM 系 DApp,也可以对接 ao 接口,将信息格式转为 ANS-104 格式上传 Arweave 即可。
与传统 XX 云以及封闭式的联盟链不同,任何人或 DApp 项目方只要运行以太坊或 Arweave 等第三方公链的节点,就可以通过 P2P 的方式,向多个节点索要并读取数据,只要 N 个节点中有 1 个愿意提供数据,你就能获取到自己所需要的东西,这归根结底依赖于网络的开放性。
从这两个角度看,ao 和 SCP 这样的基于 Arweave 的 DApp 架构方案,更像是介于 Web2 和 Web3 之间的一种过渡。
以太坊和比特币等传统 Web3 平台,以成本和效率为代价,实现了高度的抗审查与去信任,但是难以获得大规模采用。
Web2 平台则牺牲了数据透明和抗审查性,实现了高效率与低成本,但是不能去信任,ao 更像是两者之间的一种中间形态。
SSI 和客户端-服务器架构、三层架构、N 层架构和对等架构等分布式架构的区别在于透明性上,SSI 可显著提高系统抽象性和用户体验。
不过需要注意,SSI 依赖于乐观同步控制,这要求系统具有较高的同步控制能力,以确保数据的一致性和可靠性,一旦同步控制失败,可能会导致数据丢失,从而影响 ao 架构的可用性。
另外一个 SSI 的好处是部署速度,SSI 可在单个服务器上运行多个实例,不需要像微服务架构或容器化技术一样过度依赖于云服务或容器化工具,有效降低系统的复杂性和部署成本。
在 ao 的实践中,分布式架构的数据同步和备份依赖于 Arweave 网络,因为 Arweave 的永久存储特效,理论上任意时间点的数据状态都有留存,数据不存在丢失或损坏的情况。
不过需要注意,SSI 也会引发新的额外开销,重点是分布式节点之间的网络通信和数据有效同步上,比如,SSI 架构发生故障时,极端情况下只要存在一个正常节点,整个网络都可正常运行,但是实际上这会引发严重的节点安全危机和系统健壮性。
Actor Orient
在简单介绍完 SSI 架构后,需要深入研究 ao 的并行计算机制的实现方式,区别于中心化服务器的简单“堆料”,ao 使用 Actor 模型来达到去中心化的高并发效果,并且用户基本上无感知这是分布式系统。
ao 架构高效的并发计算能力来自 Actor 模型,Carl Hewitt 于 1973 年定义了 Actor 模型的理论框架,并将 Actor 作为并发计算的原语,有趣的是,当时是为了给人工智能做计算而设计的。
不过实践上人们可能更熟悉 OOP 等模式,实际上,根据 Oracle 的调研,OOP 是 Actor 的改进版本,但是二者后来的发展渐行渐远。
Actor 模型定义了一系列系统组件应该如何动作和交互的通用规则,每个 Actor 都是一个独立的实体,它能够做出本地决策,并与其他 Actor 进行通信,但是需要注意,Actor 模型强调的是异步、并行和分布式的特征。
尤其是异步和并行,这意味着每个组件的状态并不同步,有可能产生冲突,因此必须特别依赖消息传递机制,这也是在 ao 中,重点强调 MU 和 SU 的原因,执行并不困难,难的是安排和调度,以发挥出并行的强大计算能力。
每个 Actor 都是独立的执行单元,可以自行处理分配的任务,如果对其进行利用,比如确保消息的原子性和一致性后,就是非常强大且灵活的并发模型。
这里的考虑是区块链中特殊的跨多节点通信需求,比如常见的微服务架构经常会使用节点对节点通信模式,但是基于 RPC 的实现方式会导致多种数据传递的复杂和时延,而 ao 架构通过统一的消息传递机制 MU,统一分配消息格式,以便于最终的 Arweave 存储。
和 CSP(ConcurrentSemantics)的各节点同步执行任务模式相比,Actor 最典型的特点是异步执行,为此,ao 不使用常见的共享内存机制,确保各自的独立性,以更灵活的方式进行跨节点通信。
异步和并行,构成了 Actor 模型在 ao 架构中的高效之源,而为了确保这种效率,MU/SU/CU 被提出并投入使用。
总之,Actor 模型和 Arweave 区块链的结合,搭建出高效信息传递下的异步高并发算力模型。
三要件
ao 架构下,无论是 SSI 还是 Actor 模型,都对信息传递提出了更高的要求,SU、MU 和 CU 应运而生。
首先理解 ao 的进程,指的是初始化任务时请求对应的计算资源,比如虚拟机和内存等资源,任何任务的流转,本质上都是通过进程的传递来实现的。
无论是 SSI 还是 Actor Model,其间流转的消息都要符合 ANS-104 的数据标准和格式,由此,任意类型的 DApp 都可互相理解。
在生产符合要求的数据后,MU 会发送消息给在线的 SU,这个过程会持续进行,直至所有的消息都被处理完毕,紧接着需要 SU 接收数据,并将其上传至 Arweave,用以链接 Arweave 的验证能力。
并且,MU 的处理进程还可以设立付费机制,从而进行定制化的消息处理机制,比如只发送消息但不进行后续动作等。
SU 接收到消息后,CU 会开始接入,CU 是包含多个负责计算的单元,需要注意的是,CU 也是去中心化的算力市场,类似 Akash 一样,各个 CU 集群会相互竞争,竞争胜出者有权进行计算。
CU 会根据请求,响应并提交一份计算结果,这些响应的结果都存储在 Arweave 上,都可由 Arweave 上原始数据进行验证。
可以发现,在这种模式下,ao 提供的是一个高效的、竞争性的计算网络,用户无需为计算确立共识,只需要确保传递的消息符合对应流程即可,这在根本上摆脱了以太坊等为计算有效性所付出的高昂代价。
SCP 和 ao 的结合
首先来讨论可验证性,牢记一个共识,ao 的功能是对可验证的数据状态进行呈现,最终可验证性问题是由 Arweave 上的共识数据保障的。
ao 本质上也是一个 scp 应用,此时查询状态和返回状态两个动作都上链到 Arweave 上了,ao/SCP程序会加载到这两个动作,通过这两个动作计算出 Mint 和 Slash 结果。
具体来说,基于 SCP 范式,需要把 Mint 和 Slash 的规则写入索引之中,那么调用索引数据的节点,自然会计算出 Slash 和 Mint 的结果(数据模型详见 ao spec)。
在论述完 ao 的技术架构后,下文会针对其应用进行讨论,虽然在 ao 发布会后陆续出现原生跨链协议 aox、去中心化稳定币协议 astro 和 Arweave 上的 EVM 兼容项目 AOVM,但是目前都还处于实验状态。
值得一提的是,目前基于 ao 的应用方兴未艾,ao 版本的推特和游戏已经有很多在开发和测试。
同时,Arweave 生态已有的一些成熟的 SCP 项目,比如 everVision 旗下的 everPay 和 Permaswap 等应用都会进行对应的 ao 化适配与改造,在理论和实践上,SCP 理论和 ao 也是同源的。
SCP 根植于 Arweave 的存储能力,可以想象一个永不停止的图灵纸带机,SCP 负责将数据上传至区块链,承担的是图灵机的磁带记录功能,而状态机可由 ao 来提供,每一次的状态变动都可以存储在 Arweave 之上。
这里面存在的问题是状态爆炸,也是困扰以太坊的多年隐疾,而Arweave 不存储状态,因此天然不存在状态爆炸问题,可以永久保存 ao 进程生产的全部数据。
需要注意的是,ao 节点中的数据并不需要计算才能达到共识状态,理论上,只要相关数据被存储在Arweave网络之上,则每一步状态变动都必须被记录,因此,更准确的来说,ao 上的数据不需要计算就能写入网络,计算也只是数据变动的一部分。
其次,面对经久不衰的区块链三难问题,即任何区块链无法同时解决安全、去中心化和可扩展性问题,SCP 和 ao 的结合基本上可以终结这个困境。
安全:Arweave 提供的数据是最大的共识,存储在 Arweave 的共识数据为应用提供可验证性;
去中心化:ao 带来了算力的去中心化,任何个人、机构和 NGO 都可以加入和离开 ao 计算网络,得益于数据共识,离开后的状态恢复也无比简单;
可扩展性:和以太坊的纵向分层不同,ao 和 SCP 总体上是横向分块,无限扩展计算和存储能力。
基于 ao/SCP 架构,Arweave不 再是一个单纯的存储公链,AR+AO 组合起来是一个同时具备存储和计算功能的去中心化超级计算机,任意 DApp 都可在其上进行部署,并相互之间进行调用。
目前的 ao 也是一种独特的模块化架构,即横向扩展的模块化,不仅允许 Arweave 网络上的 Warp 等智能合约,EVM 等机制的智能合约也可以插入 ao 网络,只需要保持数据的格式一致性即可。
或者这样说,scp 是基于 Arweave 搭建了全链的 Layer2,可以接入任意公链和 DApp,而 ao 就是超级版的 SCP,可以将任意公链、智能合约和 DApp 变成 ao 的一部分。
DeFi 的另一种可能
在现存的 EVM 体系中,智能合约是一切的核心,链上行为本质上就是对智能合约的调度和使用,以最常见的 DEX 交易为例,智能合约会在触发特定条件时按照规定执行对应操作,比如添加流动性,寻找代币的合约地址等。
但是必须要注意,此时的合约只是一个单线程的进程,无法进行并发的调用,所有交易都会被以太坊排序并确定其是否成功或者被 MEV 抢跑攻击。
如果使用 ao 架构对 Uniswap 进行改造,则可以创造一个并行的、无休的链上交易机器人,ao 版 Uniswap 各进程可以设定为不同的触发机制,但不会相互干扰,并可利用全部计算资源运行。
可以这样理解,这就是一个 Web2 量化级别的链上交易所。Arweave 生态上最大的 DEX 项目 — — Permaswap 已经采用该方式适配 ao 原生环境。
ao 的每一个进程都具备 Token 的发行能力,以以太坊为例的话,每一个 ERC-20 代币的发行过程就是Token Process,只需要按照设定的价格区间进行设置,就可以对交易用户生成订单,然后完成代币的交换过程。
实际上以太坊的代币转移和交易无比困难,本质上是不同账户余额进行加减运算,最终导致每一笔交易都需要根据以太坊最新需求进行重复计算,造成大量的冗余数据沉淀在链上。
而 ao 改变了代币转移时的计算方式,不同的账户之间的代币转移,本质上是不同的状态同步,依赖于 MU 的消息传递进程,只需要每个过程都发送到 Arweave 网络上进行存储,也就是共识发生在计算之前,那么最终进行组合性的运算即可划转资产,而无需整个网络参与运算。
即 ao 上的每个代币都是并发的,甚至可以为一个代币建立无数个子账本,每个子账本提供独立并行的运算能力。
在现有的 ao 设计中,允许自动唤醒特定合约,只需要向节点付费便可使用该进程,随后该进程会按照设定频率去计算和执行,得益于 Arweave 的廉价和 ao 的高速,执行频率可以设定的非常密集。
对于用户而言,ao 执行的是类似计算机的一种程序,而不是抽象的智能合约,比如,接入 EverID 后的 everPay 对接 ao 网络,那么 EverID 操作的是 ao 接口,至于 ao 接口后的程序类型则无关紧要。
用户可同时操作多个公链上的 DApp 应用,高度类似于现有互联网终端的使用逻辑,终端会调用网络中不同的服务器,为用户提供简洁单一的应用接口。
本质上,这是对现存 DeFi 的一种变革,将用户的操作逻辑统一于一套交互体系之内,同时保存背后的去中心化程度。
全球超级计算机
除了 DeFi 这种传统的加密需求外,ao 实际上还打开了反哺传统 Web2 的能力,其中一个重点是 ML(Machine learning)的可信计算。上文也提到,Carl Hewitt 设计 Actor Model 的初衷就是 AI 计算,恰好让 ao 和 AI 具备了天生的结合能力。
在以往的 AI 和 Crypto 结合中,机器学习的模型无法顺畅上链,尤其是 LLM 等参数量极大的模型,但是 ao 不同以往,既然用户可以自行选择和定制化 ao 调配的资源,并且可以无准入的使用计算服务,并且计算资源本质上是无限扩展且互相合作的,那么 ML 上链似乎并不是不可能。
和 Akash 等去中心化计算市场相比,ao 的优势不在于 GPU 集群的数量多寡,而是超大规模并行计算能力,Akash 则需要强信任机制才能组建算力市场。
而 ao 则无需牺牲无准入特性,并且要注意,这一切仍然是基于智能合约去实现的,即链上运行,存储于 Arweave 进行状态证明,并且得益于超强兼容特性。
用户可以以自己习惯的方式去使用链上环境,比如运行 LLM 模型,并且其数据都可以保存在 Arweave 网络之上,同时可以解决 AI 大模型的算力和数据的去中心化需求。
ao 和现有的去中心化算力平台以及云计算厂商都不相同,这是第一个去中心化的高并发网络,可以理解为云厂商具备了智能合约功能,在以太坊遭遇计算和存储危机的当下,可以说 Arweave完成了「去中心化算力就是去中心化数据」的奇妙回环。
更简单的说,以往价格高昂、远离大众的超级计算机,现在来到了每一个人身边,并且没有任何人可以控制它的开始、运行和结束,只要一个进程开始,只有在智能合约设定终止的条件下才会结束,否则会永久的运行下去。
结语:Arweave 未来
ao 到来之后,叠加 SCP 范式的能力,Arweave 有机率成为永久的存储和无限的计算之网,但是要注意,目前的 ao 运行节点仍处于测试网状态,并且依赖于代码中写好的惩罚 slash 机制去运作。
理论上的最优不等于现实中的可行,ao 希望成为一个无限延伸的、可实时扩展的计算之网,用户拥有完全的控制权。
但是 Arweave 上的各类生态并不活跃,尤其是主流 DeFi 应用仍旧比较匮乏,不仅少于以太坊,甚至落后于 Filecoin 推出 FVM 的情况。
总体上,ao+SCP+Arweave 确实打开了区块链的另一种可能性,但是这种可能性还需要时间的验证。