Beruflich Dokumente
Kultur Dokumente
Decio Moritz J
unior 12200622
Outubro 2015
Introdu
c
ao
Vis
ao Geral
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