No bloco 631058 foi feita uma transação que gastou um output de fevereiro de 2009, ou seja, um mês após a rede bitcoin começar a funcionar. Isso causou um pouco de oscilação nos preços, sem mencionar, muita especulação sobre se Satoshi Nakamoto foi responsável por mover essas moedas ou não.
Neste artigo, vou explicar o porquê provavelmente não foi Satoshi e o pouco de forense digital que podemos usar para descobrir isso.
O que aconteceu
Em 20 de maio de 2020, uma transação com o ID cb1440c787d8a46977886405a34da89939e1b04907f567bf182ef27ce53a8d71 foi transmitida para a rede Bitcoin e incluída no bloco 631058. O input da transação foi aconteceu no bloco 3654, especificamente em 9 de fevereiro de 2009, a partir de 9 de fevereiro de 2009. Como o bloco Gênesis foi criado em 3 de janeiro de 2009, o bloco que originou os respectivos bitcoins aconteceu apenas 37 dias após o início da rede Bitcoin.
Não havia muitas pessoas minerando (ou mesmo sabendo o que era), então a especulação é que esse output possa pertencer a Satoshi Nakamoto. Dado que uma chave privada é necessária para desbloquear o output, o fato dele ter sido gasto sugere que o responsável tenha acesso à chave privada. Se este é Satoshi, isso sugere que pode haver muito mais Bitcoins a serem despejados. O preço do Bitcoin caiu cerca de 5% após a divulgação das notícias, talvez com base nessa especulação.
Bitcoin em 2009
Na época, o Bitcoin era conhecido por muito poucas pessoas, principalmente as pessoas da lista de e-mails cypherpunk e a maioria estava minerando porque pensavam que era um experimento interessante. Naquela época, não havia muitas transações na rede além das transações vindas dos blocos minerados, pois as pessoas não estavam enviando Bitcoins. Uma exceção notável está no bloco 170, onde Satoshi Nakamoto enviou a Hal Finney 10 bitcoins.
Então, por um lado, sabemos que Satoshi Nakamoto minerou o bloco 9, pelo menos, e pode ter minerado mais. Dito isto, havia outras pessoas minerando na rede, entre as quais Hal Finney:
Como o Bitcoin era tão novo e havia apenas uma opção de software, todos os que estavam executando o software do Bitcoin na época estavam minerando.
O que podemos inferir
Como todo mundo estava minerando e havia poucas, se houver, transações que não eram transações vinda da mineração, podemos tentar reunir algumas informações com base no código do Bitcoin v0.1.
No v0.1, havia uma função específica no main.cpp que criava a prova de trabalho. Obviamente, era muito fácil na época, mas ainda exigia uma grande quantidade de energia da CPU. Podemos ver o código que cria a transação de base de moeda aqui.
A principal informação que podemos reunir na transação de base de moedas mineradas, além do output, é algo chamado extra nonce:
Você pode ver na linha 2190 que bnExtraNonce é definido como 0. Além disso, na linha 2212, a mesma variável é incrementada no loop while para gerar moedas (também conhecida como mineração). Por fim, também na linha 2212, o bnExtraNonce é adicionado ao scriptSig da transação de base de moeda por meio do operador “<<“. É aqui que podemos usar análise forense, pois essa variável é definida como 0 e incrementa enquanto o programa estiver em execução. Se o programa reiniciar, isso será redefinido para 0. Portanto, quanto mais tempo o software do bitcoin estivesse em execução, maior seria esse número e, além disso, esse número apareceria no campo scriptSig da transação de base de moeda, que podemos examinar na blockchain.
É aqui que a análise de Sergio Lerner dos primeiros blocos levou à rotulagem de certas transações como sendo de “Patoshi”. As moedas no gráfico são verdes se gastas e azuis se não forem gastas, com o eixo y sendo o valor extra nonce e você pode ver os grandes fios azuis:
Suspeita-se que estas são as moedas de Satoshi, à medida que o valor extra nonce aumenta quando um bloco é extraído. Estes também são processos de execução bastante longos que parecem ser reiniciados a cada semana. Para ser justo, não sabemos se estes são especificamente moedas de Satoshi, exceto algo como o bloco #9, mas há provas forenses decentes dada a forma como os fios azuis alinham (quando termina um, outro começa logo depois), que estas transações vindas da mineração têm um bom argumento de serem de Satoshi.
O bloco em questão
Observando o bloco 3654 e, especificamente, a respectiva transação, podemos observar o scriptSig para encontrar o valor extra nonce:
O scriptSig possui um número de bits de 4 bytes (0xffff001d, que é o limite do proof of work) e, em seguida, o extra nonce, que é 0xdd01.
Este número está em hexadecimal little-endian, o que equivale a 477 em decimal.
Compare isso com os pontos azuis mais próximos de uma das vertentes, blocos imediatamente antes e depois desse bloco, que são os blocos 3653 e 3655. Eles têm nonces adicionais de 2367 e 2372, respectivamente.
Conclusão
É possível, é claro, que Satoshi tenha executado o Bitcoin em vários computadores e que isso seja de outro computador que não seja o fio azul dos blocos 3653 e 3655, mas dado o padrão azul claro de todas as moedas que não foram gastas, parece provável que essa não seja a mesma pessoa.
*Este artigo publicado por Jimmy Song no Medium e gentilmente cedida pelo autor. A tradução é do Portal do Bitcoin.