0% found this document useful (0 votes)
7 views38 pages

Lect 12

Uploaded by

tomshopstrash
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
7 views38 pages

Lect 12

Uploaded by

tomshopstrash
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 38

Introduction and Applications of

Smart Contracts
What is Blockchain?

⦿ Blockchain technology is a software; a protocol for the secure


transfer of unique instances of value (e.g. money, property,
contracts, and identity credentials) via the internet without
requiring a third-party intermediary such as a bank or
government
⦿ Email over IP, Voice over IP, Money over IP
Application Phone
Email Bitcoin
calls

Protocol
SMTP VoIP Blockchain

Infrastructure
Internet

Page 7 © Copyright 2017 | All Right Reserved


How does Bitcoin work?
Use eWallet app to submit transaction

Scan recipient’s address $ appears in recipient’s eWallet


and submit transaction

Wallet has keys not money


Creates PKI Signature address pairs A new PKI hashed signature for each transaction

Source: https://www.youtube.com/watch?v=t5JGQXCTe3c

Page 8 © Copyright 2017 | All Right Reserved


P2P network confirms & records
transactions

Transactions submitted to mempool, and miners assemble Transaction computationally confirmed


new batch (block) of transactions each 10 min Ledger account balances updated

Each block includes a cryptographic hash of the last


block, chaining the blocks, hence “Blockchain” Peer nodes maintain distributed ledger

Source: https://www.youtube.com/watch?v=t5JGQXCTe3c

Page 9 © Copyright 2017 | All Right Reserved


How robust is the Bitcoin p2p
network?
• 11,678 global nodes run full Bitcoind (2/18); 160 gb

p2p: peer to peer; Source: https://bitnodes.21.co, https://github.com/bitcoin/bitcoin

Page 10 © Copyright 2017 | All Right Reserved


Run the software yourself:
What is Bitcoin mining?

Mining is the accounting function to record transactions,


fee-based ($130,000/block each 10 min)
Mining ASICs “discover new blocks”
Mining software makes nonce guesses to win the
right to record a new block (“discover a block”)
At the rate of 2^32 (4 billion) hashes (guesses)/second
One machine at random guesses the 32-bit nonce
Winning machine confirms and records the transactions,
and collects the rewards
All nodes confirm the transactions and append the
new block to their copy of the distributed ledger
“Wasteful” effort deters malicious players
Fast because ASICs
represent the hashing
algorithm as hardware

Page 11 © Copyright 2017 | All Right Reserved


Key Blockchain
Concepts

⦿Public-private networks
⦿Trustless vs trusted
⦿Distributed network
⦿Consensus algorithms
⦿Immutability

⦿Blockchain: trustless, distributed (peer-


based), consensus-driven, immutable

Page 12 © Copyright 2017 | All Right Reserved


What is a Ledger?

⦿A ledger is like a database, a


Google or Excel spreadsheet
⦿Add new records by appending
rows
⦿Each row contains information
⦿Account balances, who owns
certain assets
⦿Memory and execution state
of a computer program

Page 13 © Copyright 2017 | All Right Reserved


Why Distributed?

⦿Distributed network
⦿Many nodes or peers that are
connected in a network with no single
point of failure or centralized control
⦿Security and resiliency: design the
network so that if some peers crash or
attack the network maliciously, the
network can still operate (Byzantine
Fault Tolerance)

Page 14 © Copyright 2017 | All Right Reserved


What is Immutable?

⦿Cannot change the data once its


committed to the ledger
⦿Data is auditable
⦿Change by issuing offsetting
transaction
⦿Smart contract code

Page 15 © Copyright 2017 | All Right Reserved


Cryptographic Identity

⦿To use the network, need a Cryptographic Identity


⦿(sort of like an email address)
⦿If want to access your email, you need the
password, which functions similarly to a private
key and your public key is like your address
(more complicated)
⦿Authentication: peers sign transactions with their
cryptographic identity, this enables account
“ownership” and can attribute blame

