WTF是Anoma?第一部分:WTF是意图?

第一部分 – 意图

介绍

什么是Anoma?这是一个令人惊讶的难以回答的问题。Anoma不是一个区块链。或者更准确地说,不仅仅是一个区块链。Anoma是一种架构。让我们查看预发布的Anoma白皮书,寻找一些线索。

可编程的结算架构无法实现交易对手的发现和解决,这两者对于构建大多数互动多方应用程序是必要的。可编程结算的架构限制导致当代应用协议至少具有一个Web2组件,这成为中心化的关键点。我们提出了Anoma,一个统一的全栈去中心化应用架构。Anoma遵循意图为中心和同质化架构/异构安全的原则进行设计,共同构成了构建去中心化应用的声明性范式。

Anoma的架构还展示了一些新颖的基元,比如可组合的隐私,使应用能够处理透明、受保护和私密的状态和操作;以及多链原子结算,允许具有不同安全偏好的用户和应用程序获得原子性。

如果上面突出显示的术语对你来说现在还不太清楚,别担心;这就是为什么它们被突出显示的原因。我们向你保证,随着我们熟悉Anoma架构和它旨在解决的独特问题,它们会变得更加明了,这也是本报告的目的所在。

由于Anoma的广泛范围,我们将这份报告分为三个部分,分别发布为独立的报告。

  • 意图,交易对手发现,求解器
  • 应用程序(意图已经在这里,那么为什么我们还需要Anoma?)
  • 泰芬、奇美拉链和多链原子结算

意图不仅仅是一个梗

让我们从以意图为中心开始。

虽然以意图为中心的Anoma架构已经开发了很多年,但对于许多人来说,意图是一个新的术语。从我们的观察来看,目前还没有一个权威的意图定义。有些人认为意图与txs并没有太大区别,甚至只是限价订单的新术语。在加密领域,这种情况非常普遍,所有的词汇都是虚构的。

好消息是,我们对用户可以通过意图做什么有一些大致的共识。以意图为中心的执行通常被理解为一种范式,用户表达他们想要的,并依赖第三方代理和中介来实现。为了清晰起见,用户保留对其资产的控制权,但与区块链的交互复杂性被抽象化,转移到这些复杂的第三方代理身上。这里的一个主要动机是简化用户体验。

据说意图是陈述性的,与命令性相对。在以意图为中心的执行中,用户可以定义他们想要的,而不需要详细说明达到目标所需的中间步骤。意图只关心“什么”,而不关心“如何”。

虽然Anoma的意图符合这个大致的定义,但Anoma有自己正式的定义来界定什么构成一个意图。

Anoma意图被定义为对状态空间的偏好的约束性承诺。简单来说,它们是在链下签署的授权消息,用于授权一个或多个未来状态。例如,[-2000 USDC,+1 ETH]意图的签署者声明:“我授权任何未来状态,其中我拥有1个以上的ETH和少2000个USDC,而且我并不在乎这是如何发生的。”

用户所要求的ETH可能来自单一方或多个独立方。用户对其交易对手是谁以及他们的动机并不感兴趣。

确实,不能保证用户会得到他们想要的东西。也许永远不会有一个相对方来给他们信用。用户已经签署了对一个状态的偏好,但这个状态还不存在。为了实现它,用户的意图需要与其他具有兼容偏好的意图相遇并达成协议。在最简单的情况下,我们可以想象我们的意图[-2000 USDC,+1 ETH]与它的完全镜像[+2000 USDC,-1 ETH]匹配。

在实践中,意图匹配并不需要直接的需求巧合。我们并不真正需要另一个人以完全相反的方向进行同等规模的交易。正如我们后面会解释的那样,具有兼容偏好的意图可以通过许多不同的、复杂的方式来识别和匹配,涉及许多独立的交易对手。这个过程被称为交易对手的发现和解决,由运行特殊算法的无需许可的代理人(称为解决者)执行。

