Título original: Uma cartilha incompleta sobre intenções

Autor original: 0xemperor.eth

Compilado por: Qianwen, ChainCatcher

A intenção tornou-se popular em discussões recentes de pesquisas no campo da criptografia, e vários protocolos estão aproveitando esse conceito. Por exemplo, protocolos como Anoma e Essential estão se baseando nesse conceito.

Este artigo tem como objetivo fornecer uma introdução preliminar às diversas perspectivas e, finalmente, apresentar a forma de apresentação da arquitetura de resolução de intenção ao expressar a intenção em linguagem natural. Se o conceito de intenção for bem-sucedido, ele terá o potencial de revolucionar a arquitetura de aplicativos em todos os níveis.

Qual é a intenção?

As intenções permitem que os usuários especifiquem certas condições ou preferências de negociação sem a necessidade de fornecer chamadas de mensagens precisas, aumentando assim a flexibilidade e reduzindo a complexidade na cadeia.

No artigo "Arquitetura baseada em intenção e seus riscos", a definição de intenção é: Uma intenção é um conjunto de restrições declarativas que permitem aos usuários terceirizar a criação de transações para terceiros sem abrir mão do controle total sobre as partes da transação.

Em um podcast, Chris Goes, da Anoma, define isso de duas maneiras: Intenção se refere a "um compromisso confiável com uma preferência por certos estados do sistema" e "um compromisso confiável com restrições nos fluxos de informações".

Uma maneira intuitiva de pensar sobre intenção é que ela basicamente representa um resultado desejado. Quando você expressa uma intenção, você está apenas definindo o resultado que deseja, não o processo para chegar lá.

Por exemplo, se você quiser trocar Tether (USDT) por ETH, não precisará gerenciar todo o processo sozinho: escolher uma exchange, abrir uma conta/assinar transações, processar transferências (ou limpar a poeira de criptomoedas da sua carteira), etc. Você pode simplesmente enviar uma carta de intenções informando que deseja trocar 1 ETH por 2.000 USDT. Outra entidade (chamada Solucionador) pega sua intenção e descobre uma maneira de fazê-la acontecer. O Solver cuida dos detalhes complicados e se esforça para otimizar os melhores resultados para você.

O ponto principal é que a intenção se concentra no resultado e não no processo. Os usuários definem os resultados desejados e outros os implementam por meio de processos. As intenções permitem que você especifique o resultado sem se preocupar com as etapas, simplificando muito o processo de transação que a maioria dos usuários usa em criptomoedas.

A ideia de nível mais alto é que os usuários podem definir o que querem sem especificar de quais contratos querem começar a negociar (podemos chamar isso de caminho de computação ou simplesmente caminho de transação). Os usuários também podem restringir isso indicando que preferem determinados caminhos ou contratos.

Casos de uso

Cowswap

A Cowswap usa leilões em lote como seu principal mecanismo de descoberta de preços. Em vez de executar negociações imediatamente como AMMs, a Cowswap agrega ordens fora da cadeia e as liquida em lotes. Isso permite que um único preço de liquidação seja determinado para todas as negociações em um lote, eliminando problemas de front-running comuns em modelos de execução instantânea. Os leilões em lote também permitem que muitas transações sejam liquidadas simultaneamente, otimizando assim as taxas de gás. Os solucionadores competem abertamente entre si para enviar soluções de liquidação de ordens para garantir que os interesses das partes em cada lote de transações sejam maximizados. A melhor solução determinará o preço final unificado. No geral, os leilões em lote alcançam justiça, eficiência e proteção MEV, o que não pode ser alcançado com o modelo de execução instantânea.

Uma inovação fundamental do modelo de leilão em lote da Cowswap é a capacidade de encontrar coincidências de desejos (CoW) entre pedidos. CoW é uma liquidação direta ponto a ponto entre transações com necessidades recíprocas. Esse compartilhamento de liquidez significa que não há necessidade de provedores externos de liquidez para facilitar essas negociações. O CoW também pode incluir vários ativos em uma transação de anel ao mesmo tempo. Ao maximizar o uso de CoW, os leilões em lote podem acessar mais liquidez do que pools isolados. As liquidações utilizarão CoW onde permitido, com o restante executado por meio de liquidez na cadeia. A combinação de leilões em lote com o compartilhamento de liquidez do CoW pode fornecer aos negociadores melhores preços e execução.

