panorama geral Bitcoin e outras criptomoedastomasz/seminarios_2018s1/popov_1.pdf · Bitcoin,...
Transcript of panorama geral Bitcoin e outras criptomoedastomasz/seminarios_2018s1/popov_1.pdf · Bitcoin,...
Bitcoin e outras criptomoedas: panorama geral
Serguei Popov
IMECC - Unicamp
Agendatópicos abordados durante a palestra
HistóriaComo surgiu e por que usar blockchain em dinheiro virtual
BlockchainPrincipais características, processo de mineração
ProblemasEscalabilidade, custo energético de mineração, taxas de transações
Proof of StakeUma alternativa ao consenso original do Bitcoin
Panorama geralPrincipais altcoins e desafios
História
O começo
“A raiz do problema com a moeda tradicional é que ela precisa de muita confiança em outros para funcionar. “
- Satoshi Nakamoto
Satoshi Nakamoto: Nasce o BitcoinWhitepaper em Out/2008
Dinheiro Eletrônicoequivale à moeda
tradicional
Escassocom emissão finita
e conhecida
Rede P2Ptransferências
globais rápidas
Armazenávelpode ser guardado com segurança
Recompensa ao Esforçocria uma comunidade de auditores (mineradores)
★ Os generais cercam uma cidade com suas tropas;
★ Generais são separados pelo relevo e só podem se comunicar através de mensageiros;
★ Todos os generais devem chegar a um consenso sobre atacar ou recuar;
★ Existem generais que são traidores;
★ Os generais só vencem se todos os generais atacarem ao mesmo tempo.
Um dos problemas que o bitcoin resolveu
★ Os generais cercam uma cidade com suas tropas;
★ Generais são separados pelo relevo e só podem se comunicar através de mensageiros;
★ Todos os generais devem chegar a um consenso sobre atacar ou recuar;
★ Existem generais que são traidores;
★ Os generais só vencem se todos os generais atacarem ao mesmo tempo.
Um dos problemas que o bitcoin resolveu
O problema dos generais Bizantinos
Linha do tempoO Bitcoin foi apresentado no grupo de discussão The Cryptography Mailing por um programador, ou um grupo, de pseudônimo Satoshi Nakamoto;
Em 22/Maio, Laszlo Hanyecz fez a primeira compra online com Bitcoin, comprou uma pizza por 10 mil moedas. Até hoje, essa data é lembrada como o Bitcoin Pizza Day;
O valor do Bitcoin igualou-se ao valor do dólar;
A fundação Bitcoin é criada. A organização se torna o lar semi-oficial da criptomoeda;
2008
2010
2011
2012
Linha do tempoO Bitcoin foi apresentado no grupo de discussão The Cryptography Mailing por um programador, ou um grupo, de pseudônimo Satoshi Nakamoto;
Em 22/Maio, Laszlo Hanyecz fez a primeira compra online com Bitcoin, comprou uma pizza por 10 mil moedas. Até hoje, essa data é lembrada como o Bitcoin Pizza Day;
O valor do Bitcoin igualou-se ao valor do dólar;
A fundação Bitcoin é criada. A organização se torna o lar semi-oficial da criptomoeda;
Valor atualizado da pizza: 70 milhões de dólares.
2008
2010
2011
2012
Linha do tempoUm grande número de empresas concordam em aceitar o pagamento com Bitcoins. Um grande número de novas criptomoedas são criadas;
A Microsoft lança uma plataforma blockchain baseada em computação em nuvem;
O Bitcoin passou a valer mais que todo real em circulação no Brasil ( ≈ R$219 bilhões);
O G20 discute a regulação do Bitcoin e outras criptomoedas.
2014
2015
2017
2018
Blockchain
O Gasto duplo acontece quando um mesmo valor é utilizado mais de uma vez em diferentes transações em um sistema de dinheiro virtual.
Por exemplo, se Alice transfere X$ para Bob, mas não informa a nenhum outro usuário do sistema sobre essa transação. Alice, pode criar outra transação com o mesmo X$ para outro usuário Charlie. Isso faz com que ambos os usuários possuam o mesmo valor X$, ou seja, Alice realizou um gasto duplo.
Um dos problemas do dinheiro virtual: o gasto duplo
Alice
Bob
Charlie
Um dos problemas do dinheiro virtual: o gasto duplo
Soluções para o gasto duplo
Com um sistema centralizado? A prevenção do gasto duplo pode ser realizada pela presença de uma entidade de autoridade máxima, que segue determinadas regras para autorizar as transações realizadas no sistema, por exemplo, Visa, Mastercard, Paypal .
Com um sistema descentralizado? Podemos utilizar um protocolo distribuído específico para lidar com as tentativas de gasto duplo, por exemplo, blockchain, grafos acíclicos dirigidos, etc .
Bloco N+3
Bloco N+2
Blockchain
A blockchain é uma espécie de livro contábil que registra todas as transações do sistema e possui esses registros espalhados por vários computadores. Um conjunto de transações é colocado dentro de cada um desses blocos de forma pública, ou seja, qualquer pessoa pode verificar e auditar as movimentações registradas na blockchain.
...Bloco N
...Bloco N+1
Bloco N+3
Bloco N+2
Blockchain
A blockchain é uma espécie de livro contábil que registra todas as transações do sistema e possui esses registros espalhados por vários computadores. Um conjunto de transações é colocado dentro de cada um desses blocos de forma pública, ou seja, qualquer pessoa pode verificar e auditar as movimentações registradas na blockchain.
...Bloco N
...Bloco N+1
Todas transações que ocorrem na blockchain são reunidas em blocos. Um novo bloco é anexado usando o hash do bloco anterior para criar seu próprio hash. Os responsáveis por montar a blockchain são os mineradores. Quando os mineradores obtém êxito, uma recompensa é gerada .
Blockchain
Transação
Transação
Transação
Transação
Hash anterior
Bloco 27
Nonce
Bloco
Hash
Todas transações que ocorrem na blockchain são reunidas em blocos. Um novo bloco é anexado usando o hash do bloco anterior para criar seu próprio hash. Os responsáveis por montar a blockchain são os mineradores. Quando os mineradores obtém êxito, uma recompensa é gerada .
Blockchain
Transação
Transação
Transação
Transação
Hash anterior
Bloco 27
Nonce
Bloco
Hash
Transação
Transação
Transação
Transação
Hash anterior
Bloco 28
Nonce
Bloco
Hash
Transação
Transação
Transação
Transação
Hash anterior
Bloco 29
Nonce
Bloco
Hash
Em resumo...
Pagadores iniciam um pagamento de Bitcoin através de uma carteira.
1
Em resumo...
Pagadores iniciam um pagamento de Bitcoin através de uma carteira.
1
Esta e outras transações pendentes são transmitidas na rede Bitcoin.
2
Em resumo...
Pagadores iniciam um pagamento de Bitcoin através de uma carteira.
1
Esta e outras transações pendentes são transmitidas na rede Bitcoin.
2
...Transaçãoeli280184...
A cada 10 min, mineradores coletam algumas centenas de transações e as combinam em um bloco.
3
Em resumo...
Pagadores iniciam um pagamento de Bitcoin através de uma carteira.
1
Esta e outras transações pendentes são transmitidas na rede Bitcoin.
2
...Transaçãoeli280184...
A cada 10 min, mineradores coletam algumas centenas de transações e as combinam em um bloco.
3
?
Mineradores processam o bloco, chegando a em um consenso sobre como a nova blockchain deve se parecer.
4
Em resumo...
Pagadores iniciam um pagamento de Bitcoin através de uma carteira.
1
Esta e outras transações pendentes são transmitidas na rede Bitcoin.
2
...Transaçãoeli280184...
A cada 10 min, mineradores coletam algumas centenas de transações e as combinam em um bloco.
3
?
Mineradores processam o bloco, chegando a em um consenso sobre como a nova blockchain deve se parecer.
4
Os mineradores são recompensados com Bitcoins recém- criados por fornecerem grandes quantidades de poder de computação.
5
O beneficiário pode usar sua carteira de Bitcoin para verificar se o pagamento chegou.
7
Em resumo...
Pagadores iniciam um pagamento de Bitcoin através de uma carteira.
1
Esta e outras transações pendentes são transmitidas na rede Bitcoin.
2
...Transaçãoeli280184...
A cada 10 min, mineradores coletam algumas centenas de transações e as combinam em um bloco.
3
?
Mineradores processam o bloco, chegando a em um consenso sobre como a nova blockchain deve se parecer.
4
Os mineradores são recompensados com Bitcoins recém- criados por fornecerem grandes quantidades de poder de computação.
5
Mineradores disseminam a nova blockchain por toda a rede, registrando as transações do último bloco.
#...763SPO...
...27P3L1...
6
Na rede Bitcoin existem pelo menos 4 tipos de nós:
Dicotomia entre usuários da rede Bitcoin
full node, possui uma cópia completa da blockchain e é capaz de verificar todas as transações desde o início;
super node, funciona como um ponto de redistribuição altamente conectado (uma estação de retransmissão), um full node com maior poder de computação;
mineradores, criadores de blocos na blockchain;
light wallets, não validam nenhuma transação.
Um não full node é executado em uma cópia “leve” da blockchain onde cada bloco contém apenas a Merkle Root. Com o uso da Merkle Root podemos verificar a blockchain apenas com o cabeçalho do bloco. A Merkle Root é um valor único que comprova a integridade de todas as transações sob ela.
Dicotomia entre usuários da rede Bitcoin
Bloco 28Nonce
Bloco
Hash Hash anterior
Bloco 29Nonce
Bloco
Hash
Merkle Root
Hash anterior
Bloco 27
Nonce
Bloco
Hash
Merkle Root Merkle Root
Hash anterior
Tamanho da blockchain
Crescimento últimos 12 meses: 53.3 GB
Crescimento últimos 30 dias: 5.1 GB
Blockchain - Proof of Work
Proof of Work (PoW), é o algoritmo de consenso da rede Bitcoin. O PoW opera com base no princípio de que é caro adicionar um bloco de novas transações a blockchain.
O PoW é essencialmente o processo de mineração da rede Bitcoin.
PoW/Hashing
Transação
Transação
Transação
Transação
Hash anterior
Bloco
SHA256=Hash das
transações
Tempo de criação do
bloco
Hash anterior
Nonce
Bloco
Hash
PoW/Hashing
Transação
Transação
Transação
Transação
Hash anterior
Bloco
SHA256=Hash das
transações
Tempo de criação do
bloco Nonce
Hash anterior
Nonce
Bloco
Hash
PoW/Hashing
Transação
Transação
Transação
Transação
Hash anterior
Bloco
SHA256=
Nonce é um número aleatório arbitrário de 32 bits que é usado
uma única vez.
Hash das transações
Tempo de criação do
bloco Nonce
Hash anterior
Nonce
Bloco
Hash
Hashing (Mineração)
O hash deve ser calculado usando 3 valores conhecidos dentro do bloco:
Esses 3 valores são fixos, logo o hash sempre produzirá o mesmo resultado (provavelmente incorreto). Para poder alterar o resultado do hash o nonce é adicionado. Ao randomizar continuamente este nonce, o nó pode encontrar o hash correto que se encaixa na dificuldade pré-determinada. No caso do Bitcoin, este é um número com alguns zeros à esquerda.
o hash do bloco anterior;
os hashes das transações contidas no bloco;
o tempo de criação do bloco.
A dificuldade no Bitcoin é recalculada a cada 2016 blocos (≈ 14 dias). Esta medida se auto-ajusta ao longo do tempo. Se esses 2016 blocos forem encontrados em menos de 14 dias, a dificuldade será ajustada para cima, caso contrário, a dificuldade se ajusta para baixo.
Blockchain - Dificuldade
Esses ajustes acontecem em relação à o quão rápido ou lento os blocos foram minerados os em relação a velocidade que estava “prevista”, e pode aumentar ou diminuir quatro vezes no máximo.
A dificuldade no Bitcoin é recalculada a cada 2016 blocos (≈ 14 dias). Esta medida se auto-ajusta ao longo do tempo. Se esses 2016 blocos forem encontrados em menos de 14 dias, a dificuldade será ajustada para cima, caso contrário, a dificuldade se ajusta para baixo.
Blockchain - Dificuldade
Esses ajustes acontecem em relação à o quão rápido ou lento os blocos foram minerados os em relação a velocidade que estava “prevista”, e pode aumentar ou diminuir quatro vezes no máximo.
Blockchain - Dificuldade
18 números zeros.
A dificuldade do bloco 517592 é 3511060552899. Um método para relacionar a dificuldade com o # de 0’s do hash é dado pela fórmula:
para o bloco em questão, temos:
A hash do bloco é:
Blockchain - Cálculo da Hash Rate
A hash rate é o número estimado de tera hashes por segundo (trilhões de hashes por segundo) que a rede Bitcoin está realizando. Para o bloco 517592, temos:
Hash Rate
Recompensas da rede Bitcoin
Quando um bloco é descoberto, o minerador é recompensado com um certo número de bitcoins, um valor já estabelecido pelo protocolo. No início de 2015 esta recompensa era de 25 Bitcoins; este valor é reduzido pela metade a cada 210.000 blocos. A taxa de transação é um incentivo ao minerador para ele incluir transações no bloco que ele está criando.
Recompensas da rede Bitcoin
Quando um bloco é descoberto, o minerador é recompensado com um certo número de bitcoins, um valor já estabelecido pelo protocolo. No início de 2015 esta recompensa era de 25 Bitcoins; este valor é reduzido pela metade a cada 210.000 blocos. A taxa de transação é um incentivo ao minerador para ele incluir transações no bloco que ele está criando.
até 209999
Processo de mineraçãoMecanismo auto-sustentável?
❏ Validar transações;
❏ Fazer PoW;
❏ Coletar recompensas.
Processo de mineração
Bloco 27
Bloco 28
Bloco 29
Bloco 30
Bloco 31
tempo
Transações não validadas
Blockchain de transações validadas
Latência, Simultaneidade e Fork
Bloco 27
Bloco 28
Bloco 29
Bloco 30
Bloco 31
Como o tamanho da rede é grande, existe um atraso entre a descoberta de um novo blocoA e seu anúncio para os outros nós. Neste intervalo de tempo há uma probabilidade finita, de outro novo blocoB sendo descoberto e, portanto, detectado antes/ao mesmo tempo do blocoA.
Quando isso acontece a blockchain é bifurcada e ambas as partes da cadeia (com o bloco vermelho e com bloco azul) são mantidas como candidatas até que um novo bloco seja detectado.
Bloco 31
Latência, Simultaneidade e Fork
Se o novo bloco for derivado do bloco azul, a blockchain continuará a crescer a partir dessa cadeia. Caso contrário, ela se alongará a partir da cadeia do bloco vermelho.Em geral, a cadeia mais longa vence (a que tem mais PoW).
Bloco 27
Bloco 28
Bloco 29
Bloco 30
Bloco 31
Bloco 31
Bloco 32
Agora todos os mineradores tentarão localizar o próximo bloco que será derivado do último bloco 32 e a bifurcação vermelha (contendo o bloco 31) será descartada ou esquecida.
Latência, Simultaneidade e Fork
Se o novo bloco for derivado do bloco azul, a blockchain continuará a crescer a partir dessa cadeia. Caso contrário, ela se alongará a partir da cadeia do bloco vermelho.Em geral, a cadeia mais longa vence (a que tem mais PoW).
Agora todos os mineradores tentarão localizar o próximo bloco que será derivado do último bloco 32 e a bifurcação vermelha (contendo o bloco 31) será descartada ou esquecida.
Bloco 27
Bloco 28
Bloco 29
Bloco 30
Bloco 31
Bloco 32
Bloco 31
Tamanho do bloco
Atualmente, cada bloco na blockchain é capaz de conter 1MB de dados. No início, o Bitcoin não tinha limite de tamanho de bloco. Essa mudança foi introduzida para evitar ataques DOS (Denial Of Service).
A ampliação ou não do tamanho do bloco do Bitcoin é um dos assuntos mais extensos na comunidade Bitcoin.
Tamanho do bloco
Atualmente, cada bloco na blockchain é capaz de conter 1MB de dados. No início, o Bitcoin não tinha limite de tamanho de bloco. Essa mudança foi introduzida para evitar ataques DOS (Denial Of Service).
A ampliação ou não do tamanho do bloco do Bitcoin é um dos assuntos mais extensos na comunidade Bitcoin.
❏ Maior escala. O tamanho atual do bloco limita o uso do Bitcoin a 2-7 transações por segundo (tps). Isso força os usuários a competir por transações, aumentando as taxas.
❏ Menos taxas para os usuários. Com um bloco aumentado, as mineradoras podem receber mais taxas de transação sem a necessidade dos usuários pagarem taxas mais altas.
Tamanho do bloco
Maior tamanho de bloco principais PRÓS
❏ Mais Hardware. Com um bloco aumentado, existirá aumento dos requisitos de largura de banda o que implica em maior custo de hardware.
❏ Divisão dos programadores. Um hard fork dessa natureza pode criar instabilidade e uma divisão na rede, resultado em 2 blockchains.
❏ Existem outras soluções. Algumas soluções não requerem blocos maiores ou hard fork para aumentar a escalabilidade, como SegWit e lighting network.
Tamanho do bloco
Maior tamanho de bloco principais CONTRAS
Algumas características...
Tipo Escarço Divisível Verificável
Difícil de falsificar
Largamente adotado
Problemas do Bitcoin
A publicação do whitepaper do Bitcoin possui ≈ 10 anos. Existem diversos questionamentos sobre o futuro do protocolo. Por exemplo: escalabilidade, custo energético da atividade de mineração, custo das transações, dicotomia da rede (hard forks), privacidade em transferências, etc… Vamos abordar as 3 primeiras questões (escalabilidade, custo energético de mineração e alto custo das transações.
Problemas
Problemas: escalabilidade
Escalabilidade: 1
grandes quantidade de transações, e
aumentando...
Tamanho do bloco constante = 1Mb.
O Bitcoin tem capacidade máxima de ≈ 7 transações por segundo (tps). Em comparação, a Visa processa uma média de 2.000 tps.
Transações últimas 24 horas (12/Abril)
197114 ≈ 2.28 tps
Efeito funil
Colombia
56,16%
$3.018.586.974
$5.374.810.390
60,37
Receita global de mineração anualizada
Custos de mineração globais estimados e anualizados
Percentual de custo atual
País mais próximo do Bitcoin em consumo de eletricidade
Consumo anual estimado de eletricidade da Bitcoin (TWh)2
Problemas: alto custo de energia elétrica
Colombia
56,16%
$3.018.586.974
$5.374.810.390
60,37
Receita global de mineração anualizada
Custos de mineração globais estimados e anualizados
Percentual de custo atual
País mais próximo do Bitcoin em consumo de eletricidade
Consumo anual estimado de eletricidade da Bitcoin (TWh)
Dados coletados em 3/Abr/2018, fonte: https://digiconomist.net/bitcoin-energy-consumption
≈ 57,6 TWh/ano2
Problemas: alto custo de energia elétrica
Fazenda de mineração - Russia
Em geral, aumento do número de transações, implica em aumento do tempo de confirmação dessas transações. Se um usuário deseja que sua transação seja rapidamente validada, ele pode pagar maior taxa. Se muitos usuários se comportam de mesma forma, as taxas de toda rede ficam maiores. Alguns números:
● Em Abr/17, taxa média: 1 dólar;● Em 21/Dez/17, taxa média: 37 doláres;● Em Abr/18, taxa média: 1,10 dólar.
Problemas: alto custo nas transações
3
Proof of Stake
A probabilidade de mineração de um bloco é determinada por quanto trabalho computacional é feito pelo minerador.
Proof of Stake
PoW PoS
A probabilidade de validar um novo bloco é determinada pelo tamanho do stake (quantidade de moedas) que uma pessoa detém .
Uma recompensa é dada ao primeiro minerador que resolve o enigma criptográfico de cada bloco.
Proof of Stake
PoW PoS
Os validadores não recebem uma recompensa pela criação do bloco, em vez disso, eles coletam taxas das transações desse bloco.
Os mineradores competem entre si, eles se agrupam em grandes comunidades de mineração, que tendem a deixar a rede mais centralizada ao longo do tempo.
Proof of Stake
PoW PoS
A centralização também pode acontecer no PoS, se alguns usuários detêm grande quantidade das moedas em circulação.
Proof of Stake
PoW PoS
A
Panorama geral
Altcoins - principais alternativas ao Bitcoin
Altcoins são criptomoedas ou tokens digitais, criadas a partir da tecnologia criptográfica, algumas são semelhante ao Bitcoin. Em geral, elas foram criadas para tentar resolver os problemas que o Bitcoin não consegue.
Existem mais de 1500 altcoins, e o tamanho do mercado de criptomoeda é de 303 bilhões de dólares.
Panorama geral
Dinamarca: Os usuários de Bitcoin não estão sujeitos à tributação ao realizar operações de câmbio. Inclusive, o banco central da Dinamarca considera digitalizar a moeda do país, que seria chamada de e-Krone.
Brasil: O governo brasileiro declarou que o bitcoin não é uma moeda, mas um ativo, e portanto está sujeita a 15% de impostos sobre ganhos de capital acima de R$ 35 mil.
Equador: O governo proibiu o uso do Bitcoin com a intenção de instituir sua própria moeda digital.
Hong Kong: A Autoridade da moeda de Hong Kong não proíbe formalmente os bancos de negociar bitcoin, mas nenhum banco chegou a pedir permissão para tal.
Japão: O Japão eliminou o imposto sobre o comércio de bitcoins em 1/Abr/17, quando declarou oficialmente a bitcoin como uma moeda legal no país.
Panorama geral
Estados Unidos: Os EUA têm o maior número de usuários de criptomoedas, o maior número de caixas eletrônicos de Bitcoin e também o maior volume de negociação. No entanto, o panorama muda em cada estado: Com base na regulamentação estadual, Texas, Kansas, Tennessee, Carolina do Sul e Montana parecem ser os mais amigáveis às criptomoedas.
Evolução do preço
Perguntas?