• Vou de Cripto
  • Posts
  • #5 Domingo de Conteúdo - Bloco do Conhecimento

#5 Domingo de Conteúdo - Bloco do Conhecimento

Introdução aos Tokens ERC-20

Pega o café que o conteúdo chegou

Uma não tão breve introdução ao ERC-20

Introdução

O Ethereum foi fundado por Vitalik Buterin em 2014, posicionando-se como uma plataforma de código aberto para lançamento de aplicativos descentralizados (DApps). Muitas das motivações de Buterin para criar uma nova blockchain surgiram da falta de flexibilidade do protocolo Bitcoin.

Desde o seu lançamento, a blockchain do Ethereum atraiu desenvolvedores, empresas e empreendedores, gerando uma indústria crescente de usuários lançando contratos inteligentes e aplicativos distribuídos.

Neste artigo, vamos explorar o padrão ERC-20, um framework importante para a criação de tokens. Embora seja específico para a rede Ethereum, o framework também inspirou outros padrões de blockchain, como o BEP-2 da Binance Chain.

O que é o padrão ERC-20?

No Ethereum, um ERC é uma Requisição de Comentários Ethereum. São documentos técnicos que delineiam padrões para programação no Ethereum. Não devem ser confundidos com Propostas de Melhoria do Ethereum (EIPs), que, assim como as BIPs do Bitcoin, sugerem melhorias no protocolo em si. Os ERCs têm como objetivo estabelecer convenções que facilitam a interação entre aplicativos e contratos.

Desenvolvido por Vitalik Buterin e Fabian Vogelsteller em 2015, o ERC-20 propõe um formato relativamente simples para tokens baseados em Ethereum. Ao seguir o esboço, os desenvolvedores não precisam reinventar a roda. Em vez disso, podem construir sobre uma base já utilizada na indústria.

Uma vez que novos tokens ERC-20 são criados, eles são automaticamente interoperáveis com serviços e softwares que suportam o padrão ERC-20 (carteiras de software, carteiras de hardware, exchanges, etc.).

É importante notar que o padrão ERC-20 foi desenvolvido para uma Proposta de Melhoria do Ethereum (EIP-20). Isso ocorreu alguns anos após a proposta original devido ao seu amplo uso. No entanto, mesmo anos depois, o nome "ERC-20" permanece.

Breve resumo sobre tokens Ethereum

Ao contrário do ETH (criptomoeda nativa do Ethereum), os tokens ERC-20 não são mantidos por contas. Os tokens existem apenas dentro de um contrato, que é como um banco de dados autocontido. Ele especifica as regras para os tokens (ou seja, nome, símbolo, divisibilidade) e mantém uma lista que mapeia os saldos dos usuários para seus endereços Ethereum.

Para mover tokens, os usuários devem enviar uma transação para o contrato, pedindo que aloque parte de seu saldo para outro lugar. Por exemplo, se quisermos enviar 1000 tokens para outra pessoa, devemos chamar uma função dentro do protocolo permitindo essa transação.

A chamada dela está contida dentro do que parece ser uma transação regular do Ethereum que paga 0 ETH para o contrato do token. A chamada está incluída em um campo adicional na transação, que especifica o que queremos fazer - enviar tokens de uma carteira a outra.

Mesmo que a nossa transação não occora em ether, ainda precisamos pagar uma taxa denominada em ether para que esse processo seja incluido em um bloco.

Agora que estamos atualizados, vamos dar uma olhada por baixo do capô para entender melhor a estrutura de um contrato ERC-20 típico.

Como os tokens ERC-20 são criados?

Para ser compatível com o ERC-20, seu contrato precisa incluir seis funções obrigatórias:

TotalSupply: retorna o fornecimento total de tokens que o contrato possui.

BalanceOf: Ao contrário de totalSupply, balanceOf recebe um parâmetro (um endereço). Quando chamada, ela retorna o saldo das holdings de tokens desse endereço.

Transfer: A função transfer transfere adequadamente tokens de um usuário para outro. Aqui, você fornece o endereço para o qual deseja enviar e a quantidade a ser transferida.

TransferFrom: A função transferFrom é uma alternativa útil ao transfer que permite um pouco mais de programabilidade em aplicativos descentralizados. Como transfer, é usada para mover tokens, mas esses tokens não precisam necessariamente pertencer à pessoa que chama o contrato.

Em outras palavras, você pode autorizar alguém - ou outro contrato - a transferir fundos em seu nome. Um caso de uso possível envolve o pagamento por serviços baseados em assinatura, onde você não quer enviar manualmente um pagamento todos os dias/semanas/meses. Em vez disso, você deixa um programa fazer isso por você.

