Protocolo Ouroboros

Blockchains requerem um mecanismo de acordo conhecido como protocolo de consenso que serve para garantir que apenas uma chain é adoptada e seguida, de outra forma o sistema colapsaria imediatamente.

Ouroboros, um algoritmo de consenso de teste de participação.

No Ouroboros, não existe competição entre partes interessadas para produzir um bloco (como acontece no PoW da Bitcoin). Ao invés, um Slot Leader é selecionado aleatoriamente, em proporção aos tokens que detém (stake), para ter hipótese de criar um novo bloco.

Portanto não é o poder que determina a oportunidade de produzir um novo bloco (e ser recompesado por isso), é o stake que aumenta a hipótese de se ser escolhido.

Não existindo competição na criação de blocos, não existe desperdício de energia e recursos computacionais. Nesse aspecto, o Ouroboros é um protocolo mais eficiente e económico que o da Bitcoin, mantendo todas as garantias de segurança.

As recompensas provêm de duas fontes distintas: taxas transacionais e fundos provenientes da reserva existente de ADA.

No Ouroboros, os incentivos não estão dependentes dos blocos, mas as recompensas de um ciclo (epoch) são recolhidas de um fundo de reserva e distribuídas pelas Stake Pools e delegators que participaram durante os intervalos (Slots) em proporção à sua participação.

No caso das Pools, cada pool líder obtém uma fracção das recompensas para cobrir os custos operacionais e ter margem de lucro.

O resto é distribuído entre os membros da Pool líder, em proporção à participação delegada.

E se por algum motivo é necessário fazer um Hardfork (HF)?

A chave fundamental do Ouroboros Genesis é que, devido à regra de seleção de uma única chain, permite que as partes re-envolvidas ou novas se sincronizem à “boa chain” com apenas uma cópia fidedigna do bloco Genesis. Isto torna o protocolo seguro contra o chamado “long-range attack”.

Aleatoriedade auto-gerada

O protocolo Ouroboros (especificamente o Ouroboros Praos e Ouroboros Genesis) incorpora uma funcionalidade chamada Global Random Oracle que produz uma aleatoriedade diferente em cada ciclo.

Isto é possível com a implementação de uma VRF.

Quando avaliada com a chave de uma Stake Pool, devolve um valor aleatório que é guardado em cada bloco produzido. O hashing de todos os valores de ciclos anteriores torna-se a random seed para o processo de staking. A blockchain propriamente dita torna-se a fonte de nova aleatoriedade.

É exatamente esse o motivo de o protocolo se chamar Ouroboros, a serpente que come a própria cauda.

Promovendo a descentralização

Finalmente, o Ouroboros mecanismo de incentivo promove a descentralização do sistema devido a considerar dois factores determinantes:

1. Por um lado, a Stake Pool pode apenas agir como delegate se representar um determinado numero de stakeholders cuja participação conjunta excede um determinado limite mínimo, por exemplo, 0.1% de toda a participação na blockchain. Desta forma são prevenidos framentation attacks, em que um bad actor tenta afectar o funcionamente do protocolo aumentando o número da população de delegators.

2. Ao mesmo tempo, quando a participação agregada de uma Stake Pool cresce além de um pré-determinado limite mínimo, as recompensas tornam-se constantes. Isto torna uma determinada pool menos atractiva, e os stakeholders não estarão a maximizar as recompensas. Por exemplo, se o mínimo for de 1%, uma Stake Pool com 2% obteria as mesmas recompensas que a de 1%.

Todas estas funcionalidades tornam o Ouroboros o melhor protocolo PoS à data. E a sua implementação é restricta à blockchain Cardano.

Autor: @Arielfavio Tradutor: @jpsrrv