Imagem da matéria: O que eu descobri explorando o código do real digital | Opinião
Foto: Shutterstock

O Banco Central do Brasil lançou recentemente o chamado “kit onboarding”, um repositório no GitHub (um site usado por programadores para compartilhar códigos) que contém informações sobre os contratos inteligentes do Real Digital e algumas instruções sobre como executar um nó para participar da rede.

Também foram fornecidas nesse repositório as interfaces desses contratos. No entanto, infelizmente, o código-fonte em si não foi disponibilizado pelo Banco Central. Foi nesse ponto que decidi replicar os contratos com base nas definições apresentadas logo no segundo dia após a publicação pelo BC.

Publicidade

Uma das primeiras observações que fiz foi o uso de uma blockchain privada chamada Besu, o que me leva a crer que essa solução está aproveitando a onda das criptomoedas, uma vez que um banco de dados tradicional, muito mais barato para as finanças do governo, já resolveria para uma CBDC. Apesar dessa observação, o uso da blockchain Besu permite aos desenvolvedores ter acesso à implementação de contratos inteligentes na linguagem Solidity, que é atualmente a linguagem mais amplamente aceita para a construção de smart contracts.

Análise das interfaces

Ao analisar as interfaces, conseguimos criar um contrato “dummy”, ou seja, um contrato que não faz nada, mas possui a mesma interface apresentada pelo Banco Central. Como meu objetivo era obter um contrato que pelo menos se assemelhasse ao que o Real Digital será quando o Banco Central divulgar o código-fonte, decidi criar esse contrato.

Para não me alongar muito neste artigo, vou limitar minha explicação à funcionalidade dos dois principais contratos usados nesse projeto do Banco Central: CBDC Access Control  e Real Digital. No final do artigo você pode conferir no link do meu GitHub todos os outros contratos.

CBDC Access Control

O contrato `CBDCAccessControl` é responsável pela camada de controle de acesso para o token Real Digital e outros contratos que funcionarão em conjunto com ele. Ele define diferentes funções e atribui “roles” (papéis) a certos endereços para controlar quem pode executar determinadas ações no contrato.

Publicidade

As principais funcionalidades do contrato são:

  1. Determinar quais carteiras podem enviar/receber tokens.
  2. Controlar os papéis de qual endereço pode emitir/resgatar/congelar saldo de uma carteira.

A implementação dessas funcionalidades é feita através do uso de “roles” definidos no contrato. Cada “role” representa um conjunto específico de permissões relacionadas a uma ação específica. Aqui estão os “roles” definidos no contrato:

  • `PAUSER_ROLE`: Permite pausar o contrato.
  • `MINTER_ROLE`: Permite fazer o `mint` (emissão) de tokens nos contratos do token.
  • `ACCESS_ROLE`: Permite habilitar um endereço para receber o token.
  • `MOVER_ROLE`: Permite acesso à função `move`, ou seja, transferir o token de outra carteira.
  • `BURNER_ROLE`: Permite acesso à função `burn`, que destrói tokens.
  • `FREEZER_ROLE`: Permite bloquear o saldo de uma carteira, por exemplo, para realizar um swap de dois passos.

Esses “roles” são atribuídos a endereços específicos dentro do contrato. Cada endereço pode ter um ou mais “roles” atribuídos a ele, dependendo das permissões necessárias.

Além dos “roles”, o contrato também possui funções como `enableAccount`, `disableAccount` e `verifyAccount`. Essas funções permitem habilitar ou desabilitar uma carteira para receber o token e verificar se uma carteira está autorizada a receber o token.

No geral, o contrato `CBDCAccessControl` fornece um mecanismo para controlar o acesso e as permissões relacionadas ao token Real Digital. Ele garante que apenas endereços com os “roles” apropriados possam executar certas ações, como emitir, transferir, queimar e bloquear tokens.

Publicidade

Sobre o autor

Gustavo Toledo é o fundador da startup Coinsamba, especialista em smart contracts e colaborador ativo de projetos open-source. Com vasta experiência junto às blockchains Dash e Celo, ele lidera projetos na área web3.

VOCÊ PODE GOSTAR
Imagem da matéria: Trump deve publicar ordem executiva sobre criptomoedas no dia da posse

Trump deve publicar ordem executiva sobre criptomoedas no dia da posse

Trump provavelmente dará continuidade a uma ordem executiva inicial sobre criptoativos com várias diretrizes mais elaboradas que afetam a CFTC, a SEC e o Departamento de Estado
Imagem da matéria: Rússia começa a vender R$ 585 milhões em Bitcoin apreendidos no maior caso de suborno do país

Rússia começa a vender R$ 585 milhões em Bitcoin apreendidos no maior caso de suborno do país

Montante de mais de mil unidades de Bitcoin foi apreendido com investigador que aceitou suborno para deixar de investigar hackers
Imagem da matéria: Maior corretora de criptomoedas da Coreia do Sul pode receber sanção severa do governo

Maior corretora de criptomoedas da Coreia do Sul pode receber sanção severa do governo

Órgão regulatório do país asiático afirma que a corretora de criptomoedas Upbit vem descumprindo regras de prevenção à lavagem de dinheiro
Casa à beira de rio no Butão

Região especial do Butão adota Bitcoin e Ethereum em reserva estratégica

A medida se baseia no papel crescente do Butão no setor cripto, com o governo já detendo reservas significativas de Bitcoin