A maneabilidade da transação refere-se à capacidade de um invasor modificar ou alterar o hash que identifica uma transação na blockchain. Uma situação que pode, sem dúvida, alterar e gerar problemas sérios num sistema de pagamento, como o das criptomoedas.
Là maleabilidade das transações de Bitcoin, é um tipo de Ataque de negação de serviço (DoS), que permite que um invasor modifique ou altere o hash que identifica uma transação dentro da cadeia de blocos.
À primeira vista, isto pode não parecer um problema em si, já que modificar a hash de uma transação, não a afetaria de forma alguma, e a transação seria executada da mesma forma. No entanto, o problema surge quando o destinatário da transação afirma não ver a transação refletida na sua conta. Portanto, desconfia do usuário que executou a operação e do sistema em geral.
É por este motivo que a maleabilidade de uma transação é um problema sério para os sistemas de pagamento de criptomoedas. Um problema que muitas criptomoedas enfrentam e resolvem de várias formas.
Como ocorre este ataque?
As transações em Bitcoin, são compostos de uma ou mais entradas e uma ou mais saídas. As entradas são compostas por uma série de referências que se referem às saídas de uma transação anterior e são conhecidas como saídas não gastas (UTXO). Por outro lado, as saídas contêm o endereço para o qual a transação foi feita e a quantidade de fundos que foi transferida.
Cada transação feita na blockchain Bitcoin contém o seu próprio hash. Este hash é único e irrepetível e é usado para identificar ou localizar uma transação específica dentro da blockchain.
Desta forma, por meio de hashing, os mineiros podem rastrear e verificar se uma transação foi agregada a um bloco. E, portanto, validar que faz parte da blockchain.
Agora, até que a validação e confirmação dessa transação sejam realizadas, um invasor tem a possibilidade de modificar e alterar o hash do identificador da transação, sem alterar a assinatura digital. Com esta ação, o invasor consegue ocultar a transação e, assim, faz com que o emissor acredite que a operação não foi realizada. Então, algumas horas depois, faz um pedido ao emissor para fazer a transferência novamente, alegando que não recebeu os fundos. É aqui que o ataque ou golpe é executado. Já que o invasor recebeu os fundos transferidos, e não são refletidos no hash (txid) que foi registado no serviço.
Viabilidade de execução deste ataque
O principal alvo dos ataques devido à maleabilidade das transações são as exchanges de criptomoedas. Devido ao grande volume de operações e transações com que lidam diariamente, um invasor pode tirar vantagem da situação.
No caso de um usuário que não realizar tantas transações por dia, é muito improvável que seja vítima deste tipo de ataque. Pois ao consultar o saldo da sua conta verá refletido o débito da transação. Assim poderá perceber que a transação foi realizada e verificar se o endereço de destino tem os fundos transferidos.
Mt Gox e o problema de maleabilidade da transação
As inúmeras perdas sofridas pela famosa e falida exchange de criptomoedas, Mt Gox, foram causados conforme relatado pela equipa técnica e seu CEO, Mark Karpelès, devido a um problema de maleabilidade das transações. Isso permitiu que vários hackers e invasores fizessem reivindicações por transações supostamente mal sucedidas. O que totalizou aproximadamente 850.000 bitcoins roubados. Um acontecimento infeliz que levou a exchange à falência em 2014, deixando milhares de usuários irritados e perplexos.
Segundo Karpelès, isto se deve à maleabilidade das transações. Karpeles argumentou que os usuários podiam fazer várias retiradas dos seus fundos, alegando que não haviam sido feitos, quando na verdade foram.
No entanto, várias investigações realizadas determinaram que a falência desta exchange não se deveu apenas a um ato de hacking, mas também à manipulação de dados pela equipa responsável por Mt Gox. No relatório publicado por ArXiv estima-se que a perda de bitcoins devido à maleabilidade das transações não ultrapasse 400 unidades.
Quanto você sabe, cryptonuta?
A maleabilidade das transações é um risco à segurança?VERDADEIRO!
Até certo ponto, a maleabilidade das transações é um risco de segurança, pois um agente mal-intencionado em uma bolsa pode usar essa fraqueza para adulterar os registros das transações e apreender ilegalmente dinheiro que não é deles.
Soluções propostas para o problema de maleabilidade
Desde que este problema nas transações foi detetado no Bitcoin e outras criptomoedas, tem havido vários esforços de desenvolvedores e especialistas para lidar com ele. Assim, o desenvolvimento de duas soluções com o objetivo é abordar a maleabilidade.
Propostas em Bitcoin
- BIP 0062 é uma solução apresentada em 2014 pelo desenvolvedor Pieter Wuille a fim de resolver o problema de maleabilidade das transações de Bitcoin, que fazia com que o remetente perdesse o controlo das suas transações depois dos hashes serem modificados. Fazendo isto, sob manipulações, enviava os fundos repetidamente, gerando grandes perdas. Nesta proposta, são expostas todas as formas possíveis de encontrar a maleabilidade nas transações, com as quais podem ser tratadas e resolvidas.
- SegWit é outra ferramenta desenhada com o objetivo de atacar, entre outras coisas, o problema de maleabilidade das transações de Bitcoin. Para evitar isso, o SegWit separa os dados da transação, incluídos na árvore Merkle, das assinaturas. Portanto, as transações que usam e gastam saídas de segwit não são vulneráveis a problemas de maleabilidade.
Propostas em Ethereum
O Hard Fork de Ethereum "Homestead" descrita no EIP-2, resolveu o problema de maleabilidade em Ethereum. Mais especificamente, a atualização faz com que todas as assinaturas de transação cujo valor s seja maior que secp256k1n / 2 sejam consideradas inválidas. Isto resolve o problema da maleabilidade das transações no Ethereum.
Propostas no Dash
Dash também fez alterações no seu software para evitar esse problema. Devido à proximidade do código Dash e Bitcoin, Dash optou por aplicar uma correção seguindo as recomendações do BIP-66. Isto corrige alguns dos problemas de maleabilidade da transação no Dash. Além disso, também aplicou um patch com base nas recomendações fornecidas no BIP-0147. Mas, apesar disso, o Dash ainda não está totalmente protegido contra esses tipos de ataques e, para a sua equipa de desenvolvimento, isso não é uma prioridade de primeiro nível, como eles fazem ver no seu blog.