从用户的角度来看,这一切都像一个魔盒。用户不知道也不关心解决问题的中间步骤。如果找到了成功的匹配,意图可以在链上解决并由用户验证(关于结算的更多信息稍后)。一旦验证成功,用户将直接“跳转”到他们已经承诺的未来状态,否则他们将保持在当前状态。

Anoma Intents 对比 Ethereum Txs

让我们来看看Anoma的意图为中心的执行与我们在以太坊中习惯的基于交易的执行方式有何区别。请注意,我们以EVM作为示例,但一般性的评论适用于所有冯·诺依曼虚拟机。

作为一个提醒,以太坊虚拟机中的交易并不要求一个未来状态,而是授权一个执行路径。交易向一个智能合约发送一条消息,该合约持有一段代码和存储空间。合约将消息作为输入,并按照逐步执行的方式运行其代码。执行结束时,它可能调用其他合约来传递执行控制权。执行会继续,直到成功终止或者耗尽了燃料。

与Anoma意图相反,只能导致二进制状态变化的情况不同,以太坊交易可以根据执行路径任意转换状态。执行路径由交易执行的顺序决定。执行顺序很重要!

以太坊交易 Anoma Intent Anoma意图 Step-By-Step

逐步、迫切执行

基于承诺的声明式执行

授权执行路径

授权未来的状态

最终状态取决于执行顺序

执行顺序无关紧要

仅限链上执行(执行和验证交替进行)

链下执行,链上验证

结算有保障

不保证解决

对手方已知

对手方未知

状态改变是任意的

状态改变是二进制的

不需要其他交易来结算

需要其他意图来解决

由用户决定

由第三方代理解决

在没有兼容的交易对手的情况下,可能找不到链上执行路径。用户可以在其意图上指定一个到期日期,以确保在这种情况下使其意图无效化。

到目前为止,我们对Anoma意图与以太坊交易有了很好的基础。为了真正欣赏它们的力量,让我们看看它们可以实现的大多数用例。

意图不仅仅是限价订单

我们的示例[-2000 USDC,+1 ETH]意图是一个限价订单;它只对交易的交换价格做出承诺。虽然限价订单是意图的一个重要用例,但它们只是用例之一。意图可以表达任何形式的广义承诺。例如,意图完全可以通过承诺根据xy = k曲线进行交易来模拟AMM订单。实际上,意图可以是程序,甚至是编码相当复杂承诺的整个算法。这些承诺可以是有条件的或无条件的。它们还可以依赖于其他承诺(所谓的高阶承诺),为否则不可能的强大应用铺平道路。

以下,我们来看一些意图可以实现的示例用例。

组合拍卖:市场制造商或高级用户可以根据自己独特的需求使用意向来提出各种表达性的竞标

经济替代品:用一些ETH尽可能多地购买USDC或USDT。

反对方歧视:最多以10美元的价格向反对方C1出售两个单位的A,向C2出售以9美元定价,向C3出售以8美元定价。

表达性竞标更好地近似了市场中权力用户的动机。它可以在任何类型的市场(金融交易、电力网络、物流、碳信用等)中使用,以提高效率。历史上,表达性竞标场所的一个显著挑战是由于计算复杂性而无法匹配多维竞标。随着深度技术和人工智能的进步,我们可能会在未来几年看到这个问题不再成为障碍。

众筹:众筹是一个有趣的用例,因为它涉及许多独立的参与者。意图可以实现许多酷炫的用例:

  • 降低风险的投资:只有在获得超过X美元的承诺时,才承诺资助一个项目。
  • GitCoin配套资金:用户预先承诺捐赠给获胜项目,而不知道具体是哪些项目。
  • 同伴压力:只有在你最喜欢的影响者也承诺资助该活动时,你才承诺资助该活动。

P2P借贷:借款人选择接受的抵押品、贷款价值比、利率和报价资产,并与借款人匹配。当借款人偿还抵押品后,如果借款人仍愿意借出,求解器可以代表其找到另一方。借款人可以自带预言机,坏账可以隔离给特定方。在这种模式下,没有什么区别是DeFi借贷协议、NFT借贷协议还是其他行业;任何资产都可以用作借贷的抵押品。

