Scalable Consensus Algorithms in Distributed Ledger Technologies Habib Yajam
Total Page:16
File Type:pdf, Size:1020Kb
Scalable Consensus Algorithms in Distributed Ledger Technologies Habib Yajam Secure Communication Lab, University of Tehran 1 Outline • Blockchains, what are them? Why we need them? And when? • A Brief History of Bitcoin. • Consensus Algorithms, Definition and Properties. • Categorizing Consensus Algorithms. • Hot Topics for Research. 2 Blockchains What are them? Why we need them? And when? 3 When do we need a Blockchain? Permissionless Is a Shared no Common Database Public Ledger needed? yes (Bitcoin) yes Can everyone no Permissioned no maintain the Are Multiple Traditional Public Ledger database Parties involved? Database (Ripple) integrity? yes yes Do Parties have no Permissioned conflicting Can everyone see no Private Ledger interests? the database? (Bankchain) yes Blockchain (DLT) 4 Blockchain Use Cases • P2P Payments • Video Games • Back Office Settlement • Supply Chain Management • Copyright Management • Reliable Log Keeping • Digital Identity Management • Decentralized Voting 5 What are the Ingredients? • P2P Network • Consensus Algorithm • Ledger Database 6 P2P Network 7 Transaction Flow in Bitcoin mempool 8 Bitcoin Blockchain 9 Generating a Valid Block (Mining) 4198659816850181691986501 Hash Function Change nonce no < 푡푎푟푔푒푡 yes Publish to Network 10 Generating a Valid Block (Mining) 1712039707102730871029375 Hash Function Change nonce no < 푡푎푟푔푒푡 yes Publish to Network 11 Generating a Valid Block (Mining) 0000961965911298498619761 Hash Function Change nonce no < 푡푎푟푔푒푡 yes Publish to Network 12 Nakamoto Consensus 13 Nakamoto Consensus 14 Nakamoto Consensus 15 Nakamoto Consensus 16 Nakamoto Consensus 17 Nakamoto Consensus 18 Forks Normal State Fork in Blockchain 19 Double Spending Attack 20 Double Spending Attack 21 Double Spending Attack 22 Double Spending Attack 23 Double Spending Attack 24 Bitcoin A Brief History 25 Bitcoin History (2009) • 01/03: (Block 1) The genesis block established by Satoshi Nakamoto. marking the creation of the cryptocurrency. • 01/09: (Block 2) Bitcoin v0.1 was released and mining began. Bitcoin History (2009) • 01/11: (Block 78) the first block mined by an individual other than Satoshi. It was Hal Finney. • 01/12: (Block 170) The first transaction occurred between Satoshi and Hal Finney. 27 Bitcoin History (2009) • 10/05: (Block ~24400) first bitcoin exchange price was determined by Libertarian Advocating Website “New Liberty Standard” (~0.0008$) • 12/10: (Block 32256) The difficulty adjusts for the first time, rising from 1 to 1.18. Bitcoin History (2010) • 02/06: (Block ~57600) dwdollar’s Bitcoin Market first bitcoin exchange was started. Used PayPal as the method of exchange. • 05/22: (Block 57043) First purchase of a tangible good using bitcoin. (0.0025$) Bitcoin History (2010) • 07/02: (Block ~65600) Bitcoin v0.3 was released. • 07/17: (Block ~67040) Mt.Gox, Second Bitcoin Exchange and most well-known exchange at the time was established. • 07/18: (Block ~67180) First time GPU Mining by pseudonymous person named ArtForz. Later he Acquired 25% of bitcoin network hashing power using a private GPU program. Bitcoin History (2010) • 12/13: (Block ~97300) Satoshi’s Last Login on BitcoinTalk. He later said he has “moved on to other things”. That was the last the world heard of the secretive Bitcoin creator. • 12/16: (Block 97834) First Pool-mined Bitcoin Block by Slush Pool. 31 Bitcoin History (2011) • 02/01: (~Block 105000) Silk road an online black market and the first modern darknet market, best known as a platform for selling illegal drugs opens. • 02/09: (~Block 107000) Dollar Parity happens on Mt.Gox. 32 Bitcoin Price History 33 Bitcoin P2P network 34 Number of Nodes 35 Orphan Rate 36 Bitcoin Mining 37 Bitcoin Mining 38 Bitcoin Mining 39 Bitcoin Mining 40 Bitcoin Mining Hashrate Distribution 41 Other Cryptocurrencies • Litecoin 2011 (PoW Scrypt) [Currency] • Ripple 2012 (BPFT) [Currency] • Dash 2014 (PoW X11 + PoS) [Privacy] • Ethereum 2015 (PoW → PoS) [DApps] • Zcash 2016 (PoW Equihash) [Privacy] • IOTA 2017 (PoW Curl) [Currency] • Cardano 2017 (PoS Provably Secure) [DApps] 42 Consensus Algorithms Definition, Goals and Properties 43 Defining Consensus • Consensus: Achieving agreement in a multi-agent system. • If communication/agents are reliable: Consensus is Trivial • Consensus Algorithms: Achieving agreement in an unreliable environment 44 Defining Consensus • Unreliability Model: Fault • Types of Fault: • Crash fault: node hangs/stops/goes offline • Byzantine fault: node violates protocol maliciously 45 Defining Consensus • Properties of Consensus Algorithms: • Safety (Consistency) • Liveness (Availability) • Throughput • Latency • Scalability • Decentralization, Transparency, Order Preserving, … 46 Consistency • A confirmed transaction in an honest node will eventually be confirmed by all honest nodes. 47 Consistency Node1 Node2 6 6 8 8 1 1 9 9 Node3 Node4 6 6 8 8 1 1 9 9 48 Consistency Node1 Node2 Change “8” 6 to “5” 6 8 8 1 1 9 9 Node3 Node4 6 6 8 8 1 1 9 9 49 Consistency Node1 Node2 Change “8” 6 to “5” 6 5 8 1 1 9 9 Node3 Node4 6 6 8 5 1 1 9 9 50 Availability • A valid transaction will eventually be confirmed by an honest node. 51 Availability Node1 Node2 6 Append “7” 6 8 8 1 1 9 9 Node3 Node4 6 6 8 8 1 1 9 9 52 Availability Node1 Node2 6 6 8 8 1 1 9 9 7 7 Node3 Node4 6 6 8 8 1 1 9 9 7 7 53 Throughput/Scalability • Throughput: Number of newly confirmed transactions per unit of time. • Latency: • Time it takes for a newly created transaction to get confirmed in an honest node. • Scalability: In a scalable consensus algorithm, increasing the number of participants does not affect performance. 54 Categorizing Consensus Algorithms Voting-based, Chain-based, DAG-based 55 Categorization of Consensus Alg. • Vote-based Consensus: • First Prominent Voting-base Protocol by Leslie Lamport 1998 • Example: PBFT, Paxos, Ripple • Fast ✓ • Not Scalable 56 Categorization of Consensus Alg. • Chain-based Consensus: 1 2 3 4 • Introduced by Satoshi Nakamoto in 2008 Txs Txs Txs Txs • Example: Bitcoin, Ethereum • Scalable ✓ • Not Fast 1 2 3 4 5 Txs Txs Txs Txs Txs 57 Categorization of Consensus Alg. • DAG-based Consensus: • Introduced by Sergio Demian Lerner in 2015 • Example: IOTA, Nano • Fast ✓ • Scalable ✓ 58 Categorization of Consensus Alg. • Permissioned Scalable • Permissionless: + • Proof-of-Work Permissionless • Proof-of-Stake + • Proof-of-Importance Byzantine Fault Tolerant • Proof-of-Activity = • Delegated-Proof-of-Stake New Form of Decentralization • ... 59 Categorization of Consensus Alg. Voting- Chain- DAG- based based based Ripple, R3 Corda, Stellar, Fabric, Multichain, Vechain Hashgraph Chain Core, Quorum Bitcoin, Etheruem, NEM, Qtum, Zilliqa, NEO IOTA OmiseGo, TRON, EOS, Cardano 60 PAXOS Bitcoin DAGcoin Most Famous Voting-based First Chain-based First DAG-based 1998 2008 2015 V C D PBFT Etheruem Tangle V Famous Byzantine First Smart Contract C D IOTA 1999 2013 2016 Zab Ripple Peercoin PHANTOM Apache Zookeeper Fast Payment First Proof-of-Stake Academic Paper 2007 2011 2012 2017 V V C D Year 1999 2000 2001 2002 2003 2004 2005 2006 2007 Year 2009 2010 2011 2012 2013 2014 2015 2016 2017 Year 2019 1998 2008 2018 61 Blockchain Scalability Solutions • Base Layer Solutions: • Decoupling Blockchain • Bitcoin-NG • Fruitchains • PRISM • DAG-based Consensus Algorithms • Spectre • Phantom GHOST-DAG • Hybrid Chain-based Voting-based Algorithms • Byzcoin • Casper: the friendly finality gadget • Thunderella • Sharding 62 Blockchain Scalability Solutions • Second Layer Solutions: • Lightening Network • Plasma Network 63 Research Topics 64 Research Topics • High-throughput, Low-latency, Scalable Consensus Algorithms. • Privacy in Blockchains both in Smart-contracts and Payments. • Multi Party Computations Using Blockchain. • Blockchain Use Cases in Internet of Things. 65 Thank you 66.