INTRODUCTION TO · Ethereum is an open blockchain platform that lets anyone build and use...

Post on 13-Aug-2020

1 views 0 download

Transcript of INTRODUCTION TO · Ethereum is an open blockchain platform that lets anyone build and use...

INTRODUCTION TO ETHEREUM ECOSYSTEM

& SMART CONTRACTS

NPD Meet @ Divum Corporate Services Pvt Ltd.

Jitendra Kumar.Balla & Vaideeswaran sethuraman

AGENDA

1. What is a Blockchain?

2. Ethereum 3. Ethereum SMART Contracts

CENTRALIZED

Issues:

Single point failure

Scaling

Inefficiency

All activities are managed by one person/Organization

DECENTRALIZEDSolves:

Single point failure

Scaling

Inefficiency

Security and Transparency

Transaction time

INTRODUCTION TO BLOCKCHAIN

BLOCKCHAINA blockchain allows for trustless transactions between multiple parties. Or, more importantly, it allows transactions without trust of a third party intermediary!

Decentralized system for an exchange a value/asserts

○ Distributed ledger

○ Immutability

○ Consensus

○ Security

LET’S START WITH A TRANSACTION THAT OCCURS BETWEEN ACCOUNTS

Transaction #200

Account A Account BE.g. Send 2 tokens

An example transaction could be:

Account A will send 1 tokens to Account B

A LEDGER IS A LIST OF TRANSACTIONS (GROUPED INTO BLOCKS)

LEDGERBlock #100 Last Block: #99 (H) Timestamp: TM,

Transaction #399

Transaction #400

Transaction #401

Block #97Block #98

Block #99

Blocks contain an

indeterminate number of

transactions

BLOCKS ARE CHAINED TOGETHER

LEDGERBlock #100 Last Block: #99

Transaction #399

Transaction #400

Block #97 Block #98 Block #99

Blocks are generated on a

time interval(e.g. every 5

minutes)

The ledger is a chain of blocks! Each block is created with a pointer to the previous block creating a blockchain!

LEDGER

Distributed ledger = Distributed database

BLOCKCHAIN

Decentralized system for an exchange a value/asserts

○ Distributed ledger

○ Immutability

○ Consensus

○ Security

BLOCKCHAIN

Decentralized system for an exchange a value/asserts

○ Distributed ledger

○ Immutability

○ Consensus

○ Security

CONSENSUS

Consensus = Protocol by which peers agree on state of ledger

○ Ensure all peers in the network has exactly the same copy of ledger

○ Fraudulent transactions kept out of the ledger

○ Guarantees to record transactions in chronological order

BLOCKCHAIN

Decentralized system for an exchange a value/asserts

○ Distributed ledger

○ Immutability

○ Consensus

○ Security

SECURITY

Wow!!, thats cool stuff

Bitcoin:

- Transfer money- Fast transactions- Less fee- Transparent

Wow!!, thats cool stuff

Bitcoin:

- Transfer money- Fast transactions- Less fee- Transparent

Great Technology:

- Launch my sub currency - ICO (Crowdfunding)- Managing digital assets- Local laws

INTRODUCTION TO ETHEREUM

ETHEREUM

Ethereum is an open blockchain platform that lets anyone build and use decentralized applications that run on blockchain technology.

Ethereum is world of computers

HOW DOES ETHEREUM WORK?

○ Ethereum’s basic unit is the account

○ State of every account

○ The Ethereum blockchain tracks the state of every account, and all state transitions on the Ethereum blockchain are transfers of value and information between accounts.

ETHEREUM ACCOUNTS:

There are two types of accounts:

○ Externally Owned Accounts (EOAs)

○ Contract Accounts, which are controlled by their contract code and can only be “activated” by an EOA

ETHEREUM ACCOUNTS: Elliptic Curve Digital Signature Algorithm (ECDSA)

ETHEREUM ACCOUNTS:

○ Has an ether balance

○ Can send transactions (ether transfer or trigger contract code), EOA

○ Bytecode

○ Nonce

