Bitcoin, Transações, Nodes, Blocos, Taxas e Ecossistema

BLOCKCHAIN BITCOIN

Tudo que vai abaixo é com base no Blockchain do Bitcoin e apesar de ter ficado extenso não diz nem 1% do que deveria ser explicado. Esse trabalho sempre vale a pena porque este tipo de dúvida é o mesmo que outras pessoas podem ter. Talvez algo extenso e grande possa confundir ao invés de esclarecer, mas esse é o nosso jeito porque Bitcoin não é simples e nem tão fácil de entender como parece à primeira vista, quanto mais o tempo passa mais complexo ele se torna e vai ficando bem mais difícil de entender. Parece confuso, mas é assim que enxergamos ou pensamos. Pessoas muito mais capacitadas do que eu que se debruçam sobre ele há muitos anos, muito mais do que eu, e dizem que sequer começaram a entender direito tudo que ele representa e qual é a real extensão do que ele pode oferecer. Dizem que bons argumentos são simples e fáceis de serem entendidos, mas na prática nem sempre é assim que funciona. Nosso propósito por aqui é tentar fazer diferente do que se encontra por aí porque se for para fazer igual não faria sentido ser mais um local onde se encontram as mesmas informações que existem por aí, manter esse site custa dinheiro, tempo etc.

Seria interessante começar dizendo vamos por partes, mas neste caso me parece que é melhor começar falando em termos mais amplos, olhando um pouco além das partes isoladamente. Uma questão que precisa ser esclarecida é quanto à existência de um ecossistema bem mais amplo e que existem duas coisas distintas dentro desse sistema: transações e blocos. A segunda é que estamos falando de um negócio que hoje vale em torno de 890 bilhões de dólares e no auge já ultrapassou a casa de 1 trilhão de dólares. Pensando em termos de trilhão de dólares fizemos algumas indagações ao longo do texto para reflexão sobre a viabilidade de pensarmos única e exclusivamente numa variável (por exemplo a escolha da maior taxa) de um sistema complexo para tentar entender como uma parte dele funciona na prática.

É a minha modesta contribuição para tentar mostrar que o sistema é totalmente regulado para que funcione de acordo com as regras parametrizadas nos seus algoritmos não dando margem para jeitinhos aqui ou ali, se algo sair fora de algum parâmetro o sistema vai se reajustar para voltar ao trilho. Desde que foi criado e ao longo do tempo todos os dias pessoas espalhadas pelo mundo procuram formas e jeitos de tirar alguma vantagem ou alguma brecha que possa beneficiá-los (não estou dizendo que é o seu caso). Até agora poucos encontraram algumas brechas e estes poucos que conseguiram esta façanha ajudaram a melhorar o sistema indicando as falhas e até propondo as devidas correções.

TRANSAÇÕES/TRANSFERÊNCIAS

O processo de mineração não se resume a pegar os blocos da fila e agrupá-los rapidamente para formar um novo bloco, no seu exemplo, escolhendo as que pagam as maiores taxas, o que não é exatamente uma regra ou a forma como os mineradores agem SEMPRE. Não são todas as carteiras (wallets) que permitem a escolha do quanto queremos pagar de taxa por uma transação. Alguns mineradores permitem que você peça prioridade numa transação sem pagar mais por isso respeitando alguns limites como quantidade máxima de transações que eles se dispõem a colocar na frente da fila por dia. Outros oferecem esse trabalho de furar fila mediante algum pagamento por fora [1]. Numa outra situação, se um minerador faz uma transação certamente ele vai colocar a dele na frente das outras independente da taxa no bloco que ele estiver minerando. Um grande operador do sistema que realiza muitas transações como é o caso das Exchanges conhecem os mineradores e os próprios mineradores sabem quais são as carteiras da Corretora A ou B e podem escolher ou dar preferência dependendo de algum acerto ou não entre eles. Existem muitas variáveis que vão além da simples escolha pela melhor taxa. O sistema não foi projetado para beneficiar esse tipo de pensamento que seria uma espécie de falha na concepção e iria beneficiar única e exclusivamente um ou alguns agentes do ecossistema prejudicando todos os demais participantes, como seria o caso de uma grande maioria de usuários que teriam que ficar esperando horas, dias, semanas ou quem sabe meses para ver uma transação ser concluída.

