hacktricks/crypto-and-stego/blockchain-and-crypto-currencies.md
2024-12-12 13:56:11 +01:00

13 KiB

{% hint style="success" %} Aprenda e pratique Hacking AWS:Treinamento HackTricks AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: Treinamento HackTricks GCP Red Team Expert (GRTE)

Apoie o HackTricks
{% endhint %}

Conceitos Básicos

  • Contratos Inteligentes são programas que executam em uma blockchain quando certas condições são atendidas, automatizando a execução de acordos sem intermediários.
  • Aplicações Descentralizadas (dApps) são construídas sobre contratos inteligentes, apresentando uma interface amigável para o usuário e um back-end transparente e auditável.
  • Tokens & Moedas diferenciam-se onde moedas servem como dinheiro digital, enquanto tokens representam valor ou propriedade em contextos específicos.
  • Tokens de Utilidade concedem acesso a serviços, e Tokens de Segurança significam propriedade de ativos.
  • DeFi significa Finanças Descentralizadas, oferecendo serviços financeiros sem autoridades centrais.
  • DEX e DAOs referem-se a Plataformas de Troca Descentralizadas e Organizações Autônomas Descentralizadas, respectivamente.

Mecanismos de Consenso

Mecanismos de consenso garantem validações seguras e acordadas de transações na blockchain:

  • Prova de Trabalho (PoW) depende do poder computacional para verificação de transações.
  • Prova de Participação (PoS) exige que validadores possuam uma certa quantidade de tokens, reduzindo o consumo de energia em comparação com PoW.

Conceitos Essenciais do Bitcoin

Transações

Transações de Bitcoin envolvem a transferência de fundos entre endereços. As transações são validadas por meio de assinaturas digitais, garantindo que apenas o proprietário da chave privada possa iniciar transferências.

Componentes Chave:

  • As transações consistem em inputs (fonte de fundos), outputs (destino), taxas (pagas aos mineradores) e scripts (regras da transação).

Rede Lightning

Tem como objetivo melhorar a escalabilidade do Bitcoin permitindo múltiplas transações dentro de um canal, transmitindo apenas o estado final para a blockchain.

Preocupações com a Privacidade do Bitcoin

Ataques à privacidade, como Propriedade Comum de Inputs e Detecção de Endereço de Troco UTXO, exploram padrões de transações. Estratégias como Mixers e CoinJoin melhoram o anonimato ao obscurecer os links de transações entre usuários.

Adquirindo Bitcoins de Forma Anônima

Métodos incluem negociações em dinheiro, mineração e uso de mixers. CoinJoin mistura várias transações para complicar a rastreabilidade, enquanto PayJoin disfarça CoinJoins como transações regulares para maior privacidade.

Ataques à Privacidade do Bitcoin

Resumo dos Ataques à Privacidade do Bitcoin

No mundo do Bitcoin, a privacidade das transações e o anonimato dos usuários são frequentemente temas de preocupação. Aqui está uma visão simplificada de vários métodos comuns pelos quais os atacantes podem comprometer a privacidade do Bitcoin.

Assunção de Propriedade Comum de Inputs

Geralmente é raro que inputs de diferentes usuários sejam combinados em uma única transação devido à complexidade envolvida. Assim, dois endereços de input na mesma transação frequentemente são assumidos como pertencentes ao mesmo proprietário.

Detecção de Endereço de Troco UTXO

Um UTXO, ou Unspent Transaction Output, deve ser totalmente gasto em uma transação. Se apenas uma parte dele for enviada para outro endereço, o restante vai para um novo endereço de troco. Observadores podem assumir que este novo endereço pertence ao remetente, comprometendo a privacidade.

Exemplo

Para mitigar isso, serviços de mistura ou o uso de múltiplos endereços podem ajudar a obscurecer a propriedade.

Exposição em Redes Sociais e Fóruns

Usuários às vezes compartilham seus endereços de Bitcoin online, tornando fácil vincular o endereço ao seu proprietário.

Análise do Grafo de Transações

Transações podem ser visualizadas como gráficos, revelando conexões potenciais entre usuários com base no fluxo de fundos.

Heurística de Input Desnecessário (Heurística de Troco Ótimo)

Essa heurística é baseada na análise de transações com múltiplos inputs e outputs para adivinhar qual output é o troco que retorna para o remetente.

Exemplo

2 btc --> 4 btc
3 btc     1 btc

Se adicionar mais inputs faz com que a mudança de saída seja maior do que qualquer input único, pode confundir a heurística.

Reutilização Forçada de Endereços

Os atacantes podem enviar pequenas quantias para endereços usados anteriormente, esperando que o destinatário combine essas com outros inputs em transações futuras, vinculando assim os endereços.

Comportamento Correto da Carteira

As carteiras devem evitar usar moedas recebidas em endereços vazios já usados para evitar essa exposição de privacidade.

Outras Técnicas de Análise de Blockchain

  • Quantias de Pagamento Exatas: Transações sem troco provavelmente são entre dois endereços pertencentes ao mesmo usuário.
  • Números Redondos: Um número redondo em uma transação sugere um pagamento, sendo o output não redondo provavelmente o troco.
  • Identificação de Carteira: Diferentes carteiras têm padrões únicos de criação de transações, permitindo aos analistas identificar o software usado e potencialmente o endereço de troco.
  • Correlações de Quantia e Tempo: Divulgar horários ou quantias de transação pode tornar as transações rastreáveis.

Análise de Tráfego