Page 16 © Copyright 2017 | All Right Reserved


Consensus in
Distributed Networks

⦿In order to update the ledger, the network needs to come to


consensus using an algorithm
⦿Consensus: what does it mean to come to consensus on a
distributed network?
⦿It means that everyone agrees on the current state (e.g.
how much money does each account have) and making
sure that no one is double-spending money (easy in
Bitcoin, more complex in Ethereum, business networks)
⦿How do we come to consensus in this distributed manner?

Page 17 © Copyright 2017 | All Right Reserved


Three Primary
Consensus Algorithms

⦿POW: Proof of Work (Bitcoin)


⦿Expensive, not ecological, wasteful computation
⦿POS: Proof of Stake (Ethereum)
⦿Next-gen: PBFT: Practical Byzantine Fault Tolerance (DFINITY,
Algorand)
⦿Law of large numbers: diversity of participants
⦿For each block of transactions, randomly select a small, one-time group of
users in a safe and fair way
⦿To protect from attackers, the identities of these users are hidden until the
block is confirmed
⦿The size of this group remains constant as the network grows
Page 18 © Copyright 2017 | All Right Reserved
Key Blockchain
Concepts

⦿Public-private networks
⦿Trustless vs trusted
⦿Distributed network
⦿Consensus algorithms
⦿Immutability

⦿Blockchain: trustless, distributed (peer-


based), consensus-driven, immutable

Page 19 © Copyright 2017 | All Right Reserved


Blockchain Context

Code is law
What are Smart Contracts

Definition: Smart contracts are self-executing contracts with


the terms of the agreement directly written into code. They
automatically enforce and execute the terms of the contract
when predefined conditions are met.

Characteristics:

- Immutable
- Trustless
- Automated
- Secure
What are Smart Contracts

1. **Immutable:** Once deployed on the blockchain, smart


contracts cannot be altered or tampered with, providing a high
level of security and trust.

2. **Trustless:** Smart contracts operate on a decentralized


network, removing the need for trust between parties as the
code itself ensures execution without the need for
intermediaries.
What are Smart Contracts

3. **Automated:** Smart contracts automatically execute


actions when specific conditions are met, eliminating the need
for manual intervention and reducing the potential for human
error.

4. **Secure:** Utilizing cryptographic techniques and operating


on a distributed ledger, smart contracts offer enhanced
security, making them resistant to fraud and unauthorized
alterations.

Smart contracts represent a significant innovation in contract


execution, offering efficiency, transparency, and security in
various applications across industries.
Brief History of Smart Contracts

- Early Concept: Proposed by computer scientist Nick Szabo


in 1994.

- Ethereum Introduction: Vitalik Buterin introduced Ethereum


in 2013, which popularized the concept of smart contracts
by allowing developers to deploy them on its blockchain.

- Evolution: Since then, smart contracts have evolved


significantly, finding applications across various industries.
Applications of Smart Contracts

- Financial Services:
- Automated Payments
- Loan Agreements
- Derivatives Trading

- Supply Chain Management:


- Traceability
- Transparency
- Automated Compliance

Supply chain management (SCM) in the context of smart


contracts involves leveraging blockchain technology to improve
transparency, traceability, and efficiency in supply chain operations.
Smart contracts can automate and streamline various aspects of
the supply chain, including procurement, logistics, inventory
management, and payment settlements.
Applications of Smart Contracts

- Real Estate:

- Property Transfers
- Rental Agreements

- Healthcare:

- Patient Data Management


- Insurance Claims Processing
- Drug Traceability
Applications of Smart Contracts

- Legal Industry:

- Automated Contract Execution


- Legal Documentation Management
- Dispute Resolution

- Gaming and Entertainment:

- In-game Asset Trading


- Ticket Sales
- Royalty Distribution
Smart Contracts Examples
Example 1 of Smart Contracts

