Meetup Bitcoin Vitoria 2 - Como a blockchain funciona

43
www.facebook.com /groups/ BitcoinVitoria www.meetup.com/ BitcoinVitori a fabricio-vargas-matos: ~blockc

Transcript of Meetup Bitcoin Vitoria 2 - Como a blockchain funciona

www.facebook.com/groups/BitcoinVitoria

www.meetup.com/BitcoinVitoria

fabr

icio

-var

gas-

mat

os: ~

bloc

kcha

in $

Dinheiro Digital Bitcoin

x

Tecnologia Blockchain

Agenda do Dia

Chave Pública/Privada

Blockchain

Tx1

Tx4

Tx2

Tx3

Tx5

Tx6

Tx7

Tx8

Tx11

Tx9

Tx10

Bloco 1 Bloco 2 Bloco 3

Blockchain

Tx1

Tx4

Tx2

Tx3

Tx5

Tx6

Tx7

Tx8

Tx11

Tx9

Tx10

Bloco 1 Bloco 2 Bloco 3

Blockchain

Tx1

Tx4

Tx2

Tx3

Tx5

Tx6

Tx7

Tx8

Tx11

Tx9

Tx10

Bloco 1 Bloco 2 Bloco 3

Blockchain

Tx1

Tx4

Tx2

Tx3

Tx5

Tx6

Tx7

Tx8

Tx11

Tx9

Tx10

Bloco 1 Bloco 2 Bloco 3

Blockchain

Tx1

Tx4

Tx2

Tx3

Tx5

Tx6

Tx7

Tx8

Tx11

Tx9

Tx10

Bloco 1 Bloco 2 Bloco 3

0.5 BTC

Blockchain

Tx1

Tx4

Tx2

Tx3

Tx5

Tx6

Tx7

Tx8

Tx11

Tx9

Tx10

Bloco 1 Bloco 2 Bloco 3

0.5 BTC

0.5 BTC

Fila de Trans. Pendentes: Tx12, Tx13, Tx14, Tx15...

Blockchain

Tx12

Tx15

Tx13

Tx14

Tx5

Tx6

Tx7

Tx8

Tx11

Tx9

Tx10

Bloco 4Bloco 2 Bloco 3

0.5 BTC

0.5 BTC

1 BTC

Fila de Trans. Pendentes: Tx16, Tx17

Transações

Tx14

Tx5

Tx9

0.5 BTC

0.5 BTC

1 BTC

Transação que transfere 1 BTC para JOÃO, p.e.

Transações

Tx14

Tx5

Tx9

0.5 BTC

0.5 BTC

1 BTC

Transação que transfere 1 BTC para JOÃO, p.e.

Transações

Tx14

1 BTC

• Tx14 é uma transação “não gasta”

• Só JOÃO tem o poder de movimentar esse 1 BTC.

• Saldo de JOÃO = Soma dos valores das transferências não gastas feitas pra ele (que só ele consegue “gastar”)

Transações

Tx14

1 BTC

• Tx14 é uma transação “não gasta”

• Só JOÃO tem o poder de movimentar esse 1 BTC.

• Saldo de JOÃO = Soma dos valores das transferências não gastas feitas pra ele (que só ele consegue “gastar”)

Origem1: Valor: 1.00000000Transação: Tx9

Destino1: Valor: 1.00000000Script:

SCRIPT_PUBKEY_JOÃO

Transações

Tx14

1 BTC

• Tx14 é uma transação “não gasta”

• Só JOÃO tem o poder de movimentar esse 1 BTC.

• Saldo de JOÃO = Soma dos valores das transferências não gastas feitas pra ele (que só ele consegue “gastar”)

Origem1: Valor: 1.00000000Transação: Tx9

Destino1: Valor: 1.00000000Script:

SCRIPT_PUBKEY_JOÃOSCRIPT_PUB_KEY_JOÃO:

“Se assinatura do requerente bater com a chave pública que o JOÃO forneceu, pode gastar essa transação de 1 BTC”

João quer enviar 0.3 BTC para Ellen

Transações

Tx14

1 BTC

Origem1: Valor: 1.00000000Transação: Tx9

Destino1: Valor: 1.00000000Script:

SCRIPT_PUBKEY_JOÃOSCRIPT_PUB_KEY_JOÃO:

“Se assinatura do requerente bater com a chave pública que o JOÃO forneceu, pode gastar essa transação de 1 BTC”

Tx30

Transações

Tx14

1 BTC

Origem1: Valor: 1.00000000Transação: Tx9

Destino1: Valor: 1.00000000Script:

SCRIPT_PUBKEY_JOÃOSCRIPT_PUB_KEY_JOÃO:

“Se assinatura do requerente bater com a chave pública que o JOÃO forneceu, pode gastar essa transação de 1 BTC”

Tx30Origem1:

Valor: 1.00000000Transação: Tx14 –

Destino1

Assinada com Chave Privada do João!

Transações

Tx14

1 BTC

Origem1: Valor: 1.00000000Transação: Tx9

Destino1: Valor: 1.00000000Script:

SCRIPT_PUBKEY_JOÃOSCRIPT_PUB_KEY_JOÃO:

“Se assinatura do requerente bater com a chave pública que o JOÃO forneceu, pode gastar essa transação de 1 BTC”

Tx30Origem1:

Valor: 1.00000000Transação: Tx14 –

Destino1

Destino1: Valor: 0.30000000Script:

SCRIPT_PUBKEY_ELLEN

Assinada com Chave Privada do João!

SCRIPT_PUB_KEY_ELLEN:...

Transações

Tx14

1 BTC

Origem1: Valor: 1.00000000Transação: Tx9

Destino1: Valor: 1.00000000Script:

