consenso aula consensussendin/cursos/tseg/2s2019/aula...1 veri ca se o bloco e "novo" 2...

32
TSEG-Consensus Ivan Sendin news Consenso Avaliacao T´opicos em Seguran¸ ca da Informa¸ ao Aula Consensus Ivan Sendin FACOM - Universidade Federal de Uberlandia [email protected],[email protected] 22 de novembro de 2019

Upload: others

Post on 07-Jul-2020

8 views

Category:

Documents


0 download

TRANSCRIPT

TSEG-Consensus

Ivan Sendin

news

Consenso

Avaliacao

Topicos em Seguranca da Informacao

Aula Consensus

Ivan Sendin

FACOM - Universidade Federal de [email protected],[email protected]

22 de novembro de 2019

TSEG-Consensus

Ivan Sendin

news

Consenso

Avaliacao

Aprecie com moderacao...

Mark Yusko em Digital Asset Summit

”Venda acoes da Amazon e compre Bitcoin”

As criptomoedas farao o primeiro trilionario

https://decrypt.co/11469/morgan-creek-capital-ceo-sell-amazon-stocks-buy-bitcoin

Youtube?

Ano que vem tem halving...

TSEG-Consensus

Ivan Sendin

news

Consenso

Avaliacao

Gods Unchained

Magic: The Gathering’ Executive Leaves ForBlockchain-Based ’Gods Unchained’

Novo criptokittens

ERC-721

Immutable

TSEG-Consensus

Ivan Sendin

news

Consenso

Avaliacao

Ripple - XRP

Cripto para prestar atencao!

Ripple investe meio bilhao de dolares em estrategiaousada

Elliptic.co

”Comprar Ripple hoje e como comprar Bitcoin a$10”(Twitter...)

Transcoes entre financeiras

Mecanismo de consenso....

TSEG-Consensus

Ivan Sendin

news

Consenso

Avaliacao

Consenso

Como que um grupo de pessoas que nao confiamentre si chegam a um consenso

(Aceitam um estado)

Problema dos Generais Bizantinos

Varios generais cercam uma cidade

Precisam estabelecer o momento do ataque

Alguns podem ser traidores

TSEG-Consensus

Ivan Sendin

news

Consenso

Avaliacao Paxos made Simple - Leslie Lamport

Processos que podem propor valores

O algoritmo (distribuido) de consenso assume queum valor sera aceito por todos

TSEG-Consensus

Ivan Sendin

news

Consenso

Avaliacao

No Bitcoin...

Mineradores mineram para produzir um novo bloco

(PoW ja esta estabelecido como funciona...certo?)

Ao gerar o novo bloco, o minerador faz a proposta(para os seus vizinhos...)

Ao receber um bloco, o minerador1 Verifica se o bloco e ”novo”2 verifica a validade3 espalha este novo bloco

Quem gera ou recebe um bloco n inicia a mineracaopelo bloco n + 1

TSEG-Consensus

Ivan Sendin

news

Consenso

Avaliacao

E se 2 mineradores minerarem um bloco ao ”mesmotempo”??

Dois computadores geram, cada um, o seu bloco(BLnA e BLnB), e espalham pela rede

A rede vai ficar ”dividida”, parte trabalhando sobreBLnA e parte sobre BLnB),

Por exemplo, alguem gera BLn+1A e propaga pela

rede.

Quem estava minerando BLnB , inicia a mineracao emBLn+1

A (maior chain...)

E se ”empatar”de novo??

Sem garantias

TSEG-Consensus

Ivan Sendin

news

Consenso

Avaliacao Transacoes podem ser ”desfeitas”

Um minerador pode ignorar novos blocos?? Sim!Mas e dai?!?

Eclipse attacks

TSEG-Consensus

Ivan Sendin

news

Consenso

Avaliacao

Mineracao Selfish

O minerador egoista, o minerao bloco n mantem obloco ”em segredo”

O resto da rede vai ficar procurando o bloco n e ominerador vai procurar o n + 1

Uma aposta....

https://eprint.iacr.org/2019/486.pdf

https://www.cs.cornell.edu/∼ie53/publications/btcProcFC.pdf

(IC/TCC: detectar, simular,...)

TSEG-Consensus

Ivan Sendin

news

Consenso

Avaliacao

Uma CPU, um voto

CPU: 20 MHash/s

GPU: 5 a 2000 MHash

ASIC: 1 a 14 THash/s

(2017)

Global: ≈ 109 HT/s (2019)

Qual e a probabilidade de uma CPU minerar??

TSEG-Consensus

Ivan Sendin

news

Consenso

Avaliacao

TSEG-Consensus

Ivan Sendin

news

Consenso

Avaliacao

TSEG-Consensus

Ivan Sendin

news

Consenso

Avaliacao

TSEG-Consensus

Ivan Sendin

news

Consenso

Avaliacao

Pool de mineracao

Chama um amigo com um equipamento igual aoseu....