Especificamente sobre transações é importante saber que CADA UMA delas é criptografada. Esse é um dos pilares do sistema, que garante autenticidade e a segurança ou confiabilidade do sistema desde que ele foi criado até hoje [2]. O processo de quebra da criptografia é extremamente trabalhoso e requer grande capacidade de processamento fazendo com que atualmente apenas grandes mineradores com milhares de máquinas muito caras [9] sejam os responsáveis por este processo. Muitas vezes os mineradores se juntam formando pools, uma espécie de cooperativa de mineradores para ter mais força computacional e aumentar as chances de minerar o próximo bloco, dividindo a recompensa por bloco que for minerado por um deles entre os participantes desse pool. Aliás, as máquinas usadas na mineração além de serem muito caras consomem muita energia elétrica. No seu exemplo hipotético o trabalho para processar 4 transações, digamos que seria, apenas como exemplo, fazer 4 flexões de braços e no caso de 99 transações seria o de executar 99 flexões de braços e assim por diante, ou seja, CADA transação requer uma “mão de obra” para descriptografar a transação e verificar se o ordenante (quem pediu a transferência/transação) realmente é o titular/dono da conta e pode realmente autorizar o débito/transferência da quantidade de bitcoins informada na transação para outra(s) conta(s) porque o destino pode ser uma, dezenas ou centenas de outras contas a partir de um débito. Feito esse trabalho de checagem da autenticidade de cada transação que foi “escolhida” na fila o minerador vai partir para o segundo trabalho que é o de gerar um bloco com as transações que ele descriptografou num período que deve ser menor do que os 10 minutos, em média. Lembrando que existem vários mineradores fazendo o mesmo processo (mas que não estão pegando as mesmas transações), ou seja, existe uma competição baseada na teoria dos jogos e aquele que chegar primeiro com um bloco pronto e que seja validado é aquele que vai ser recompensado com bitcoins gerados pelo sistema (atualmente 6,25 bitcoins). Ou seja, durante um período médio de 10 minutos literalmente falando, milhares de equipamentos caríssimos de mineração estarão fazendo mais ou menos a mesma coisa, pegando as mesmas ou pelo menos a maioria das transações que são retiradas por um minerador podem ser as mesmas que outros mineradores concorrentes estão pegando na fila, descriptografando ou quebrando a criptografia delas uma a uma para depois juntá-las num bloco, existe uma competição feroz em busca da recompensa que motiva os mineradores. Neste sentido não é a taxa que motiva os mineradores e sim a recompensa maior pela geração do novo bloco. Dificilmente o total de taxas ultrapassará o valor da recompensa paga por bloco minerado neste atual momento. O sistema foi concebido para que em algum momento essa equação se inverta e a cobrança de taxas seja mais rentável, mas ainda vai demorar para acontecer. Resumindo esta parte, os mineradores autenticam cada uma das transações realizando cálculos matemáticos complexos/pesados para validar as transações que chegam criptografadas garantindo que são verdadeiras ou válidas.
Um dos últimos blocos minerados foi bem pequeno em relação a média que costuma ter mais de mil transações e a taxa foi bem pequena:


Imagem retirada de: Blockchain.com Explorer | BTC | ETH | BCH

Nestas outras duas imagens é possível ver que dois blocos minerados em seguida apresentaram diferença de tamanho/quantidade de transações:

As duas imagens acima foram retiradas de: Blockchain.com Explorer | BTC | ETH | BCH

