Tutorial: Consensus Algorithms from Classical To Blockchain: Quickly Program, Configure, Run, and Check
Y. Annie Liu and Scott D. Stoller, Stony Brook University
This tutorial examines well-known algorithms for distributed consensus problems, from classical consensus to blockchain consensus. We discuss exact algorithms that are high-level as in pseudocode and directly executable as programs at the same time, focusing on how to quickly program, configure, run, and check these algorithms as well as distributed algorithms and systems in general. The tutorial consists of five parts:
1. An introduction to different distributed consensus problems, from classical consensus to Byzantine consensus to blockchain consensus.
2. An overview of well-known algorithms, from Paxos for classical consensus to the Bitcoin algorithm for blockchain consensus, including important variants such as Viewstamped Replication and Virtual Synchrony, as well as Proof-of-Stake vs. Proof-of-Work and Byzantine fault tolerance (BFT) protocols.
3. An overview of a method and language, DistAlgo, for expressing distributed algorithms precisely at a high-level as pseudocode and having them be directly executable at the same time, and be easily configured and checked for safety and liveness properties.
4. A study of exact algorithms expressed at a high level for the most extensively studied algorithm variants, including Lamport’s Paxos for classical consensus, Nakamoto’s Bitcoin algorithm for blockchain consensus, and more recent BFT protocols, focusing on their exact programming, configuration, execution, and checking.
5. A demo of direct execution and checking of these algorithms running as distributed processes.
Additional information and materials for the tutorial, including complete executable programs, will be made available at https://distalgo.cs.stonybrook.edu/tutorial
Abstract—While the first generation of cloud computing systems mitigated the job of system administrators, the next generation of cloud computing systems is emerging to mitigate the burden for cloud developers—facilitating the development of cloud-native applications. This paradigm shift is primarily happening by offering higher-level serverless abstractions, such as Function as a Service (FaaS). Although FaaS has successfully abstracted developers from the cloud resource management details, it falls short in abstracting the management of both data (i.e., state) and the non-functional aspects, such as Quality of Service (QoS) requirements. The lack of such abstractions implies developer intervention and is counterproductive to the objective of mitigating the burden of cloud-native application development. To further streamline cloud-native application development, we present Object-as-a-Service (OaaS)—a serverless paradigm that borrows the object-oriented programming concepts to encapsulate application logic and data in addition to non-functional requirements into a single deployment package, thereby streamlining provider-agnostic cloud-native application development. We realized the OaaS paradigm through the development of an open-source platform called Oparaca. In this tutorial, we will present the concept and design of the OaaS paradigm and its implementation—the Oparaca platform. Then, we give a tutorial on developing and deploying the application on the Oparaca platform and discuss its benefits and its optimal configurations to avoid potential overheads.
Tutorial: Information Leakage from Cryptographic Techniques
Komal Kumari, New Jersey Institute of Technology, Sharad Mehrotra, University of California, Irvine and Shantanu Sharma, New Jersey Institute of Technology
Abstract—This tutorial focuses on the research aimed at providing secure data processing at the public cloud. First, we focus on cryptographic (encryption and secret-sharing) techniques and systems developed over the last two decades. Second, we will discuss information leakages from ciphertext (e.g., distribution, ordering, and cross-crypto leakages) and query execution (e.g. access pattern, volume, and workload skew leakages) and compare the existing techniques and systems based on efficiency and information leakage. Finally, we conclude that cryptographic techniques are not sufficient alone. To provide efficient and secure large-scale data processing at the cloud, a new line of work that combines software and hardware mechanisms is required. We discuss an orthogonal approach designed around the concept of data partitioning, i.e., splitting the data processing into cryptographically secure and non-secure parts.
Morning workshops/tutorials 09.00-12.00 (3h) (*)
Tech for Good: Economic and Computational Advances in Distributed Systems (Tech4Good) (Room: Intrepid)
International Workshop on Digital Twin-Enabled 6G Multi-Tier Distributed Computing Systems (DTMTDCS) (Room: Newport I)
Tutorial: Information Leakage from Cryptographic Techniques (Room: Newport II)
Tutorial: Object as a Service (OaaS) Serverless Cloud Computing Paradigm (Room: Newport IV)
PhD Symposium (Room: Newport V)
Lunch 12.00 – 13.15 (Room: Newport III)
Afternoon workshop/tutorials 13.15-16.15 (3h) (**)
Generative, Incremental, Adversarial, Explainable AI/ML in Distributed Computing Systems (AI-DCS) (Room: Intrepid)
The Eighth IEEE International Workshop on the Security, Privacy, and Digital Forensics of Mobile Systems and Networks (MobiSec 2024) (Room: Newport I)
Workshop on Engineering techniques for Distributed Computing Continuum Systems (DCCS) (Room: Newport II)
Tutorial: Federated Learning x Security for Network Monitoring (Room: Newport IV)
Tutorial: Consensus Algorithms from Classical To Blockchain: Quickly Program, Configure, and Check (accepted tutorial, preference: afternoon) (Room: Newport V)
Note: (*) if you run a morning workshop and your schedule is less than 3 hours, you may choose to start later.
(**) if you run a afternoon workshop and you need more time than 3 hours, you could extend until 5pm (17.00).