Índice

  • Introdução

  • Qual é o padrão ERC-20?

  • Fatos rápidos sobre o token Ethereum

  • Como são gerados os tokens ERC-20?

  • Quais funções o ERC-20 possui?

    • Moeda estável

    • Tokens de segurança

    • token de utilidade

  • Posso participar da mineração de tokens ERC-20?

  • Vantagens e desvantagens dos tokens ERC-20

    • Vantagens dos tokens ERC-20

    • Desvantagens dos tokens ERC-20

  • Quais são as diferenças entre ERC-20, ERC-1155, ERC-223 e ERC-721?

  • Resumir


Introdução

Ethereum foi fundada por Vitalik Buterin em 2014 e está posicionada como uma plataforma de código aberto para lançamento de aplicativos descentralizados (DApps). A motivação de Buterin para criar esta nova blockchain resultou em grande parte da falta de flexibilidade no protocolo Bitcoin.

Desde a sua criação, o blockchain Ethereum atraiu muitos desenvolvedores, empresas e empreendedores, gerando uma indústria emergente de contratos inteligentes lançados por usuários e aplicativos distribuídos.

Neste artigo, veremos o padrão ERC-20, que é uma estrutura importante para a criação de tokens. Embora aplicado apenas à rede Ethereum, é a inspiração para outros padrões de blockchain, como o BEP-2 da Binance Chain.


Qual é o padrão ERC-20?

No Ethereum, o nome completo do ERC é Ethereum Request for Comments, que é a solicitação de comentários do Ethereum. Estes documentos técnicos descrevem os padrões de programação do Ethereum. Isso não deve ser confundido com a Proposta de Melhoria do Ethereum (EIP), que é semelhante ao BIP do Bitcoin e é uma proposta de melhorias no próprio protocolo. O objetivo do ERC é estabelecer um protocolo que facilite a interação entre aplicações e contratos.

Desenvolvido e escrito em 2015 por Vitalik Buterin e Fabian Vogelsteller, o ERC-20 propõe outro formato relativamente simples para tokens baseados em Ethereum. Desde que o esboço seja seguido, os desenvolvedores não precisam reinventar a roda e podem desenvolver diretamente o que está acontecendo no setor.

Quando novos tokens ERC-20 são criados, eles interoperam automaticamente com serviços e software que suportam o padrão ERC-20 (carteiras de software, carteiras de hardware, plataformas de negociação, etc.).

É importante notar que o padrão ERC-20 evoluiu para EIP (especificamente EIP-20). Neste momento, vários anos se passaram desde a proposta original amplamente divulgada, mas mesmo depois de vários anos, o nome "ERC-20" permaneceu.


Fatos rápidos sobre o token Ethereum

Ao contrário do ETH (criptomoeda nativa do Ethereum), os tokens ERC-20 não são depositados em uma conta, mas existem apenas dentro do contrato, como um banco de dados independente. Ele especifica as regras para o token (ou seja, nome, símbolo, divisibilidade) e mantém uma lista de endereços Ethereum que mapeiam os saldos dos usuários.

Para transferir tokens, os usuários devem enviar uma transação para um contrato inteligente, solicitando ao contrato que aloque parte do saldo em outro lugar. Por exemplo, se Alice quiser enviar 5.000 tokens da Binance Academy para Bob, ela chamará uma função no contrato inteligente correspondente para executar a instrução.


Users interacting with a smart contract


Sua ligação incluiu uma transação Ethereum aparentemente regular, que pagou 0 ETH ao contrato de token. Essa chamada está incluída entre outros campos da transação e especifica a intenção de Alice – neste caso, ela deseja transferir os tokens para Bob.

Mesmo sem enviar ether, ela deverá pagar uma taxa específica para que a transação seja adicionada ao bloco. Se você não possui ETH, você deve pré-depositar algum ETH antes de transferir seus tokens.

A seguir está um exemplo real no Etherscan: alguém chama um contrato BUSD. Você verá que os tokens foram transferidos e a taxa paga, embora o campo de valor mostre que 0 ETH foi enviado.

A seguir, aceleramos o ritmo e examinamos mais de perto a estrutura típica do contrato ERC-20.


Como são gerados os tokens ERC-20?


Illustration of an ERC-20 token being created


