Compreendendo os formatos de token Ethereum

Com o tempo, o blockchain penetra cada vez mais em nossas vidas, e torna-se necessário entender suas principais tecnologias, incluindo o trabalho de aplicativos descentralizados (dApps). A maioria dos dApps é criada atualmente no Ethereum, cujos recursos são muito mais flexíveis do que a emissão dos tokens ERC20 usuais.



Por que os padrões são necessários



Dentro do contrato inteligente (o que é? ), Você pode escrever a mecânica única do token. Funcionará, mas outros desenvolvedores (e contratos inteligentes) não poderão acessá-lo usando lógica genérica.



Exemplo: você criou um token para um item do jogo (jogos descentralizados estão em desenvolvimento ativo agora) e deseja que ele seja capaz de negociar nos mercados por itens do jogo (algo assim ). Mas os mercados não sabem como acessar as funções dentro do seu contrato, eles precisam de um contrato inteligente separado para dar suporte ao seu token.



Os padrões vêm ao resgate. Sabendo como interagir com eles, os criadores de outros dApps colocaram no código tudo que você precisa para trabalhar com um token em um determinado padrão.



Como os padrões surgem



Ethereum é um projeto de código aberto (a propósito, ERC é Ethereum Request for Comments), portanto, é lógico que qualquer usuário pode propor um novo padrão de token. Se o padrão resolver algum problema importante, então ele pode se tornar o padrão Ethereum oficial (ou seja, entrar nesta lista) .



Tokens fungíveis e não fungíveis



O ponto de partida para classificar os padrões de token é sua intercambialidade ou a falta dela. Os tokens fungíveis são iguais uns aos outros e podem ser usados ​​como moeda. Os tokens semifungíveis (semifungíveis) são quase indistinguíveis uns dos outros, mas ainda assim únicos (por exemplo: ingressos para um cinema, o custo pode ser um, mas cada um tem um lugar único) . Os tokens não fungíveis (não fungíveis) são completamente únicos, um objeto tokenizado em uma única cópia (exemplo: objetos de copyright) .

imagem

Se você não reconhece o gatinho, então este é um dos primeiros jogos no Ethereum (e no padrão ERC-721), CryptoKitties .



ERC-20



O padrão mais famoso para tokens fungíveis é ERC20, que foi proposto pelo autor da ideia Ethereum Vitalik Buterin em 2015. Esse token é amplamente utilizado para vários tipos de oferta inicial (primeira proposta). Evito os termos ICO e IEO, porque agora estão longe de ser as únicas maneiras de realizar uma oferta pública de tokens (mas este não é o artigo sobre isso).



Especificidade: um padrão intercambiável, há um ticker para trocas, divisível (o número de casas decimais é determinado pelo criador do contrato inteligente), deve ter um fornecimento total (o número de tokens que não podem ser emitidos mais).



Muito já foi escrito sobre o ERC-20 ( habr ), estou passando para outros padrões.



ERC-721



Este padrão é amplamente usado para criar tokens exclusivos. Terreno em Decentraland , Binance Collectibles , aqui estão alguns exemplos de ERC-721.



O ERC-721 foi proposto como EIP (Ethereum Improvement Proposal) por Dieter Shirley em 2017, tornou-se oficial em 2018.



Específicos: não é um padrão intercambiável, nenhum ticker, indivisível, necessariamente existe apenas em uma única cópia.



O ERC-721, como o ERC-20, é muito difundido, então não vou me alongar sobre ele.



ERC-777



Este formato é uma "melhoria" do familiar ERC-20. É compatível com versões anteriores do ERC-20, mas tem várias vantagens:



  • ao trocar tokens, ele usa uma transação em vez de duas no ERC-20;
  • cancela automaticamente as transações de contratos incompatíveis;
  • a capacidade de marcar endereços não confiáveis;
  • a capacidade de nomear operadores (endereços que têm o direito de enviar tokens de outro endereço);
  • transações aceleradas.




ERC-223



Também um "aprimoramento" do ERC-20, evitando o envio de transações para contratos aleatórios. Se o contrato inteligente não tiver funções para trabalhar com tokens, eles serão devolvidos ao remetente.



imagem: mywishplatform



ERC-1155



A ideia para este padrão foi proposta pelos desenvolvedores do projeto Enjin em 2018. Enjin é um projeto que visa simplificar a criação de jogos no Ethereum. Portanto, o padrão por eles proposto deve primeiro ser considerado como um padrão de jogo, embora sua aplicação não se limite a isso.



Especificidade:



  • permite que você emita vários tokens em um contrato;
  • tokens em um contrato podem ser fungíveis e não fungíveis ao mesmo tempo;
  • suporta trocas atômicas;
  • suporta transações em "lote";
  • nem todas as transações precisam aguardar o fim do bloco.


Se os primeiros dois pontos estiverem claros, o terceiro e o quarto podem levantar questões. Primeiro, vamos dar uma olhada nas trocas atômicas.



Trocas atômicas



Um dos motivos para a rejeição do blockchain em todos os lugares é a incapacidade de trocar de forma rápida e eficiente (em termos de taxas) um token por outro (e o número de tokens diferentes está aumentando o tempo todo). A solução para o problema já foi criada - são trocas atômicas. Normalmente, as trocas atômicas são entendidas como a tecnologia de troca descentralizada entre criptomoedas de diferentes blockchains independentes ( está bem escrito sobre isso no BitcoinWiki ). Mas também vale a pena considerar as trocas atômicas no contexto da troca de tokens em um contrato inteligente.



Uma imagem do blog Enjin ilustra uma troca de vários tokens usando o padrão ERC-1155.

Foto do blog Enjin



E as transações em lote, embora não economizem tempo, economizam gás (o que é isso? ) Ao gravar várias transações na rede como uma só.

Foto do blog Enjin



Vale ressaltar que embora o ERC-1155 tenha se tornado mais difundido, ele tomou muito emprestado do ERC875, que apareceu alguns meses antes. ERC-875 ofereceu a mesma funcionalidade além de suportar tokens fungíveis.



ERC-865



Um padrão semelhante ao ERC-20, mas não usa gás para comissões, mas os próprios tokens. Devido ao complexo sistema de pagamento de comissão do gás (o preço do gás é escolhido de forma independente) e, às vezes, a imprevisibilidade do tamanho da comissão, tal melhoria pode ser muito útil para aceitar tokens no Ethereum.



Links



Não considerei todos os padrões, mas se falarmos sobre todos os ERCs, então eles são em sua maioria semelhantes entre si e oferecem uma solução para os problemas do ERC-20 ou um aplicativo em algum nicho separado. Se você quiser ler o código em detalhes: Github PEI , Github OpenZeppelin . Ethereum.org .



All Articles