Abrindo um parêntese: Sem esse processo qualquer um poderia pegar / furtar / transferir saldo de outras contas já que todas as contas e saldos do Blockchain estão disponíveis para serem “xeretadas” ou consultadas pela internet. Só que ao fazer isso o sistema vai pedir a senha da conta e mesmo que você insira uma senha qualquer o minerador vai conferir essa senha que estará criptografada junto com os demais dados da transação e vai perceber que a senha não confere e vai descartar essa transação. Entre outras coisas o sistema permite que cada senha seja verificada pelo minerador, mas não permite que a partir dessa senha decodificada seja possível rastrear a chave que gerou essa senha impedindo o acesso de qualquer outra pessoa. Por isso é fundamental que a chave privada não seja compartilhada nem divulgada. No caso dos bancos são eles que “dão essa garantia – com base apenas na confiança, a famosa la garantia soy yo” de que apenas o titular da conta poderá usá-la. No caso do Blockchain do Bitcoin são os mineradores que “dão essa garantia – com base na matemática” e por causa disso o sistema todo é aberto e qualquer pessoa que se interessar pode acessar a rede consultando qualquer dado do Blockchain e se tiver condições pode ser um minerador. Esse é o conceito de descentralização (em teoria) que vai contra a ideia de centralização onde apenas alguns podem ser banqueiros. Na prática o sistema acabou indo na direção da centralização do processo de mineração que está nas mãos de poucos agentes/mineradores com muito poder de processamento e com base no uso de máquinas específicas, muito caras e usando energia barata. Por isso não temos grandes fazendas de mineração no Brasil e temos no vizinho Paraguai usando energia de Itaipu do lado de lá da fronteira que é bem mais barata, mesmo sendo produzida na mesma usina.

BLOCOS

Não basta que o minerador simplesmente faça as 4 ou 99 flexões de braço. O próximo passo é provar que ele realmente fez cada flexão de acordo com a quantidade de transações. Esse processo é chamado de PoW – Proof of Work ou prova de trabalho [3]. Para que ele possa acorrentar o bloco que ele criou na cadeia já existente e validada até aquele momento ele precisa realizar mais tarefas para definir o que podemos chamar de “cabeçalho” do bloco. Para isso ele precisa do hash do bloco imediatamente anterior (último), o timestamp, a data, o hash e o nonce do bloco que ele acabou de gerar com as transações que ele teve um trabalhão para juntar e descriptografar, uma a uma. O hash basicamente é gerado por meio de cálculos e identifica de forma única todos os dados contidos naquele bloco (transações na maioria, mas podem existir outras coisitas por lá como o registro de nascimento de um filho(a), uma homenagem para alguém que morreu, o registro de algum evento histórico etc.) entrando também no cálculo o hash do bloco anterior, o timestamp, o nonce do bloco anterior etc. O resultado sempre deverá ser igual se o cálculo for feito várias vezes para aquele bloco específico considerando que as entradas serão sempre iguais, porém será sempre exclusivo, ou seja, não vai se repetir e, portanto, não haverá dois hashes iguais na corrente de blocos. O que alguns chamam de mineração propriamente dito é o processo de encontrar esse hash do bloco que acabou de ser gerado. Daí veio o nome mineração porque é um processo meio parecido, o minerador (no caso o equipamento) vai ficar dando picaretadas em busca do ouro (as chances são pequenas de achar ouro), mas o processo parecido e aleatório, ao invés de picaretadas o sistema vai “chutando vários números” até que o sistema acabe encontrando o número correto, ou seja é um processo de repetição de tentativas e erros. Esse número sempre tem 4 zeros à esquerda (iniciais) [4].

BLOCKCHAIN

