This smart contract tutorial will help you understand what is a smart contract.

This smart contract tutorial will help you understand what is a smart contract, why we need a smart contract, solidity for a smart contract, Blockchain implementation of the smart contract, voting process, hospitals and at the end you will see a use case implementation on crowdfunding smart contract.

Smart contracts are self-executing contracts which contain the terms and conditions of an agreement between the peers. A smart contract is very similar to a vending machine. It eliminates the need for intermediate and escrow services. The terms and conditions of an agreement are written in code. These agreements facilitate the exchange of money, shares, property etc. All of this process is executed in Blockchain’s decentralized platform. So, let us get started and understand what is a smart contract.

Below topics are explained in this smart contract tutorial:

1. Why smart contract? ( 00:33 )

2. What is a smart contract? ( 04:26 )

3. Solidity for smart contract ( 08:07 )

4. Blockchain implementation of a smart contract ( 09:56 )

5. Voting process 

6. Hospitals

7. Use case – Crowd funding smart contract ( 19:56 )

TRANSCRIPTION

hello everyone and welcome to this

session of smart contracts my name is

Sarah and I’m part of the simple learn

team so let’s get started and understand

what is a smart contract what’s in it

for us today let’s understand why do we

need a smart contract what is a smart

contract usage of solidity for building

smart contract advantages or smart

contract blockchain implementation of

smart contracts we will look at certain

examples of voting and digital token and

also we will take another use case of

how smart contract help us do

crowdfunding now why smart contract now

let’s take a look traditionally how

contracts used to happen if suppose two

parties a and B have to get into a

contract they will utilize the services

of a third party whom they have to trust

and get the contract executed now with

the introduction of smart contracts and

the technology which is evolving it

removes the dependency on such third

parties and automates the execution of

such smart contracts so if we compare

traditional versus the new smart

contract in traditional we used to have

government’s lawyers or any other third

party on which we can trust in smart

contracts we don’t need any third party

we don’t need any intermediate execution

time definitely there is higher at

execution time in traditional contracts

because as many number of middlemen and

their intermediary layers that many

number of days and time takes smart

contract is just a matter of minutes it

gets executed because it is automated

programmable running on a computer and

it has some predefined conditions the

remittance if any remittance of either

of the parties have to happen then it is

a manual process approvals workflows

processes

and these manual processes take time

under traditional contracting system but

in a smart contract as the conditions

are predefined pre embedded as soon as a

condition is met the remittance happens

automatically either of the parties who

have to be credited with an amount is

corrected automatically and that is the

primary advantage of using a smart

contract transparency not available 100%

in traditional contracts the

transparency is bound peripheral between

the parties and the entities and the

intermediaries involved as compared to

smart contract transparency is 100%

available 24 by 7 online anyone can go

and review audit and validate the

transactions executed by the smart

contracts archiving archiving is a big

difficult problem for traditional

contracts as most of the transactions

are paper-based or the records are

maintained offline it becomes very

difficult to maintain and identify the

traceability provenance of all the

transactions which have happened in a

traditional contract whereby in a smart

contract it becomes easy as all the

transactions have happened through the

smart contract there is a hundred

percent traceability available from the

provenance point of view you can trace

the transaction from its day one the

point of origin till presently

and archiving is automatically happening

the log the audit the transaction

history is automatically getting

generated security definitely is a

concern in traditional contracts as the

intermediate reason involved manual

processes involved security can be

compromised at any level at any stage

but in its Marc contract the security is

maintained through cryptography mainly

through public key infrastructure the

public and private key infrastructure it

is a very secure way of maintaining

security and cryptography of the

transactions using a smart contract cost

yes traditional contracts are expensive

the cost of transaction is high as

compared to smart contracts as the

middlemen are involved smart contract

the cost is low as we don’t have any

intermediaries and only the cost of

transaction is charged by the underlying

infrastructure of the blockchain Network

which is running the smart contract

signatures its manual process all the

transactions are signed manually and

verified manually but here in the smart

contracts

all the transactions are digitally

signed using the private key of the

entities and can only be decoded by the

public key shade by the parties involved

in the smart contract so in a nutshell

smart contracts give us n number of

advantages the primary advantages are

listed here and these are the advantages

which enforce us to move towards an

economy and to a system where we start

using smart contracts for our

transactions to avoid any disputes to

keep the transaction cost low thereby

giving the advantage to the end consumer

now what is a smart contract let’s

