SlideShare uma empresa Scribd logo
1 de 19
Baixar para ler offline
meetup Blockchain BR
Smart Contracts
Olá!
Eu me chamo Fábio
Estou aqui porque eu curto blockchain!
Você pode me encontrar em https://medium.com/@fabiojose
1.
Contratos inteligentes?
Smart Contracts
Smart Contracts
● São programas descentralizados, autonomos
● Computadores que os executam podem ser recompensados
● Lógica para modificar a blockchain, transferir valores, etc.
● Resultado só é aceito se a rede entrar em consenso
● Seu estado é persistido globalmente
● Eles não são inteligentes, é apenas um termo para destacá-los
Por que ?
Por que codificar um smart contract, ao
invés de uma APP tradicional?
Por que ?
● Moeda digital
● Imutabilidade - resistente à adulteração
● Resiliência
● Segurança acima da velocidade - tradeoff
● Descentralização - nenhum servidor ou entidade central
● Dispensa confiança - trustless
Dispensa confiança?
Tradicional
Centralizado
Blockchain
Descentralizado
Exemplo
Off-chain
Transferir posse
On-chain
Transferir posse
2.
Ethereum
https://www.ethereum.org/
Como ethereum funciona?
Moeda, Tokens & Smart
Contracts
Ethereum é completa,
porque você pode minerar
moedas, criar tokens e
rodar smart contracts.
Proof-of-Work PoW
A rede de produção roda o
algoritmo Proof-of-Work
para consenso, o mesmo
do Bitcoin. Mas existe um
movimento para adotar
Proof-of-Stake e sharding
para escalar a rede.
Ether - ETH
Ether a criptomoeda, o
dinheiro digital da
Ethereum.
Transações
Tudo é uma transação:
transferir valores, implantar
smart contracts ou
executá-los
Como ethereum funciona?
Gas
Para implantar ou
consumir um smart
contract precisamos ter o
Ether. Gas é o imposto para
executar a lógica e
armazenar dados em
Ethereum.
Gas Price * Gas Limit
Gas Price
É o preço em ethers para
cada unidade de gas.
Out of Gas
Quando não há gas
suficiente para validar a
transação
Gas Limit
Número máximo de
unidades de gas
disponíveis para serem
consumidas na validação
da transação.
Value
O valor, em ethers,
anexado a transação.
Value
pessoas
bagagens mercadorias
Gas Limit Gas Price
litros
abastecidos
preço p/ litro
autonomia
Gas
Out of gas
Não abasteceu!
Solidity
Linguagem
Linguagem de
programação para
codificar smart contracts
que serão executados na
rede Ethereum.
Completa
Inspirada em C++,
JavaScript e Python.
Programação Orientada à
Objetos, com herança,
polimorfismo,
encapsulamento, etc.
EVM
Ethereum Virtual Machine.
É máquina virtual que
executa o código solidity,
similar à JVM - Java Virtual
Machine.
Solidity
■ IDE online: https://remix.ethereum.org
■ string, bool, int (8-256 bit), uint (8-256 bit), address
■ for, while, if, let, case, mapping, list, struct, function
■ modifier, payable, view, event
■ Funções podem retornar um ou vários resultados
■ Nenhum tipo para ponto flutuante
3.
Mão na massa
Smart Contract com Solidity e Ethereum
Ferramentas
● Ganache GUI - https://truffleframework.com/ganache
● Truffle - https://github.com/trufflesuite/truffle
● Algum editor de código (vim, atom, vscode)
● Git
● Clonar o repositório:
https://github.com/fabiojose/blockchain-posse
Caso de Uso
Transferir posse
● Dono que detém a posse do
objeto registra sua posse na
blockchain c/ smart contract e
define o preço para venda
● Comprador interessado,
compra a posse, cujo critério
de aceite é o valor ser igual ao
de venda
● Valor é transferido ao Dono
● Comprador se torna o novo
detentor da posse
Comprador
Objeto
Dono
Smart Contract
Posse
Vamos lá!
Show me the code!
Obrigado!
Me encontre em
fabiojose@gmail.com

Mais conteúdo relacionado

Semelhante a SmartContratosBlockchain

Começando com Quorum - versão 2.6
Começando com Quorum - versão 2.6Começando com Quorum - versão 2.6
Começando com Quorum - versão 2.6Jeff Prestes
 
Integrando-se à Blockchain da Ethereum
Integrando-se à Blockchain da EthereumIntegrando-se à Blockchain da Ethereum
Integrando-se à Blockchain da EthereumMario Guedes
 
Integrando-se à Blockchain da Ethereum
Integrando-se à Blockchain da EthereumIntegrando-se à Blockchain da Ethereum
Integrando-se à Blockchain da EthereumArrayOf.io
 
