
Como funciona uma transação de Bitcoin
Em Bitcoin, um pagamento é um anúncio público assinado criptograficamente que atualiza um registo que se encontra copiado e replicado por todo o mundo. Por natureza, Bitcoin é um ativo auto-custodial e descentralizado. Assim, não existe nenhum banco, rede de cartões ou apoio ao cliente com autoridade para reverter um erro. Se alguém enviar bitcoins para o endereço errado, a rede não rejeita a transação ou devolve os fundos. Por isso, com grandes poderes, vêm grandes responsabilidades.
O registo onde as bitcoins “vivem”
A Bitcoin deve ser visualizada como um único registo global: a blockchain (cadeia de blocos). Cada bitcoin é contabilizada lá e não dentro de um computador, aplicação ou carteira em hardware. Na verdade, uma carteira não guarda bitcoins, mas sim chaves criptográficas que permitem aceder e controlar as bitcoins contabilizadas na blockchain.
Para além disso, a blockchain não se encontra numa localização. Existem cópias onde quer que as pessoas corram nós (nodes) de Bitcoin. Cada nó mantém uma cópia própria (integral ou parcial) e valida as regras da rede individualmente. Não existe uma única fonte de verdade, dado que a rede foi criada para ser distribuída e resistente contra pontos únicos de falha. Deste modo, o consenso emerge porque os nós convergiram no mesmo histórico válido e rejeitam atualizações inválidas.
Pagamento como um anúncio público
Como a blockchain é onde os balanços dos endereços de bitcoin são registados, pagar a alguém significa realocar um certo montante em bitcoin do endereço de quem envia, para um outro endereço controlado por quem recebe o pagamento. Esta realocação não acontece enviando as bitcoins através da Internet como um anexo de email.
Ao invés disso, quem envia:
- Usa as suas chaves privadas criptográficas para provar que está autorizado a gastar um certo montante em bitcoin.
- Declara, criando uma nova transação, que uma porção controlada por si já não lhe pertence e, a partir daquele momento, passa a pertencer a quem irá receber os fundos.
- Partilha essa declaração (transação) com o resto da rede, até se espalhar e for conhecida por grande parte dos participantes.
- Finaliza a transação quando os mineradores a incluírem num novo bloco na blockchain e os nós da rede aceitarem esse bloco como válido.
Deste modo, a movimentação de fundos é, na realidade, uma alteração no registo contabilístico da blockchain, ou seja, uma atualização conhecida por todos os participantes na rede.
Passo 1: Construir a transação
Para criar uma transação de Bitcoin, a carteira constrói uma mensagem que especifica:
- O montante em bitcoin que se pretende enviar;
- Que os fundos controlados por quem paga serão usados para fazer o pagamento (montante em bitcoin associado a um endereço na blockchain controlado por quem envia);
- Para onde é que esse montante em bitcoin vai (endereço de quem recebe)
No fundo, o que uma transação nova diz à rede é: "reatribui este montante do meu controlo para o deles".
Passo 2: Autorizar a transação com a assinatura
A seguir vem o passo crucial na auto-custódia: a carteira assina criptograficamente a transação com as chaves privadas corretas. Esta assinatura é uma prova de autorização, ou seja, a forma de demonstrar que a pessoa realmente controla as bitcoins que está a tentar gastar.
Por isso é que a rede Bitcoin não precisa de nenhuma entidade para gerir e aprovar transações. A rede apenas confia na matemática: uma assinatura válida que significa que quem gasta bitcoin tem as chaves necessárias para realizar essa ação.
E é também por causa disso que não há como reverter erros. Uma transação assinada e válida que seja propagada pela rede é algo que a rede verifica sem saber a entidade de ninguém.
Passo 3: Emissão da transação para a rede
Uma vez assinada, a transação é enviada para a rede Bitcoin através de um nó (um nó próprio ou um nó a que a carteira bitcoin se conecta). Emitir uma transação é anunciá-la publicamente para toda a rede. A partir desse ponto, os nós propagam a transação para outros nós a que estão conectados. Assim, a transação espalha-se pela rede. Nesta etapa a transação é considerada pendente, ou seja, foi anunciada mas ainda não se encontra registada na blockchain.
Uma vez que uma transação é emitida para a rede, essa ação não pode ser revertida. Não existe nenhuma entidade central que controle a rede ou a propagação de transações.
Passo 4: Mineradores incluem a transação
Mineradores tomam conhecimento de transações pendentes porque também correm os seus próprios nós e coletam transações válidas pendentes para as incluir no bloco seguinte que mineram. Até isso acontecer, a transação fica vulnerável a ser ultrapassada por outras transações que paguem mais taxas (especialmente se as taxas pagas na transação forem baixas) e, em alguns casos, a tentativas de gasto-duplo (double-spend), porque a transação ainda não faz parte da blockchain, ou seja, do registo de transações verificado e imutável.
Na prática, com uma taxa que vá de encontro à procura da rede, transações ficam pendentes menos de uma hora, por vezes apenas alguns minutos.
Passo 5: Inclusão da transação num bloco (confirmação)
A cada 10 minutos, sensivelmente, um novo bloco é adicionado à blockchain. Cada bloco contém um conjunto de transações e representa a última atualização ao registo global.
Quando um minerador inclui uma determinada transação num bloco e esse bloco é aceite por nodes como válido, a transação passa ao estado de confirmada.
Esse é o momento em que uma transação anunciada à rede se torna parte do histórico partilhado e imutável. Os nós depois validam que o bloco segue as regras da rede e propagam-no para outros nós que se encontram ligados à rede. À medida que a propagação ocorre, a rede como um todo fica a saber que a blockchain foi alterada: determinado montante em bitcoin fica agora atribuído a novos endereços controlados por determinadas chaves.
Com a confirmação, a transação deixa de estar pendente e passa a ser parte do registo oficial da blockchain, o que torna o duplo gasto várias ordens de magnitude mais difícil de ocorrer.
Passo 6: O destinatário verifica liquidação final
Finalmente, o destinatário pode verificar a realidade e o estado da rede. Pode utilizar o seu próprio nó ou qualquer outro para verificar que o pagamento é válido e foi confirmado. De facto, o destinatário não tem que confirmar na carteira de Bitcoin do emissor, dado que a verificação é feita tendo em consideração a blockchain pública e replicada várias vezes globalmente, e as regras da rede.
Uma vez que a transação é confirmada, a carteira do destinatário trata aquele montante em bitcoin como se lhe pertencesse, porque a blockchain o atribui a um endereço que só as suas chaves podem gastar a partir daquele momento.
Conclusão
Um transação de Bitcoin é uma autorização assinada que prova o controlo dos fundos através da chave privada criptográfica, a emissão pública da transação para uma rede descentralizada, a atualização da blockchain que culmina na adição de um novo bloco e a replicação e propagação desse bloco que resulta na convergência da rede quanto ao estado do registo.
Bitcoin é dinheiro que pode ser custodiado e transferido sem permissão, mas com isso vem também responsabilidade, dado que não existe uma autoridade central que pode reverter o que foi declarado publicamente e de forma válida.