Categorias
Como funcionam? Mastering Bitcoin

Transacções – Como funciona a transferência de valor

Uma transacção diz à rede que um utilizador que possui algumas bitcoins autorizou a transferência de um determinado valor para outro utilizador. Esse novo utilizador ficará então na posse dessas bitcoins para as gastar como bem entender.

Uma transacção pode ser descrita como uma linha num livro de registo. Cada transacção é composta por um ou mais inputs, semelhantes a débitos numa conta bancária. Do lado oposto existem um ou mais outputs, que são como créditos dessa conta de bitcoin. Numa conta de bitcoin, os montantes de inputs e outputs não serão iguais. Existe uma quantia que é necessária adicionar e que corresponde à taxa de transacção. A taxa de transacção é um pequeno pagamento feito à rede e colectado pelo minerador que fará com que essa transacção seja incluída na blockchain da Bitcoin. São estas taxas que manterão a mineração atractiva depois do ano 2140, quando forem “cunhadas” todas as bitcoin.

Na rede de Bitcoin, “gastar bitcoin” pode ser entendido como assinar uma transacção que transfere valor de uma transacção anterior para um novo utilizador identificado pelo seu endereço de bitcoin. A assinatura é feita através do emparelhamento entre a chave privada e o enderenço de bitcoin. Só assim se consegue comprovar que aquele endereço é o devido possuidor das bitcoin que devem ser transferidas.

Como funciona uma transacção de bitcoins?

O utilizador insere na sua carteira o endereço de destino e o montante a transferir. Automaticamente, a carteira vai procurar um output de uma transacção anterior e transforma-o em input para a nova transacção. Depois de achar os inputs necessários, a carteira irá criar outputs. Os outputs resultantes desta transacção serão quantias de bitcoin desbloqueadas apenas pelas chaves correspondentes aos endereços públicos escolhidos. Normalmente, serão criados dois outputs: um com a quantia e o endereço indicado pelo utilizador e outro como troco, com a quantia restante do input seleccionado pela carteira que voltará a ser transferido para o endereço original.

transaccao

Tomando como exemplo uma transacção em que a Maria pretende comprar ao Manuel um livro que custa 0,030 bitcoins [BTC]. A Maria vai utilizar a sua carteira móvel no seu smartphone, na qual tem um saldo de 0,100 BTC. Insere o endereço do Manuel e o montante a transferir. A carteira vai criar uma transacção em que pretende transferir 0,030 BTC para o Manuel. De forma automática, a carteira faz o emparelhamento entre o endereço e a chave privada da Maria para confirmar que ela é a verdadeira dona daquelas bitcoins. Serão criados 2 outputs. O primeiro output para fazer efectivamente a transferência de valor conforme a Maria definiu: 0,030 BTC para o endereço do Manuel. O segundo output para devolver o troco ao endereço da Maria 0,065 BTC. Como já percebeu a soma dos outputs é diferente do input, uma vez que falta adicionar a parcela que fica disponível para a rede como recompensa pelo trabalho em publicar, verificar e guardar a transacção na blockchain da Bitcoin.

Durante alguns minutos, a carteira do Manuel irá mostrar esta transacção como “Por confirmar”. Isto significa que a transacção foi publicada na rede mas ainda não foi adicionada a um bloco e registada na blockchain. Este registo acontece, em média, a cada 10 minutos e é feito pelos mineradores.

Neste momento, está a ser desenvolvida uma nova camada para ser adicionada à actual rede de Bitcoin de forma a agilizar este processo, para que seja possível reduzir as taxas de transacção, aumentar o número de transacções por bloco e eliminar o tempo de espera para que uma transacção seja confirmada. Esta camada é chamada a rede Lightning e é vista como a solução para que a Bitcoin possa ser utilizada por muitos mais milhões de pessoas. Sobre esta evolução da rede Bitcoin falaremos mais adiante.

Existem ainda outros tipos de transacções:

  • transacções agregadoras – juntam vários inputs num único output (uma carteira bitcoin pode utilizar uma transacção deste tipo para “limpar” vários pequenos inputs);
  • transacções distribuidoras – dividem um único input em múltiplos outputs (ex: uma empresa a pagar os salários aos seus colaboradores).

Qualquer aplicação que seja uma carteira de bitcoin tem a capacidade de seleccionar correctamente os inputs e outputs necessários para criar uma transacção válida. O utilizador apenas precisa identificar o endereço destinatário e o montante a transferir. Depois é deixar a carteira trabalhar que ela fará o esforço necessário para construir essa transacção. De notar, que uma carteira pode construir uma transacção ainda que não esteja ligada à Internet e à rede Bitcoin. Neste caso, a carteira construirá a transacção e mais tarde publica-la-à na rede.

Para construir a transacção, a carteira necessita de colectar os inputs correctos, construir os outputs indicados e, no final, adicionar a transacção ao registo da blockchain.

A carteira manterá um registo dos outputs disponíveis para os conseguir transformar em inputs de futuras transacções. No caso de uma carteira de nó completo, teria todos os outputs da rede. No caso, mais comum, de uma carteira de cliente compacto, conterá apenas os outputs dessa carteira para que saiba quais os fundos disponíveis e possa proceder a pagamentos com esses fundos. Ou se, ainda, a carteira não “souber” quais os fundos disponíveis pode ligar-se à rede da Bitcoin e “perguntar” a um dos nós completos, que quantidade de bitcoin está disponível nesse endereço.

Depois de verificar que tem fundos suficientes para uma transacção, a carteira irá criar os outputs necessários. No caso do exemplo acima, seriam criados dois outputs: um para a Maria outro para o Manuel. São criados de forma a que só quem consiga apresentar a chave que desbloqueia esses outputs terá acesso a eles. Ou seja, a carteira da Maria diz à rede Bitcoin que tem 0,030 bitcoins para transferir a quem conseguir apresentar a assinatura da chave que corresponde ao endereço público do Manuel. Como apenas a carteira do Manuel tem essa chave, apenas o Manuel consegue desbloquear os 0,030 bitcoins que lhe foram atribuídos.

Ao desbloquear os fundos, a carteira do Manuel vai verificar que a transacção está bem construída, utiliza inputs que não tinham sido gastos anteriormente e que contém as taxas necessárias para serem incluídas no próximo bloco da cadeia. Cada bloco que for adicionado à cadeia depois daquele em que está essa transacção é uma nova confirmação que dá um novo grau de certeza que a transacção não mais poderá ser revertida. No final deste processo, o Manuel pode assumir com pouco risco que a transacção ficará confirmada.

One reply on “Transacções – Como funciona a transferência de valor”

Deixe um comentário