Blockchain 2.0 - O Bitcoin além do dinheiro digital
Blockchain 2.0 - O Bitcoin além do dinheiro digitalBlockchain 2.0 - O Bitcoin além do dinheiro digital
Blockchain 2.0 - O Bitcoin além do dinheiro digitalEdilson Osorio Junior
 
HACKBCBR - RIPPEX - Rafael Pereira e Jan Schnurle
HACKBCBR - RIPPEX - Rafael Pereira e Jan SchnurleHACKBCBR - RIPPEX - Rafael Pereira e Jan Schnurle
HACKBCBR - RIPPEX - Rafael Pereira e Jan SchnurleVictor Cunha
 
Workshop: Ethereum e Smart contracts
Workshop: Ethereum e Smart contractsWorkshop: Ethereum e Smart contracts
Workshop: Ethereum e Smart contractsAndré Ferreira
 
HACKBCBR - RIPPEX - Rafael Pereira e Jan Schnurle
HACKBCBR - RIPPEX - Rafael Pereira e Jan SchnurleHACKBCBR - RIPPEX - Rafael Pereira e Jan Schnurle
HACKBCBR - RIPPEX - Rafael Pereira e Jan SchnurleVictor Cunha
 
Criptografia - Conceitos Fundamentais
Criptografia - Conceitos FundamentaisCriptografia - Conceitos Fundamentais
Criptografia - Conceitos FundamentaisJuarez Mota
 
Blockchain e Aplicações Corporativas - CoinBR Summit 2016
Blockchain e Aplicações Corporativas - CoinBR Summit 2016Blockchain e Aplicações Corporativas - CoinBR Summit 2016
Blockchain e Aplicações Corporativas - CoinBR Summit 2016Edilson Osorio Junior
 
Aula 3 - Direito e Criptoeconomia.pdf
Aula 3 - Direito e Criptoeconomia.pdfAula 3 - Direito e Criptoeconomia.pdf
Aula 3 - Direito e Criptoeconomia.pdfIsac Costa
 
TDC2017 | São Paulo - Trilha Blockchain How we figured out we had a SRE team ...
TDC2017 | São Paulo - Trilha Blockchain How we figured out we had a SRE team ...TDC2017 | São Paulo - Trilha Blockchain How we figured out we had a SRE team ...
TDC2017 | São Paulo - Trilha Blockchain How we figured out we had a SRE team ...tdc-globalcode
 
TDC 2018 - Boas práticas no desenvolvimento de Smart Contracts
TDC 2018 - Boas práticas no desenvolvimento de Smart ContractsTDC 2018 - Boas práticas no desenvolvimento de Smart Contracts
TDC 2018 - Boas práticas no desenvolvimento de Smart ContractsAndré Ferreira
 
Ativos Digitais no blockchain - Blockcrypto
Ativos Digitais no blockchain - Blockcrypto Ativos Digitais no blockchain - Blockcrypto
Ativos Digitais no blockchain - Blockcrypto Percival Lucena
 
Blockchain como serviço no azure
Blockchain como serviço no azureBlockchain como serviço no azure
Blockchain como serviço no azureVagner Oliveira
 
Engenharia reversa de uma transação via geth
Engenharia reversa de uma transação via gethEngenharia reversa de uma transação via geth
Engenharia reversa de uma transação via gethJúlio Campos
 
TDC2017 | São Paulo - Trilha Blockchain How we figured out we had a SRE team ...
TDC2017 | São Paulo - Trilha Blockchain How we figured out we had a SRE team ...TDC2017 | São Paulo - Trilha Blockchain How we figured out we had a SRE team ...
TDC2017 | São Paulo - Trilha Blockchain How we figured out we had a SRE team ...tdc-globalcode
 
Blockchain e Aplicações Descentralizadas
Blockchain e Aplicações DescentralizadasBlockchain e Aplicações Descentralizadas
Blockchain e Aplicações DescentralizadasOriginalMy.com
 

Semelhante a SmartContratosBlockchain (20)

Começando com Quorum - versão 2.6
Começando com Quorum - versão 2.6Começando com Quorum - versão 2.6
Começando com Quorum - versão 2.6
 
Integrando-se à Blockchain da Ethereum
Integrando-se à Blockchain da EthereumIntegrando-se à Blockchain da Ethereum
Integrando-se à Blockchain da Ethereum
 
Integrando-se à Blockchain da Ethereum
Integrando-se à Blockchain da EthereumIntegrando-se à Blockchain da Ethereum
Integrando-se à Blockchain da Ethereum
 
