Basics of blockchain and decentralized applications

68a8092ba46ca5848bcdfc453d81c4bb?s=47 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


  1. Basics of blockchain and decentralized applications - Koshik Raj

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

    using Distributed Ledger Technology • Bitcoin consensus algorithm and transactions
  3. When did it all start?

  4. 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.
  5. Why was it created?

  6. 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.
  7. Decentralization ?

  8. Byzantine generals’ problem

  9. Decentralization problem • Trustless entities • How to believe on

    single truth?
  10. How Bitcoin solved it?

  11. None
  12. Distributed Ledger Technology (DLT) Each node holds a copy of

    the blockchain Blockchain + p2p+ Consensus algorithm = DLT
  13. Cryptography in blockchain • Hashing • Digital signatures

  14. Blockchain Hash value Previous block hash value

  15. Blockchain 1234 1234 1235 1235 1237

  16. Blockchain

  17. 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.
  18. 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
  19. Hash puzzle Find a hash value which is less than

    a specified value 0000000000000756af69e2ffbdb930261873cd71
  20. Peer-to-peer network Decentralized network is achieved with the peer-to-peer protocol.

    Every node in the network has equal responsibility.
  21. 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
  22. 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
  23. 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:
  24. 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
  25. Smart contracts • protocol that allows contracts to be verified

    and enforced in a self-executing manner.
  26. Ethereum basics • Ethereum is a widely-used platform for creating

    decentralized applications ( • Ethereum houses its own distributed virtual machine, and scripting language called Salidity
  27. 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
  28. Let's build a DApp

  29. Contact me: Koshik Raj linkedIn: koshikraj GitHub: koshikraj twitter: rajkoshik “keep calm and create DApps”