sábado, 11 de dezembro de 2021

Crypto staking

Crypto staking é método para bloquear parte das criptomoedas, contribuindo à determinada rede blockchain e permitindo detentores de criptomoedas gerar valor a partir de criptoativos ociosos em sua posse, sendo que no piqueteamento de criptografia, concorda-se não retirar criptomoedas do processo até o final do período de tempo acordado, auxiliando a rede obter vantagens. O conceito de crypto staking, não suportado por algumas plataformas blockchain, é usado por criptomoedas em modelo de prova de aposta em vez do modelo de prova de trabalho Bitcoin, sendo que na prova de aposta novas transações são verificadas antes de adicionadas ao blockchain e as moedas existentes usadas como validadores para confirmar os blocos, daí, quando um novo bloco é adicionado ao blockchain o validador é recompensado com algumas das novas moedas cunhadas. Blockchain é exemplo de sistema distribuído sem fonte central de verdade, como qualquer banco de dados distribuído não pode ter consistência, disponibilidade e tolerância de partição simultaneamente, com maioria das blockchains garantindo disponibilidade tolerante a partições. Cada par na rede blockchain pode construir um conjunto diferente de históricos de transações levando a divergências chamadas de bifurcações e, obter consenso entre diferentes cópias da blockchain em cada nó em configuração, sem confiança, sem toleracia a falhas e, ao mesmo tempo, um desafio aos desenvolvedores.

Uma das falhas do sistema distribuído em uma rede não confiável é a falha do nó, representada pelo experimento de pensamento chamado “Problema dos generais bizantinos” e, segundo ele, generais de um exército bizantino acamparam com suas tropas ao redor da cidade inimiga e um grupo só não é suficiente para derrotar a cidade, daí, os generais devem concordar com um plano de batalha comum. Esses grupos de exércitos separados uns dos outros se comunicam por mensageiros e, ao transferir a mensagem, o mensageiro pode ser capturado pelo inimigo e a mensagem alterada ou perdida, resultando em ataque geral enquanto os outros mantêm suas posições. Ao receber a mensagem, uma confirmação é enviada da recepção geral ao remetente, que o mensageiro pode ser pego, no entanto, pode haver um loop infinito de envio e recebimento de confirmações para obter consenso e nenhum general sabe se a mensagem foi recebida ou não, além disso, um ou mais generais pode trair e mentir sobre sua escolha tentando confundir os outros. Da mesma forma, o problema de encontrar um algoritmo garantindo que os generais leais cheguem a um acordo, representa problema entre diferentes componentes de um sistema distribuído para chegar ao consenso sobre o estado da blockchain. Este problema só pode ser resolvido se mais de dois terços dos generais fossem leais e o consenso é impossível alcançar se um terço ou mais dos generais são traidores.

Moral da Nota: a rede blockchain experimenta assincronicidade causada por atrasos no envio de mensagens, sem suposições anteriores sobre o comportamento dos nós participantes, cada blockchain emprega mecanismo de consenso fornecendo consistência entre os nós apesar de atores mal-intencionados para hackear o sistema e obter acesso à riqueza. O sistema blockchain é capaz de tolerar falhas trazidas pelo problema dos generais bizantinos, desde que o número de nós maliciosos não exceda um terço dos nós honestos e, no Bitcoin ou blockchain original, a Prova de Trabalho fornece consenso e outros blockchains como Ethereum, Litecoin, Dogecoin, Monero, etc empregam este protocolo. Os mineiros competem para criar novos blocos cunhando novas moedas e mantendo recompensas, sendo este um sistema incentivado para mineiros sem nada em jogo prevenir comportamento malicioso.