Anoma 基础知识

意图与意图中心架构导论

所有应用程序都有一个共同的基本元素:意图。去中心化的意图完成机制是针对特定应用的,目前还没有人提出一个能够通用且完成任何意图的机制。

迄今为止所有去中心化应用程序的架构都是以区块链为中心的,其中所有事物都围绕着区块链的存在和需求旋转,这严重限制了设计空间——给架构能提供的特性设定了上限,同时也限制了在它们上可以构建的应用类型。

Anoma 是首个以意图为中心的架构,摆脱了所有现有约束——包括我们是否需要区块链(用于结算以外的任何事务)。相反,我们的起点是问自己:应用程序需要什么?在这个探索过程中,我们考虑了当今所有类型的应用程序:去中心化的、中心化的,甚至那些无法在 Web2 或 Web3 架构上构建的应用程序。

结果表明,所有应用程序都有一个共同的基本要素:意图

TL;DR

  • 意图和应用程序可以具有任意复杂性
  • 去中心化的意图完成机制是针对特定应用的,目前还没有人提出一种通用的、能够完成任何意图的机制
  • 以意图为中心的架构的一个优点是它提供了通用意图、交易对手发现、解决和结算等特性——这足以支持所有现有应用,并且实现端到端去中心化
  • 以意图为中心的架构与以区块链为中心的架构兼容,并且可以以多种方式使用,作为 L1、L1.5 甚至 L2——这取决于 dApp 开发者的选择
  • 它们还提供了新的特性,能够启用我们甚至还没有想到的 dApp,至于其局限性,现在还太早下定论

什么是意图?

意图是一个人期望达到的最终状态的表达。每当一个人需要某样东西时,他们会在脑海中无意识地产生一个虚拟意图。这可以是任何东西,从想要鱼、咖啡、披萨,甚至是 NFT:

*图1:历史上意图的示例*

意图一直存在,只是我们没有意识到。人类在使用软件、计算机、金钱和易货系统之前就开始使用意图——而现在,每个人都在脑海中产生意图

发生了巨大变化的是人们完成其意图所使用的机制的数量和多样性。与公元前 6000 年美索不达米亚地区出现第一种物物交换系统相比,如今我们有了更多机制,包括法定货币、传统金融基础设施、比特币和以太坊:

*图2:历史中的示例意图和示例完成机制*

所有现有机制都是非同质化的,它们具有不同的属性和权衡;并且它们是不可排除的,这意味着个人会同时使用多种机制,具体取决于哪种机制为每个他们想要完成的意图提供了最佳的属性和权衡。

本文关注与去中心化应用(dApps)和能够完成意图的去中心化机制相关的意图。

意图和去中心化应用

有些应用简单到只需要一个意图就能启用。也有一些更复杂的应用可以通过单个意图启用,因为一个意图可以包含任意级别的复杂性:

*图3:意图复杂度谱*

你可能不同意图 3 中的一些比较,但至少可以同意一个支付意图(使用 BTC 购买披萨)比一个二次资助投票简单得多。有趣的是,最简单的应用只需要一个意图,那就是支付。任何其他 dApp 都需要多个参与方,并且还需要更多种类的意图:

*图 4:dApp 复杂度谱系及示例*

很难同意图 4 中每个 dApp 的立场,但很容易同意一个基于 ETH 的 dApp 支付远比以太坊上的 Gitcoin 二次资助轮或像多元货币这样的基于 SALSA 的货币系统简单。

另一个观察是,dApp 越简单,存在的机制越多;dApp 越复杂,今天存在的机制越少

例如,一个支付意图可以通过多种机制完成:法定货币、像电汇或信用卡这样的传统金融系统,或加密货币——仅举几例——每种机制都有不同的特性和权衡。但当涉及到促进更复杂的应用(如组合拍卖及其意图)的机制时,选项会显著减少,而当我们谈论像多元货币、CoFi 或 Heterotopia(无标度货币)这样的新时代、游戏 B 经济系统时,选项就更不明确了。

一个非常关键的观察是,可能还有更多我们尚未想到的有趣且复杂的应用和意图。最后但同样重要的是,一个基本要点是任何应用都可以用意图来表示(参见意图作为 CSP)。

有许多去中心化的机制可以完成特定应用的意图——但还没有人提出一种机制足够通用和可扩展,能够完成任意意图并支持任何 dApp,无论其复杂性、涉及的独特参与方数量、参与方的离散类别,以及应用中涉及的意图总量。

以意图为中心的架构

