Gustavo Almeida
Blockchain PHP
$whois
Blockchain e Bitcoin
A blockchain é resultado de uma engenhosa combinação de técnicas robustas
provenientes da computação distribuída confiável (tolerância a falhas bizantinas,
sistemas P2P), criptografia (chave assimétrica, funções hash, desafios criptográficos) e
teoria dos jogos (mecanismos de incentivos).
Arquitetura Distribuída
● Imutabilidade
● Consistência
● Não repúdio
● Segurança
● Interoperabilidade
Função Hash
Criptografia assimétrica - public private keys
1 2 3
Bitcoin address
Transação e Assinatura digital - Não Repúdio
A B
mensagem
de A para B
texto adicional
gerado pela
privateKey A
publicKey A
mensagem
de A para B
texto adicional
gerado pela
privateKey A
publicKey A
publicKey B
Transação e Cifra digital - Sigilo
A B
mensagem
de A para B
gsgs dfgs
dfgdsfg sdfg dsf
g dsfg ds fg gh
reth ty t u et ert
yryrteyr ey
gdfgdfg df
mensagem
de A para B
privateKey BpublicKey B
gsgs dfgs
dfgdsfg sdfg dsf
g dsfg ds fg gh
reth ty t u et ert
yryrteyr ey
gdfgdfg df
Segurança
Livro Caixa Distribuído
From To Qty
- Genesis 1000
Genesis A 100
Genesis B 200
A C 50
C Genesis 25
Livro Caixa Distribuído
From To Qty Sign
0000000000 ABD123F44... 1000 123abc4344...
ABD123F44... BB1223456... 100 993abc4341...
ABD123F44... 2233EE557... 200 663abc4333...
BB1223456... 99AAA324... 50 7777bc4341...
99AAA324... ABD123F44... 25 123abc4554...
É necessário um CONSENSO sobre o Livro Caixa Distribuído
A cada rodada vamos dar um jeito de trancar estes
blocos de transações.
Mineração
O consenso PoW, juntamente com o mecanismo de recompensa, são a chave para tolerar ataques de
agentes maliciosos na rede. Não é possível para uma minoria de mineradores manipular as transações,
pois a rede como um todo não aceitaria transferência de ativos (ou pagamentos) que não foram
autorizados pelo proprietário dos ativos (ou bitcoins). Além disso, os nós sempre estendem a corrente
mais longa. Para um ataque cibernético, seria necessário que uma maioria (51%) de nós mineradores
entrasse em conluio. Isso envolveria um custo computacional altíssimo [Nakamoto 2008].
Mineração
Mineração
A mineração consiste em aplicar a função hash H sobre o header do bloco
sucessivas vezes, pela variação do valor do nonce, até que o resultado do hash
seja menor do que a dificuldade alvo imposta (target)
Blockchain é uma “ledger of facts” replicada em computadores que participam de uma
rede peer-to-peer, onde:
— O ledger é um livro de registros digital, no qual uma vez validado um registro, este
nunca mais poderá ser apagado.
— Um fato (fact) pode significar várias coisas, desde uma transação monetária, a um
conteúdo de determinado documento, ou até mesmo um programa de computador.
— Os membros participantes da rede podem, ou não ser anônimos e são chamados
peers ou “nós”.
— Toda operação ou transação dentro da ledger é protegida por tecnologias
criptográficas de assinatura digital, inclusive para identificar os nós emissores e
receptores das transações.
while(conditions){
…
}
if(conditions){
…
} else {
…
}
Na evolução de projeto da blockchain, são destacadas três fases [Bashir 2017]:
● A Blockchain 1.0 envolve o lançamento do Bitcoin em 2008, com as primeiras
implementações das criptomoedas, e um ecossistema de aplicações e
pagamentos com o ativo digital.
● A Blockchain 2.0 inicia-se com a proposta inovadora dos contratos
inteligentes em 2013.
● A Blockchain 3.0 caracteriza a adoção da tecnologia blockchain no benefício
de aplicações em diversas áreas, para além da financeira: governo,
comércio, artes, saúde, cidades digitais, etc...
Públicas (public Blockchain): Bitcoin, Ethereum, Coinbase, entre outras;
Privadas (enterprise Blockchain): Ripple, Chain, Hyperledger, DAH (Digital Asset Holdings), etc.
O(lg(n))
Para termos a segurança da transação K, precisamos dos seguintes hashes: H(L), H(IJ), H(MNOP) e
H(ABCDEFGH). Assim temos a certeza referente a transação K. Tudo isso é feito muito rápido em lg(n)
sendo n o número de nós da árvore
Merkle Tree
Merkle Tree é uma estrutura de dados voltada para permitir a fácil verificação da presença de uma certa
informação em um certo local
Desafio 1 – Identificar qual problema ou processo pode realmente ser beneficiado
com o uso do Blockchain
● O problema que quero resolver envolve múltiplos agentes que devem
compartilhar decisões e/ou informações?
● Deve existir algum tipo de transação entre esses agentes que torna importante o
registro do histórico?
● Essa transação deve ser registrada segundo uma determinada regra de
consenso?
Desafio 2 – Pagar o preço de ser inovador
● Ausência de documentação.
● Potenciais falhas técnicas ainda não conhecidas.
● Ausência de suporte, de produtos vinculados e falta de profissionais.
Problema dos Generais Bizantinos
Os generais devem chegar a um consenso se atacam ou recuam.
● Se todos os generais bizantinos atacarem, a vitória é certa.
● Se nenhum general bizantino atacar, o império sobrevive.
● Se alguns atacarem, então o império ruirá.
www.LGA.com.br
github: lga37
slideshare: lga33
br.linkedin.com/in/lga37
Criando uma blockchain com PHP

