# Prova de participação

Prova de participação (do inglês proof-of-stake ou PoS) é um mecanismo de segurança, uma alternativa da prova de trabalho (PoW), onde os validadores usam suas próprias criptomoedas para validarem operações, que irão para o registro público, que em caso de fraude, não é devolvido, pois esse valor é dado como uma garantia (especialmente protegida). Assim como prova de trabalho, é provido um consenso e prevenção ao problema do duplo gasto. Grosso modo, um nó deve provar que possui acesso a uma certa quantidade de moedas antes de ser aceito pela rede ao invés de resolver algum trabalho. Gerar um bloco envolve o envio de moedas para si mesmo, provando assim a posse. A quantidade de moedas necessárias (alvo) é especificada pela rede em um processo de ajustes semelhantes a prova de trabalho. Dentre as moedas virtuais que utilizam o método, podem ser citadas o BlackCoin, NuShares/NuBits, Qora, a NEO, que fornece tokens GAS para quem mantém a moeda, o Ethereum está em processo de migração e a Decred, que possui um sistema híbrido (PoS e PoW).

## Motivação

A prova de participação possui um incremento na proteção de ataques maliciosos, reduzindo o incentivo a ataques pois os torna muito mais custosos e a penalidade sobre um atacante é muito mais severa. Para isso, é implementado o conceito de consenso por aposta, cuja ideia principal é o protocolo oferecer oportunidade para que os validadores apostem contra o protocolo onde os blocos serão finalizados. Uma aposta em um bloco X, dá uma recompensa Y a seu validador em todas as instâncias que o bloco X for processado, mas que também dá uma penalidade Z em todas as instâncias em que X não seja processado. Conclui-se que não há vantagem em utilizar poder computacional (CPU/GPU/ASIC) para minerar, pois o que se torna uma máquina mineradora virtual é uma carteira virtual onde o poder é diretamente proporcional ao saldo.

## Contextualização

PoS ajudou a dar à luz a um grande avanço proposto por Nakamoto, no entanto, a natureza da Prova de Trabalho significa que a cripto-moeda é dependente do consumo de energia, introduzindo assim a sobrecarga de custos significativo na operação de tais redes, que é suportado pelos utilizadores através de uma combinação de taxas de inflação e de transação. Como a taxa de cunhagem diminui na rede Bitcoin, eventualmente, ele poderia colocar pressão em levantar taxas de transação para sustentar um nível suficiente de segurança. Assim, é um marco importante tanto teórica quanto tecnologicamente, demonstrar que a segurança peer-to-peer de cripto-moeda não precisa depender do consumo de energia. Um conceito denominado de prova de participação foi discutido entre os círculos Bitcoin já em 2011. Em resumo, prova de participação significa uma forma de prova de propriedade da moeda. A idade da moeda consumida por uma transação pode ser considerada uma forma de prova de participação. Assim como a prova de trabalho, a prova de Participação não pode ser facilmente falsificada. Este é um dos requisitos críticos dos sistemas monetários - a dificuldade de falsificação.

## Vantagens

As moedas de prova de participação podem ser mais eficientes em termos de energia do que as moedas baseadas em algoritmos de prova de trabalho.
Incentivos também diferem entre a prova de trabalho e a prova de participação. Sob a prova de trabalho, os mineradores podem potencialmente não possuir nenhuma das moedas que estão explorando e, assim, buscar apenas maximizar seus próprios lucros. Sob a prova de participação, entretanto, aqueles que "guardam" as moedas sempre possuem as moedas. Não está claro se essa disparidade diminui ou aumenta os riscos de segurança.

## Crítica

