Prova de trabalho - Proof of work

Prova de trabalho ( PoW ) é uma forma de prova criptográfica de conhecimento zero em que uma parte (o provador ) prova a outras (os verificadores ) que uma certa quantidade de um esforço computacional específico foi gasto. Os verificadores podem, subsequentemente, confirmar esse gasto com o mínimo de esforço de sua parte. O conceito foi inventado por Cynthia Dwork e Moni Naor em 1993 como uma forma de impedir ataques de negação de serviço e outros abusos de serviço, como spam em uma rede, exigindo algum trabalho de um solicitante de serviço, geralmente significando tempo de processamento por um computador. O termo "prova de trabalho" foi cunhado e formalizado pela primeira vez em um artigo de 1999 por Markus Jakobsson e Ari Juels. A prova de trabalho foi posteriormente popularizada pelo Bitcoin como uma base para o consenso em rede descentralizada sem permissão, na qual os mineiros competem para anexar blocos e cunhar nova moeda, cada minerador experimentando uma probabilidade de sucesso proporcional ao seu esforço computacional despendido. PoW e PoS ( prova de aposta ) são os dois mecanismos de dissuasão Sybil mais conhecidos . No contexto das criptomoedas, são os mecanismos mais comuns.

Uma característica fundamental dos esquemas de prova de trabalho é sua assimetria: o trabalho - o cálculo - deve ser moderadamente difícil (mas viável) do lado do provador ou solicitante, mas fácil de verificar pelo verificador ou provedor de serviço. Essa ideia também é conhecida como função de custo da CPU, quebra-cabeça do cliente , quebra-cabeça computacional ou função de precificação da CPU. Outra característica comum são as estruturas de incentivo integradas que recompensam a alocação de capacidade computacional à rede com valor na forma de dinheiro .

O objetivo dos algoritmos de prova de trabalho não é provar que determinado trabalho foi realizado ou que um quebra-cabeça computacional foi "resolvido", mas impedir a manipulação de dados ao estabelecer grandes requisitos de controle de energia e hardware para poder fazê-lo.

Fundo

Um sistema popular, usado em Hashcash , usa inversões de hash parciais para provar que o cálculo foi feito, como um token de boa vontade para enviar um e-mail . Por exemplo, o cabeçalho a seguir representa cerca de 2 52 cálculos de hash para enviar uma mensagem calvin@comics.netem 19 de janeiro de 2038:

X-Hashcash: 1:52:380119:calvin@comics.net:::9B760005E92F0DAE

É verificado com um único cálculo, verificando se o hash SHA-1 do carimbo (omitir o nome do cabeçalho, X-Hashcash:incluindo os dois pontos e qualquer quantidade de espaço em branco que o segue até o dígito '1') começa com 52 zeros binários, ou seja, 13 zeros hexadecimais:

0000000000000756af69e2ffbdb930261873cd71

Se os sistemas PoW podem realmente resolver um determinado problema de negação de serviço, como o problema de spam, está sujeito a debate; o sistema deve tornar o envio de e-mails de spam intrusivamente improdutivo para o spammer, mas também não deve impedir que usuários legítimos enviem suas mensagens. Em outras palavras, um usuário genuíno não deve encontrar nenhuma dificuldade ao enviar um e-mail, mas um spammer de e-mail teria que gastar uma quantidade considerável de capacidade de computação para enviar muitos e-mails de uma vez. Os sistemas de prova de trabalho estão sendo usados ​​por outros sistemas criptográficos mais complexos, como o bitcoin , que usa um sistema semelhante ao Hashcash.

Variantes

Existem duas classes de protocolos de prova de trabalho.

  • Os protocolos de desafio-resposta assumem um link direto interativo entre o solicitante (cliente) e o provedor (servidor). O provedor escolhe um desafio, digamos um item em um conjunto com uma propriedade, o solicitante encontra a resposta relevante no conjunto, que é enviada de volta e verificada pelo provedor. Como o desafio é escolhido na hora pelo provedor, sua dificuldade pode ser adaptada à sua carga atual. O trabalho do lado do solicitante pode ser limitado se o protocolo de desafio-resposta tiver uma solução conhecida (escolhida pelo provedor) ou se souber que existe dentro de um espaço de pesquisa limitado.
