WEB3DEV

Cover image for Descentralizando o Sequenciador Warp
Paulo Gio
Paulo Gio

Posted on

Descentralizando o Sequenciador Warp

O sequenciador Warp é um componente crucial dos contratos Warp, um protocolo de contratos inteligentes orientado a dados construído na blockchain Arweave. Sua principal função é receber e ordenar transações de clientes, preparando-as para processamento adicional (por exemplo, avaliação de estado) e enviando-as para o Arweave. Isso proporciona rápida finalidade e segurança garantida pela camada subjacente.

Atualmente, o sequenciador Warp opera de maneira centralizada, oferecendo simplicidade e alto desempenho. No entanto, esta abordagem é considerada temporária, pois carece das garantias necessárias de segurança, transparência, equidade, escalabilidade e resiliência. Consequentemente, a descentralização do sequenciador Warp é um objetivo destacado no roteiro (roadmap) do projeto Warp.

Este artigo descreve a descentralização do processo de sequenciamento. Cobriremos os principais critérios para selecionar uma solução adequada, exploraremos a funcionalidade do sequenciador e sua colaboração com outros elementos, delinearemos o plano de descentralização para os papéis envolvidos e, finalmente, revelaremos as etapas subsequentes para implementar esta abordagem abrangente.

https://miro.medium.com/v2/resize:fit:1100/format:webp/1*li47ZLJUb2R4RJUXE_8rTA.png

Critérios

A seleção de uma nova solução de sequenciador é guiada por vários critérios cruciais, garantindo um sistema robusto e eficiente. Estes padrões incluem:

  • Descentralização — A transição para um modelo descentralizado é fundamental para promover transparência e responsabilidade. Em vez de depender de uma única entidade, a ordenação das transações deve ser distribuída entre vários nós. Esta descentralização elimina um único ponto de controle (ou seja, a equipe Warp) e aumenta a resiliência geral do sistema.
  • Segurança — A segurança é de suma importância ao descentralizar o sequenciador. Ao distribuir o processamento de transações em uma rede de nós, o risco de um único ponto de falha é significativamente reduzido. O design deve priorizar a implementação de medidas de segurança robustas para proteger contra possíveis ataques.
  • Desempenho — Garantir baixa latência é crucial para possibilitar um processamento de transação ágil e eficiente. O sequenciador Warp se beneficia por não se sobrecarregar com a avaliação de estado de contrato, simplificando os requisitos de desempenho. No entanto, um processo de confirmação oportuno permanece sendo uma prioridade ao projetar a solução para manter uma experiência do usuário contínua.
  • Simplicidade — Embora a descentralização introduza complexidade, é essencial buscar simplicidade na solução final. Uma abordagem simplificada reduz o tempo de implementação, mitiga riscos técnicos e melhora a estabilidade. Além disso, um sistema mais simples é mais fácil de manter e menos propenso a vulnerabilidades, garantindo um ambiente confiável e seguro.

Funcionalidade

O ciclo de vida da transação engloba várias etapas além da definição da ordem dentro de um bloco. Uma vez alcançada a descentralização, todo o processo se desenrola da seguinte maneira:

  1. Utilizando o SDK de Contratos Warp, os usuários criam e assinam transações do Arweave que são interações com contratos. O SDK atualmente suporta carteiras “Arweave” e “EVM”. Após assinatura, a transação é transmitida para a rede sequenciadora.
  2. Os nós da rede recebem e validam as transações recebidas. As transações válidas são propagadas para outros nós, iniciando o processo de consenso. Os nós colaboram para chegar a um acordo sobre um bloco contendo uma lista de transações organizadas em uma determinada ordem.
  3. As transações dentro do bloco são encaminhadas para o Bundlr, responsável por garantir sua finalidade, entregando-as para o Arweave. Metadados de blocos passam por um processo de transmissão semelhante.
  4. Os blocos gerados pela rede sequenciadora são buscados e recuperados para processamento adicional, que inclui a avaliação dos estados dos contratos.
  5. Transações enviadas diretamente para a camada 1, ou L1 (Arweave), sem passar pelo sequenciador, são recuperadas e mescladas com a lista de transações da camada 2 (L2) que passaram pelo sequenciamento. Considerando a ocorrência potencial de bifurcações (forks) no Arweave, as transações de camada 1 sofrem um atraso na recuperação para se proteger contra tais cenários.

https://miro.medium.com/v2/resize:fit:1100/format:webp/1*oYGPTEUEKD4eJebSdGVkJA.jpeg

Visão Geral do Sequenciador Warp Distribuído

Papéis

