Blockchain, fork, como funciona?

Tenho uma pergunta a fazer.
Uma vez que cada alteração gerada num determinado bloco anterior gera novo hash que desabilita os blocos subsequentes sendo nessaria uma nova mineração para valida-los, isso e chamado de fork?
Tenho dúvidas técnicas de como o Bitcoin cash nasceu .
Espero que me ajudem!

Olá, seja bem-vindo!

Sobre a questão do Hash

Uma das diferentes formas pelo qual um Blockchain pode ser chamado é: “protocolo da confiança”. Um blockchain “raiz” se é que podemos chamá-lo assim é universal, confiável e compartilhável publicamente. Cada novo bloco é adicionado a cadeia de forma sequencial, cronológica e interligada. O que liga um novo bloco contendo as transações e outras informações de cada bloco a todos os demais blocos anteriores é chamado de HASH, como você citou na pergunta. Alguns dizem que esse HASH é uma espécie de assinatura criada quando um bloco é finalizado. O HASH de cada bloco contém por exemplo o número do bloco anterior e o número do próximo bloco, a data e a quantidade de transações que foram incluídas naquele bloco. É a existência deste HASH que dá a característica de confiabilidade e integridade da cadeia de blocos. Como os blocos são interligados e carregam dados do bloco anterior, qualquer mudança feita num bloco da cadeia, como por exemplo a alteração no valor de uma transação já processada, gera alteração no HASH do próprio bloco e por consequência nos demais HASH’s da cadeia de blocos. Isso você percebeu pela sua pergunta.

Nos Blockchains do tipo “raiz” que ficam disponíveis na rede é possível verificar a integridade de uma cadeia ou de um bloco específico a qualquer momento. Nos Blockchains do tipo “raiz” como é o caso do Bitcoin, a cada 10 minutos em média é gerado um novo bloco. Desde que foi criado lá em 2009 até agora existem milhares de cópias do Blockchain do bitcoin espalhados pela rede. Os Blockchains “confiáveis” são exatamente iguais em cada cópia existente e essa igualdade é garantida pelo HASH. Não basta abrir um bloco qualquer no meio da cadeia, alterá-lo e sair dizendo que uma transação não ocorreu ou o valor transferido não era aquele porque você tem uma cadeia de blocos “re-minerada” mostrando isso enquanto existem milhares de cópias espalhadas pela rede (com hash’s iguais) e apenas a sua cadeia tem hash’s diferentes caso você tenha se dado ao trabalho de reprocessar toda a corrente após alterar um bloco lá detrás. Existem algumas regras para que um bloco seja ligado ao bloco anterior e algumas vezes surgem divisões temporárias na rede, mas essa divisão não prospera porque a cadeia mais antiga prevalece. Isso ocorre por exemplo quando dois mineradores finalizam seus blocos no intervalo de 10 minutos e algumas vezes uma entra primeiro por questão de segundos e a outra acaba ficando “solta” como se tivesse sido ocorrido um “hard-fork”. Outro ponto que tem influência nesse processo é a validação dos outros participantes da rede. No caso do Bitcoin, por exemplo, cada participante que consegue minerar (montar ou criar) um bloco e por consequência incluí-lo na rede geralmente é conhecido. É praticamente impossível pequenos participantes minerarem um bloco hoje em dia, o que dizer de alguém que é desconhecido e consegue minerar todos os últimos 100 blocos de uma cadeia de blocos no Bitcoin, por exemplo. As chances desse tipo de coincidência ocorrer são praticamente de zero. Como surgem novos blocos a cada 10 minutos em média além de minerar os blocos a partir daquele onde foi feita a alteração é preciso também considerar que os novos blocos estão sendo agregados na cadeia e também terão que ser re-minerados, por assim dizer. Esse processo exige capacidade de processamento que não se tira de um ou de meia dúzia de PC’s, mesmo que tenham placas gráficas de última geração, apesar deles estarem praticamente escassos ou sendo vendidos a preços de moto ou carro popular. Antes de partir para uma empreitada deste tipo é preciso avaliar o custo x retorno. Se este tipo de alteração fosse simples ou fácil estaria sendo feito a todo momento, principalmente quando o preço de uma criptomoeda, como por exemplo o Bitcoin sobe muito como aconteceu no começo deste ano. No entanto, desde que foi criado em 2009 o Bitcoin nunca passou de forma concreta e objetiva por algum problema deste tipo porque não é tão simples assim. Uma rede como é o caso do Bitcoin, por exemplo, hoje em dia tem uma exposição muito grande da sua confiança porque grandes investidores estão comprando bastante bitcoins (bilhões de dólares) e, portanto, ficarão de olho na sua confiabilidade.

Sobre SHA256:

Vídeo explicando o que é um Hash:

Vídeo demonstrando como é um Blockchain e o que acontece quando se altera algum dado de um bloco:

Sobre a questão do “fork”