O modelo CoWswap é semelhante ao modelo de intenção. Os usuários expressam suas intenções de negociação na forma de ordens limitadas. As intenções de negociação são inseridas no livro de ordens. O Solver usa o status do livro de ordens para combiná-las na forma de transações em anel ou encaminhá-las por meio do AMM (ou seja, os usuários mencionam apenas o preço, não o caminho do cálculo ou o local específico onde desejam executar).

Uniswap X

O artigo Uniswap X propõe um protocolo de negociação descentralizado que usa livros de ordens off-chain assinados e liquidados on-chain por meio de leilões holandeses. Os usuários assinam pedidos, especificando parâmetros como tokens de entrada/saída, quantidades e limites de preço. Essas ordens são distribuídas aos "preenchedores" que competem pelo melhor preço de execução.

O Uniswap X propõe definir o preço inicial do leilão holandês por meio de um sistema de consulta off-chain. Os usuários podem solicitar um preço a uma rede de preenchedores, com um breve período de exclusividade para a melhor oferta, a fim de incentivar preços honestos. Após esse período, o pedido entra em um leilão holandês aberto.

Semelhanças entre Uniswap X e Cowswap

  • Ambos usam ordens assinadas off-chain e agregadas e liquidadas em lotes on-chain. Isso economiza taxas de gás em comparação com pedidos em cadeia

  • Ambos visam promover a competição entre provedores de liquidez para encontrar o melhor preço de execução (os provedores de liquidez são chamados de Solvers no cowswap e Fillers no uniswapX).

  • O Cowswap enfatiza o uso do CoW para facilitar transações diretas ponto a ponto, enquanto o Uniswap X se concentra mais na integração de fontes de liquidez on-chain e off-chain.

  • O sistema RFQ (solicitação de cotação) no Uniswap X e o modelo de assinatura (os usuários expressam sua intenção e então deixam outros usuários atenderem aos pedidos) são semelhantes à arquitetura de intenção.

Definição formal de intenção

Os usuários simplesmente expressam sua intenção, como "Quero trocar o ativo X pelo ativo Y", e o Solver descobre a melhor maneira de atender a essa intenção e cuida de todos os detalhes relacionados ao blockchain nos bastidores. O Solver fornece provas de que a intenção foi alcançada e pode participar de mecanismos como leilões para atingir a intenção de forma descentralizada.

Este blog explora algumas definições:

Primeiro modelo: Intenção i é definida como uma tupla (B,E,T):

  • B representa o conjunto de estados "iniciais" suportados.

  • E representa o conjunto de estados "finais" suportados.

  • T é um conjunto de sequências de transações preferenciais.

  • A função de transição de estado s: Q×T→T move-se do estado inicial para o estado final por meio de uma sequência de transações t.

Uma intenção é considerada cumprida se ela começa no estado q0∈B através de uma sequência de transações t∈T e termina no estado qn∈E.

Limpeza de intenção: se os conjuntos B, E, T tiverem uma interseção não vazia, então um conjunto de intenções para, ..., tm pode ser limpo, permitindo a criação de uma meta-intenção t’ usando essas interseções.

Como mencionamos anteriormente, a intenção é expressa pelo usuário e então resolvida pelo Solver; não importa em que formato seja expresso, a intenção é um problema de otimização para o Solver. Em termos leigos, um usuário pode declarar uma intenção como "Quero comprar 4 ETH em BTC", e o Solver normalmente encontrará um lugar para preencher ou trocar essa ordem. Mas as intenções não param por aí; Eles também permitem a adição de restrições como “menor deslizamento possível” e “não negociar em uma DEX que proíba usuários dos EUA de negociar”, que por sua vez se tornam restrições adicionais que os solucionadores devem ter em mente.

Os desafios incluem:

  • A expressão de intenção precisa ser simplificada.

  • Certas intenções podem ter impacto no bem-estar do usuário, como deslizamento zero no DEX.

  • O rastreamento da execução pode exigir atenção devido a riscos ou razões legais.

O objetivo é encontrar um equilíbrio entre capturar claramente as preferências de intenção do usuário e considerações práticas de eficiência computacional e experiência do usuário.

Uma interpretação lagrangiana da busca intencional também é mencionada aqui.

Para mim, a formulação da intenção parece um processo de decisão de Markov. Entretanto, as transições de estado de um processo de decisão de Markov são aleatórias, enquanto este será um MDP determinístico com valores absolutos de transição de estado, que podem ser resolvidos usando iteração de valor, iteração de política ou MCTS (Monte Carlo Tree Search) (a última parte também é usada para resolver a parte Go do Alphago).

A intenção direciona a experiência do usuário

