Ouroboros Genesis: segurança aprimorada em um ambiente dinâmico

Ouroboros Genesis: segurança aprimorada em um ambiente dinâmico

O Ouroboros Genesis chega a Cardano em 2023. A principal característica do Genesis é permitir que os participantes se juntem à rede com segurança, sem a necessidade de confiar em pares selecionados para fornecer um estado instantâneo correto atual da blockchain.

8 de fevereiro de 2023 Christian Badertscher 6 minutos de leitura

Ouroboros Genesis é um protocolo de blockchain proof-of-stake (PoS) que estende seu antecessor - Ouroboros Praos.

Vamos primeiro lembrar que o Ouroboros é um protocolo PoS no estilo Nakamoto com resiliência integrada a uma participação potencialmente altamente flutuante. Isso significa que ele é resistente a muitos desafios que podem surgir de problemas de rede, configuração incorreta de nós ou condições de corrida que podem causar tempo de inatividade do nó. O Ouroboros provou ser seguro, desde que menos da metade da participação ativa total esteja nas mãos de agentes mal-intencionados. E mesmo que essa suposição fosse temporariamente violada, o Ouroboros se auto curaria rapidamente depois que a condição de maioria honesta se mantivesse novamente. Um trabalho de pesquisa de 2020 da IOG analisa essa situação.

Uma questão importante e muitas vezes negligenciada em sistemas dinâmicos de PoS tem sido: como as partes podem ingressar ou reingressar com segurança no sistema sob a mesma suposição de segurança - e, em particular, sem depender de pares confiáveis ​​que atendem a uma versão correta do blockchain atual? Essa questão tem sido considerada uma grande desvantagem para os sistemas PoS – até que um artigo de pesquisa de 2018 da IOG propôs uma solução para esse problema. Este post explica a importância e a ideia principal por trás do Gênesis.

A importância da disponibilidade dinâmica

A disponibilidade dinâmica em uma configuração de blockchain pode ser considerada como uma propriedade que permite que os nós produtores de blocos fiquem online e offline sem aviso prévio. Ao mesmo tempo, o sistema permanece operacional para qualquer nível de participação e permanece seguro desde que (entre os nós ativos) mais de 50% dos recursos, como poder computacional em Bitcoin ou participação na Cardano, sejam controlados por participantes honestos. O mecanismo de consenso, cujo objetivo é colocar todos os nodos em acordo, usa esses recursos para eleger líderes com o direito de estender a blockchain por um bloco contendo transações válidas.

Nesse contexto, a disponibilidade dinâmica fornece maior vivacidade da rede e é essencial para um sistema verdadeiramente descentralizado, pois nem todos os nós podem ser considerados constantemente online. No entanto, para tornar essa história completa, os nós devem ser capazes de se reintegrar facilmente ao sistema, apenas observando a rede e conhecendo o bloco gênese. Qualquer outra suposição de confiança, como a exigência de pontos de verificação atendidos por pares confiáveis, vai contra a visão de descentralização.

Em 2018, a pesquisa da IOG apresentou e analisou o algoritmo Ouroboros Genesis que comprovadamente atende aos requisitos acima em um modelo criptográfico forte. O algoritmo Genesis é essencialmente Praos, com uma nova regra de seleção de cadeia adicionada que permite que as partes se juntem e inicializem o blockchain com segurança do zero sem exigir aconselhamento confiável ou qualquer outra ajuda, como conhecimento da disponibilidade anterior.

Garantias de segurança através da regra de seleção de cadeia

