Entendendo o Desenvolvimento da Criptomoeda

Um token básico é apenas uma tabela e quatro métodos.

Alberto Cuesta Cañada em HackerNoon.com Segue 8 de jul · 6 min ler Foto de David McBee da Pexels

“Quanto mais você lê, mais coisas você vai saber. Quanto mais você aprende, mais lugares você vai. ”- Dr. Seuss

Um fato que a maioria dos líderes empresariais não sabe é que o desenvolvimento de uma criptomoeda no Ethereum é surpreendentemente simples. Os desenvolvedores descobrem isso assim que mergulham na codificação de contratos inteligentes. Para aqueles sem a confiança de codificar, as criptomoedas permanecem misteriosas e complicadas.

Parte do meu trabalho como arquiteto-chefe da TechHQ é ensinar aos CEOs sobre a tecnologia blockchain em termos que eles entendem para que possamos projetar a tecnologia em seus processos de negócios. Costumo vê-los presumindo que as criptomoedas são muito complicadas para eles entenderem.

Neste artigo, vou explicar quais cryptocurrencies e tokens estão com um público de negócios em mente. Também mostrarei o código, já que a maioria dos desenvolvedores não se sente menos intimidada quando vêem que o código para uma criptografia se encaixa em uma página.

Um fato que a maioria dos líderes empresariais não sabe é que o desenvolvimento de uma criptomoeda no Ethereum é surpreendentemente simples.

Observe que este artigo se refere a criptomoedas e tokens no Ethereum e, em certa medida, a outros computadores distribuídos, como o Hyperledger. Uma criptomoeda executada em seu próprio blockchain dedicado, como o Bitcoin, é muito mais complexa de se desenvolver.

Você está pronto? Segure minha mão e entre no buraco do coelho …

Criptomoedas

Todo mundo ouve primeiro sobre o termo ERC20 ao pesquisar criptomoedas. O ERC é um rótulo no repositório do Ethereum GitHub que significa que alguém quer feedback formal sobre algo. Nos primeiros dias da Ethereum alguém queria feedback para uma especificação de criptomoeda e recebeu o rótulo ERC20 . É assim que a história é feita frequentemente, sem muita reflexão.

Por favor, dê uma olhada na implementação do ERC20 do OpenZeppelin . Esse contrato é a base para a maioria das criptomoedas lá fora. Não se preocupe se você não entender muito do código. Preste atenção ao fato de que ele possui apenas 228 linhas de código e, desses dois terços, são comentários. Não pode ser tão complicado.

Você poderia implantar o contrato do ERC20 como está e teria uma criptomoeda. Muito provavelmente, você deseja adicionar algumas funcionalidades, como um símbolo de token e decimais , ou transferir restrições , ou interromper as transferências para contas inválidas . Todas essas variações são apenas especificações para adicionar mais métodos a um contrato ERC20 . Eles não são tão diferentes entre eles.

Você poderia implantar o contrato do CER20 como está e teria uma criptomoeda.

Se você precisar adicionar funcionalidades a uma criptomoeda, não precisará vasculhar a internet em busca de algum token ERC que faça o que você deseja. Criptomoedas são aplicativos de software e muito simples. Se você precisar rastrear quem são os detentores de seu token, por exemplo, basta adicionar uma estrutura de dados à criptomoeda que armazena essas informações e atualizá-las quando necessário. Você pode inventar coisas. Enlouquecer.

Para recapitular, uma criptomoeda no Ethereum é:

  • Um aplicativo de software simples
  • que pode estar seguindo alguns padrões
  • provavelmente incluindo ERC20
  • e provavelmente com algum código personalizado.

Na próxima seção, vamos entrar no código para dividi-lo ainda mais. Vamos nos livrar de uma complexidade ainda maior para chegar ao núcleo muito simples do que é um token.

A criptomoeda mais simples da cidade

A implementação do ERC20 do OpenZeppelin possui três variáveis de contrato e 13 métodos. Variáveis de contrato são os dados armazenados no contrato. Os métodos são o que o contrato pode fazer com variáveis de contrato e dados que são transmitidos de fora.

Considere o contrato como um aplicativo que é executado na nuvem, onde você pode ativar seus métodos, mas nada mais. O contrato fica lá esperando por alguém para pedir algo e depois retorna um valor ou atualiza suas variáveis de contrato.

Para codificar uma criptomoeda bem simples eu vou pegar algumas coisas do ERC20 e vou descartar o resto.

Vou manter no meu contrato um livro para saldos. Na minha criptomoeda, cada endereço está relacionado a um determinado valor. Em outras palavras, cada conta contém alguns tokens.

