Ha alguns dias fiz uma transferência de Bitcoins da Exchange para minha carteira.
Acompanhando pelo blockchain.info verifiquei que os Bitcoins apareceram na mesma hora na minha carteira, porém a transação ficou com status de NÃO CONFIRMADA, depois de 30 minutos apareceu uma confirmação, depois de 40 minutos apareceu mais duas confirmações, depois parei de acompanhar.
No dia seguinte verifiquei que a trasanção foi confirmada.
O ocorrido me despertou a seguinte dúvida:
1) Qual o número mínimo de confirmações que uma transação precisa ter para ela ser considerada válida definitivamente.
Também pelo blockchain.info consultei outra transação que eu havia feito ha mais de um mês e verifiquei que a mesma tinha mais de 1000 confirmações
Isso me despertou outras dúvidas:
2) A primeira máquina/minerador que resolver o problema matemático da transação é que recebe a taxa, isso está correto?
3) E quanto as outras máquinas/mineradores, confirmam a transação depois do primeiro sem receber nada?
Agradeço se puder esclarecer as minhas dúvidas
Em teoria nunca haverá 100% de chance da transação não ser válida novamente, digo em teoria. 6 confirmações já oferece uma probabilidade enorme de que a transação estará confirmada definitivamente, de modo que a chance de isso se reverter é ínfima, pra não dizer impossível, mas bem próximo disso. Alguns aceitam 3 confirmações, também já tem uma margem de 99% de ser irreversível.
Não é um problema matemático da transação e sim de um bloco que contém aproximadamente 2000 transações, ele recebe as fees de todas essas transações incluídas nesse bloco, além da recompensa fixa que no momento é de 12.5 BTC. O próximo minerador que tentará encontrar o próximo bloco não verifica essas mesmas transações e sim outras 2000 (aproximadamente) mas só tomando cuidado de referenciar o bloco anterior nesse bloco atual. Então quando esse bloco atual é minerado ele acaba confirmando o bloco anterior (e por tabela todas as transações inclusas nele) novamente, assim se forma a cadeia de blocos, o bloco atual sempre ligado ao anterior. Então quando aparece lá que a transação tem 1000 confirmações quer dizer que foram minerados mais 999 blocos além daquele no qual ela foi incluída.
Fazendo uma analogia, vamos supor que haja um vagão de trem que contenha barras de ouro, em cada vagão cabem 2000 barras de ouro. A primeira empresa de mineração coloca 2000 barras de ouro em um vagão, outra empresa de mineração trás suas 2000 barras de ouro em outro vagão mas para esse vagão ser levado pelo trem ele tem que ser ligado ao vagão anterior. A próxima empresa chega com seu vagão e se liga ao número 2, a próxima chega e liga o vagão dela ao número 3 e assim por diante.
Agora vamos supor que alguém tente roubar esse trem e seus vagões, vamos supor que ele queira roubar o vagão número 7 e nesse trem haja 10 vagões, nessa analogia ele teria que roubar o vagão de número 10, 9, 8 para então poder roubar o de número 7 lembrando que se vier uma outra empresa e colocar o vagão de número 11 ele teria que recomeçar todo o processo e roubar o vagão número 11, 10, 9, 8 para então chegar ao 7 e cada vagão desse é colocado em média a cada 10 minutos.
No caso, percebe que cada vagão colocado a mais diminui a possibilidade do 7 ser roubado? Assim funcionam as confirmações. As barras de ouro seriam as transações e os vagões seriam os blocos.
Se quiser ver visualmente e até poder fuçar um pouco em uma "blockchain" visite esse site que entenderá bem melhor que minha explicação, o vídeo tem legenda em português
https://anders.com/blockchain/