
Como provar a posse de Bitcoin
Verificar a posse de Bitcoin é muito importante, especialmente se houver suspeitas de que o software da wallet foi comprometido ou não está a refletir a realidade de uma forma precisa e correta. Saber como executar esta validação também pode ser útil ao lidar com auditores externos ou para demonstrar controlo sob os fundos para propósitos legais ou institucionais.
A natureza da posse e detenção de Bitcoin
As bitcoins não estão fisicamente guardadas em nenhuma localização específica, porque são meramente montantes registados num registo distribuído. Assim, bitcoins podem ser transferidas ou gastas por quem quer que possua as chaves privadas criptográficas ou o conjunto de palavras que as representam (seed phrases).
Por causa disso, criar uma definição universal de posse de Bitcoin é um desafio. Em última instância, definições legais dependem de cada jurisdição. No entanto, uma compreensão prática de Bitcoin é possível. No contexto de auto-custódia, considera-se que um indivíduo possui Bitcoin se:
- Possui as chaves privadas criptográficas que controlam o endereço que detém um determinado balanço; e
- O balanço em questão foi adquirido por meios legais.
Deste modo, provar titularidade envolve demonstrar duas coisas: que um determinado endereço de Bitcoin tem certas unidades de Bitcoin e que o detentor dessas bitcoin possui a chave privada que controla esse endereço.
Verificar o balanço de um endereço
Todos os balanços de Bitcoin, tecnicamente conhecidos como UTXOs (Unspent Transaction Outputs)Italic são rastreados na blockchain da Bitcoin. As transações são apenas reconhecidas e dadas como finais depois de terem sido incluídas num novo bloco. Desde que se saiba o estado atual da blockchain, é possível determinar com precisão o balanço de qualquer endereço de Bitcoin.
Um node de Bitcoin é o software que se conecta à rede Bitcoin e que transmite informação acerca de transações e blocos para outros nodes. Esta arquitetura torna a blockchain descentralizada e distribuída, o que permite a cada pessoa ter a sua própria cópia do registo e interagir diretamente com a rede.
Correr o próprio node não é estritamente necessário para verificar o balanço de um endereço. É possível utilizar um node de um terceiro, como aqueles que podem ser acedidos através de websites exploradores da blockchain. Exemplos populares são: mempool.space e blockstream.info. Ao visitar qualquer um destes websites é possível colocar um endereço de Bitcoin na barra de pesquisa e verificar o histórico de balanços desse endereço.
No entanto, utilizar um node de terceiros significa confiar na informação fornecida por outra pessoa. Apesar de existir uma grande probabilidade de exploradores da blockchain com boa reputação fornecerem informação credível, é necessário confiar. O ideal é sempre verificar de forma independente. Privacidade deve também ser tida em consideração. Ao pesquisar por um endereço num explorador de blockchain público cria-se uma associação do IP ao endereço introduzido.
Por estas razões, correr um node próprio é sempre preferível, dado que permite correr software open-source em equipamento próprio e verificar balanços de endereços de forma independente.
Qualquer pessoa que corra um node pode verificar o balanço de todos os endereços de Bitcoin. Deste modo, simplesmente mostrar que um endereço tem um determinado balanço não prova titularidade ou posse. Para estabelecer titularidade é necessário provar controlo sob as chaves privadas criptográficas associadas a um determinado endereço.
Provar o controlo das chaves privadas criptográficas
Para verificar a titularidade de Bitcoins associadas a um endereço, é necessário confirmar a posse das chaves privadas criptográficas que controlam esse endereço. Várias hardware wallets tornam este processo fácil ao fornecer verificação no dispositivo.
Quando se conecta uma hardware wallet ao computador e se inicia a confirmação do endereço, o software no computador envia informação sobre o endereço ao dispositivo externo. O dispositivo internamente utiliza as chaves privadas criptográficas para verificar que o endereço foi, de facto, construído por uma dessas chaves. A hardware wallet, então, mostra o endereço no seu próprio ecrã e, assim, é possível confirmar que é igual ao que é mostrado no computador. Se estiver correto então confirma-se que as chaves privadas criptográficas estiveram envolvidas na geração desse endereço.
No entanto, ao utilizar apenas o software no computador para verificar os endereços, sem confirmar diretamente na hardware wallet, existe a possibilidade (ainda que pouco provável) do software ou a própria wallet estarem comprometidos, e de o endereço apresentado pertencer, na realidade, a um atacante. Qualquer montante enviado para esse endereço será perdido para sempre. Por isso, confirmar os endereços no ecrã da hardware wallet é essencial para prevenir este tipo de ataque.
Provar o controlo das chaves gastando Bitcoin
Outra forma de provar o controlo dos fundos associados a um endereço de Bitcoin é gastando uma fração de Bitcoin desse endereço. Este método prova que a pessoa em questão é capaz de transferir Bitcoin do endereço em questão, o que pode ser uma forma de auto-verificação ou de demonstração a um terceiro que controla os fundos desse endereço.
Por exemplo, se for necessário demonstrar controlo de um endereço pode enviar-se um pequeno montante para o endereço específico. Uma vez propagada, todos os envolvidos podem observar a transação através do seu próprio node ou de um explorador de blockchain.
No entanto, este método tem aspetos negativos. Em primeiro lugar, é necessário pagar taxas de transação e pode envolver enviar uma uma pequena porção de Bitcoin que está fora do controlo do proprietário dessas bitcoins. Por outro lado, também divulga nova informação acerca da wallet em questão para toda a rede Bitcoin, o que pode comprometer a privacidade do titular da wallet em questão. Apesar do impacto na segurança ser mínimo, este método pode revelar mais do que seria desejado.
Finalmente, ainda que pouco provável, de cada vez que se transfere Bitcoin abre-se a porta a potenciais erros que podem resultar em perdas irreversíveis. Por estas, gastar Bitcoin para demonstrar controlo de um endereço está longe de ser ideal.
Provar o controlo assinando uma mensagem
Uma forma mais elegante e segura de provar titularidade e controlo é através da assinatura de uma mensagem utilizando chaves privadas. Este método é semelhante a assinar uma transação, mas não envolve propagar informação pela rede Bitcoin ou transferir fundos.
Ao invés disso, as chaves privadas são utilizadas em conjunto com o locking script do endereço em questão para assinar uma mensagem; o que demonstra criptograficamente controlo sob as chaves privadas associadas ao endereço, sem ser necessário gastar fundos. Esta é a forma ideal de provar titularidade e controlo de Bitcoin gratuitamente e de forma a preservar a privacidade.
Esta funcionalidade está disponível em várias software wallets, tal como a Trezor Suite ou a Sparrow Wallet. Este processo envolve selecionar um endereço para verificar, fornecer uma mensagem para assinar e seguir os passos na hardware wallet. A assinatura resultante é uma longa cadeia de letras e números.
Qualquer pessoa que conheça o endereço, a mensagem e a assinatura pode usar qualquer software que suporte o BIP 137 para verificar que a assinatura veio da mesma chave privada que controla o endereço. Geralmente, estas assinaturas são aceites como prova suficiente de controlo sob um determinado endereço.
Os limites das provas criptográficas
Apesar de assinaturas criptográficas serem poderosas, não são prova absoluta de posse de Bitcoin. Existem duas razões principais para isso:
- As assinaturas não identificam a pessoa que executou a assinatura. A assinatura prova que o detentor da chave privada criptográfica autorizou a assinatura, mas não prova quem é o detentor.
- Assinaturas são provas momentâneas. Uma assinatura apenas prova acesso à chave privada no momento da assinatura. Essas chaves podem ter sido perdidas ou imediatamente destruídas a seguir à execução da assinatura e não há forma de provar o contrário a não ser executando uma nova assinatura mais tarde.
Por causa disso, várias instituições que emitem regularmente provas de reservas de Bitcoin executam assinaturas periodicamente para demonstrar controlo sob os fundos ao longo do tempo.
Conclusão
Saber como verificar a posse de Bitcoin é algo essencial quando se tem Bitcoin em auto-custódia. É também uma prática importante para empresas ou instituições que detém Bitcoin de terceiros. Ao aprender como nodes de Bitcoin e exploradores da blockchain funcionam e tornar-se familiarizado com hardware wallet torna-se mais fácil e acessível provar a posse de Bitcoin de uma forma independente, segura e privada.