O que é a cadeia de blocos?

Desde o problema dos generais bizantinos até ao consenso, este artigo explica o que é a cadeia de blocos e como funciona.

Jan 07, 2022
|

O que é a Blockchain Otp

Em termos muito simples, uma cadeia de blocos é um grupo de computadores que trabalha em conjunto para processar e registar dados, garantindo a autenticidade e a segurança das transacções de dados. De uma perspetiva mais abstrata e prospetiva, é o futuro potencial das transacções financeiras, que não está limitado pela localização global ou dependente de intermediários terceiros.

O que é a cadeia de blocos?

Uma das principais características da cadeia de blocos é a forma como regista os dados, que são:

  • Imutável
  • Transparente
  • Descentralizado

Imutável significa que nenhuma entidade pode modificar os registos da transação.

Transparente implica que qualquer pessoa pode ver e verificar as transacções numa cadeia de blocos através da Internet.

Descentralizada significa que nenhuma entidade única pode governar toda a rede.

A Bitcoin foi a primeira aplicação a utilizar a tecnologia de cadeia de blocos (ironicamente, o termo “cadeia de blocos” foi introduzido depois da Bitcoin). A tecnologia é agora utilizada noutros projectos de criptomoeda e aplicações comerciais, como o financiamento do comércio, as remessas e o comércio eletrónico.

Sistemas distribuídos

A cadeia de blocos é um sistema distribuído, em que os componentes de hardware ou software localizados em computadores ligados em rede comunicam e coordenam as suas acções através da transmissão de mensagens. Muitos dos problemas com que a cadeia de blocos se depara já foram discutidos ou resolvidos num sistema distribuído.

As principais características de um sistema distribuído são:

  • Concorrência
  • Sem relógio global
  • Falha independente

Concorrência

A simultaneidade significa que vários cálculos estão a ser efectuados simultaneamente em máquinas diferentes. Pode parecer intuitivo, mas a complexidade do funcionamento conjunto de numerosas máquinas é evidente (ver abaixo).

Sem relógio global

Num sistema distribuído, cada participante, ou máquina, tem o mesmo peso na decisão do que está certo ou errado. Não existe uma única fonte de verdade num sistema distribuído. Por exemplo, a máquina A pode acreditar que são 11:13, enquanto a máquina B pode acreditar que são 11:14.

Uma vez que o atraso da rede pode complicar ainda mais a situação, mesmo que duas máquinas tenham a mesma hora localmente, não saberão quanto tempo a rede demorou a transferir os dados. Existe sempre um ruído potencial quando uma máquina tem de confirmar a hora do seu vizinho.

Falha independente

O fracasso independente é melhor explicado como uma situação hipotética. Por exemplo, a máquina A pode precisar de dados da máquina B para continuar o seu trabalho, pelo que precisa de comunicar com a máquina B e esperar por uma resposta.

No entanto, a máquina B pode falhar (por exemplo, desligar-se devido a sobreaquecimento) e a rede pode atrasar-se arbitrariamente ou mesmo desligar-se. O projetista do sistema deve ter em conta a comunicação e as respostas a falhas para garantir que o sistema se mantém intacto.

Blockchain e o problema dos generais bizantinos

A cadeia de blocos foi inventada para resolver o problema dos generais bizantinos, que é particularmente problemático para os sistemas de computação distribuídos, em que os componentes podem falhar e existe informação imperfeita sobre se um componente falhou.

Para ilustrar claramente o problema, comecemos por uma história:

Um grupo de generais, cada um comandando uma parte do exército bizantino, cercam uma cidade. Têm de decidir se atacam ou recuam. Mas seja qual for a sua decisão, o mais importante é que cheguem a um consenso. Mas o consenso é difícil de alcançar porque os generais não conhecem as decisões dos outros generais.

Considere o seguinte:

  • Há três generais: A, B e C.
  • Os generais devem atacar o inimigo ao mesmo tempo; caso contrário, correm o risco de falhar.
  • Os generais não têm um meio eficaz de comunicar instantaneamente.
  • Por isso, precisam de enviar um mensageiro a outros para transmitir a sua mensagem.
  • Têm de confirmar que os outros generais vão atacar ao mesmo tempo.
  • Por conseguinte, os generais devem transmitir mensagens e confirmações entre si antes de lançarem um ataque.

O problema complica-se ainda mais se considerarmos que podem existir traidores. Não temos forma de garantir que todos os mensageiros são de confiança; para além disso, um mensageiro pode ser capturado e forçado a entregar uma mensagem forjada.

A partir da história acima, em relação à cadeia de blocos, podemos inferir que:

Os generais bizantinos representam os nós de uma cadeia.

Cada consenso é formado por um grupo de generais que representam um bloco (ou seja, um conjunto de transacções válidas). Todos os generais devem confirmar a decisão uns dos outros para chegarem a um consenso antes de lançarem um ataque coordenado. Da mesma forma, numa cadeia de blocos, todos os nós devem concordar com o próximo bloco a ser confirmado.