A intenção pode ser o próximo estágio na evolução da experiência do usuário on-chain. Atualmente, a experiência do usuário on-chain gira principalmente em torno do nível de transação, e os usuários assinam cada transação, o que também faz parte da operação. Portanto, cada etapa da cadeia é expressa por meio de transações. Em termos muito simples, a intenção é uma metatransação onde as atividades são expressas em um nível muito abstrato e cabe ao Solucionador tentar satisfazer a intenção do usuário. Isso pode envolver comprar alguns ETH pelo preço X, querendo obter o melhor negócio possível, o que pode ser feito como uma única troca enorme no Uniswap por Ethereum, ou dividindo-o em um roll-up e então comprando os ETH (contando também as taxas).

Atualmente, uma troca simples de USDC para ETH envolve o usuário aprovando o limite dos tokens, aprovando o tipo de token e, então, aprovando a transação, enquanto em um mundo centrado na intenção, o usuário pode ser abstraído desses detalhes e executar apenas a ação de interesse. Existe uma regra não oficial no web design de que nenhuma ação deve levar mais de três cliques para ser executada; Atualmente, se um usuário quiser fazer uma troca, ele deve selecionar um token simultaneamente e talvez ajustar o deslizamento e a negociação, o que pode não parecer muito trabalho para uma única negociação, mas pode levar a uma experiência complicada para o usuário quando repetido várias vezes.

De forma muito básica, o Unibot permite que as pessoas vejam os padrões apresentados pela arquitetura para intenção. Ele elimina a complexidade da negociação, proporcionando aos traders uma experiência de usuário simples e fácil de usar, mas também tem algumas limitações quanto à possível flexibilidade. Apesar dos supostos riscos do aplicativo com o manuseio de chaves que podem levar a ataques, ele tem uma base de usuários sólida, apesar da cobrança de uma taxa, o que sugere oportunidades inexploradas na experiência do usuário no mundo das criptomoedas.

Fluxo de intenção de conversação

Como a inteligência artificial se encaixa em um mundo de blockchain centrado na intenção? O conceito de reconhecimento de intenção existe há décadas no campo do processamento de linguagem natural e tem sido extensivamente estudado em conversas. Por exemplo, digamos que um usuário visita um site de viagens e inicia uma conversa com um chatbot; a intenção inicial pode ser reservar um voo ou verificar uma reserva ou status, e o usuário então fornece vários detalhes. Ao reservar um voo, o usuário precisa informar o destino, a hora, a data e a classe de tarifa em que está interessado; em alguns casos, o usuário também pode precisar selecionar um aeroporto. Neste exemplo, o propósito do usuário é a intenção da conversa, e os vários detalhes fornecidos pelo usuário são os espaços/slots que precisam ser preenchidos para atingir essa intenção.

Status de conversa anotado em uma conversa

Outro exemplo de reconhecimento de intenção e preenchimento de detalhes é quando você pretende tocar uma música, vários espaços (detalhes) relacionados à música aparecem na frase, como o nome da música e o artista que a cantou.

A classificação de intenções e o preenchimento de lacunas são problemas muito complexos no mundo das conversas, porque suas conversas podem abranger vários turnos, às vezes haverá intenções globais e intenções locais, e você precisa monitorar muitos estados. Toda vez que você usa a Siri e o Google Assistente para agendar um alarme ou registrar algo no seu calendário ou aniversário, há algum nível de classificação de intenção e preenchimento de espaço por trás disso.

Como isso se relaciona com o blockchain? À medida que passamos de um mundo centrado em transações para um mundo centrado na intenção, os detalhes de como passamos da intenção à transação ainda não surgiram na discussão popular. A interface entre o pool de intenções e o pool de memória não existe. Acessar modelos on-chain e usá-los para reconhecimento de intenção e preenchimento de espaço fornece uma interface de linguagem natural (a mais natural, na minha opinião) para o pool de intenções e o solucionador.

A ideia geral é acessar um conjunto de modelos em uma cadeia e reduzir cada intenção a uma DSL (linguagem específica de domínio); essa linguagem específica de domínio incluirá detalhes como a intenção principal (comprar, vender, fazer ponte, emprestar/emprestar) e outros detalhes como endereço, tamanho, preferência de deslizamento, etc. (dependendo do tipo de intenção). O DSL global permite que qualquer pessoa implante um modelo, simplificando a intenção em um DSL específico. Caso haja vários modelos desse tipo, o modelo votado será escolhido dentre o conjunto de modelos.

A disponibilidade de um modelo on-chain nos ajuda a desenvolver essa interface de forma segura e comprovada, com provas computacionais para cada intenção/solução sendo comprováveis. Em alguns casos, capturar os resultados da maioria dos votos em todos os modelos pode fornecer insights sobre como as intenções são selecionadas e, em alguns casos individuais, pode até ajudar o solucionador a resolver melhor essas intenções.

