Taxas Babel – denominando os custos de transações em tokens nativos
Introduzindo um novo mecanismo que permite o pagamento de taxas de transações em tokens definidos pelo usuário na Cardano
No clássico de Douglas Adams, O Guia do Mochileiro das Galáxias , um peixe Babel é uma criatura que permite que você ouça qualquer idioma traduzido para o seu. Essa fantasia de tradução universal garante significativa interação, apesar da miríade de idiomas na galáxia.
Na área de criptomoeda, plataformas de smart contracts permitem o desenvolvimento de uma miríade de tokens customizados. É possível interagir com a plataforma usando o token de sua preferência? Seria se ao menos houvesse um mecanismo de “taxa Babel” para traduzir o token que você usa para o requerido pela plataforma para enviar a transação.
O senso comum em sistemas de blockchain sugere que enviar uma transação válida deve incorrer em um custo para o remetente. O argumento é o de que, sem tal restrição, não exista nada que impeça alguém de sobrecarregar o sistema com transações sem valor, saturando sua capacidade e tornando-o inutilizável. Dado o princípio acima, um corolário (proposição que se deduz de outra já demonstrada) frequentemente feito é de que em qualquer sistema de blockchain onde o uso de tokens definidos pelo usuário são suportados, deveria ser proibido pagar taxas de transações com tais tokens . Em vez disso, as transações deveriam ter uma taxa no token nativo da plataforma que é aceito por todos os participantes como valioso. Sem dúvida, tal restrição é indesejável. Mas, como é possível contornar a subsequente – e aparentemente inevitável – vulnerabilidade?
A arte do possível
Criptografia e teoria dos jogos são conhecidas por tornar possível o que aparentemente era impossível. Exemplos famosos incluem troca de chaves em um canal público, quebra-cabeça de Merkle, e leilões onde ser verdadeiro/honesto é a coisa racional a se fazer, como nos leilões de Vickrey. Assim também acontece neste caso.
Primeiramente, permita-nos relembrar como ativos nativos funcionam na Cardano: Tokens podem ser criados de acordo com uma política de cunhagem e eles são tratados nativamente no livro razão ( ledger ) junto com ada. O livro razão Cardano adota o modelo Extended UTXO (EUTXO) e a emissão de uma transação válida requer o consumo de um ou mais UTXOs. Um UTXO na Cardano pode conter não apenas ada, mas na verdade um “pacote” de tokens, que por sua vez podem conter vários tokens diferentes - tangíveis e intangíveis. Desta forma, é possível escrever transações que transferem vários tokens diferentes com um único UTXO.
Taxas de transação no livro razão são denominadas em ada de acordo com uma função fixada como um parâmetro de razão. Um poderoso recurso do modelo EUTXO da Cardano é que as taxas requeridas para validar uma transação podem ser previstas com precisão antes de seu envio. Isto é um recurso exclusivo que não é aproveitado por outros arranjos de livro razão (como o modelo baseado em contas usado na Ethereum). De fato, neste último caso, as taxas requeridas para uma transação podem mudar durante o tempo que leva para a transação ser liquidada, uma vez que outras transações podem afetar o estado do livro razão e influenciar o custo necessário para processar a transação.
Uma experiência de pensamento
Vamos considerar a seguinte experiência de pensamento para nos ajudar a chegar mais perto do nosso objetivo de taxas Babel. Imagine que seja possível emitir uma transação que declare um passivo denominado em ada igual ao valor das taxas que o emissor da transação deve pagar. Esta transação não seria admissível para o livro razão. Entretanto, ela pode ser percebida como uma oferta aberta solicitando que o passivo seja coberto. Por que alguém responderia tal oferta? Para provocar uma resposta, assumindo o conceito de pacote de tokens já presente na Cardano, a transação pode oferecer certo montante de token(s) a quem queira cobrir o passivo. Isto sugere um mercado à vista entre ada e o(s) token(s) ofertados a uma determinada taxa de câmbio. Considere agora um produtor de blocos que vê tal transação. O produtor de blocos pode criar uma transação correspondente absorvendo a responsabilidade de cobri-la com ada, bem como, reivindicar os tokens em oferta.
Ao estender adequadamente as regras do livro razão, a transação com o passivo assim como sua transação correspondente tornam-se admissíveis ao livro razão como um grupo. Devido à absorção do passivo, o conjunto de duas transações torna-se adequadamente precificado em ada como um todo e, consequentemente, não infringe as regras de contabilidade do livro razão em termos de taxa ada. Como resultado, a transação com o passivo é liquidada e alcançamos nosso objetivo. Usuários podem submeter transações precificadas em qualquer token que possuam e, contanto que haja um produtor de blocos disposto a aceitá-las no mercado à vista, terem elas liquidadas no livro razão como transações regulares.
Um exemplo concreto
O mecanismo é obviamente condicionado à presença de provedores de liquidez que possuam ada e estejam dispostos a emitir transações correspondentes. Na verdade, o mecanismo cria um mercado para tais provedores de liquidez. Por exemplo, um operador de pool de apostas ( Stake Pool Operator ) pode publicar taxas de câmbio para tokens específicos que ele considere aceitáveis. Como exemplo, um SPO pode declarar que ele aceitará o tokenX por uma taxa de câmbio de 3:1 com a ada. Segue-se que, se uma transação custar, digamos ₳0,16, a transação pode declarar um passivo de ₳0,16, bem como oferecer 0,48 de tokenX . No modelo de ativo nativo da Cardano, isto pode ser implementado como um único UTXO carregando um pacote de tokens com a seguinte especificação (Ada→ -0.16, tokenX →0.48). Note o sinal negativo significando o passivo.
Suponha agora que o SPO está prestes a produzir um bloco. Ele recupera a transação passiva da mempool (mecanismo de um nó da blockchain onde ficam guardadas as transações não confirmadas) e emite uma transação correspondente consumindo o UTXO com o passivo. A transação correspondente transfere 0,48 do tokenX para uma nova saída pertencente ao SPO. O bloco resultante contém as duas transações em sequência. A transação de conciliação fornece os ₳0,16 faltantes, além das taxas que são necessárias para ela. Na verdade, várias transações podem ser agrupadas e terem suas taxas cobertas por uma única transação correspondente.
Figura: Alice envia uma quantidade de 9 tokens do tipo X para Bob com a ajuda de Stacy, uma SPO que cobre o passivo da transação de Alice e recebe tokens do tipo X em troca. A taxa de câmbio implícita entre X e Ada é de 3:1.
Novas medidas de valor
O processo acima é inteiramente opt-in para os SPOs. Cada um pode determinar sua política e taxa de câmbio, bem como, decidir alterar a taxa de câmbio para os vários tokens que aceita à vista. Além disso, não há necessidade de acordo entre SPOs sobre o valor de um token específico. Na verdade, diferentes SPOs podem oferecer diferentes taxas de câmbio para o mesmo token e um usuário que emite uma transação passiva pode oferecer uma quantidade de tokens correspondente para suprir o mínimo, a metade ou o máximo das taxas de câmbio publicadas na rede. Desta forma, surge uma troca compensatória natural entre o tempo de liquidação das transações de passivos e o valor de mercado dos tokens oferecidos.
Isto ilustra como ativos nativos, o modelo EUTXO e o ajuste simples – mas poderoso – de introduzir passivos na forma de valores negativos em pacotes de tokens podem acomodar as taxas Babel, capacitando os usuários a precificar transações em qualquer token suportado nativamente pelo sistema. Também mostra a incomparável vantagem em ser um SPO em tal sistema. Deve-se observar que os SPOs não precisam ser as únicas entidades na rede oferecendo cobertura aos passivos. Na verdade, um SPO pode prontamente associar-se – se assim o desejar – a um provedor de liquidez externo que emitirá as transações correspondentes. Além disso, provedores terceirizados também podem atuar na rede de forma independente e emitir transações correspondentes. Porém, o benefício permanecerá com os produtores de blocos; os SPOs podem sempre antecipar transações correspondentes e substituí-las pelas suas, se assim o desejarem.
O mecanismo de quantidades negativas em pacotes de tokens pode ser implementado nas regras básicas do livro razão da Cardano em algum momento após a introdução de ativos nativos com o Mary hard fork . Além de taxas Babel, o mecanismo permite uma variedade de outras aplicações interessantes, tais como trocas atômicas ( atomic swaps ) para negociação à vista, que abordaremos em uma postagem futura no blog. Isto é mais uma ilustração do poder de abordagem da Cardano e sua capacidade de apoiar uma comunidade diversificada e empreendedora de usuários e operadores de stake pools .
Sou grato a Manuel Chakravarty, Michael Peyton Jones, Nikos Karagiannidis, Chad Nester e Polina Vinogradova pelas discussões úteis, sugestões e comentários relacionados ao conceito de taxas Babel e sua implementação no livro razão da Cardano. Também temos um vídeo de passo a passo cobrindo este tópico