Blockchain governance - Parte 5
Part 5: Avaliando a governança da blockchain
A segurança da blockchain é fundamental para implementar uma boa governança, caso contrário, as decisões das partes interessadas podem ser revertidas. Um protocolo seguro depende de uma arquitetura de blockchain adequada, funções de hash e primitivos criptográficos seguros, transparência, privacidade e mecanismos de tomada de decisão. Bons controles de segurança devem ser baratos para implementar e caros para tentar contornar ou violar como forma de dissuadir adversários desonestos.
Metodologia
Esta série de artigos usou dados publicamente disponíveis das blockchains do Decred e Bitcoin. Para o Decred, os dados foram obtidos do banco de dados PostgreSQL usado no dcrdata1, o explorador de bloco de código aberto e gratuito. Para o Bitcoin, os dados foram obtidos no site blockchain.com. As informações de preço em dólares americanos foram obtidas no Yahoo Finance2,3. Para a seção ‘Simulação: InvalidationGame’, a distribuição de probabilidade usada dentro do script foi obtida do banco de dados PostgreSQL acima. Para a seção ‘Segurança aumenta o custo de oportunidade’, os cálculos utilizaram dados obtidos nas fontes acima. Para a Parte 6 - Testando hipóteses de governança, todos os dados foram obtidos da dcrdata e do Yahoo Finance e processados usando R.
A próxima seção usa o InvalidationGame, um script Python desenvolvido para esta análise, para simular ataques PoW e PoW+PoS com a intenção de mostrar a diferença de tempo e custo de tais ataques. A seção seguinte, ‘Segurança aumenta o custo de oportunidade’, analisa os ataques da perspectiva de Capex e Opex para entender quanto custa um ataque em dólares. A Parte 6 - Testando hipóteses de governança analisa os dados do banco de dados dcrdata, testando várias hipóteses para avaliar a governança do Decred (segurança, previsibilidade de emissão, escassez, incentivos, votação) e a Parte 7 - Resultados da avaliação resume as descobertas e conclui.
Simulação: InvalidationGame
A segurança fornecida pelo mecanismo de autenticação de dois fatores do PoW+PoS implementado pelo Decred pode ser melhor compreendida em uma simulação. Para isso, foi desenvolvido o InvalidationGame4, um script Python que simula um ataque de gasto duplo para mostrar a probabilidade de sucesso de um ataque quando perpetrado contra uma blockchain puramente PoW e também contra uma PoW+PoS. Presume-se que seja um ataque de gasto duplo porque os ataques custam dinheiro (PoW) e o adversário que ataca a rede deve ter incentivos econômicos para executar o ataque. Um ataque de gasto duplo é uma tentativa de gastar a mesma moeda5 mais de uma vez. O invasor gastaria uma moeda em uma transação regular e, em seguida, tentaria minerar blocos que excluiriam essa transação da blockchain, criando um fork da blockchain. A cadeia com mais blocos, sendo 6 blocos um número geralmente aceito por causa do cliente de referência Bitcoin, é aquela considerada a única fonte da verdade porque é o resultado do trabalho da maioria dos nós (Bonneau, et al., 2015).
Outros cenários possíveis seriam:
- a sabotagem realizada por adversários ricos, como governos;
- um adversário minerando blocos vazios
As partes interessadas podem reter a recompensa de um minerador ao invalidar blocos, mesmo se o bloco estiver em conformidade com as regras de consenso da rede. Isso desincentiva o mau comportamento, como mineradores de blocos vazios ou tentativas de ataques de gasto duplo. Para ataques de gasto duplo, duas suposições devem ser consideradas: primeiro, “consideramos o cenário de um invasor tentando gerar uma cadeia alternativa mais rápido do que a cadeia honesta. Mesmo que isso seja feito, ele não abre o sistema para mudanças arbitrárias, como criar valor do nada ou obter dinheiro que nunca pertenceu ao invasor. Os nós não aceitarão uma transação inválida como pagamento, e nós honestos nunca aceitarão um bloco que as contenha. Um invasor só pode tentar alterar uma de suas próprias transações para recuperar o dinheiro que gastou recentemente.” (Nakamoto, 2008, p. 7). O outro é um custo de oportunidade porque um invasor ganancioso com um hashpower substancial teria que escolher entre tentar realizar um ataque de gasto duplo ou participar como um nó honesto e gerar novas moedas. (Nakamoto, 2008, p. 4).
Os resultados mostrados nas Tabelas 1-3 vêm da execução do InvalidationGame e assumem que A0 representa os adversários honestos enquanto A1 representa um adversário tentando reverter uma transação (o ataque de gasto duplo), mas não faz diferença para os cálculos se os papéis são invertidos. O hashpower simula a probabilidade de minerar um bloco, enquanto o Stake simula a porcentagem de tickets de PoS. Para todas as simulações, presume-se que o adversário acabou de realizar uma transação e iniciou um ataque de gasto duplo.
As tabelas 1 e 2 mostram dois cenários: no primeiro, o adversário A0 tem 90% de hashpower e A1 tem uma pequena quantidade (10%) e, no segundo, o adversário A1 tem quase o mesmo hashpower (55%) que os nodos honestos representado por A0 (45%). No primeiro cenário foram necessários, em média, 3,2771 blocos para um adversário ter uma vantagem de 2 blocos sobre o outro e 7,8240 blocos em média para uma vantagem de 6 blocos, quando a simulação terminou. No segundo, os números foram 6,7431 e 38,4911 blocos para vantagem de 2 e 6 blocos. Os números são maiores no segundo cenário porque os adversários têm quase a mesma probabilidade de minerar um bloco (45% contra 55%), demorando mais para estabelecer a vantagem geralmente aceita de 6 blocos sobre o outro.
A vantagem de 2 blocos é mostrada em um artigo (Grunspan & Pérez-Marco, 2019) que tenta demonstrar que o ataque de gasto duplo já é inviável muito mais cedo do que a confirmação geralmente aceitável de 6 blocos porque se torna não lucrativo em 2 blocos, levando à ruína do atacante. A última linha do resultado da simulação informa que o adversário perdedor está abrindo mão de uma recompensa em bloco em blocos válidos ao tentar gastar o dobro. Outro custo, não mencionado nas tabelas, é o “custo de fazer negócios”, que é o custo relacionado a trabalhar em um bloco e ter um adversário explorando-o com sucesso (e obter a recompensa do bloco).
Adversário | Hashpower | Simulações ganhas | Simulações ganhas |
---|---|---|---|
A0 | 90,00% | 98681 | 98,681% |
A1 | 10,00% | 1319 | 1,319% |
Em média, vantagem de 2 e 6 blocos alcançada em: 3,2771 e 7,8240 blocos
Custo de ataque, em média: 0.7486 recompensa do bloco PoW
Número de simulações: 100000; Média: 0,0012 segundos, Total: 00:19:54
Tabela 1 – Resultado de 100.000 ataques simulados com 90%/10% PoW
Fonte: elaboração própria
Adversário | Hashpower | Simulações ganhas | Simulações ganhas |
---|---|---|---|
A0 | 45,00% | 26270 | 26,27% |
A1 | 55,00% | 73730 | 73,73% |
Em média, a vantagem de 2 e 6 blocos alcançada em: 6,7431 e 38,4911 blocos
Custo de ataque, em média: 22.3953 recompensas do bloco PoW
Número de simulações: 100000; Média: 0,0110 segundos, Total: 00:35:50
Tabela 2 – Resultado de 100.000 ataques simulados com 45%/55% PoW
Fonte: elaboração própria
Enquanto as Tabelas 1 e 2 mostram o resultado de ataques em blockchain puramente PoW, a Tabela 3 mostra um ataque em uma blockchain PoW + PoS, onde os nós honestos (A0) têm 45% do hashpower e 70% dos tickets PoS. Embora o adversário desonesto (A1) tenha mais hashpower, os nós honestos têm mais tickets e não validarão blocos que contenham transações de gasto duplo.
Adversário | Hashpower | Stake | Sims ganhas | Sims ganhas | Média de blocos inválidos | Média de blocos válidos |
---|---|---|---|---|---|---|
A0 | 45,00% | 70,00% | 84122 | 84,122% | 1,6495 | 7,8575 |
A1 | 55,00% | 30,00% | 15878 | 15,878% | 9,7451 | 1.8594 |
Em média, vantagem de 2 e 6 blocos alcançada em: 3,8929 e 10,7169 blocos
Custo de ataque, em média: 1.8594 recompensas de blocos PoW, devido à invalidação de PoS
Número de simulações: 100000; Média: 0,077 segundos, Total: 04:03:16
Tabela 3 – Resultado de 100.000 ataques simulados com 45%/55% PoW + 70/30 PoS
Fonte: elaboração própria
A Tabela 3 mostra que A1 renuncia a recompensas para 9.7451 blocos em média devido a blocos que foram invalidados pelos nós honestos. Mas o custo é ainda mais alto: alguns blocos extraídos (PoW) e validados (PoS) por A1 foram deixados em um fork de blockchain não estendido porque os nós honestos foram capazes de estender sua própria cadeia em blocos z, e tal cadeia não tem bloco extraído por A1 desde o início do ataque. Com isso, o adversário também abre mão da recompensa por 1.8594 blocos validados, em média.
Segurança aumenta o custo de oportunidade
Um mecanismo de autenticação forte aumenta o custo de um ataque, que pode ser medido em dólares. Para realizar um ataque contra uma blockchain PoW, o invasor deve i) alugar o equipamento; ou ii) comprar o equipamento e construir / alugar as instalações e só então iniciar um ataque gastando eletricidade. Um ataque contra uma blockchain PoW + PoS inclui também o custo de propriedade das moedas (ou criptoassets) e tal ataque pode desvalorizar essas moedas, aumentando o risco para o atacante.
Os ataques podem ser internos ou externos: os ataques internos acontecem quando os mineradores decidem realizar um ataque usando o equipamento atual. Como não há autoridade central de registro, os mineradores individuais teriam que se reunir em fóruns ou pools de mineração para chegar a um consenso sobre tal ataque. Os próprios pools de mineração também podem ser considerados adversários caso decidam usar o PoW que comandam para atacar as redes. Um adversário também pode alugar dispositivos de mineração para realizar um ataque de curto prazo em uma série de blockchains suportadas pelo provedor de mineração em nuvem. Em um ataque interno não há aumento no número de equipamentos ou no hashpower total da rede. Um ataque externo pressupõe que um adversário compra novo equipamento, aumentando assim o poder de processamento da rede. O adversário deve levar em consideração a rápida depreciação de tais dispositivos, não apenas no que diz respeito à vida útil do produto, mas também porque novos dispositivos tornarão esses dispositivos ineficientes.
O hashpower é estimado conforme a equação 4.1, tomando a dificuldade da rede informada pelo protocolo da blockchain e o tempo de bloco em segundos (600 segundos para Bitcoin, 300 segundos para Decred). A dificuldade da rede mede o quão difícil é encontrar o hash de um bloco em um determinado alvo para manter os blocos sendo gerados dentro de um determinado período de tempo.
Equação 4.1 - Fórmula de cálculo do hashpower
Fonte: (Bitcoin Community, 2017)
Conforme explicado anteriormente na Parte 4, subseção ‘A solução do Decred Project’, um invasor exigiria uma combinação de tickets e hashpower para obter energia suficiente para reverter os blocos minerados pelos nós honestos. A Equação 4.2 mostra como calcular a probabilidade de um invasor possuir a maioria dos tickets sorteados, sabendo que o invasor controla a fração y dos tickets no pool. Na rede Decred, N é sempre 5 porque cada bloco extrai no máximo 5 tickets e k é o número de tickets entre N tickets que o invasor pode ter. A taxa de participação p será considerada como 1 porque em Decred a maioria dos eleitores está geralmente online (Tabela 24 na Parte 6 tem os números). A Equação 4.3 calcula de quanto hashpower o atacante precisaria como um multiplicador do hashpower dos adversários honestos, dado que o atacante tem uma probabilidade P(y) de ter a maioria dos tickets sorteados. A Figura 4 mostra a curva de segurança como resultado do mecanismo de autenticação PoW+PoS.
Equação 4.2 - Probabilidade de um atacante possuir a maioria dos tickets sorteados (PoS)
Fonte: (Stafford, 2019)
Equação 4.3 - Hashpower (PoW) necessário para o atacante ultrapassar os adversários honestos
Fonte: (Stafford, 2019)
Figura 4 – Curva de Segurança criada pela combinação da autenticação PoW+PoS
Fonte: elaboração própria
Qualquer adversário com uma combinação de potência PoW+PoS à esquerda da curva de segurança é considerado seguro para a segurança da blockchain. Conforme detalhado no início desta seção, a análise a seguir assume o ponto x=0,5, y=1,0 na curva de segurança, o que significa que o adversário desonesto tem uma vez o hashpower dos adversários honestos (50% do total) e 50% de todos os tickets no pool (o ‘ataque majoritário’).
Ataque externo/interno
Esta seção apresenta o custo de um ataque externo/interno onde o adversário está 0% investido em qualquer moeda: o atacante compra equipamentos de vendedores (externos) e moedas de vendedores ou mineradores usando moeda fiduciária (interna), tanto a preço de mercado como até o invasor atingir 50% do equipamento PoW (aumentando o número de equipamentos em um fator de 1) e 50% das moedas emitidas (apenas Decred) sem aumentar a taxa de câmbio, o que é uma suposição irreal porque pressupõe que os atuais proprietários de tickets irão vender metade de seu Decred, caso contrário, o adversário teria que comprar todo o Decred disponível (Decred não trancado em tickets, 49,84% de todas as moedas emitidas em 10 de fevereiro de 2020) sem disparar seu preço.
O custo de um ataque externo PoW + interno de PoS contra a blockchain do Decred considera o hashpower, o preço da moeda, o equipamento atual, o preço do ticket em DCRs (estimado como um ataque interno), a estimativa de custo da instalação e o preço da eletricidade em 10 de fevereiro de 2020.
Equação | Operação | Quantidade | Unidade |
---|---|---|---|
(A) | Dispositivo ASIC: DCR5 (34 Th/s, 1 610W, USD 1 282) | 34 Th/s | |
(B) | Redução do hashpower da rede em 10 de fevereiro de 2020 | 450 150 | Th/s |
(C = B / A) | Dispositivos ASIC para ataque 1x (mais 450 150 Th/s) | 13 240 | unidade |
(D = 1 610W * C) | Dispositivos ASIC gastarão 1 610 W * 13 240 unidades | 21 316 | kWh |
(E = USD 1.282 * C) | Custo para comprar 13 240 unidades DCR5 | 16 973 680 | USD |
(F = USD 0,05 * D) | Custo da eletricidade na Islândia (USD 0,05/kWh) | 1 066 | USD/h |
(G = 0,05 * E) | Supondo custos de instalação (5% do custo do dispositivo) | 848 684 | USD/h |
Tabela 4 – Decred Proof-of-Work equipment and network hashpower
Fonte: elaboração própria
Equação | Operação | Quantidade | Unidade |
---|---|---|---|
(H) | Tamanho do pool de tickets em DCRs | 5 558 457 | DCR |
(I = 0,5 * H) | Ataque PoS de 50% exigiria N DCRs | 2 779 229 | DCR |
(J = 21,13 * I) | Custo para comprar 2 779 229 DCR ao preço de USD 21,13 | 58 725 109 | USD |
Tabela 5 – Decred Proof-of-Stake cost of (internal) attack
Fonte: elaboração própria
Equação | Operação | Quantidade | Unidade |
---|---|---|---|
(E + J) | Capex: USD 58 725 109 (PoS) + USD 16 973 680 (PoW) | 75 698 789 | USD |
(F + G) | Opex: 1 066 USD/h + 848 684 USD/h (PoW) | 849 750 | USD/h |
Tabela 6 – Custo total (PoW + PoS) de um ataque contra o Decred em 10 de fevereiro de 2020
Fonte: elaboração própria
O custo de um ataque externo contra a blockchain do Bitcoin considera o hashpower, o equipamento atual, a estimativa de custo da instalação e o preço da eletricidade em 10 de fevereiro de 2020:
Equação | Operação | Quantidade | Unidade |
---|---|---|---|
(A) | ASIC dev: Antminer S17+ (73 Th/s, 2 920W, USD 2 580) | 73 Th/s | |
(B) | Hashpower da rede Bitcoin em 10 de fevereiro de 2020 | 107 525 520 | Th/s |
(C = B / A) | Dispositivos ASIC para ataque 1x (mais 107 525 520 Th/s) | 1 472 953 | unidade |
(D = 2 920W * C) | Os dispositivos ASIC gastarão 2 920W * 1 472 953 unidades | 4 301 022 760 | kWh |
(E = USD 2 580 * C) | Custo de aquisição de 1 472 953 unidades S17+: 1 472 953 * USD 2 580 | 3 800 218 740 | USD |
(USD 0,05 * D) | Custo da eletricidade na Islândia (USD 0,05/kWh) | 215 051 138 | USD/h |
(0,05 * E) | Supondo custos de instalação (5% do custo do dispositivo) | 190 010 937 | USD/h |
Tabela 7 – Equipamento de PoW e hashpower de rede Bitcoin em 10 de fevereiro de 2020
Fonte: elaboração própria
Equação | Operação | Quantidade | Unidade |
---|---|---|---|
(C) | Capex (PoW) | 3 800 218 740 | USD |
(D + E) | Opex: 190 010 937 USD/h + 215 051 138 USD/h (PoW) | 405 062 075 | USD |
Tabela 8 – Custo total (PoW) de um ataque contra o Bitcoin em 10 de fevereiro de 2020
Fonte: elaboração própria
Considerando um ataque majoritário (50% + 1) e as informações nas Tabelas 9 e 10, um ataque ao Decred seria mais caro do que um ataque do Bitcoin em 10 de fevereiro de 2020 se uma das duas condições fosse verdadeira: 1) O preço do DCR em USD (taxa de câmbio) fosse 64,43 vezes o valor da época 2) O tamanho da rede do Decred (hashpower) fosse 220,45 vezes o nível da época
Se a rede Decred tivesse o mesmo hashpower da rede Bitcoin, um ataque à rede Decred custaria 1,0823x um ataque à rede Bitcoin. Se a rede Decred tivesse o mesmo hashpower que a rede Bitcoin e se o Decred estivesse precificado em USD à taxa de câmbio do Bitcoin, um ataque ao Decred custaria 8,2753x um ataque ao Bitcoin.
Taxa de câmbio Fiat | Oferta de moedas | Taxa de câmbio | ||
---|---|---|---|---|
BTCUSD | 9 856,61 | 18 209 137 | 466,4747 | DCRBTC |
DCRUSD | 21,13 | 11 081 717 | 0,0021 | BTCDCR |
Tabela 9 – Oferta e taxas de câmbio de Decred e Bitcoin em 10 de fevereiro de 2020
Fonte: elaboração própria
_ | Tamanho da rede em Th/s em 10 de fevereiro de 2020 | Tamanho da rede em escala |
---|---|---|
Decred | 450 150 Th/s | 0,0042x tamanho Bitcoin |
Bitcoin | 107 525 520 Th/s | 238,8660x tamanho reduzido |
Tabela 10 – Tamanho das redes Decred e Bitcoin (hashpower) em Th/s em 10 de fevereiro de 2020
Fonte: elaboração própria
Considerando a oferta de moedas e as taxas de câmbio das Tabelas 9 e 10, o resulta dos cálculos das Tabelas 6 e 8, e uma restrição muito importante a este modelo que assume que os proprietários de Decred venderiam até 50% de suas moedas a preço de mercado, a Tabela 11 mostra que o Bitcoin é mais caro para atacar do que o Decred em 10 de fevereiro de 2020.
Blockchain mais cara para atacar em 10 de fevereiro de 2020: | Bitcoin |
---|---|
Decred | 0,0199 x do que Bitcoin |
Bitcoin | 50,2019 x do que Decred |
Tabela 11 – Blockchain mais cara para atacar em 10 de fevereiro de 2020
Fonte: elaboração própria
Ataque interno/interno
Um ataque interno significa que nenhum dispositivo de mineração adicional está sendo adicionado à rede. Podem ser os atuais mineradores PoW executando um ataque de curto prazo na rede, mas também é possível alugar dispositivos de mineração na ‘nuvem’. ‘Nuvem’ significa empresas que alugam capacidade de datacenter como um serviço na Internet onde o cliente paga apenas pela capacidade usada (Opex) sem a necessidade de também construir o datacenter, comprar dispositivos de computação e rede (Capex) e pagar para operá-los (Opex) Nicehash6 é uma dessas empresas de mineração em nuvem que aluga poder de processamento para alguns algoritmos de hash. O site Crypto517 calcula o custo de 1h de ataque para várias criptomoedas PoW e quanto a nuvem de hashrate Nicehash oferece para realizar um ataque majoritário, permitindo que um adversário pague apenas pelo custo marginal do hashrate. Este site informa que a Nicehash tem atualmente 0% de capacidade de aluguel de hashrate para Bitcoin e Decred não está disponível em sua lista porque é uma criptomoeda PoW+PoS e PoS é uma das soluções recomendadas para reduzir o risco de um ataque majoritário.
Embora seja possível alugar dispositivos de mineração PoW para realizar ataques contra quase qualquer blockchain (assumindo que haja hashrate disponível para aluguel), Decred também exige que o invasor compre moedas para adquirir tickets (a menos que o invasor esteja disposto / seja capaz de alugar um múltiplo do hashrate necessário para atacar a rede com menos poder de voto PoS, conforme mostrado na Curva de Segurança da Figura 4). Decred não opera com um sistema de Prova de Participação Delegada (DPoS - Delegated Proof-of-Stake) em que o proprietário do ticket pode delegar seu poder de voto a um pool de mineração ou a um Provedor de Serviços de Votação (VSP - Voting Services Provider), que por sua vez poderia anular os desejos das partes interessadas e votar como quiser, nem seria possível alugar poder de voto PoS dos proprietários de tickets por causa do mecanismo de sorteio pseudo-aleatório.
A Tabela 12 assume um ataque PoW interno para Bitcoin e Decred com um ataque PoS interno para Decred (o que não aumentará o número de DCRs bloqueados em tickets), na mesma suposição irreal de que os proprietários de tickets atuais venderão metade de seu Decred no mercado preço, e a Tabela 13 mostra quantas vezes uma blockchain é mais segura do que a outra, considerando um ataque interno e usando uma proporção do custo total dos ataques:
Considerando o cenário apresentado no início desta seção, onde o adversário desonesto tem um pouco mais de poder do que os nós honestos (50% + 1 dos dispositivos PoW e tickets PoS), as Tabelas 12 e 13 mostram o resultado de 100.000 simulações para esta configuração para ambos os cenários de ataques.
Equação | Operação | Quantidade | Unidade |
---|---|---|---|
(K) | Decred Capex: USD 58 725 109 (PoS) | 58 725 109 | USD |
(F + H) | Decred Opex: 1 066 USD/h + 1 178 USD/h (PoW) | 2 244 | USD/h |
(F + H + K) | Custo total de ataque ao Decred em 1 hora | 58 727 353 | USD |
(24 * (F + H) + K) | Custo total de ataque ao Decred em 1 dia | 58 778 965 | USD |
(120 * (F + H) + K) | Custo total de ataque ao Decred em 5 dias | 58 994 485 | USD |
(Q + S) | Bitcoin Opex: 215 052 USD + 263 904 USD (ataque de 1 hora) | 478 971 | USD/h |
(24 * (Q + S)) | Custo total do ataque ao Bitcoin em 1 dia | 11 495 304 | USD |
(120 * (Q + S)) | Custo total de ataque ao Bitcoin em 5 dias | 57 476 522 | USD |
Tabela 12 – Custo total de ataques internos/internos em 10 de fevereiro de 2020
Fonte: elaboração própria
A Tabela 13 mostra que Decred é mais caro para atacar internamente do que Bitcoin em 10 de fevereiro de 2020.
Mais caro para atacar | 1 hora | 1 dia | 5 dias | . |
---|---|---|---|---|
Decred (interno/interno) | 122.6115 | 5,1133 | 1.0264 | x do que Bitcoin |
Bitcoin (interno) | 0,0081 | 0,1956 | 0,9743 | x do que Decred |
Tabela 13 – Mais caro para atacar (interno/interno) em 10 de fevereiro de 2020
Fonte: elaboração própria
A Tabela 13 mostra apenas o custo de um ataque interno, não suas recompensas. Moroz explica8 as recompensas do jogo ao apresentar o trabalho de Budish onde o invasor tem acesso ao mercado de aluguel de hashrate, o que poderia tornar o ataque grátis, barato ou impossível, dependendo dos preços de aluguel e da disponibilidade (Budish, 2018). Moroz et al. demonstram na Equação 4.4 que em uma economia de mineração competitiva (sob certas condições de preço e disponibilidade de hashrate), o custo gasto em um ataque é cancelado por suas recompensas de bloco, levando o custo de ataque a zero. Então, sendo capaz de executar um ataque “grátis”, o lucro do invasor deriva do gasto duplo.
Recompensa por bloco = Despesa total para minerar um bloco
𝑃b = hash por bloco x custo por hash
Para blocos e:
Custo de comprimento 𝑒 ataque - Recompensas de bloco para 𝑒 blocos = 0
𝑒𝑃 −𝑒𝑃 = 0
Equação 4.4 - Fonte: Modificado de (Moroz, Aronoff, Narula & Parkes, 2020)
Moroz et al. concluem argumentando que a segurança de uma blockchain PoW vem de fazer o custo líquido do ataque maior do que seu lucro, mas com um custo líquido de ataque igual a zero mostrado na Equação 4.4, qualquer lucro será maior. A segurança da blockchain PoW torna-se então intimamente relacionada à dificuldade (ou impossibilidade) de alugar grandes hashrates devido à indisponibilidade de tais valores ou queda de preço no mercado de aluguel.
Na mesma linha de argumento, Auer argumenta que, a longo prazo, toda a segurança da blockchain puramente PoW será baixa porque dependerá exclusivamente das taxas de transação, quando as recompensas do bloco serão baixas ou inexistentes, e essas taxas de transação serão altas apenas em tempos de congestionamento de rede (Auer, 2019). Podemos concluir que, com mineradores menos honestos, será mais fácil alcançar a maioria alugando hashrate de mineração para blockchains que compartilham algoritmos de hash. Esse argumento é usado por Hasu et al. para sugerir uma emissão de moeda perpétua altamente controversa de 1% ao ano, que em vez de adicionar inflação e diminuir o poder de compra, na verdade aumentaria o poder de compra e reduziria a incerteza sobre as receitas do minerador ao adicionar segurança por meio de incentivos aos mineradores (Hasu, Prestwich & Curtis, 2019).
Para Hasu et al. um ataque bem-sucedido pode reduzir o preço do ativo digital subjacente e, portanto, os mineradores são incentivados a não alugar hardware de mineração para invasores em potencial enquanto, ao mesmo tempo, dependendo de sua ‘skin in the game’, os detentores são mais propensos a pagar o custo de uma coordenação social (para contra-ataque). Em vez disso, Lovejoy forneceu dados empíricos9 que argumentam o oposto da expectativa geralmente aceita de que os preços cairiam: para moedas menos proeminentes, a exposição da mídia pode ter superado a perda de confiança em manter seus preços nivelados (ou mesmo superior) um mês após o ataque, mas não é possível assumir o mesmo resultado para moedas mais proeminentes, como o Bitcoin, onde seu valor pode derivar de uma expectativa de segurança contra esses ataques (Lovejoy, 2020). Essa expectativa de segurança contra-argumenta a hipótese de comprar Decred para adquirir tickets, realizar o ataque de gasto duplo e depois tentar vender Decred por um preço próximo ao preço de compra devido a derrapagem de mercado, possível desvalorização causada pelo ataque e porque os tickets podem levar até 143 dias para serem sorteados.
Usando o mesmo argumento de ‘skin in the game’ usado por Hasu et al., e estendendo o modelo de Budish (Budish, 2018), Moroz et al. mostraram que a vítima também pode retaliar, se houver capacidade de hashrate disponível para aluguel, porque a vítima tem mais em jogo (o valor da transação original) do que o agressor (Moroz, Aronoff, Narula & Parkes, 2020). Esses argumentos ajudam a mostrar a força do mecanismo de segurança PoW+PoS.
Simulação de um ataque de maioria
Considerando o cenário apresentado no início desta seção, onde o adversário desonesto tem um pouco mais de poder do que os nós honestos (50% + 1 dos dispositivos PoW e tickets PoS), as Tabelas 14 e 15 mostram o resultado de 100.000 simulações para esta configuração para ambos os cenários de ataques. A simulação PoW levou 32min25secs, enquanto a simulação PoW+PoS levou 7h02min, o que indica o aumento no custo para atacar tais redes.
Adversário | Hashpower | Simulações ganhas | Simulações ganhas |
---|---|---|---|
A0 | 49,99% | 50037 | 50,0370% |
A1 | 50,01% | 49963 | 49,9630% |
Em média, vantagem de 2 e 6 blocos alcançada em: 7.0091 e 55.0898 blocos
Custo de ataque, em média 36.0709 recompensas de bloco PoW
Número de simulações: 100000; Média: 0,0120 segundos, Total: 00:32:25
Tabela 14 – Resultado de 100 000 ataques simulados com 49.99%/50.01% PoW
Fonte: elaboração própria
Adversário | Hashpower | Stake | Sims ganhas | Sims ganhas | Média de blocos inválidos | Média de blocos válidos |
---|---|---|---|---|---|---|
A0 | 49,99% | 49,99% | 49785 | 49,7850% | 18,7086 | 17,9623 |
A1 | 50,01% | 50,01% | 50215 | 50,2150% | 18,6579 | 18,0050 |
Em média, vantagem de 2 e 6 blocos alcançada em: 4,9870 e 36,9674 blocos
Para A1, o custo de ataque, em média: 18,0050 recompensas do bloco PoW, devido à invalidação PoS
Número de simulações: 100000; Média: 0,2092 segundos, Total: 07:02:19
Tabela 15 – Resultado de 100 000 ataques simulados com 49.99%/50.01% PoW+PoS
Notas de rodapé
1 dcrdata, disponível em https://github.com/decred/dcrdata
2 Preço do Bitcoin em USD, disponível em https://finance.yahoo.com/quote/BTC-USD/history?period1=1454716800&period2=1586131200&interval=1d&filter=history&frequency=1d
3 Preço do Decred em USD, disponível em https://finance.yahoo.com/quote/DCR-USD/history?period1=1454716800 &period2=1586131200&interval=1d&filter=history&frequency=1d
4 InvalidationGame, https://github.com/mmartins000/invalidationgame
5 Na realidade, devido ao funcionamento interno da ledger, o atacante tenta gastar a mesma transação mais de uma vez. Uma transação corresponde a uma quantidade de moedas, como um cheque.
6 Disponível em https://www.nicehash.com/.
7 Disponível em https://www.crypto51.app/.
8 “Double-Spend Counter-Attacks: Threat of Retaliation in PoW Systems”, disponível em https://www.youtube.com/watch?list=PLKCUhIiFc_PfT_9IlARL2LZmXaAIthE_n&v=lKd-AoDyFlA.
9 “51% attacks”, disponível em https://dci.mit.edu/51-attacks.
Referências
Bonneau, J., Miller, A., Clark, J., Narayanan, A., Kroll, J. A., & Felten, E. W. (2015). SoK: Research Perspectives and Challenges for Bitcoin and Cryptocurrencies. 2015 IEEE Symposium on Security and Privacy. San Jose, CA, USA: IEEE. Obtido do: https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=7163021
Grunspan, C., & Pérez-Marco, R. (2019, Dez 12). On probability of Nakamoto double spend. Obtido do Arxiv: https://arxiv.org/abs/1912.06412
Nakamoto, S. (2008, October 31). Bitcoin: A peer-to-peer electronic cash system. Obtido do Nakamoto Institute: https://nakamotoinstitute.org/bitcoin/
Stafford, B. (2019). Parametrized cost of attack as a measure of Decred network security.