在不同的子网中,节点资源被抽象为一个个"容器",业务在容器中运行,子网并没有一个大的共享状态,容器仅维护自己的状态,且存在最大容量限制(受到 wasm 虚拟机限制),子网的区块中也不会记录网络中容器的状态。
在同一子网下,计算任务是在所有节点上以冗余的方式运行,但在不同的子网间则以并行的方式运行。当网络需要扩容时,ICP 的核心治理系统 NNS 会动态添加和合并子网,来满足使用需求。
AO vs ICP
AO 与 ICP 都是围绕 Actor 的消息传递模型构建的,这是并发分布式计算网络的典型框架,同时都默认使用了 WebAssembly 作为执行虚拟机。
与传统区块链不同,AO 与 ICP 都没有数据和链的概念。因此在 Actor 模型下,默认虚拟机运行的结果一定是确定性的,那么系统只需要保证交易请求的一致性,就可以实现进程内状态值的一致性。多个 Actor 可以并行运行,这给扩展提供了巨大空间,因此计算成本足以低廉到运行 AI 这类通用计算。
但在整体的设计哲学上,AO 却与 ICP 站在完全的两面。
结构化 vs 模块化
ICP 的设计思路更像是传统的网络模型,将资源自数据中心的底层抽象到一个个固定的服务中,这包括了热存储、计算和传输的资源;而 AO 是使用了对加密开发者更熟悉的模块化设计,将传输、共识验证、计算、存储等资源完全分离,并由此区分出多个节点组。
因此,对于 ICP 来说,对网络中节点的硬件要求是非常高的,因为需要满足系统共识的最小需求。
开发者必须接受统一标准的程序托管服务,有关服务的资源都被约束在一个个容器中,比如当前容器的最大可用内存就是 4GB,这也限制了一些应用的出现,比如运行较大规模的 AI 模型。
ICP 也尝试通过创建不同的有特点的子网来提供多样的需求,但这就离不开 DFINITY 基金会的整体规划和开发。
而对于 AO 来说,CU 更像是一个自由的算力市场,开发者可以根据需求与价格偏好,选择使用节点的规格和数量。因此,开发者几乎可以在 AO 上运行任意进程。同时,这对节点的参与者来说也更加友好,CU、MU 也可以实现单独扩容,去中心化程度较高。
AO 的模块化程度较高,支持对虚拟机、交易排序模型、消息传递模型与支付方式的自定义,因此如果开发者需要一个隐私的计算环境,可以选择 TEE 环境的 CU,而不用等待 AO 官方开发。模块化带来更多灵活性,也降低了一些开发者进入的成本。
安全性
ICP 依靠子网运行,进程托管在子网上时,计算过程会在所有的子网节点上执行,状态的验证由所有的子网节点之间的改进 BFT 共识完成。虽然制造了一定的冗余,但进程的安全性与子网完全保持一致。
在子网内部,两个进程互相调用时,如进程 B 的输入是进程 A 的输出,就无需考量额外的安全性问题,只有在跨两个子网时,才需要考量两个子网间的安全性差异。当前一个子网的节点数量在 13-34 之间,其最终确定性形成时间为2秒。
在 AO 中,计算的过程被委托给开发者在市场上选择的 CU 们。在安全性上,AO 选了更代币经济学的方案,要求 CU 节点必须质押 $AO,默认计算的结果是可信的。AO 将所有的请求都经过共识记录在 Arweave 上,因此任何人都可以读取公开的记录,通过一步步重复计算来检验当前状态的正确性。如果出现问题,可以在市场上选择更多 CU 参与计算,获得一个更准确的共识,并罚没出错 CU 的质押。
这让共识与计算的完全解绑,让 AO 获得了远优于 ICP 的扩展性与灵活性,在无需验证的情况下,开发者甚至可以在自己的本地设备上计算,只需要将命令通过 SU 上传 Arweave 即可。
但这也为进程间的互相调用带来的问题,因为不同的进程可能处于不同的安全保证下,比如进程 B 有 9 个 CU 进行冗余计算,而进程 A 只有一台 CU 在运行,那么要进程 B 接受来自进程 A 的请求,就要考虑进程 A 是否会传输错误的结果。因此进程间的交互就是受到安全性的影响。这也导致最终确定性形成时间较长,可能需要等待 Arweave 长达半小时的确认周期。解决方法是设定一个最低的 CU 数量与标准,同时对不同价值的交易,要求不同的最终确认时间。
不过 AO 还具备一个 ICP 不具备的优势,即具备一个包含所有交易历史的永续存储,任何人都可以重放出任一时刻的状态,虽然 AO 没有传统的区块与链的模型,但这也更符合加密中的人人可验证的思想;但在 ICP 中,子网节点只负责计算并对结果共识,并不会存储每一次的交易请求,因此历史信息是无法验证的,也就是说 ICP 并没有统一的 DA,如果有容器作恶后选择删除容器,那么罪状将无迹可寻,虽然 ICP 的开发者自发地建立了一系列记录调用记录的账本容器,但对于加密开发者来说还是比较难以接受。
去中心化程度
ICP 的去中心化程度一直受到诟病,节点的注册、子网的创建与合并等系统级工作,都需要一个被称为"NNS"的治理系统决定。ICP 持有者需要通过质押参与 NNS,同时为了实现多副本下的通用计算能力,对节点的硬件要求也非常高。这带来了极高的参与门槛。因此,ICP 的新功能、新特性的实现,依赖于新子网的退出,这必须通过 NNS 的治理,更进一步说,必须依靠掌握大量投票权的 DFINITY 基金会推动。
而 AO 彻底解耦的思路,将更多权利交还给了开发者,一个独立的进程,就可以看作一个独立子网,一条主权 L2,开发者只需要支付费用即可。模块化设计也方便开发者引入新特性。对于节点提供者来说,参与的成本相比 ICP 也更低。
最后
世界计算机的理想是伟大的,但并没有一个最优的解法。ICP 具备更好的安全性,并能做到快速的最终性,但系统更为复杂,受到更多限制,并且在部分设计上很难取得加密开发者的认可;AO 高度解耦的设计,让扩展变的更加容易,同时提供了更多的灵活度,这将受到开发者的喜爱,但也存在安全性上的复杂度。
让我们从一个发展的角度来看,在风云变幻的加密世界中,一种范式很难长时间里保持绝对优势,即使是 이더리움(ETH)도 그러하다(솔라나(Solana)가 추격하고 있다), 오직 더 많이 분리되고 모듈화되어 교체가 용이해야만, 도전 속에서 빠르게 진화하고 환경에 적응하여 살아남을 수 있다. 아르위브(Arweave)는 후발주자로서, 탈중앙화된 범용 컴퓨팅, 특히 AI 분야의 강력한 경쟁자가 될 것이다.