BLOCKCHAIN – UMA BREVE EXPLICAÇÃOETHEREUM HANDS ON
Roberto Santacroce Martins Outubro/2016
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
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.
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.
COMO O BITCOIN FUNCIONA ?
https://www2.deloitte.com/content/dam/Deloitte/lu/Documents/technology/lu_deloitte-digital-blockchain.pdf
E AGORA DILBERT ?
REDES CENTRALIZADAS, DECENTRALIZADAS E DISTRIBUÍDAS
https://followmyvote.com/wp-content/uploads/2015/09/Follow-My-Vote-Featured-on-Venture-Radar.jpg
ARQUITETURA DE APLICAÇÕES BLOCKCHAIN
Meta Tecnologia Banco de Dados DecentralizadosProcessamento decentralizadoRedes P2PExtrato de Contas compartilhados e/ou distribuídosAmbiente de Desenvolvimento de Software
The Business Blockchain – William Mougayar
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
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).
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)
DAPPConjunto de DAO e aplicações completas externas ou não ao Blockchain
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
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
Referencias
State of The Dappshttp://dapps.ethercasts.com/Ethereum https://www.ethereum.org/Brings Ethereum to your browserhttps://metamask.io/Go Ethereum Implementation (GETH)https://github.com/ethereum/go-ethereum