De acordo com o padrão ERC-20, seu contrato deve definir seis funções obrigatórias: totalSupply, balanceOf, transfer, transferFrom, aprovar e subsídio. Além disso, funções opcionais como nome, símbolo e decimal podem ser especificadas. Você pode entender a função com base no nome. Não se preocupe se não entender. Iremos analisá-la um por um a seguir.

A seguir estão as funções apresentadas por meio da linguagem Solidity específica do Ethereum.


fornecimento total

função totalSupply() retornos de visualização pública (uint256)

Após o usuário chamar a função acima, o fornecimento total de tokens mantidos pelo contrato será retornado.


equilíbrio de

função balanceOf (address _owner) retornos de visualização pública (saldo uint256)

Ao contrário do totalSupply, balanceOf usa endereços como parâmetros. Após a chamada, o sistema retorna o token que contém o saldo do endereço. Lembre-se de que as contas na rede Ethereum são públicas e transparentes. Você pode verificar o saldo de qualquer usuário, desde que saiba o endereço.


transferir

transferência de função (endereço _to, uint256 _value) retornos públicos (bool sucesso)

A função de transferência permite que os usuários transfiram tokens entre si. Você precisa fornecer o endereço de recebimento do token e o valor da transferência.

Quando chamado, transfer dispara um evento (o evento “transfer” neste caso) cuja função básica é dizer ao blockchain para conter uma referência a esta função.


transferir de

função transferFrom (endereço _from, endereço _to, uint256 _value) retornos públicos (bool sucesso)

A função transferFrom é uma alternativa conveniente à função de transferência, melhorando efetivamente a programabilidade em aplicações descentralizadas. Semelhante à função de transferência, ela é usada para mover tokens, mas esses tokens não pertencem necessariamente ao usuário que chama o contrato.

Em outras palavras, você pode autorizar outra pessoa ou outro contrato a movimentar fundos em seu nome. Por exemplo, se não quiser pagar manualmente por um serviço de assinatura diariamente/semanalmente/mensalmente, você pode deixar o programa fazer o trabalho para você.

Os eventos acionados por esta função são os mesmos da transferência.


aprovar

função aprovar (endereço _spender, uint256 _value) retornos públicos (bool sucesso)

Do ponto de vista da programação, aprovar é outra função muito útil que limita o número de tokens que um contrato inteligente pode retirar do saldo. Sem ele, os contratos em execução podem tornar-se inválidos (ou explorados) e todos os fundos correm o risco de serem roubados.

Novamente, tome o modelo de assinatura como exemplo. Digamos que você possua uma grande quantidade de tokens da Binance Academy e queira configurar pagamentos semanais recorrentes para seu DApp de streaming. Estou muito ocupado lendo os artigos da Binance Academy para perder tempo criando negociações manualmente todas as semanas.

O grande saldo de tokens da Binance Academy retidos excede em muito as taxas exigidas para pagar a assinatura. Para evitar que o DApp pague todos os ativos, você pode usar a aprovação para definir um limite. Supondo que sua assinatura custe 1 token da Binance Academy por semana, sua assinatura será paga automaticamente ao longo de 5 meses se o limite de aprovação for de 20 tokens.

Se o programa der errado e o DApp tentar sacar todos os fundos, você perderá apenas até 20 tokens. Embora perder seus tokens seja perturbador, o resultado é muito melhor do que perder todos os seus ativos.

Após chamar esta função, aprovar irá acionar o evento de aprovação. Assim como a função de transferência, ela gravará os dados no blockchain.


mesada

subsídio de função (endereço _proprietário, endereço _gastador) retornos de visualização pública (uint256 restante)

subsídio pode ser usado em conjunto com aprovação. Se os direitos de gerenciamento de token forem concedidos ao contrato, você poderá verificar o saldo sacável do token por meio dele. Por exemplo, supondo que o serviço de assinatura use 12 dos 20 tokens aprovados, chamar a função permitir retornará um total de 8 tokens.


Outras funções opcionais

Tudo discutido acima é uma função obrigatória. Por outro lado, nome, símbolo e decimal são funções opcionais, mas podem tornar o ERC-20 mais completo. Essas funções suportam, respectivamente, a adição de um nome legível por humanos, a definição do símbolo (ou seja, ETH, BTC, BNB) e a especificação do número de casas decimais em que o token pode ser dividido. Por exemplo, os tokens utilizados como moeda são mais divisíveis e, portanto, mais benéficos do que os tokens utilizados para representar a propriedade de uma propriedade.


Confira este exemplo no GitHub para ver como esses elementos ficariam em um contrato real.


