technology behind smart contracts 15mintechnology behind smart contracts 15min samer mahfouz cfa...

24
Technology Behind Smart Contracts 15min Samer Mahfouz CFA Financial Innovation Specialist Email: [email protected]

Upload: others

Post on 06-Jun-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Technology Behind Smart Contracts 15minTechnology Behind Smart Contracts 15min Samer Mahfouz CFA Financial Innovation Specialist Email: Samer.Mahfouz@gmail.com . Smart Contracts 3

Technology Behind Smart Contracts

15min

Samer Mahfouz CFA

Financial Innovation Specialist

Email: [email protected]

Page 2: Technology Behind Smart Contracts 15minTechnology Behind Smart Contracts 15min Samer Mahfouz CFA Financial Innovation Specialist Email: Samer.Mahfouz@gmail.com . Smart Contracts 3

Smart Contracts

30 July 2015 3 Jan 2009

Smart Contracts

~7y

3 Oct 2017 12 July 2017

Public, Permissionless Private, Permissioned

2y

2 July 2001

~7y

File sharing

Send as many copies Money

Double Spending problem

Anything

1999

MP3 music

sharing

~2y

Page 3: Technology Behind Smart Contracts 15minTechnology Behind Smart Contracts 15min Samer Mahfouz CFA Financial Innovation Specialist Email: Samer.Mahfouz@gmail.com . Smart Contracts 3

Ethereum, Fabric & Corda are Turing Complete

Alan Turing was highly influential in the development of theoretical computer

science, providing a formalisation of the concepts of algorithm and computation

with the Turing machine, which can be considered a model of a general

purpose computer. Turing is also known for his work on breaking of German

Enigma machine in WW2.

The bomb was an electro-mechanical device used by British

cryptologists to help decipher German Enigma-machine-

encrypted secret messages during WW2

Page 4: Technology Behind Smart Contracts 15minTechnology Behind Smart Contracts 15min Samer Mahfouz CFA Financial Innovation Specialist Email: Samer.Mahfouz@gmail.com . Smart Contracts 3

What it means to be Turing Complete ?

4

1. You can write 0’s and 1’s on a tape/memory.

2. You have conditional branching: If “condition 1 is true” do Action1

otherwise do Action2

(if (myAccount >= $10) then send $10 to Viktorija otherwise exit)

3. Have “infinite” amount of memory

– Practically it means enough memory to run a program.

– Normally, achieved using loops instead of infinite memory.

Essentially, it means, ability to

write programs (contracts) that

can solve any reasonable

computational problem.

Page 5: Technology Behind Smart Contracts 15minTechnology Behind Smart Contracts 15min Samer Mahfouz CFA Financial Innovation Specialist Email: Samer.Mahfouz@gmail.com . Smart Contracts 3

5

Charateristic Ethereum Hyperledger Fabric R3 Corda

Description Generic blockchain platform Modular blockchain platform -Specialized distributed ledger platform

for financial industry.

-Designed to account for the highly

regulated environment of the financial

services industry.

Governance -Public: Ethereum developers, major

mining pools, major exchanges.

- Private: miners.

Linux Foundation R3

Mode of operation (participation to

consensus)

-Permissioinless public or private

- Nodes are identical,

-Permissioned, private

-Nodes have different roles

(nodes are clients, peers or orderers)

-Permissioned, private

-Nodes have different roles

(notary nodes)

Consensus - Mining based on Proof-of-Work (PoW)

- Consensus at Ledger level

- Broad understanding of consensus that

allows multiple approaches.

-Transaction level

- Specific understanding of consensus

(i.e. notary nodes)

- Transaction level

Smart contracts languages Solidity Go, Java Kotlin, Java

Currency - Ether

- Tokens via smart contract

used to pay rewards to miners and

transaction fees.

- None

- Currency and tokens via chaincode (=smart

contract)

- None

Anonymity Pseudoanonymous (can be linked to an

address but not a name)

No No

Privacy No Based on owner and access he grants to

other

Based on owner and access he

grants to other

Cost of operation (Consensys) High (~$10m/day) Only parties taking part in a transaction

have to reach consensus.

Only parties taking part in a

transaction have to reach

consensus.