以意图为中心的架构是一种将最基本原语视为意图的架构,其中意图并非特定于应用,而是通用的。在以意图为中心的架构中,用户定义一个或多个期望达到的最终状态,而架构则设计为在尊重用户定义的约束条件的同时完成意图。

另一种看待以意图为中心的架构的方式是将其视为一种完全通用的意图完成机制的设计。

以意图为中心的架构具有许多优势:

  • 提供现有 dApps 所需的所有属性:通用意图、交易对手发现、解决和结算
  • 为 dApps 提供新颖特性:包括本地和全局可扩展性、信息流控制、可配置排序、可配置结算以及组合式身份
  • 为应用程序实施声明式范式
  • 导致尽可能去中心化的市场结构,受限于外生约束,如分布式系统极限和物理限制,用户通过其意图和行动定义他们想要的市场结构

这里有很多内容需要解析,但在本文中我将专注于(1)以意图为中心的架构,为现有 dApps 提供所有必要特性

去中心化应用需要哪些特性?

我将特性定义为架构或基础设施协议为 dApp 提供的功能。例如,可编程结算是以太坊等以区块链为中心的架构为 dApp 提供的核心特性

以意图为中心的架构的起点是去中心化应用需要哪些属性

回答这个问题的方法之一是观察以太坊生态系统中最复杂的 dApp 的架构:NFT 市场(OpenSea,Blur),基于订单簿或 MEV 感知的 DEX(0x,1inch,CoWSwap),二次资助(Gitcoin),它们都需要以下属性:意图,交易对手发现,解决和结算

在以区块链为中心的架构中,意图、交易对手发现、解决和结算

以区块链为中心的架构(如以太坊)提供了一种关键特性:可编程结算,这足以支持端到端去中心化的应用,其中意图、交易对手发现和解决都由区块链强制执行。这对于某些 dApp 来说是足够的,例如可替代和非可替代代币的创建、DAO 或简单的 DeFi 形式,如代币销售、拍卖或基于 AMM 的 DEX。到目前为止,dApp 开发者已经测试了以太坊上可以完全构建的应用的边界,而迄今为止最复杂且最实用的端到端 dApp 是 Uniswap 3

但对于以太坊生态系统中的更复杂的 dApp 来说,这条路线并不可行。相反,它们追求我所说的Gen 2.5 架构,其中最终交易在以太坊上结算,但依赖 Web2 组件来实现意图、交易对手发现和解决。

*图5:以太坊生态系统中现有应用的架构概述*

为了缓解中心化问题,越来越多的 Gen 2.5 dApps 正在追求区块链-去中心化-X 的设计路径,该路径包括部署一个主权链,该链除了在以太坊上结算外,还为 dApp 提供必要的属性。

部署区块链似乎是一个易于改造的解决方案,可以缓解当前的集中化问题,但它仅能在单一安全模型(即领域,例如以太坊)中实现特定应用的意图,这也带来了结构性限制:可组合性的丧失和网络效应的减弱,以及由于应用架构的复杂性给用户带来的更困难的用户体验。此外,这实质性地增加了每个 dApp 团队的关注范围,他们从构建应用(Solidity 和前端)转变为负责整个区块链。

意图、交易对手发现、解决和结算在以意图为中心的架构上

意图中心架构的一个优势在于它从一开始就为任何现有的 dApp 提供了必要的属性(意图、交易对手发现、解决和结算)。以下是我如何定义这些属性的:

  • 通用意图:架构处理任意意图的能力,而不受限于特定应用程序或特殊用例的意图
  • 交易对手发现:一个去中心化过程,通过该过程,单个意图可以在周围传播并由解决者访问
  • 解决:一个去中心化过程,通过该过程,意图被组合并通过一个有效的解决方案(交易)进行计算,该解决方案可以进行结算
  • 结算:链上验证和最终确定解决方案

随着架构设计旨在为 dApps 提供更多属性,以意图为中心的 dApp 构建者的关注范围仅限于结算层上的意图模板和相应的谓词。在以意图为中心的架构中,用户只需关注定义他们的意图,这些意图是对他们期望的最终状态的约束承诺。

*图 6:以意图为中心的架构部署为独立链时 dApps 的外观*

以意图为中心的架构上的 dApps 有许多影响,但一个关键区别是意图是完全可组合的。由于意图具有通用性,因此由解决者决定哪些意图可以形成一个有效的解决方案。这意味着一个解决者可能提出一个涉及 10 个仅限于可替代代币交易的解决方案,而另一个解决者可能提出一个涉及 1000 个意图的解决方案,其中一些看起来像可替代代币交易,另一些看起来像 NFT 交易,或除与其他应用程序相关的意图外,还包括后者的组合。