E se depois de toda essa “mão de obra” alguém resolve “estornar” ou excluir uma transferência feita lá atrás gerando um bloco refeito sem aquela transferência, ou seja, excluindo uma transação e revertendo ou devolvendo o saldo para a conta debitada? Como cada bloco tem um hash que é calculado com base no que o próprio bloco contém, se ele for alterado passa a ter outro número de hash que por consequência vai quebrar a corrente porque o próximo bloco terá que conter necessariamente o hash da transação anterior que vai ser diferente se o bloco anterior foi refeito com a exclusão de uma transação porque isso vai gerar outro hash recalculado lembrando que eles nunca se repetem. A solução para continuar a maracutaia desta situação seria refazer todos os próximos blocos da corrente para garantir que a exclusão ou o estorno seja realmente aceito pelo sistema, lembrando que em média a cada 10 minutos um novo bloco é gerado. Se a cada 10 minutos em média um novo bloco é gerado temos mais um bloco para ser refeito e assim por diante tornando a tarefa muito difícil. Esse é um dos motivos que tornam os Blockchains com cadeias longas de blocos já minerados e validados muito mais seguros e mais difíceis de serem hackeados devido ao esforço computacional que esse tipo de empreitada requer. Muitas vezes o custo para essa tarefa acaba sendo maior do que o benefício de excluir uma determinada transação lá do passado que já está registrada num bloco.

NODES

Um dos conceitos principais do Bitcoin é a descentralização e por consequência a exclusão dos intermediários garantidores (banqueiros, donos de cartórios etc.). Essa descentralização se materializa através da junção de diversos equipamentos numa rede (P2P) ponto a ponto, ou seja, que liga um PC a outro PC desde que os dois estejam conectados na internet. Um nó ou node basicamente é um PC conectado a rede do bitcoin desde que tenham sido instalado os programas específicos para isso (abre uma porta no seu PC para permitir que ele converse com os outros integrantes da rede etc.). Existem tipos diferentes de nós realizando tarefas distintas ou fazendo mais de uma tarefa dentro da rede. Cada minerador é um nó da rede e sua tarefa obviamente é o de gerar novos blocos. Cada novo bloco gerado por um minerador precisa passar por um processo de confirmação de terceiros, ou seja, ele próprio não vai validar o bloco dele porque assim ficaria fácil e quanto mais validações acontecerem mais confiável ele se torna. Essa tarefa é realizada por outros nós chamados de full nodes ou full validating nodes, super nós ou nós completos. Além de serem os principais validadores dos novos blocos que foram gerados pelos mineradores estes super nós guardam e disponibilizam e/ou propagam cópias completas do Blockchain do Bitcoin, que atualmente tem mais de 300 gigabytes de tamanho e mais de 760 mil blocos minerados. Estes super nós conseguem validar ou checar todos os blocos que já foram gerados desde o primeiro (gênesis) até o último mas geralmente eles se dedicam ao último. Estima-se que existam em torno de 10 mil full nodes em atividade. Existem os light nodes ou nós simples que não guardam cópias completas mantendo apenas alguns dados como cabeçalho dos blocos (uma espécie de resumo). Entre outras tarefas esses nós simples garantem a confiabilidade do sistema porque guardam informações essenciais de cada bloco da cadeia evitando que um atacante reverta alguma(s) transação(ões) de um bloco e consiga impor a cadeia falsa que ele gerou “enganando” os super nós da rede [5].

Abrindo outro parêntese: Como existem milhares de nós guardando dados da cadeia de blocos além do trabalho gigantesco de refazer a cadeia de blocos a partir do bloco que ele mesmo alterou terá que propagar para toda a rede essa cadeia adulterada. Esse tipo de ação vai chamar a atenção porque alguém vai se perguntar por que raios alguém está propagando uma nova cadeia de blocos se já existe uma corrente de blocos já confirmada e que estava sendo usada por todos os participantes do ecossistema? Esse minerador que está fazendo isso é conhecido ou apareceu de repente com uma cadeia de blocos diferente? Porque todos os blocos minerados a partir do bloco XXX.XXX foram todos minerados pelo mesmo minerador (hacker) se atualmente isso não é comum e mineradores diferentes se revezam na geração dos novos blocos? Num ecossistema que vale atualmente cerca de 900 bilhões de dólares certamente haverá gente ou participante capaz de duvidar e questionar esse tipo de situação. Se eventualmente isso acontecer e uma cadeia de blocos fraudada for aceita indevidamente por algum tempo sempre será possível retornar para a cadeia antiga e correta abandonando-se a cadeia indevida.

DIFICULDADE

