Decentralized ThoughtsDecentralized thoughts about decentralization
https://decentralizedthoughts.github.io
Divide and Conquer in Distributed Computing - synchronous BFT with quadratic communication via recursive phase king
The idea of decomposing a hard problem into easier problems is a fundamental algorithm design pattern in Computer Science. Divide and Conquer is used in so many domains: sorting, multiplication, and FFT, to mention a few. But what about distributed computing? In this post we will highlight how divide and...
Sun, 15 Sep 2024 07:00:00 -0400
https://decentralizedthoughts.github.io/2024-09-15-divide-and-conquer/
https://decentralizedthoughts.github.io/2024-09-15-divide-and-conquer/HotStuff-1 and the Prefix Speculation Dilemma in BFT Consensus
Several approaches aim to reduce the number of network hops to reach finality in BFT Consensus protocols through speculation. They differ in their methods and in their guarantees, yet they all face a common phenomenon referred to as the prefix speculation dilemma. This post explains three principal speculation approaches and...
Sat, 24 Aug 2024 07:00:00 -0400
https://decentralizedthoughts.github.io/2024-08-24-hotstuff1/
https://decentralizedthoughts.github.io/2024-08-24-hotstuff1/The SAP theorem for storing secret keys
Public key cryptography (PKC) is a fundamental technology that is a key enabler to the Internet and the whole client-server paradigm. Without public key cryptography there would be no cryptocurrencies, no online bank accounts, no online retail, etc. In the PKC paradigm with clients and servers, clients authenticate to servers...
Fri, 09 Aug 2024 07:00:00 -0400
https://decentralizedthoughts.github.io/2024-08-09-sap/
https://decentralizedthoughts.github.io/2024-08-09-sap/What is Verifiable Information Dispersal?
Verifiable Information Dispersal (or VID) has its roots in the work of Michael Rabin, 1989 which introduced the notion of Information Dispersal (ID). Adding verifiability (referred to as binding in this post) to obtain VIDs was done by Garay, Gennaro, Jutla, and Rabin, 1998 (called SSRI). Cachin and Tessaro, 2004...
Thu, 08 Aug 2024 07:00:00 -0400
https://decentralizedthoughts.github.io/2024-08-08-vid/
https://decentralizedthoughts.github.io/2024-08-08-vid/Shoal++: High Throughput DAG-BFT Can Be Fast!
TL;DR: Shoal++ is a novel DAG-BFT system that supercharges Shoal to achieve near-optimal theoretical latency while preserving the high throughput and robustness of state-of-the-art certified DAG BFT protocols. We evaluated Shoal++ against state-of-the-art DAG BFT protocols, such as Bullshark and Shoal — as well as a concurrent DAG effort, Mysticeti...
Wed, 12 Jun 2024 13:05:00 -0400
https://decentralizedthoughts.github.io/2024-06-12-shoalpp/
https://decentralizedthoughts.github.io/2024-06-12-shoalpp/Sailfish: Improving the Latency of DAG-based BFT
In this blog post, we will explain the core ideas behind Sailfish, a latency-efficient DAG-based protocol. In essence, Sailfish is a reliable-broadcast (RBC) based DAG protocol that supports leaders in every RBC round. It commits leader vertices within 1RBC + $\delta$ time and non-leader vertices within 2RBC + $\delta$ time,...
Thu, 23 May 2024 13:05:00 -0400
https://decentralizedthoughts.github.io/2024-05-23-sailfish/
https://decentralizedthoughts.github.io/2024-05-23-sailfish/Decentralization of Ethereum Builder Market
Decentralization is a core underpinning of blockchains. Is today’s blockchain really decentralized? In a recent work, we explore this question in the context of the builder market in Ethereum. The market was introduced to avoid centralization caused by Maximal Extractable Value (MEV). After two years in operation, however, the builder...
Tue, 07 May 2024 13:05:00 -0400
https://decentralizedthoughts.github.io/2024-05-07-decentralization-ethereum/
https://decentralizedthoughts.github.io/2024-05-07-decentralization-ethereum/Consensus tolerating one mobile crash in synchrony or one crash is asynchrony must have infinite executions for the same simple reason
In a consensus protocol parties have an input (at least two possible values, say 0 or 1) and may output a decision value such that: Uniform Agreement: all decision values are the same. Validity: if all inputs are the same, then this is the output value. The third property is...
Thu, 07 Mar 2024 12:05:00 -0500
https://decentralizedthoughts.github.io/2024-03-07-mobile-is-FLP/
https://decentralizedthoughts.github.io/2024-03-07-mobile-is-FLP/In between Crash and Omission failures
In this post we explore adversary failure models that are in between crash and omission: Send Omissions (SO): the adversary can corrupt a party and decide to block any message that the party sends. The corrupted party is not aware that it is corrupted or that the message it wanted...
Tue, 30 Jan 2024 12:05:00 -0500
https://decentralizedthoughts.github.io/2024-01-30-between-crash-and-omission/
https://decentralizedthoughts.github.io/2024-01-30-between-crash-and-omission/Early Stopping is same but different: two rounds are needed even in failure free executions
Many systems try to optimize executions that are failure free. If we absolutely knew that there will be no failures, parties could simply send each other messages with our inputs and reach consensus by outputting, say, the majority value. Thus completing the protocol after one round. What happens if there...
Sun, 28 Jan 2024 12:05:00 -0500
https://decentralizedthoughts.github.io/2024-01-28-early-stopping-lower-bounds/
https://decentralizedthoughts.github.io/2024-01-28-early-stopping-lower-bounds/Gather with Binding and Verifiability
We extend the Gather protocol with two important properties: Binding and Verifiability. This post is based on and somewhat simplifies the information theoretic gather protocol in our recent ACS work with Gilad Asharov and Arpita Patra. Recall that we are in an asynchronous model, assuming $f<n/3$, with at most $f$...
Tue, 09 Jan 2024 18:00:00 -0500
https://decentralizedthoughts.github.io/2024-01-09-gather-with-binding-and-verifiability/
https://decentralizedthoughts.github.io/2024-01-09-gather-with-binding-and-verifiability/Simpler Security proof for Nakamoto Consensus
Four years ago (time flies!), I made a post on a simple security proof for Nakamoto consensus. While the proof intuition, as outlined in that post, is still reasonably simple, the actual proof has become quite delicate and crafty over the years. What happened was that some colleagues – Chen...
Mon, 30 Oct 2023 02:55:00 -0400
https://decentralizedthoughts.github.io/2023-10-30-Analysis-Nakamoto/
https://decentralizedthoughts.github.io/2023-10-30-Analysis-Nakamoto/Scaling Blockchains: the Power of Batching
A few years ago if you asked “Can blockchains scale?” most people would give three reasons why, fundamentally, the answer is “No!” Data: every transaction needs to be replicated by every miner (validator). So increasing security by adding more validators inherently causes more replication. Having $n$ validators implies that your...
Sat, 30 Sep 2023 08:00:00 -0400
https://decentralizedthoughts.github.io/2023-09-30-scaling/
https://decentralizedthoughts.github.io/2023-09-30-scaling/The Fast Fourier Transform over finite fields
The Fast Fourier Transform (FFT) developed by Cooley and Tukey in 1965 has its origins in the work of Gauss. The FFT, its variants and extensions to finite fields, are a fundamental algorithmic tool and a beautiful example of interplay between algebra and combinatorics. There are many great resources on...
Fri, 01 Sep 2023 08:00:00 -0400
https://decentralizedthoughts.github.io/2023-09-01-FFT/
https://decentralizedthoughts.github.io/2023-09-01-FFT/Asynchronous Agreement on a Core Set
A challenging step in many asynchronous protocols is agreeing on a set of parties that completed some task. For example, an asynchronous protocol might start off with parties reliably broadcasting a value. Due to asynchrony and having $\leq f$ corruptions, honest parties can only wait for $n-f$ parties to complete...
Sat, 22 Jul 2023 08:00:00 -0400
https://decentralizedthoughts.github.io/2023-07-22-agreeemnt-on-a-core-set/
https://decentralizedthoughts.github.io/2023-07-22-agreeemnt-on-a-core-set/Can we Obtain Privacy in a Private Proof-of-Stake Blockchain? Part-II
This is Part-II of a two-part post on privacy in private proof-of-stake blockchains. In Part-I, we explored attacks on existing private PoS approaches. In this post, we will discuss some ways to obtain privacy (at the expense of safety and/or liveness). A Three-Way Trade-Off between Safety, Liveness, and Privacy Madathil...
Fri, 21 Jul 2023 01:00:00 -0400
https://decentralizedthoughts.github.io/2023-07-21-ppos2/
https://decentralizedthoughts.github.io/2023-07-21-ppos2/Can we Obtain Privacy in a Private Proof-of-Stake Blockchain? Part-I
In this two-part post, we focus on the challenges and subtleties involved in obtaining privacy in private proof-of-stake (PoS) blockchains. For instance, designs that attempt to obtain privacy for transaction details while still relying on PoS, such as Ouroboros Crypsinous. The first part explains attacks on existing approaches, and the...
Fri, 21 Jul 2023 01:00:00 -0400
https://decentralizedthoughts.github.io/2023-07-21-ppos1/
https://decentralizedthoughts.github.io/2023-07-21-ppos1/The CAP Theorem and why State Machine Replication for Two Servers and One Crash Failure is Impossible in Partial Synchrony
In 1999, Fox and Brewer published a paper on the CAP principle, where they wrote: Strong CAP Principle. Strong Consistency, High Availability, Partition-resilience: Pick at most 2. At PODC 2000, Brewer gave an invited talk where he popularized the CAP theorem (an unproven conjecture at the time), which was later...
Sun, 09 Jul 2023 14:00:00 -0400
https://decentralizedthoughts.github.io/2023-07-09-CAP-two-servers-in-psynch/
https://decentralizedthoughts.github.io/2023-07-09-CAP-two-servers-in-psynch/$3f+1$ is needed in Partial Synchrony even against a Rollback adversary
We covered the classic DLS88 split brain impossibility result against a Byzantine adversary in a previous post: DLS88: (Theorem 4.4) It is impossible to solve Agreement under partial synchrony against a Byzantine adversary if $f \geq n/3$. In a follow up post, we discussed how CJKR12 strengthen this result by...
Mon, 26 Jun 2023 07:00:00 -0400
https://decentralizedthoughts.github.io/2023-06-26-dls-meets-rollback/
https://decentralizedthoughts.github.io/2023-06-26-dls-meets-rollback/Blockchains + TEEs Day 2 Summary
This is the second of the two part post on the workshop on Blockchains + TEEs that concluded last week. Here are the key ideas from Day 2. You can find the post summarizing Day 1 here. Nick Hynes: Practical Secure Decentralized Computing Nick discussed the use of TEEs by...
Mon, 17 Apr 2023 01:00:00 -0400
https://decentralizedthoughts.github.io/2023-04-17-blockchainsplustees-day2-summary/
https://decentralizedthoughts.github.io/2023-04-17-blockchainsplustees-day2-summary/