Announcement Sign up google sheet for in class lectures

Slides:



Advertisements
Similar presentations
Secure Multiparty Computations on Bitcoin
Advertisements

Byzantine Generals. Outline r Byzantine generals problem.
Foundations of Cryptography Lecture 10 Lecturer: Moni Naor.
Distribution and Revocation of Cryptographic Keys in Sensor Networks Amrinder Singh Dept. of Computer Science Virginia Tech.
Eran Omri, Bar-Ilan University Joint work with Amos Beimel and Ilan Orlov, BGU Ilan Orlov…!??!!
Consensus problem Agreement. All processes that decide choose the same value. Termination. All non-faulty processes eventually decide. Validity. The common.
Database Replication techniques: a Three Parameter Classification Authors : Database Replication techniques: a Three Parameter Classification Authors :
EEC 693/793 Special Topics in Electrical Engineering Secure and Dependable Computing Lecture 16 Wenbing Zhao Department of Electrical and Computer Engineering.
Randomized and Quantum Protocols in Distributed Computation Michael Ben-Or The Hebrew University Michael Rabin’s Birthday Celebration.
EEC 693/793 Special Topics in Electrical Engineering Secure and Dependable Computing Lecture 16 Wenbing Zhao Department of Electrical and Computer Engineering.
Paxos Made Simple Jinghe Zhang. Introduction Lock is the easiest way to manage concurrency Mutex and semaphore. Read and write locks. In distributed system:
Consensus and Its Impossibility in Asynchronous Systems.
Practical Byzantine Fault Tolerance
Byzantine fault-tolerance COMP 413 Fall Overview Models –Synchronous vs. asynchronous systems –Byzantine failure model Secure storage with self-certifying.
Distributed Algorithms Lecture 10b – by Ali Ghodsi Fault-Tolerance in Asynchronous Networks – Probabilistic Consensus.
Secure Computation (Lecture 2) Arpita Patra. Vishwaroop of MPC.
Distributed systems Consensus Prof R. Guerraoui Distributed Programming Laboratory.
Sliding window protocol The sender continues the send action without receiving the acknowledgements of at most w messages (w > 0), w is called the window.
SCP: A Computationally Scalable Byzantine Consensus Protocol for Blockchains Loi Luu, Viswesh Narayanan, Kunal Baweja, Chaodong Zheng, Seth Gilbert, Prateek.
Alternating Bit Protocol S R ABP is a link layer protocol. Works on FIFO channels only. Guarantees reliable message delivery with a 1-bit sequence number.
1 Fault-Tolerant Consensus. 2 Communication Model Complete graph Synchronous, network.
PROCESS RESILIENCE By Ravalika Pola. outline: Process Resilience  Design Issues  Failure Masking and Replication  Agreement in Faulty Systems  Failure.
Robustness in the Salus scalable block store Yang Wang, Manos Kapritsos, Zuocheng Ren, Prince Mahajan, Jeevitha Kirubanandam, Lorenzo Alvisi, and Mike.
Randomized Algorithms for Distributed Agreement Problems Peter Robinson.
Unreliable Failure Detectors for Reliable Distributed Systems Tushar Deepak Chandra Sam Toueg Presentation for EECS454 Lawrence Leinweber.
1 AGREEMENT PROTOCOLS. 2 Introduction Processes/Sites in distributed systems often compete as well as cooperate to achieve a common goal. Mutual Trust/agreement.
Block Chain 101 May 2017.
reaching agreement in the presence of faults
Coordination and Agreement
The consensus problem in distributed systems
A SECURE SHARDING PROTOCOL FOR OPEN BLOCKCHAINS
Bitcoin - a distributed virtual currency system
8.2. Process resilience Shreyas Karandikar.
Ling Ren Joint work with Ittai Abraham, Dahlia Malkhi,
COMP28112 – Lecture 14 Byzantine fault tolerance: dealing with arbitrary failures The Byzantine Generals’ problem (Byzantine Agreement) 13-Oct-18 COMP28112.
Outline Distributed Mutual Exclusion Distributed Deadlock Detection
Providing Secure Storage on the Internet
COMP28112 – Lecture 13 Byzantine fault tolerance: dealing with arbitrary failures The Byzantine Generals’ problem (Byzantine Agreement) 19-Nov-18 COMP28112.
CS 525 Advanced Distributed Systems Spring 2018
Alternating Bit Protocol
Distributed Consensus
Distributed Systems, Consensus and Replicated State Machines
Distributed Consensus
Principles of Computer Security
Fault-tolerant Consensus in Directed Networks Lewis Tseng Boston College Oct. 13, 2017 (joint work with Nitin H. Vaidya)
Jacob Gardner & Chuan Guo
EEC 688/788 Secure and Dependable Computing
Distributed Ledger Technology (DLT) and Blockchain
PERSPECTIVES ON THE CAP THEOREM
EEC 688/788 Secure and Dependable Computing
Consensus in Synchronous Systems: Byzantine Generals Problem
Blockchain Concepts RISK FORUM 2017 Hash function (e.g. SHA-256)
EEC 688/788 Secure and Dependable Computing
Consensus, FLP, and Paxos
EEC 688/788 Secure and Dependable Computing
EECS 498 Introduction to Distributed Systems Fall 2017
COMP28112 – Lecture 13 Byzantine fault tolerance: dealing with arbitrary failures The Byzantine Generals’ problem (Byzantine Agreement) 22-Feb-19 COMP28112.
Consensus Algorithms.
EEC 688/788 Secure and Dependable Computing
EEC 688/788 Secure and Dependable Computing
EEC 688/788 Secure and Dependable Computing
Blockchains and Auditing
Byzantine Fault-Tolerance
EEC 688/788 Secure and Dependable Computing
Scalable and Privacy-preserving Design of On/Off-chain Smart Contracts
Distributed systems Consensus
Sisi Duan Assistant Professor Information Systems
Explore Txs, block, blockchain in Bitcoin
Sisi Duan Assistant Professor Information Systems
Blockchain Mining Games
Presentation transcript:

