O documento discute smart contracts, contratos inteligentes executados na blockchain de Ethereum. Explica como eles funcionam de forma autônoma e descentralizada, permitem a transferência de valores e modificação da blockchain sem necessidade de confiança em terceiros. Também apresenta exemplos de uso de smart contracts para transferência de posse de bens e discute as ferramentas Solidity e Ganache para desenvolvimento de contratos inteligentes.
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.
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
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