0% found this document useful (0 votes)
129 views22 pages

Decentralized Applications

The document discusses decentralized applications (DApps), which allow users to own their data and run applications without a centralized operator. It describes how Ethereum is a popular platform for building DApps using smart contracts on a blockchain. It provides examples of DApps built on Ethereum and other platforms like IPFS, and also discusses permissioned blockchain frameworks like Hyperledger Fabric.

Uploaded by

Abhiraj Kanse
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)
129 views22 pages

Decentralized Applications

The document discusses decentralized applications (DApps), which allow users to own their data and run applications without a centralized operator. It describes how Ethereum is a popular platform for building DApps using smart contracts on a blockchain. It provides examples of DApps built on Ethereum and other platforms like IPFS, and also discusses permissioned blockchain frameworks like Hyperledger Fabric.

Uploaded by

Abhiraj Kanse
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/ 22

Decentralized Applications

Saravanan Vijayakumaran
sarva@ee.iitb.ac.in

Department of Electrical Engineering


Indian Institute of Technology Bombay

August 22, 2019

1 / 22
DApps
• Applications that let users own their data and run without a single
centralized operator (Source: https://app.co/faq)
• Decentralized vs Distributed
• Distributed does not mean decentralized
• A single entity could be controlling a distributed system
• Pros
• Uncensorable
• Transparency, Privacy (DApps are typically open source)
• Cons
• Usability (slow, error-prone)
• Difficult to build and/or maintain

P2P systems are hard. The only thing harder than a distributed system is a
distributed system you don’t control. A system that will attack you, and that is
running stuff you don’t want it to run.
Juan Benet
• Pre-Bitcoin examples
• Email (if everyone doesn’t use GMail)
• BitTorrent
2 / 22
DApp Frameworks
• Permissionless
• Ethereum
• Blockstack
• IPFS (libp2p)
• . . . and many more
• Permissioned
• Quorum
• Corda
• Hyperledger Fabric
• . . . and many more
• DApp directories
• https://app.co/
• https://www.stateofthedapps.com/

3 / 22
Ethereum
Ethereum
• A blockchain platform for building decentralized applications
• Application code and state is stored on a blockchain
• Two types of transactions
• Contract creation
• Message calls
• Contract creation transactions create new contracts on the
blockchain
• Message call transactions call methods in an existing contract
• Input data to contract methods is specified

5 / 22
Storage Contract
1 pragma solidity ^0.4.0;
2
3 contract SimpleStorage {
4 uint storedData;
5
6 function set(uint x) public {
7 storedData = x;
8 }
9
10 function get() public view returns (uint) {
11 return storedData;
12 }
13 }

https://solidity.readthedocs.io/en/v0.4.24/
introduction-to-smart-contracts.html#storage

6 / 22
Currency Example
1 pragma solidity ^0.4.7;
2
3 contract Coin {
4 address public minter;
5 mapping (address => uint) public balances;
6
7 event Sent(address from, address to, uint amount);
8
9 constructor() public {
10 minter = msg.sender;
11 }
12
13 function mint(address receiver, uint amount) public {
14 if (msg.sender != minter) return;
15 balances[receiver] += amount;
16 }
17
18 function send(address receiver, uint amount) public {
19 if (balances[msg.sender] < amount) return;
20 balances[msg.sender] -= amount;
21 balances[receiver] += amount;
22 emit Sent(msg.sender, receiver, amount);
23 }
24 }
7 / 22
Initial Coin Offerings
• Also called token sales
• Ethereum is the most popular platform for ICOs
• Each ICO implements a ERC-20 token contract (link)
• Investments in ICOs was about $7 billion in 2017
• Some notable ICOs
• Basic Attention Token, May 2017, $35 million in 30 seconds
• Kik, Sep 2017, $100 million
• Filecoin, Jan 2018, $257 million
• Many of the ICO-funded projects have failed
• Used to execute “pump-and-dump” schemes

8 / 22
Ethereum DApp Examples
• CryptoKitties
• Allows players to purchase, breed, and sell virtual cats
• Each CryptoKitty is a non-fungible token using the ERC-721
standard
• Game popularity caused network congestion in Dec 2017
• The highest selling cat cost 246 ETH in Dec 2017 (≈ $117,000)
• Fomo3D (https://fomo3d.hostedwiki.co/)
• Decentralized exchanges (https://idex.market)

9 / 22
Other DApp Examples
• Graphite Docs (https://www.graphitedocs.com/about)
• Decentralized version of Google Docs
• Why? Privacy, Censor resistance
• Built using Blockstack
• Textile (https://www.textile.photos/)
• Decentralized photo sharing built on IPFS
• Peerpad (https://peerpad.net/)
• A P2P realtime collaborative editing tool built using IPFS
• Radicle (http://radicle.xyz/)
• IPFS-based replacement for GitHub

10 / 22
Bitmessage
• Decentralized, encrypted, P2P communications protocol
• Released by Jonathan Warren in Nov 2012
• Downloads increased fivefold in June 2013 after news of NSA
email surveillance
• Inspired by the Bitcoin protocol
• Identities are hashes of public keys
• Messages are broadcast over a network instead of blocks
• Each message needs PoW attached (to prevent spam)
• Messages live only for two days (by default)
• Source https://github.com/Bitmessage/PyBitmessage

11 / 22
Permissioned Blockchains
Permissioned Blockchains
• Private network of nodes which create and maintain a blockchain
• Proof-of-authority consensus is used instead of PoW
• A valid block is one with a certain number of approvers
• Motivation: A shared ledger of facts about assets
• Popular frameworks
• Hyperledger Fabric
• Corda
• Quorum

13 / 22
Hyperledger Fabric
• Hyperledger
• Collaborative blockchain effort hosted by Linux Foundation
• Mission: Create enterprise grade, open source distributed ledger
frameworks
• Launched in 2016
• Fabric
• Permissioned distributed ledger framework with smart contracts
• Originated in IBM in mid-2015 as Open Blockchain (OBC) project
• Initial implementation completed in Dec 2015
• IBM joined Hyperledger in Feb 2016 and donated OBC code

14 / 22
Ledger

Image credit: https://hyperledger-fabric.readthedocs.io/en/


release-1.3/ledger/ledger.html

15 / 22
World State

Image credit: https://hyperledger-fabric.readthedocs.io/en/


release-1.3/ledger/ledger.html

16 / 22
Blockchain

Image credit: https://hyperledger-fabric.readthedocs.io/en/


release-1.3/ledger/ledger.html

17 / 22
Blocks

Image credit: https://hyperledger-fabric.readthedocs.io/en/


release-1.3/ledger/ledger.html

18 / 22
Ledger Updates
Phase 1: Proposal

Image credit: https://hyperledger-fabric.readthedocs.io/en/


release-1.3/peers/peers.html
• Application sends transaction proposal to some peers for
endorsement
• Peers execute the transaction and append signatures endorsing
the proposal
• Phase 1 ends when application receives sufficient responses

19 / 22
Ledger Updates
Phase 2: Packaging

Image credit: https://hyperledger-fabric.readthedocs.io/en/


release-1.3/peers/peers.html
• Endorsed transaction proposals are packaged into a block by the
orderer

20 / 22
Ledger Updates
Phase 3: Validation

Image credit: https://hyperledger-fabric.readthedocs.io/en/


release-1.3/peers/peers.html
• Orderer distributes blocks to all peers
• Each peer checks that a block satisfies the organizational
endorsement policy and applies to ledger

21 / 22
References
• Chapter 1 of Decentralized Applications by Siraj Raval,
https://www.oreilly.com/library/view/
decentralized-applications/9781491924532/ch01.html
• Ethereum Wikipedia Article https://en.wikipedia.org/wiki/Ethereum
• ICO Wikipedia Article
https://en.wikipedia.org/wiki/Initial_coin_offering
• CryptoKitties Wikipedia Article
https://en.wikipedia.org/wiki/CryptoKitties
• Solidity Documentation https://solidity.readthedocs.io
• Graphite Docs https://www.graphitedocs.com/about
• Textile https://www.textile.photos/
• Peerpad https://peerpad.net/
• Radicle http://radicle.xyz/
• Fabric Documentation https://hyperledger-fabric.readthedocs.io/

22 / 22

You might also like