Announcement Sign up google sheet for in class lectures Overview of the topics Membership management Hybrid Consensus Scaling consensus Randomized BFT (2) Hybrid blocks (3)

Algorand Gilad, Yossi, et al. "Algorand: Scaling byzantine agreements for cryptocurrencies." Proceedings of the 26th Symposium on Operating Systems Principles. ACM, 2017.

Algorand Overview Cryptocurrency Communication Main assumption Gossip Main assumption Honest majority of money Main idea Byzantine agreement (BA) Goals Trivial computation True decentralization Finality of payment – using BA Scalability

Byzantine Agreement Overview BFT/Permissioned Blockchains Challenges Not scalable Players are fixed and known in advance BA*

Key Ideas Weighted users Users are weighted by the money in their account Instead of having all the nodes run BA, let a subset of nodes represent the whole group and run BA*. Called a committee Rotating committee per block

Weighted Users vs Proof of Stake (PoS) PoS flaw in a nutshell Malicious leader (who assembles new block) can create a fork in the network Can be caught (e.g., since two versions of the new block are signed with his key) -> the leader loses his money Algorand Weights ensure that the attacker cannot amplify his power by using pseudonyms As long as the attacker controls less than 1/3 of the monetary value of the system Guarantee that the probability for forks is negligible

Algorand Committee BA is not scalable BA* uses consensus by committee Randomly selects a small set of representatives from the total set of users Committee members will publicly broadcast messages slowing others to learn agreed-upon block Concerns How to randomly choose committee members? How to ensure adversary cannot fake being a committee member? How to ensure committee members are not targeted?

Algorand Committee Problem Solution: cryptographic solutions How to randomly choose committee members Ensure adversary cannot fake being a committee member Solution: cryptographic solutions Users can independently and privately determine if they are chosen Sortition will choose users randomly based on their weights Randomness comes from publicly known seed Verfiable Random Runctions (VRF)

Algorand Committee