consider a real-life example where you

are taking out a chocolate from a

vending machine you deposit a $2.00 node

in a vending machine after that you hit

even button which is mapped against the

chocolate bar that you want to buy as a

result a liver in vending machine moves

and pushes out the chocolate so

basically even button is programmed to

the liver in order to move the chocolate

out now a smart contract is very similar

to a vending machine it eliminates the

need of an intermediary in case of the

vending machine is replacing a direct

seller and allowing you to make a

purchase without a middleman and it

eliminates the need of escrow services

now smart contracts are specific see

tooting contract which contain the terms

and conditions of an agreement between

the parties and the peers who are

involved in that agreement so the terms

and conditions of an agreement are

written in a piece of code and it is

executed on a blockchain based

decentralized platform now these

agreements Silla dates exchange of any

digital asset it could be digital

currency

it could be shares it could be property

or it could be anything which you want

to transact so a blockchain based v

centralized platform gives you a

democratic system where the transactions

are authorized by the majority of the

participants and the identity of the

participants is also kept anonymous now

let’s consider an example where rachel

is at the airport and her flight is

delayed but this inconvenience could

have been beneficial to Richard as smart

contract insurance would ensure she is

given a compensation for the flights

delay instantly so just imagine there is

a smart contract which the insurance

company has already deployed and its

monitor

during the flights delayed Rachel has

already taken that insurance for delay

in flights so as soon as that condition

is met for a delay of flight above X

amount of hours for example two hours

then in that case the insurance company

will automatically get that trigger and

Rachel will be credited with that amount

for which she is insured in her account

so let’s see how smart contract can be

helpful here so X a flight delay

insurance is one of the examples of

aetherium smart contract AXA is an

insurance company the smart contract is

linked to the databases that record

flight status so that smart contract is

connected to the databases it is

fetching that information and evaluating

the delay it enables automatic

compensation when there is a delay for

two hours or more so that is the

condition when the flight delay is

beyond two hours then the insurance

contract will get executed and Rachel

will get paid a smart contract is

created based on the terms and

conditions so condition compensation is

equal to flight delays less than two

hours based on the code smart contract

holds the company’s money until a

certain condition is satisfied this

smart contract is submitted to the nodes

on the blockchain

network to their EVMs for evaluation

so EVM is a runtime compiler to execute

smart contracts code it is the brain it

is the electronic virtual machine which

executes the smart contract all nodes on

the network executing the code using the

EVM must come to the same result because

all the EVMs would have the same copy of

the smart contract deployed if flight is

delayed two or more our smart contract

will be self executed and the

compensation amount will be given to

Rachel and that is the objective of the

smart contract without involvement of

any middleman paperwork which ritual has

to do to submit and then the insurance

company going through the manual process

all that has been bypassed and rachel

has been compensated directly now let’s

understand why do we need solidity for

developing our smart contracts now here

comes the important question which

programming language does not contract

use there are two widely used

programming languages for writing Scania

smart contract solidity

serpent however on bloxy platform

solidity is widely used for implementing

smart contracts and this is what we were

going to talk about in our subsequent

slides

now solidity is a high-level programming

language used for implementing smart

contracts it enables to check the

program at run time rather than compile

time solidity is a turing-complete

language it has all the conditions all

the while loops for route operators etc

which are there in any mature

programming language in order to write

your code in order to write your

conditions if you have certain loop if

you have while conditions etc now what

are the advantages of smart contracts as

we have already discussed there are no

intermediate reason vult the process

executes without the need of a third

party it’s an automated process they are

automated with the code which eliminates

manual effort for execution it’s the

high speed highly computed smart

contracts which runs on programming code

the speed of its execution is higher

than a traditional contract as data is

stored in the be centralized system the

chances of modifying the data is

difficult and I would say more than

impossible accuracy based on the

requirement terms and condition of a

contract is recorded accurately so as

soon as any transaction is recorded it

is registered on a blockchain network

and it is immutable transaction no one

can modify or make changes in any record

which has been added onto a blockchain

it was through a smart contract now

let’s take a look at certain blockchain

implementation of a smart contract using

block came in voting process can

eliminate

voting mal practices a centralized

voting system faces a lot of problems

when it comes to tracking votes they

could be manipulated identities they

could be manipulation in counting there

could be biased decision making a smart

contract is introduced to eliminate all

these mal practices there are certain

predefined terms and conditions which