A dificuldade dentro do Bitcoin não é apenas uma questão conceitual ou que é enfrentada isoladamente por cada minerador de acordo com os equipamentos que possui. A dificuldade é um dos parâmetros que fazem parte do algoritmo do sistema. Ele prevê que a cada 2016 blocos minerados o sistema ajustará esse nível de dificuldade para mais ou menos. Esse ajuste tem como objetivo manter o tempo médio de mineração de cada novo bloco em 10 minutos. Neste sentido independente da quantidade média de transações que esteja sendo minerada por cada bloco o minerador vai demorar cerca de 10 minutos. Não importa se o volume real de transações caiu muito e cada novo bloco vai ser minerado com meia dúzia de transações ou o volume de transações chegou na casa dos milhões por dia. O sistema vai ajustar a dificuldade de mineração para mais ou para menos de acordo com a força computacional direcionada para a mineração. Hipoteticamente, se por acaso todos os mineradores combinarem uma espécie de acordo para que todos gerem novos blocos com no máximo 50 transações para que possam minerar mais rapidamente e com isso possam ganhar mais recompensa em duas semanas mais ou menos o sistema vai reajustar a dificuldade para que estas 50 transações demorem os mesmos 10 minutos que demoram em média o trabalho para minerar 2 mil ou 3 mil transações [6].
Dá para perceber que quanto mais mineradores estiverem tentando gerar novos blocos (mais capacidade computacional) maior será a dificuldade para a realização da tarefa de gerar novos blocos, sendo que esse processo é automático e ajustado pelo sistema. Isso é feito para ajustar o tempo de mineração para uma média de 10 minutos porque se há muita gente minerando a chance de sucesso aumenta e o tempo vai diminuir cabendo ao sistema reajustar e aumentar a dificuldade.


Imagem retirada de: hash-rate

QUESTÕES SOBRE O ECOSSISTEMA DO BITCOIN

Atualmente a média diária (24 horas) de transações que entram na rede Bitcoin gira em torno de 190 mil. Isso representa uma média de cerca de 8 mil transações por hora. Considerando que o tempo médio de processamento de um novo bloco é de 10 minutos temos 6 blocos novos gerados por hora, ou seja, para dar vazão ou processar as transações cada bloco deve ter no mínimo 1350 transações [7]. Sendo otimista e pegando a quantidade máxima de transações do exemplo hipotético, que no caso foi de 99 transações por bloco teríamos cerca de 15 mil transações processadas por dia deixando para trás 175 mil transações pendentes na fila por dia. Em poucos dias a fila vai ficar gigante e muitas pessoas vão desistir do bitcoin porque não fará sentido aguardar dias, semanas ou meses para realizar uma simples transferência de saldo da Conta 1 para a Conta 2. Na prática uma transação pode ser confirmada em pouco tempo, menos de 1 minuto mas já criticam o tempo médio de 10 minutos para a confirmação de uma transação, o que dizer de uma demora de muitas horas, dias, semanas e meses? Possivelmente inviabilizaria operacionalmente o sistema empurrando os usuários para outras formas de uso ou para os concorrentes caso um Blockchain comece a funcionar desta forma, com grande volume de transações entrando e poucas transações sendo processadas. Que vantagem o minerador “esperto” que gera novos blocos com poucas transações pensando nas melhores taxas vai levar se dentro de pouco tempo todo o sistema vai quebrar por causa da ganância dele mesmo que pensou apenas nele. Ele vai processar poucas transações por bloco deixando uma montanha de usuários na fila esperando que a sua transação seja concluída? No fim será um tiro no próprio pé. De que vai adiantar os bitcoins cobrados como taxa por algum tempo se eles vão perder o valor logo mais adiante? Como não são os próprios mineradores que validam os novos blocos e sim os full nodes por qual motivo esses full nodes (é gente que entende bem esse negócio em todo a sua extensão) sempre irão validar novos blocos com poucas transações sabendo que essa prática vai inviabilizar todo o ecossistema? Acredito que os validadores ou full nodes continuarão validando novos blocos com uma boa quantidade de transações incluídas nele. Não sei se acontece, mas pode ser que a cada 10 minutos sejam gerados novos blocos com poucas transações a partir de um PC caseiro podendo até estarem devidamente minerados. Nada impede que isso aconteça, mas a lógica impede que esse processo se concretize porque no final do dia o próprio sistema vai colapsar se esse tipo de prática se perpetuar. A ideia de um ecossistema é que ele seja viável e funcione em benefício de todos e não apenas em benefício de um ou outro minerador esperto que vai tentar abocanhar as melhores taxas para si em detrimento de toda uma cadeia de usuários realizando milhares de transações por hora. Por qual motivo os mineradores comprariam máquinas caríssimas, construídas especialmente para essa finalidade ou se juntariam em cooperativas se eles poderiam usar um PC caseiro para gerar novos blocos com poucas transações? Se não fazem é porque existem coisas que vão além da simples escolha pela melhor taxa. No fim do dia o Bitcoin é muito mais do que o preço de 1 bitcoin subindo ou caindo, muito mais do que um sistema construído para beneficiar apenas um ou poucos mineradores que poderiam escolher algumas poucas transações que pagam as maiores taxas em detrimento de todo um ecossistema que será prejudicado. E se mesmo assim esse processo vier a acontecer e se consolidar sempre é possível realizar ajustes no sistema que impeçam esse tipo de procedimento limitando o valor da taxa ou a quantidade mínima de transações por bloco, por exemplo [8]. Para encerrar vale lembrar que um sistema que processa milhares de transações não funciona manualmente, ou seja, no geral ele acontece seguindo uma programação e os equipamentos simplesmente ficam ligados processando a coisa toda sem que uma pessoa fique monitorando cada equipamento por trás de uma tela decidindo qual transação vai e qual fica para trás.