另一个影响是,这具有跨安全模型(即领域)的普适性,这意味着应用程序不再局限于特定领域或区块链,这是我所称的 Gen 2++架构的一个有趣结果。

Gen 2++ 架构具有与以太坊相同的架构特征,但在特定原语上有所变化,例如不同的共识(从纳卡摩共识到例如拜占庭容错共识)、拜占庭抗性机制(从工作量证明到权益证明)、隐私(从透明执行到私有执行);或针对特定属性进行优化,如吞吐量。Solana、Polkadot、Avalanche 是 Gen 2++ 的例子。然而,每个 Gen 2++ 架构上构建的大多数应用在逻辑上是相同的,只是针对不同的虚拟机使用不同的语言。

即使用户(A、B、C、D)和去中心化应用(如 Uniswap、OpenSea、CoWSwap、Gitcoin)相同,由于去中心化应用是区块链特定的,用户意图和应用会被每个领域分割,无法相互组合。相反,在以意图为中心的架构中,去中心化应用可以在不同的安全模型中完全通用。与其强迫用户与四个略有不同的架构交互,不如围绕一种语言标准化意图和一种创建意图的接口要容易得多:

*图 8:基于意图中心架构构建的 DApp 可以在不同安全领域通用*

在上述示例中,我一直将意图中心架构的实例化视为一个主权链或 L1。但意图中心架构的另一个优势在于它提供了多种属性,而具体选择哪些属性则由 DApp 开发者决定。此外,它们与现有的以区块链为中心的架构兼容。

例如,一个 dApp 可以受益于以意图为中心的架构提供的通用意图、交易对手发现和解决特性,但决定在另一个主权链上使用结算,这意味着以意图为中心的架构被用作一个 L1.5:

*图 9:基于意图的 dApps,它们应用于其他安全领域*

该模型中的应用程序以标准方式编写,不针对部署模型或使用的结算层,而以太坊或 Solana 上的 dApps 的编写方式则不同。

dApps 另一种使用以意图为中心的架构的方式是作为 L2.0 或层叠。在这种模型中,dApps 将在以意图为中心的架构上计算完整的链状态转换(例如 Anoma、Ethereum 或任何其他链),并部署一个 ZK 验证器来从另一个区块链(例如 Ethereum)中推导出安全性:

*图10:使用以意图为中心的架构进行完整状态转换,但借用以太坊的安全性*

以意图为中心的架构能够支持哪些应用?

第一代架构是由比特币开创的,比特币等人为 dApp 提供的主要属性是可编写脚本的结算。可编写脚本的结算使一些 dApp 得以蓬勃发展:去中心化发行货币和使用具有不同属性(例如隐私)的加密货币进行支付。但这些属性对于许多人设想的其他 dApp 来说是不够的,例如彩色硬币或比特币证券交易所,它们可以建立在可编写脚本的结算架构之上,但使用起来有限且不实用。

以太坊开创了第二代可编程结算架构,为结算层提供了更高的表达能力,并支持比第一代更多种类的 dApp,例如可替代代币和非可替代代币、DAO 或简单的 DeFi 形式,如代币销售、拍卖或基于 AMM 的 DEX。到目前为止,dApp 开发者已经测试了以太坊能够完全构建的应用程序的边界(并且是实际可用的),迄今为止最复杂和最常用的 dApp 是一种 AMM,具体是 Uniswap v3。第二代半架构是针对特定应用的,但这种架构确实支持更多无法完全在以太坊上构建的应用,例如 NFT 市场、基于订单簿的或 MEV 感知的 DEX。

第三代以意图为中心的架构使第一代、第二代和第二代半的所有应用实现端到端去中心化——如果我们仅考虑广义意图的基本属性、交易对手发现、解决和结算。以意图为中心的架构还提供了 dApp 构建者尚未考虑的新特性,包括:本地和全局可扩展性、信息流控制、可配置排序、可配置结算和组合身份——这些特性可以使基于现有架构无法构建的 dApp 成为可能。

*图 11:架构的演进以及它们所支持的 dApp 多样性*

结论

与以太坊被引入一个仅使用比特币的世界时的情况相似,当时还不清楚新范式下可以构建哪些类型的 dApp,我们仅触及了使用意图和第三代架构所能构建应用程序的表面。