Os nós estão sujeitos a falhas.

Se um dos nós, por exemplo, partilhar informações inconsistentes (conhecido como nó malicioso) ou não responder, a rede pode ter problemas.

É por isso que cada um deve reconhecer a informação que os outros conhecem. Ao mesmo tempo, todos precisam de estar cientes da informação que cada um tem; cria um cenário em que a informação reconhecida e conhecida pela maioria é a decisão final (ou seja, consenso).

Consenso na cadeia de blocos

O problema dos generais bizantinos constitui um bom exemplo de compreensão do consenso. Requer um acordo entre vários processos (ou agentes) para um único valor de dados. Os protocolos de consenso devem ser tolerantes a falhas ou resilientes, uma vez que alguns dos processos (agentes) podem falhar ou não ser fiáveis de outras formas. Os processos devem, de alguma forma, apresentar os seus valores candidatos, comunicar uns com os outros e chegar a um único valor de consenso.

Os participantes numa rede descentralizada fazem-no utilizando servidores descentralizados (nós). Cada nó precisa de concordar com um conjunto de regras pré-concebidas (chamadas“mecanismos de consenso“) para participar na rede blockchain e chegar a um acordo. Usando estes mecanismos, podemos resolver o Problema dos Generais Bizantinos.

Saiba mais sobre o consenso em blockchain: Como chegar a um acordo: Diferentes tipos de consenso para Blockchain.

Sistemas centralizados, descentralizados e distribuídos

Enquanto um sistema centralizado é fácil de compreender, a diferenciação entre um sistema descentralizado e um distribuído é muitas vezes confusa.

Um sistema distribuído armazena e processa dados em diferentes locais ou computadores; os dados são normalmente replicados. Um sistema descentralizado significa que nenhum participante individual pode decidir como o sistema se comporta. Deve agregar as respostas de várias partes antes de tomar uma decisão.

Um sistema descentralizado deve ser distribuído, enquanto um sistema distribuído pode ou não ser descentralizado. Por outras palavras, um sistema descentralizado é um subconjunto do sistema distribuído.

Para um mergulho mais profundo, este artigo de Vitalik Buterin pode ajudar a compreender a descentralização.

Alternativas à cadeia de blocos

Desde a invenção da Bitcoin, muitos generalizaram a sua tecnologia e chamaram-lhe “cadeia de blocos”. No entanto, a conceção original do Bitcoin não é a única que funciona.

Tecnologia de registo distribuído

A “Distributed Ledger Technology” (DLT), como os Directed Acyclic Graphs (DAGs) ou a Block Lattice, é uma estrutura de dados alternativa à Bitcoin. A DLT cumpre a visão de um sistema descentralizado, tal como inicialmente desejado, mas já não podemos chamar a estas alternativas uma “cadeia de blocos”. Assim, o termo DLT foi inventado para generalizar todos os sistemas semelhantes que visam resolver problemas de consenso de forma descentralizada.

Palavras finais sobre a cadeia de blocos

Os mecanismos subjacentes à cadeia de blocos (ou sistemas semelhantes) – e a integração de mecanismos de segurança no seu processo – permitiram-nos passar de um sistema de segurança centralizado, como as instituições financeiras tradicionais, para o mundo criptográfico. Isto é apenas o começo, e o sistema está preparado para se tornar ainda melhor à medida que evolui.

Leia como a cadeia de blocos está agora a ajudar a melhorar os programas de IA.

Diligência devida e fazer a sua própria investigação

Todos os exemplos apresentados neste artigo têm um carácter meramente informativo. O utilizador não deve interpretar essas informações ou outros materiais como aconselhamento jurídico, fiscal, de investimento, financeiro ou outro. Nada aqui contido constituirá uma solicitação, recomendação, endosso ou oferta da Crypto.com para investir, comprar ou vender quaisquer moedas, tokens ou outros activos criptográficos. Os rendimentos da compra e venda de activos criptográficos podem estar sujeitos a impostos, incluindo o imposto sobre mais-valias, na sua jurisdição.

O desempenho passado não é uma garantia ou um indicador do desempenho futuro. O valor dos activos criptográficos pode aumentar ou diminuir, e pode perder a totalidade ou um montante substancial do seu preço de compra. Ao avaliar um ativo criptográfico, é essencial que faça a sua investigação e a devida diligência para fazer o melhor julgamento possível, uma vez que quaisquer compras serão da sua exclusiva responsabilidade.

Partilhar com amigos

Pronto para iniciar a sua jornada com a crypto?

Obtenha o seu guia passo-a-passo para criar uma conta na Crypto.com

Ao clicar no botão Começar, reconhece ter lido a Aviso de Privacidade do Crypto.com onde explicamos como utilizamos e protegemos os seus dados pessoais.
Mobile phone screen displaying total balance with Crypto.com App

Common Keywords: 

Ethereum / Dogecoin / Dapp / Tokens