Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Basics of blockchain and decentralized applicat...

Koshik Raj
November 17, 2018

Basics of blockchain and decentralized applications

Workshop conducted at SCEM to introduce blockchain and DApp development with the following agenda:

# Session 1:

* Blockchain background and basics

* Basics of decentralization using Distributed Ledger Technology

* Bitcoin consensus algorithm and transactions

# Session 2:

* Smart contract basics

* Turing complete scripting language to create smart contracts

* Basics of Ethereum

* Setting up Ethereum development environment

* Create and deploy a "Hello World" smart contract

* Create, test and deploy a Proof of Ownership application.

Koshik Raj

November 17, 2018
Tweet

More Decks by Koshik Raj

Other Decks in Technology

Transcript

  1. Agenda • Blockchain background and basics • Basics of decentralization

    using Distributed Ledger Technology • Bitcoin consensus algorithm and transactions
  2. Bitcoin history • Several cypherpunks attempted to implement cryptocurrencies in

    1990s. ◦ Bit gold, DigiCash • "Bitcoin: A Peer-to-Peer Electronic Cash System" a paper was published by Satoshi Nakamoto. • It was implemented as a decentralized accounting system.
  3. Centralization concerns in the past • Cyber attacks on major

    institutions. ◦ Sony pictures, JP Morgan Chase data breach. ◦ Target customer confidential data breach. • Expensive transaction fee. • Subprime mortgage crisis in 2008.
  4. Distributed Ledger Technology (DLT) Each node holds a copy of

    the blockchain Blockchain + p2p+ Consensus algorithm = DLT
  5. Consensus mechanism • Algorithm to reach a global truth •

    Consensus mechanism solves the byzantine generals’ problem. • Bitcoin’s proof-of-work is the first and well known consensus algorithm.
  6. Consensus algorithm: proof-of-work • Uses hash puzzle to do work

    • Incentivizes miner for their work from transaction fee + new coins • Hash cash proposed in 1997 by Adam Back • Reduce email spam and DOS attacks
  7. Hash puzzle Find a hash value which is less than

    a specified value 0000000000000756af69e2ffbdb930261873cd71
  8. Achieving consensus Each node has to perform a few tasks

    to achieve the consensus. • Validate each incoming block • Select the longest blockchain • Create a valid block
  9. Bitcoin addresses • Bitcoin uses asymmetric cryptography to generate public-private

    key pair • Public key is used to generate the public address • Private key is used to sign the transactions ◦ bitcoin-cli getnewaddress 1JK1yCXbP2WkwgzbAUqpWTeo9rQkA9seNg ◦ bitcoin-cli dumpprivkey 1JK1yCXbP2WkwgzbAUqpWTeo9rQkA9seNg L2NAKvQsbkeQZyhfPRWw1juQ19ohxGCFbdr8izQSHEmKWYFtVjXK
  10. Bitcoin transactions • Bitcoin does bookkeeping with a transaction based

    ledger • Every transaction must be validated by the node • Every transaction consists of inputs and outputs • Transaction fee must be paid for every transaction created • Unconfirmed transactions are maintained in mempool: https://www.blockchain.com/btc/unconfirmed-transactions
  11. Transaction verification • Bitcoin uses Turing incomplete stack-based language called

    "Script" • Uses locking and unlocking scripts ◦ Locking: 4 OP_ADD 6 OP_EQUAL ◦ Unlocking: 2
  12. Ethereum basics • Ethereum is a widely-used platform for creating

    decentralized applications (https://www.stateofthedapps.com/stats) • Ethereum houses its own distributed virtual machine, and scripting language called Salidity
  13. Ethereum VM and Solidity • EVM provides a runtime environment

    to execute smart contracts • EVM runs on a node that is isolated from the Ethereum network • Only the smartcontract output can be inserted to the blockchain • EVM executes the compiled Solidity bytecode • Solidity is a contract-oriented programming language influenced by C++, Python and JavaScrip