Sie sind auf Seite 1von 4

Aspectos de Seguranca da Moeda Eletronica Bitcoin

Decio Moritz J
unior 12200622
Outubro 2015

Introdu
c
ao

tral do bitcoin se deve a estrutura denominada transaction blockchain [2].

Em geral define-se Bitcoin como um tipo de moeda


virtual. Possui muitas similaridades com moedas
reais como euro e d
olar, dentre elas se destaca que
atualmente s
ao amplamente aceitas em muitas lojas
fsicas e virtuais e provedores de servicos. Ao passo
que uma das maiores diferencas se deve ao fato de que
n
ao e mantida nem controlada por nenhum governo
ou autoridade banc
aria; e uma moeda completamente
descentralizada. O fato de transac
oes monetarias
com bitcoin n
ao possuir intermedi
ario, como banco,
implica em muito menos taxas [3].
A primeira vez em que se ouviu falar de bitcoin foi
em 2008, quando um pesquisador sob o pseudonimo
Satoshi Nakamoto publicou um documento apresentando o bitcoin, mencionando a crise financeira de
2008 como um fator motivador para a criacao da
moeda, que n
ao estaria sujeita `
a corrupc
ao e incompetencia de governos. Para se passar a usar bitcoin
basta adquirir uma carteira(que e basicamente um
software), que serve para armazenar os bitcoins; juntamente com um par de chaves criptogr
aficas. Inclusive o endereco da carteira, ou n
umero da conta,
fazendo uma analogia `
a uma conta banc
aria tradicional, ser
a um hash da chave p
ublica. Pode-se comprar os bitcoins atraves de convers
oes cambiais, vendas ou atraves de minerac
ao, que ser
a explicado mais
adiante. Este trabalho tratar
a dos aspectos de seguranca relativos `
a moeda eletr
onica bitcoin.

Figure 1: Transaction Blockchain


A blockchain (ver figura1) e basicamente uma
lista encadeada de blocos representando o registro
historico de todas as transacoes feitas na rede, mantendo assim a ordem temporal da transacoes. Cada
bloco e composto por duas partes, como ilustrado na
figura 2.
Header: e o cabecalho do bloco. Os campos interessantes de serem analisados neste trabalho
sao o campo Previous Block Hash que contem
o hash do bloco precendente, sendo que o bloco
inicial e chamado de bloco genesis, funcionando
como um ponteiro para o block anterior, o campo
Version que e um hash do header inteiro e um
campo chamado Nonce que sera explicado adiante.

Vis
ao Geral

Payload: contem as transacoes. Uma transac


ao
em si e um arquivo texto escrito em Bitcoin

Bitcoin e um tipo de moeda denominado cryptocurrency(cripto-moeda, em traduc


ao livre). O pilar cen1

minado endereco serao enviados e as sadas representam quantos bitcoins cada endereco recebera. Note
que a quantidade de bitcoins na entrada deve ser
igual `a quantidade de bitcoins na sada. Importante
destacar tambem que as entradas devem ser valores
validos, isto e, valores que cada endereco recebeu em
transacoes anteriores.
No exemplo mostrado na figura 3 o intuito na verdade era enviar 10 BTC para uma determinada conta,
mas e possvel ver que a soma das entradas e 12 BTC.
Assim foi adicionada uma sada com valor 2 BTC com
o endereco do proprio dono do dinheiro. Essa e a
maneira de representar a ideia de troco, ja que existe
Figure 2: Como e criado um bloco
a restricao da soma das entradas ser igual `a soma das
sadas. Tambem esta ilustrada `a pequena taxa que
devera ser paga ao minerador em cada transacao. Por
fim, e importante notar que os enderecos nas entradas
da transacao devem ser assinados para garantir que
foi realmente o dono quem emitiu aquela transac
ao.
Entao a transacao ja pode ser enviada `a rede.
Em termos simples, seria algo como mandar uma
mensagem dizendo: Eu, Alice, estou enviando 1 bitcoin `
a Bob. Neste ponto, para a transacao se concretizar ela deve ser dada como legtima pela rede
para so entao ser adicionada `a blockchain. Uma vez
Figure 3: Processo de criac
ao da transacao
que for adicionada `a blockchain dizemos(de modo impreciso) que a transacao foi completada.
Cada nodo da rede possui sua propria copia da
scripting, uma linguagem pr
opria do protocolo.
Transacoes s
ao a maneira de transferir bitcoins blockchain, e assim que se pode determinar se uma
transacao e valida. Para efetuar a validacao alguem,
de um nodo a outro da rede.
que e denominado minerador, recebe a transac
ao de
Bitcoin usa criptografia de Curvas Elpticas, pro- um peer, verifica:
porcionando assinaturas menores, o que e importante
a validade das assinaturas
para ter uma blockchain de tamanho menor. A chave
privada possui 32 bytes e a chave p
ublica e calcu se a soma das sadas e menor ou igual `a soma
lada a partir da privada [1]. Um endereco Bitcoin
das entradas
e calculado a partir da chave publica utilizando a
infunc
ao: RPEMD-160(Sha256(chave publica)). E
se os bitcoins nas entradas ainda nao foram gasteressante notar que ninguem sabe quem e o dono
tos
de cada endereco, sendo possvel uma mesma pessoa
possuir quantos enderecos desejar.
E retransmite a transacao `a outros peers. Caso
Dada a explicac
ao do par
agrafo anterior, uma essas condicoes sejam verificadas com sucesso, o peer
transac
ao e formada de entradas e sadas, como pode adiciona-la a um bloco.
mostrado na figura 3 e e o que permite trocar valRepare que o processo de criacao do bloco n
ao
ores(quantidades de bitcoins) entre enderecos. As poderia ser assim simples, pois se assim fosse alguem
entradas especificam quantos bitcoins de um deter- poderia falsificar peers para verificar sua pr
opria
2

