Usuário(a):ViniciusCPSouza/Testes
Em criptografia, um enigma não terceirizável (do inglês non-outsourceable puzzle) é um tipo de prova de trabalho criada para desencorajar a concentração da capacidade de mineração nas mãos de poucas mining pools, situação que vai de encontro com um dos objetivos originais do Bitcoin, que é a descentralização.
Contexto[editar | editar código-fonte]
Uma mining pool é uma abordagem de mineração na qual diversos mineradores contribuem para a geração de um novo bloco, e então compartilham a recompensa entre si, de acordo com o processamento computacional que cada minerador contribuiu[1]. Uma "share" é concedida aos membros que apresentarem uma prova do trabalho que o seu minerador resolveu[2].
Mining pools são atrativas para mineradores por conta da dificuldade de se conseguir minerar um bloco utilizando hardware mais lento - uma característica que só piora com o tempo, dado que, em Bitcoin, a dificuldade de se minerar um novo bloco aumenta a cada 2016 blocos[3]. Um minerador que faz parte de uma organização dessas essencialmente troca uma baixa possibilidade de ter grandes lucros (gerando o novo bloco sozinho) por uma fração da recompensa, porém com maior regularidade[1]. Hosted mining, uma alternativa às mining pools, vai um passo além: o usuário não precisa nem ter hardware próprio, ele só aluga o hardware fornecido pela companhia de hosting[4].
No entanto, mesmo trazendo benefícios aos mineradores individualmente, essa abordagem leva à concentração do poder de mineração nas mãos de um pequeno número de entidades (que controlam as mining pools). Tal consolidação de poder contradiz o princípio da descentralização, que é um dos conceitos libertários principais do Bitcoin[5]. Um dos principais temores da comunidade é o chamado ataque de 51%[6], no qual uma única entidade que contribui para a maior parte do hashrate de mineração[7] (a unidade de poder de processamento na plataforma Bitcoin) teria total controle da rede e poderia manipular a blockchain como bem quisesse.
Propostas[editar | editar código-fonte]
O maior culpado por essa centralização de poder seria o mecanismo atual de recompensa do Bitcoin (prova de trabalho), que não apresenta nenhum tipo de incentivo para que os mineradores trabalhem sozinhos. Pelo contrário, ele serviria para reforçar o cenário atual: membros de uma pool inerentemente não confiam uns nos outros, o que leva à necessidade de cada membro submeter ao administrador da pool provas criptográficas de que se está trabalhando para o bem da pool. Esse tipo de política só é possível porque uma prova de trabalho produzida por um membro pode ser usada (e demandada) pelo administrador da pool livremente[8].
Withholding[editar | editar código-fonte]
Uma solução simples para o problema da concentração do poder de mineração, mas que não traz nenhum tipo de benefício econômico para o minerador é chamada Withholding. Nela, o minerador encontra uma solução enquanto trabalha como um participante de uma mining pool, mas não publica o novo bloco para o administrador da pool. Com isso, a mining pool deixa de receber a recompensa pelo bloco - o que diminui o seu rendimento - e o minerador ainda continua recebendo sua recompensa pelos blocos encontrados pelos demais membros da pool. Ele se prejudica economicamente, visto que não consegue gastar a recompensa pelo bloco encontrado (se esse bloco fosse publicado para o administrador, o minerador receberia pelo menos uma parte da recompensa, proporcional à quantidade de trabalho), mas também consegue prejudicar a pool[9].
Nonoutsourceable Scratch-Off Puzzle[editar | editar código-fonte]
A solução técnica chamada Nonoutsourceable Scratch-Off Puzzle [8] propõe a criação de enigmas não terceirizáveis: provas de trabalho cujo objetivo é evitar a centralização do poder de mineração, e que garantem que se o administrador de uma mining pool pode terceirizar o trabalho para um minerador, esse minerador pode, por sua vez, roubar a recompensa sem produzir nenhuma evidência que poderia indentificá-lo. Tal possibilidade, por sua vez, diminuiria o incentivo para se terceirizar a mineração, visto que o administrador pode ter sua recompensa roubada pelo minerador, sem nenhuma maneira de provar a participação do mesmo na fraude.
A solução proposta pretende alcançar seu objetivo por meio de duas técnicas:
- O enigma é gerado de tal maneira que, se um minerador faz grande parte do trabalho de mineração, ele possui uma parte grande o suficiente de uma "chave privada" que ele pode usar no futuro para associar a recompensa à sua própria chave pública, efetivamente roubando a recompensa do administrador da pool.
- Oferece-se uma alternativa de zero-conhecimento para que o minerador possa gastar a recompensa roubada de uma maneira que não revele nenhum tipo de informação, inclusive informação que poderia ser utilizada para comprometer o minerador.
Primeiramente cria-se um enigma não terceirizável fraco, que só garante a propriedade 1, mas não a propriedade 2. Depois, a partir de uma transformação de zero-conhecimento, um enigma não terceirizável forte é compilado a partir do enigma não terceirizável fraco.
O nome scratch-off vem da comparação comum feita entre a mineração de bitcoins e a compra de bilhetes de uma loteria: um minerador gasta uma unidade de esforço pra descobrir se ele tem um bilhete premiado.
Two-Phase Proof-of-Work[editar | editar código-fonte]
Outra implementação de enigmas não terceirizáveis proposta é chamada Two-Phase Proof-of-Work[10], e tem como principais objetivos - além de desencorajar a criação de grandes mining pools - uma transição fácil a partir dos enigmas atuais e a manutenção do investimento atual em infra-estrutura de mineração. Nessa abordagem, temos dois enigmas ao invés de um, sendo que:
- O hash duplo do cabeçalho é menor que uma parâmetro de dificuldade .
- O cabeçalho é então assinado usando a chave privada da transação coinbase, e o hash dessa assinatura é menor que um parâmetro de dificuldade .
O primeiro enigma é exatamente igual ao enigma criptográfico atual. Os computadores que fazem a mineração atualmente são otimizados para calcular esse tipo de enigma, o que permite reutilizar a infra-estrutura atual sem maiores problemas. O valor do parâmetro é geralmente menor do que o valor da dificuldade atual da rede Bitcoin.
Já no segundo enigma, toma-se a solução do primeiro enigma, e é pedido que os mineradores assinem essa solução com a chave privada do endereço de pagamento. Pede-se também que os mineradores verifiquem se o hash desse resultado é menor que o parâmetro de dificuldade .
Por conta do parâmetro ser menor do que a dificuldade atual da rede, os mineradores podem produzir um número maior de soluções parciais, e usar um equipamento secundário para fazer o cálculo do segundo enigma, até chegar a uma solução completa. Com um suficiente pequeno (maior dificuldade), o administrador da pool não vai conseguir receber todas as soluções parciais e testá-las uma a uma, dado que as operações para resolver o segundo enigma são tão caras quanto as operações para resolver o primeiro enigma. Dessa maneira, o administrador também vai ter que terceirizar a resolução do segundo enigma para os mesmos mineradores - já que os mesmos possuem as chaves privadas. Os mineradores que chegarem a uma soluçaõ poderão, então, manter a recompensa para si mesmos.
Críticas[editar | editar código-fonte]
Críticas comuns a esse tipo de enigma incluem:
- Pode ser mais fácil encontrar um participante desonesto de uma mining pool do que os defensores dos enigmas não tercerizáveis levam a crer[11].
- Contratos inteligentes não seriam mais viáveis com a solução Nonoutsourceable Scratch-Off Puzzle, por conta do uso da opção de pagamento de zero-conhecimento[8].
- As soluções usam conceitos criptográficos mais complexos, que podem levar a erros durante a implementação[11].
- Se a qualquer momento mais de 51% dos mineradores decidirem impedir os demais usuários de minerar bitcoins sozinhos (sem ser parte de uma mining pool), eles só precisam ignorar os blocos criados por tais mineradores, e só aceitar blocos com uma determinada identificação da pool à qual o minerador pertence[11].
Referências[editar | editar código-fonte]
- ↑ a b «Pooled mining - Bitcoin Wiki». en.bitcoin.it (em inglês). Consultado em 18 de junho de 2017
- ↑ «Mining pool». Wikipedia (em inglês). 27 de março de 2017
- ↑ «Why pooled mining - Bitcoin Wiki». en.bitcoin.it (em inglês). Consultado em 18 de junho de 2017
- ↑ «Cloud mining». Wikipedia (em inglês). 7 de junho de 2017
- ↑ Daian, Philip. «(Short Paper): PieceWork: Generalized Outsourcing Control for Proofs of Work» (PDF). Consultado em 18 de junho de 2017
- ↑ «Learn Cryptography - 51% Attack». learncryptography.com. Consultado em 18 de junho de 2017
- ↑ «Vocabulary - Bitcoin». bitcoin.org (em inglês). Consultado em 18 de junho de 2017
- ↑ a b c Miller, Andrew. «Nonoutsourceable Scratch-Off Puzzles to Discourage Bitcoin Mining Coalitions» (PDF). doi:10.1145/2810103.2813621. Consultado em 18 de junho de 2017
- ↑ Courtois, Nicolas (2 de dezembro de 2014). «On Subversive Miner Strategies and Block Withholding Attack in Bitcoin Digital Currency»
- ↑ «How to Disincentivize Large Bitcoin Mining Pools». Hacking Distributed. Consultado em 19 de junho de 2017
- ↑ a b c «Theoretical and Practical Nonoutsourceable Puzzles». Bitslog. 19 de junho de 2014. Consultado em 19 de junho de 2017