15
BLOCKCHAIN – UMA BREVE EXPLICAÇÃO ETHEREUM HANDS ON Roberto Santacroce Martins Outubro/2016

Blockchain - Uma breve explicação

Embed Size (px)

Citation preview

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