Blockchain Autonomia e Segurança para Smart...
Transcript of Blockchain Autonomia e Segurança para Smart...
Blockchain Autonomia e Blockchain Autonomia e Segurança para Smart Contracts Segurança para Smart Contracts
Priscila Morais
Estrutura
● Blockchain;Blockchain;● Blockchain Bitcoin;Blockchain Bitcoin;● Smart Contracts;Smart Contracts;● Plataforma Ethereum;Plataforma Ethereum;
Blockchain
Blockchain é uma implementação peer-to-peer, com Blockchain é uma implementação peer-to-peer, com
segurança garantida por meio de criptografia. Onde todas segurança garantida por meio de criptografia. Onde todas
as transações são públicas, todos os nós da rede, tem toda as transações são públicas, todos os nós da rede, tem toda
a cadeia de blocos e são capazes de verificar a veracidade a cadeia de blocos e são capazes de verificar a veracidade
de cada uma das transações e onde a validação das de cada uma das transações e onde a validação das
transações se dá por consenso. Garantindo uma transações se dá por consenso. Garantindo uma
infraestrutura autônoma, descentralizada, transparente e infraestrutura autônoma, descentralizada, transparente e
segura.segura.
Blockchain Características
● È formada por blocos de informações;È formada por blocos de informações;● O blocos são interligados por um O blocos são interligados por um
identificador único;identificador único;● Cadeia é distribuída entre os nós;Cadeia é distribuída entre os nós;● Motor com regras para geração dos blocos;Motor com regras para geração dos blocos;● Protocolo de consenso;Protocolo de consenso;
Blockchain Bitcoin
Bloco 0Bloco 0 Bloco 1Bloco 1 Bloco 2Bloco 2
Hash do bloco anterior
Hash do bloco anterior
Hash do bloco anterior
Hash do bloco anterior
Bloco 0 Bitcoin - Genesis
Block #0
Output
Horário
Hash Bloco
4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b
2009-01-03 18:15:05
50 BTC
0000000000000000000000000000000000000000000000000000000000000000
Merkle Root
Hash Bloco Anterior
000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f
Fonte: https://blockchain.infoFonte: https://blockchain.info
Bloco 0 Bitcoin - Genesis
Block #0
Output
Horário
Hash Bloco
4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b
2009-01-03 18:15:05
50 BTC
0000000000000000000000000000000000000000000000000000000000000000
Merkle Root
Hash Bloco Anterior
000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f
Fonte: https://blockchain.infoFonte: https://blockchain.info
Transação Bitcoin
● Valores transferidos entre os usuários da Valores transferidos entre os usuários da rede.rede.
Transação: 3bce1fe32441b19df05dd5575af1e825c03747745f661428487980748aa791ca
147xKq8AWMUWAmQ5Emxr7v4XC7iQbJdCrV
De: Alice
Para: Bob e Jhon
1KD4mXadWsz83SKgjP7EGgbX3orTHuG3s5
1NwUqUxTLk5P5VAyyH7SVMoZqAw7SwDFry
Taxas: para o mineiro
50
Valor
19
30
1
Fonte: https://blockchain.infoFonte: https://blockchain.info
Criação dos BlocosMineiros
● São os nós responsáveis por captarem as transações São os nós responsáveis por captarem as transações da rede, e trabalharem para criar os blocos. Estes da rede, e trabalharem para criar os blocos. Estes são recompensados.são recompensados.
Criação do BlocosProva de Trabalho
Esforço computacional empregado em Esforço computacional empregado em encontrar o valor do hash do bloco que não encontrar o valor do hash do bloco que não ultrapasse o limite estabelecido.ultrapasse o limite estabelecido.
Bloco 3Bloco 3
Limite: 000010
Limite: 000010
Nonce: 0 Nonce: 0
Hash do bloco anterior
Hash do bloco anterior
Hash das transações
Hash das transações
Sha256
hash
00012
Criação do BlocosProva de Trabalho
Esforço computacional empregado em Esforço computacional empregado em encontrar o valor do hash do bloco que não encontrar o valor do hash do bloco que não ultrapasse o limite estabelecido.ultrapasse o limite estabelecido.
Bloco 3Bloco 3
Limite: 000010
Limite: 000010
Nonce: 1 Nonce: 1
Hash do bloco anterior
Hash do bloco anterior
Hash das transações
Hash das transações
Sha256
hash
000011
Criação do BlocosProva de Trabalho
Esforço computacional empregado em Esforço computacional empregado em encontrar o valor do hash do bloco que não encontrar o valor do hash do bloco que não ultrapasse o limite estabelecido.ultrapasse o limite estabelecido.
Bloco 3Bloco 3
Limite: 000010
Limite: 000010
Nonce: 2 Nonce: 2
Hash do bloco anterior
Hash do bloco anterior
Hash das transações
Hash das transações
Sha256
hash
000010
Criação do BlocosProva de Trabalho
Esforço computacional empregado em Esforço computacional empregado em encontrar o valor do hash do bloco que não encontrar o valor do hash do bloco que não ultrapasse o limite estabelecido.ultrapasse o limite estabelecido.
Bloco 3Bloco 3
Limite: 000010
Limite: 000010
Nonce: 3 Nonce: 3
Hash do bloco anterior
Hash do bloco anterior
Hash das transações
Hash das transações
Sha256
hash
000009
Bloco Bitcoin
Block #426135
Hash Bloco
f10b2491e655366dc88c051e52ce62f88c4b7fcb19e8ae7a693afff96010e393
33.891.096
000000000000000001eecbc26b21fb2d2d09182b904396ffc5d493a654b79503
Merkle Root
Hash Bloco Anterior
0000000000000000005671e6c0eeff5447516b929044cc14127926169dd6206a
Nonce
Dificuldade Bits 402984668 (para Hexa = 18050EDC Expoente = 0x18 coeficiente = 0x050EDC limite = coeficiente * 2^(8 * (expoente – 3)))
TimesTamp 2016-08-21 03:53:45TimesTamp
Fonte: https://blockchain.infoFonte: https://blockchain.info
Bloco Bitcoin
Block #426135
Hash Bloco
f10b2491e655366dc88c051e52ce62f88c4b7fcb19e8ae7a693afff96010e393
33.891.096
000000000000000001eecbc26b21fb2d2d09182b904396ffc5d493a654b79503
Merkle Root
Hash Bloco Anterior
0000000000000000005671e6c0eeff5447516b929044cc14127926169dd6206a
Nonce
Dificuldade Bits 402984668 (para Hexa = 18050EDC Expoente = 0x18 coeficiente = 0x050EDC limite = coeficiente * 2^(8 * (expoente – 3)))
TimesTamp 2016-08-21 03:53:45TimesTamp
Fonte: https://blockchain.infoFonte: https://blockchain.info
Criação do BlocosResumo
Transação 1Transação 1
Bloco
Transação 2
Transação 1
Bloco
Transação 2
Transação 1
Bloco
Transação 2
Transação 2
Onde consultar a Blockchain Bitcoin
● blockchain.infoblockchain.info
● blockexplorer.comblockexplorer.com
Blockchain Bitcoin
Limitações:Limitações:
● Falta de Turing Completo;Falta de Turing Completo;● Falta de estado;Falta de estado;
Smart Contracts
● São contratos inteligentes que podem ser São contratos inteligentes que podem ser estabelecidos para facilitar a integração estabelecidos para facilitar a integração entre partes que desejam estabelecer um entre partes que desejam estabelecer um acordo garantido por criptografia e de acordo garantido por criptografia e de acordo com as características do negócio, acordo com as características do negócio, que possam ser formalizados por meios que possam ser formalizados por meios como a internet.como a internet.
Plataforma Ethereum
Pretende fornecer uma blockchain construída em Pretende fornecer uma blockchain construída em
linguagem de programação Turing completo que pode linguagem de programação Turing completo que pode
ser usada para criar "contratos" que podem ser ser usada para criar "contratos" que podem ser
utilizados para codificar funções arbitrárias de utilizados para codificar funções arbitrárias de
transição de estado, criar qualquer tipo de sistemas transição de estado, criar qualquer tipo de sistemas
baseados nestes contratos, simplesmente escrevendo baseados nestes contratos, simplesmente escrevendo
a lógica em algumas linhas de código.[Buterin 2014]a lógica em algumas linhas de código.[Buterin 2014]
DAOs
● Organizações Autônomas descentralizadas.Organizações Autônomas descentralizadas.
Fonte: https://slock.it/Fonte: https://slock.it/
Plataforma Ethereum
Transição de estado: Transição de estado: APLICAR (S, TX) -> S'APLICAR (S, TX) -> S'
Transação 14c5f8ba:
1024 eth
Estado
De: 14c5f88a
Para: bb75a980
Valor: 10
Dados: 142345fs, 10 Ass: 30452fdeb3d f7959f2ceb8
bb75a980:
77 eth
14c5f8ba:
1014 eth
Estado
bb75a980:
87 eth
Código do contrato
10 eth
Código do contrato
20 eth
EVM Ethereum
EVM - EthereumEVM - Ethereum
BlockchainEthereum
BlockchainEthereum
BlockchainEthereum
BlockchainEthereum
Ethereum Programação
●
LinguagensLinguagens● Solidity;Solidity;● Serpent;Serpent;
Clientes:Clientes:● geth;geth;● Mist;Mist;●
●
Contrato implementado
function CompraSeguraRemota() {function CompraSeguraRemota() {
vendedor = msg.sender;vendedor = msg.sender;
preco = msg.value / 2;preco = msg.value / 2;
if (2 * preco != msg.value) throw;if (2 * preco != msg.value) throw;
}}
function confirmaVenda()function confirmaVenda()
exigencia(msg.value == 2 * preco)exigencia(msg.value == 2 * preco)
Criação do contrato
●Estado
conta 1
642.07 Ether
conta 2
20 Ether
EVM - Ethereum
Código contratoem Solidity
Transação
De: conta 1
Para: criação do contrato
Valor: 10 Ether
Dados: Byte code do contrato
Mist
Onde consultar a Blockchain Ethereum
● etherchain.orgetherchain.org● etherscan.ioetherscan.io● testnet.etherscan.iotestnet.etherscan.io
Pontos Fracos Blockchain
● Tamanho da Blockchain;Tamanho da Blockchain;● Tempo para confirmação da transação;Tempo para confirmação da transação;● Perigo do ataque de 51%;Perigo do ataque de 51%;
Pontos Forte Blockchain
● Autonomia;Autonomia;● Segurança;Segurança;● Baixo custo de manutenção;Baixo custo de manutenção;
Obrigada!
● Por participarem da minha 1ª Palestra Por participarem da minha 1ª Palestra externa;externa;
● No dia em que comemoro minha No dia em que comemoro minha chegada a versão 3.0.chegada a versão 3.0.
Contato: [email protected]: [email protected]
Referências
● [1] Andreas M Antonopoulos. Mastering Bitcoin: unlocking digital cryptocurrencies. [1] Andreas M Antonopoulos. Mastering Bitcoin: unlocking digital cryptocurrencies. "O’Reilly Media, Inc.", 2014."O’Reilly Media, Inc.", 2014.
● [2] Satoshi Nakamoto. Bitcoin: A peer-to-peer electronic cash system,2008.[2] Satoshi Nakamoto. Bitcoin: A peer-to-peer electronic cash system,2008.
● [3] Vitalik Buterin. A next-generation smart contract and decentralized application [3] Vitalik Buterin. A next-generation smart contract and decentralized application platform. white paper, 2014.platform. white paper, 2014.
● [4] Slock.it. https://slock.it/.[4] Slock.it. https://slock.it/.
● [5] r3cev.com. http://r3cev.com/. [5] r3cev.com. http://r3cev.com/.
● [6] Hyperledger project. https://www.hyperledger.org/.[6] Hyperledger project. https://www.hyperledger.org/.
● [7] Jacob Stenum Czepluch, Nikolaj Zangenberg Lollike, and Simon Oliver Malone. The [7] Jacob Stenum Czepluch, Nikolaj Zangenberg Lollike, and Simon Oliver Malone. The use of block chain technology in different application domains. 2015.use of block chain technology in different application domains. 2015.
● [8] bitcoin.org. https://bitcoin.org/pt_BR. [8] bitcoin.org. https://bitcoin.org/pt_BR.
● [9] bitcoinchain.com. https://bitcoinchain.com/. [9] bitcoinchain.com. https://bitcoinchain.com/.
● [10] ethereum-project. https://www.ethereum.org/.[10] ethereum-project. https://www.ethereum.org/.
● [11] Nick Szabo. Formalizing and securing relationships on public networks. First [11] Nick Szabo. Formalizing and securing relationships on public networks. First Monday, 2(9), 1997.Monday, 2(9), 1997.
Referências
● [12] ethereum-solidity-docs. https://solidity.readthedocs.io/en/latest/.[12] ethereum-solidity-docs. https://solidity.readthedocs.io/en/latest/.
● [13] Serpent-wiki-github. https://github.com/ethereum/wiki/wiki/Serpent.[13] Serpent-wiki-github. https://github.com/ethereum/wiki/wiki/Serpent.
● [14] solc-compiler-github. https://github.com/ethereum/solc-js. [14] solc-compiler-github. https://github.com/ethereum/solc-js.
● [15] go-ethereum-geth-repositorio. https://github.com/ethereum/go-ethereum.[15] go-ethereum-geth-repositorio. https://github.com/ethereum/go-ethereum.
● [16] ethereum-mist-repositorio. https://github.com/ethereum/mist. [16] ethereum-mist-repositorio. https://github.com/ethereum/mist.
● [17] ethereum-solidity-docs-examples. https://solidity.readthedocs.io/en/latest/solidity-by-[17] ethereum-solidity-docs-examples. https://solidity.readthedocs.io/en/latest/solidity-by-example.html. example.html.
● [18] Gavin Wood. Ethereum: A secure decentralised generalised transaction ledger.[18] Gavin Wood. Ethereum: A secure decentralised generalised transaction ledger.(2014). URL http://gavwood. com/paper. pdf, 2014.(2014). URL http://gavwood. com/paper. pdf, 2014.
● [19] Ethereum contract abi. [19] Ethereum contract abi. https://github.com/ethereum/wiki/wiki/Ethereum-Contract-ABIhttps://github.com/ethereum/wiki/wiki/Ethereum-Contract-ABI..
Se desejar cópia do artigo, que escrevi, originador desta apresentação pode solicitar por Se desejar cópia do artigo, que escrevi, originador desta apresentação pode solicitar por e-mail: [email protected] e-mail: [email protected]