Ao monitorar o tráfego de rede, os atacantes podem potencialmente vincular transações ou blocos a endereços IP, comprometendo a privacidade do usuário. Isso é especialmente verdadeiro se uma entidade operar muitos nós Bitcoin, aumentando sua capacidade de monitorar transações.

Mais

Para uma lista abrangente de ataques e defesas de privacidade, visite Privacidade do Bitcoin na Bitcoin Wiki.

Transações Anônimas de Bitcoin

Formas de Obter Bitcoins de Forma Anônima

  • Transações em Dinheiro: Adquirir bitcoin em dinheiro.
  • Alternativas em Dinheiro: Comprar cartões-presente e trocá-los online por bitcoin.
  • Mineração: O método mais privado para ganhar bitcoins é através da mineração, especialmente quando feita sozinha, pois os pools de mineração podem conhecer o endereço IP do minerador. Informações sobre Pools de Mineração
  • Roubo: Teoricamente, roubar bitcoin poderia ser outro método para adquiri-lo de forma anônima, embora seja ilegal e não recomendado.

Serviços de Mistura

Ao usar um serviço de mistura, um usuário pode enviar bitcoins e receber bitcoins diferentes em troca, o que torna difícil rastrear o proprietário original. No entanto, isso requer confiança no serviço para não manter logs e realmente devolver os bitcoins. Opções alternativas de mistura incluem cassinos de Bitcoin.

CoinJoin

CoinJoin mescla várias transações de diferentes usuários em uma só, complicando o processo para quem tenta associar inputs com outputs. Apesar de sua eficácia, transações com tamanhos de input e output únicos ainda podem ser potencialmente rastreadas.

Exemplos de transações que podem ter usado o CoinJoin incluem 402d3e1df685d1fdf82f36b220079c1bf44db227df2d676625ebcbee3f6cb22a e 85378815f6ee170aa8c26694ee2df42b99cff7fa9357f073c1192fff1f540238.

Para mais informações, visite CoinJoin. Para um serviço similar no Ethereum, confira Tornado Cash, que anonimiza transações com fundos de mineradores.

PayJoin

Uma variante do CoinJoin, PayJoin (ou P2EP), disfarça a transação entre duas partes (por exemplo, um cliente e um comerciante) como uma transação regular, sem a característica distintiva de outputs iguais do CoinJoin. Isso torna extremamente difícil de detectar e poderia invalidar a heurística comum de propriedade de input usada por entidades de vigilância de transações.

2 btc --> 3 btc
5 btc     4 btc

Transações como a acima poderiam ser PayJoin, aumentando a privacidade enquanto permanecem indistinguíveis das transações padrão de bitcoin.

A utilização do PayJoin poderia perturbar significativamente os métodos tradicionais de vigilância, tornando-se um desenvolvimento promissor na busca pela privacidade transacional.

Melhores Práticas para Privacidade em Criptomoedas

Técnicas de Sincronização de Carteiras

Para manter a privacidade e segurança, sincronizar carteiras com a blockchain é crucial. Dois métodos se destacam:

  • Nó completo: Ao baixar toda a blockchain, um nó completo garante máxima privacidade. Todas as transações já feitas são armazenadas localmente, tornando impossível para adversários identificar quais transações ou endereços o usuário está interessado.
  • Filtragem de bloco do lado do cliente: Este método envolve a criação de filtros para cada bloco na blockchain, permitindo que as carteiras identifiquem transações relevantes sem expor interesses específicos a observadores de rede. Carteiras leves baixam esses filtros, buscando blocos completos apenas quando uma correspondência com os endereços do usuário é encontrada.

Utilizando Tor para Anonimato

Dado que o Bitcoin opera em uma rede peer-to-peer, é recomendado usar o Tor para mascarar seu endereço IP, aumentando a privacidade ao interagir com a rede.

Prevenindo Reutilização de Endereços

Para proteger a privacidade, é vital usar um novo endereço para cada transação. Reutilizar endereços pode comprometer a privacidade ao vincular transações à mesma entidade. Carteiras modernas desencorajam a reutilização de endereços por meio de seu design.

Estratégias para Privacidade de Transações

  • Múltiplas transações: Dividir um pagamento em várias transações pode obscurecer o valor da transação, frustrando ataques à privacidade.
  • Evitar troco: Optar por transações que não exigem troco melhora a privacidade ao interromper métodos de detecção de troco.
  • Múltiplas saídas de troco: Se evitar troco não for viável, gerar múltiplas saídas de troco ainda pode melhorar a privacidade.

Monero: Um Farol de Anonimato

O Monero aborda a necessidade de anonimato absoluto em transações digitais, estabelecendo um alto padrão de privacidade.

Ethereum: Gás e Transações

Compreendendo o Gás

O Gás mede o esforço computacional necessário para executar operações no Ethereum, precificado em gwei. Por exemplo, uma transação custando 2.310.000 gwei (ou 0,00231 ETH) envolve um limite de gás e uma taxa base, com uma gorjeta para incentivar os mineradores. Os usuários podem definir uma taxa máxima para garantir que não paguem a mais, com o excesso sendo reembolsado.

Executando Transações

Transações no Ethereum envolvem um remetente e um destinatário, que podem ser endereços de usuário ou contratos inteligentes. Elas requerem uma taxa e devem ser mineradas. Informações essenciais em uma transação incluem o destinatário, a assinatura do remetente, valor, dados opcionais, limite de gás e taxas. Notavelmente, o endereço do remetente é deduzido da assinatura, eliminando a necessidade dele nos dados da transação.

Essas práticas e mecanismos são fundamentais para qualquer pessoa que deseje se envolver com criptomoedas priorizando privacidade e segurança.

Referências