Validação de Blocos e Comparativo Final ⚔️

Shawn Tabrizi - ETH Denver 23 - 3/3

MFF TV
6 min readApr 5, 2023
Validação de Blocos e Comparativo Final

Youtube | TikTok | Instagram | Twitter | Rumble | Quora

Esse é o último de uma série de 3 artigos cobrindo os pontos mais relevantes trazidos por Shawn Trabizi em sua apresentação no ETH Denver 2023. Nesse artigo veremos como funciona a Validação dos blocos nas Parachains e finalizaremos com o comparativo geral das formas de Segurança Compartilhada. Se você não leu o primeiro artigo ele se encontra aqui.

Validação de Parachain ✅

Nessa última parte Shawn faz um panorama geral de como os blocos são formados na rede e como ocorrem as integrações entre as Parachains. Ele trás os seguintes tópicos que veremos abaixo.

Fragmentação da Execução

É o processo de distribuir as responsabilidades de execução da blockchain por todo o conjunto de validadores. Na Polkadot todos os validadores executam cada bloco da Relay Chain, mas apenas um subconjunto executa cada bloco de uma Parachain. Isso permite que a Polkadot tenha escalabilidade e faça com que ataques se tornem mais difíceis.

Dessa forma as responsabilidades são delegadas de maneira paralela no que ele chama de “Execução Paralelizada”.

Como validar um bloco?

  1. Primeiramente é necessário um Bloco de Transações que contém as mudanças que devem acontecer.
  2. Em segundo, uma fração mínima relevante da base de dados. Aqui o apresentador dá um exemplo de uma blockchain com 1 milhão de usuários em que um bloco a ser validado tenha apenas transações de dois deles. Nesse caso não seria necessário ter os balanços de todos os usuários da rede, mas apenas os dados mínimos dos dois usuários envolvidos naquele bloco (uma Merkle Trie parcial, que configuraria a Prova de Validação PoV).
  3. Em seguida a função de estado de transição Wasm Runtime valida o bloco, gerando um novo dado do estado modificado (raíz de estado).
Como validar um bloco?

Sendo assim, as Parachains enviam seus novos blocos com uma prova de validação e são armazenados na Relay Chain. Antes disso, porém, o Protocolo Parachains precisa validar as raízes de estado anteriores e “bater” a informação. Para realizar isso um subconjunto aleatório de validadores é designado para executar os segmentos dos blocos das Parachains, para então formar a nova raiz de estado e então incluí-los na Relay Chain para que o processo possa se repetir.

Como validar um bloco?

Como impedimos que as coisas deem errado?

Toda a teoria de como os blocos são validados é muito interessante mas Shawn coloca que nem sempre as coisas vão acontecer como está no papel. Sendo assim, existem algumas checagens que devem ser feitas para garantir que tudo ande nos trilhos, sendo elas:

Disponibilidade de Dados

Codificação em nós designados a uma Parachain para garantir que os dados necessários para validar uma transação permaneçam disponíveis.

Verificação de Aprovação

Cada nó validador executa um processo de verificação de aprovação para cada bloco da Parachain em cada bloco da Relay Chain.

Tratamento de Disputas

Quando alguém contesta a validade de um Parablock, todos os validadores devem verificar o bloco e emitir um voto. Os validadores do lado perdedor da disputa são penalizados.

Como impedimos que as coisas deem errado?

Blocos Parachain são Finalizados 🟪

Os produtores de blocos submetem a nova raiz de estado para a Relay Chain assim que o Protocolo Parachains foi concluído. Assim, quando um bloco da Relay Chain é finalizado, todos os blocos das Parachains incluídos também são. Esse estado final das Parachains que foi submetido para a Polkadot estará portanto no que podemos chamar de cadeia canônica.

É precisamente por esse processo acontecer a cada bloco que se diz que toda a rede se beneficia da segurança de sua “rede mãe”. A finalização na Polkadot implica a finalização de todas as interações entre todos as Parachains no mesmo nível. Assim, a segurança compartilhada não apenas protege as cadeias individuais, mas também as interações entre as elas.

Forma única de integração de blocos da Polkadot.
Forma única de integração de blocos da Polkadot.

Comparando Opções ⬆️⬇️

E para finalmente concluir a apresentação são apresentadas as formas de Segurança Compartilhada com os seus pros e contras, finalizando com a da Polkadot.

Soluções de Re-Staking

Prós

  • Parecem ser independentes de protocolos e podem ser “retroativas” para novas redes existentes.
  • Redes menores/novas podem se beneficiar de economias mais valiosas e estáveis.

Contras

  • À medida que os tokens são continuamente re-stakeados, os “custos” econômicos necessários para atacar as redes seguras diminuem.
  • Esses sistemas não fornecem verificação ou proteção computacional real.
  • Parece, em última instância, depender de fontes centralizadas de confiança.

Rollups Otimistas

Prós

  • Não limitado pela complexidade do VM on-chain.
  • Pode ser paralelizado.
  • Eles podem embalar muitos dados em sua STF.
  • Eles podem usar código compilado nativo para processadores modernos.

Contras

  • Preocupações com centralização e censura de sequenciadores.
  • Longo tempo de finalização devido aos períodos de desafio. (pode levar dias)
  • As camadas de acordo podem ser atacadas, interferindo nos protocolos de rollup otimistas.
  • Sofre dos mesmos problemas de alocação de espaço em bloco que as transações on-chain:
    - Custos on-chain para executar o protocolo interativo.
    - Congestionamento da rede.
Tabrizi nos momentos finais de sua palestra.
Tabrizi nos momentos finais de sua palestra.

Rollups de Conhecimento Zero

Prós

  • Comprovadamente sem necessidade de confiança.
  • Requisitos mínimos de disponibilidade de dados.
  • Finalização instantânea (a altos custos).
  • Futuro emocionante se as provas recursivas funcionarem.

Contras

  • Preocupações com a centralização de sequenciadores e provadores.
  • Desafiador escrever circuitos ZK.
    - Completo em Turing, mas geralmente computacionalmente complexo.
    - Difícil de delimitar a complexidade dos circuitos ao criar aplicativos.
  • Sofre dos mesmos problemas de alocação de espaço em bloco que as transações on-chain:
    - Custos on-chain para enviar e executar provas na camada de acordo.
    - Congestionamento da rede.

Segurança Compartilhada Nativa do Polkadot

Prós

  • Manuseio em nível de protocolo de sharding, segurança compartilhada e interoperabilidade.
  • Fácil de desenvolver a STF (State Transition Function/Função de Estado de Transição).
    - Qualquer coisa que seja compilada para Wasm.
  • Provavelmente, o melhor tempo de finalização, geralmente em menos de um minuto.
  • Disponibilidade de dados fornecida pelos validadores existentes.
  • Muito menos preocupação com a centralização de coletores em comparação com sequenciadores e provadores.

Contras

  • Infelizmente, o Wasm ainda é 2x mais lento que a compilação nativa.
  • Requer muitos dados sendo fornecidos e disponíveis em PoV.
  • Certas limitações são impostas para manter as parachains compatíveis com o Protocolo Parachains.

Conclusão Parte 3 📌

Shawn nos apresentou nessa série como a Polkadot é uma solução única de integração de blocos, destacando seus pontos positivos e negativos em relação a outras soluções. Podemos concluir que a Segurança Compartilhada na rede Polkadot é uma solução inovadora e promissora para garantir a segurança e escalabilidade das blockchains e sem dúvidas está no topo, junto com outros grandes projetos.

Referências:

--

--