Considerando a funcionalidade mencionada anteriormente, podemos identificar vários papéis distintos dentro do processo.

Validador (Validator)

Os validadores formam a rede de sequenciamento e desempenham um papel crítico em garantir a segurança e integridade do mecanismo descentralizado. Suas responsabilidades incluem validar transações recebidas do Arweave e transmiti-las para outros nós da rede. Os validadores também participam do processo de consenso, onde validam independentemente os blocos e garantem que chegaram a um acordo com o mesmo valor, de acordo com as regras do protocolo. Para se tornar um validador, os indivíduos devem manter uma certa quantidade do token nativo da rede em stake, que pode ser “cortada” (confiscada) se eles se envolverem em má conduta ou não cumprirem suas obrigações. Entre os validadores ativos, os papéis de proponente e retransmissor são selecionados.

Na versão inicial, os validadores não verificarão a ordem das transações em um bloco e aceitarão a ordem especificada pelo proponente. Em versões subsequentes, serão consideradas soluções para acordo coletivo sobre a ordem das transações em um bloco.

Durante a fase inicial de implementação, a gestão dos validadores será realizada pela equipe Warp. No entanto, à medida que toda a solução é desenvolvida, implementada e testada exaustivamente, a rede fará a transição gradual para um estado mais aberto e descentralizado.

Proponente (Proposer)

O papel do proponente dentro da rede de sequenciamento é vital para a criação de novos blocos. Selecionado a partir do pool de validadores ativos, o proponente é escolhido usando um algoritmo Round-Robin (WRR) ponderado. Em outras palavras, os validadores que colocam mais tokens em stake têm uma chance maior de propor um bloco. No entanto, todo validador eventualmente tem a chance de se tornar um proponente. Isso promove a equidade e, ao mesmo tempo, incentiva os validadores a manter mais tokens.

A principal responsabilidade do proponente é construir um bloco contendo uma lista ordenada de transações e propor aos demais validadores. Se os nós restantes chegarem a um consenso votando com pelo menos 2/3 dos votos, o bloco proposto é enviado para a blockchain.

Durante a fase inicial da implementação, o proponente tem a liberdade de selecionar e determinar a ordem das transações dentro de um bloco. No entanto, a implementação padrão segue o princípio de "primeiro a chegar, primeiro a ser atendido" (FCFS). Fases subsequentes irão introduzir medidas para limitar essa liberdade. A criptografia de transações será implementada para evitar ataques baseados em conteúdo pelo proponente. Além disso, abordagens alternativas, como impor ordem com base no hash de mineração Arweave ou alcançar consenso sobre a ordem das transações entre todos os validadores participantes, estão atualmente sob consideração.

Retransmissor (Relayer)

As transações passam pelo sequenciador para estabelecer sua ordem antes de serem enviadas para o Arweave. O retransmissor desempenha um papel crucial neste processo, facilitando a transmissão de transações do sequenciador para o Arweave. Em vez de enviar dados diretamente para o Arweave, o retransmissor utiliza o Bundlr, que garante a entrega confiável de dados para a blockchain.

A tarefa do retransmissor é enviar as transações assinadas pelo usuário original, incluindo informações sobre o bloco da cadeia do sequenciador onde as transações foram colocadas, particularmente sobre a ordem das transações dentro do bloco.

Inicialmente, o retransmissor operará como uma aplicação externa fora da rede do sequenciador, monitorando e encaminhando blocos produzidos para o Bundlr. No estágio subsequente, o retransmissor se tornará descentralizado e os nós do sequenciador assumirão seu papel. O processo inteiro ocorre da seguinte forma:

  • Apenas um validador da rede de sequenciadores atua como retransmissor em um determinado momento.
  • O retransmissor é selecionado entre os validadores usando o mesmo algoritmo que o proponente. A diferença é que o propositor é selecionado a cada bloco, enquanto o retransmissor é selecionado para um determinado número de blocos (por exemplo, 10 blocos).
  • O retransmissor selecionado é responsável por transmitir dados da cadeia de sequenciadores para o Bundlr. Após enviar os dados, o retransmissor apresenta um recibo assinado pelo Bundlr aos validadores restantes.
  • A rede verifica a aderência do retransmissor às suas obrigações, garantindo a entrega de recibos válidos. O retransmissor é incentivado através de recompensas para maximizar a quantidade de dados enviados e enfrenta penalidades, incluindo corte de tokens, por comportamento inadequado. Em caso de não conformidade, a responsabilidade é transferida para o próximo retransmissor designado.

Esta técnica permite a ordenação descentralizada e transmissão de transações, contribuindo para o funcionamento geral do sistema.