1 – Aceleradores de transações:

Grátis: https://www.viabtc.com/tools/txaccelerator/

Pago: https://pushtx.btc.com/

2 - O que é Bitcoin Script?

3 - https://livecoins.com.br/proof-of-work-blockchain-bitcoin/

4 - Mineração de Bitcoin Como você cria um bloco?

5 - https://pt.quora.com/O-que-são-full-nodes-nós-completos-na-rede-Blockchain

6 - Qual é a dificuldade de mineração em Bitcoin?

7 - Blockchain.com Charts Summary

8 - O que é um BIP - Proposta de Melhoria de Bitcoin?

9 - https://shop.bitmain.com/

Na postagem abaixo escrevi sobre uma homenagem que foi gravada no bloco 138725 do Blockchain do Bitcoin em homenagem a Len Rabbit Sassaman, um dos supostos ou possíveis criadores do Bitcoin no entender de alguns amigos dele. Ou seja, nem toda transação se resume a débito e crédito.

2 curtidas

Obrigado pelos esclarecimentos, recheado de conhecimento porém gostaria de sabe sua opnião sobre esse exemplo, pois apenas com as explicações do autor não ficou claro.

veja esse bloco 693715

um grande pooll minerou um bloco com 0 transações igual ao genesis qual seria o sentido disso? ganhar bitcoin sem validar nada.

Pela explicação dele e algumas outras a ideia é minerar o maximo de transaçõe possivel para ganhar os bitcoins da transação coinbase + as taxas, ou seja não fez sentido o cara minerar um bloco com 0 transações como isso pode ser?

Obrigado.

Se você tiver paciência e der uma pesquisada procurando blocos pequenos vai encontrar muitos blocos iguais ao 693715, outro exemplo bem mais recente você encontra no dia 24/11/2021 olhando os blocos 711072 e 711104 que também tem zero transações e nem gera taxa para o minerador.
A recompensa ou o pagamento feito ao minerador por cada bloco pode ser processada num bloco com várias outras transações ou pode ser processada separadamente, como é o caso do bloco citado no vídeo onde você pode notar que a contrapartida, ou seja a origem do lançamento a débito não é uma conta do sistema porque não houve transferência e sim geração/criação de novas moedas. Quando é uma transferência de bitcoin já existente de uma conta para outra você vê a conta debitada e a conta(s) creditada(s).
No print abaixo é possível ver a transação que gera bitcoin para algum minerador (Coinbase) e depois o resto das demais transações usuais do sistema dentro de um mesmo bloco.