Eu só vou implementar quatro métodos para verificar saldos, criar tokens, destruir tokens e transferir tokens. Com essa funcionalidade, tenho uma criptomoeda que posso usar para pagamentos. O contrato inteiro está abaixo:

 contrato Cryptocurrency { 
mapeamento (endereço => uint256) private _balances;
// Retorna a quantidade de tokens retidos por uma conta.
function balanceOf (conta de endereço)
retornos de exibição pública (uint256)
{
return _balances [conta];
}
// Move uma quantidade de tokens de um remetente para um destinatário.
transferência de função (endereço enviar, endereço recv, quantidade uint256)
interno
{
_balanças [enviar] = _balanças [enviar] - quantia;
_balanças [recv] = _balanças [recv] + quantia;
}
// Cria uma quantidade de tokens e os atribui a uma conta.
função mint (conta de endereço, quantidade uint256)
interno
{
_balanças [conta] = _balanças [conta] + quantia;
}
// Destrói uma quantidade de tokens de uma conta.
queima de função (conta de endereço, quantidade uint256)
interno
{
_balanças [conta] = _balanças [conta] - quantia;
}
}

Uma criptomoeda no Ethereum pode ser tão simples quanto uma estrutura de dados com o saldo de cada conta e algumas funções para gerenciar esses saldos.

Agora que você sabe o que é uma criptomoeda, pode começar a adicionar mais funcionalidades de acordo com seus modelos de negócios. Pelo menos você deve implementar o padrão ERC20 e usar o SafeMath , o contrato acima é para fins educacionais.

Tokens

Eu gosto de usar criptomoeda e token como dois termos diferentes. Eu gosto de dizer que um token é algo que você pode ter, e uma criptomoeda que você pode ter e usar para pagar as coisas.

Um exemplo de um token que não é uma criptomoeda é o contrato implementado com o padrão ERC721 . Isso é o que você ouve quando as pessoas falam sobre tokenização. O objetivo do padrão ERC721 é que cada um de seus tokens represente um ativo físico no blockchain.

Em termos técnicos, substitui o ledger de saldos do ERC20 por uma tabela que registra quem é o titular de cada token individual:

 mapeamento (uint256 => endereço) private _tokenOwner; 

Com esse token, em vez de dizer que Bob tem 100 tokens, eu diria que Bob tem tokens # 100, # 42 e # 1337, por exemplo. Os quatro métodos descritos para o ERC20 mudam um pouco, mas em essência essa é a diferença entre um contrato de criptomoeda ERC20 e um contrato de token ERC721 .

Até agora você viu que cryptocurrencies e tokens são uma tabela com alguns métodos para manipular os dados. A descrição de um token é muito flexível e há muitas coisas que você pode descrever como tokens.

Quando desenho uma solução, posso criar o hábito de criar muitos tokens diferentes. É fácil de fazer, pois são apenas tabelas que ligam os usuários a algo que eles têm. Usarei os padrões ERC quando eles se encaixam bem, mas geralmente codifico meus contratos de token do zero.

A descrição de um token é muito flexível e há muitas coisas que você pode descrever como tokens.

Um token para pagamentos, outro para direitos de voto, outro para ativos de algum tipo e assim por diante. A equipe de marketing sempre protesta – uma solução com quatro tokens é muito complexa para ser vendida! Eles estão certos. Estou dificultando a vida deles.

A correção é muito simples. Se um design de software tiver muitos tokens, removo o token da palavra da descrição. Eu terei direitos de voto, chaves de ativos, identificadores de usuário ou qualquer outro nome que eu possa usar que não use o token de palavra e não chame a atenção. Todo mundo está feliz. Um token é apenas uma tabela e alguns métodos.

Conclusão

A tecnologia que torna as criptomoedas possíveis é complexa. O código que cria uma criptomoeda com essas ferramentas não é. Os líderes de negócios no espaço blockchain fariam bem em tentar entender os fundamentos das criptomoedas e tokens. Romper com a aparente complexidade os ajudará a levar suas idéias de negócios para a equipe de desenvolvimento .

Neste artigo, dividi o conceito de criptocorrências e tokens em seu mínimo, até menos do que o conhecido padrão ERC20 por trás da maioria dos aplicativos blockchain. A partir desse ponto de partida mínimo, mostrei que criptomoedas e tokens são muito simples no núcleo, antes que a funcionalidade de negócios seja adicionada.

Você tem uma ideia para uma solução blockchain? Você conhece o seu negócio, mas luta para encontrar um tecnólogo que fale sua língua. Por favor, não hesite em contactar-me , eu amo trazer negócios e tecnologia juntos.