O modelo on-chain usado aqui pode ser um modelo padrão de aprendizado profundo como o BERT, que é treinado exatamente para esse propósito, ou uma grande inferência de modelo de linguagem usada em um conjunto; esse detalhe pode depender de diferentes participantes ou solucionadores. No caso de um pool de intenções criptografado, precisamos usar criptografia homomórfica ou métodos de inferência privada para garantir a privacidade dos dados e, ao mesmo tempo, poder realizar cálculos neles. A cada época ou a cada poucas épocas, uma prova pode ser publicada na cadeia onde o modelo é um validador. Um validador pode ser um humano ou outro modelo que emite uma declaração sobre a validade do modelo. Esta última parte do processo garante que o ciclo de vida do modelo seja considerado, independentemente de o modelo conseguir lidar com a intenção com precisão. Às vezes, quando o validador é um participante maduro, esse participante pode descobrir falhas no modelo que podem ser rapidamente resolvidas e substituídas por um modelo mais novo.

Conforme mostrado na figura abaixo, para a ação/pensamento “Fazer uma compra com stablecoins e acumular poeira na minha carteira”, uma vez que entra no pool de intenções, ela passa por vários modelos e é analisada em um DSL com vários detalhes, como intenções, subações e detalhes que precisam ser preenchidos. A análise do DSL pode ser tão detalhada ou abstrata quanto possível; a conversa intencional pode durar várias voltas, pois um limite de poeira pode precisar ser determinado. Depois que o DSL estiver instalado, o Solver pode escolher o melhor caminho para converter esses saldos em ETH e então passar a transação para o mempool.

Exemplo de modelo de resolução de intenção

Outra arquitetura DSL - Essencial

A abstração de contas transforma todas as contas em contratos inteligentes, separando contas no Ethereum dos signatários. Isso permite que as contas personalizem diferentes lógicas de autorização com base nas necessidades do usuário. No entanto, implementar a abstração completa da conta exigiria mudanças significativas no protocolo principal do Ethereum.

O EIP 4337 adota uma abordagem diferente, alcançando os benefícios da abstração de contas sem alterar a camada de consenso. Ele introduz “ações do usuário” - pseudotransações enviadas ao mempool alternativo e agrupadas por um “agrupador” em uma transação que chama o contrato inteligente EntryPoint.

Isso permite recursos como recuperação social, pagamento de taxas em qualquer token e processamento em lote de transações. Os desenvolvedores podem configurar contas personalizadas para atender a diferentes casos de uso. Ao evitar mudanças de protocolo, o EIP 4337 pode trazer esses benefícios ao Ethereum mais rapidamente. No entanto, também introduz novas complexidades e atores, como agrupadores e pagadores. A dinâmica resultante entre múltiplos pools de memória, incentivos e transparência exigirá um gerenciamento cuidadoso.

As intenções permitem que os usuários especifiquem um resultado desejado em vez de uma ação específica. O Solver então ajuda o usuário a atingir esse resultado da melhor maneira possível. Entretanto, as implementações atuais são limitadas, exibindo centralização, falta de componibilidade e competição insuficiente entre os solucionadores.

Um EIP proposto pela Essential mudaria isso. A abstração de contas por meio de iniciativas como a EIP 4337 permite contas baseadas em contratos inteligentes em vez de contas tradicionais de propriedade externa (EOA). Isso permite que os usuários enviem intenções gerais sem precisar enviar transações puras. As intenções representam os resultados desejados pelos usuários e podem ser complementadas pelo Solver para maximizar a satisfação dos participantes.

O EIP 7521 propõe uma estrutura para dar suporte à evolução dos padrões de intenção sem a necessidade de atualizar continuamente as carteiras de contratos inteligentes. O usuário assina uma "intenção do usuário" e especifica qual contrato de "padrão de intenção" lidará com a intenção. Essas intenções são enviadas ao contrato EntryPoint, que lida com a verificação de assinatura como no EIP 4337. O pool de memória de intenção do usuário e o pool de memória ERC 4337 existem ao mesmo tempo, e o Solver lida com a intenção.

Intenções do usuário sob abstração de conta ERC-4337

Anomalia

Anoma é uma arquitetura centrada na intenção que se concentra na construção da camada de infraestrutura em torno da intenção de programação, e não das transações. Intenções são mudanças parciais de estado assinadas por usuários expressando preferências, em vez de transações completas de mudança de estado. Este design centrado na intenção permite descoberta e resolução descentralizadas de contrapartes. Anoma está tentando passar de um paradigma imperativo para um paradigma imperativo.

