Conforme noticiado pelo CriptoFácil, recentemente a área de pesquisa da BitMEX descobriu uma transação “suspeita” de Bitcoin. A transação, supostamente, foi uma tentativa de gasto duplo.
Após diversas partes se pronunciarem, o evangelista do BTC Andreas Antonopoulos explicou brevemente que não havia motivo para preocupações.
De qualquer forma, um pesquisador da Deribit deu mais detalhes sobre o que ocorreu. Um gasto duplo, de fato, ocorreu na blockchain do Bitcoin — mas não da forma como muitos imaginam.
Detalhes técnicos
O gasto duplo é comumente conhecido por sua aplicação prática. De maneira simplificada, é como aplicar um golpe sustando um cheque.
Por exemplo, um indivíduo compra um produto com um cheque de R$ 1.000. Ele então, posteriormente, susta o cheque e o comerciante fica sem o valor. Esse é o gasto duplo na prática, explicado de forma crua.
É importante ressaltar que este tipo de gasto duplo é extremamente difícil de ocorrer na blockchain do Bitcoin.
Contudo, o pesquisador Hasu explicou outro conceito para gasto duplo — este mais técnico. O pesquisador elucidou que gasto duplo pode ser quando um pagamento é recebido na blockchain e posteriormente removido, criando duplicidade no envio.
Isso pode ocorrer, segundo Hasu, quando um bloco se torna “vencido” — no sentido de expirado. Um bloco se torna vencido quando ele surge de uma bifurcação na rede, apenas para ser excluído na conclusão do próximo bloco.
Note-se que apenas a informação de envio foi “duplicada”, o que pode ser nocivo, mas não necessariamente é.
Um exemplo de “gasto duplo” não nocivo são as transações usadas para agilizar o envio de algum valor.
Ou seja, quando uma transação fica presa por usar uma taxa baixa de envio, outra transação complementar pode ser feita. Geralmente, o tipo de transação usada é conhecida como Replace-By-Fee (RBF), embora não seja a única.
Entendendo o que ocorreu
Para ajudar na explicação, Hasu então usou um gráfico publicado pelo desenvolvedor do Bitcoin e pesquisador conhecido como 0xB10C.
De acordo com o desenvolvedor, um usuário (que Hasu chama de Alice) emitiu três transações competindo entre si. Cada uma delas atualizava as taxas da anterior, como no modelo mencionado de RBF.
Primeiro, uma transação foi emitida com uma taxa baixíssima. Consequentemente, ela demorou para ser aprovada. Então, quase um dia depois, Alice emitiu uma nova transação aumentando a taxa.
Entretanto, o valor incluso não foi suficiente. Percebendo a demora, três horas depois, Alice emitiu uma terceira transação para terminar de atualizar as taxas e conseguir concluir o envio.
Desta forma, resumidamente, foi isso que aconteceu no dia 20 de janeiro. Mineradores encontraram duas transações conflitantes, mas não nocivas.
O cenário levou algumas pessoas a acreditarem em um caso de gasto duplo no sentido prático, mas não foi o que ocorreu. O gasto duplo foi meramente técnico e previsto, conforme já havia dito por Antonopoulos com menos detalhes.
Concluindo a análise, Hasu informa que todos os endereços — de envio e recebimento — pertenciam a Alice. Ela usou o formato Child-Pays-For-Parent (CPFP), cujo objetivo é o mesmo do RBF.
Nessa modalidade de substituição de transação, uma segunda transação é emitida para a primeira que não pagou o suficiente em taxas — mas agora pagando uma taxa maior do que o normal.
Agora, ambas devem ser validades. Assim, o validador (minerador) é incentivado a aprovar ambas pela possibilidade de auferir um ganho maior.
No fim do dia, Alice é apenas um usuário querendo mover seus BTC entre suas carteiras.