The Proof-of-Work Concept by Daniel Krawisz em Português

peacock

A busca

Talvez o aspecto menos intuitivo da rede Bitcoin é o conceito de proof-of-work  que ele utiliza para definir o requisito para a geração de um novo conjunto de operações (“block“) a ser adicionada à base de dados de transação distribuída (“block chain“). Este conceito, que cresceu a partir de idéias do movimento cypherpunk inicial1, é novo para a teoria monetária e parece um pouco fora de lugar em ciência da computação também. Vou mostrar que a biologia nos dá o quadro mais adequado para entendê-lo.

Todos os blocos na cadeia de blocos do Bitcoin tem uma curta sequencia de caracteres sem  sentido — chamada de nonce — atrelada a ele. Os computadores de mineração (the mining computers ) são obrigados a procurar pelas cadeias sem sentido (nonces) de tal forma que o bloco como um todo satisfaz uma determinada condição arbitrária. Especificamente, é necessário que o hash SHA-256 do bloco tenha um certo número de zeros no início.2 Hashes são funções de sentido único, por isso não há nenhuma maneira fácil de encontrar o nonce correto ou de outra forma de montar um bloco para que seja o correto [Que gera o hash quando é aplicada a função]. A única forma conhecida para encontrar nonce correto é simplesmente tentar aleatoriamente até encontrar [força bruta]. A Khan Academy fornece uma explicação visual de proof-of-work:

O procedimento, lembre-se, é totalmente arbitrário. É simplesmente uma complicação adicionada, como um ritual, de modo a fazer blocos mais difíceis de produzir. Realmente qualquer outra coisa faria o mesmo, desde que fosse computacionalmente difícil. Outras cripto-moedas usam outros algoritmos de hash. Não há nenhuma condição especial oriunda da teoria dos números que diga que só alguém como Shinichi Mochizuki poderia entender.3

mining

Embora a finalidade dos computadores de mineração seja fazer a contabilidade da cadeia de blocos (blockchain), a maioria do trabalho que eles realmente fazem é procurar nonces corretos, ao invés de alguma coisa a ver com a contabilidade. A energia utilizada para encontrar as nonces é perdida para sempre. A energia não “volta” com o valor de bitcoins do mesmo modo que o ouro faz para uma nota de banco honesta [lastro], como alguns supõem. Do vasto poder de computação que vai para a mineração bitcoin, exceto uma pequena fração, é aparentemente sem propósito.

asicminer

Quando uma pessoa atualiza seu computador de mineração, ela passa a minerar em um ritmo mais rápido e, portanto, a ganhar mais bitcoins. No entanto, quando todos atualizam, a mineração não se torna mais eficiente como um todo. Supostamente apenas um novo bloco a cada dez minutos, independentemente do quão duro a rede esteja trabalhando.  A rede atualiza a dificuldade (updates the difficulty)  exigindo condições mais rigorosas para os blocos seguintes. Todos os mineradores podem trabalhar mais, mas nenhum deles obtém um resultado melhor. É um pouco como uma floresta, em que cada árvore tenta crescer tão alto quanto possível, de modo a capturar mais luz do que os suas companheiras, com o resultado final de que a maioria da energia solar é usada para crescer troncos mortos e longos.

Por que amarrar cada bloco de bitcoin a um leito de Procusto (Procrustean) tão difícil? A maneira correta de pensar sobre o conceito de proof-of-work é como um meio para um grupo de pessoas com interesses próprios, nenhuma delas subordinada a nenhuma outra, para estabelecer um consenso contra um incentivo considerável para resistir a ele [fraudá-lo]. Bitcoin poderia funcionar perfeitamente sem prova de trabalho (proof-of-work), desde que todos fossem perfeitamente honestos e altruístas. Se eles não o são então chegar a um consenso é difícil.

Antes que um novo bloco seja gerado pode haver muitos pagamentos flutuando na rede e ainda não há qualquer resposta objetiva a respeito de quais os pagamentos deverão ser aceitos. Alguns podem ser inválidos, por isso todos precisam ser verificados. Alguns podem não incluir qualquer taxa de transação, então também deve haver uma decisão quanto ao fato de serem aceitos ou ignorados. Finalmente, pode haver um conjunto de dois ou mais pagamentos de tal modo que nem todos podem ser simultaneamente válidos, mas certos subconjuntos deles são válidos. Por exemplo, uma carteira (wallet) pode tentar gastar os mesmos bitcoins duas vezes ao mesmo tempo. Nesse caso, existe uma escolha arbitrária sobre qual dos pagamentos aceitar.

