Upload
rafael-sarres-de-almeida
View
30
Download
0
Embed Size (px)
Citation preview
O MAIOR FESTIVAL HACKER DA AMÉRICA
LATINA
A Segurança do Bitcoin
Como o blockchain funciona e uma revisão dos aspectos de segurança
Rafael Sarres de AlmeidaAviso: As opiniões contidas nesta apresentação refletem
exclusivamente as opiniões pessoais do autor
“PERSONAL COMPUTERS IN 1975, THE INTERNET IN 1993, AND – I BELIEVE – BITCOIN IN 2014”
01/05/2023 3
Marc Andreessen, Founder of Netscape
Bitcoin
01/05/2023 4
2008 2009 2010 2011 2012 2013 2014 2015 2016
2008: A Peer-to-Peer Electronic Cash System, Satoshi Nakamoto
Bitcoin v0.1 - Genesis block
Primeira transação
Bitcoin Market
10.000 BTC pizzas
Silk Road
1BTC=1USD
1BTC=1200USD
Mt. Gox=70% volume de BTC
Mt. Gox encerra atividades
Bitcoin Foundation
Silk Road é fechado
1BTC=7XXUSD
01/05/2023 5
Bitcoin• Primeiro instrumento de propriedade
digital ao portador• Criptografia e hash de forma inovadora• Anos de resiliência• USD 11 bilhões em “custódia”
• Protocolo fundamental: Blockchain
A GENIALIDADE DA SIMPLICIDADE
01/05/2023 6
01/05/2023 7
Agentes e tecnologias
Usuários Mineradores Ativos Prova de trabalho
Regras de Validação
Rede P2P
Prova de trabalho no Bitcoin: Calcular o hash de seu bloco menor que um alvo definido no algoritmoNa prática: hashpower ~= probabilidade de se encontrar um bloco válido
01/05/2023 8
O que?
IN transactions exists and UTXO ?SUM(in) > SUM(out) ? PublicKey(transaction hash) = PrivateKey(transaction hash) ?
01/05/2023 9
Como?
01/05/2023 10
Como?Memory pool
01/05/2023 11
Como?Memory pool
01/05/2023 12
Resultado!• Não há como transferir ativos sem a chave privada• Natureza descentralizada e estatística da prova de trabalho
torna difícil censurar transações• Número de blocos subsequentes = confirmações
Tempo
01/05/2023 13
Em detalhes
01/05/2023 14
Resultado!
01/05/2023 15
E se....Cadeia com maior esforço é a única válidaTransações em blocos órfãos retornam ao mempool
Tempo
01/05/2023 16
Quem?
01/05/2023 17
Por que?
Coinbase transaction: 12,5 Bitcoins criados atualmenteCai pela metade a cada 210.000 blocos (~4 anos)SUM(in) - SUM(out): Transaction fee
ATAQUES E INSTABILIDADES NO PROTOCOLO
01/05/2023 18
01/05/2023 19
Anônimo??
• Chaves geradas localmente• Uso de rede TOR na comunicações• Bitcoins minerados• Endereços descartáveis
01/05/2023 20
Follow the money
• Informações off-chain de serviços• E-mail, endereço, cartões de crédito
• Transações com apenas duas saídas• Análise dos horários de transações• Participação na rede• Operação de uma plataforma de mixing
01/05/2023 21
Follow the money
Fonte: An Analysis of Anonymity in the Bitcoin System, Fergal Reid, Martin Harrigan
01/05/2023 22
Sybil attack• Pseudônimos para subverter um sistema de reputação• Prova de trabalho reduz a superfície de ataque• Ainda há possibilidade de “eclipse”
Fonte: Eclipse Attacks on Bitcoin’s Peer-to-Peer Network, Ethan Heilman, Alison Kendler, Aviv Zohar, Sharon Goldberg
01/05/2023 23
Selfish Mining
Tempo
Público
Privado
Melhor caso para o atacante
Fonte: Majority is not Enough: Bitcoin Mining is Vulnerable, Ittay Eyal and Emin Gun Sirer
01/05/2023 24
Selfish Mining
Tempo
Público
Privado
Pior caso para o atacante
Minerador deve usar o bloco que recebeu primeiro
Sybil attack para influenciar na escolha
01/05/2023 25
O ataque dos 51%
• Maioria da rede em conluio• Capaz de criar a cadeia mais longa
• Preocupação com mining pools
01/05/2023 26
O ataque dos 51%
Tempo
Memory pool
01/05/2023 27
Confirmações X Hashpower
Fonte: Bitcoin’s Security Model Revisited, Yonatan Sompolinsky1 and Aviv Zohar
01/05/2023 28
Fonte: Blockchain.info – 14/11/2016
01/05/2023 29
Com 51% do hash power...
• O atacante poderia:• Censurar transações• Desfazer suas transações recentes
• O atacante não poderia:• Desfazer transações antigas ou de terceiros• Roubar bitcoins alheios• Alterar qualquer regra do protocolo
01/05/2023 30
O bom e velho integer overflow
01/05/2023 31
O bom e velho integer overflow
• Agosto 2010, bloco 74638• "out" : [
{ "value" : 92233720368.54277039, "scriptPubKey" : (...) }, { "value" : 92233720368.54277039, "scriptPubKey" : (...) } ]
• SUM(out)<SUM(in) = TRUE!
01/05/2023 32
O bom e velho integer overflow
• Patch: 5 horas: hash power war!• Bloco 74691: Patch wins! 53 KIA!
01/05/2023 33
Chaves privadas
• Um problema do usuário?• Talvez, mas afeta o ecossistema
• Chaves no lixo• Chaves roubadas• Chaves descobertas
01/05/2023 34
Chaves descobertas???
• Brain wallets• Passphases -> Public + Private keys
• Blockchain=public passphase hash DB• NO SALT!
• Brain wallets drain• Algumas em minutos
01/05/2023 35
Chaves descobertas???
• ESDSA: randômico em cada assinatura
• Análise do blockchain • Algum Bitcoin hardware wallet:
01/05/2023 36
Maleabilidade das transações
• Transações são identificadas com hashes• Assinaturas malformadas era aceitas
• Hashes diferentes, mesmo resultado• Ataque
• Solicita saque em exchange• monitora a rede, acha transação não-confirmada• Cria transação diferente com mesmo resultado• Cria incentivo à rápida validação (+Fee!)• Transação maliciosa confirmada, Original=double-spend• Realiza o saque novamente após reclamação
01/05/2023 37
Na falta de recompensa
Tempo
Fee:120BTC
Fee:150BTC
Memory pool
Fee:150BTC
Fee:10BTC
Fee:10BTC
Comportamento honesto
Fonte: On the Instability of Bitcoin Without the Block Reward, Arvind Narayanan, Miles Carlsten, Harry Kalodner, S. Matthew Weinberg
01/05/2023 38
Na falta de recompensa
Tempo
Fee:120BTC
Fee:60BTC
Memory pool 2
Fee:150BTC
Fee:100BTC
Comportamento desonestoFee:10BTC
Memory pool 1
Fee:60BTCQual é a cadeia mais lucrativa para o próximo minerador?
Obrigado!mscrafaelsarres.wordpress.com