(Este artigo contém algum material publicado originalmente em 2019 no Blog RSK do Laboratório IOV)
A segurança do Bitcoin depende dos incentivos econômicos para que os mineradores estendam a “cadeia mais pesada”, que é a cadeia com maior dificuldade acumulada (geralmente a mais longa). Atualmente, esses incentivos são fornecidos pela recompensa em bloco, que consiste no subsídio em bloco e nas taxas de transação. Mas o subsídio (atualmente 6.25 BTC) é substancialmente superior às taxas médias de transação por bloco (atualmente 0.25 BTC). O subsídio do Bitcoin cai pela metade a cada 4 anos e, sem uma valorização inversamente proporcional do preço do BTC, o principal incentivo para a mineração mudará do subsídio em bloco para as taxas de transação em bloco. Para manter o actual orçamento de segurança, os custos de transacção teriam de aumentar 25 vezes. É muito cedo para dizer se isso algum dia se tornará um problema para o Bitcoin. É possível que o Bitcoin precise de um soft-fork ou hard-fork para se adaptar a uma nova era de baixos subsídios. Em 2014, mostrei como o Bitcoin poderia se tornar instável quando apresentei o (principalmente teórico) Ataque FRENTE. Carlsten et al. (2016) analisado este problema em profundidade, mas não conseguiram encontrar uma solução satisfatória. Este não é apenas um problema do Bitcoin, mas um problema que toda criptomoeda cuja emissão de dinheiro diminui com o tempo precisará enfrentar.
Mas não precisamos nos preocupar com o Bitcoin por enquanto. A comunidade Bitcoin pode precisar resolver esse problema em 10 ou 20 anos, ou talvez nunca. De vez em quando a questão é reexaminado, com análises tanto Destacando e minimizando o problema. Mas quando analisamos sidechains de Bitcoin, como RSK, o problema é bastante real.
Em 2019, o CEO da Blockstream, Adam Back, mencionou suavização ao discutir o orçamento de segurança de longo prazo do Bitcoin: “Outras ideias de longo prazo da era de baixos subsídios incluem a média de taxas em intervalos de blocos para suavizar a receita de taxas”.
https://twitter.com/adam3us/status/1097031151921713152
A RSK implementa exatamente essa ideia, a suavização da receita de taxas, desde 2016. Mas antes de explicarmos como a RSK lida com transações com taxas altas, mostraremos com mais detalhes os três principais ataques de reversão de bloco que podem ser desencadeados por taxas de transação: sniping de taxas , transações de baleias e atomização de mineração.
Se o subsídio do bloco for baixo e as taxas de transação no último bloco minerado forem muito mais altas do que as taxas que podem ser cobradas das transações no mempool, os mineradores racionais de curto prazo são incentivados a capturar transações do último bloco minerado e minerar um bloco concorrente. bloco, em vez de estendê-lo. Isto é um desvio do Consenso de Nakamoto e é chamado Taxa de atirador. Por definição, tal desvio é um ataque ao protocolo e o minerador é considerado uma parte mal-intencionada. Para descontar as taxas de transação cobradas, o minerador malicioso também precisa extrair um bloco de confirmação adicional mais rápido do que a cadeia honesta, para que o restante dos mineradores mudem para sua cadeia. Portanto, o fee sniping nem sempre é lucrativo, uma vez que o mineiro malicioso corre o risco de desperdiçar o seu hashrate se o seu fork egoísta não ultrapassar a cadeia honesta. O sniping de taxas pouco frequente pode não ser um problema, mas se os mineradores alterarem seu código de consenso para lucrar com oportunidades potenciais de sniping de taxas em todos os forks existentes, a rede poderá ficar exposta a ataques mais perigosos.
Depois que os nós dos mineradores realizam o sniping automático de taxas, um invasor pode tirar vantagem dessa situação para realizar um ataque de gasto duplo. Um minerador mal-intencionado pode gastar moedas na cadeia honesta e receber outro ativo externo em troca e, posteriormente, bifurcar a cadeia honesta em um bloco antes do primeiro. No fork malicioso, o invasor gasta duas vezes as moedas, mas também introduz uma característica distintiva (ou seja, um UTXO exclusivo) que não deve existir no fork honesto. Imediatamente depois, o invasor transmite um transação “baleia” que faz uso desse recurso (ou seja, consome esse UTXO) e oferece uma taxa de transação incomumente alta como isca (ou suborno) para os mineradores que executam o código de taxa de sniping. Embora o termo “transação baleia” possa ser entendido como uma transação que transfere um valor elevado, aqui utilizamos a definição do artigo referenciado, como uma transação que paga taxas elevadas, independentemente do valor transferido. No Bitcoin, a transação da baleia e os blocos de fork maliciosos precisariam ser enviados diretamente aos nós dos mineradores, porque os forks não melhores não são encaminhados pelos nós completos na rede ponto a ponto. No entanto, em muitas plataformas de contratos inteligentes, o ataque é muito mais fácil porque elas transmitem bifurcações que não são as melhores. Também em plataformas de contratos inteligentes, criar uma transação de baleia é mais simples: o invasor pode reutilizar um nonce já utilizado na cadeia honesta, evitando assim que a transação de baleia seja incluída na cadeia honesta. Alternativamente, a transação baleia pode executar um contrato que verifica se o hash do bloco anterior corresponde a um hash de bloco que só existe na bifurcação egoísta (ou seja, usando o opcode BLOCKHASH) e paga um suborno apenas na bifurcação egoísta.
Assim que os mineiros detetam uma transação de baleia, podem considerar alargar a bifurcação maliciosa, mesmo que estejam atrasados, se o suborno for suficientemente elevado, apostando que ultrapassará a cadeia honesta mais longa. Sem contratos inteligentes, a melhor estratégia de ataque é transmitir simultaneamente uma série de transações de baleias subornando os seguintes mineradores para que continuem estendendo a bifurcação maliciosa. No Bitcoin, as transações podem ser encadeadas com CHECKLOCKLOCKVERIFICAR or CHECKSEQUENCEVERIFY. Em plataformas de contratos inteligentes, isso pode ser feito através da reutilização de nonces ou por chamadas de contrato. Mesmo que não seja automatizado, o invasor pode continuar gerando transações de baleias na bifurcação maliciosa, até ultrapassar a cadeia honesta.
No ataque Whale Transaction, consideramos que os mineradores precisam mudar dinamicamente para uma estratégia de mineração complexa para aceitar subornos com base nas probabilidades de vitória do fork. Podemos considerar de forma mais realista que os mineiros estão a executar uma estratégia mais simples que não considera subornos futuros, mas apenas o pagamento egoísta de taxas. Se esta for a estratégia adotada pela maioria dos mineradores, então um novo ataque será possível. O ataque Miner Atomization é um ataque de negação de serviço em toda a rede que tenta atrair todos os mineradores a trabalharem em forks egoístas simultaneamente, reduzindo assim a taxa e a convergência da cadeia honesta. O ataque começa com a transmissão de uma transação com taxas muito altas, semelhante ao ataque de corte de taxas ou ao ataque de transação de baleia. Esta transação não pretende ajudar a duplicar os gastos, mas é uma isca que visa atomizar a rede de mineração. Mostraremos o ataque com um exemplo. Suponha que uma transação T em um bloco de altura N pague 100 moedas em taxas, mas a recompensa média do bloco seja de apenas 10 moedas. Assumimos que todos os nós dos mineradores estão programados para seguir esta estratégia racional:
- Se T estiver incluído em qualquer um dos últimos K blocos da cadeia honesta, pegue a transação T e tente extrair um bloco concorrente na altura N e, em seguida, continue minerando blocos filhos dessa bifurcação egoísta até que ela ultrapasse a cadeia honesta.
- Se a cadeia honesta ultrapassar a bifurcação egoísta em mais de K blocos, desista.
A transação maliciosa de alta taxa atomiza a mineração em benefício do pool de mineração maior, que tem as maiores chances de minerar a transação T, além de blocos adicionais de confirmação egoísta suficientes para que os mineradores restantes desistam. Curiosamente, quanto mais descentralizada for a rede mineira, pior será a perturbação causada pela transação T. Por exemplo, para uma blockchain com intervalo médio de blocos de 10 minutos, se houvesse 100 mineradores, cada um com 1% do hashrate total, a rede sofreria uma desaceleração de 100x por vários blocos até finalmente convergir. A rede ficaria inutilizável por 2 dias!
RSK é um cadeia lateral Bitcoin pura, por isso teve que enfrentar o desafio de proteger o blockchain com um orçamento de segurança que consiste apenas em taxas de transação desde o seu início. Por conseguinte, a RSK teve de estar preparada para taxas anormalmente altas ou baixas. RSK foi a primeira sidechain pronta para produção e usa mineração combinada para consenso. Atualmente, mais de 40% dos mineradores de Bitcoin fundir-mina RSK.
Os mineradores da RSK esperam uma compensação econômica pela execução de nós completos da RSK. A maioria das blockchains emite novas moedas para esta compensação. Alguns outros livros distribuídos, como o Ripple, não emitem moedas para pagar os produtores de blocos, mas os produtores de blocos podem ser subsidiados externamente. A Ripple Labs, que pré-minerou XRPs, tem tantos deles que pode fornecer compensação em XRP para que terceiros se tornem produtores de blocos. A RSK, por outro lado, enfrenta as condições mais difíceis: não possui emissão de moedas (como o Bitcoin) e não possui pré-mineração de moedas (como o XRP). A RSK representa um exemplo bem-sucedido de cadeia lateral de Bitcoin, um vislumbre do futuro do consenso em blockchains deflacionárias e como uma blockchain sem subsídio pode ser sustentável. No entanto, não ter subsídio significa que a cadeia lateral deve ser cuidadosamente projetada contra os ataques aqui apresentados. A RSK implementa vários recursos exclusivos para ser mais segura contra reorganizações de blockchain com base em transações com taxas elevadas:
- Suavização de recompensa em bloco (também chamada de suavização de taxas).
- Bloquear compartilhamento de recompensas
- Mineração de mesclagem com reconhecimento de fork
Nas seções a seguir, apresentamos brevemente cada técnica.
A suavização de taxas é uma regra de consenso que distribui as taxas de transação entre os mineiros de uma forma mais igualitária. Ele paga a cada minerador uma função das recompensas do bloco anterior. A função pode ser linear ou não linear, baseada em um pequeno número de recompensas de blocos anteriores ou baseada em um estado que depende de todos os blocos anteriores. O projeto mais simples é usar algum tipo de filtro passa-baixa nas taxas acumuladas. A RSK utiliza uma função de suavização muito simples, uma IIR de α = 0.1. Se um minerador RSK resolver um bloco na altura N, o minerador será compensado com 10% das taxas de transação do bloco N e 10% de todas as taxas de minerador não pagas acumuladas anteriormente. Em outras palavras, existe uma conta de minerador “compartilhada”, onde a cada bloco o mineiro vencedor coloca as taxas de transação e retira 10% para si.
A suavização de recompensas aumenta o incentivo para estender o blockchain contra o incentivo para minerar novamente um bloco anterior para obter as taxas pagas, porque o minerador só pode obter 10% das taxas de transação das baleias. Traremos o exemplo anterior. Assumimos que a recompensa média do bloco é de 10 moedas e um bloco contém um suborno de 100 moedas na altura N. No RSK, o bloco na altura N pagaria uma recompensa de 19 moedas, enquanto o bloco seguinte pagaria 18.1 moedas. O mineiro egoísta agora precisa de 10 vezes mais poder de hashing do que qualquer outro mineiro para que o ataque seja lucrativo.
Mostramos agora outras medidas de proteção complementares.
A RSK implementa um protocolo de consenso de compartilhamento de recompensas chamado DECOR. A DECOR divide as recompensas dos blocos igualmente entre os blocos irmãos, desde que os cabeçalhos desses blocos sejam referenciados pela cadeia honesta. A DECOR diminui o incentivo para um ataque de atomização porque o vencedor da transação de alta taxa deve compartilhar a recompensa com até outros 10 mineradores que produziram blocos irmãos. Isso ocorre porque um bloco blockchain pode ter até 10 referências de irmãos de bloco, e o protocolo DECOR compartilha a recompensa do bloco entre todos eles. Para evitar o compartilhamento, o minerador precisaria minerar mais 10 blocos egoístas, evitando referências do tio, reduzindo consideravelmente suas chances de sucesso. Considerando o compartilhamento de recompensas juntamente com a suavização de taxas, para que uma tentativa de perturbar a rede RSK seja bem-sucedida, o suborno deve ser pelo menos 110 vezes maior do que a recompensa média do bloco.
Mineração mesclada com reconhecimento de fork é uma variante da mineração mesclada que permite aos usuários monitorar a rede mainchain (por exemplo, Bitcoin) em busca de forks maliciosos na rede sidechain (por exemplo, RSK). Para lucrar com um ataque de transação de baleia, o invasor deve encontrar uma vítima para gastar o dobro. Essa vítima provavelmente seria uma troca de criptografia online. As trocas de criptografia aguardam várias centenas de confirmações de bloco antes de aceitar um depósito, o que é tempo suficiente para o Sistema RSK Armadillo para detectar antecipadamente o fork malicioso e alertar a exchange. No caso de ataques de taxa e atomização de mineradores, os forks maliciosos são curtos e, portanto, o Armadillo só pode ser usado como uma ferramenta para diagnosticar a situação e identificar os pools que se desviam do protocolo honesto, mas não pode impedir o ataque.
Outra medida de proteção complementar, que a RSK não implementa atualmente, é limitar o preço do gás de transação a um múltiplo do preço mínimo do gás (ou seja, um spread de 10x). Eu propus uma medida comparável para Bitcoin em 2013. A RSK poderia implementar isso facilmente, já que cada bloco anuncia o preço mínimo de transação do gás aceito. Porém, definir um preço máximo do gás não resolve completamente o problema se a rede estiver em um estado onde os blocos não consomem todo o limite de gás disponível em um bloco. A elevada taxa de transação em T pode ser o resultado de uma maior quantidade de gás consumido em vez de um preço mais elevado do gás (a taxa paga é o produto destes dois valores).
A suavização de recompensas não é a solução definitiva, pois os invasores podem usar uma plataforma de contrato inteligente para suborno mineiros em fazer praticamente qualquer coisa. Apresentei a teórica “Escolha Eterna para o Ataque do Lado Negro” (ou ECDSA :)) em 2014, como forma de mostrar como os mineiros podem ser subornados para se desviarem de um comportamento honesto. McCorry el at. (2018) apresentou uma ampla gama de ataques teóricos de suborno. Contudo, o nível de compreensão e preparação necessário para aceitar subornos baseados em contratos inteligentes é considerável. Isto torna os ataques de suborno baseados em contratos inteligentes muito mais difíceis de perpetrar. Um mineiro deve estar ciente do contrato de suborno e compreender como interagir com ele. No entanto, este tipo de ataque é inevitável: se a plataforma puder realizar um pagamento ao minerador de bloco atual, então também poderá executar um contrato inteligente que pague ao mesmo minerador. Isso ocorre porque a linguagem de programação que descreve o consenso do protocolo e a usada pelos contratos inteligentes são ambas “Turing-complete”. Este é um problema teórico interessante.
Pode-se pensar em truques inteligentes para dificultar o pagamento de subornos, tais como forçar os endereços dos mineiros a serem especiais (ou seja, de utilização única), para que um contrato de suborno não possa pagar ao mineiro. No entanto, uma plataforma Turing completa de contrato inteligente não pode impedir um pagamento de uma parte que está disposta a pagar a outra parte disposta a ser paga. Sempre construímos um contrato inteligente de suborno bem-sucedido que escapa às defesas. Por exemplo, o minerador mal-intencionado pode criar uma prova de conhecimento zero que comprove o controle de um endereço de minerador específico para o contrato, sem revelar a chave privada. O mineiro enviaria esta prova para o contrato de suborno, juntamente com um endereço alternativo para receber o suborno.
Não é suficiente limitar as capacidades linguísticas do contrato inteligente da blockchain cujos mineiros serão subornados, uma vez que qualquer outra plataforma de contrato inteligente Turing-completa pode ser usada para pagar subornos aos mineiros. A plataforma só precisa executar um relé de cabeçalho de bloco (ou seja, btcrelay). Por exemplo, RSK e Ethereum poderiam ser usados para pagar subornos a mineradores de Bitcoin. No entanto, coordenar um ataque a uma blockchain em ponte é mais difícil.
Uma defesa potencial contra ataques de suborno é usar uma variante do protocolo de consenso PoS que exige que a maioria dos produtores de blocos assine blocos e também exige que eles tenham um depósito de segurança (aposta) de moedas por um período de meses. A participação dos mineradores que equivocam (produzem dois blocos contraditórios ou extensões de garfos contraditórios) seria confiscada por um hard fork lançado pela comunidade. Embora esta proteção não elimine a vulnerabilidade, pode aumentar o custo do ataque, uma vez que o suborno deve ser superior à participação perdida. Atualmente, não é possível ativar o staking de mineradores no Bitcoin. Embora a RSK possa adotar um consenso de PoS, não há proposta para mudar para PoS ou misturar PoW com PoS na RSK.
Apresentamos vários ataques conhecidos ao consenso de Nakamoto baseados em transações maliciosas que pagam taxas anormalmente altas. Alguns ataques permitem gastos duplos e outros causam instabilidade na rede. Esses ataques são especialmente relevantes para todas as cadeias laterais de Bitcoin, incluindo RSK. A RSK implementa suavização de recompensa de bloco, compartilhamento de recompensa de bloco e mineração mesclada com reconhecimento de fork como dissuasores. Embora a suavização de recompensas funcione para taxas explícitas, o caso geral de subornos pagos através de contratos inteligentes não pode ser evitado. A defesa contra esses ataques requer monitoramento ativo da rede. Finalmente, são necessárias mais pesquisas sobre possíveis soluções para estes ataques.
- 100
- 2016
- 2019
- Conta
- ativo
- Adam Back
- Adicional
- Vantagem
- Todos os Produtos
- artigo
- ativo
- Automatizado
- MELHOR
- Aposta
- para
- Bitcoin
- blockchain
- BTC
- preço btc
- dinheiro
- Causar
- causado
- Chefe executivo
- desafiar
- chances
- alterar
- Cheques
- criança
- código
- Moeda
- Moedas
- comunidade
- Compensação
- Consenso
- consumir
- continuar
- contract
- contratos
- Criar
- cripto
- troca de criptografia
- Troca de Criptografia
- criptomoedas
- Atual
- Descentralizada
- Defesa
- Denial of Service
- Design
- detalhe
- perturbe
- Rompimento
- livros distribuídos
- Cedo
- Econômico
- ethereum
- exchange
- Trocas
- extensões
- Rosto
- rostos
- Característica
- Funcionalidades
- Taxas
- Finalmente
- Primeiro nome
- seguir
- garfo
- cheio
- função
- futuro
- GAS
- ge
- Geral
- GM
- GP
- agarrar
- GV
- hard fork
- hash
- Hashing
- Hashrate
- SUA PARTICIPAÇÃO FAZ A DIFERENÇA
- Alta
- Como funciona o dobrador de carta de canal
- Como Negociar
- HTTPS
- idéia
- identificar
- Incluindo
- Crescimento
- IP
- IT
- Chave
- Conhecimento
- Laboratório
- língua
- Nível
- longo
- principal
- Maioria
- a medida
- média
- Mempool
- Mineradores
- Mineração
- dinheiro
- monitoração
- mês
- rede
- nós
- Oferece
- online
- Outros
- Papel
- Pagar
- pagamento
- pagamentos
- peer to peer
- plataforma
- Plataformas
- piscina
- Piscinas
- PoS
- PoW
- poder
- presente
- impedindo
- preço
- privado
- chave privada
- Produzido
- Produtores
- Produto
- Lucro
- Programação
- prova
- proposta
- proteção
- protetor
- pesquisa
- DESCANSO
- receita
- Recompensas
- Ripple
- Laboratórios ondulatórios
- Execute
- corrida
- segurança
- Série
- contexto
- Partilhar
- ações
- mudança
- Baixo
- cadeia lateral
- simples
- pequeno
- smart
- smart contract
- Smart Contracts
- So
- Soluções
- RESOLVER
- gastar
- propagação
- estaca
- Staking
- Estado
- Estratégia
- subvenção
- sucesso
- bem sucedido
- sustentável
- Interruptor
- terceiro
- tempo
- transação
- Transações
- Turing
- usuários
- valor
- vulnerabilidade
- esperar
- Wikipedia
- palavras
- Atividades:
- trabalho
- xrp
- anos
- zero