Assim, para um dado conjunto de pagamentos, pode haver diversos blocos possíveis que podem ser construídos a partir deles, nenhum dos quais é objectivamente o mais correto. Não será preciso, necessariamente, qualquer acordo sobre qual resultado é preferível porque diferentes blocos possíveis terá benefícios diferentes para pessoas diferentes. Existe, em primeiro lugar, a recompensa que vem da criação de um bloco de um conjunto de novos bitcoins. Isso é necessário porque sem ela haveria pouco incentivo para qualquer um que fizesse a contabilidade, em primeiro lugar; mas com uma recompensa disponível, cada minerador, naturalmente, prefere que o novo bloco seja a sua proposta, em vez de outra pessoa.

Há outras complicações mais sutis, mesmo sem considerar a recompensa. Um minerador pode recusar-se a validar transações que vêm de seu inimigo, ou ele pode ser mais ou menos altruísta, discriminando que tipos de taxas ele vai aceitar. Ele pode até querer dar um golpe alguém através de gastos duplo: neste cenário, ele iria enviar um pagamento a uma vítima em troca de um bem, mas só iria validar um segundo pagamento conflitante que ele fez ao mesmo tempo para outra carteira, que ele também possui. Isto faria com que o seu primeiro pagamento fosse inválido, e ele poderia, portanto, acabar com um bem que ele não pagaria.

Com tantas razões para querer manipular a cadeia de bloco para os seus próprios fins, os mineradores poderiam muito bem concordar em abstrato sobre a necessidade de um consenso, sem nunca chegar a acordo sobre qualquer proposta concreta. A solução do Bitcoin é adicionar requisitos adicionais para o protocolo que aumentam muito o custo de desleadade. Se os blocos são gerados aleatoriamente por um cálculo difícil, haverá apenas uma proposta novo bloco de cada vez. Uma vez que um novo bloco é proposto, os mineradores têm a opção de continuar a procurar uma alternativa mais favorável para si ou aceitar a nova proposta e continuar a busca pelo próximo. Todo aquele que aceita o último bloco entende que ele está seguindo um consenso natural e que, se tiver sorte o suficiente para gerar o próximo bloco, ele provavelmente será aceite pelas mesmas razões que ele aceitou o último. Por outro lado, para manter, de modo a tentar produzir um bloco mais favorável é muito arriscado, porque ele teria que convencer o suficiente do resto dos mineradores para estar junto com ele para poder estabelecer um novo consenso.

A regra geral é que o primeiro bloco minerado não é de interesse próprio, porque ninguém pode planeja estar em primeiro lugar. Só se pode ser o primeiro por sorte. Quaisquer insistências são suspeitas, porque para gerá-la, o minerador teve que fazer uma escolha de rejeitar uma alternativa perfeitamente boa e, presumivelmente, altruísta. Não é uma coisa fácil de fazer.4

O Princípio do Handicap

handicap

Há uma ideia da biologia chamado o Princípio do Handicap (Handicap Principle) que lança luz sobre este processo.5 Ele diz que quando dois animais têm um incentivo para cooperar eles devem comunicar suas boas intenções uns aos outros de uma maneira crível. A fim de tornar a mentira implausível, o sinal deve impor um custo ao sinalizador que tornaria muito caro o ato de enganar. Em outras palavras, o sinal deve ser em si uma desvantagem.

Isso pode ser entendido em termos do Dilema dos Prisioneiros ( Prisoners Dilemma), uma idéia famosa da teoria de jogos que tem aplicações para uma enorme gama de fenômenos. O Dilema dos Prisioneiros tem dois jogadores, cada um com duas opções: cooperar entre-si ou não. Normalmente, o jogo é explicado em termos de uma história sobre dois prisioneiros em que cada um tem a opção de manter o silêncio ou delatar o outro. As características essenciais do Dilema dos Prisioneiros são de que para cada jogador é melhor escolher delatar independentemente da escolha do outro jogador, e que o maior benefício vai para aquele que delatou enquanto o outro manteve o silêncio. Os jogadores podem se sair melhor se ambos silenciarem em vez de ambos delatarem, mas uma vez que eles não têm nenhuma maneira de assegurar a cooperação entre eles, ambos irão optar por delatar.

