O ecossistema Bitcoin simplificado: miners, nodes, fees e transações para todos perceberem

andre-francois-557627

Em artigos anteriores explorámos o que é a tecnologia blockchain de uma forma mais geral e abrangente.

Explicámos porque é descentralizada e o que isso significa na prática. Explorámos algumas das suas mais importantes propriedades e estudámos como evoluiu já para uma versão 2.0. Desconstruimos também alguns dos seus jargões como hash functions, private keys e public keys.

Hoje, mergulhamos de forma mais profunda e específica, mas nem por isso menos clara, no ecossistema Bitcoin.

(Tentei que este artigo fosse de fácil compreensão para todos, independentemente do nível de conhecimento sobre o tema. Se em algum momento sentirem dificuldade em acompanhar a leitura, sugiro que leiam os meus posts anteriores – que partilhei acima. Eles são as bases para continuarmos a expandir o nosso conhecimento sobre blockchain).

O ecossistema Bitcoin é composto por três tipos de agentes, ligados em rede. Estes agentes são simplesmente computadores ou hardware que permitem o funcionamento equilibrado do protocolo. Mas cada tipo de agente tem diferentes funções.

Os nós (nodes em inglês), são responsáveis por guardar uma copia inteira da blockchain e por verificar se as transações que são propagadas estão correctas. Dizemos que são eles que controlam a rede.

Os miners (ou mineiros) detém também uma copia inteira da blockchain e competem entre si para confirmarem transações. Ao confirmar uma transação, o miner está a introduzir um novo bloco na blockchain. Dizemos que são eles que monitoram a rede.

E finalmente os SPV’s – Simple Payment Verifications (Verificações Simples de Pagamentos). Nem todos os devices podem ter uma cópia da blockchain. Alguns devices não tem memória suficiente para tal. Se tivermos, por exemplo, uma mobile wallet (carteira móvel) no nosso telemóvel, ela será provavelmente um SPV. Os SPV’s precisam conectar-se aos nós para recolher informação necessária da blockchain e, assim, poderem efetuar as suas transações ou determinar por exemplo o saldo da carteira.

Umas das perguntas obvias que se segue é: porque competem os miners entre si?

Ao monitorarem a rede, os miners estão à procura de transações por confirmar. Para confirmarem uma transação, precisam resolver um puzzle criptográfico. O miner que conseguir resolver esse puzzle mais rápido, adicionará um bloco à blockchain, contendo a nova transação.

Naturalmente, é necessário existir algum tipo de incentivo para que os miners resolvam estes puzzles criptográficos. Esses incentivos são denominados de fees.

Num próximo post abordarei como funcionam os diferentes tipos de incentivo em diferentes protocolos blockchain. Hoje, o foco é perceber e explorar o resto do ecossistema Bitcoin e o seu funcionamento.

Para continuarmos o nosso percurso, vamos ver como funcionam então as transações com Bitcoins.

É importante, antes de mais, reter algumas das regras fundamentais:

  1. Todas as transações precisam de pelo menos um input e pelo menos um output.
  2. Uma transação pode ter um ou mais inputs e um ou mais outputs.
  3. O output de uma transação será utilizado como input de outra transação
  4. Numa transação, todos os inputs precisam ser gastos

Vejamos um exemplo concreto.

Imaginemos que quero comprar uma e-bike por 0.8 bitcoins.

O que eu tenho são 0.9 bitcoins obtidos em três momentos diferentes: 0.5 bitcoins que comprei há muito tempo. 0.2 bitcoins que o meu avô me ofereceu no Natal. E 0.2 bitcoins que recebi recentemente como forma de pagamento de um trabalho part-time no verão.

Estes três momentos, representam três outputs resultantes de três transações diferentes no passado. São denominados de UTXO, ou Unspent Transaction Outputs (outputs de transações não gastos).

Nenhum destes três UTXO isolado é suficiente para comprar a e-bike. Precisamos, por isso, combinar os três para fazer a compra. Eles passam agora a ser os inputs da minha transação.

E agora sim, podemos concluir a compra. Mas lembremo-nos da regra número 4 das regras fundamentais das transações: “numa transação, todos os inputs precisam ser gastos“.

Assim a minha transação terá que ter não um, mas pelo menos dois outputs: 0.8 bitcoins serão transferidos para a loja de bicicletas e 0.1 bitcoins serão transferidos de volta para mim.

Os mais atentos perguntam agora: e as fees? Bom, matematicamente, no protocolo Bitcoin temos a seguinte equação:

“Fee = soma dos inputs – soma dos outputs”

Neste caso o meu input (0.5 + 0.2 + 0.2 bitcoins) é igual ao meu output (0.8 + 0.1 bitcoins). Não foi prevista nenhuma fee. Como explicado anteriormente, sem uma fee, nenhum miner terá incentivo para validar a minha transação.

Assim o output da nossa transação teria que ser mais semelhante a algo do género: 0.8 bitcoins transferidos para a loja de bicicletas e 0.07 bitcoins (por exemplo) transferidos de volta para mim.

Assim, a rede ficaria automaticamente a saber que a fee que estou disposto a pagar para validarem a minha transação seria o montante em falta, ou seja, 0.03 bitcoins.

Na prática, as coisas não funcionam exatamente assim. A maioria das wallets que utilizamos para transacionar bitcoins faz este processo automaticamente.

Regra geral, as wallets apenas perguntam ao utilizador quantos bitcoins quer enviar e para quem. Depois, elas mesmo tratam de encontrar os inputs para a nossa transação e os outputs corretos: o do destinatário e o “troco” de volta para nós mesmos.

Igualmente, a wallet define a fee da transação. Quanto mais inputs e outputs, maior será o seu valor.

A análise das fees por transação fica no entanto incompleta sem compreendermos outro conceito importante do protocolo Bitcoin: Mempool.

No protocolo Bitcoin, quando uma transação é efetuada, ou propagada na rede, ela não é imediatamente validada. Na verdade, ela é enviada para uma Mempool onde fica “à espera” de ser validade por um miner.

Se o número de transações aumenta e os miners não conseguem acompanhar o ritmo, isto é, há mais procura (transações por validar) que oferta (miners a validar), os miners irão naturalmente escolher transações com fees mais altas.

Algumas pessoas estarão dispostas a pagar mais para verem a sua transação ser validada mais rapidamente, o que resulta, naturalmente, no aumento do valor médio das fees por transação.

Estamos perante uma situação de Mempool Crescente. Pelo contrario, uma situação de Mempool Decrescente resulta na diminuição do valor médio das fees.

É a lei da oferta e da procura em funcionamento e um dos temas mais controversos na história da bitcoin: os seus fees e a sua (diretamente relacionada) escalabilidade.

Deixe uma Resposta

Preencha os seus detalhes abaixo ou clique num ícone para iniciar sessão:

Logótipo da WordPress.com

Está a comentar usando a sua conta WordPress.com Terminar Sessão /  Alterar )

Google photo

Está a comentar usando a sua conta Google Terminar Sessão /  Alterar )

Imagem do Twitter

Está a comentar usando a sua conta Twitter Terminar Sessão /  Alterar )

Facebook photo

Está a comentar usando a sua conta Facebook Terminar Sessão /  Alterar )

Connecting to %s

search previous next tag category expand menu location phone mail time cart zoom edit close