Quais funções o ERC-20 possui?


Illustration of various uses of ERC-20 tokens


Resumindo todas as funções acima, obtemos um contrato ERC-20. Podemos consultar o fornecimento total, visualizar saldos, transferir fundos e autorizar outros DApps a gerenciar tokens em nosso nome.

A flexibilidade dos tokens ERC-20 é uma enorme vantagem. O acordo estabelecido não limita o desenvolvimento, e cada parte pode lançar outras funções e definir parâmetros específicos de acordo com suas necessidades.


Moeda estável

Stablecoins (tokens atrelados a moedas fiduciárias) normalmente usam o padrão de token ERC-20. A transação de contrato BUSD mencionada acima é um exemplo típico, e a maioria das stablecoins também usa esta forma.

Para stablecoins apoiadas pelas principais moedas fiduciárias, os emissores podem manter reservas em euros, dólares americanos, etc., e depois emitir tokens para cada unidade nas reservas. Isso significa que se US$ 10.000 forem depositados no cofre, o emissor poderá criar 10.000 tokens, cada um valendo US$ 1.

Do ponto de vista técnico, é fácil de implementar no Ethereum. O emissor simplesmente lança um contrato com 10.000 tokens e depois distribui os tokens aos usuários, prometendo que eles poderão trocar os tokens por uma determinada porcentagem de moeda fiduciária no futuro.

Os usuários podem usar seus tokens para realizar uma variedade de ações, incluindo a compra de bens e serviços e a inscrição em DApps. Alternativamente, o emissor pode ser obrigado a resgatar esses tokens imediatamente. Nesse caso, o emissor também pode destruir os tokens devolvidos (deixá-los expirar) e retirar uma quantia equivalente em moeda fiduciária da reserva.

Conforme mencionado anteriormente, os contratos que regem este sistema são relativamente simples. No entanto, o lançamento de uma stablecoin requer atenção a muitos outros fatores externos (como logística, conformidade, etc.) e muito esforço.


Tokens de segurança

Os tokens de segurança são semelhantes aos stablecoins e podem até ser completamente idênticos no nível do contrato porque ambos operam da mesma maneira. A diferença está no emissor: os tokens de segurança representam títulos como ações, títulos ou ativos reais. Geralmente, embora nem sempre, concedem ao titular ações de um negócio ou mercadoria.


token de utilidade

Os tokens utilitários são provavelmente o tipo de token mais comum atualmente. Ao contrário dos dois tokens anteriores, os tokens utilitários não são respaldados por nenhum ativo real. Se as ações das companhias aéreas representam tokens garantidos por ativos, os tokens utilitários são como programas de passageiro frequente: eles têm alguma funcionalidade, mas nenhum valor externo. Os tokens utilitários podem atender a inúmeras necessidades, como ser usado como moeda no jogo, combustível para aplicativos descentralizados e pontos de fidelidade.


➠ Quer começar sua jornada com criptomoedas? Bem-vindo à Binance para comprar Ethereum!


Posso participar da mineração de tokens ERC-20?

Você pode participar da mineração de Ethereum (ETH), mas os tokens não podem ser minerados – chamamos a criação de novos tokens de cunhagem. Depois que o contrato entrar em vigor, os desenvolvedores alocarão o fornecimento de acordo com planos e roteiros,

Isso geralmente é feito por meio de uma oferta inicial de moeda (ICO), uma oferta inicial de troca (IEO) ou uma oferta de token de segurança (STO). Você pode encontrar diversas variações dessas siglas, mas os conceitos são muito semelhantes. Os investidores enviam Ether para o endereço do contrato e recebem novos tokens em troca. Os fundos arrecadados serão usados ​​para financiar o desenvolvimento futuro do projeto. Os usuários esperam poder usar seus tokens (imediatamente ou mais tarde) ou revendê-los com lucro à medida que o projeto cresce.

A emissão de tokens não é necessariamente automatizada. Muitas campanhas de crowdfunding ajudam os usuários a concluir pagamentos usando diversas moedas digitais (como BNB, BTC, ETH e USDT) e depois distribuir o saldo correspondente para o endereço fornecido pelo usuário.


Vantagens e desvantagens dos tokens ERC-20

Vantagens dos tokens ERC-20

Intercambiabilidade