Blockchain 2.0 - O Bitcoin além do dinheiro digital
Blockchain 2.0 - O Bitcoin além do dinheiro digitalBlockchain 2.0 - O Bitcoin além do dinheiro digital
Blockchain 2.0 - O Bitcoin além do dinheiro digital
 
HACKBCBR - RIPPEX - Rafael Pereira e Jan Schnurle
HACKBCBR - RIPPEX - Rafael Pereira e Jan SchnurleHACKBCBR - RIPPEX - Rafael Pereira e Jan Schnurle
HACKBCBR - RIPPEX - Rafael Pereira e Jan Schnurle
 
Workshop: Ethereum e Smart contracts
Workshop: Ethereum e Smart contractsWorkshop: Ethereum e Smart contracts
Workshop: Ethereum e Smart contracts
 
HACKBCBR - RIPPEX - Rafael Pereira e Jan Schnurle
HACKBCBR - RIPPEX - Rafael Pereira e Jan SchnurleHACKBCBR - RIPPEX - Rafael Pereira e Jan Schnurle
HACKBCBR - RIPPEX - Rafael Pereira e Jan Schnurle
 
Criptografia - Conceitos Fundamentais
Criptografia - Conceitos FundamentaisCriptografia - Conceitos Fundamentais
Criptografia - Conceitos Fundamentais
 
Blockchain e Aplicações Corporativas - CoinBR Summit 2016
Blockchain e Aplicações Corporativas - CoinBR Summit 2016Blockchain e Aplicações Corporativas - CoinBR Summit 2016
Blockchain e Aplicações Corporativas - CoinBR Summit 2016
 
Aula 3 - Direito e Criptoeconomia.pdf
Aula 3 - Direito e Criptoeconomia.pdfAula 3 - Direito e Criptoeconomia.pdf
Aula 3 - Direito e Criptoeconomia.pdf
 
TDC2017 | São Paulo - Trilha Blockchain How we figured out we had a SRE team ...
TDC2017 | São Paulo - Trilha Blockchain How we figured out we had a SRE team ...TDC2017 | São Paulo - Trilha Blockchain How we figured out we had a SRE team ...
TDC2017 | São Paulo - Trilha Blockchain How we figured out we had a SRE team ...
 
Blockchain - Uma breve explicação
Blockchain - Uma breve explicaçãoBlockchain - Uma breve explicação
Blockchain - Uma breve explicação
 
Blockchain - Uma breve explicação
Blockchain - Uma breve explicaçãoBlockchain - Uma breve explicação
Blockchain - Uma breve explicação
 
TDC 2018 - Boas práticas no desenvolvimento de Smart Contracts
TDC 2018 - Boas práticas no desenvolvimento de Smart ContractsTDC 2018 - Boas práticas no desenvolvimento de Smart Contracts
TDC 2018 - Boas práticas no desenvolvimento de Smart Contracts
 
Ativos Digitais no blockchain - Blockcrypto
Ativos Digitais no blockchain - Blockcrypto Ativos Digitais no blockchain - Blockcrypto
Ativos Digitais no blockchain - Blockcrypto
 
Seguranca.pdf
Seguranca.pdfSeguranca.pdf
Seguranca.pdf
 
Blockchain como serviço no azure
Blockchain como serviço no azureBlockchain como serviço no azure
Blockchain como serviço no azure
 
Engenharia reversa de uma transação via geth
Engenharia reversa de uma transação via gethEngenharia reversa de uma transação via geth
Engenharia reversa de uma transação via geth
 
TDC2017 | São Paulo - Trilha Blockchain How we figured out we had a SRE team ...
TDC2017 | São Paulo - Trilha Blockchain How we figured out we had a SRE team ...TDC2017 | São Paulo - Trilha Blockchain How we figured out we had a SRE team ...
TDC2017 | São Paulo - Trilha Blockchain How we figured out we had a SRE team ...
 
Blockchain e Aplicações Descentralizadas
Blockchain e Aplicações DescentralizadasBlockchain e Aplicações Descentralizadas
Blockchain e Aplicações Descentralizadas
 

Mais de Fábio José Moraes

Kafka 101 - Meetup Kafka BR - Oracle
Kafka 101 - Meetup Kafka BR - OracleKafka 101 - Meetup Kafka BR - Oracle
Kafka 101 - Meetup Kafka BR - OracleFábio José Moraes
 
Lições aprendidas sobre transações em microsserviços
Lições aprendidas sobre transações em microsserviçosLições aprendidas sobre transações em microsserviços
Lições aprendidas sobre transações em microsserviçosFábio José Moraes
 
Meetup DevOps - Superestimando a Automação
Meetup DevOps - Superestimando a AutomaçãoMeetup DevOps - Superestimando a Automação
Meetup DevOps - Superestimando a AutomaçãoFábio José Moraes
 