Inicialmente é importante saber que existem basicamente dois tipos de “fork’. O “soft-fork” e o “hard-fork”. Existe também um “fork” chamado de “temporário”, mas este “fork”, como o próprio nome diz é temporário enquanto os outros dois (“soft” e “hard” promovem alterações permanentes no sistema (ou de forma mais técnica: alterações permanentes nas regras do protocolo). Também levando em consideração o adjetivo “soft” é possível concluir que ele é do tipo mais simples, que faz alterações pequenas e geralmente aceitas pela comunidade (usuários, mineradores, desenvolvedores etc.), mesmo que tenham sido até objeto de uma discussão mais acalorada antes da sua adoção. Já no caso do “hard-fork”, como é possível supor, sua implementação causa o que é chamado na comunidade de “bifurcação”, divisão ou separação na cadeia de blocos, ou seja, em determinado momento (a partir de um bloco específico), o que era uma corrente única de blocos divide-se em duas e dali em diante temos dois Blockchains. Uma continua seguindo as regras do sistema que já existiam (exemplo: bitcoin) e a nova corrente que surgiu da divisão passa a formar uma sequência de blocos distinta da original com algumas regras (não todas porque neste caso se cria um Blockchain do zero) diferentes. Aqui cabe também dizer que existem variantes de “hard-fork”, falando em termos mais gerais. A separação pode ser do tipo planejada. Se uma determinada criptomoeda sofrer um ataque que coloque em risco a integridade do seu Blockchain pode ser necessário “abandoná-la” fazendo-se as implementações necessárias para torná-la segura novamente e posteriormente criando-se uma nova corrente de blocos (separada da original). A numeração dos blocos da nova corrente que nasceu a partir da divisão continua seguindo a numeração original. Alterações, ajustes, correções e melhorias são propostas constantemente por entusiastas, desenvolvedores etc. Qualquer um (literalmente falando eu ou você) poderá propor mudanças, por exemplo no Bitcoin. Todavia a implementação e, portanto, a adoção desta(s) mudança(s) dependerá da concordância (chamado tecnicamente de consenso) que é a etapa anterior a implantação. Por causa desta necessidade de haver consenso de uma grande maioria na rede para que uma mudança ou alteração permanente nas regras do protocolo sejam adotadas uma proposta de alteração do tamanho de um bloco para “X” que não é consenso na rede pode acabar se transformando numa alteração via “soft-fork” para “x/2” ou seja, uma proposta para aumentar o tamanho de cada bloco para 10 MB ser implementada por consenso da maioria para 5MB.

O Bitcoin Cash conhecido como BCC ou BCH nasceu desta forma “contenciosa” lá em 2017 por falta de consenso entre uma parte que não concordava em aumentar o tamanho do bloco, que naquela época era de 1MB para 8 MB. O Bitcoin Cash já nasceu com tamanho de bloco aumentado para 8 MB que posteriormente foi aumentado para 32 MB. Em 2018 o próprio Bitcoin Cash já sofreu um “hard-fork” dando origem ao Bitcoin SV que nasceu com tamanho de bloco de 128 MB.

O tamanho do bloco é uma discussão interminável.

Sobre o nascimento do Bitcoin Cash:

Não sei como você chegou até o mundo dos Blockchains mas como regra os iniciantes buscam um documento chamado de “white paper”. O bitcoin tem o seu e como o bitcoin cash nasceu a partir do bitcoin original ele também adota o “white paper” do bitcoin, ou seja, o bitcoin cash não tem um “white paper” exclusivo.

Se você está interessado em se aprofundar especificamente neste projeto existe o endereço abaixo, que é o fórum oficial, que pode te ajudar a esclarecer dúvidas depois de se cadastrar.

Espero ter ajudado.

Apenas como curiosidade, no site abaixo você consegue ter uma visão sobre o mempool que é a porta de entrada ou volume de chegada das transações antes delas serem mineradas ou processadas.

Bitcoin Cash & Bitcoin Transaction Visualizer - TxStreet.com

Nossa valeu mesmo pela explicação ajudou muito,
Porém me surgiu uma nova dúvida “as transançoes segwit armazena a validações de transações (testemunha ) nos nós legado?”

O SegWit ou Segregated Witness é uma alteração do tipo soft-fork e entre outras finalidades foi feito para diminuir uma fragilidade do sistema. Não sei o que você quer dizer com “nós” legados. De toda forma entre outras alterações o SegWit criou uma diferenciação no endereço e exige uma carteira (wallet) que adote esta implementação. A “mágica” com o endereço da conta é que os mineradores conseguem armazenar até 4x mais dados de endereços SegWit num bloco e por causa disso se diz que o SegWit aumentou a capacidade do bloco de 1 MB para até o limite máximo de 4 MB que dificilmente é atingido por outros motivos. Em média gira na casa dos 2 MB de dados (bem simploriamente falando, é como se os endereços do tipo SegWit de um bloco tivessem sido compactados, não é exatamente assim, mas é mais ou menos isso). No fim a cadeia de blocos continua sendo a mesma de sempre e esses dados “compactados” podem ser recuperados se for necessário. Isso reflete também reduzindo custos dos mineradores. Como os endereços SegWit são diferenciados os mineradores conseguem identificar quais transações estão vinculadas a contas do tipo SegWit.