Alguns autores argumentam que a prova de participação não é uma opção ideal para um protocolo de consenso distribuído. Uma questão que pode surgir é o problema do "nada em jogo", em que os geradores de blocos não têm nada a perder ao votar em várias histórias de blockchain, evitando assim que o consenso seja alcançado. Porque ao contrário dos sistemas de prova de trabalho, há pouco custo para trabalhar em várias cadeias.
Muitos tentaram resolver esses problemas:
* Peercoin é a primeira criptomoeda que aplicou o conceito de Prova de participação. Em seus estágios iniciais, usou pontos de verificação transmitidos centralmente, assinados sob a chave privada do desenvolvedor. Nenhuma reorganização de blockchain foi permitida mais profundamente que os últimos checkpoints conhecidos. Os pontos de verificação são aceitos a partir da v0.6 e não são aplicados agora que a rede atingiu um nível adequado de distribuição.
* O protocolo Slasher sugerido pela Ethereum permite aos usuários "punir" o trapaceiro que forja em cima de mais de uma ramificação blockchain. Esta proposta assume que é necessário assinar duas vezes para criar uma bifurcação e essa pode ser punida por criar uma bifurcação enquanto não estiver em jogo. No entanto, Slasher nunca foi adotado; Os desenvolvedores do Ethereum concluíram que a prova de participação é "não-trivial" optando por adotar um algoritmo de prova de trabalho chamado Ethash . Está previsto que seja substituído por um protocolo PoS diferente chamado "Casper".
* A prova de trabalho e prova de participação híbrida do Decred , na qual a prova de participação é uma extensão dependente do carimbo de data e hora da prova de trabalho, baseado na proposta de "prova de atividade", que visa Solucione o problema do “nada em jogo” tendo mineradores com prova de trabalho, blocos de mineração e prova de participação agindo como um segundo mecanismo de autenticação.
Simulações estatísticas mostraram que o forjamento simultâneo em várias cadeias é possível, até mesmo lucrativo. Mas os defensores da prova acreditam que os cenários de ataque mais descritos são impossíveis ou tão imprevisíveis que são apenas teóricos.

## Coin Age

O conceito de idade moeda era conhecido por Satoshi Nakamoto e usado em Bitcoin para ajudar a priorizar operações, por exemplo, apesar de não desemoenhae muito de um papel crítico no modelo de segurança da Bitcoin. A idade da moeda é simplesmente definida como o valor da moeda vezes o período de tempo em que um usuário possui a moeda. Em um exemplo simples de entender, se Bob recebeu 10 moedas de Alice e segurou-a por 90 dias, dizemos que Bob acumulou 900 "moedas-dias" de idade moeda. Além disso, quando Bob gasta as 10 moedas que recebeu de Alice, dizemos que a idade da moeda de Bob acumulada com essas 10 moedas foi consumida (ou destruída). A fim de facilitar o cálculo de cunhagem, é introduzido um campo de data e hora em cada transação. Timestamp do block e protocolo de transação de timestamp são reforçados para garantir a computação de idade moeda.

## Cunhagem

Um novo processo de cunhagem é introduzido para prova de participação, além de cunhagem prova-de-trabalho de Bitcoin. Os blocos de cunhagem das moedas com base na idade moeda consumida na transação. A taxa de cunhagem de 1 centavo por "moeda-anos" consumida é escolhida para dar origem a uma taxa de inflação futura baixa. Mesmo mantendo prova-de-trabalho como parte do processo de cunhagem para facilitar a cunhagem inicial, é concebível que em um sistema puro de prova de participação de cunhagem inicial pode ser semeado completamente no bloco gênese através de um processo semelhante ao inicial do mercado de Oferta pública de aquisição (OPA).

## O Problema do Monopólio

Se uma entidade (monopolista) assumir o controle da maior parte dos recursos, poderia então utilizar esses recursos para impor condições à rede, podendo agir de maneira maliciosa, como duplo gasto. Se um monopolista manteve controle de uma rede por um longo período de tempo e agiu de má-fé, a confiança na rede de moedas virtuais poderia entrar em colapso. Por outro lado, se ainda monopolista, se abster de explorações ilícitas na rede, a confiança poderia ser mantida mesmo sob monopólio, uma vez que a funcionalidade inicial não seria afetada. Os dois tipos de monopólio são rentáveis. Devido a Tragédia dos comuns.

## Subjetividade Fraca