Prova de trabalho desafio response.svg
  • Os protocolos de verificação de solução não presumem esse link: como resultado, o problema deve ser auto-imposto antes que uma solução seja buscada pelo solicitante, e o provedor deve verificar a escolha do problema e a solução encontrada. A maioria desses esquemas são procedimentos iterativos probabilísticos ilimitados, como Hashcash .
Prova de solução de verificação de trabalho.

Os protocolos de solução conhecida tendem a ter uma variância ligeiramente menor do que os protocolos probabilísticos ilimitados porque a variância de uma distribuição retangular é menor do que a variância de uma distribuição de Poisson (com a mesma média). Uma técnica genérica para reduzir a variância é usar vários sub-desafios independentes, pois a média de várias amostras terá uma variância menor.

Existem também funções de custo fixo, como o quebra-cabeça de bloqueio de tempo.

Além disso, as funções subjacentes usadas por esses esquemas podem ser:

  • Limitada pela CPU, onde a computação é executada na velocidade do processador, que varia muito com o tempo , bem como de servidores de última geração a dispositivos portáteis de última geração.
  • Limitado à memória, onde a velocidade de computação é limitada pelos acessos à memória principal (latência ou largura de banda), cujo desempenho deve ser menos sensível à evolução do hardware.
  • Vinculado à rede se o cliente deve realizar alguns cálculos, mas deve coletar alguns tokens de servidores remotos antes de consultar o provedor de serviço final. Nesse sentido, o trabalho não é realmente executado pelo solicitante, mas causa atrasos de qualquer maneira devido à latência para obter os tokens necessários.

Finalmente, alguns sistemas PoW oferecem cálculos de atalho que permitem aos participantes que conhecem um segredo, normalmente uma chave privada, gerar PoWs baratos. O raciocínio é que os portadores de listas de mala direta podem gerar selos para todos os destinatários sem incorrer em um alto custo. Se tal recurso é desejável depende do cenário de uso.

Lista de funções de prova de trabalho

Aqui está uma lista de funções de prova de trabalho conhecidas:

Prova de trabalho reutilizável

O cientista da computação Hal Finney se baseou na ideia da prova de trabalho, produzindo um sistema que explorava a prova de trabalho reutilizável (RPoW). A ideia de tornar as provas de trabalho reutilizáveis ​​para algum propósito prático já havia sido estabelecida em 1999. O propósito de Finney para o RPoW era como dinheiro simbólico . Assim como o valor de uma moeda de ouro é considerado sustentado pelo valor do ouro bruto necessário para produzi-la, o valor de um token RPoW é garantido pelo valor dos recursos do mundo real necessários para 'cunhar' um token PoW. Na versão de RPoW de Finney, o token PoW é um pedaço de Hashcash .

Um site pode exigir um token PoW em troca de serviço. Exigir um token PoW dos usuários inibiria o uso frívolo ou excessivo do serviço, poupando os recursos subjacentes do serviço, como largura de banda para a Internet , computação, espaço em disco, eletricidade e sobrecarga administrativa.

O sistema RPoW de Finney diferia de um sistema PoW por permitir a troca aleatória de tokens sem repetir o trabalho necessário para gerá-los. Depois que alguém "gastou" um token PoW em um site, o operador do site poderia trocar esse token PoW "gasto" por um novo token RPoW não gasto, que poderia ser gasto em algum site de terceiros igualmente equipado para aceitar tokens RPoW. Isso economizaria os recursos de outra forma necessários para 'cunhar' um token PoW. A propriedade antifalsificação do token RPoW foi garantida por atestado remoto . O servidor RPoW que troca um PoW ou token RPoW usado por um novo de igual valor usa atestado remoto para permitir que qualquer parte interessada verifique qual software está sendo executado no servidor RPoW. Uma vez que o código-fonte do software RPoW de Finney foi publicado (sob uma licença semelhante a BSD ), qualquer programador com conhecimento suficiente poderia, inspecionando o código, verificar se o software (e, por extensão, o servidor RPoW) nunca emitiu um novo token, exceto em troca de um token gasto de igual valor.