Approve: approve é outra função útil do ponto de vista da programabilidade. Com essa função, você pode limitar o número de tokens que um contrato inteligente pode retirar do seu saldo. Sem isso, você corre o risco de o contrato falhar (ou ser explorado) e roubar todos os seus fundos.

Permissão

O allowance (Permissão)pode ser usado em conjunto com o approve Quando você deu permissão a um contrato para gerenciar seus tokens, pode usar isso para verificar quantos ainda pode retirar. Por exemplo, se sua assinatura usou doze dos seus vinte tokens aprovados, chamar a função allowance deve retornar um total de oito.

Funções opcionais As funções discutidas anteriormente são obrigatórias. Por outro lado, name, symbol e decimal não precisam ser incluídos, mas podem tornar seu contrato ERC-20 um pouco mais elegante. Respectivamente, elas permitem adicionar um nome legível, definir um símbolo (por exemplo, ETH, BTC, BNB) e especificar quantos lugares decimais os tokens podem ser divididos. Por exemplo, tokens usados como moedas podem se beneficiar mais de serem mais divisíveis do que um token que representa a propriedade de um imóvel.

O que os tokens ERC-20 podem fazer?

Agrupando todas as funções acima, temos um contrato ERC-20. Podemos consultar o fornecimento total, verificar saldos, transferir fundos e dar permissões a outros DApps para gerenciar tokens por nós.

Grande parte do apelo dos tokens ERC-20 é sua flexibilidade. As convenções estabelecidas não restringem o desenvolvimento, então as partes podem implementar recursos adicionais e definir parâmetros específicos para atender às suas necessidades.

Stablecoins As stablecoins (tokens vinculados a moedas fiduciárias) frequentemente usam o padrão de token ERC-20. A transação para o contrato do BUSD que mencionamos anteriormente é um exemplo, e a maioria das principais stablecoins também está disponível neste formato.

Para uma stablecoin típica lastreada em moeda fiduciária, um emissor mantém reservas de euros, dólares, etc. Em seguida, para cada unidade em sua reserva, eles emitem um token. Isso significa que se $10.000 estiverem guardados em um cofre, o emissor pode criar 10.000 tokens, cada um resgatável por $1.

Isso é bastante fácil de implementar no Ethereum, tecnicamente falando. Um emissor simplesmente lança um contrato com 10.000 tokens. Em seguida, distribuirá esses tokens aos usuários com a promessa de que podem mais tarde resgatar os tokens por uma quantia proporcional de moeda fiduciária.

Os usuários podem fazer várias coisas com seus tokens - podem comprar bens e serviços ou usá-los em DApps. Alternativamente, podem solicitar que o emissor os troque imediatamente. Nesse caso, o emissor queima os tokens devolvidos (tornando-os inutilizáveis) e retira a quantia correta de moeda fiduciária de suas reservas.

O contrato que governa esse sistema, como mencionado anteriormente, é relativamente simples. No entanto, lançar uma stablecoin requer muito trabalho em fatores externos, como logística, conformidade regulatória, etc.

Tokens de segurança Tokens de segurança são semelhantes às stablecoins. No nível do contrato, ambos podem até ser idênticos, pois funcionam da mesma maneira. A distinção ocorre no nível do emissor. Tokens de segurança representam valores mobiliários, como ações, títulos ou ativos físicos. Muitas vezes (embora nem sempre), concedem ao titular algum tipo de participação em um negócio ou bem.

Tokens de utilidade Tokens de utilidade são talvez os tipos mais comuns de tokens encontrados hoje. Ao contrário dos dois anteriores, não são lastreados em nada. Se os tokens lastreados em ativos são como ações em uma companhia aérea, então os tokens de utilidade são como programas de milhagem: eles têm uma função, mas não têm valor externo. Tokens de utilidade podem atender a uma infinidade de casos de uso, servindo como moeda em jogos, combustível para aplicativos descentralizados, pontos de fidelidade e muito mais.

É possível minerar tokens ERC-20?

Você pode minerar ether (ETH), mas tokens não podem ser minerados - dizemos que eles são criados quando novos são criados. Quando um contrato é lançado, os desenvolvedores distribuem o fornecimento de acordo com seus planos e roadmap.

