ava-labs / ava-labs/Simplex

Validate sealing blocks only via backward hash chain validation on bootstrap instead of also via QC

Open
#530 0 comments 0 reactions 0 assignees Claimed by @samliok View on GitHub
Dominant language
Go
Stars
22
Forks
4
Avg merge
2d 14h
Merged PRs (30d)
34

Description

When we bootstrap a node, it continues replicating from its latest epoch stored in its ledger.

This means that the epoch changes it performs rely on the fact that the blocks that cause the epoch change are properly signed by a quorum of nodes from the latest epoch.

However, this can be problematic in a setting where the node was offline for a long time or is a new node, because if the keys of the validator set have been leaked in the past, a malicious node can falsify an entire chain of blocks.

What we should do instead is when we bootstrap the node, we replicate only the sealing blocks backwards, until we reach the latest committed sealing block, and then we keep the chain of sealing blocks and use them and never replicate them by verifying quorum certificates.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with the bootstrap replication flow and the linked pull request #573, then trace how sealing blocks, backward hash-chain validation, and quorum certificates are currently handled. Done means bootstrap validation follows the issue's proposed sealing-block chain approach and avoids relying on quorum certificates for those blocks.

Written by the indexing model from the issue text.

Assessment

Tech stack
go
Domain
distributed-systems
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.