Page 6: Technology Behind Smart Contracts 15minTechnology Behind Smart Contracts 15min Samer Mahfouz CFA Financial Innovation Specialist Email: Samer.Mahfouz@gmail.com . Smart Contracts 3

Business Logic (1st step in writing a smart contract)

A contract is a set of rules between 2 parties (or more) which govern the exchange of good and services between the two parties.

Labor, Knowledge, …

Salary, bonus, perks

1. Define the KPIs

2. Measure the KPIs

3. If KPIs are met, pay salary to employee at month end.

Page 7: Technology Behind Smart Contracts 15minTechnology Behind Smart Contracts 15min Samer Mahfouz CFA Financial Innovation Specialist Email: Samer.Mahfouz@gmail.com . Smart Contracts 3

Amazon Purchase

7

You order a

phone from

Amazon

1

Phone company list

phones for sale

Transaction Account

2

3

Oder is sent to

the warehouse

Order is sent to

the shipping

company

Shipping may include multiple

shipping companies and custom

crossing

4

5 6

Package delivered

If no complaint by Buyer before a set date,

forward money to merchant

Otherwise Raise a Dispute case

7

Page 8: Technology Behind Smart Contracts 15minTechnology Behind Smart Contracts 15min Samer Mahfouz CFA Financial Innovation Specialist Email: Samer.Mahfouz@gmail.com . Smart Contracts 3

Linked Smart Contract

8

Master Smart Contract

Customer & Merchant

Smart Contract

Shipping

Smart Contract

Disputer Resolution

Smart Contract

The Vision: A well written smart contract

should be able to replicate the business logic of a company.

Page 9: Technology Behind Smart Contracts 15minTechnology Behind Smart Contracts 15min Samer Mahfouz CFA Financial Innovation Specialist Email: Samer.Mahfouz@gmail.com . Smart Contracts 3

Dapps and DAO

Dapps – Decentralized Applications

DAO – Decentralized Autonomous Organizations

9

DAO is a set of Smart Contracts that are interconnecting to run an organization automatically.

Page 10: Technology Behind Smart Contracts 15minTechnology Behind Smart Contracts 15min Samer Mahfouz CFA Financial Innovation Specialist Email: Samer.Mahfouz@gmail.com . Smart Contracts 3

Amazon as a DAO - Business Workflow

10

IF (warehouse confirm item shipment ) AND (shipping company confirm item shipment)

THEN

(Pay x% of the transaction to the merchant)

End

IF (item is received by customer based on last mile delivery company) AND (Y number of

days passed)

THEN IF ( No dispute raised by the buyer)

THEN

(Pay the merchant transaction value - x% - platform commission)

ELSE

(raise an ODR tracking ticket and send it to ODR smart contract)

END

END

-Tracking #

-Time stamp

-Geo position

-Digital Signature

Page 11: Technology Behind Smart Contracts 15minTechnology Behind Smart Contracts 15min Samer Mahfouz CFA Financial Innovation Specialist Email: Samer.Mahfouz@gmail.com . Smart Contracts 3

Writing a Token

Smart Contract

Page 12: Technology Behind Smart Contracts 15minTechnology Behind Smart Contracts 15min Samer Mahfouz CFA Financial Innovation Specialist Email: Samer.Mahfouz@gmail.com . Smart Contracts 3

1. Ethereum Blockchain Browser and Wallet

Install Mist or Ethereum Wallet

https://github.com/ethereum/mist/releases

Mist is an Ethererum Browser provided by the

Ethereum foundation. It has a wallet too,

called the Ethereum Wallet.

Mist includes the Ethereum Wallet.

Current we are at version 0.10,

so not even version 1! Which tells you that it is still work in progress.

12

Page 13: Technology Behind Smart Contracts 15minTechnology Behind Smart Contracts 15min Samer Mahfouz CFA Financial Innovation Specialist Email: Samer.Mahfouz@gmail.com . Smart Contracts 3

2. Run the Remix IDE development run in a Browser

How to create and publish a smart contract

2. Run Remix

http://remix.ethereum.org

Remix a browser based IDE developed by the Ethereum developers.

Source editor, file manager, compiler and debugger.

13