OTC NFT交易:OTC交易通常涉及NFT之间的交换,并涉及特征。例如,用户可能愿意以“x” ETH出售一种稀有(且不流动)的NFT,但如果它具有特定特征,也可以接受两个相同系列的NFT。这不是您可以轻易在链上实现的偏好,因此交易对手的发现通常涉及Discord私信,并在执行过程中使用户面临钓鱼/欺诈风险。

自动化操作:

  • 限时购买(GOAT)订单:例如,在未来的特定时间点购买一个代币,前提是价格在指定范围内。
  • 订阅:按使用量付费的模式,用户承诺在预定的时间段内按固定金额支付。

多边贸易信用抵消(MTCS):MTCS,也被称为债务清算,是一种在经济中节省流动性的独特而强大的技术。

MTCS中的理念很简单。如果Alice欠Bob 1个ETH,Bob欠Greg 1个ETH,而Greg又欠Alice 1个ETH,实际上没有人需要任何“钱”来履行他们的义务。我们只需要认识到总的债务形成了一个闭环;所有的债务可以相互抵消并清零。

同样地,在实体经济中,公司经常承担交易义务。MTCS承认一个公司的应付账款是另一个公司的应收账款。理论上,只要能够识别出贸易图中的这些循环,公司就可以通过相互抵消来清算它们的义务。这减少了它们的现金流问题,并提高了经济的生产力。MTCS已经在某些经济体中部署,并且研究显示可以实现大量的流动性储蓄。值得注意的是,MTCS是协作金融运动的一部分,简称CoFi。

未来,意图和解算器可以为公司启用MTCS或类似技术,以便在区块链上清除和结算其义务,而无需依赖中央清算机构。

任何多域和/或隐私保护应用:

  • 多领域:一个以太坊用户想在Stargaze上购买一个Bad Kids NFT。这个过程涉及多个步骤、钱包、研究开销、操作风险(例如桥接和封装资产),并涉及跨越两个生态系统的4个区块链。我们将在Typhon和Chimera Chain部分详细讨论这个问题。
  • 隐私保护应用:意图适用于通用的隐私保护计算。通过意图,我们可以构建私密的多方交换、私密的DAO等等。我们将在本部分后面介绍意图的隐私方面。

在这篇由Propeller Heads撰写的精彩文章中,可以找到许多其他示例用例,我们从中获得了灵感。
https://www.propellerheads.xyz/blog/intents-and-where-to-find-them

对手方发现与解决

Anoma意图消耗并创建一些“资源”。粗略地简化一下,在我们的意图示例中[+1 ETH,-2000 USDC],我们可以将被创建的资源视为1 ETH,被消耗的资源视为2000 USDC。当消耗和创建的资源类型不互相抵消时,意图被认为是不平衡的。为了通过平衡检查,所有涉及资源类型的被创建资源总和必须等于被消耗资源总和。

从技术角度来说,这个余额检查是区分Anoma意图和Anoma交易(不要与以太坊交易混淆)的唯一要素。简单来说,在Anoma世界中,一个平衡的意图被称为,你猜对了…一个交易。按照同样的逻辑,Anoma意图只是部分的Anoma交易。

意图通过p2p意图传播网络中的求解器进行组合。当两个Anoma意图组合时,它们会产生一个复合意图,其资源是其组成意图的聚合。求解器可以根据需要将意图组合在一起。最终,求解器形成一个通过“平衡检查”的交易,此时他们可以选择在链上结算。

下面,我们可以看到一些独特的方法,可以将意图匹配成完全平衡的交易。

求解者带来自己的流动性:求解者通过充当接受方成为交易的交易对手。

部分成交:一个被出售的代币被多个独立的买方共同购买。

直接的CoWs:两个意图是彼此的直接反义词。

环交易:即使没有直接的CoWs存在,意图也可以得到解决。例如,3个意图可以产生一个平衡的交易,即使没有意图对彼此的偏好满意。

解决方案激励、审查和拒绝服务抵抗