Criando uma blockchain com PHP

  • 1.
  • 2.
  • 3.
  • 4.
    A blockchain éresultado de uma engenhosa combinação de técnicas robustas provenientes da computação distribuída confiável (tolerância a falhas bizantinas, sistemas P2P), criptografia (chave assimétrica, funções hash, desafios criptográficos) e teoria dos jogos (mecanismos de incentivos).
  • 12.
  • 13.
    ● Imutabilidade ● Consistência ●Não repúdio ● Segurança ● Interoperabilidade
  • 14.
  • 16.
    Criptografia assimétrica -public private keys 1 2 3
  • 17.
  • 18.
    Transação e Assinaturadigital - Não Repúdio A B mensagem de A para B texto adicional gerado pela privateKey A publicKey A mensagem de A para B texto adicional gerado pela privateKey A publicKey A publicKey B
  • 19.
    Transação e Cifradigital - Sigilo A B mensagem de A para B gsgs dfgs dfgdsfg sdfg dsf g dsfg ds fg gh reth ty t u et ert yryrteyr ey gdfgdfg df mensagem de A para B privateKey BpublicKey B gsgs dfgs dfgdsfg sdfg dsf g dsfg ds fg gh reth ty t u et ert yryrteyr ey gdfgdfg df
  • 20.
  • 24.
    Livro Caixa Distribuído FromTo Qty - Genesis 1000 Genesis A 100 Genesis B 200 A C 50 C Genesis 25
  • 26.
    Livro Caixa Distribuído FromTo Qty Sign 0000000000 ABD123F44... 1000 123abc4344... ABD123F44... BB1223456... 100 993abc4341... ABD123F44... 2233EE557... 200 663abc4333... BB1223456... 99AAA324... 50 7777bc4341... 99AAA324... ABD123F44... 25 123abc4554...
  • 28.
    É necessário umCONSENSO sobre o Livro Caixa Distribuído A cada rodada vamos dar um jeito de trancar estes blocos de transações.
  • 30.
    Mineração O consenso PoW,juntamente com o mecanismo de recompensa, são a chave para tolerar ataques de agentes maliciosos na rede. Não é possível para uma minoria de mineradores manipular as transações, pois a rede como um todo não aceitaria transferência de ativos (ou pagamentos) que não foram autorizados pelo proprietário dos ativos (ou bitcoins). Além disso, os nós sempre estendem a corrente mais longa. Para um ataque cibernético, seria necessário que uma maioria (51%) de nós mineradores entrasse em conluio. Isso envolveria um custo computacional altíssimo [Nakamoto 2008].
  • 31.
  • 32.
    Mineração A mineração consisteem aplicar a função hash H sobre o header do bloco sucessivas vezes, pela variação do valor do nonce, até que o resultado do hash seja menor do que a dificuldade alvo imposta (target)
  • 34.
    Blockchain é uma“ledger of facts” replicada em computadores que participam de uma rede peer-to-peer, onde: — O ledger é um livro de registros digital, no qual uma vez validado um registro, este nunca mais poderá ser apagado. — Um fato (fact) pode significar várias coisas, desde uma transação monetária, a um conteúdo de determinado documento, ou até mesmo um programa de computador. — Os membros participantes da rede podem, ou não ser anônimos e são chamados peers ou “nós”. — Toda operação ou transação dentro da ledger é protegida por tecnologias criptográficas de assinatura digital, inclusive para identificar os nós emissores e receptores das transações.
  • 35.
  • 36.
    Na evolução deprojeto da blockchain, são destacadas três fases [Bashir 2017]: ● A Blockchain 1.0 envolve o lançamento do Bitcoin em 2008, com as primeiras implementações das criptomoedas, e um ecossistema de aplicações e pagamentos com o ativo digital. ● A Blockchain 2.0 inicia-se com a proposta inovadora dos contratos inteligentes em 2013. ● A Blockchain 3.0 caracteriza a adoção da tecnologia blockchain no benefício de aplicações em diversas áreas, para além da financeira: governo, comércio, artes, saúde, cidades digitais, etc...
  • 40.
    Públicas (public Blockchain):Bitcoin, Ethereum, Coinbase, entre outras; Privadas (enterprise Blockchain): Ripple, Chain, Hyperledger, DAH (Digital Asset Holdings), etc.
  • 41.
    O(lg(n)) Para termos asegurança da transação K, precisamos dos seguintes hashes: H(L), H(IJ), H(MNOP) e H(ABCDEFGH). Assim temos a certeza referente a transação K. Tudo isso é feito muito rápido em lg(n) sendo n o número de nós da árvore Merkle Tree
  • 42.
    Merkle Tree éuma estrutura de dados voltada para permitir a fácil verificação da presença de uma certa informação em um certo local
  • 45.
    Desafio 1 –Identificar qual problema ou processo pode realmente ser beneficiado com o uso do Blockchain ● O problema que quero resolver envolve múltiplos agentes que devem compartilhar decisões e/ou informações? ● Deve existir algum tipo de transação entre esses agentes que torna importante o registro do histórico? ● Essa transação deve ser registrada segundo uma determinada regra de consenso? Desafio 2 – Pagar o preço de ser inovador ● Ausência de documentação. ● Potenciais falhas técnicas ainda não conhecidas. ● Ausência de suporte, de produtos vinculados e falta de profissionais.
  • 47.
    Problema dos GeneraisBizantinos Os generais devem chegar a um consenso se atacam ou recuam. ● Se todos os generais bizantinos atacarem, a vitória é certa. ● Se nenhum general bizantino atacar, o império sobrevive. ● Se alguns atacarem, então o império ruirá.
  • 51.