Imagem retirada do site: Blockchain.com Explorer | BTC | ETH | BCH

No link abaixo você vai encontrar vários blocos iguais aos que o cara mostra no vídeo, ou seja, onde o minerador recebe o pagamento da recompensa gerando um bloco apenas para essa finalidade.

Resumindo: Se você procurar no Blockchain do Bitcoin blocos que tenham apenas uma transação vai encontrar várias, até no mesmo dia. Se olhar bem vai ver que são transações de pagamento de recompensa, blocos gerados apenas com essa finalidade e novamente reforçando, não são blocos gerados por um minerador esperto apenas para ganhar taxa ou recompensa, o próprio bloco é gerado para pagar uma recompensa que ele tem direito.

A conta creditada na transação 693715 que começa com 17H… já recebeu recompensa outras vezes, pertence a algum minerador. No print abaixo é possível ver outros créditos do mesmo tipo, de transação Coinbase para esta mesma conta.


Imagem retirada de: Blockchain.com Explorer | BTC | ETH | BCH

Sobre o cara do vídeo parece que ele tem a mesma dúvida que você tem, ou seja, não entende porque existem blocos com apenas uma transação, como a que ele usou como exemplo no vídeo, a explicação neste caso específico é simples como fiz acima e para gente como ele que faz vídeo tentando explicar como funciona caberia esclarecer o público dele e me parece que ele fez um vídeo gerando mais dúvida.

Eu realmente ainda estou com dúvidas sobre isso por que eu tinha visto que sempre a primeira transação do bloco é a coin base.

Qual seria a referencia a está parte? por que nunca tinha ouvido falar disso.

Pelo que entendi da sua explicação o minerador pode processar as transações “fiado” sem receber a coinbase e confia que a rede um dia vai dar um bloco facil pra ele minerar e receber apenas a coin a base em um bloco separado? me pareceu mto estranho e sujeito a falhas ou entendi completamente errado.

Obrigado.

Na realidade eu cometi um erro e você estava certo a respeito de cada bloco ter um script gerando o pagamento da recompensa para aquele bloco. Ou seja, por diversos motivos tais como malandragem mesmo, sacanagem, confusão do próprio minerador porque eles mineram milhares de transações e podem começar a minerar outro bloco antes de terminar um e até mesmo por protesto. Os blocos vazios existem desde sempre e não há nada que impeça a mineração de um bloco vazio, mas pelo fato dele ser vazio não significa que não deu trabalho para o minerador, dá trabalho achar o nonce por exemplo, certamente teve menos trabalho do que teria incluindo diversas transações. Provavelmente estes blocos vazios ainda não representam algo tão significativo a ponto de exigir algum tipo de correção dos mantenedores do sistema.
Vou dar uma pesquisada com mais calma a respeito, se eu encontrar algo que mereça ser registrado por aqui eu voltarei ao assunto. Por enquanto vale dizer que blocos vazios existem desde que o bitcoin começou e dos quase 800 mil blocos uns 90 mil devem ser blocos vazios. Uns dizem que pelo fato de estender a rede somando mais um bloco ajuda na segurança mas isso eu ainda não sei bem se faz sentido.
Aparentemente os validadores checam se estes blocos vazios cumprem todas as regras estabelecidas no check list do bitcoin core e se não encontrarem erros acabam validando estes blocos, mesmo que estejam vazios.
Outra informação que pode ser interessante é que existe uma trava que impede o minerador de sair gastando a recompensa recebida logo de cara, somente depois que outros 100 blocos tenham sido incluídos na corrente a recompensa pode ser gasta pelo minerador.

1 curtida

Muito interessante essa trava, obrigado pelas respostas me ajudou bastante, se eu encontrar algo relevante também posto aqui.

1 curtida