O Banco Central do Brasil confirmou que planeja manter no código do Real Digital as funções que permitem à autoridade monetária e entidades autorizadas congelar contas de usuários, diminuir saldos de endereços-alvo, confiscar e cunhar novas unidades da moeda digital.
Leia também: Piloto do Real Digital permite congelamento de carteiras de usuários
A confirmação foi feita pela autoridade monetária na terça-feira (11) após questionamento feito pelo Portal do Bitcoin. De acordo com o Banco Central, as funções serão mantidas devido à necessidade de ajustar a plataforma à legislação e à Justiça brasileira.
“Segundo a legislação brasileira, a justiça, na devida condução de processos judiciais, tem a prerrogativa de congelar ou arrestar valores mantidos no SFN. Essas funcionalidades, portanto, existem atualmente no SFN e deverão ser reproduzidas na plataforma do Real Digital de modo a garantir sua compatibilidade com a legislação em vigor.”
— Banco Central do Brasil
SFN é o Sistema Financeiro Nacional, também composto pelo Sistema de Pagamentos Brasileiro (SPB) e o Pix. Esta capacidade de “congelar ou arrestar valores” mantidos nesse Sistema é protegida pela legislação vigente no Brasil, segundo o Banco Central.
As informações já eram de conhecimento de membros participantes do Fórum do Real Digital, segundo informações do órgão.
“As funcionalidades de congelamento de ativos e alteração de saldos em carteiras na plataforma do Real Digital foram anunciadas em apresentação técnica feita durante a 1ª Plenária do Fórum Real Digital realizada no dia 26 de junho, especificamente no que se refere ao Real Digital e do Real Tokenizado.”
— Banco Central do Brasil
Desenvolvedores descobriram funções especiais no código do Real Digital
No entanto, nem todos os cidadãos brasileiros podem participar do Fórum do Real Digital. Conforme portaria publicada no Diário Oficial da União, apenas poderão integrar o comitê:
- I – instituições reguladas pelo BCB;
- II – desenvolvedores ou provedores de aplicações ou serviços baseados na adoção de tecnologia de registro distribuído (DLT);
- III – provedores e potenciais provedores de serviços de tecnologia da informação; e
- IV – servidores do Banco Central do Brasil e de outros órgãos e entidades reguladoras cujas atribuições se relacionem aos assuntos objeto de discussão no âmbito do Fórum Real Digital.
Para o restante da população, o conhecimento das funcionalidades só se tornou possível após alguns desenvolvedores aplicarem técnicas de engenharia reversa no ABI do Projeto-Piloto do Real Digital, disponibilizado no dia 3 de julho de 2023.
Até agora, não existia a confirmação de sua aplicação na versão final da CBDC brasileira – uma possibilidade é que essas funções fossem apenas implementadas dentro do ambiente de teste do projeto-piloto.
Essas funções permitem que os controladores possam fazer diversas alterações nas informações dos operadores do sistema Real Digital. Os recursos podem ser executados por qualquer entidade que receba autorização do órgão controlador do novo sistema, ou seja, do BC.
Entre as mudanças que as autoridades poderiam potencialmente fazer usando essas funções estão, por exemplo:
- Congelar/Descongelar contas específicas;
- Aumentar/Diminuir saldos financeiros de contas congeladas;
- Mover moedas do Real Digital (ou outros tokens da rede) de endereços escolhidos, para outro endereço;
- Criar/Queimar moedas em/de determinados endereços.
Pedro Magalhães é o responsável pela descoberta. Ele é desenvolvedor full-stack especialista em blockchain, DeFi e também na linguagem de programação Solidity, a mesma utilizada pelo Banco Central no Real Digital.
O Portal do Bitcoin também checou e confirmou junto a outros desenvolvedores a existência dessas funções no código do Real Digital. Gustavo Toledo também já havia atingido resultado parecidos em sua própria auditoria.
Após divulgação da reportagem exclusiva: “Piloto do Real Digital permite congelamento de carteiras de usuários”, no domingo. Outros desenvolvedores, portais de notícias e produtores de conteúdo do mundo inteiro passaram a falar sobre a descoberta.
Como foi possível: um mergulho no Real Digital
“Recentemente, mergulhei no mundo das ABIs (interfaces) do Real Digital, uma iniciativa do BC, com a intenção de explorar possíveis vulnerabilidades para fins puramente didáticos”, diz Magalhães.
O desenvolvedor especialista anunciou sua descoberta no LinkedIn na terça-feira (4): “Descobri o Source Code Solidity do CBDC do Bacen através do ABI do Real Digital usando engenharia reversa”. Ele se refere ao Código Fonte na linguagem de programação, Solidity.
Em conversa com o Portal do Bitcoin, Pedro Magalhães explicou que um Application Binary Interface (ABI) é “basicamente uma maneira de interagir com os contratos inteligentes no Ethereum. É como se fosse um manual que diz como o contrato pode ser lido e escrito.”
Já sobre engenharia reversa, o desenvolvedor explica que é uma técnica para entender o funcionamento de um sistema apenas observando seu comportamento.
“Analisei o ABI para entender as funcionalidades do Real Digital e descobri as várias funções que eles implementaram.”
Com base nesta análise, Pedro conta ter sido possível recriar o contrato inteligente em Solidity (a linguagem de computação) usado no projeto piloto. Esse contrato possibilita a execução das seguintes funções:
- disableAccount: Inabilita uma conta autorizada a realizar transferências de tokens.
- enableAccount: Habilita uma conta previamente desabilitada para transferências de tokens.
- increaseFrozenBalance: Aumenta o saldo congelado de um endereço de carteira.
- decreaseFrozenBalance: Diminui o saldo congelado de um endereço de carteira.
- transfer: Sobrepõe a função de transferência do ERC20 para incluir verificações de status de conta e saldos congelados.
- transferFrom: Sobrepõe a função transferFrom do ERC20 para incluir verificações de status de conta e saldos congelados.
- mint: Cria novos tokens do Real Digital para um endereço especificado.
- burn: Queima (destrói) uma quantidade especificada de tokens do Real Digital.
- pause: Pausa as transferências de tokens.
- unpause: Retoma as transferências de tokens.
- frozenBalanceOf: Recupera o saldo congelado de um endereço de carteira.
- authorizedAccount: Verifica se uma conta está autorizada para transferências de token.
- move: Transfere tokens de uma carteira para outra.
- moveAndBurn: Transfere e queima tokens de uma carteira.
- burnFrom: Queima tokens de uma conta especificada.
Estas funções podem ser executadas por qualquer entidade que receba autorização pelo Banco Central mediante outra função (também presente no código-fonte), chamada Access Control.
Ainda segundo o especialista, o Banco Central tem vários contratos inteligentes. “O que a maioria das pessoas vão usar no dia a dia é o contrato inteligente baseado em ERC20 para transferir valores.” ERC20 é o padrão de tokens da rede do Ethereum (ETH), muito comum no mercado de criptomoedas e no ecossistema de finanças descentralizadas (DeFi).
“Essas funções exclusivas também serão usadas na rede principal, que é o sistema que todos usarão no dia a dia que foi criada usando tecnologia Hyperledger Besu para construir essa rede”, conclui Pedro.
Tecnologia usada no Real Digital
A Hyperledger é um ambiente digital criada pela Linus Foundation em 2015. Nos últimos anos sua versão chamada Fabric vem sendo muito utilizada no mercado cripto, embora não seja vista como atrativa para a criação de tokens.
Trata-se de uma Distributed Ledger Technology — mas que não é chamada de blockchain por alguns detalhes. Por exemplo, nessa tecnologia nem sempre existe um processo de mineração sustentando a rede, além de outros mecanismos presentes de redes públicas, como Bitcoin e Ethereum.
”Ela também se trata de uma rede “permissionada”, que requer autorização de uma entidade central. Enquanto a maioria das redes blockchains são sistemas não-”permissionados; onde qualquer computador pode conectar através de seu próprio servidor, sem depender de terceiros.“
Ela também se trata de uma rede “permissionada”, que requer autorização de uma entidade central. Enquanto a maioria das redes blockchain descentralizadas são sistemas “não-permissionados”; onde qualquer computador pode conectar através de seu próprio servidor, sem depender de terceiros.
Para o projeto definitivo, Banco Central já anunciou que pretende criar uma própria rede, em cima da Hyperledger Besu, que será usada como infraestrutura básica. Não será uma plataforma de Camada Dois, mas sim uma rede de Camada Um do próprio BC.
- Não perca dinheiro. No Mercado Bitcoin, você pode fazer staking de Ethereum de maneira segura e simples. Abra sua conta agora e comece a ganhar recompensas sobre seus investimentos em criptomoedas.