Por que os pools de mineração bitcoin não são incentivados a difundir rapidamente blocos

VCASH Feature Overview (Julho 2019).

Anonim

Geralmente, aceita-se que a latência na propagação do bloco é um dos estrangulamentos para a escala de Bitcoin. É por isso que muitos dos desenvolvedores e pesquisadores mais ativos da Bitcoin apresentaram uma série de soluções para comprimir blocos e acelerar a propagação nos últimos anos.

Não é tão conhecido que essas soluções podem não ser suficientes por conta própria. Devido a uma prática chamada "mineração de espiões" ou "mineração de observadores de piscinas", a mineração da Bitcoin vem depender cada vez mais da infraestrutura de dados e rede fornecida por pools de mineração.

Como resultado, muitos pools de mineração não são necessariamente incentivados a transmitir seus blocos para a rede o mais rápido possível - independentemente da latência na propagação de blocos.

Mineração egoísta

Para entender como isso é possível, primeiro dê uma breve olhada em um conceito mais antigo: "mineração egoísta".

Em suma, a mineração egoísta é um tipo de ataque em que os mineiros encontram novos blocos, mas não transmitem imediatamente esses blocos para a rede. Os mineiros, no entanto, são meus em cima de qualquer novo bloco encontrado que eles encontram: eles estão extraindo "egoisticamente". Isso lhes dá uma vantagem para encontrar o próximo bloco, enquanto todos outros concorrentes estão desperdiçando a mineração de recursos em cima de um bloco antigo.

Mas esconder um novo bloco também é arriscado. Enquanto um minério egoísta esconde um bloco, os concorrentes podem encontrar um bloco concorrente. Se esse bloco concorrente for o caminho antes do bloqueio do mineiro egoísta, o mineiro egoísta teria desperdiçado seus próprios recursos escondendo o bloco: o bloco agora não vale a pena.

Para que a mineração egoísta seja lucrativa, portanto, o invasor exige uma quantidade significativa de poder de hash na rede - cerca de 25 a 30 p pelo menos, pelo menos. E mais de metade de todos os recursos de hash na rede certamente é suficiente. No entanto, com a maioria do poder de hash, o ataque talvez pareça um ataque de 51 por cento e não apenas um ataque de mineração egoísta.

Um "ataque egoísta de 51 por cento", se você quiser.

Por sorte, nenhum mineiro (ou grupo de mineração) atualmente controla mais da metade de todos os recursos de hash na rede Bitcoin, ou mesmo 25%. Pelo menos não diretamente …

Mineração sem validação

Muitos mineradores se engajam em um tipo de "mineração sem validação" ou (minuciosamente designada) "mineração SPV".

Um bloco Bitcoin consiste em vários dados : transações, um carimbo de data / hora, um nonce e mais. Um dado importante é uma referência ao bloco anterior: o bloco de cabeçalho hash . O cabeçalho do bloco hash só pode ser gerado usando o cabeçalho do bloco do anterior bloco que, por sua vez, só pode ser gerado usando todos os dados nesse bloco. A idéia é que um mineiro não pode explorar um novo bloco antes de ter visto o bloco anterior.

Mas há um pouco de lacuna. Usando apenas o cabeçalho do cabeçalho do bloco, os mineiros podem tentar encontrar o próximo bloco também - mesmo sem saber o cabeçalho do bloco anterior, nem nenhum dos outros dados no bloco anterior.

Isso pode ser útil. Se os mineiros podem obter um bloqueio de cabeçalho de bloco antes de receber um bloco real, eles podem tentar encontrar um novo bloco mais rapidamente, o que lhes permite ser mais lucrativos.

E, como se verifica, existe de fato uma maneira para os mineiros obterem frequentemente um cabeçalho de cabeçalho de bloco antes de receber um bloco real.

Spy mining

A mineração pools que hoje representam a maioria dos blocos minados na rede realmente consistem em muitos mineiros individuais: e. g., "Hashers". "Esses hashers estão tentando encontrar um novo bloco em nome de seu pool, usando um hash de cabeçalho de bloco que receberam de seu pool.

