Bloco Canônico (Canonical Block)
"Os blocos canônicos são aqueles oficialmente aceitos na blockchain e representam a versão válida e estabelecida da verdade no sistema. Eles são aceitos pela maioria dos participantes da rede e são incorporados na cadeia principal. A rede chega a um consenso para determinar quais blocos são canônicos, geralmente escolhendo a cadeia mais longa ou com mais apoio da rede.
Os Blocos Canônicos são blocos que são oficialmente aceitos na blockchain e que representam a única versão válida da verdade no sistema de uma determinada blockchain. Eles são a linha de consenso atual e estabelecida da blockchain. Esses blocos são aceitos por mais da metade dos participantes da rede (na maioria das blockchains baseadas em Prova de Trabalho ou Prova de Participação) e, por isso, são incorporados na cadeia principal. A blockchain, portanto, está sempre se referindo à sequência canônica de blocos.
Blocos não canônicos, por outro lado, são blocos que não foram aceitos na blockchain principal. Isso pode ocorrer por uma variedade de razões. Por exemplo, pode haver um desacordo entre os nós da rede sobre qual bloco deve ser o próximo na cadeia. Isso pode resultar em uma bifurcação (ou "fork") da cadeia, onde há duas potenciais cadeias de blocos competindo para serem a versão canônica. Esses blocos que não são aceitos na cadeia principal se tornam não canônicos.
A situação pode ser resolvida quando os nós da rede chegam a um consenso sobre qual cadeia deve ser a verdadeira. Isso geralmente acontece quando uma das cadeias se torna mais longa que a outra, sinalizando que tem mais apoio da rede. Quando isso acontece, os blocos na cadeia mais curta são descartados, ou se tornam "órfãos", e os blocos na cadeia mais longa se tornam os blocos canônicos. Blocos não canônicos também podem ser aqueles que foram criados por nós mal-intencionados na rede. Esses nós podem tentar criar blocos inválidos com transações fraudulentas. Se os outros nós da rede detectarem essa atividade, eles rejeitarão esses blocos, tornando-os não canônicos.
A compreensão desses conceitos é crucial, especialmente no contexto de mineração de criptomoedas e segurança da rede blockchain. Cada bloco em uma blockchain contém um certo número de transações que são consideradas válidas pela rede. Quando um novo bloco é minerado ou forjado (no caso de sistemas de Prova de Participação), esse bloco é adicionado à blockchain. No entanto, se houver concorrência na rede sobre qual bloco deve ser adicionado a seguir, isso pode levar à criação de blocos canônicos e não canônicos.
Em um cenário ideal, apenas um bloco é adicionado à blockchain de cada vez. Mas na prática, devido ao tempo de latência da rede e à concorrência entre os mineradores ou validadores, pode haver situações em que dois ou mais blocos válidos são produzidos quase ao mesmo tempo. Esses blocos podem então competir para serem o próximo bloco na blockchain.
Neste ponto, a rede deve decidir qual bloco aceitar. Isso geralmente é feito por meio de um processo conhecido como "consenso de Nakamoto", nomeado em homenagem a Satoshi Nakamoto, o criador do Bitcoin. Este processo estipula que a versão da blockchain que tem o maior trabalho computacional investido nela (no caso da Prova de Trabalho) ou a maior quantidade de participação (no caso da Prova de Participação) é a versão correta. Assim, o bloco que é aceito na cadeia mais longa torna-se o bloco canônico, e qualquer bloco concorrente torna-se não canônico e é descartado.
Entretanto, vale destacar que em sistemas baseados em Prova de Participação, diferentes mecanismos de consenso podem ser utilizados, como o protocolo Casper na Ethereum, que tem mecanismos para penalizar validadores que tentam trabalhar em múltiplas cadeias simultaneamente. No entanto, a existência de blocos não canônicos não é necessariamente uma indicação de comportamento malicioso. Eles podem simplesmente ser o resultado de latência na rede ou desacordos temporários entre nós.
Os blocos não canônicos, uma vez identificados como tal, não têm impacto no estado da blockchain. Eles são essencialmente considerados "não existentes" pela rede. No entanto, entender o processo pelo qual os blocos canônicos e não canônicos são determinados é crucial para compreender como as blockchains mantêm sua integridade e segurança.
Last updated