Creating a flowchart for a smart contract related to food delivery


involves multiple steps and interactions between various parties.
Here's a simplified flowchart outlining the basic logic:
Start
|
Input Order Details (Customer Address, Delivery Address, Items, Payment Details)
|
Verify Payment
|
Accept Order
|
Assign Delivery Person
|
Pickup Order
|
Deliver Order to Customer Address
|
Confirm Delivery
|
Release Payment to Delivery Person
|
End
Example 1 of Smart Contracts

Let's break down the flow:


Start: The contract execution begins.
Input Order Details: Input data including the customer's address,
delivery address, ordered items, and payment details.
Verify Payment: Verify that the payment has been made by the
customer.
Accept Order: If the payment is verified, accept the order.
Assign Delivery Person: Assign a delivery person to fulfill the
order.
Pickup Order: The delivery person picks up the order from the
restaurant or designated pickup location.
Deliver Order to Customer Address: The delivery person delivers
the order to the customer's specified address.
Confirm Delivery: The customer confirms the receipt of the order.
Release Payment to Delivery Person: If the delivery is confirmed,
release the payment to the delivery person.
End: Contract execution concludes.
Example 2 of Smart Contracts

Creating a flowchart for a smart contract can be a bit abstract since


smart contracts are typically written in programming languages such as
Solidity for the Ethereum blockchain. However, I can provide you with a
simplified flowchart that outlines the logic of a basic smart contract.
Let's consider a simple example of a token transfer smart contract.
Start
|
Input Sender Address, Receiver Address, Token Amount
|
Check if Sender has Sufficient Balance
|
If Yes, Deduct Token Amount from Sender's Balance
|
Add Token Amount to Receiver's Balance
|
Update Sender's and Receiver's Balances on the Blockchain
|
End
Example of Smart Contracts

This flowchart represents a basic smart contract logic for transferring


tokens between two parties on a blockchain. Here's a breakdown of the
flow:
Start: The contract execution begins.
Input Sender Address, Receiver Address, Token Amount: Input
data including the sender's address, receiver's address, and the amount
of tokens to transfer.
Check if Sender has Sufficient Balance: Verify if the sender has
enough tokens to transfer.
Deduct Token Amount from Sender's Balance: If the sender has
sufficient balance, deduct the token amount from their balance.
Add Token Amount to Receiver's Balance: Add the deducted token
amount to the receiver's balance.
Update Sender's and Receiver's Balances on the Blockchain:
Update the balances of both the sender and receiver on the blockchain.
End: Contract execution concludes.
Benefits of Smart Contracts

- Efficiency: Automation reduces manual intervention and


speeds up processes.

- Transparency: All transactions are recorded on a


distributed ledger, ensuring transparency and auditability.

- Security: Cryptography and decentralization enhance


security, reducing the risk of fraud or tampering.

- Cost Savings: Eliminates the need for intermediaries,


reducing overhead costs.

- Accessibility: Smart contracts can be accessed and


executed from anywhere with an internet connection.
Challenges and Considerations

- Scalability: Current blockchain technologies face scalability


issues, limiting the number of transactions per second.

- Security Risks: Smart contracts are susceptible to bugs and


vulnerabilities that could lead to financial losses.

- Legal Compliance: Ambiguities in legal frameworks


regarding smart contracts pose challenges for adoption.

- User Experience: The complexity of smart contract


development and execution may deter mainstream
adoption.
Challenges and Considerations

Scalability: Current blockchain technologies face scalability


issues, limiting the number of transactions per second.

Explanation: Current blockchain technologies, including those on


which smart contracts are deployed, often face scalability issues.
This means that as more transactions occur on the network, the
speed and efficiency of processing those transactions can
decrease.
Example: In a decentralized finance (DeFi) application where smart
contracts are used for lending and borrowing, high transaction
volumes can lead to network congestion and increased transaction
fees. This can deter users and limit the scalability of the application.
Challenges and Considerations

