Tokens ERC-20, Explicado

Tokens ERC-20, Explicado

Cointelegraph

1.

O que são tokens ERC-20?

Tokens ERC-20 são tokens projetados e usados somente na plataforma Ethereum.

Eles seguem uma lista de padrões para que possam ser compartilhados, trocados por outros tokens ou transferidos para uma carteira cripto.

A comunidade Ethereum criou esses padrões com três regras opcionais e seis obrigatórias.

Opcionais

  • Nome do Token
  • Símbolo
  • Decimal (até 18)

Obrigatórias

  • totalSupply
  • balanceOf
  • transfer
  • transferFrom
  • approve
  • allowance

Confuso? Vamos voltar um pouco.

2.

Em primeiro lugar, o que é Ethereum?

Ethereum é uma rede descentralizada de computadores com duas funções básicas.

São elas: blockchain que pode gravar transações e uma máquina virtual que pode produzir contratos inteligentes.

Por causa dessas duas funções, o Ethereum é capaz de suportar aplicativos descentralizados (DApps). Esses DApps são construídos sobre o blockchain existente do Ethereum, pegando carona de sua tecnologia subjacente. Em troca, o Ethereum cobra dos desenvolvedores pelo poder de computação em sua rede, que só pode ser pago em Ether, a única moeda entre as plataformas.

Dependendo de seu propósito, os DAPPs podem criar tokens ERC-20 para funcionar como moeda, participação na empresa, pontos em um programa de fidelidade ou até mesmo comprovante de propriedade, digamos, de uma quantia de ouro ou da escritura em uma casa.

3.

Onde os contratos inteligentes se encaixam nisso tudo?

Contratos inteligentes são usados para criar tokens ERC-20.

Eles também são usados para facilitar transações de tokens e registrar saldos de tokens em uma conta.

Os contratos inteligentes são escritos na linguagem de programação "Solidity" com base na lógica If-This-Then-That (IFTTT - Se-Isso-Então-Aquilo, em tradução livre).

Pense nisso como uma máquina de venda automática.

Where do smart contracts fit into all this?

4.

O que acontece depois que um contrato inteligente cria um token?

É aqui que entra o ERC-20.

Depois que um token é criado, ele pode ser negociado, gasto ou dado a outra pessoa.

O ERC-20 é a linguagem universal usada por todos os tokens da rede Ethereum. Permite que um token seja negociado com outro.

Imaginemos que queiramos fazer um cassino cripto. Assim como em um cassino tradicional, queremos que nossos jogadores usem nossos chips, para simplificar.

Assim, um jogador troca seu fiduciário pelos nossos tokens e dirige-se a uma mesa de pôquer.

5.

Peguei a analogia, mas como exatamente tudo isso funcionaria?

Vamos dar uma olhada em cada uma das regras do ERC-20 em nosso exemplo de "cassino cripto".

Eles são muito importantes para os desenvolvedores seguirem.

Vamos começar com as regras opcionais:

Nome do Token: Chip Blu

Símbolo: BLU

Decimal: 2*

*Queremos que nossos tokens sejam divisíveis, de modo que uma aposta mínima de jogadores seja 0,01 BLU. Poderíamos deixar o decimal em 0 e fazer 1 mínimo de BLU ou aumentar o decimal para 18 resultando em .000000000000000001 BLU a menor divisão possível, mas vamos manter tudo isso simples.

 
6.

Agora, as regras obrigatórias: o que é [totalSupply]?

[totalSupply] identifies the total number of ERC-20 tokens created.

[totalSupply] identifica o número total de tokens ERC-20 criados.

A primeira coisa que o nosso cassino precisa ter é um total de quantos tokens BLU estão em circulação. Digamos que nossa mesa de pôquer tenha um total de 10 BLUs com dez jogadores.

Now to the mandatory rules: what is [totalSupply]?

7.

E a [transfer]?

A [transfer] permite que um determinado número de tokens seja transferido do fornecimento total para uma conta de usuário.

Antes do início do jogo, os jogadores devem receber o BLU do crupiê.

Cada jogador recebe 1 BLU.

What about [transfer]?

8.