already set in the contract no voter can

vote from a digital identity for of any

other voter the counting is foolproof

every vote is registered on a blockchain

network and the counting is happening

automatically without any interference

from a third party or dependency on a

manual process so terms and condition

each ID should be attributed to just one

vote the validation is done by the users

on the Block C Network itself so the

voting process can be in a public

blockchain or it could be in a

decentralized autonomous organization

based blockchain setup also but it is

100 percent transparent and every voting

transaction is recorded result every

voters would get recorded on the ledger

and that information cannot be modified

it is transparently publicly available

for audit and verification now let’s

take a look at one of the examples of

our voting solidity contract so here we

have our voting solidity contract it is

built in solidity and I’ll just give you

a brief overview of what are the primary

functions in this so if we look at this

particular contract this contract gives

you certain basic parameters like what

should be the minimum number of

participants or proposals which are

required for voting then what should be

the minimum amount of time for debate

that needs to pass before the vote can

be executed then the margin of votes for

majority a proposal passes if there are

more than 50% of the votes plus the

margin so basically we are defining what

is the winning condition what is the

majority margin for any world to be

accepted then you have data structure

where you are accepting the proposals

right and then subsequently we are

defining data structures for members who

are participating in the proposals who

are submitting the proposals we are

fetching the addresses of the members

basically this is the digital identity

of the members who are submitting the

proposals and etc so this smart

contracts basically allows you to create

a voting system where you can add

members we can remove the members you

can change certain voting rules based on

certain conditions like if you want to

increase the minimum forum if you want

to change the debating period minutes or

the majority rule changes then this is

the function for submitting a new

proposal for which the voting has to

happen so basically this example is

about if I have to take a vote within a

decent

autonomous organization for a particular

decision so rather than a central

authority taking a decision you can have

a voting mechanism within your

organization to give a majority to your

proposal if you get the majority the

proposal is accepted otherwise reject

then there are peripheral functions like

check proposal code then there is a

voting function the actual vote happens

and for a particular proposal you start

increasing or decreasing the number of

votes then you execute the proposal if

the majority has been achieved now let’s

take a look on how to deploy a smart

contract so here we have our voting

smart contract now we will take a look

on how to deploy our voting smart

contract on the etherium test network

called rob stone this is our voting

smart contract now when you open remakes

you should also have meta mask which is

a chrome plug-in installed this is a

utility in order to connect to the Rob

stone test net which is a etherium test

network so basically you say Rob

standard ether scan dot IO and this is

the etherium test network on which we

will deploy our contract so once you

login into the meta mask you will have a

account created and in that account you

should have some test ethers already so

that you can use them to deploy a

contract so when you create an account

on Rob’s turn you can buy certain ethers

using the Rob stone test faucet

so when you reach this site that option

test faucet has already taken the

address for the account for which you

are erasing the request and you can

raise request of one ether now whenever

this transaction will get processed your

account balance will get incremented by

one so as I already have eaters in it I

can utilize it to deploy my contract now

in order to compile and deploy my

contract I have copy pasted it here and

if I go to my run my remix as already

communicated via injected web 3 to the

meta mas and taken my account which has

seven point eight three ether

now I need to do some settings

you

now as my contract is compiled you can

see it has taken all the contracts you

can see the drop down and Congress is my

major contract now I will deploy my

contract on the run section you will be

able to see in the drop down the name of

the contracts which are there in my

smart contract like I had own token

recipient then there’s an interface and

there is a Congress I need to deploy my

Congress contract now in order to deploy

this contract there is a constructor

which requires certain inputs so I can

give certain values like what minimum

number of proposals an 800 then minimum

number of debates 10 and margin of votes

for majority I say deploy now as soon as

I’ll click deploy it is going to request

me for gas because when the contract

gets deployed it will deduct certain

ethers from my account so when I will

say submit

if you notice now this transaction has

got initiated on the Rob’s train ether

scan dot IO I click on it so this is the

transaction on which the contract is

getting deployed it is taking time and

the contract is getting processed on the

etherium Network now once it will get

deployed we will be able to see the

address at which the contract has got

reiated and deployed now as you can see

my contract has got deployed at the

address 0 xcc I can load it so this is

the contract address and this is the

amount of actual ether which was spent

from my account in order to deploy the

contract

now there are certain attributes on the

option either scan which you can go and

check you can verify and publish or

smart contract over here so that others

can also view the code and utilize your

