[1/2 Thread]Vamos nos aprofundar no @EspressoSys - A Anatomia dos Sequenciadores Descentralizados.Agradecimentos especiais a @jillrgunter e à equipe do Espresso que nos ajudaram na revisão.1/Sequenciador CentralizadoSoluções de Camada 2, como rollups, podem ser consideradas blockchains modulares porque funcionam como motores de execução independentes fora da cadeia para Ethereum. Elas delegam tarefas menos intensivas, como verificação de estado, consenso e disponibilidade de dados, para Ethereum. Essas funções são essenciais para garantir a descentralização e a segurança dos rollups.2/No entanto, os rollups enfrentam desafios com composabilidade e interoperabilidade, mesmo que a maioria deles utilize a mesma camada base ao verificar seu estado na Ethereum. A principal razão para esse problema é simples: cada rollup é operado por seu próprio sequenciador centralizado, dificultando a confiança mútua entre os estados intermediários de diferentes rollups. Isso significa que, se interações L2-L2 forem necessárias, elas devem depender de um terceiro para fornecer compromissos suaves, como provedores de ponte, ou, pior ainda, esperar pela finalização da Ethereum.3/Sequenciadores centralizados também levam a:1.Centralização: Em vez de esperar pela finalização de seus estados de rollup na Ethereum, os usuários podem optar por confiar no estado fornecido pelo operador do rollup. Isso requer uma confiança significativa, já que apenas um operador mantém o rollup em um sequenciador centralizado. Além disso, um MEV (Valor Extraível por Minerador) em larga escala é possível se um sequenciador tiver controle total sobre a ordenação das transações.2.Ponto Único de Falha: A vivacidade de um rollup é garantida por seu operador. Se o operador ficar offline, o rollup para temporariamente, o que significa que os fundos dos usuários ficam bloqueados no rollup.3.Resistência à Censura: Um operador pode rejeitar transações de usuários à vontade. Embora soluções como saídas de emergência ou inclusão forçada na camada 1 existam, elas requerem operações complexas do lado do usuário e incorrer em altas taxas de gás na camada 1.Essas preocupações contradizem a intenção da Ethereum de ser uma plataforma sem permissão aberta a todos.4/Sequenciamento Compartilhado DescentralizadoUma solução prática é aproveitar um sistema descentralizado que pode permitir o sequenciamento compartilhado - permitindo que muitos rollups usem o mesmo sequenciador por um determinado período de tempo. Ao ter um mecanismo para os rollups cooperarem para sequenciar transações, construir blocos e alcançar consenso sobre os dados subjacentes, essa rede de coordenação pode fornecer uma finalização suave mais forte do que uma abordagem centralizada e uma finalização mais rápida em comparação com a camada 1.Outra característica importante é a composabilidade. Como os blocos de muitos rollups são (pré)confirmados pela mesma camada confiável, a ponte e operações atômicas podem ser realizadas de forma mais fluida e eficiente do que depender de terceiros ou camadas de liquidação como a Ethereum.5/Espresso: a Camada de Coordenação para RollupsNeste artigo, exploraremos um projeto que busca possibilitar o sequenciamento compartilhado, o Espresso Systems. O Espresso visa criar uma camada de coordenação para rollups que pode alcançar alta capacidade, suportar um grande número de nós, ter baixa latência de compromisso e oferecer desempenho semelhante ao Web2 em um caso otimista.Existem dois componentes do Espresso que tornam isso possível: a Rede Espresso e o Mercado Espresso.6/Como os rollups já lidam com tarefas de execução fora da cadeia, onde a validade dos resultados de execução é garantida por provas de fraude e validade, uma camada de coordenação como o Espresso só precisa gerenciar uma versão relaxada de uma blockchain monolítica, focando na ordenação, consenso e disponibilidade de dados. O Espresso aborda isso com a Rede Espresso - um sistema de consenso proof-of-stake operado por uma rede de nós e composto por dois componentes modulares:1.Consensus HotShot: HotShot é um protocolo BFT utilizado no Espresso para alcançar consenso entre os nós, determinar um conjunto de sequenciadores para rollups e finalizar blocos propostos. HotShot é uma versão estendida do protocolo de consenso HotStuff-2.HotShot é projetado para suportar a escala que os usuários de rollup estão acostumados na maioria das condições de rede, sem comprometer a descentralização.2. Tiramisu DA: Trabalhando ao lado do HotShot está o Tiramisu, uma camada de disponibilidade de dados altamente eficiente que garante a disponibilidade e recuperabilidade de dados para os clientes e a camada de consenso. Tiramisu consiste em três camadas—Cocoa, Mascarpone e Savoiardi—cada uma contribuindo com recursos únicos que permitem que o Espresso alcance o melhor de ambos os mundos Web2 e Web3, sendo tanto descentralizado quanto altamente eficiente.7/Consenso HotShotHotShot é a camada de consenso do sistema Espresso, permitindo que os nós concordem sobre o estado do Espresso e desempenhando três papéis essenciais:1.- Garantir que um quórum de nós receba fragmentos de dados e um quórum do comitê de DA receba dados de blocos completos.2.- Fornecer uma camada de (pré)finalidade compartilhada para todos os rollups conectados e usuários.3.- Determinar um conjunto de sequenciadores compartilhados para rollups.Notavelmente, o HotShot pode alcançar tudo isso sem executar a execução e a disponibilidade de dados, já que essas tarefas são delegadas aos operadores de rollup e ao Tiramisu, respectivamente. Isso leva a um sistema mais eficiente, com cada pilha operando de forma concorrente e sendo otimizada separadamente.8/Consenso e FinalidadeO Espresso desenvolve o protocolo de consenso chamado HotShot, uma versão estendida do HotStuff-2 adaptada para suportar proof of stake e se encaixar nos casos de uso do Espresso. Dada a meta do Espresso de suportar milhares de nós, encontrar um protocolo de consenso robusto que mantenha alta performance com um grande conjunto de nós é crucial. É por isso que o HotStuff-2 é escolhido, oferecendo dois principais benefícios:1. - - Complexidade de Comunicação Linear: O HotStuff-2 se baseia em comunicação centrada no líder, onde um líder assume a principal responsabilidade de acumular votos e distribuir mensagens para cada nó. Isso leva à complexidade de comunicação crescendo linearmente com o número de nós na rede.2. - - Compatibilidade com Pipeline: O HotStuff-2 suporta pipeline, permitindo que múltiplos blocos sejam processados simultaneamente na mesma rodada, mas com fases diferentes. Por exemplo, na rodada k+2, o bloco k-ésimo está sendo comprometido enquanto o bloco k+2-ésimo está sendo proposto.***Os leitores podem encontrar os detalhes de como o HotStuff-2 funciona em nosso artigo Monad [https://t.co/13YFRl6B9p].9/Embora a discussão acima sugira que o HotShot, baseado no HotStuff-2, é suficiente para alcançar alta taxa de transferência e escalabilidade, isso não é totalmente suficiente. Como o HotShot deve fornecer finalidade para múltiplos rollups, os dados que um líder manipula e dissemina para outros nós podem ser muito grandes, uma vez que um bloco deve incluir transações de todos os rollups. Isso pode levar a uma degradação da eficiência se um líder tiver que propagar um grande bloco de transações, mesmo com a complexidade de comunicação linear.Se o Espresso confiar puramente no HotShot, a complexidade de comunicação necessária para a rede é igual ao tamanho de um bloco (|B|) multiplicado pelo número de nós (n), resultando em uma complexidade de O(n|B|). Felizmente, o Espresso introduz o Tiramisu DA, que ajuda a reduzir a complexidade para apenas linear no tamanho do bloco, O(|B|). Discutiremos isso mais adiante na seção Tiramisu DA.10/Tiramisu DANo HotShot, se um líder fosse responsável por propagar um bloco inteiro para cada nó, isso resultaria em uma alta complexidade de comunicação de O(n|B|). O Espresso introduz o Tiramisu, uma solução de disponibilidade de dados em três camadas composta pelas camadas Cocoa, Mascarpone e Savoiardi, que ajuda a reduzir a complexidade de comunicação para O(|B|). Essas camadas trabalham juntas para alcançar um desempenho semelhante ao do Web2 em casos otimistas e podem mudar para camadas mais resilientes em casos pessimistas, trocando por um desempenho um pouco menor.*Vamos nos aprofundar nos detalhes de cada camada👇.11/A Camada Superior: Cocoa - Camada de Desempenho Semelhante ao Web2Esta camada implementa uma rede de distribuição de conteúdo (CDN) centralizada chamada Cocoa, que fornece desempenho semelhante ao Web2 para o Tiramisu.A CDN é um poderoso hardware centralizado que facilita a passagem de mensagens entre o líder e outros nós na rede. Para garantir a disponibilidade dos dados, o líder pode enviar um bloco inteiro para o Cocoa, e qualquer pessoa pode solicitar o conteúdo do bloco a partir deste CDN centralizado. Como resultado, apenas O(|B|) comunicação é necessária para o líder enviar os dados do bloco para o Cocoa.É importante notar que o Cocoa não é uma camada confiável e não garante segurança e vivacidade, pois é um sistema centralizado. O Cocoa é utilizado unicamente por sua eficiência. No caso de o Cocoa ser corrompido, estar sob ataque ou enfrentar inatividade, o Espresso pode mudar para uma camada mais robusta, o Mascarpone.O Espresso descreve a camada Cocoa como um recurso adicional, semelhante ao pó de cacau polvilhado sobre uma sobremesa Tiramisu. Embora não seja essencial para a sobremesa, faz com que um Tiramisu pareça mais apetitoso. Da mesma forma, no sistema Tiramisu DA, a camada Cocoa adiciona um recurso atraente, como desempenho Web2. No entanto, o Tiramisu ainda pode garantir a disponibilidade dos dados e funcionar perfeitamente bem sem ela.