Page 14: Technology Behind Smart Contracts 15minTechnology Behind Smart Contracts 15min Samer Mahfouz CFA Financial Innovation Specialist Email: Samer.Mahfouz@gmail.com . Smart Contracts 3

3. Pick the ERC20 Token Standard template (Smart contract template used for creating tokens)

ERC20 (Ethereum Request for Comments) Token Standard Interface defines standard functions a token contract can implement.

Motivation: These functions will allow dapps and wallets to handle tokens across multiple interfaces/dapps.

Most important “ERC20 interface” functions are:

1. BalanceOf --------(Get the account balance of another account with address _owner)

2. Transfer -----------(Send _value amount of tokens to address _to)

3. Transfer event --- (Triggered when tokens are transferred)

(if (myAccount >= 10) then send 10 to Viktorija otherwise exit)

If BalanceOf (myAccount) >= 10 then Transfer(10, Viktorija_Account) otherwise exit) Transfer event (ex: send SMS message to my phone) ----triggered in case of Transfer

14

Page 15: Technology Behind Smart Contracts 15minTechnology Behind Smart Contracts 15min Samer Mahfouz CFA Financial Innovation Specialist Email: Samer.Mahfouz@gmail.com . Smart Contracts 3

4. Write your token Program in Solidity

Create a Token

15

Page 16: Technology Behind Smart Contracts 15minTechnology Behind Smart Contracts 15min Samer Mahfouz CFA Financial Innovation Specialist Email: Samer.Mahfouz@gmail.com . Smart Contracts 3

5. Start the Ethereum Wallet

16

You need to deploy the contract from tour main account.

Page 17: Technology Behind Smart Contracts 15minTechnology Behind Smart Contracts 15min Samer Mahfouz CFA Financial Innovation Specialist Email: Samer.Mahfouz@gmail.com . Smart Contracts 3

6. Enter the needed parameters before deploying the contract

Enter the required parameters for your ERC20 token

17

CFAT

Page 18: Technology Behind Smart Contracts 15minTechnology Behind Smart Contracts 15min Samer Mahfouz CFA Financial Innovation Specialist Email: Samer.Mahfouz@gmail.com . Smart Contracts 3

7. Deploy the contract

Enter the fee and authorize the transaction by entering your wallet password

18

Page 19: Technology Behind Smart Contracts 15minTechnology Behind Smart Contracts 15min Samer Mahfouz CFA Financial Innovation Specialist Email: Samer.Mahfouz@gmail.com . Smart Contracts 3

8. View Created tokens in your wallet

19

CFAT

CFAT

Page 20: Technology Behind Smart Contracts 15minTechnology Behind Smart Contracts 15min Samer Mahfouz CFA Financial Innovation Specialist Email: Samer.Mahfouz@gmail.com . Smart Contracts 3

9. Transfer Tokens from one account to another

20

I will transfer the new token from main account to Account1 and check the transaction on etherscan

CFAT CFAT

Page 21: Technology Behind Smart Contracts 15minTechnology Behind Smart Contracts 15min Samer Mahfouz CFA Financial Innovation Specialist Email: Samer.Mahfouz@gmail.com . Smart Contracts 3

10. Define the token in your metamask wallet

Check the transaction on etherscan then define the token in the wallet metamask account.

21

Page 22: Technology Behind Smart Contracts 15minTechnology Behind Smart Contracts 15min Samer Mahfouz CFA Financial Innovation Specialist Email: Samer.Mahfouz@gmail.com . Smart Contracts 3

11. Check your token on Etherscan: The contract has an address

22

CFAT

Page 23: Technology Behind Smart Contracts 15minTechnology Behind Smart Contracts 15min Samer Mahfouz CFA Financial Innovation Specialist Email: Samer.Mahfouz@gmail.com . Smart Contracts 3

Smart Contracts Recognized under Tennessee Law! --23 Mar 2018

23

Page 24: Technology Behind Smart Contracts 15minTechnology Behind Smart Contracts 15min Samer Mahfouz CFA Financial Innovation Specialist Email: Samer.Mahfouz@gmail.com . Smart Contracts 3

QUESTIONS?

Samer Mahfouz CFA

Financial Innovation Specialist

Email: [email protected]