Protocolo Tinyman AMM V2.0
Ontem, anunciamos uma nova versão do protocolo Tinyman AMM em janeiro de 2023. Nesta postagem de blog, gostaríamos de fornecer uma visão geral do novo protocolo e explicar as próximas etapas. Estamos fornecendo esses detalhes antes do lançamento para dar tempo suficiente para que os usuários e os projetos do ecossistema se familiarizem com o novo protocolo e se preparem para a migração.
Desde o lançamento do Tinyman AMM em outubro de 2021, houve muitas melhorias no protocolo Algorand que permitem que os aplicativos façam coisas mais complexas e interessantes, além de melhorar a segurança e remover alguns dos pontos de atrito. Nos últimos 6 meses, trabalhamos no projeto, construção e teste de uma nova implementação do Tinyman AMM que aproveita essas melhorias.
Alguns destaques deste novo protocolo incluem:
- Cálculo dinâmico de saídas para eliminar a necessidade de resgates
- Adição e remoção de liquidez flexível
- Empréstimos rápidos e trocas rápidas
- Configurações dinâmicas de taxas
- Total capacidade de composição e interoperabilidade
- Verificações adicionais de segurança
- Melhor legibilidade do contrato
Tinyman AMM V2 é sem permissão
Tinyman AMM V2 é imutável (não atualizável)
O Tinyman AMM V2 não possui chaves de administrador para pausar a atividade ou drenar pools
Tinyman AMM V2 é transparente e de código aberto
Tinyman AMM V2 é auditado
Tinyman AMM V2 ainda é ridiculamente rápido e barato de usar
Não há mais resgates
Uma das melhorias mais importantes no protocolo da Algorand no ano passado foi a introdução de transações internas. Isso permite que os contratos criem transações programaticamente. Isso permite que o Tinyman calcule dinamicamente as saídas de swap e emita uma transação para o valor total da saída. Os contratos ainda garantem com segurança o recebimento do valor mínimo esperado.
Isso remove uma grande fonte de atrito e confusão e resultará imediatamente em uma melhor experiência do usuário.
Não há mais opt-ins de aplicativos
Agora que não precisamos mais oferecer suporte a resgates, também não precisamos armazenar por estado de usuário na cadeia. Isso nos permite remover o requisito de adesão ao aplicativo de contrato Tinyman. Isso liberará alguns requisitos mínimos de saldo dos usuários do Tinyman e removerá outra fonte de atrito.
Opt-ins de ativos ainda são necessários, mas agora podemos agrupá-los com trocas e outras operações para que os usuários não precisem assiná-los separadamente. Isso acelerará o processo e reduzirá as etapas envolvidas nas trocas.
Gestão de liquidez mais flexível
Percebemos que um padrão muito comum entre os usuários que desejam se tornar poolers era trocar um ativo por outro e depois depositar uma quantia igual de ambos no pool. Adicionamos um recurso que automatiza essa etapa no nível do protocolo para que um usuário possa adicionar liquidez a um pool com apenas um dos ativos do pool em uma única operação. Também é flexível para que o usuário possa adicionar o que tiver disponível de cada ativo e o pool equilibrará as coisas e emitirá a quantidade correta de tokens de pool para o valor combinado.
É fundamental entender que o usuário ainda tem exposição a ambos os ativos ao usar essa técnica. A troca interna implícita é apenas um recurso de conveniência do usuário. Também é importante entender que esse recurso é mais adequado para pequenos poolers. Ainda precisa haver alguns poolers com liquidez significativa em ambos os ativos para criar um pool equilibrado em primeiro lugar.
Esse recurso também garante que toda a liquidez do usuário no token LP seja contabilizada corretamente, mesmo que eles forneçam liquidez em uma proporção incorreta. Isso melhora a segurança para novos poolers durante períodos de alta volatilidade.
O protocolo agora também suporta a remoção de liquidez em apenas um ativo. Este é o inverso do caso acima, onde uma troca interna implícita acontece antes de devolver os fundos ao usuário como o ativo selecionado.
Esses dois recursos nos permitem melhorar a experiência do usuário simplificando fluxos comuns. Eles também, no entanto, estabelecem as bases para interações contrato a contrato muito mais complexas.
Capacidade de composição e interoperabilidade
Mais uma vez, aproveitamos as últimas melhorias do protocolo Algorand para projetar o protocolo V2 para ser totalmente combinável e interoperável. Isso significa que as transações do Tinyman V2 podem ser colocadas dentro dos mesmos grupos atômicos que outras transações e que o Tinyman V2 pode ser chamado de outros contratos.
Isso permite que nós e outros criemos recursos sobre o protocolo para trocas atômicas de vários saltos, ordens de limite, metapools e muito mais. Esses recursos ajudarão a melhorar a experiência do usuário para os swappers, ao mesmo tempo em que direcionam mais volume para as piscinas Tinyman e geram mais taxas para os poolers.
Empréstimos e trocas instantâneas
Um recurso que aproveita essa capacidade de composição é o Flash Loans. Agora temos suporte para isso embutido no protocolo, para que os usuários possam obter um empréstimo com garantia zero de um pool, desde que o paguem dentro do mesmo grupo de transações. Isso pode parecer um recurso inútil, mas graças à natureza interoperável do protocolo e ao espaço Algorand DeFi em desenvolvimento, haverá muitas oportunidades de lucros em um único bloco. Este é um recurso complexo e destinado apenas para uso por pessoas com conhecimento detalhado de protocolos e estratégias DeFi e, como tal, não será incluído na interface do usuário da web. A inclusão desse recurso é impulsionada por nossa filosofia central de fornecer ferramentas financeiras para todos, independentemente de sua riqueza.
Flash swaps e empréstimos são isentos de riscos para o protocolo (no sentido financeiro) e fornecem uma fonte de receita adicional para os poolers.
Taxas ajustáveis
O Tinyman AMM V1 tem uma taxa de swap fixa de 30 pontos base, dividida em 5:1 entre os poolers e o protocolo. Isso serviu bem aos usuários até agora, mas há casos em que outras opções de taxas seriam mais adequadas. Para ativos indexados/estáveis, uma taxa mais baixa que cause menos impacto no preço beneficiaria os swappers. O aumento do volume devido a taxas mais baixas também deve beneficiar os poolers. Em vez de fragmentar a liquidez em vários pools para diferentes níveis de taxas dos mesmos pares de ativos, o protocolo V2 permite que as taxas de um pool sejam ajustadas ao longo do tempo. Todos os pools começarão com os padrões (o mesmo que V1), mas a taxa de taxa pode ser alterada pela conta Fee Setter dentro dos limites permitidos.
A intenção aqui é que o Fee Setter seja inicialmente uma conta controlada pela equipe principal do Tinyman e as taxas sejam ajustadas apenas para pares estáveis/fixados. Mais tarde, pretendemos introduzir um recurso para permitir que os poolers decidam coletivamente sobre as taxas de seu pool. Em última análise, pretendemos que todas as taxas sejam controláveis pelo Tinyman DAO quando ele existir. O protocolo foi projetado para ser flexível a esse respeito, de modo que a responsabilidade pela definição e cobrança de taxas possa ser delegada a contratos inteligentes ou contas externas e revogável, se necessário. Isso permite que as regras e mecanismos relativos às taxas mudem ao longo do tempo sem afetar nenhum outro aspecto do protocolo. Mais detalhes serão fornecidos antes do lançamento sobre as políticas relacionadas às alterações nas taxas.
Um protocolo mais seguro e transparente
Com qualquer protocolo, existem suposições de design e limitações técnicas inerentes. Nós os documentamos anteriormente para V1 e colocamos proteções na interface do usuário para impedir que os usuários usem o protocolo de maneiras inesperadas. Com o Tinyman V2, fomos capazes de dar um passo adiante e aplicar alguns deles no nível do protocolo.
Há uma série de invariantes matemáticos/lógicos que devem ser mantidos no protocolo. No Tinyman V2, eles são verificados explicitamente após cada operação para garantir que, mesmo com um comportamento muito inesperado, os pools não percam valor.
O protocolo só pode ser seguro se puder ser facilmente lido, compreendido e revisado por várias pessoas independentes. Para ajudar nesse sentido, colocamos o trabalho em várias áreas:
- Código-fonte legível do contrato — Desenvolvemos uma nova linguagem para Algorand, Tealish , que nos permite expressar nossa lógica e intenções claramente em alto nível enquanto compilamos em Teal legível de baixo nível. Fergal Walsh (Tinyman CTO) falará sobre Tealish e como ele foi usado para V2 no Decipher 2022 .
- Auditorias auditáveis — As especificações do protocolo e os contratos foram analisados e auditados em vários níveis para tentar identificar muitos tipos diferentes de problemas. Isso inclui análise e modelagem das especificações, o código-fonte Tealish e o código Teal gerado que é executado no AVM. Trabalhamos com os auditores para tornar o processo de auditoria mais transparente do que o normal. Publicaremos outra postagem no blog sobre isso nas próximas semanas com referências aos relatórios e todo o material de apoio.
- Bug Bounty — Trabalhamos com a Algorand Foundation e Immunefi para criar um programa de bug bounty com recompensas de até 250.000 USD para problemas críticos. Este programa está ativo imediatamente e permanecerá ativo após o lançamento da Mainnet.
- Contratos públicos e especificações de código aberto — Publicamos os contratos de origem, o Teal gerado e o bytecode final junto com o documento de design e a especificação do protocolo. Isso permite que qualquer pessoa revise os detalhes do protocolo para garantir que sua implementação corresponda às suas expectativas.
Regularmente nos perguntam por que não há um Big Red Button para Tinyman pausar os contratos se algo der errado. Esta questão foi levantada mais após o infeliz incidente em janeiro. Ao projetar o V2, pensamos muito nessa questão. Podemos implementar uma funcionalidade de pausa? Como isso funcionaria? Quem pode controlá-lo? Quem é responsável por chamá-lo? O que acontece depois da pausa? Entraremos em mais detalhes sobre isso em uma postagem futura sobre questões de segurança, mas no final chegamos à mesma conclusão que tivemos ao projetar V1; não há mecanismo de pausa seguro e útil que não comprometa os valores centrais do Tinyman e do DeFi em geral. Um mecanismo de pausa sem contratos atualizáveis não é muito útil e os contratos atualizáveis são o outro lado de uma linha que não estamos dispostos a cruzar. Contratos atualizáveis permitiriam que a equipe Tinyman (ou um invasor) mudasse as regras do protocolo e potencialmente tomasse a custódia da liquidez. O principal objetivo do DeFi é evitar tais possibilidades.
Seus fundos, sua decisão
Nós, como equipe, estamos entusiasmados com o novo protocolo e estamos ocupados construindo uma interface de usuário nova e aprimorada em torno dele. Acreditamos que os usuários terão uma experiência muito melhor no geral com o novo protocolo, mas, em última análise, a decisão é sua como usuário do protocolo. Quando você colocou seus fundos em V1, você concordou que eles estariam sujeitos às regras e à lógica dos contratos V1. Por design, não podemos alterar essas regras para portar sua liquidez para V2. Deve ser sua decisão. Incentivamos todos os poolers em V1 a ler os detalhes do protocolo e o relatório de auditoria independente e decidir por si mesmos se desejam migrar sua liquidez para V2. O protocolo V1 continuará a viver na Algorand Mainnet por toda a eternidade e continuaremos a oferecer suporte aos pools existentes na interface do usuário da Web no futuro previsível.
Próximos passos
Esperamos que você esteja tão empolgado quanto nós com o V2. Este é apenas o começo no entanto! Também temos muitas melhorias na interface do usuário a serem lançadas com o protocolo V2. Analisaremos isso em outras postagens do blog nas próximas semanas. Após o lançamento, haverá melhorias e recursos adicionais construídos sobre a base fornecida pelo protocolo V2.
Também teremos postagens adicionais sobre o plano de migração antes do lançamento.
Enquanto isso, sugerimos que você se familiarize com os detalhes do protocolo e tire suas dúvidas em nossos espaços comunitários.
Referências
Documentação e especificação do protocolo V2
Repositório de Contratos V2
Relatório de Auditoria de Contratos V2
Repositório Tealish
Immunefi Bug Bounty Program (Link a ser adicionado)