SMART CONTRACTS

ETHER, EVM, GAS

ETHEREthereum value token is called Ether

Denominations:

Unit Wei Value Wei

wei 1 wei 1

Kwei (babbage) 1e3 wei 1,000

Mwei (lovelace) 1e6 wei 1,000,000

Gwei (shannon) 1e9 wei 1,000,000,000

microether (szabo) 1e12 wei 1,000,000,000,000

milliether (finney) 1e15 wei 1,000,000,000,000,000

ether 1e18 wei 1,000,000,000,000,000,000

ETHER SUPPLY○ 48 days presale (July 2014): $ 60 M

○ 12M created to fund development

○ 5 Eth will created as rewarded for every block

○ 2-3 eths for non winning miners

○ Contract execution user pays Ether’s

ETHEREUM VIRTUAL MACHINE

○ Ethereum is “Turing complete”.

○ EVM will load bytecode and execute instructions

○ Every node will run eth client

GAS○ Gas is the metering unit for use of the World Computer

○ Each operation in the EVM consumes gas

○ totalEstGas = startgas * gasprice

Transactions0x60 0x01 0x60 0x02 0x01

Operation Name Gas Cost Remark

step 1 default amount per execution cycle

stop 0 free

suicide 0 free

sha3 20

sload 20 get from permanent storage

sstore 100 put into permanent storage

balance 20

create 100 contract creation

call 20 initiating a read-only call

memory 1 every additional word when expanding memory

txdata 5 every byte of data or code for a transaction

transaction 500 base fee transaction

contract creation 53000 changed in homestead from 21000

ETHEREUM TRANSACTIONS:

BITCOIN● Transactions based● Block creation ~10mins● Less number of transactions● Require high computation power● Not stopping big miners● Limited transaction based bitcoin

signature(128)● Limited functions● Peers can block list transaction ● SHA2 not so secure● SHA256 is not ASIC resistance

● Account based● Block creation ~12sec● Mining algorithm based on

memory usage (Gas)● Can decouple components● Rich programing language for

contracts (Solidity)● Uses SHA3● Customize protocol based on local

law● EthHash is ASIC resistance

ETHEREUM

INTRODUCTION TO ETHEREUM DAPPS

○ Ethereum Client’s

○ Installation of Geth

○ Geth commands

○ Web3JS Apis

○ Solidity

○ Smart contracts

○ Deploying smart contracts

ETHEREUM CLIENTS

eth pyethapp geth ethereumjs-lib

3rd Party Impl

ethereumj ruby-ethereum ethereumjs-lib parity

SOLIDITY

SOLIDITYSolidity is the most popular programming language used to write smart contracts to run on the Ethereum blockchain.

It is a high level language which when compiled gets converted to EVM bytecode.

This is very similar to the world of Java where there are JVM languages like Scala, Groovy, Clojure, JRuby etc.

SOLIDITY INTEGRATION TOOLS

IDE’s- Remix- IntelliJ IDEA plugin- Visual Studio Extension- Etheratom- Solium- Emacs Solidity- Package for SublimeText — Solidity language syntax

SOLIDITY INTEGRATION TOOLSSolidity Tools

- DappBuild tool, package manager, and deployment assistant

for Solidity.

- Solidity REPL

Instant command-line solidity console.

- solgraph

- Doxity

STRUCTURE OF A CONTRACT- Types

- Operators

- Functions

- Function Modifiers

- Events

- Enum Types

- Types

Booleans

Integers

Address

String

Enums

- Function Types

public, private, internal, external

- Function Modifiers

STRUCTURE OF A CONTRACT

- Types

Booleans

Integers

Address

String

Enums

- Function Types

Public, private, internal

- Function Modifiers

STRUCTURE OF A CONTRACT

TRUFFLE/EMBARK

We have frameworks for web application development such as Ruby on Rails, Python/Django etc, Truffle and Embark are the two most popular frameworks used to develop Dapps.

They abstract away lot of the complexities of compiling and deploying your contract on the blockchain.

LET’S CODE….