Security Risks:

Explanation: Smart contracts are susceptible to bugs and


vulnerabilities in their code, which can lead to unintended
consequences or exploitation by malicious actors. Once deployed,
smart contracts are immutable, meaning any errors or
vulnerabilities cannot be easily rectified.

Example: In 2016, the Decentralized Autonomous Organization


(DAO) was exploited due to a vulnerability in its smart contract
code, resulting in the loss of millions of dollars worth of
cryptocurrency. This incident highlighted the importance of thorough
auditing and testing of smart contract code to mitigate security risks.
Challenges and Considerations

Legal Compliance:

Explanation: Legal frameworks regarding smart contracts vary


across jurisdictions and may not always align with the technology's
capabilities. Ambiguities in laws and regulations can pose
challenges for the widespread adoption of smart contracts,
particularly in areas such as contract enforceability and dispute
resolution.

Example: In some jurisdictions, traditional contract law may require


written agreements signed by all parties, which may conflict with the
purely digital nature of smart contracts. Resolving these legal
ambiguities is crucial for the broader acceptance and integration of
smart contracts into legal frameworks.
Challenges and Considerations

User Experience:

Explanation: The complexity of developing, deploying, and


interacting with smart contracts can be a barrier to mainstream
adoption. Users may require technical expertise to understand how
smart contracts function and how to interact with them effectively.

Example: A decentralized application (DApp) built on smart


contracts may require users to manage private keys and interact
with blockchain wallets, which can be intimidating for those
unfamiliar with blockchain technology. Improving the user
experience through intuitive interfaces and simplified processes is
essential for increasing adoption.
Addressing these challenges through technological advancements,
regulatory clarity, and improved user interfaces is critical for
unlocking the full potential of smart contracts and realizing their
benefits across various industries.
Smart Contract Lifecycle
ABI stands for Application Binary Interface.
The ABI defines how functions and data are accessed in a smart
contract. It serves as an interface between the compiled smart contract
bytecode and the outside world, enabling external applications, such as
user interfaces or other smart contracts, to interact with the contract.
The ABI specifies the following details:
Function Signatures: It includes the names and parameters of the
functions defined in the smart contract, along with their input and output
data types.
Events: It describes the structure of events emitted by the smart
contract, including their names and parameters.
Data Structures: It outlines the layout of complex data structures used
within the smart contract.
The ABI is crucial for developers who want to interact with a deployed
smart contract programmatically. It allows them to understand how to
construct function calls and interpret the responses from the contract.
Additionally, ABI is essential for tools and libraries that facilitate smart
contract interactions, such as web3.js for Ethereum-based contracts.
Interacting with a Smart Contract

• Smart contract is not self-executable


• It requires an external call to be executed. Otherwise, it is
pending till one calls one of its implemented functions [9]
• Once it is executed, transactions resulting from the
execution are transcribed on the blockchain and
eventually smart contract’s meta data are updated
Interacting with a Smart Contract

• Contract address and its ABI are needed in order to


communicate with a smart contract
• Smart contract execution can be launched by human
(private key account) or by smart contract (public key
account) calls
• Example of smart contract calls: alarm clock service
Alarm Clock Service

• Smart contracts are not self-executable


• A transaction is executed as soon as it is added to a block [14]
• Ethereum contracts that do not implement suicide, and allows to schedule
any contract function calls in a specified block
• Equivalent to decentralized crons [16]
• Scheduling can be done by contracts or Ethereum account holders [15]
• Scheduled function calls execution allow to earn ethers
• Anyone can execute function call since he is operating on Ethereum node
• We can specify a list of authorized schedulers addresses [15]
• Alarm clock contract specifies the transaction details: destination address,
execution time window, transaction gas cost and the reward to be paid to
the account that triggered the transaction [14]

You might also like