O protocolo que alimenta Cardano e sua filosofia de design
(Publicado originalmente por Aggelos Kiayas em 23/06/2020, traduzido por Joselmo Cabral)
Projetar e implantar um ledger distribuído é uma tarefa tecnicamente desafiadora. O que se espera de um ledger é a promessa de uma visão consistente para todos os participantes, bem como uma garantia de resposta ao fluxo contínuo de eventos que resultam de suas ações. Essas duas propriedades, às vezes chamadas de persistência e vivacidade , são a marca registrada dos sistemas de contabilidade distribuídos.
Conseguir persistência e vivacidade em um sistema centralizado é uma tarefa bem estudada e bastante direta; infelizmente, o ledger que surge é precariamente quebradiço porque o servidor que suporta o ledger se torna um ponto único de falha. Como resultado, invadir o servidor pode levar à violação instantânea de ambas as propriedades. Mesmo que o servidor não seja invadido, os interesses dos operadores do servidor podem não estar alinhados com a garantia contínua dessas propriedades. Por esse motivo, a descentralização foi proposta como remédio essencial.
Informalmente, descentralização refere-se a uma arquitetura de sistema que exige que muitas entidades ajam individualmente de tal maneira que as propriedades do ledger surjam da convergência de suas ações. Em troca desse aumento de complexidade, um sistema bem projetado pode continuar funcionando mesmo que algumas partes se desviem da operação adequada. Além disso, no caso de desvios mais significativos, mesmo que alguma interrupção seja inevitável, o sistema ainda deve ser capaz de retornar à operação normal e conter os danos.
Como projetar um sistema descentralizado robusto? O mundo é um lugar complicado e a descentralização não é uma característica que pode ser codificada ou demonstrada por meio de testes – as configurações potenciais que podem surgir são infinitas. Para combater isso, é preciso desenvolver modelos que abranjam sistematicamente todas as ameaças diferentes que o sistema possa encontrar e demonstrar rigorosamente que as duas propriedades básicas de persistência e vivacidade são mantidas.
Os argumentos mais fortes para a confiabilidade de um sistema descentralizado combinam garantias formais contra um amplo portfólio de diferentes classes de modelos de falha e ataque. A primeira classe importante é a dos poderosos modelos bizantinos. Nesse cenário, deve-se garantir que, mesmo que um subconjunto de participantes se desvie arbitrariamente das regras, as duas propriedades fundamentais sejam mantidas. A segunda classe importante são os modelos de racionalidade. Aqui, supõe-se que os participantes sejam maximizadores racionais da utilidade e o objetivo é mostrar que as propriedades do ledger surgem de seus esforços para buscar o interesse próprio.
Ouroboros é um protocolo de ledger descentralizado que é analisado no contexto do comportamento bizantino e racional. O que torna o protocolo único é a combinação dos seguintes elementos de design.
-
Ele usa o stake como recurso fundamental para identificar a alavancagem dos participantes no sistema. Nenhum recurso físico é desperdiçado no processo de manutenção do ledger, que se mostra robusto, apesar dos ataques de ‘simulação sem custo’ e de ‘nada em jogo’ que antes se pensava serem barreiras fundamentais aos registros baseados em stake. Isso torna Ouroboros claramente mais atraente do que os protocolos de proof-of-work, que exigem um gasto energético prodigioso para manter o consenso.
-
É comprovadamente resistente, mesmo que subgrupos arbitrariamente grandes de participantes, em termos de participação, se abstenham da manutenção do ledger. Essa garantia de disponibilidade dinâmica garante vivacidade, mesmo sob níveis arbitrários e imprevisíveis de envolvimento. Ao mesmo tempo, dos participantes ativos, quase mais da metade precisa seguir o protocolo – o restante pode se desviar arbitrariamente; de fato, mesmo picos temporários acima do limite de 50% podem ser tolerados. Assim, Ouroboros é nitidamente mais resiliente e adaptável do que os protocolos de tolerância a falhas bizantinos clássicos (bem como todas as suas adaptações modernas), que precisam prever com relativa segurança o nível de participação esperada e podem parar de operar quando a previsão é falsa.
-
O processo de ingresso e participação na execução do protocolo é confiável no sentido de que não requer a disponibilidade de nenhum recurso compartilhado especial, como um ponto de verificação recente ou um relógio comum. O envolvimento no protocolo requer apenas o bloco de gênese público da cadeia e o acesso à rede. Isso torna o Ouroboros livre das suposições de confiança comuns em outros protocolos de consenso cuja segurança cai quando os recursos compartilhados confiáveis estão subvertidos ou indisponíveis.
-
Ouroboros incorpora um mecanismo de compartilhamento de recompensa para incentivar os participantes a se organizarem em nós operacionais, conhecidos como stake pools, que podem oferecer uma boa qualidade de serviço independentemente de como o stake é distribuído entre a população de usuários. Dessa forma, todas as partes interessadas contribuem para a operação do sistema – garantindo robustez e representação democrática – enquanto o custo da manutenção do ledger é distribuído de forma eficiente na população de usuários. Ao mesmo tempo, o mecanismo vem com contramedidas que desestimulam a centralização. Isso torna Ouroboros fundamentalmente mais inclusivo e descentralizado em comparação com outros protocolos que acabam com apenas alguns atores responsáveis pela manutenção do ledger ou não fornecem incentivos para que as partes interessadas participem e ofereçam uma boa qualidade de serviço.
Esses elementos de design do Ouroboros não devem ser apelos evidentes ao senso comum do usuário do protocolo. Em vez disso, eles foram entregues com documentação meticulosa em documentos submetidos à revisão por pares e apareceram em conferências e publicações de primeira linha na área de segurança cibernética e criptografia. De fato, é justo dizer que nenhum outro esforço de pesquisa de consenso é representado de maneira tão abrangente nesses círculos. Cada artigo é explícito sobre o tipo específico de modelo usado para analisar o protocolo e os resultados obtidos são apresentados em termos concretos. Os documentos são de acesso aberto, sem patentes e incluem todos os detalhes técnicos para permitir que qualquer pessoa, com os conhecimentos técnicos relevantes, se convença da veracidade das alegações feitas sobre desempenho, segurança e funcionalidade.
Construir uma infraestrutura inclusiva, justa e resiliente para aplicativos financeiros e sociais em escala global é o grande desafio da tecnologia da informação atualmente. Ouroboros contribui não apenas como um protocolo com características únicas, mas também na apresentação de uma metodologia de design que destaca os primeiros princípios, modelagem cuidadosa e análise rigorosa. Sua arquitetura modular e adaptável também se presta à melhoria contínua, adaptação e enriquecimento com elementos adicionais (como paralelismo para melhorar a escalabilidade ou provas de zero conhecimento para melhorar a privacidade, para citar dois exemplos), o que é uma característica adequada para atender às necessidades e complexidades em evolução do mundo real.
Leitura adicional
Para se aprofundar no protocolo Ouroboros, desde o início até os novos recursos recentes, siga estes links:
Ouroboros (Classic): o primeiro protocolo blockchain comprovadamente seguro de proof-of-stake.
Ouroboros Praos: elimina a necessidade de uma estrutura redonda rígida e melhora a resiliência contra atacantes “adaptativos”.
Ouroboros Genesis: como evitar a necessidade de um ponto de verificação recente e provar que o protocolo é seguro sob disponibilidade dinâmica para ingresso e participação sem confiança.
Ouroboros Chronos: elimina a necessidade de um relógio comum.
Esquemas de compartilhamento de recompensa para stakepools.
Gerenciamento de contas e maximização da participação em stakepools.
Otimizando o rendimento da transação com protocolos de proof-of-stake.
Liquidação rápida usando combinadores de ledger.
Ouroboros Crypsinous: um protocolo de proof-of-stake que preserva a privacidade.
Kachina: um modelo de segurança unificado para contratos inteligentes privados.
Hydra: uma arquitetura de escalabilidade fora da cadeia para alto rendimento de transações com baixa latência e armazenamento mínimo por nó.