O documento explica o que é blockchain, bitcoin e ethereum. Ele também descreve como o bitcoin funciona usando blockchain e como os contratos inteligentes no ethereum permitem o desenvolvimento de aplicações descentralizadas. Por fim, lista os principais tópicos a serem abordados em um treinamento hands-on sobre ethereum.
1. BLOCKCHAIN – UMA BREVE EXPLICAÇÃO
ETHEREUM HANDS ON
Roberto Santacroce Martins
Outubro/2016
2.
3. AGENDA
O que é Blockchain ?
O que é Bitcoin ?
Como o Bitcoin funciona ?
Redes Centralizadas, Decentralizadas e Distribuídas
Arquitetura de Aplicações Blockchain
O que é Ethereum ?
O que é Ether ?
O que são contratos inteligentes ?
HANDS ON
4. O QUE É BLOCKCHAIN ?
Blockchain é para o dinheiro o que a internet é para a
informação
Blockchain é a tecnologia usada para indivíduos efetuarem
transações de propriedade como pagamentos de serviços sem a
necessidade de uma terceira parte confiável.
Blockchain é uma abordagem para a solução do problema dos
“Generais de Bizantyno” ou melhor “Tolerância a Falha”,
utilizando computação, criptografia e teoria dos jogos.
5. O QUE É BITCOIN ?
Bitcoin é a primeira e mais antiga (aproximadamente 7 anos)
aplicação usando Blockchain
Foi criada em 2008/2009 por Satoshi Nakamoto
Hoje está capitalizada em mais de USD 9 Bi
Investimentos em empresas usando a tecnologia já ultrapassam
USD 1 Bi nos últimos 3 anos
Bitcoin pode ser usado como DINHEIRO, é uma REDE DE
PAGAMENTOS e um PROTOCOLO PARA VALORES.
6. COMO O BITCOIN FUNCIONA ?
https://www2.deloitte.com/content/dam/Deloitte/lu/Documents/technology/lu_deloitte-digital-blockchain.pdf
8. REDES CENTRALIZADAS, DECENTRALIZADAS E DISTRIBUÍDAS
https://followmyvote.com/wp-content/uploads/2015/09/Follow-My-Vote-Featured-on-Venture-Radar.jpg
9. ARQUITETURA DE APLICAÇÕES BLOCKCHAIN
Meta Tecnologia
Banco de Dados Decentralizados
Processamento decentralizado
Redes P2P
Extrato de Contas compartilhados e/ou distribuídos
Ambiente de Desenvolvimento de Software
The Business Blockchain – William Mougayar
10. O QUE É ETHEREUM ?
É uma plataforma decentralizada que executa
contratos inteligentes: aplicações que rodam
exatamente como programadas sem a
possibilidade de indisponibilidade, censura,
fraude ou ainda uma intervenção por uma
terceira parte.
Nas arquiteturas tradicionais as aplicações tem
os seus próprios servidores que rodam seus
programas em “silos” isolados, tornando o
compartilhamento de dados extremamente
difícil.
As aplicações que rodam no Ethereum mantem
o histórico completo de seu estado durante
toda a sua existencia.
O Ethereum é uma plataforma para aplicações
em Blockchain
11. O QUE É ETHER ?
O CRIPTO COMBUSTÍVEL PARA A REDE DO ETHEREUM
É uma forma de pagamento feita pelos clientes da plataforma
para as maquinas que executam as operações (smart contracts)
solicitados.
É um incentivo assegurando que desenvolvedores escrevem
aplicações de qualidade (código ruins gastam mais).
12. O QUE SÃO CONTRATOS INTELIGENTES ?
É um protocolo de computador feito para
facilitar, verificar ou reforçar a negociação
ou desempenho de um contrato, sendo
capaz de ser executado ou de se fazer
cumprir por si só. Para que seja considerado
um contrato inteligente, a transação deve
envolver mais do que uma simples
transferência de moeda virtual entre duas
pessoas (como uma transferência de
pagamento, por exemplo), deve envolver
duas ou mais partes (como todo contrato), e
a implementação do contrato não deve
requerer envolvimento humano direto a
partir do momento em que o contrato foi
firmado. Wikipedia
Smart Contract
DAO
(grupo de smart contracts)
DAPP
Conjunto de DAO
e aplicações
completas
externas ou não
ao Blockchain
13. SOLIDITY PARA PROGRAMA DE MILHAGENS
contract Milhas {
string public name;
string public symbol;
uint8 public decimals;
/* Cria um array com todos os balances associados a um endereço*/
mapping (address => uint256) public balanceOf;
event Transfer(address indexed from, address indexed to, uint256 value);
function Milhas(uint256 initialSupply, string tokenName, uint8 decimalUnits, string tokenSymbol) {
balanceOf[msg.sender] = initialSupply; // Give the creator all initial tokens
name = tokenName; // Set the name for display purposes
symbol = tokenSymbol; // Set the symbol for display purposes
decimals = decimalUnits; // Amount of decimals for display purposes
}
/* Envia milhas */
function transfer(address _to, uint256 _value) {
/* Verifica se as partes tem saldo disponível */
if (balanceOf[msg.sender] < _value || balanceOf[_to] + _value < balanceOf[_to])
throw;
/* Efetua crédito e débito dos valores para os endereços */
balanceOf[msg.sender] -= _value;
balanceOf[_to] += _value;
Transfer(msg.sender, _to, _value);
}
}
https://www.ethereum.org/token
14. HANDS ON
- Rodando uma rede privada de Ethereum
- Criando uma Wallet usando a linha de comando
- Verificando o Saldo de uma Wallet
- Mineirando Ethereum em uma rede privada
- Enviando um pagamento para uma Wallet
- Consultando a rede do Ethereum usando a linha de comando
- Mist o browser do Ethereum
- Criando um Contrato Inteligente com Solidity
(Vamos decidir o propósito do nosso contrato no dia do
treinamento)
- Executando um Contrato Inteligente
15. Referencias
State of The Dapps
http://dapps.ethercasts.com/
Ethereum
https://www.ethereum.org/
Brings Ethereum to your browser
https://metamask.io/
Go Ethereum Implementation (GETH)
https://github.com/ethereum/go-ethereum