smart contract and if you go and check

your meta mask this is the transaction

which has just been done in your account

and if you click it will take you to the

same transaction which we open there now

after you have deployed the contract you

can interact with your contract directly

through remix just to test your contract

all the pink members are the ones which

make changes onto the blockchain and all

the blue ones are the ones which are

only performing read operations so in

order to do any read operation you will

not be requested to spend any gas so

there will be no pop-ups for meta masks

requesting for gas pending but if you do

any of these pink actions then you will

be required to spend gas as it will be

requiring to make some changes onto the

blockchain so this was a example of a

voting smart contract and this will be

available as a link for you to take a

look now all our other contracts which

we will be covering subsequently will be

deployed in a similar fashion on the

robson test net now let’s take another

example if you want to use smart

contract to issue your own

cryptocurrency or called digital token

you can use aetherium based mat contract

to create your own digital tokens for

performing transactions in design and

issue your own digital currency create a

tradable computerized token that can be

utilized as a currency share or any

asset which you want to transact these

tokens use a standard coin API like in

case of aetherium we have

standardizations of ERC to 0 etc which

allows contract to automatically access

any wallet for exchange as a result you

build a tradable token with a suffix

applied and this particular platform

becomes like a central bank issuing our

digital money your smart contract

becomes the bank issuing the money so

let’s take this example here so this is

a implementation of a ERC 2-0 token

which is a specification by it

and the primary attribute for this token

is that you need to provide a name of

your token a symbol the decimals to

which you support and the most primary

is the predefined supply so just like in

an economy you have limited supply of

money there also you have to define what

will be the supply of your tokens and it

will be capped that will be discipline

so you need to redefine these parameters

and then you create certain data

structures within solidity to keep a tab

on the balances of the entities to which

you are giving the tokens and how much

allowance you want to keep for address

then there are certain methods which you

have to implement as per the ER c20

specification like transfer transfer

from approve and call etc so all these

methods in a typical token allows you to

do the transaction send and receive your

custom token among multiple parties so

this would also be available as a link

for you to take a look now let’s take

another example of a use case for

crowdfunding using smart contracts to

crowd fund your project so suppose you

want to start a business and for a

business you need a lot of funding which

is required but who would lend it money

to someone whom they don’t trust how

will you generate that money for such

problems smart contractor is a major

rule with aetherium you can build a

smart contract that will hold a

contributors funds unless a given date

or a goal is met based on the result the

funds will be released to the contract

owners or will be sent back to the

contributors so basically you can create

a crowdfunding project for yourself if

you want to raise certain amount of

money and the contributors or the

investors will give you the money but

the amount will be kept on hold till the

time your project goal or date has been

made and accordingly the investors will

get your the token which you have

developed for crowdfunding in earth or

is account accordingly now centralized

crowdfunding system has plenty of issues

with management systems so therefore a

dhow a decentralized autonomous

organization is utilized for

crowdfunding the terms and conditions

are transparently set in the contract

every

visual participating in the crowdfunding

is given a token and the token is

credited to their aetherium base account

now every contribution gets recorded on

the blockchain because then the token

transfer has happened from the DAO to

the individual investor that transaction

get recorded on the blockchain network

so let’s quickly take a look at the

contract for a crowd sale also so a

crowd sale contract provides you the

basic attributes like what is the goal

of the funding how much money you need

to raise what is the amount raised

real-time you can keep a track what is

the deadline right and what is the price

of the token in etherium basically what

is the your token amount in ethier

then there could be that you might give

certain tokens in reward then you can

have attributes for your reward and then

you have your methods in order to keep a

check that once you have received the

funds you can withdraw the funds you can

check whether you have reached the goal

for funding and then you have the

methods for transferring tokens from the

sender to your own account this

particular kind of contract allows you

to maintain and keep a check on amount

of funding you have received or you want

to receive have you achieved your target

who are the investors in Europe token

how much percentage share belongs to

your account and how much percentage

share has been already been distributed

all amongst the investors etc so

everything can be tracked so the smart

contract can build in such a fashion

that there are methods and utilities

available in order to run your entire

crowdfunding so this contract is also

available in the link and you can take a

look so what are the key takeaways today

why do we need smart contract what is a

smart contract what are the advantages

of smart contract blockchain based

implementations or smart contract and

the use case of crowdfunding using smart

contracts I hope you all had a great

learning session and I’ll meet you in my

next session

thank you