简而言之,意图现在很火,但没有人知道它是什么,也不知道如何去去中心化,我们将专注于这一点
什么是意图?
简单来说,意图就是谓词/条件。用户/去中心化应用将他们的“条件”提交给一个名为求解器的“计算机”。求解器理解这些条件,并使用这些约束条件设计一个能满足所有这些“条件”的交易。这里条件的顺序很重要。
分散化它们的障碍
一些重大障碍
- 使用LLMs处理自然语言到意图的方法
- 意图缺乏适当的结构
- 当前求解器设计
- 封闭的意图池
- 拍卖层
使用LLMs处理自然语言以识别意图
像ChatGPT或Langchain这样的LLM被最近的项目广泛使用,将自然语言转换为内部结构化意图,要去中心化这一部分将非常困难,所以我们可以将其留给dApps和用户处理
意图缺乏适当的结构
任何试图实现去中心化的系统都会面临这个问题,如果网络中的所有节点(计算机)对于结构(s)没有共识,那么它们之间的有效通信可能会导致危险行为。
为了实现去中心化,意图需要有一个合适的结构,这是去中心化意图的主要部分。但是,我们如何对意图进行结构化呢?
意图结构
什么是定义意图的重要部分,与其他类型的数据结构有何区别?
条件
- 用户的意图
- 将会是一本词典
前提条件
- 在求解器尝试解决意图之前,这个应该是真实的
- 例如 – 如果ETH的价格大于100美元,并且手续费最低,我想交换100个ETH
- 在这里,想要交换100个以太币,手续费应该是最低的条件,以太币的价格应该大于100美元是前提条件
- 将会是一个字典
在解决意图时,会在运行时检查条件,而在解决意图之前会先检查前置条件
意图将是一个非常开放的结构,所以我们无法用单一的结构来概括每种类型的意图,因此我们将不得不采用多结构的方式,包括条件和前提条件
我们将会有像 swap-
SCENARIO -->
A user who wants to swap 100 MATIC (POL) -> USDC (ETH), only wants slippage up to 1% and should at least receive 100 USDC for 100 MATIC, current price 1 MATIC -> 0.99 USDC
CONDITIONS -->
amountIn - 100
tokenIn - MATIC (POL)
tokenOut - USDC (ETH)
slippage - 1%
PRE-CONDITIONS -->
usdcPrice - >= 1 MATIC
maticPrice - >= 1 USDC
TYPE: swap-<some unique hash>
或者支付意图
SCENARIO
A user wants to send 100$ of ETH to vitalik.eth
CONDITIONS
tokenIn - ETH
amountInToken - null
amountInDollar - 100
receiver - vitalik.eth
sender - someone.eth
tokenOut - null
amountOutToken - null
amountOutDollar - null
PRE-CONDITIONS
TYPE - payments-<some unique hash>
意图封闭池
当前的意图实现都是集中的,它们的内存池也是集中的,每个应用程序都有自己的存储空间来存储只有它们的解算器才能访问的意图,这限制了整个生态系统的去中心化和通用性
我们需要支持各种类型的上述意图的开放式内存池,任何求解器都可以运行或连接到内存池并开始解决它们
打开内存池
如果我们想推动去中心化,就需要一个开放的内存池来处理意图。
运行此内存池的操作员将能够定义他们想要支持的存储意图类型,或者他们可以存储每种类型的意图,这取决于操作员,我们这样做是因为一些操作员可能只想运行支持其自定义类型的内存池,以便任何求解器都可以解决它们。
Mempool也可以连接到P2P的八卦网络,与其他mempool一起八卦接收到的意图,实际上可能会采用libp2p或waku的实现。
Mempool通常会与求解器一起运行,以便求解器能够快速访问他们关心的意图。
当前求解器设计
求解器是意图的重要组成部分,它们通过调用一些API或合约来解决意图,并为其构建可以由用户执行的交易
这些求解器目前是集中式的,只支持少数类型的意图,我们可以采取这种结构并使其变得相当分散化。
新求解器设计
求解器可以运行一个内存池,或者可以连接到某个开放的内存池,它将订阅它支持的某些类型的事件,就像上面的例子一样,一个求解器可以订阅 swap-
如果一个求解器支持某种意图类型,意味着它也可以解决该意图,那么它将根据一些内部逻辑订阅它们的 pre-conditions ,然后尝试根据 conditions 解决该意图,如何解决该意图的实现可以由开发者决定,但最终我们应该收到可以由用户执行的交易或用户操作
拍卖层
目前,没有任何意图实现使用分散式拍卖层来解决多个求解器之间的竞标,CoW Swap是一个例外,但它是封闭和集中化的。
有哪些既去中心化又易用的好的拍卖平台?
现有的区块链(以太坊、Polygon、L2等)
新的区块链(OP Stack或任何其他类型的Rollup或类似SUAVE的L1)
简而言之,答案就是区块链,现在由建设者决定他们想在哪个拍卖层进行操作,但由于我们的基于类型的架构,可以有多个拍卖层支持不同类型的意图类型在不同的区块链上。
一旦所有事情都完成了,意图被添加到内存池中,通过求解器解决,用户在拍卖层接受了一个出价后,他们可以直接在钱包中收到构建的交易通知,然后可以使用拉取支付来批准
在我之前的帖子中,我正在讨论关于跨链 CoW 交换 4,而在构建它的过程中,我想到了,这可以推广到我们想要的任何类型的意图,然后我写了这篇帖子,现在回到代码!
希望能在这里进行一次健康的讨论,了解这个系统可能存在的缺陷!
原文:https://ethresear.ch/t/how-can-we-decentralize-intents/16456?utm_source=substack&utm_medium=email