Antes do surgimento da prova de participação, dois paradigmas eram muito comuns:
* Objetivo: um novo nó entra na rede, onde o único conhecimento é a definição de protocolo e o conjunto de todos os blocos e outras mensagens "importantes" que foram publicadas podendo tirar a mesma conclusão do resto da rede sobre o estado atual.
* Subjetivo: o sistema tem estados estáveis, onde diferentes nós chegam a conclusões diferentes, e uma reputação alta é necessária para participar.
Para a prova de participação, um terceiro paradigma foi adicionado:
* Fracamente subjetiva: um novo nó vindo para a rede sem nenhum conhecimento, exceto a definição do protocolo, o conjunto de todos os blocos e outras mensagens "importantes" que foram publicadas e um estado de menos de N blocos atrás, conhecido por ser válido, ou seja, chegam independentemente à mesma conclusão exata como o resto da rede no estado atual, a menos que haja um atacante que permanentemente tem mais de X por cento do controle sobre o conjunto consenso.

## Implementações utilizando Proof of Stake

A implementação PoS refere-se a um método para atribuir prioridade nos cálculos de hash, de acordo com a detenção de moeda virtual. Isto é baseado na ideia de que um ato desonesto cometido por um nó que possui uma grande quantidade de moeda virtual, resulta na redução da confiabilidade e valor da moeda. Este fato funciona como um incentivo para qualquer participante evitar atos desonestos. No entanto, vários meios para controlar ilegalmente blockchains são apontadas e contramedidas são necessárias. A seguir são apresentadas algumas contramedidas implementadas em moedas virtuais.

## Implementação em Peercoin

Peercoin procura resolver um grande problema que ocorre na mineração do bitcoin: minerar bitcoins requer um grande poder computacional e uma grande quantidade de energia elétrica, e os mineiros precisam de hardware de processamento avançado para contribuir. Peercoin usa a tecnologia blockchain e os mesmos mecanismos de mineração que o Bitcoin, mas também permite que os proprietários de Peercoin gerem mais Peercoins através de um processo eficiente de energia, uma cunhagem econômica (do inglês minting). Depois de períodos de tempo designados, os usuários podem empregar um algoritmo de prova de participação, que mantém o controle de quanto tempo você tem a posse sobre uma determinada Peercoin, para acumular mais Peercoin. Basicamente, o minting permite ganhar uma recompensa em Peercoins a fim de manter a rede robusta - 1% ao ano para todos os usuários. Funções de cunhagem para mineração protege a rede e tem como custo uma fração de energia - a cunhagem pode ser feito em qualquer computador e sem hardware avançado. Este modelo de "prova-de-participação" distingue Peercoin de outras moedas digitais, mas como ele ainda é jovem, mineração continua sendo a fonte predominante de suas moedas - benefícios significativos de cunhagem só será visto depois Peercoins suficientes tenham sido adquiridos ao longo do tempo.

## Implementação em NeuCoin

NeuCoin acredita que o seu próprio projeto de prova de participação é totalmente seguro - e não vai precisar usar postos de controle. NeuCoin modificou significativamente seis aspectos da prova de participação do Peercoin:
* Taxas de recompensa mineração: NeuCoin aumentou drasticamente as recompensas para a mineração a fim de maximizar a percentagem de moedas a ser extraído em todas as vezes, o que é a alicerce da segurança em qualquer criptomoeda prova-de-participação. As recompensas do NeuCoin começam em uma taxa de juros anual de 100% e diminui de forma constante ao longo de um período de 10 anos a uma taxa de 6% - contra apenas 1% ao ano do Peercoin.
* A idade mínima participação: NeuCoin utiliza uma idade mínima 1,6 dias contra 30 dias do Peercoin. Isto também tem o efeito de aumentar a participação de mineração.
* Importância da idade moeda na equação de mineração: O NeuCoin não utiliza idade moeda na equação mineração como um factor para a determinação da probabilidade de gerar um bloco. Essa alteração também aumenta a participação de mineração.
* Bloco tempo: NeuCoin usa um bloco de tempo de 1 minuto, contra 10 minutos no Peercoin, o que, segundo a empresa, melhora a experiência do usuário e aumenta a segurança contra alguns vetores de ataque.
* Modificador Parada: NeuCoin escolheu para se adaptar modificador participação da BlackCoin, que flutua ao longo do tempo, ao invés de Peercoin do, que corrige permanentemente o modificador de jogo após o intervalo inicial para um determinado conjunto de UTXOs. NeuCoin escolheu este projeto porque acredita que o projeto de Peercoin é suscetível a ataques de longo alcance pré-programados. O intervalo modificador e o intervalo de seleção foram ajustados substancialmente em relação a ambos (BlackCoin e Peercoin), a fim de reduzir a eficácia de trituração através de modificadores da participação.
* NeuCoin usa uma versão do cliente desenvolvido por Michael Witrant (desenvolvedor do núcleo de Peercoin e Técnico Assessor NeuCoin), que não só detecta participações duplicadas para que nós honestos possam rejeitá-las, mas também pune os nós que transmitem participações duplicadas, rejeitando todos os blocos transmitidos pelo mineradoror desonesto.