Até 2009, o sistema de Finney foi o único sistema RPoW a ter sido implementado; nunca viu uso economicamente significativo.

O RPoW é protegido pelas chaves privadas armazenadas no hardware do TPM ( Trusted Platform Module) e pelos fabricantes que possuem as chaves privadas do TPM. Roubar uma chave do fabricante do TPM ou obter a chave examinando o próprio chip TPM subverteria essa garantia.

Prova de trabalho do tipo Bitcoin

Em 2009, a rede Bitcoin ficou online. Bitcoin é uma moeda digital de prova de trabalho que, como o RPoW de Finney, também é baseada no Hashcash PoW. Mas no Bitcoin, a proteção contra gasto duplo é fornecida por um protocolo P2P descentralizado para rastrear transferências de moedas, em vez da função de computação confiável de hardware usada pelo RPoW. Bitcoin tem melhor confiabilidade porque é protegido por computação. Os bitcoins são "extraídos" usando a função de prova de trabalho Hashcash por mineradores individuais e verificados pelos nós descentralizados na rede bitcoin P2P.

A dificuldade é ajustada periodicamente para manter o tempo do bloco em torno de um tempo-alvo.

Consumo de energia

Consumo de eletricidade Bitcoin em 2021

Desde a criação do Bitcoin, a prova de trabalho tem sido o design predominante da criptomoeda ponto a ponto. Estudos estimaram o consumo total de energia da mineração de criptomoedas. O mecanismo PoW requer uma grande quantidade de recursos de computação, que consomem uma quantidade significativa de eletricidade. O consumo total de energia do Bitcoin é equivalente ao de um pequeno país. O consumo absoluto de eletricidade e as emissões de carbono do Bitcoin não são significativos em termos globais, representando 0,04% do consumo global de energia primária, 0,2% da geração global de eletricidade e 0,1% das emissões globais de carbono. Os mineiros de bitcoin podem reduzir as emissões a curto e médio prazo, comprando compensações de carbono, adquirindo energia renovável, favorecendo locais com energia renovável e usando energia desperdiçada. No longo prazo, os mineradores de Bitcoin podem se beneficiar da descarbonização da rede e dos prováveis ​​avanços na tecnologia de armazenamento de bateria e dos custos de armazenamento mais baixos resultantes.

Modificação da história

Cada bloco adicionado ao blockchain, começando com o bloco que contém uma determinada transação, é chamado de confirmação dessa transação. Idealmente, os comerciantes e serviços que recebem o pagamento na criptomoeda devem aguardar pelo menos uma confirmação a ser distribuída pela rede, antes de presumir que o pagamento foi feito. Quanto mais confirmações o comerciante esperar, mais difícil será para um invasor reverter com êxito a transação em um blockchain - a menos que o invasor controle mais da metade da potência total da rede, caso em que é chamado de ataque de 51% .

ASICs e piscinas de mineração

Dentro da comunidade Bitcoin, existem grupos trabalhando juntos em piscinas de mineração . Alguns mineiros usam circuitos integrados específicos de aplicativo (ASICs) para PoW. Essa tendência de minerar pools e ASICs especializados tornou a mineração de algumas criptomoedas economicamente inviável para a maioria dos jogadores sem acesso aos ASICs mais recentes, fontes próximas de energia barata ou outras vantagens especiais.

Alguns PoWs afirmam ser resistentes a ASIC, ou seja, para limitar o ganho de eficiência que um ASIC pode ter sobre hardware comum, como uma GPU, está bem abaixo de uma ordem de magnitude. A resistência ASIC tem a vantagem de manter a mineração economicamente viável em hardware commodity, mas também contribui para o risco correspondente de que um invasor possa alugar brevemente o acesso a uma grande quantidade de poder de processamento de commodity não especializado para lançar um ataque de 51% contra uma criptomoeda.

Veja também

Notas

  • ^ Na maioria dos sistemas Unix, isso pode ser verificado comecho -n 1:52:380119:calvin@comics.net:::9B760005E92F0DAE | openssl sha1

Referências

links externos