@CryptolyticLabs
Cryptolytic
26 days
🧵[1/20] Welcome back to Cryptolytic! Today we continue our Sui series with part 3. We dive into Mysticeti, Sui’s current consensus. We will see what makes Mysticeti better than Narwhal and Bullshark and why Sui made the shift.
1
0
0

Replies

@CryptolyticLabs
Cryptolytic
26 days
🧵[2/20] As always, if you want the full deep dive, check the article: https://t.co/KTVrQxqxti If you just want a quick version you can absorb fast, keep reading. 👇
1
0
0
@CryptolyticLabs
Cryptolytic
26 days
🧵[3/20] 👿 Problems with Narwhal and Bullshark 🔷 A lot of signatures to create, verify, and aggregate. All of this needs a lot of computing power. 🔷 Commit every two rounds is too slow. 🔷 The certified DAG design, where every vertex needs a certificate, adds engineering
1
0
0
@CryptolyticLabs
Cryptolytic
26 days
🧵[4/20] 🎯 Mysticeti goals 🔷 Reduce latency with pipelining and multiple leaders per wave, so commits can happen every round in normal operation and more vertices get included in leader histories. 🔷 Remove certificates and a lot of signature work by using an uncertified DAG.
1
0
0
@CryptolyticLabs
Cryptolytic
26 days
🧵[5/20] ☹️ How bad is a certified DAG In Narwhal, each block must be certified before it enters the DAG. That needs 2f+1 signatures, about 67% of validators. Each round also needs 2f+1 blocks before validators move to the next round. This gives a lower bound of (2f+1)^2
1
0
0
@CryptolyticLabs
Cryptolytic
26 days
🧵[6/20] 😇 Why an uncertified DAG is better A vertex in an uncertified DAG does not need a certificate. A validator that receives the vertex can optimistically add it to the DAG. 💯 Benefits of excluding certificates: 🔷 fewer signatures to create and verify 🔷 no
1
0
0
@CryptolyticLabs
Cryptolytic
26 days
🧵[7/20] 🧱Vertex structure in Mysticeti Each vertex contains 🔷 the block producer and its signature 🔷the round number 🔷a list of transactions 🔷 2f+1 distinct hashes of blocks from the previous round Pretty simple, right?
1
0
0
@CryptolyticLabs
Cryptolytic
26 days
🧵[8/20] 📜How Mysticeti ensures safety without certificates In Mysticeti, votes and certificates are implicit in the DAG. References act like votes. If a block includes 2f+1 hashes from the previous round, the author is implicitly accepting those blocks. These votes form
1
0
0
@CryptolyticLabs
Cryptolytic
26 days
🧵[9/20] 🌊Waves and commits Mysticeti works in waves of three rounds. In the first round of each wave, a chosen vertex becomes the leader, and when the leader is committed, its causal history is committed too. A wave can have more than one leader, but we can start with one
1
0
0
@CryptolyticLabs
Cryptolytic
26 days
🧵[10/20] In Mysticeti there are two main DAG patterns 🔷 Certificate pattern: A block B at round r receives a certificate if there are 2f+1 blocks in round r+1 that reference B, and a block in round r+2 references those 2f+1 blocks from round r+1. 🔷Blame pattern: A block B
1
0
0
@CryptolyticLabs
Cryptolytic
26 days
🧵[11/20] Validators in Mysticeti rely on the two patterns above to decide the state of a leader in each wave, using the following rule. 1⃣ First rule: Direct decision rule A leader L is marked as 🔹 to-commit: if it gets 2f+1 certificate patterns 🔹 to-skip: if it gets 2f+1
1
0
0
@CryptolyticLabs
Cryptolytic
26 days
🧵[12/20] 2⃣ Second rule: Indirect decision rule If L is undecided, pick the first later leader as an anchor (for example, if L is the leader of wave 1, the anchor should be the leader of wave 2), one that is marked to-commit or undecided. 🔹 If the anchor is undecided, L stays
1
0
0
@CryptolyticLabs
Cryptolytic
26 days
🧵[13/20] Ordering Start at the lowest round. Commit leaders marked to-commit, skip to-skip, and stop at the first undecided. After the leader order is decided, place each committed leader’s causal history between consecutive leaders; for example, put leader B’s history between
1
0
0
@CryptolyticLabs
Cryptolytic
26 days
🧵[14/20] All of these let us build a simple DAG in Mysticeti and commit vertices in it. Mysticeti also adds two key optimizations: pipelining and multiple leaders per wave, which cut latency and pull more vertices into leaders’ histories.
1
0
0
@CryptolyticLabs
Cryptolytic
26 days
🧵[15/20] ⏱️ Pipelining intuition The direct rule needs three rounds to decide the state of a leader and its history, which is one wave. Mysticeti overlaps waves, for example rounds 1 to 3, then 2 to 4, then 3 to 5, and so on. Result: in steady state, a new leader can be
1
0
0
@CryptolyticLabs
Cryptolytic
26 days
🧵[16/20] 👥 Multiple leaders per round Mysticeti allows more than one leader in a round. This pulls more vertices into leaders’ causal histories and reduces the chance that honest work waits many rounds to be included. Below is a figure that shows Mysticeti’s DAG with
1
0
0
@CryptolyticLabs
Cryptolytic
26 days
🧵[17/20] 🧪 How many leaders You can set leaders per round up to the number of validators. More leaders catch more vertices but also raise the chance of hitting an undecided, which pauses ordering. The paper suggests two to three leaders as a good choice.
1
0
0
@CryptolyticLabs
Cryptolytic
26 days
🧵[18/20] 📈 Putting it together Pipelining lets commits happen every round. Multiple leaders reduce the chance that vertices get left behind. The uncertified DAG removes certificate overhead and lowers computation cost.
1
0
0
@CryptolyticLabs
Cryptolytic
26 days
🧵[19/20] 📚 If you want a deeper dive with diagrams, read the full article here: Read the full article here:
1
0
0
@CryptolyticLabs
Cryptolytic
26 days
🧵[20/20] Thanks for reading! If you found this thread useful, please like, retweet, and follow so more people can learn what is behind blockchain. Comments or questions? Drop them below. ❤️ If there is any protocol or topic you want me to research, let me know 🧑‍🔬🧪 Keep learning
0
0
0
@victrmorl
Victor Morel
13 hours
@wilsonformayor A dignified life in Seattle starts with the ability to walk our streets safely, free from the threat of repeat violent offenders who have been released by judges who do not believe in prison. 75-yo Jeanette Markin just lost her eye because of one of these judges.
0
0
17