Mais de Fábio José Moraes (6)

Kafka101 na Superdigital
Kafka101 na SuperdigitalKafka101 na Superdigital
Kafka101 na Superdigital
 
Kafka 101 - Meetup Kafka BR - Oracle
Kafka 101 - Meetup Kafka BR - OracleKafka 101 - Meetup Kafka BR - Oracle
Kafka 101 - Meetup Kafka BR - Oracle
 
Lições aprendidas sobre transações em microsserviços
Lições aprendidas sobre transações em microsserviçosLições aprendidas sobre transações em microsserviços
Lições aprendidas sobre transações em microsserviços
 
Event-Driven SAGAs com Kafka
Event-Driven SAGAs com Kafka Event-Driven SAGAs com Kafka
Event-Driven SAGAs com Kafka
 
Encet 2008-ajax java
Encet 2008-ajax javaEncet 2008-ajax java
Encet 2008-ajax java
 
Meetup DevOps - Superestimando a Automação
Meetup DevOps - Superestimando a AutomaçãoMeetup DevOps - Superestimando a Automação
Meetup DevOps - Superestimando a Automação
 

SmartContratosBlockchain

  • 2. Olá! Eu me chamo Fábio Estou aqui porque eu curto blockchain! Você pode me encontrar em https://medium.com/@fabiojose
  • 4. Smart Contracts ● São programas descentralizados, autonomos ● Computadores que os executam podem ser recompensados ● Lógica para modificar a blockchain, transferir valores, etc. ● Resultado só é aceito se a rede entrar em consenso ● Seu estado é persistido globalmente ● Eles não são inteligentes, é apenas um termo para destacá-los
  • 5. Por que ? Por que codificar um smart contract, ao invés de uma APP tradicional?
  • 6. Por que ? ● Moeda digital ● Imutabilidade - resistente à adulteração ● Resiliência ● Segurança acima da velocidade - tradeoff ● Descentralização - nenhum servidor ou entidade central ● Dispensa confiança - trustless
  • 10. Como ethereum funciona? Moeda, Tokens & Smart Contracts Ethereum é completa, porque você pode minerar moedas, criar tokens e rodar smart contracts. Proof-of-Work PoW A rede de produção roda o algoritmo Proof-of-Work para consenso, o mesmo do Bitcoin. Mas existe um movimento para adotar Proof-of-Stake e sharding para escalar a rede. Ether - ETH Ether a criptomoeda, o dinheiro digital da Ethereum. Transações Tudo é uma transação: transferir valores, implantar smart contracts ou executá-los
  • 11. Como ethereum funciona? Gas Para implantar ou consumir um smart contract precisamos ter o Ether. Gas é o imposto para executar a lógica e armazenar dados em Ethereum. Gas Price * Gas Limit Gas Price É o preço em ethers para cada unidade de gas. Out of Gas Quando não há gas suficiente para validar a transação Gas Limit Número máximo de unidades de gas disponíveis para serem consumidas na validação da transação. Value O valor, em ethers, anexado a transação.
  • 12. Value pessoas bagagens mercadorias Gas Limit Gas Price litros abastecidos preço p/ litro autonomia Gas Out of gas Não abasteceu!
  • 13. Solidity Linguagem Linguagem de programação para codificar smart contracts que serão executados na rede Ethereum. Completa Inspirada em C++, JavaScript e Python. Programação Orientada à Objetos, com herança, polimorfismo, encapsulamento, etc. EVM Ethereum Virtual Machine. É máquina virtual que executa o código solidity, similar à JVM - Java Virtual Machine.
  • 14. Solidity ■ IDE online: https://remix.ethereum.org ■ string, bool, int (8-256 bit), uint (8-256 bit), address ■ for, while, if, let, case, mapping, list, struct, function ■ modifier, payable, view, event ■ Funções podem retornar um ou vários resultados ■ Nenhum tipo para ponto flutuante
  • 15. 3. Mão na massa Smart Contract com Solidity e Ethereum
  • 16. Ferramentas ● Ganache GUI - https://truffleframework.com/ganache ● Truffle - https://github.com/trufflesuite/truffle ● Algum editor de código (vim, atom, vscode) ● Git ● Clonar o repositório: https://github.com/fabiojose/blockchain-posse
  • 17. Caso de Uso Transferir posse ● Dono que detém a posse do objeto registra sua posse na blockchain c/ smart contract e define o preço para venda ● Comprador interessado, compra a posse, cujo critério de aceite é o valor ser igual ao de venda ● Valor é transferido ao Dono ● Comprador se torna o novo detentor da posse Comprador Objeto Dono Smart Contract Posse
  • 18. Vamos lá! Show me the code!