Slide 1

Slide 1 text

Basics of smart contracts and DApp development - Koshik Raj

Slide 2

Slide 2 text

Agenda ● Bitcoin and smart contract basics ● Turing complete scripting language to create smart contracts ● Basics of Ethereum ● Setting up Ethereum development environment ● Create an "Hello World" smart contract ● Create, test and deploy a Proof of Ownership application.

Slide 3

Slide 3 text

Why was Bitcoin created?

Slide 4

Slide 4 text

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.

Slide 5

Slide 5 text

How Bitcoin solved it?

Slide 6

Slide 6 text

No content

Slide 7

Slide 7 text

Distributed Ledger Technology (DLT) Each node holds a copy of the blockchain Blockchain + p2p+ Consensus algorithm = DLT

Slide 8

Slide 8 text

Cryptography in blockchain ● Hashing ● Digital signatures

Slide 9

Slide 9 text

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.

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

Smart contracts ● Protocol that allows contracts to be verified and enforced in a self-executing manner. ● Self enforcement removes the need for intermediaries

Slide 15

Slide 15 text

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 Solidity

Slide 16

Slide 16 text

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 smart contract 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 JavaScript

Slide 17

Slide 17 text

Let's build a DApp

Slide 18

Slide 18 text

Contact me: Koshik Raj linkedIn: koshikraj GitHub: koshikraj twitter: rajkoshik [email protected] www.koshik.me “keep calm and create DApps”