Proof of Work ou Proof of Work, é o protocolo de consenso mais conhecido e antigo que consiste nas partes de uma rede realizando com sucesso um trabalho computacionalmente caro para acessar os recursos da referida rede.
Eo protocolo Teste de trabalho, serve para evitar certos comportamentos indesejados em uma rede e seu nome vem do inglês Proof of Work (PoW).
este protocolo trabalha sob o conceito de exigir um trabalho do cliente, que é então verificado pela rede. Normalmente, o trabalho solicitado consiste em realizar operações computacionais complexas.
Essas operações são então verificadas pela rede. Uma vez aprovados, o cliente tem acesso para utilizar seus recursos. Com isso, busca impedir que clientes mal-intencionados consumam todos os recursos incontrolavelmente. Uma situação que pode acabar negando o serviço fornecido a outros clientes da rede.
Um exemplo muito simples de entender é o famoso captcha que é colocado quando você deseja se registrar em um site. A web coloca esse desafio que o visitante tem que resolver. Se o fizer, terá acesso ao serviço. Dessa forma, um invasor é impedido de criar milhões de registros e recolher a página da web. Porém, o desafio na comunicação entre computadores não pode ser tão complexo. Deve ser solucionável, embora com uma complexidade relativa.
A principal característica desta estratégia é a sua assimetria. O trabalho do cliente é moderadamente difícil de executar, mas a verificação da rede é direta. Isso significa que a prova do trabalho leva muito tempo para produzir e é computacionalmente cara. Mas verificar é simples, pois o teste cria padrões que facilitam a verificação.
Foi precisamente essa característica que chamou a atenção de Satoshi Nakamoto ao projetar o Bitcoin. É por isso que o sistema foi implementado. HashCash (um sistema PoW) em seu renomado criptomoeda.
Algoritmos PoW - Um pouco de história
Em 1992, a penetração de Internet foi importante o suficiente. Com a chegada, o uso de e-mails começou a se espalhar. Mas essa situação positiva trouxe novos problemas. Os sistemas de e-mail sofreram repetidamente ataques de Spam. Esses ataques geralmente desabilitavam servidores e deixavam muitas pessoas sem serviços. Era necessário encontrar uma solução para este problema.
Em 1993, acadêmicos Cynthia Dwork y Moni naorEles reconheceram o problema e tentaram resolvê-lo. Assim nasceu o ensaio "Precificação por processamento ou combate ao spam". No qual eles apresentaram maneiras de impedir que os spammers enviem mensagens em massa.
A ideia apresentada foi incluir um custo computacional para poder usar serviços de email. Para fazer isso, Dwork e Naor projetaram uma série de testes que exigiam trabalho com custos computacionais. Entre elas; o cálculo de algumas raízes quadradas ou o uso intensivo de funções hash. Depois que esse trabalho foi concluído, o usuário teve que adicionar as informações ao email para serem verificadas. Se estava correto, o email foi enviado; caso contrário, o email foi rejeitado. Este sistema simples impediu que os spammers continuassem a realizar seus ataques.
No entanto, ainda levaria algum tempo até que o sistema pudesse ser totalmente implementado.
A criação do HashCash
Mais tarde, em 1997, o protocolo veio à tona HashCash criado por criptonarquista Adam Back. Assim como no ensaio anterior, o termo Prova de Trabalho nunca foi usado no anúncio HashCash. Back, porém, usou um termo muito importante na tecnologia blockchain, o de "Dupla proteção contra gastos", Que David Chaum ele já havia avançado em seus trabalhos anteriores.
Com o HashCash, Back pretendia reduzir o spam massivo. A ideia era impor um custo não monetário na entrega de cada email. Um custo que estaria associado ao cálculo de problemas usando o computador. O princípio é simples: o problema foi calculado, anexado às informações de email e enviado. O servidor recebe o e-mail, verifica as informações e aceita ou rejeita conforme se passou no teste.
Mas o custo computacional também teve um custo real. O custo da eletricidade causado pelo cálculo intensivo foi de um centavo de dólar para cada correspondência enviada. Quem envia alguns e-mails por dia não notaria nada, mas um spammer sim. Enviar milhões de correspondências aumentaria muito a conta de luz dessa pessoa. Dessa forma, os spammers são desencorajados a realizar suas atividades maliciosas.
O nascimento do termo Proof of Work
Foi finalmente em 1999, quando Markus Jacobsson y Ari juels eles escreveram um documento intitulado "Prova de trabalho e protocolos de pudim de pão". E assim o termo foi cunhado "teste de trabalho". Jakobsson e Juels afirmam que um sistema de prova de trabalho é:
Este é um protocolo no qual um comprovante demonstra a um verificador que ele gastou um certo nível de esforço computacional num intervalo de tempo específico. Embora não definido como tal ou discutido formalmente, a prova do trabalho foi proposta como um mecanismo para vários objetivos de segurança, incluindo a medição do acesso ao servidor, a criação de cápsulas de tempo digitais e a proteção contra o envio de correio não desejado e outros ataques de negação de serviço.
Markus Jakobsson e Ari Juels
Protocolos de Prova de Trabalho e Pudim de Pão (1999) - Página 2
Além disso, este trabalho aprofunda a capacidade das Provas de Trabalho de adicione camadas de segurança. Que servem para garantir serviços críticos onde a segurança é muito importante.
Prova de trabalho chega ao Bitcoin
Satoshi Nakamoto publicou o documento técnico do Bitcoin em 31 de outubro de 2008. Nele, Nakamoto estava claro que a prova do trabalho era um elemento-chave do protocolo Bitcoin. No resumo do whitepaper do Bitcoin Podemos ler o seguinte:
Propomos uma solução para o problema dos gastos duplos usando uma rede ponto a ponto. A rede regista o tempo das transações agrupando-as numa cadeia de prova de trabalho baseada em hash, formando um registo que não pode ser alterado sem refazer a prova de trabalho.
Satoshi NakamotoBitcoin: um sistema eletrônico de caixa ponto-a-ponto (2008) – Resumo
Dessa forma, Nakamoto fez uso do trabalho de Adam Back, já que o Bitcoin usa o protocolo HashCash. Com isso acabou revolucionando o mundo, apresentando uma tecnologia totalmente inovadora, a blockchain. Essa tecnologia permitiu que ele criasse sua famosa criptomoeda, e ela evoluiu até hoje.
Usando o protocolo de Prova de Trabalho, com cada novo bloco criado deve resolver um quebra-cabeças matemático, que só pode ser resolvido por tentativa e erro. Estes quebra-cabeças são resolvidos pelos mineradores, através de milhões de tentativas. A solução do enigma resultará na criação do bloco, na confirmação das transações envolvidas nesse bloco e na geração de novos bitcoins que o minerador receberá como recompensa, juntamente com as comissões implícitas em cada uma das transações.
O problema matemático consiste em encontrar os parâmetros que dão um determinado resultado.. O especial desse resultado é que é um hash, então é impossível obter os parâmetros iniciais do hash, eles só podem ser gerados por tentativa e erro.
Como funciona o protocolo PoW?
A Prova de Trabalho funciona de forma bastante simples. De facto, o processo realizado pode ser dividido nas seguintes etapas principais:
- Etapa 1: O cliente ou nó estabelece uma conexão com a rede. Neste ponto, a rede atribui uma tarefa computacionalmente cara. Esta tarefa deve ser resolvida para receber um incentivo económico.
- Etapa 2: A solução do enigma começa. Isto envolve o uso de muita capacidade de computação para resolver o quebra-cabeças entregue. Este processo dá pelo nome de mineração.
- Etapa 3: Uma vez resolvida a tarefa computacional, o cliente partilha a mesma com a rede para a sua verificação. Neste ponto, é rapidamente verificado se a tarefa atende aos requisitos. Esta etapa fornece acesso aos recursos de rede. Caso contrário, o acesso e a solução apresentada do problema serão rejeitados. É neste ponto que é realizada a verificação da proteção contra duplos gastos. Proteção que impede que uma tarefa já atribuída e verificada pela rede ocorra mais de uma vez.
- Etapa 4: Com a confirmação de que a tarefa foi concluída, o cliente acede aos recursos da rede. Graças a isto, você obtém lucro pelo trabalho computacional realizado.
São essas quatro etapas que permitem e modelam o funcionamento da Prova de Trabalho. A facilidade deste modelo permite que ele seja transferido para diferentes softwares para aproveitar seu potencial. Mas é nas blockchains onde observamos uma utilidade maior, fornecendo níveis de segurança excepcionais, apesar da baixa complexidade do protocolo. E, ao mesmo tempo, permitir que milhões de pessoas participem simultaneamente da rede.
Características do protocolo PoW
- É um protocolo muito seguro. A Prova de Trabalho garante altos níveis de segurança, se a rede consistir em milhares de mineradores. De facto, quanto mais mineradores, mais segura é a rede. Isto torna-se ideal para o uso na formação de grandes redes distribuídas.
- É simples e muito fácil de implementar algoritmicamente. Uma das principais vantagens do PoW é que é muito fácil de implementar. Este recurso traduz-se na fácil manutenção do software que faz uso dele. Além de permitir auditorias de uma forma muito mais simples, a fim de manter a segurança da rede.
- Facilmente adaptável às necessidades de hardware, capaz de projetar resistência a determinados equipamentos (ASIC, GPU, FPGA, CPU) Outra vantagem do protocolo é a sua adaptabilidade à tecnologia. Pode ser facilitado ou dificultado, para adaptá-lo aos avanços tecnológicos. Permitindo que a evolução do hardware não deixe para trás a dificuldade da mineração. Que por fim, termina centralizando o poder de mineração naqueles que possuem hardware mais novo e mais poderoso.
- Excelente resistência a Ataques de Negação de Serviço. O principal motivo para a criação de protocolos PoW foi; evitar negação de serviços. Uma tarefa que é perfeitamente realizada e que melhorou bastante os esquemas de protocolo atuais.
- O sistema consome uma grande quantidade de energia elétrica. O trabalho computacional intensivo do PoW requer grandes quantidades de energia elétrica. As estimativas indicam que o consumo é de 24 Terawatts de energia por ano e continuará a aumentar à medida que mais energia for necessária para realizar este trabalho intensivo.
Além disso, você pode revisar mais recursos deste protocolo e revisar as semelhanças e diferenças que ele tem em relação ao protocolo Proof of Stake no Comparação PoW PoS que você encontrará neste artigo completo.