SCRIPT_PUBKEY_JOÃOSCRIPT_PUB_KEY_JOÃO:

“Se assinatura do requerente bater com a chave pública que o JOÃO forneceu, pode gastar essa transação de 1 BTC”

Tx30Origem1:

Valor: 1.00000000Transação: Tx14 –

Destino1

Destino1: Valor: 0.30000000Script:

SCRIPT_PUBKEY_ELLEN

Destino2: Valor: 0.70000000Script:

SCRIPT_PUB_KEY_JOÃOAssinada com Chave Privada do João!

SCRIPT_PUBKEY_ELLEN:...

SCRIPT_PUB_KEY_JOÃO:...

João assina digitalmente a Tx30 e a envia para a Blockchain

Trans. Pendentes: TxA, TxB, Tx30

Bl.1 Bl.2 Bl 3 Bl 4

Tx30

BLOCKCHAIN

Blockchain valida e publica a transação

Trans. Pendentes:

Bl.1 Bl.2 Bl 3 Bl 4

BLOCKCHAIN

Bl 5

Pontos chaves até aqui

• Foi difícil acompanhar os detalhes?• Chaves Públicas/Privadas => Você no controle,

para o bem e para o mal.• Cada valor gastável pode ser associado a um

programa específico => construção de uma infinidade de relações mais sofisticadas

• Lembrete: Blockchain apenas hipoteticamente centralizada (por questões didáticas)

Indo além do dinheiro inteligente

• A tecnologia blockchain:– Gama enorme de aplicações.– Projetada para dinheiro digital.

• Precisamos criar camadas extendendo a capacidade.

• Como isso é possível?• Blockchain 2.0!

Tokens na Blockchain

• Baseado na posse e transferência de valores simbólicos de BTCs– Bitcoin coloridos– Sidechains

• Propriedades virtuais transferíveis (mas não duplicáveis)– Ex: Licença de software, bens virtuais em games,

etc..

Blockchain descentralizada

• Necessidade de confiança numa entidade• Introduz um ponto único de vulnerabilidade

(derrubar ou comprometer esse ponto)• Solução: Criar uma rede peer-to-peer

totalmente descentralizada.• Cada nó tem uma cópia inteira da Blockchain e

faz todo o processo de validar transações, adicioná-las na sua blockchain e notificar os outros nós ao redor.

Blockchain descentralizada

BlockchainBlockchain

BlockchainBlockchain

Blockchain

Blockchain

Como impedir gasto duplo?

Trans. Pendentes: TxA, TxB, ...

Bl.1 Bl.2 Bl 3 Bl 4

BLOCKCHAIN DO COMPUTADOR 1

Trans. Pendentes: TxA, TxB, ...

Bl.1 Bl.2 Bl 3 Bl 4

BLOCKCHAIN DO COMPUTADOR 2

Tx30

1 BTC

Cenário boa fé

Trans. Pendentes: TxA, TxB, ...

Bl.1 Bl.2 Bl 3 Bl 4

BLOCKCHAIN DO COMPUTADOR 1

Trans. Pendentes: TxA, TxB, ...

Bl.1 Bl.2 Bl 3 Bl 4

BLOCKCHAIN DO COMPUTADOR 2

1 BTC

Bl 5

Cenário boa fé

Trans. Pendentes: TxA, TxB, ...

Bl.1 Bl.2 Bl 3 Bl 4

BLOCKCHAIN DO COMPUTADOR 1

Trans. Pendentes: TxA, TxB, ...

Bl.1 Bl.2 Bl 3 Bl 4

BLOCKCHAIN DO COMPUTADOR 2

Bl 5

Bl 5

Cenário má fé

Trans. Pendentes: TxA, TxB, ...

Bl.1 Bl.2 Bl 3 Bl 4

BLOCKCHAIN DO COMPUTADOR 1

Trans. Pendentes: TxA, TxB, ...

Bl.1 Bl.2 Bl 3 Bl 4

BLOCKCHAIN DO COMPUTADOR 2

Tx30

1 BTC

Cenário má fé

Trans. Pendentes: TxA, TxB, ...

Bl.1 Bl.2 Bl 3 Bl 4

BLOCKCHAIN DO COMPUTADOR 1

Trans. Pendentes: TxA, TxB, ...

Bl.1 Bl.2 Bl 3 Bl 4

BLOCKCHAIN DO COMPUTADOR 2

Tx30

1 BTC

Tx31

1 BTC

Cenário má fé

Trans. Pendentes: TxA, TxB, ...

Bl.1 Bl.2 Bl 3 Bl 4

BLOCKCHAIN DO COMPUTADOR 1

Trans. Pendentes: TxA, TxB, ...

Bl.1 Bl.2 Bl 3 Bl 4

BLOCKCHAIN DO COMPUTADOR 2

Bl 5a

Bl 5b

E agora?

Referências Técnicas

• Nakamoto, Satoshi, “Bitcoin: A Peer-to-Peer Electronic Cash System”, 2009.

• “Bitcoin: Technical Background and Data Analysis”. Federal Reserve Board, Washington, D.C., 2014.

Base para a solução: mineração

• Ecossistema baseado em mineração de bitcoins e incentivos para manter a consenso e a segurança da rede.

• Os mineradores são recompensados por fazerem um trabalho que, sem os insentivos financeiros, ninguém faria: investir poder computacional para validar transações e computar o “proof-of-work” que é a mágica que permite a rede P2P manter o consenso.

• Blockchain é uma solução tecnológica, mas dependente de um equilíbrio da economia interna da rede. E essa sacada foi genial!!!!

www.facebook.com/groups/BitcoinVitoria/

www.meetup.com/BitcoinVitoria/

Obrigado!