Os tokens ERC-20 são fungíveis e todas as unidades podem ser trocadas entre si. Quando se trata de Tokens da Binance Academy, é o mesmo, independentemente da moeda específica que você possui. Você pode negociar com outras pessoas e os tokens funcionam da mesma forma, semelhante a dinheiro ou ouro.

Isso é ideal se o token que você possui espera se transformar em algum tipo de moeda. Tokens com características distintas perdem a fungibilidade e não atendem às suas necessidades. Isso pode fazer com que certos tokens valham menos ou mais do que tokens semelhantes, anulando o propósito original.


flexível

Conforme discutido no capítulo anterior, os tokens ERC-20 são extremamente personalizáveis ​​e podem adaptar soluções para diferentes aplicações. Os exemplos incluem ser usado como moeda no jogo, pontos de fidelidade para programas, itens colecionáveis ​​digitais ou até mesmo representar obras de arte e propriedade.


O ERC-20 está ganhando popularidade no campo das criptomoedas e o modelo baseado nele é muito convincente. Numerosas exchanges, carteiras e contratos inteligentes são agora compatíveis com vários tokens recém-lançados. Além disso, o suporte e a documentação do desenvolvedor são bastante abrangentes.


Desvantagens dos tokens ERC-20

Má escalabilidade

Este é um problema comum entre muitas redes de criptomoedas e o Ethereum não está imune a ele. Na sua forma atual, não se adapta bem. O envio de transações durante períodos de pico incorre em taxas elevadas e longos atrasos. Se os tokens ERC-20 forem usados ​​e causarem congestionamento na rede, sua disponibilidade também será afetada.

Este não é um problema exclusivo do Ethereum, mas uma compensação que todos os sistemas distribuídos seguros devem fazer. A comunidade planeja resolver esses problemas após migrar para Ethereum 2.0 e implementar atualizações como Ethereum Plasma e Ethereum Casper.

Leia "Escalabilidade do Blockchain: Sidechains e canais de pagamento" para saber mais sobre problemas de escalabilidade.


Fraude

Embora não haja nada de errado com a tecnologia em si, em alguns aspectos, a facilidade de emissão de tokens pode ser uma desvantagem. Os tokens ERC-20 simples são fáceis de criar, o que significa que qualquer pessoa pode fazê-lo, mas com intenções divergentes.

Portanto, você deve investir com cuidado. Existem muitos esquemas de pirâmide e esquemas Ponzi disfarçados de projetos blockchain. Você deve fazer sua própria pesquisa antes de investir para confirmar se a oportunidade de investimento é legítima.

Quais são as diferenças entre ERC-20, ERC-1155, ERC-223 e ERC-721?

O ERC-20 foi o primeiro (e de longe o mais popular) padrão de token Ethereum, mas não é o único. Ao longo dos anos, muitos outros padrões foram desenvolvidos. A maioria deles são padrões ERC-20 aprimorados, outros tentam atingir objetivos completamente diferentes.

Vários padrões incomuns se aplicam a tokens não fungíveis (NFTs). Em alguns casos, tokens exclusivos com propriedades diferentes podem tornar você o beneficiário. Se você deseja tokenizar obras de arte exclusivas, ativos no jogo, etc., um desses tipos de contrato pode ser mais atraente.

Por exemplo, o padrão ERC-721 é usado no muito popular CryptoKitties DApp. Este contrato fornece uma API para os usuários criarem seus próprios tokens não fungíveis e codificarem metadados (imagens, descrições, etc.).

O padrão ERC-1155 pode ser visto como uma melhoria em relação ao ERC-721 e ERC-20. Ele oferece suporte a padrões de tokens fungíveis e não fungíveis em um único contrato.

Outras opções, como ERC-223 ou ERC-621, foram projetadas para melhorar a usabilidade. O primeiro implementa medidas de proteção para evitar transferências acidentais de tokens. Este último fornece funcionalidade adicional para aumentar ou diminuir o fornecimento de tokens.

Para saber mais sobre NFTs, leia o Guia para CryptoCollectibles e Non-Fungible Tokens (NFTs).


Resumir

O padrão ERC-20 tem sido o ator dominante no espaço de criptoativos por muitos anos. As razões são óbvias: o padrão é relativamente simples e qualquer pessoa pode implantar contratos simples para atender a diversas necessidades (tokens utilitários, stablecoins, etc.). No entanto, a ERC-20 carece de algumas características de outras normas, mas resta saber se outros tipos de contrato podem substituir o seu lugar.