Quando alguem conseguir, dividem o lucro

Probabilidade de encontrar um moeda (com omesmom esforco) e dobrada

Expectativa de ganho: a mesma

Por que isso seria bom??

TSEG-Consensus

Ivan Sendin

news

Consenso

Avaliacao

Pool de mineracao - PoW

Voce recebe um template

faz a busca no campo nonse

Como garantir que todos trabalharam?

Falhas, ma fe,....

Para uma dificuldade k a prova de trabalho se dapela inversao de k − q bits

Confianca(?)

TSEG-Consensus

Ivan Sendin

news

Consenso

Avaliacao

Mineracao Na Nuvem

Compra um hashpower

tempo Limitido/ilimitado

Taxa de manutencao

Hashflare, Genesis, ...

Lugares Frios, geotermica, hidroeletrica propria,...

Facilidade de hardware

Ganho na escala

TSEG-Consensus

Ivan Sendin

news

Consenso

Avaliacao

TSEG-Consensus

Ivan Sendin

news

Consenso

Avaliacao

Problemas...

As mineradoras centralizam o Bitcoin

Uma CPU, um voto....

TTP??

Uma saıda: uso de memoria!!

TSEG-Consensus

Ivan Sendin

news

Consenso

Avaliacao

Proof of Stake

Prova de posse

Prova de trabalho: consumo inutil(?) de energia

(pegada de carbono...)

Varias implementacoes

TSEG-Consensus

Ivan Sendin

news

Consenso

Avaliacao

Proof of Stake

O ”minerador”investe um valor de criptomoedas emmineracao

Antigo(?): uma carteira sem depositos recentes

A probabilidade de minerar e proporcional ao valorinvestido (em relacao ao total)

Quem minera tem o valor retido por alguns blocos

Quem nao minera, recebe o valor de volta(tx?)

Faz sentido??

TSEG-Consensus

Ivan Sendin

news

Consenso

Avaliacao Proof of Burn Just Enough Security: ReducingProof-of-Work Ecological Footprint 0.24% doconsumo de energia !

Consenso do Ripple

TSEG-Consensus

Ivan Sendin

news

Consenso

Avaliacao

Implementacao 1

Implementar um simulador de ”comportamento”demineradores/consenso

Nao e para ficar consumindo CPU com hash

TSEG-Consensus

Ivan Sendin

news

Consenso

Avaliacao

Implementacao 1

Um minerador

Tem um determinado poder computacionalMantem uma blockchain ”local”Mantem uma lista de paresinformacoes para estatısticas

TSEG-Consensus

Ivan Sendin

news

Consenso

Avaliacao

A mineracao

A mineracao (hash) nao ocorrera

A cada passo da simulacao, cada minerador deveraminerar com probabilidade proporcional ao seupoder computacional

Nem sempre a mineracao ocorre

A ”loteria”sera controlada pelo simulador

TSEG-Consensus

Ivan Sendin

news

Consenso

Avaliacao

Propagacao

A cada passo da simulacao....

o minerador pode enviar um bloco(blockchain)minerado

O minerador pode receber um bloco de outro (edecide aceitar ou nao de acordo com a altura, obloco esta sempre correto)

Propagar um bloco recebido

TSEG-Consensus

Ivan Sendin

news

Consenso

Avaliacao

Objetivos

Aprender o mecanismo de consenso do BTC

Levantar estatisticas...

Mineracao proporcional ao poder

Quanto ”tempo”demora para a existir o consenso(100%?,90%...)

Mineracoes ”perdidas”

Tamanho/ocorrencias de forks na blockchain

TSEG-Consensus

Ivan Sendin

news

Consenso

Avaliacao

Implementacao 2 - Proof of Stake

implementar um contrato do proof of stake

As pessoas enviam dinheiro para um determinadobloco (int)

O contrato sorteia um verificador

Devolve o dinheiro dos perdedores (taxa)

Devolve o dinheiro do ganhador(taxa) apos k blocos

Permite a consulta: quem ficou com o bloco n?

IDE Remix

TSEG-Consensus

Ivan Sendin

news

Consenso

Avaliacao

Valor 20

Proxima sexta

Simulacao OU PoS

TSEG-Consensus

Ivan Sendin

news

Consenso

Avaliacao

CS 251- Q1H

O Bitcoin usa o SHA2562 com PoW e a dificuldade atualD esta em torno de 270. Suponha que a Alice descubraum amaneira de resolver a PoW com tempo aproximadode D/220, mas somente se D < 280. Para D ≥ 280 omelhor volta a ser a forca bruta. Qual e a melhorestrategia para a Alice maximizar a mineracao??Valor 10

TSEG-Consensus

Ivan Sendin

news

Consenso

Avaliacao

CS 251- Q4 /Sabotagem

https://cs251crypto.stanford.edu/18au-cs251/hw/final2015.pdf

Q4 Letras A a F: 5 pontos cada