Sincronizador (Syncer)

Os Contratos Warp suportam tanto transações de camada 2, que passam pelo sequenciador, quanto transações de camada 1, que são enviadas diretamente para o Arweave. Transações de camada 2 são processadas imediatamente após inclusão na cadeia do sequenciador, enquanto transações de camada 1 experimentam um atraso devido ao potencial de bifurcações.

Na solução atual, as transações são ordenadas com base em um valor de "chave de ordenação", levando em consideração a altura do bloco do Arweave e o momento do recebimento da transação pelo sequenciador centralizado. No entanto, na nova solução, onde as transações são obtidas de duas blockchains com alturas de bloco diferentes, esse valor não pode servir como fator determinante. Felizmente, ambas as blockchains validam as marcas temporais (timestamps) dos blocos, fornecendo valores confiáveis para a fusão das duas cadeias. Portanto, na nova abordagem, a ordem das transações é determinada com base na marca temporal do bloco. A ordem dentro dos blocos dependerá do tipo de transação. Transações de camada 1 manterão a ordem existente com base no hash do ID da transação concatenado e no hash do bloco. Já as transações de camada 2 serão ordenadas de acordo com sua sequência no bloco do sequenciador.

O sincronizador recupera e mescla transações que são então salvas no banco de dados do Warp, que é servido pelo Warp Gateway e baixado pelos nós Warp D.R.E.

Plano de Implementação

O plano de implementação para descentralizar o sequenciador Warp envolve uma transição gradual de uma arquitetura centralizada para um sistema distribuído. Este plano abrange várias etapas-chave, incluindo a adoção de um motor de consenso BFT, a descentralização do retransmissor, a implementação de criptografia de transações, a introdução de mecanismos de ordem e a abertura a participantes externos.

  1. A etapa inicial concentra-se na construção da nova rede de sequenciadores usando o motor de consenso Tendermint BFT. No entanto, durante esta fase, os componentes retransmissor e sincronizador permanecem centralizados. Esta abordagem permite testes e avaliação coordenados do desempenho do sistema antes de prosseguir com uma maior descentralização. Isso proporciona um ambiente controlado para garantir a transição suave para uma arquitetura totalmente descentralizada.
  2. O segundo passo envolve a descentralização do componente retransmissor. Os nós do sequenciador assumem gradualmente o papel do retransmissor na transmissão de dados da cadeia do sequenciador para o Bundlr. Esta descentralização distribui a responsabilidade entre vários nós do sequenciador, aumentando a resiliência do sistema e reduzindo a dependência de um único ponto de falha. Isso contribui para uma arquitetura de sistema mais distribuída e robusta.
  3. A próxima etapa foca na implementação da criptografia de transações para proteger contra ataques baseados em conteúdo. Mecanismos de criptografia são introduzidos para salvaguardar a confidencialidade dos dados da transação. Isso fortalece a segurança geral do sistema, tornando mais difícil para o proponente manipular a ordem das transações para fins maliciosos.
  4. O quarto passo do plano visa restringir a liberdade do proponente na seleção e sequenciamento de transações. Isso é alcançado introduzindo mecanismos que impõem uma ordem com base em fontes externas ou através de consenso entre os validadores. Esta abordagem aumenta a equidade, transparência e descentralização no processo de ordenação de transações, minimizando o potencial de manipulação ou viés. A ordem das transações é determinada coletivamente, seja contando com fontes externas confiáveis (como o hash de mineração Arweave) ou através de um mecanismo de consenso entre os validadores. Discussões adicionais são necessárias para finalizar os detalhes desta etapa.
  5. O passo final envolve abrir gradualmente a rede, que era anteriormente controlada pela equipe Warp. Esta fase ocorre uma vez que as medidas de descentralização tenham sido implementadas com sucesso e testadas minuciosamente. Abrir a rede promove inclusividade, envolvimento da comunidade e inovação, permitindo que stakeholders externos contribuam, proponham melhorias e participem dos processos de consenso e tomada de decisão.

Por meio dessas etapas, o protocolo Warp visa estabelecer uma rede de sequenciadores descentralizada que garante não apenas a ordenação e processamento confiável das transações, mas também incentiva o envolvimento da comunidade e a confiança entre os participantes.

Ao abraçar a descentralização, o sequenciador Warp abrirá caminho para um futuro mais seguro, escalável e resiliente para o protocolo de contratos Warp e seu ecossistema.

Explore a pesquisa que abriu o caminho para a descentralização! 🌌

Artigo original publicado por Warp Contracts. Traduzido por Paulinho Giovannini.

Top comments (0)