一个既能抵御拒绝服务攻击又能抵御审查的网络非常具有挑战性。为此,Anoma的意图传播层默认采用路径认证的设计;所有传播的消息都由发送节点签名,形成一条可追溯到发起者的签名链。路径认证在抵御拒绝服务攻击和审查方面起着至关重要的作用。首先,我们详细介绍一下抵御审查的方法。

在大多数情况下,解决者很可能是寻求利润的代理人。他们执行并结算意图,以费用作为交换条件;意图携带的费用只有在解决者在链上完成结算时才能收取。这创造了一个竞争环境,解决者彼此竞争,争取成为第一个完成意图结算的人。解决者的竞争是有益且期望的,因为它提高了用户的执行质量(速度、价格等)。

另一方面,如果激励措施处理不当,竞争可能会失控,激励网络中的贪婪行为。主要是,节点可以开始“囤积”意图,以获得在解决意图方面的竞争优势,这将阻碍用户的抗审查能力。路径认证可以优雅地解决这个问题,为鼓励意图广泛传播的激励机制奠定基础。

考虑下面的例子:

一个求解器观察到两个意图,[+2 ETH,-4 NFT] 和 [-1 ETH,+2 NFT],虽然兼容,但不能形成完全平衡的交易。为了形成一个完整的解决方案,求解器需要找到额外的兼容意图。为了得出一个完整的解决方案,求解器可以花时间观察新的传入意图。然而,这是有风险的,因为可能有其他求解器处理相同的意图。如果解决方案由另一个求解器确定,他们可能失去收取任何费用的机会。

路径认证提供了一种选择,允许节点向网络证明它们的努力。节点可以将部分费用要求放在一起,并将它们的部分解决方案(+1 ETH,-2 NFT)传递给其他节点,以便它们继续解决过程。在最终结算时,它们可以根据自己在传播和解决中的贡献获得公平的份额。通过这种方式,意图传播层可以被想象为一种激励的数据可用性层。可以想象,即使存在具有深度流动性和封闭算法的巨型解算器,较小的解算器也可以尽自己的一份力量并获得费用,继续为网络的抗审查性做出贡献。

路径认证对于抵御拒绝服务攻击也至关重要。通过有条件结算的费用,解算器在没有任何支付保证的情况下消耗计算资源。回顾以太坊中账户抽象(AA)的历史,我们知道这为廉价的拒绝服务攻击提供了机会。路径认证在保护节点免受恶意行为的角色中起着重要作用。换句话说,节点可以跟踪其同行(以及用户)的行为。随着时间的推移,它们可以建立自己的本地信任图,决定在网络中信任谁以及信任程度。

信息流控制

加密货币领域的信息控制问题大多仍未得到解决。一般来说,用户缺乏控制哪些信息向谁公开的能力。在大多数情况下,所有用户活动信息都会暴露给所有链上观察者。这从根本上限制了去中心化应用能够向企业和零售用户承诺的使用案例。

对于那些对隐私保护全貌感兴趣的人,我们推荐阅读我们的《每个人都需要隐私》报告。

Anoma架构通过其统一的执行环境(EE)Taiga为创新的隐私保护应用铺平了道路。要欣赏Taiga,我们首先必须了解信息流控制的含义。

在没有观察者的情况下,隐私是一个毫无意义的概念。当我们谈论隐私时,我们必须首先定义观察者是谁。在我们的背景下,观察者可以分为两个阵营。我们可能正在处理的是链上活动的观察者(可以是世界上的任何人)或者是链下的代理人,如解算器和八卦节点。此外,我们关心的信息可能是关于“谁”,即意图签名者的身份,或者是关于“什么”,即意图中表达的功能和/或数据。

基于这个框架,Taiga定义了三种类型的意图:透明、受保护和私密。受保护的意图将“谁”隐藏起来,只向链下的零知识证明者展示“什么”。私密的意图更进一步,利用各种隐私保护解决方法(可信执行环境、多方计算、门限全同态加密等)也将关于“什么”的某些信息隐藏起来,不让解决者知晓。