Trecho da palestra de Adrian Brink sobre aplicativos centrados na intenção

Os usuários transmitem intenções, que se espalham na rede de fofocas de intenções. Nós diferentes podem se especializar na propagação de determinadas intenções com base em seus recursos de computação e nos tipos de intenções que desejam atender. O Solver observa intenções e tenta combinar intenções compatíveis em transações válidas que podem ser liquidadas na cadeia. As transações são enviadas para um pool de memória criptografado usando criptografia de limite, o que torna impossível o front-running. O Anoma também tem um modelo de intenção parcial que permite a composição de intenção.

Chris falou sobre Intent x Rollup - Modelo de Intenção Parcial Anoma

O foco da Anoma na privacidade está na “escolha no nível do usuário”, o que significa dar aos usuários a flexibilidade de divulgar informações sobre suas intenções e escolher o que divulgar.

A arquitetura consiste em vários componentes. O mecanismo de execução Tiger usa ZKP e tecnologia de criptografia homomórfica para processar dados privados transparentes e protegidos. Typhon é o algoritmo de consenso. A pilha do compilador inclui a linguagem Juvix, AnomaVM e VampIR.

A arquitetura possui protocolos homogêneos e modelos de segurança heterogêneos. Ele pode ser implantado como um blockchain autônomo ou usado como um roll-up ZK ou um livro de ordens descentralizado para permitir a distribuição descentralizada de aplicativos no Ethereum. Usuários com diferentes requisitos de segurança podem usar o mesmo protocolo e, ao mesmo tempo, fazer concessões de segurança com base em suas necessidades.

O Anoma facilita a criação de aplicativos descentralizados em comparação ao modelo centrado em transações. Destinado a dar suporte à execução de novos aplicativos, como rollups, transações de múltiplas trocas e DAOs privados. Em resumo, o Anoma fornece uma arquitetura flexível e modular que atende aos requisitos de aplicativos descentralizados contemporâneos. Ele se concentra na intenção e não nas transações, resolvendo assim os problemas de descoberta e coordenação de contrapartes e preservando a privacidade.

A Anoma tem uma filosofia de design única que vê a intenção como “fluxo de informações” e “fluxo de informações restrito/privado” e faz escolhas arquitetônicas e de design de acordo. Isso também ilustra o fato de que o modelo de composição de intenção da Anoma leva a modelos de intenção generalizados que podem ser tecnicamente difíceis de abordar sob restrições de privacidade porque as compensações de eficiência limitam a quantidade de informações que podem ser mantidas confidenciais.

resumo

A intenção como um problema de pesquisa e engenharia é atualmente uma área muito interessante em criptografia.

Questões em aberto que precisam ser abordadas no campo da intenção:

  • Definição formal de intenção

  • Como é uma arquitetura de aplicativo centrada na intenção além do DEX?

  • Ao resolver qualquer problema de otimização, projetar o equilíbrio entre privacidade e utilidade exige ter acesso ao máximo de informações possível. Para que a intenção de privacidade seja alcançada, uma certa quantidade de informações deve ser divulgada para atender a essa intenção.

  • Qual é o conhecimento mais básico necessário para resolver o problema da intenção?

  • Se você cortasse o acesso a outros conhecimentos, quais seriam as compensações?

  • Como expressar essa compensação entre privacidade e eficiência de uma maneira comum.

As intenções gerais podem ser grandes demais para serem resolvidas e, para um espaço de estado tão grande quanto o Ethereum, isso se torna um problema intratável. Isso sugere que é melhor ter algumas restrições ao abordar intenções, e que as tentativas de combinar intenções também devem ser limitadas (quando há uma intenção compartilhada). Na minha opinião, intenções genéricas são extremamente difíceis de serem alcançadas na prática, e uma arquitetura centrada em intenções será específica da aplicação por natureza.

Embora essas sejam questões de pesquisa, as escolhas de design para atingir o objetivo também criam uma variedade de problemas de engenharia. Isso pode levar a uma dependência excessiva de intermediários (permitidos), o que corre o risco de levar à concentração de infraestrutura em pilhas diferentes (no caso do UniswapX, 77% do volume é preenchimento de inventário off-chain). Também consolida intermediários confiáveis, cria barreiras à participação e sufoca a inovação, como já vimos com o MEV. O design de qualquer protocolo de intenção deve encontrar um equilíbrio entre ausência de permissão, privacidade, transparência e descentralização.