transac
ao. Um dos grandes desafios de seguranca do
Bitcoin e evitar o ataque chamado Double Spending,
que consiste em gastar o mesmo bitcoin duas vezes.
Uma possvel forma de fazer isso e o atacante possuir
mais de uma identidade na rede e usar seus clones
para atestar a legitimidade da transac
ao.
Para que um nodo consiga enviar um bloco `a rede
e este seja aceito pelos demais, isto e, que estes o
adicionem `
as suas blockchains, ele deve prover juntamente a chamada Proof-of-Work. A POW e basicamente um problema(um quebra cabeca) que demanda um alto esforco computacional para ser resolvida, ou seja, e necess
ario ter um alto poder
computacional para conseguir escrever um bloco na
blockchain.
No caso do Bitcoin, o quebra cabeca utiliza a
func
ao SHA-256 [4], que e uma func
ao de hash criptogr
afico segura que e one-way, isto e, a partir da
sada n
ao se consegue encontrar a entrada. Recebe
uma entrada de tamanho qualquer e produz uma
sada de 32 bytes. O interessante e que a mudanca de
apenas 1 bit na entrada muda radicalmente a sada,
de forma que as diferencas s
ao distribudas randomicamente na sada.
O quebra cabeca que um nodo precisa resolver e
encontrar um Nounce, que e um campo do header do
bloco tal que o header quando aplicado na funcao de
hash SHA-256 possua uma determinada quantidade
de zeros na frente [4]. A dificuldade da POW pode
ser alterada pela rede de forma que um bloco seja
criado `
a cada 10 minutos, aproximadamente.
Agora para que o protocolo Bitcoin funcione, isto
e, para que os nodos com poder computacional suficiente para validar os blocos continuem validando as
transac
oes dos outros peers, e necess
ario um esquema
claro que sem incentivo, nao havede recompensa. E
ria raz
ao nenhuma para gastar recursos validando
as transac
oes dos outros peers. No caso do Bitcoin,
cada vez que um nodo consegue validar um bloco de
transac
oes, recebe uma determinada quantidade de
bitcoins. Esse processo de validac
ao e chamado de
minerac
ao.
Principais desafios de seguranca:

Figure 4: Fork
Um dos maiores problemas de seguranca do Bitcoin; consiste em um bitcoin ser gasto mais de uma
vez, e e possvel quando nao e muito claro a ordem com que as transacoes ocorreram. Supondo
por exemplo que dois nodos conseguiram validar um
bloco praticamente ao mesmo tempo e os enviam `
a
rede. Neste cenario, alguns nodos atualizam seus
blockchains com um bloco e outros usam o outro
bloco. Temos aqui um fork da blockchain(ver figura
4). Neste caso nao se sabe mais em qual ordem as
transacoes foram feitas. O protocolo diz que neste
caso e necessario que todos acompanhem os dois
ramos, entao a blockchain que todos terao e similar `
a
da figura 4. Alem disso os mineradores devem trabalhar somente no ramo mais longo. Entao supondo que
rapidamente um bloco seja adicionado em um ramo,
aquele ramo passa a ser mais longo e todos vao passar
a minerar somente aquele ramo.
Na verdade, uma transacao so e realmente considerada validada quando:
faz parte do ramo mais longo
e precedida por pelo menos 5 blocos
Entao, dentro do cenario anterior vamos supor
que os blocos que acarretaram no fork continham
transacoes de Alice que tentava gastar o mesmo
bitcoin mais de uma vez. Seguindo a regra da rede,
um dos ramos seria abandonado(a transacao neste
ramo seria rejeitada) e somente uma transacao seria
validada.
Ataque >50%
Mais uma vez, dentro do cenario anterior, supondo
que Alice tente minerar o ramo menor para manter
ambos com mesmo tamanho, de forma a validar

Double spending

ambas as transac
oes, ela teria que possuir mais Refer
encias e Bibliografia
que 50% do poder computacional da rede inteira.
Apesar de possvel, e uma probabilidade muito [1] GOTOConferences how the bitcoin protocol
actually
works
by
jan
mller.
pequena. Atualmente este problema e considerado
https://www.youtube.com/watch?v=GiU4b7ldKMs.
plausvel de se ocorrer devido aos mining pools que
Accessed: 2015-10-27.
s
ao aglomerados de nodos e podem possuir 25-33%
do poder computacional da rede [5].
[2] HONGKIAT technlogy design inspiration.
http://www.hongkiat.com/blog/bitcoinAtaques `
as carteiras
security/. Accessed: 2015-10-27.
Segundo [5], carteiras armazenadas em servicos [3] HSW
how
stuff
works.
online est
ao sujeitas `
a ataques do tipo DDoS,
http://money.howstuffworks.com/bitcoin.htm.
podendo acarretar perdas financeiras e tambem
Accessed: 2015-10-27.
backup/hist
orico armazenado pode ligar o endereco
[4] Michael Nielsen how the bitcoin protocol actually
da carteira `
a identidade do dono.
works. http://www.michaelnielsen.org/ddi/howthe-bitcoin-protocol-actually-works/. Accessed:
Minerac
ao egosta
2015-10-27.
Consiste em um grupo de mineradores mal- [5] Chinmay A. Vyas and Munindra Lunagaria. Arintencionados trabalharem em uma vers
ao bifurcada
ticle: Security concerns and issues for bitcoin.
e privada da blockchain, fazendo com que os honIJCA Proceedings on National Conference cum
estos trabalhem em blocos que n
ao far
ao parte da
Workshop on Bioinformatics and Computational
blockchain. Quando a blackchain secreta for diBiology, NCWBCB(2):1012, May 2014. Full text
vulgada, os honestos passar
ao a trabalhar nessa nova
available.
blockchain, por possuir um ramo mais longo [5]. Enquanto isso os mineradores mal-intencionados novamente bifurcam a blockchain em segredo e continuam
esse processo.

Proposta
Pr
atico

de

Trabalho

Como trabalho pr
atico ser
a:
criada uma carteira de bitcoins, armazenada somente na m
aquina local.
ser
ao adquiridos bitcoins a partir de sites que
oferecem bitcoins em troca de visualizacao de
publicidade
ser
a feita tentativa de minerac
ao de bitcoins
ser
ao feitas transac
oes entre duas carteiras criadas especialmente para este prop
osito
4

Das könnte Ihnen auch gefallen