Pular para o conteúdo principal

Arquitetura do Optimism

· Leitura de 5 minutos
Tian Pan
Community Hacker

Optimism é um protocolo de rollup otimista, equivalente à EVM, projetado para escalar o Ethereum. Escalar o Ethereum significa aumentar o número de transações úteis que a rede Ethereum pode processar. Rollup otimista é uma técnica de escalabilidade de camada 2 que aumenta a capacidade de computação e armazenamento do Ethereum sem sacrificar a segurança ou a descentralização. Equivalência EVM é a conformidade completa com a função de transição de estado descrita no whitepaper amarelo do Ethereum, a definição formal do protocolo.

O rollup otimista funciona agrupando múltiplas transações em uma única transação, que é então verificada por um contrato inteligente na rede Ethereum. Este processo é chamado de “rolling up” (agrupamento) porque as transações individuais são combinadas em uma transação maior que é submetida à rede Ethereum. O termo “otimista” refere-se ao fato de que o sistema assume que as transações são válidas, a menos que se prove o contrário, o que permite um processamento mais rápido e eficiente das transações.

Arquitetura Geral

Arquitetura do Optimism

op-node + op-geth

O nó de rollup pode ser executado nos modos validador ou sequenciador:

  1. validador (também conhecido como verificador): Semelhante à execução de um nó Ethereum, ele simula transações L2 localmente, sem limitação de taxa. Também permite que o validador verifique o trabalho do sequenciador, re-derivando raízes de saída e comparando-as com as submetidas pelo sequenciador. Em caso de incompatibilidade, o validador pode realizar uma prova de falha.
  2. sequenciador: O sequenciador é um ator privilegiado, que recebe transações L2 de usuários L2, cria blocos L2 de acordo e, em seguida, os submete ao provedor de disponibilidade de dados (através de um batcher). Ele também submete raízes de saída para a L1. Atualmente, há apenas um sequenciador em toda a pilha, e é onde as pessoas criticam que a pilha OP não é descentralizada.

op-batcher

O submissor de lotes, também referido como batcher, é a entidade que submete os dados do sequenciador L2 para a L1, para torná-los disponíveis para os verificadores.

op-proposer

O Proposer gera e submete checkpoints de Saída L2 para o contrato oráculo de saída L2 no Ethereum. Após o período de finalização ter passado, esses dados permitem saques.

Tanto o batcher quanto o proposer submetem estados para a L1. Por que eles são separados?

O batcher coleta e submete dados de transação para a L1 em um lote, enquanto o proposer submete os compromissos (raízes de saída) para o estado da L2, o que finaliza a visão dos estados das contas L2. Eles são desacoplados para que possam trabalhar em paralelo para maior eficiência.

contracts-bedrock

Vários contratos para a L2 interagir com a L1:

  • OptimismPortal: Um feed de transações L2 que se originaram como chamadas de contrato inteligente no estado da L1.
  • Batch inbox: Um endereço L1 para o qual o Submissor de Lotes submete lotes de transações.
  • Oráculo de saída L2: Um contrato inteligente que armazena raízes de saída L2 para uso com saques e provas de falha.

Componentes do Optimism

Como depositar?

Como sacar?

Feedback à Documentação do Optimism

Compreender a pilha OP pode ser desafiador devido a vários fatores. Um desses fatores são os inúmeros componentes que são referidos múltiplas vezes com nomes ligeiramente diferentes no código e na documentação. Por exemplo, os termos "op-batcher" e "batch-submitter" / "verifiers" e "validators" podem ser usados de forma intercambiável, levando à confusão e dificuldade em compreender a função exata de cada componente.

Outro desafio na compreensão da pilha OP é a arquitetura em evolução, que pode resultar em alguns elementos de design se tornando obsoletos ao longo do tempo. Infelizmente, a documentação nem sempre é atualizada para refletir essas mudanças. Isso pode levar a mais confusão e dificuldade em entender o sistema, pois os usuários podem estar trabalhando com informações desatualizadas ou imprecisas.

Para superar esses desafios, é importante revisar cuidadosamente toda a documentação disponível, manter os conceitos consistentes em todos os lugares e manter-se atualizado com quaisquer mudanças ou atualizações na pilha OP. Isso pode exigir pesquisa adicional e colaboração com outros usuários ou desenvolvedores, mas é essencial para compreender totalmente e utilizar eficazmente este sistema complexo.