Genesis tem uma estrutura semelhante ao Ouroboros Praos. De fato, considerando que todas as partes estão sempre disponíveis, os dois protocolos se comportam de forma idêntica. No entanto, quando se trata de disponibilidade dinâmica, os recém-chegados precisam de conselhos em Praos: para poder estender com segurança a cadeia mais longa. Os recém-chegados devem primeiro ser informados sobre o estado atual (verdadeiro) do livro-razão, por exemplo, perguntando a colegas confiáveis. Se um invasor puder servir uma cadeia falsa para esses recém-chegados, é possível impedir que eles se juntem e contribuam para a segurança e o desempenho do sistema. Então, como o Gênesis evita esse conselho confiável? A inovação técnica está na nova regra de seleção de cadeia.

Simplificando, pense na seleção de cadeia como um filtro. Este filtro, ao apresentar todas as blockchains observadas na rede, detecta aquela que é mais útil para o sistema. Em princípio, no consenso de Nakamoto, a abordagem é usar a cadeia mais longa. Embora isso seja bom para o Bitcoin, no caso do PoS, a regra simples da cadeia mais longa não é uma boa ideia: um adversário pode bifurcar de uma cadeia honesta e continuar criando bloqueios em particular. Após um período de tempo substancial (na ordem de várias épocas), o adversário será essencialmente o stakeholder majoritário em sua cadeia privada e, portanto, poderá criar blocos muito mais rapidamente do que a cadeia honesta, eventualmente superando-a em comprimento. Praos e outros algoritmos de PoS evitam ser enganados em uma cadeia adversária, introduzindo pontos de verificação rolantes que todas as cadeias precisam cumprir. Conforme mencionado acima, a introdução de tais pontos de verificação tem a desvantagem de que as partes que se juntam precisam de aconselhamento confiável.

Então, o que pode ser feito? A principal percepção é que sempre que um adversário se bifurca de alguma cadeia honesta e estende a cadeia privadamente, o adversário não pode evitar o fato de que tal cadeia privada tem um segmento inicial de slots, logo após o ponto de bifurcação, que é menos denso (tem menos blocos) do que os participantes honestos da cadeia criam para esse segmento. Isso pode ser aproveitado para diferenciar o bom do ruim e, portanto, também para se livrar dos pontos de verificação rolantes mencionados acima, introduzindo uma nova regra de seleção em cadeia.

Assuma um recém-chegado a partir do bloco de gênese como a cadeia inicial. Sempre que uma nova cadeia é vista na rede, esse recém-chegado compara a cadeia mantida localmente com a nova de acordo com a densidade naquele segmento específico depois que as duas cadeias começam a se bifurcar uma da outra. O recém-chegado adota a nova cadeia apenas se ela for mais densa naquele segmento e continua iterando esse processo com outras cadeias recém-recebidas. Pela observação acima, pode-se concluir que quando o recém-chegado passar a observar a atual cadeia suportada pela maioria honesta da participação ativa na rede, esta cadeia será adotada. Consequentemente, o recém-chegado bloqueia o estado da blockchain exatamente como outros participantes já ativos.

Para o argumento técnico completo, consulte o trabalho de pesquisa de 2018 e veja uma apresentação sobre Ouroboros Genesis por Aggelos Kiayias.

Em resumo, a regra de seleção da cadeia permite que o Ouroboros lide perfeitamente com as mudanças no número de partes ativas de maneira descentralizada, iniciando a partir do bloco de gênese e mantendo-se seguro, desde que os participantes honestos detenham a maioria da participação ativa.

Quando em Cardano?

Cardano atualmente roda em Ouroboros Praos e as equipes já estão trabalhando no redesenho de consenso. Existe um protótipo parcial do Genesis em funcionamento, que está sendo ajustado para desempenho e auditado para novos vetores de ataque. As equipes também trabalharam em uma implementação independente da lógica de desconexão do Genesis, que é o principal componente da implementação. Essa lógica está passando por testes e requer esforços adicionais de integração.

Se você estiver interessado no processo de desenvolvimento, consulte este roteiro do Genesis. Para ficar atento, siga as atualizações técnicas da equipe de consenso e dos canais de mídia da IOG.

Olga Hryniuk contribuiu para esta postagem no blog.