Você está na página 1de 18

Análise ao Funcionamento do Bitcoin

do Ponto de Vista Criptográfico


Introdução

Apresentada em 2008 na lista de discussão The Cryptography


Mailing por um programador, ou um grupo, de pseudônimo Satoshi
Nakamoto.
O que é?
 Bitcoin é uma nova moeda digital experimental que permite
pagamento instantâneo para qualquer pessoa, em qualquer lugar
do mundo.
 Bitcoin usa tecnologia peer-to-peer (P2P) para operar sem
autoridade central, a gerência de transações e a emissão de
dinheiro é executada coletivamente pela rede.
O que permite?

 Realização das funções dos bancos tradicionais da internet.


 Eliminação da dependência de uma entidade central ou banco
central. Eliminação/redução de taxas pagas pelas transações.
 Transações seguras.
 Proteção ao duplo gasto (double-spending).
 Privacidade.
DEFINIÇÕES DE CRIPTOGRAFIA

 A criptografia está por toda a parte atualmente, desde senhas picadas


(hashed) até o correio criptografado, das redes privadas virtuais
(VPNs) com Internet Protocol Security (IPsec) até mesmo aos
sistemas de arquivos criptografados.
 A segurança é o motivo para as pessoas optarem pelos dados
criptografados, pois os seus dados permaneçam protegidos.
 Com a evolução da tecnologia e com o advento da economia e da
demanda populacional novos meios de transitar dados são criados a
cada dia.
BITCOIN E SUAS TECNOLOGIAS

 A principal vantagem do protocolo Bitcoin é a eliminação do


intermediário centralizador, criando um sistema onde a confiança
“cega” não é necessária.
 Bitcoin depende quase que exclusivamente de processos matemáticos.
 Sua presença na economia mundial é cada vez maior, já sendo aceita
por mais de 100.000 empresas ao redor do mundo.
 Com a crescente popularidade, a segurança da rede Bitcoin, incluindo
aspectos internos (protocolo Bitcoin) e externos (serviços de wallet e
Exchange), detém destaque superficial.
 Portanto, é de grande relevância analisar sua segurança, cabendo
abordar:
 O contexto tecnológico ao qual o Bitcoin se insere;
 Identificando os conceitos básicos da criptomoeda;
 O valor monetário e a aceitação como bem de troca;
 Aspectos gerais de segurança financeira e aspectos gerais de
segurança tecnológica;
FUNÇÕES HASH CRIPTOGRÁFICAS

 Este tipo de função é usado como bloco fundamental em muitas


aplicações criptográficas;
 Chamamos de funções hash criptográficas, todas as funções hash que
atendem aos seguintes requisitos:
 Deve resistir a todo tipo de ataque cripto-analítico conhecido;
 Deve ter resistência à colisão - ou seja, a geração de um mesmo
digest para a inputs diferentes;
 Deve ser impraticável;
 Deve ser computacionalmente eficiente, agir como uma função
matemática trap-door (em níveis);
 As duas funções hash utilizadas no Bitcoin são:
A SHA-256 (Secure Hash Algorithm) que retorna digests de 256 bits.
RIPEMD-160 (RACE Integrity Primitives Evaluation Message Digest)
que retorna digests de 160 bits.

>>> import hashlib


>>> word = "bitcoin"
>>> word_sha256 = hashlib.sha256(word.encode('utf-8'))
>>> print(word_sha256.hexdigest())
6b88c087247aa2f07ee1c5956b8e1a9f4c7f892a70e324f1bb3d161e05ca107b

>>> word_ripemd160 = hashlib.new('ripemd160')


>>> word_ripemd160.update(word.encode('utf-8'))
>>> print(word_ripemd160.hexdigest())
5891bf40b0b0e8e19f524bdc2e842d012264624b

# hashes completamente diferentes são formados com pequenas #alterações no input


>>> word2 = "bitcoin2"

Exemplo 1 - Funções sendo usadas em Python com a string "bitcoin" como input e print do digest no formato mais comum em hexadecimal
Mineração

O que é?
 A mineração é o processo responsável por atualizar a
blockchain, até atingir o limite de cerca de 21 milhões
satoshis.

Propósito da Mineração/Segurança
 Outro propósito da mineração está em um dos incentivos
oferecido aos mineradores como recompensa pelo esforço
computacional gasto na segurança da blockchain contra alterações
maliciosas.
 Os mineradores, ao realizar o processamento do software Bitcoin,
buscam encontrar uma sequência de dados.
 Esta sequência de dados deve solucionar a seguinte situação:
(nonce) + (hash do bloco anterior da cadeia do blockchain) + (hash do bloco a ser processado) = (hash final específico, que
inicie com 12 zeros)

 Todo minerador que escreve um novo bloco na blockchain ganha o


direito de criar uma transação chamada ´coinbase´.
 O número total de bitcoins que serão criados na rede é
aproximadamente 21 milhões de bitcoins; precisamente
2099999997690000 satoshis.
 Pode-se visualizar este crescimento com um pequeno script em
