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

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

A numeração atual é de 82815 no momento desta publicação, 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, é descrito como um "protocolo de código aberto para a indústria do entretenimento digital". Ele 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.

O ERC-20 tem algum defeito?

Nem o ERC-20 não é perfeito.

Existem alguns problemas que os padrões de token 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 já 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 exchanges suspenderam depósitos e saques de tokens baseados em Ethereum devido ao bug batchOverflow. Ele é descrito como um "problema clássico do estouro do número inteiro" e pode permitir que um invasor "apodere-se de uma enorme quantidade de tokens".

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

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

Basicamente, ele torna tudo mais simples.

Antes dos tokens ERC-20, os desenvolvedores podiam usar outras terminologias no código.

Por exemplo - um token usa [totalAmount] enquanto outro usa [totalNumber].

Exchanges 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 exchange ou transferidos para uma carteira automaticamente, logo depois de criados.

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.

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 caso não haja tokens suficientes.

Não trabalhamos com créditos em nosso "cassino cripto", 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.

Existe alguma maneira de se criar um token falso?

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

Certifique-se de que não há nada a mais nem a menos.

Outra forma de salvaguardar a integridade do nosso hipotético jogo de pôquer é garantir que ninguém tenha trazido BLUs a mais para a mesa. Então, a função [approve] autoriza a mudança de mãos das fichas, verificando se o número total de BLU na tabela é igual a 10.

Is there any way to make a counterfeit token?

Como posso receber tokens ERC-20 de outros usuários?

É a função [transferFrom] que permite que um usuário transfira tokens para outro usuário.

Boas notícias! Você venceu a primeira mão e ganhou 2,5 BLU dos outros jogadores.

Mas para pegar suas fichas isso deles, você precisa da [transferFrom]. Sem isso, o que impede alguém de roubar seu BLU?

How can I get ERC-20 tokens from other users?

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 a sua conta.

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

What does the function [balanceOf] do?

E a [transfer]?

A [transfer] permite que um determinado número de tokens seja transferido do montante 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]?

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

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

A primeira coisa que nosso cassino precisa saber é o 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]?

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".

É muito importante que os desenvolvedores as sigam.

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 de 1 o mínimo de BLU ou aumentar o decimal para 18 resultando em .000000000000000001 BLU a menor divisão possível, mas vamos ficar na opção mais simples.

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. Ela permite que um token seja negociado com outro.

Vamos supor que queiramos fazer um cassino cripto. Assim como em um cassino tradicional, queremos que nossos jogadores usem nossas fichas, para simplificar.

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

Onde os contratos inteligentes entram 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?

Em primeiro lugar, o que é Ethereum?

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

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

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

Dependendo de seu propósito, os DAPPs podem criar tokens ERC-20 para funcionar como moeda, participação numa 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.

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 de criptomoeda.

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 dar um passo atrás.