Transparent Intent 透明的意图
Shielded Intent 屏蔽的意图
Private Intent 私人意图
“The Who” “谁”
Exposed 暴露的
Hidden 隐藏的
“The What” “这是什么”
Exposed 暴露
(Partly) Hidden (部分)隐藏
The Observer 观察者
Everyone 大家

“什么”对于链上观察者来说是隐藏的,但对于链下的证明者来说是暴露的

Taiga在两个主要方面独特而强大。

Taiga是一个提供可组合隐私的统一执行环境。可组合隐私意味着开发者可以发布应用程序,并使用户能够通过透明、受保护或私密的意图在同一个应用程序中相互交互。这使得隐私成为用户的选择,并与当前的现状形成鲜明对比,即隐私总是应用程序/基础设施的选择(去中心化交易所要么是为了保护隐私,要么是透明的)。

正如直觉所言,对手方发现和隐私之间存在着根本的权衡。隐藏有关“事物”的信息可以更公平地进行处理,但可能更难找到兼容的对手方。因此,市场可以根据执行质量的不同,对透明、保护或私密的意图解决进行不同的定价。

还值得知道的是,存在一些研究挑战。特别是,虽然求解器可以将受保护的意图与透明的意图相匹配,反之亦然,但将它们与私有意图组合的可行性仍然是一个未解决的研究问题。

今天的大多数隐私项目,如果不是全部,只关注于在结算层面上的信息控制。这是可以理解的,因为这是迫切需要的。我们首先希望用户能够隐藏某些信息,使其不被观察链上活动的人所察觉。然而,在这样做的过程中,项目往往会牺牲在对手方发现层面上的信息控制。相反地,Taiga专注于在结算和对手方发现层面上的信息控制。

在结算层,隐私通常通过零知识证明(ZKPs)对链上数据进行保护来实现。然而,就隐私而言,ZKPs非常受限制。它们通常只在特殊情况下有用,即用户证明他们独占某些状态的属性。这适用于支付或与身份相关的应用,但不适用于存在多个用户相互交互的应用。

通常,多用户应用通过引入共享的ZK证明器来解决这个限制,该证明器收集所有私有用户数据,对其进行一些计算,并代表用户将计算的ZK证明发布到链上。这样,最多只能提供Web2风格的隐私保护。虽然用户的活动对于链上观察者来说是隐藏的,但它却完全暴露给了一个单一的、共享的、集中化的求解器,即ZK证明器。这可能还会增加权限和抗审查性方面的新挑战。

Taiga在这方面提供了独特的东西。由于意图不会立即解决,它们可以通过独立的求解器在许多部分步骤中执行。求解器可以将一些受保护的意图与其他受保护/透明的意图进行匹配,并将此匹配的零知识证明传递给其他求解器,以便它们继续求解过程。由独立方在网络边缘生成的证明可以与彼此组合。

我们最终得到了一种架构,其中没有一个单独的观察者能够完整地了解导致交易结算的部分执行过程。如下图所示,三个求解器分别对某些意图具有局部可见性,但没有人具有完全可见性。

最后但同样重要的是,Anoma还专注于在结算层面上的信息控制。事实上,Anoma生态系统中首个推出的应用将是Namada;一个保护隐私的结算层。Namada的独特之处在于它提供了一个独一无二的多资产隐蔽池(MASP),在这个池子里,所有可互换和不可互换的资产都可以共享一个匿名集合。这反过来使得这些资产的所有者能够形成一个大的匿名集合,从而相互贡献彼此的隐私。Namada将很快作为一个与Cosmos和IBC兼容的应用链推出,旨在成为多链隐私层,最初专注于以太坊和Cosmos生态系统。

意图结算

An Anoma交易生命周期如下:用户签署意图 → 意图在P2P层进行传播 → 求解器匹配兼容的意图并形成交易(对手方发现和求解) → 交易在链上结算。在本节中,我们将更详细地了解结算过程。