O que a função [balanceOf] faz?

Quando a função [balanceOf] é executada, retorna o número de tokens que um determinado endereço possui em sua conta.

Na primeira mão do nosso jogo de pôquer, 5 dos jogadores olharam para suas cartas e decidiram não jogar. Cada um dos 5 restantes decidiu apostar 0,5 BLU. Usando [balanceOf], vemos que cinco dos jogadores têm 1 BLU e 5 têm 0,5 BLU.

What does the function [balanceOf] do?

9.

10.

Existe alguma maneira de criar um token falso?

Não mesmo, porque o [approve] verifica uma transação contra o fornecimento total de tokens.

Certifique-se de que não há nenhum ausente ou extra.

Outra forma de salvaguardar a integridade do nosso hipotético jogo de pôquer é garantir que ninguém tenha levado o BLU à mesa. Então, o [approve] permite a troca, verificar se o número total de BLU na tabela é igual a 10.

Is there any way to make a counterfeit token?

11.

Posso mentir e dizer que tenho mais tokens do que realmente tenho?

Não!

Antes de uma transação ocorrer, a função [allowance] verifica o saldo da conta do usuário e cancela a transação se não houver tokens suficientes.

Não permitimos (allow) créditos em nosso "cripto cassino", por isso, precisamos garantir que cada jogador tenha BLU suficiente para fazer a aposta. Se eles tiverem apenas 1 BLU, eles não poderão apostar 2 BLU.

12.

Quais são os benefícios do ERC-20?

Basicamente, isso torna tudo mais simples.

Antes dos tokens ERC-20, os desenvolvedores podem usar outras terminologias no código - por exemplo,

um token usa [totalAmount] enquanto outro usa [totalNumber].

Casas de câmbio e carteiras necessárias para construir suas plataformas para acomodar cada  código de um token.

Com um padrão universal, novos tokens podem ser colocados em uma casa ou transferidos para uma carteira automaticamente, depois de criada.

O ERC-20 também torna a criação de novos tokens extremamente fácil, e é por isso que o Ethereum se tornou a plataforma mais popular para ICO em 2017.

13.

Há algum problema no ERC-20?

O ERC-20 não é perfeito.

Existem alguns problemas que os padrões de token do ERC-20 não abordam.

Há situações em que os tokens podem ser destruídos acidentalmente quando são usados como pagamento por um contrato inteligente, em vez de usar o Ether. Estima-se que US $ 3 milhões foram perdidos por causa disso.

Para corrigir esse bug, a comunidade Ethereum está atualmente trabalhando em um novo padrão chamado ERC-223. Esses padrões não são compatíveis com o ERC-20, portanto, os desenvolvedores são incentivados a continuar usando o ERC-20 até que a compatibilidade seja realizada.

Em abril de 2018, várias casas de câmbio suspenderam depósitos e saques de tokens baseados no Ethereum devido ao bug batchOverflow. Ele é descrito como um "problema do estouro do inteiro clássico" e pode permitir que um invasor "possua uma enorme quantidade de tokens".

Foi observado que não há uma abordagem de segurança tradicional para corrigir essas vulnerabilidades no momento.

14.

Chega de hipóteses, quero um exemplo no mundo real

Cada token na plataforma Ethereum é um token ERC-20.

É a numeração 82815 no momento do texto, vamos dar uma olhada em alguns deles.

EOS (EOS), atualmente a 5ª maior criptomoeda, com quase US $ 12 bilhões em valor de mercado, está tentando construir uma rede que pode utilizar comunicação interblockchain e o TRON (TRX) que ocupa a 10ª posição entre as criptomoedas no momento do texto e é descrito como um "protocolo de código aberto para a indústria do entretenimento digital". Tem como objetivo lançar uma plataforma de conteúdo com ecossistema conectando todas as pessoas criando diferentes tipos de conteúdo.

Uma "plataforma blockchain pública de nível empresarial", o VeChain (VEN), a 15ª criptomoeda em termos de capitalização de mercado, está planejando implementar a tecnologia da Internet das Coisas (IoT) para fornecer chaves privadas para que cada produto permita rastreá-las.