O Princípio Handicap resolve o problema do Dilema dos Prisioneiros, permitindo uma etapa prévia ao jogo em que cada jogador tem a opção de fazer algo que, de forma convincente, remove o benefício da delação sobre o silenciamento. É difícil pensar em como fazer o Princípio da Handicap (Handicap Principle) trabalhar  com a história dos dois prisioneiros, mas suponho que eles têm um momento em conjunto com o Ministério Público e um dos presos com uma particularmente boa compreensão da teoria dos jogos diz ao procurador, “Se o outro prisioneiro é culpado, eu igualmente sou culpado.” Esta declaração tem um custo claro para si mesmo, porque ele remove sua capacidade de delatar quando o outro prisioneiro silencia. O outro prisioneiro, em seguida, tem a opção de repetir a declaração. Se ele não o fizer, então ele sabe que o primeiros prisioneiro tem como única opção viável delatar, mas se o fizer, então pode-se esperar que ambos os prisioneiros vão silenciar e cooperar entre si. Este é o Princípio do Handicap (Handicap Principle).

O Princípio do Handicap tem sido aplicado com sucesso em uma variada gama de fenômenos biológicos. Para dar um exemplo concreto, suponha que a presa de um animal de rapina percebe um predador a perseguindo. Ambos os animais se beneficiariam se a presa pudesse comunicar ao predador que está consciente da sua presença: o predador não iria querer caçar ainda mais se tivesse perdido o elemento surpresa, e a presa não seria caçada. No entanto, a presa poderia começar aleatoriamente “dizendo” [grifos nossos]: “Eu te vejo!” mesmo quando ela não vê o predador, apenas para dissuadir qualquer um predador que pudesse estar lá. Embora a presa possa estar mentindo, o predador não pode considerar o seu sinal como valor de face, e deve ignorá-la.6

Dentro de uma espécie, o princípio do handicap (handicap principle) explica muito sobre como os animais competem uns com os outros e interagem com seus companheiros. Por exemplo, entre os cervos, o macho com os maiores galhadas são os especimens mais fortes e melhores porque qualquer macho menor que tentar crescer galhadas maiores se arriscam seriamente ao usar mais energia e nutrientes para isso do o que eles podem dispor. Desta forma, fanfarrões de segunda categoria acabam com galhadas de segunda categoria e os de terceira acabam com galhadas de terceira categoria, e assim por diante.7

Em uma espécie social, o princípio do handicap (the handicap principle) explica muito sobre ética e altruísmo. Assim como os membros de uma espécie podem se diferenciar em força e saúde com um handicap de chifres ou galhadas, membros de uma espécie social pode usar o altruísmo como um handicap para se distinguir um do outro. Por exemplo, o princípio do handicap (the handicap principle) descreve um pássaro social chamado  Arabian Babbler que compete usando do altruísmo. As aves mais poderosas e dominantes demonstram a sua superioridade dispendendo um tempo de guarda para o resto do bando e por alimentar os filhotes dos pássaros do escalão inferior. Babblers não gostam de ser alimentados por outros Babblers de categoria semelhante, porque eles não gostam de se sentirem inferiores. O próprio Princípio do Handicap serve para descrever uma observação em que uma ave alimentou com um verme  outro pássaro apenas para ter o mesmo verme forçado diretamente de volta para sua própria garganta! 8

Proof-of-work não deve, portanto, ser visto como um sistema misterioso ou um desperdício, mas como algo funcional, natural, e potencialmente de valor para o projeto de qualquer protocolo de comunicação. Se um sistema distribuído de computadores é de propriedade de uma pessoa, ele pode assumir que todos eles vão cooperar porque ele controla o seu comportamento. Quando este não é o caso, há uma necessidade real para que os computadores diferentes provem que eles estão trabalhando para o mesmo objetivo. A universalidade do Princípio do Handicap em biologia deve ser suficiente para fazer com que um  protocolo que seja suspeito de não impor custos aos seus usuários convide ao abuso. É interessante pensar em como muitos problemas com a Internet podem ser atribuídos a uma falha em aplicar este princípio. Se proof-of-work tivesse sido entendido quando o e-mail foi inventado, nunca poderia ter havido o problema do spam. Se o protocolo da Internet exigisse proof-of-work para as solicitações do cliente, poderíamos não ter que nos preocupar com os ataques de negação de serviço (Distributed Denial of Service (DDoS) attacks).9

O sistema de proof-of-work do Bitcoin pode ser comparado a ambos: as galhadas e o altruísmo. A capacidade de gerar blocos é uma demonstração de força computacional, que é exatamente o que a rede Bitcoin precisa para auxiliar a verificar todas as transações. Mas é também uma demonstração de espírito de comunidade, porque, ao concordar em entrar numa competição pelo próximo o bloco, eles se mostram dispostos a respeitar os interesses da comunidade, em vez de manipular a cadeia de bloco para fins egoístas. Este é exatamente o tipo de coisa que deve ser esperado para manter uma comunidade coesa.

Bitmessage

