O documento discute a segurança do Bitcoin e do blockchain. Ele explica como o blockchain funciona através da prova de trabalho descentralizada e como isso torna difícil censurar transações. No entanto, o documento também reconhece vulnerabilidades como ataques de 51% e problemas com chaves privadas que podem comprometer a segurança do sistema.
2. A Segurança do Bitcoin
Como o blockchain funciona e uma
revisão dos aspectos de segurança
Rafael Sarres de Almeida
Aviso: As opiniões contidas nesta apresentação refletem
exclusivamente as opiniões pessoais do autor
3. “PERSONAL COMPUTERS IN 1975, THE
INTERNET IN 1993, AND – I BELIEVE –
BITCOIN IN 2014”
04/01/2017 3
Marc Andreessen, Founder of Netscape
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
04/01/2017 5
7. Agentes e tecnologias
04/01/2017 7
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 algoritmo
Na prática: hashpower ~= probabilidade de se encontrar um bloco válido
8. O que?
04/01/2017 8
IN transactions exists and UTXO ?
SUM(in) > SUM(out) ?
PublicKey(transaction hash) = PrivateKey(transaction hash) ?
12. Resultado!
04/01/2017 12
• 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
17. Por que?
04/01/2017 17
Coinbase transaction: 12,5 Bitcoins criados atualmente
Cai pela metade a cada 210.000 blocos (~4 anos)
SUM(in) - SUM(out): Transaction fee
19. Anônimo??
04/01/2017 19
• Chaves geradas localmente
• Uso de rede TOR na comunicações
• Bitcoins minerados
• Endereços descartáveis
20. Follow the money
04/01/2017 20
• 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
21. Follow the money
04/01/2017 21
Fonte: An Analysis of Anonymity in the Bitcoin System, Fergal Reid, Martin Harrigan
22. Sybil attack
04/01/2017 22
• 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
29. Com 51% do hash power...
04/01/2017 29
• 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
36. Maleabilidade das transações
04/01/2017 36
• 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
37. Na falta de recompensa
04/01/2017 37
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
38. Na falta de recompensa
04/01/2017 38
Tempo
Fee:120BTC
Fee:60BTC
Memory pool 2
Fee:150BTC
Fee:100BTC
Comportamento desonesto
Fee:10BTC
Memory pool 1
Fee:60BTC
Qual é a
cadeia mais
lucrativa para
o próximo
minerador?
Sybil: Um livro baseado no pseudônimo de uma pessoa com desordem de múltipla personalidade. Trata-se da criação de pseudônimos para influenciar em um sistema de reputação
O atacante parece estar em desvantagem, mas há técnicas para tentar aumentar a chance de seu bloco ser usado como criar de forma barata vários mineradores que não mineram, mas apenas recebem a informação de um novo bloco e propagam seu bloco