## Implementação em BlackCoin

No Blackcoin algumas medidas foram tomadas, referentes a implementação original (Peercoin):
* Removeu-se a idade da moeda da equação: A maneira mais segura de realizar uma Prova participação é por ter o maior número de nós ativos possíveis. Quanto mais nós que estão participando, menos possibilidade de problemas de segurança, como ataques de 51%, e a rede real irá realizar transações mais rápidas por meio desses nós. Tirando a idade moeda vai exigir que todos os nós permaneçam mais tempo on-line para obter sua recompensa de participação. Portanto, economizar moedas não é mais uma possibilidade com este sistema.
* Alterou-se o modificador de Participação: A fim de mitigar a possibilidade do ataque de pré-computação, o modificador de participação será alterado a cada intervalo de modificador - para melhor ofuscar quaisquer cálculos que seriam feitas para identificar a tempo da próxima prova de participação.
* Regras Bloco de tempo: mudanças apropriadas foram feitas para a data e hora de blocos para trabalhar de forma mais eficiente com PoS. O bloco de tempo foi aumentado de originais 60 segundos para coincidir com a granularidade. Nota-se que se assume que os nós têm uma fonte externa de tempo, e se o tempo interno de um nó desviar muito do consenso geral, em seguida, existe uma elevada probabilidade de que os blocos gerados por esse nó vão ficar isolado.
* Função Hash: A única grande mudança para ocorrer no algoritmo para determinar o hash. Portanto o hash do bloco foi alterado novamente para SHA256d.

## Implementação da NXT

NXT é uma moeda digital (altcoin) do tipo puro PoS (proof-of-stake), concebida no final de 2013 e lançado no início de 2014 com o objetivo de constituir uma rede de pagamentos com mais independência que pode ser usado por usuários com diferentes necessidades, que trabalha com uma estrutura de recompensa por participação semelhante, mas um pouco diferente do BlackCoin (mas também usa blockchain como mecanismo de segurança e para registro público) autointitulou o "Blockchain 2.0". Assim como BlackCoin, o NXT remove a idade da moeda do cálculo, baseando a chance de ganhar um bloco de participação inteiramente em percentagem de explorações de moedas. Ao contrário do BlackCoin ou Peercoin, NXT implementa taxas de transações a cada bloco vencedor (sem usar a recompensa inflacionária). Assim, a participação é inteiramente independente da idade moeda, mas é imprevisível e tem baixo incentivo na ausência de elevado volume de transação.
A NXT possui a capacidade de construir um marketplace ao redor do criptoativo. Permite o uso de plugins para adaptar funções conforme a necessidade. Permite a aquisição de licenças para usá-la como rede de pagamentos, criando aplicações financeiras personalizadas com uma estrutura completa (como tokens, controle de contas, sistema monetário).

## Considerações e Estudos Futuros

Desde a concepção, a prova da participação tem sido utilizada como uma alternativa econômica (em relação energética) e segura a Prova do Trabalho. No entanto, o uso da idade da moeda como parâmetro na Prova de Participação criou um sistema que não recompensa detentores de moeda na mesma proporção da quantidade de segurança que contribuída para a rede, permitindo que grandes partes interessadas para esporadicamente utilizem suas moedas para receber recompensas sem plena participação. A fim de melhorar a segurança, implementações incrementais vem ocorrendo como PoS:D (de Proof-of-stake: Delicious!), PoST (Proof-of-Stake-Time), entre outras. Cashcow, com a sua implementação de PoS:D é uma das primeiras criptomoedas a implementar um sistema de ajuste constante de recompensas. Como tal, esta moeda é um test-bed para este novo modelo de PoS em moedas e estudo. O código da maioria destes projetos estão abertos e os entusiastas são bem recebidos pela comunidade.