Algorand Features Problem Solution: cryptographic solutions How to randomly choose committee members Ensure adversary cannot fake being a committee member Solution: cryptographic solutions Users have (pk, sk) Every user will execute Fsk Fsk(Seed) => (hash h, proof pi) Algorand will set criteria (based on weight) If user’s h fulfills criteria -> user in committee Committee members attach h, pi, pk to messages Verify(Seed,h,pi,pk)

Algorand Features Problem Solution: cryptographic solutions How to randomly choose committee members Ensure adversary cannot fake being a committee member Solution: cryptographic solutions Users have (pk, sk) Every user will execute Fsk Fsk(Seed) => (hash h, proof pi) Algorand will set criteria (based on weight) If user’s h fulfills criteria -> user in committee Committee members attach h, pi, pk to messages Verify(Seed,h,pi,pk)

Select committee according to the weights In other words, according to the amount of money in each user’s account Prevent Sybil attack (?!)

Algorand Features Problem: Adversary may target a committee member once that member sends a message Solution: Participant replacement Committee members only speak once Immediately becomes irrelevant to BA* BA* avoids any private state New committee is elected every step of BA* All users can become committee members The seed is refreshed every R rounds

Communication Communicate via gossip Each user collects a block of transactions they hear about Algorand will initiate a round starting w/block proposal Create committee using Sortition All committee members will propose their block Users will wait for a time period to receive blocks Only keep highest priority block All users who received some block will initiate BA* to reach majority consensus and commit a block

BA* Phase 1: Reduction() Phase 2: BinaryBA() Reach consensus on one of two values, a proposed block or an empty block Phase 2: BinaryBA() Reach consensus on either the block from reduction or an empty block Relies on Reduction() to ensure that at most one non-empty block is passed to BinaryBA() by all honest users

Another overview… Each phase runs in steps Phase 1: 2 steps Phase 2: 2-11 steps Each step calls sortition to create a committee Each committee member will broadcast their votes for their block Users that receive more than t votes for a block will hold onto that block All users can see messages

BA* - Reduction() Context: Users have received a block from block proposal Reduce agreement of block into agreeing on hash of the block or an empty block Step 1: Each committee member votes for their block All users will see these votes and tally them up and adopt the majority or the empty block Step 2: Each committee member votes for their block Pass on phase 2

BA* - BinaryBA() Receive a single block from Reduction() In examples, assume nonempty block We will now choose either the empty block or the block from reduction In synchronous system Simple case: Step 1: Most committee members send the same block Nodes notice they are passing a large threshold, they will invoke a special final vote Step Final: Large threshold of users vote for the same block and commit to blockchain

BA* - BinaryBA() Synchronous system Adversary case: Step 1: Adversary tells User_A its vote, and remaining users nothing Other users timeout If chosen for committee, does not adopt empty block, instead times out User_A reaches consensus Guaranteed to remain in next three steps Step 2: Anyone who time’d out will adopt User_A’s block Step N: Continue until special FINAL round

BA* - BinaryBA() Asynchronous system Step 1: committee share their votes User_A hears all the votes and reaches consensus on block B All other users time out Step 2: User_A votes for B, but eveyrone times out a 2nd time Time’d out users will adopt empty block E and gossip to their network

BinaryBA() – Getting Unstuck Committee members will agree on binary value (coin) from their hash Choose the least significant bit of the lowest hash amongst committee Attach coin to messages, as means of reaching consensus As long as enough users observe the same bit, BinaryBA() will reach consensus in the next iteration of the loop with probability ½ Adversary consistently having lowest hash is extremely unlikely

Evaluation 1000 VMs on Amazon’s EC2 8 cores and up to 1 Gbps network throughput 50 users per VM 1MB block Cap bandwidth is 20 Mbps Equal amount of money per user

Evaluation

Discussion Strength Weakness

Discussion Scalable due to the idea of random committee Experimentation is great Gossip…? Limited to cryptocurrency Tradeoffs between public blockchain and private/consortium blockchain