为了使交易得以结算,它们需要在链上进行验证。验证是通过链上函数(称为谓词)来完成的。Anoma中的每个账户(包括用户和代币)都有一个相关联的谓词,它限制了该账户授权的可能未来状态的集合。最简单的理解谓词的方式是将其视为可以对银行账户或智能合约钱包设置的限制。

  • 白名单/黑名单:只向X、Y、Z账户发送资金,只执行ETH转账等操作。
  • 速率限制:每天不要超过X的数量。
  • 访问控制:在X、Y、Z账户中,必须有2个账户签署转账。

意图和谓词在功能上相似;它们都对状态空间做出了一些偏好选择。主要区别在于,意图作为临时的偏好表达存在于链下,而谓词作为持久的偏好表达存在于链上(尽管可以随时更新)。它们共同构成了一个双层授权方案。交易必须同时满足两者才能成功在链上结算。

谓词的主要作用是确保原子(全有或全无)结算。为了使交易结算并推进链上状态,交易必须满足涉及的所有账户的谓词。

例如,Alice和Bob之间的ETH<>USDC交换只有在满足Alice、Bob、ETH和USDC的谓词时才能成功结算。如果状态转换不满足任何一个涉及账户的验证者谓词,交换将失败,并且对于任何一方来说,链上状态都不会发生变化。简而言之,只有当所有涉及方都同意时,状态转换才会成功,否则将失败。

谓词 vs 智能合约

谓词和智能合约在某些方面相似,但在其他方面又不同。虽然两者都在链上,但代码谓词只关注验证而不是执行。它们不执行逐步命令式执行。给定一个交易,它们只是简单地检查是否满意,并返回一个布尔值;要么授权,要么不授权。

在这方面,意图和谓词有可能为用户与应用程序的交互提供更安全的方式。用户不再需要为智能合约提供无限制的访问权限,并且不需要推理其执行路径中的操作码。

两者之间的另一个显著区别是,由谓词运行的函数不拥有任何状态。由于它们是纯函数,验证过程始终可以完全并行化。

Smart Contract 智能合约
Predicate 谓词
Lives On-Chain 链上生活
Code and Storage 代码和存储
Pure Function 纯函数
Can Return Any Data Type 可以返回任何数据类型
Returns A Boolean 返回一个布尔值
Main Role: Execution (Step-By-Step) 主要角色:执行(逐步)
Main Role: Verification (Atomic) 主要角色:验证(原子)
Consumes On-Chain Fees 消耗链上费用 Consumes On-Chain Fees 消耗链上费用

开放研究领域

声明式执行有许多值得进一步探索的开放性研究领域。在我们完成系列的第一部分之际,我们在此与您分享一些离别的思考。

  • 资源定价:正如我们所看到的,结算条件费用可能会使节点难以正确计算其消耗的资源。除了令牌门控和费用之外,我们还可以看到未来出现新的信任网络类型的Sybil抵抗技术。用户的链上历史、身份和声誉在这里将起到重要作用。
  • 用户界面安全:随着执行转移到链下,前端和钱包将在确保用户准确签署其意图方面承担更多责任。因此,用户界面将在安全方面发挥更重要的作用。它们将如何适应尚不得而知。盲签名硬件钱包是否会成为过去的事情?
  • 求解器DAO:求解器可能希望在解决过程中相互协调的原因有很多。他们可以通过汇集自己的流动性来提供更好的解决保证,并减少解决交易时的无效尝试。在某些情况下,求解器可能希望通过形成共识协议和/或在彼此之间运行MPC来相互协调。求解器网络的拓扑结构将相应地形成。

结论

在此,我们结束了我们的Anoma系列的第一部分。在第二部分中,我们将关注应用层。我们将重点介绍一种在知名dApp中日益流行的基于意图的架构趋势。我们还将分析Anoma架构对于这些现有dApp和即将到来的新dApp的独特价值增加。

原文: https://members.delphidigital.io/reports/wtf-is-anoma-part-1-wtf-are-intents/

发表评论

电子邮件地址不会被公开。 必填项已用*标注