Uma aplicação mais recente de proof-of-work é Bitmessage, que é um protocolo distribuídos de mensagem criptografada anônima que poderia um dia ser quase tão importante quanto o Bitcoin.10 Foi inspirado no Bitcoin, mas funciona de forma bastante diferente. Não há cadeia de blocos (blockchain) no protocolo Bitmessage porque não há necessidade de armazenar sempre todas as mensagens numa base de dados. Em vez disso, Bitmessage requer que todos que enviam uma mensagem executem algum trabalho antes que a rede a retransmita. Isso garante que cada mensagem será significativa: nenhum spammer pode se dar ao luxo de deixar seu computador funcionar por um minuto ou mais para cada mensagem que envia. Proof-of-work é essencial, pois uma rede distribuída que depende de computação doada por seus usuários não pode dar ao luxo de permitir aproveitadores. Ele está em seus estágios iniciais atualmente e ainda não foi estudado o suficiente para ser considerado seguro, mas tem um enorme potencial como uma alternativa para o e-mail.

PPCoin e Proof-of-Stake

A discussão de proof-of-work não seria completa sem uma discussão de PPCoin, a terceira mais popular cripto-moeda após Bitcoin e Litecoin.11 PPCoin também usa proof-of-work de modo a tornar a defecção não lucrativa, mas os custos são distribuídos de forma muito diferente entre os mineradores: esses mineradores que tenham porcessado um monte de PPCoin por um longo tempo sofrem muito menos  requisitos rigorosos para a produção de um bloco do que aqueles que tenham mantido alguns PPCoin e que os mantiveram por um tempo mais curto. Isto significa que as pessoas não tendem a seguir o consenso proposto pela pessoa com o computador mais poderoso, mas sim pela pessoa que tenha demonstrado o maior investimento na moeda. Mineradores são distinguidos por algo mais parecido com a antiguidade do que o poder. Quando um minerador cria um novo bloco na cadeia bloco (blockchain) do PPcoin, ele tem que negociar com algumas de suas moedas anteriores para obter os novos blocos – o que significa que todos que criam um bloco são menos capacitados para criar o próximo. Este sistema é chamado de proof-of-stake.

Proof-of-work e proof-of-stake têm diferentes custos e benefícios em diferentes circunstâncias. De acordo com o Princípio do Handicap, os custos impostos para produzir um sinal deve estar relacionada com o significado da mensagem. Um sistema de proof-of-stake demonstra o investimento na própria moeda do que um sistema de proof-of-work na rede subjacente.

Assim, se houvesse uma rede de proof-of-work e uma rede de proof-of-stake em que ambas tenham o mesmo valor de mercado, seria de se esperar, portanto, espera-se que a moeda de proof-of-work tenha uma rede maior com uma maior capacidade e mais líquidez do que a rede de proof-of-stake enquanto que a moeda de proof-of-stake teria a maior estabilidade dos preços.

O sistema de proof-of-work desencoraja os mineradores anti-sociais de manipular a cadeia de bloco (blockchain), ao tornar difícil fazer de forma consistente que a rede aceite seus blocos. O sistema de proof-of-stake, por outro lado, desencoraja mineradores anti-sociais, aceitando apenas a blocos de mineradores que têm um incentivo para garantir que o produto permanece absolutamente confiável. Em razão de o proof-of-stake estar sendo usado a medida que novos blocos são gerados, há rotatividade contínua sobre quem é capaz de minerar, e, portanto, menos incentivo para se especializar na manutenção da cadeia de bloco (blockchain).

Em seus estágios iniciais, uma rede de cripto-moeda exige um investimento de longo prazo na própria moeda, a fim de ganhar credibilidade e valor, ao passo que em uma rede maior, mais madura seria mais provável que exigisse uma especialização na infra-estrutura da rede para garantir que funcione devidamente.

Esta é uma discussão acadêmica. É contraproducente apoiar qualquer criptomoeda diferente de Bitcoin [por causa disto]. não é de se esperar que os consumidores comuns iriam escolher uma moeda em detrimento de outra por causa de detalhes técnicos obscuros que não afetam o seu uso como uma moeda. Eles serão muito mais propensos a escolher o que é mais amplamente aceito. Alguém que pensa que PPCoin é mais racional tem pouca expectativa de que PPCoin vença o Bitcoin, mas ele poderia ter uma chance de convencer a comunidade Bitcoin a adaptar um sistema de proof-of-stake em alguma versão futura do Bitcoin. Embora isto seja teoricamente possível e possa ter benefícios, os mineradores Bitcoin já tem um grande interesse  investido no sistema atual e, portanto, tendem a se opor a tal inovação.

The Proof-of-Work Concept , Daniel Krawisz, June 24, 2013

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s