Uma piscina, é claro, quer que os seus hashers conectados sejam meus em cima de um novo bloco o mais rápido possível. Então, se um pool encontrar um novo bloco, ele imediatamente envia o cabeçalho do cabeçalho do bloco para todos os seus hashers para eles serem meus. E, uma vez que este cabeçalho de cabeçalho de bloco consiste em dados mínimos, e porque existe uma conexão direta entre o pool e todos os hashers, o cabeçalho do bloco hash geralmente atinge esses hashers muito rapidamente.

Aqui é onde a mineração de espionagem entra.

Os mineiros concorrentes (incluindo pools de mineração concorrentes) podem receber este hash de cabeçalho de bloco do grupo de mineração também. Eles simplesmente precisam se conectar ao pool, bem como todos os hashers. Mas em vez de hashing para a piscina, esses mineiros, então, levam o cabeçalho do cabeçalho do bloco e o meu em cima disso por si. Eles são mineradores de espiões.

O pool que tem os hashes de cabeçalho do bloco pode nem mesmo notar a diferença entre os hash reais e os mineiros espiões. E se a piscina notar a diferença, talvez nem se preocupe. Não existe uma desvantagem real para a piscina.

Talvez, surpreendentemente, a metade de todos os mineiros na rede (pelo poder de hash) atualmente se envolva na mineração de espiões.

Problemas menores

Infelizmente, a mineração de espiões - como toda mineração sem validação - apresenta alguns problemas.

Os mineiros Spy não podem verificar os valores de cabeçalho do bloco para validade; eles precisam de todos os outros dados de bloco para isso (as transações, o nonce, etc.). Como tal, os mineiros de espionagem têm que colocar alguma confiança nas plataformas de mineração de onde obtêm os cabeçotes de cabeçalho do bloco. Isso significa que, se o grupo de mineração mina blocos inválidos, ele pode - no pior dos casos - levar a garfos de cadeias de bloqueio. (Muito parecido com o bifurcador de blocos BIP66 2015.)

Além disso, os pools de mineração podem abusar da confiança depositada neles, especialmente se eles podem identificar seus concorrentes de mineração de espiões; por exemplo, alimentando alfinetes de cabeçalho de bloco corruptos para (alguns dos) mineiros espiões. Essa tática pode fazer com que os mineiros espiões desperdiçam seus recursos, tornando a rede Bitcoin menos segura.

E, até receberem o bloco completo, os mineiros espiões só podem mina blocos vazios; Essa é a única maneira de garantir que eles não incluam transações de dupla despesa. Isso significa que o número total de transações na rede Bitcoin é menor do que poderia ser.

Por sorte, no entanto, em parte graças a várias salvaguardas aplicadas pelos mineiros espiões, esses problemas são relativamente menores.Embora provavelmente não seja ideal, os riscos para a rede Bitcoin são limitados.

Transmissão

O engajamento generalizado na mineração de espiões, no entanto, permite um problema maior.

Como muitos mineiros (e pools) são mineração de espiões, cada vez que um grupo de mineração encontra um bloco e transmite o hash do cabeçalho do bloco, esse grupo de mineração efetivamente direciona a maioria de todos os recursos de hash para mina em cima desse bloco - imediatamente . Como tal, não existe mais um grande risco de este bloco ser rejeitado e descartado por um bloco concorrente. A maioria da rede já aceita esse bloco através do hash do cabeçalho do bloco. Esta prática, por sua vez, permite que os pools de mineração lançem ataques egoístas de 51% , simplesmente atrasando a transmissão de seus novos blocos para a rede. Mais especificamente, permite que pools de mineração lancem ataques egoístas de 51 por cento contra qualquer mineiro que não se envolva na mineração de espiões e contra alguns mineiros de espiões identificados. Enquanto um grupo de mineração e seus mineros de espionagem recebem uma mineração inicial no topo do novo bloco, todos os outros mineiros desperdiçam seus recursos. (Pelo menos por algum tempo, dependendo das salvaguardas impostas pelos mineiros espiões.)

Surpreendentemente, isso significa que os pools de mineração podem ganhar vantagem ao serem desentendidos . As piscinas de mineração podem, por exemplo, se beneficiar de um software de buggy que atrasa os blocos de transmissão por alguns segundos - ou mais do que alguns.

Embora os pools de mineração < desejam transmitir seus blocos para a rede o mais rápido possível, o engajamento generalizado na mineração de espiões parece ter desvirtuado esses incentivos pior - sem solução clara à vista.