Python3: #!/usr/bin/env python3
# Ano em que a rede foi iniciada por Satoshi Nakamoto
START_YEAR = 2009
# Intervalo de anos com blocos de 10 minutos
YEAR_INTERVAL = 4
# A recompensa inical de 50 bitcoins em satoshis
START_BLOCK_REWARD = 50 * 10**8
# Intervalo de blocos entre o halving da recompensa
REWARD_INTERVAL = 210 * 10**3
def show_mine_progress():
curr_year = START_YEAR
curr_reward = START_BLOCK_REWARD
total_coins = 0
while curr_reward > 0:
print("Ano: %d, Recompensa atual: %d, Moedas em circulação: %d satoshis" %
(curr_year, curr_reward, total_coins))
# O número de moedas é somado com todas as recompensas de 210000 blocos
# gerados em 4 anos
total_coins += curr_reward * REWARD_INTERVAL
curr_year += YEAR_INTERVAL
# empurra os bits para a direita uma vez, efetivamente dividindo
# a recompensa pela metade.
# Ex.: 4 em binário (100) com os bits empurrados para a
# direita será 2 (010)
curr_reward >>= 1
print("\nTotal de moedas em circulação: %d satoshis" % total_coins)

O output desta função será ( a baixo, alguns anos):


>>> show_mine_progress()
Ano: 2009, Recompensa atual: 5000000000, Moedas em circulação: 0 satoshis
Ano: 2013, Recompensa atual: 2500000000, Moedas em circulação: 1050000000000000 satoshis
Ano: 2017, Recompensa atual: 1250000000, Moedas em circulação: 1575000000000000 satoshis
ASPETOS SOBRE A SEGURANÇA E TECNOLOGIA

 Em relação à segurança sob a ótica tecnológica temos dois


aspectos a tratar; a segurança interna, isto é, do protocolo por trás
do Bitcoin e a segurança externa, isto é, dos serviços associados
que prestam a manipulação (transações), guarda e troca da
moeda.
 Por tal, temos todos os riscos associados sendo o usuário sujeito
a toda sorte de inconveniências, tais como:
 Ataques de negação de serviço (DoS),
 Roubo de informações,
 Propagação de malwares,
 Vírus
PROCESSOS DE TRANSFERÊNCIA DE BITCOINS – P2P
 Uma transferência nada mais é do que a passagem da titularidade
da moeda entre um endereço e outro.
 Antes mesmo de efetuar qualquer transferência, o usuário terá que
se preparar, pois, obrigatoriamente, deve-se utilizar uma carteira.

Figura 1 – Diagrama de funcionamento o Bitcoin e sua transferência.


 Percebe-se que o processo de transação tem como entrada o hash da
transação anterior e a chave pública do próximo dono.
 À medida que os nós da rede recebemos a mensagem criptografada,
verificam sua validade abrindo a mensagem com a chave pública do
antigo dono e, também por broadcast, mandam mensagens
confirmando a transferência.

FIGURA 2 – TRANSFERÊNCIA DE BITCOINS


ASSOCIADOS DE SERVIÇOS
Bitcoins e seus endereços
 O endereço Bitcoin corresponde a um identificador único composto
por letras e números case sensitive, começando com o dígito 1 ou 3.
 Cada endereço é criado através de um algoritmo que associa a um
par de chaves criptográficas, pública e privada, utilizando o
algoritmo ECDSA (Elliptc curve DAS).
Wallets
 Suas principais funcionalidades consistem em:
Envio e recebimentos de Bitcoins;
Geração de endereços;
Gerenciar saldos e proteger as chaves dos usuários por meios de
senhas e criptografia dos dados.
 Existem, atualmente, diversos tipos de carteira, das quais podem ser
classificadas em:
 web wallets;
 software wallets e paper wallets.
 Os softwares wallets são programas que podem ser instalados nos
dispositivos do usuário capazes de se conectar diretamente à rede
Bitcoin, sincronizando a blockchain localmente, e permitem a
manipulação da moeda.

Figura 3 - Inicialização do Software Bitcoin Core


 As webs wallets são sites web que disponibilizam o mesmo serviço
que o software wallet.
 Sua principal vantagem é o fornecimento de segurança e
gerenciamento para as chaves privadas dos usuários e
desnecessidade de ter que sincronizar como a blockchain.

Figura 4 – Exemplo de software wallet


CONCLUSÃO

 Várias são as possibilidades oferecidas pela rede, algumas muito


boas e libertadoras, tais como o uso Bitcoin. Todavia, conforme em
vista de tudo que foi explanado até aqui, fica bem claro que a
tecnologia de segurança em redes é algo mais do que necessário,
para não dizer que é imprescindível, ou até mesmo compulsório.
 Neste contexto, as técnicas de criptografia são uma boa aliada na
batalha entre usuário comum, que trafega na rede ao realizar as suas
obrigações e os seus afazeres diários, versus o usuário que usurpa
informações ao seu favor.