Normalmente, isso é feito por meio de uma Oferta Inicial de Moedas (ICO), Oferta Inicial de Câmbio (IEO) ou Oferta de Token de Segurança (STO). Você pode encontrar variações desses acrônimos, mas esses conceitos são bastante semelhantes. Os investidores enviam ether para o endereço do contrato e, em troca, recebem novos tokens. O dinheiro arrecadado é usado para financiar o desenvolvimento contínuo do projeto. Os usuários esperam poder usar seus tokens (seja imediatamente ou em uma data posterior) ou revendê-los com lucro à medida que o projeto se desenvolve.

A distribuição de tokens não precisa ser automatizada. Muitos eventos de financiamento coletivo permitem que os usuários paguem com diferentes moedas digitais (como BNB, BTC, ETH e USDT). Os saldos respectivos são então alocados aos endereços fornecidos pelos usuários.

Prós e contras dos tokens ERC-20

Prós dos tokens ERC-20 Fungíveis Os tokens ERC-20 são fungíveis - cada unidade é intercambiável com outra. Se você tivesse um BinanceAcademyToken, não importaria qual token específico você tivesse. Você poderia trocá-lo pelo de outra pessoa, e eles ainda seriam funcionalmente idênticos, assim como dinheiro ou ouro.

Isso é ideal se o seu token tem como objetivo ser uma moeda de alguma forma. Você não desejaria unidades individuais com características distinguíveis, o que as tornaria não fungíveis. Isso poderia fazer com que alguns tokens se tornassem mais - ou menos - valiosos do que outros, minando seu propósito.

Flexíveis Como exploramos na seção anterior, os tokens ERC-20 são altamente personalizáveis e podem ser adaptados a muitas aplicações diferentes. Por exemplo, eles podem ser usados como moeda em jogos, em programas de pontos de fidelidade, como colecionáveis digitais ou até para representar obras de arte e direitos de propriedade.

Populares A popularidade do ERC-20 na indústria de criptomoedas é uma razão altamente convincente para usá-lo como modelo. Há uma infinidade de exchanges, carteiras e contratos inteligentes já compatíveis com tokens recém-lançados. Além disso, o suporte e a documentação dos desenvolvedores são abundantes.

Contras dos tokens ERC-20 Escalabilidade Assim como muitas redes de criptomoedas, o Ethereum não está imune a dores de crescimento. Em sua forma atual, não dimensiona bem - tentar enviar uma transação nos horários de pico resulta em altas taxas e atrasos. Se você lançar um token ERC-20 e a rede ficar congestionada, sua usabilidade pode ser afetada.

Isso não é um problema exclusivo do Ethereum. Em vez disso, é um trade-off necessário em sistemas seguros e distribuídos. A comunidade planeja resolver esses problemas na migração para o Ethereum 2.0, que implementará atualizações como o Ethereum Plasma e o Ethereum Casper.

ERC-20, ERC-1155, ERC-223, ERC-721 - qual é a diferença?

O ERC-20 foi o primeiro (e até agora o mais popular) padrão de token Ethereum, mas de maneira alguma é o único. Ao longo dos anos, muitos outros surgiram, propondo melhorias no ERC-20 ou tentando atingir objetivos diferentes.

Alguns padrões menos comuns são aqueles usados em tokens não fungíveis (NFTs). Às vezes, seu caso de uso realmente se beneficia de ter tokens únicos com atributos diferentes. Se você quisesse tokenizar uma obra de arte única, um ativo de jogo, etc., um desses tipos de contrato pode ser mais atraente.

O padrão ERC-721, por exemplo, foi usado no extremamente popular DApp CryptoKitties. Um contrato assim 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 tanto no ERC-721 quanto no ERC-20. Ele esboça um padrão que suporta tanto tokens fungíveis quanto não fungíveis no mesmo contrato.

Outras opções como ERC-223 ou ERC-621 visam melhorar a usabilidade. O primeiro implementa salvaguardas para evitar transferências acidentais de tokens. O último adiciona funções extras para aumentar e diminuir o fornecimento de tokens.

O padrão ERC-20 tem dominado o espaço de ativos cripto por anos, e não é difícil entender o porquê. Com relativa facilidade, qualquer pessoa pode implantar um contrato simples para atender a uma ampla gama de casos de uso (tokens de utilidade, stablecoins, etc.). Dito isso, o ERC-20 carece de algumas das características trazidas à vida por outros padrões. Resta saber se tipos subsequentes de contratos assumirão seu lugar.

Espero que tenha gostado de mais um domingo de conteúdo, se você já faz parte da comunidade, vai aproveitar o carnaval tranquilo e com $$ no Bolso, se você ainda não faz parte, clica aqui embaixo pra saber mais!.

8