From 8a9814b9f66d740178512738c1c02408b666ab62 Mon Sep 17 00:00:00 2001 From: oleg-ssvlabs Date: Mon, 20 Apr 2026 15:49:04 +0200 Subject: [PATCH 1/5] chore(dkg): mark SIP 1 as superseded by ssv-dkg - Add note pointing readers to ssvlabs/ssv-dkg and ssvlabs/dkg-spec, where the active DKG implementation and spec live. - Remove stale "TODO - missing proof of possession for the pubkey?" left in the SIP since 2022. - Fix broken Markdown link to the discussion thread. Closes ssvlabs/ssv-node-board#516 Co-Authored-By: Claude --- sips/dkg.md | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/sips/dkg.md b/sips/dkg.md index ec53fa0..ea8e767 100644 --- a/sips/dkg.md +++ b/sips/dkg.md @@ -2,7 +2,16 @@ |-------------|--------------------------------|----------|---------------------|------------| | Alon Muroch | Generalized DKG support in SSV | Core | open-for-discussion | 2022-06-27 | -[Discussion] (https://github.com/ssvlabs/SIPs/discussions/7) +[Discussion](https://github.com/ssvlabs/SIPs/discussions/7) + +> **Note:** This SIP is no longer actively developed. The DKG protocol for SSV +> is implemented in [`ssvlabs/ssv-dkg`](https://github.com/ssvlabs/ssv-dkg) +> with its specification maintained in +> [`ssvlabs/dkg-spec`](https://github.com/ssvlabs/dkg-spec). This document +> is kept for historical reference only; design details below do not reflect +> the current implementation. The SIP lifecycle defined in [SIP 0](./sip0.md) +> does not currently include a `superseded` state, so the header status is +> left unchanged. **Summary** Describes a general workflow and specifications for integrating DKG into SSV regardless of the DKG protocol selected, number of rounds it requires or data structures it uses. @@ -92,8 +101,6 @@ Immediately after receiving an Init message, each operator will broadcast a newl IMPORTANT: The protocol does not start the key generation process if did not receive SignedSessionPubKey from every operator -// TODO - missing proof of possession for the pubkey? - ```go type SignedSessionPubKey struct { // Session EC pubkey From 6672dc5f5933bd064436add941d85d090aa9b4d1 Mon Sep 17 00:00:00 2001 From: Gal Rogozinski Date: Fri, 1 May 2026 00:15:46 +0300 Subject: [PATCH 2/5] Apply suggestion from @olegshmuelov Co-authored-by: olegshmuelov <45327364+olegshmuelov@users.noreply.github.com> --- sips/dkg.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sips/dkg.md b/sips/dkg.md index ea8e767..787f2a8 100644 --- a/sips/dkg.md +++ b/sips/dkg.md @@ -1,6 +1,6 @@ | Author | Title | Category | Status | Date | |-------------|--------------------------------|----------|---------------------|------------| -| Alon Muroch | Generalized DKG support in SSV | Core | open-for-discussion | 2022-06-27 | +| Alon Muroch | Generalized DKG support in SSV | Core | Superseded | 2022-06-27 | [Discussion](https://github.com/ssvlabs/SIPs/discussions/7) From c6593acbe826f429508bc641542c1d14063278bf Mon Sep 17 00:00:00 2001 From: oleg-ssvlabs Date: Wed, 22 Apr 2026 11:06:38 +0200 Subject: [PATCH 3/5] Add Security Considerations section to the SIP template (#90) Co-authored-by: momosh --- template_sip.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/template_sip.md b/template_sip.md index 59d5b3d..4f6b810 100644 --- a/template_sip.md +++ b/template_sip.md @@ -11,3 +11,6 @@ Explain the rational behind writing this SIP, what were the design goals set for **Specification** Under this section all relevant technical details for the SIP should be written, including: code, equations, testing, etc. The specification section should fully explain how to implement the SIP, test it (if relevant) and in general explained in a technical way. + +**Security Considerations** +Discuss the security implications of the proposed change. Identify new attack surfaces, assumptions the design relies on (e.g. honest majority, synchrony), and how the change interacts with slashing, consensus safety, and liveness. If the SIP has no security impact, state so explicitly and explain why. From 16d3603c9275fffad9173fe0b415a76ea9562975 Mon Sep 17 00:00:00 2001 From: Julien H Date: Mon, 27 Apr 2026 22:21:16 +1200 Subject: [PATCH 4/5] Reconcile SIP status metadata (#88) --- all.md | 18 +++++++++--------- sips/aggregator_committee_consensus.md | 2 +- sips/committee_consensus.md | 2 +- sips/constant_qbft_timeout.md | 2 +- sips/eliminate_bls.md | 2 +- sips/epoch_aware_round_robin_proposer.md | 3 +-- sips/network_topics_minhash.md | 2 +- sips/pre_consensus_liveness.md | 4 ++-- sips/qbft_drop_redundant_bls.md | 4 ++-- sips/topic_by_committee_id.md | 2 +- 10 files changed, 20 insertions(+), 21 deletions(-) diff --git a/all.md b/all.md index 3e07a0f..5aeaa9e 100644 --- a/all.md +++ b/all.md @@ -3,12 +3,12 @@ | SIP # | Title | Category | Status | Date | | --------------------------------------------------------- | ------------------------------------------------------ | ---------- | ------------------- | ---------- | | [1](./sips/dkg.md) | DKG | core | open-for-discussion | 2022-06-27 | -| [2](./sips/msg_struct_encoding.md) | Message struct and encoding | core | open-for-discussion | 2022-07-26 | -| [3](./sips/qbft_sync.md) | QBFT Sync | core | open-for-discussion | 2022-09-04 | -| [4](./sips/change_operator.md) | Change operators set | contract | open-for-discussion | 2022-09-04 | -| [5](./sips/ecies_share_encryption.md) | ECIES Share Encryption | contract | open-for-discussion | 2022-11-09 | -| [6](./sips/constant_qbft_timeout.md) | Constant QBFT timeout | core | open-for-discussion | 2022-11-19 | -| [7](./sips/fork_support.md) | Fork Support | core | open-for-discussion | 2022-12-12 | +| [2](./sips/msg_struct_encoding.md) | Message struct and encoding | core | spec-merged | 2022-07-26 | +| [3](./sips/qbft_sync.md) | QBFT Sync | core | Deprecated | 2022-09-04 | +| [4](./sips/change_operator.md) | Change operators set | contract | rejected | 2022-09-04 | +| [5](./sips/ecies_share_encryption.md) | ECIES Share Encryption | contract | approved | 2022-11-09 | +| [6](./sips/constant_qbft_timeout.md) | Constant QBFT timeout | core | spec-merged | 2022-11-19 | +| [7](./sips/fork_support.md) | Fork Support | core | approved | 2022-12-12 | | [8](./sips/pre_consensus_liveness.md) | Pre-Consensus liveness fix | core | open-for-discussion | 2023-02-07 | | [9](./sips/partial_signature_verification_aggregation.md) | Partial Signature Verification Aggregation | core | spec-merged | 2024-03-19 | | [10](./sips/qbft_drop_redundant_bls.md) | Drop redundant BLS in QBFT | core | spec-merged | 2024-03-27 | @@ -16,6 +16,6 @@ | [12](./sips/topic_by_committee_id.md) | Topic mapping by Committee ID | networking | spec-merged | 2024-05-21 | | [13](./sips/committee_consensus.md) | Cluster-based consensus | core | spec-merged | 2024-03-05 | | [14](./sips/validators_per_operator_1k_cap.md) | 1K cap on validators per operator | core | spec-merged | 2024-11-28 | -| [15](./sips/network_topics_minhash.md) | Network Topics MinHash | networking | open-for-discussion | 2024-03-06 | -| [16](./sips/epoch_aware_round_robin_proposer.md) | Epoch-Aware Round-Robin Proposer | core | open-for-discussion | 2025-12-13 | -| [17](./sips/aggregator_committee_consensus.md) | Aggregator Committee Duties | core | open-for-discussion | 2025-05-12 | +| [15](./sips/network_topics_minhash.md) | Network Topics MinHash | networking | spec-merged | 2024-03-06 | +| [16](./sips/epoch_aware_round_robin_proposer.md) | Epoch-Aware Round-Robin Proposer | core | spec-merged | 2025-12-13 | +| [17](./sips/aggregator_committee_consensus.md) | Aggregator Committee Duties | core | spec-merged | 2025-05-12 | diff --git a/sips/aggregator_committee_consensus.md b/sips/aggregator_committee_consensus.md index 1d46b5f..2c79e05 100644 --- a/sips/aggregator_committee_consensus.md +++ b/sips/aggregator_committee_consensus.md @@ -1,6 +1,6 @@ | Author | Title | Category | Status | Date | | -------------- | -------------------------------- | ---------- | ------------------- | ---------- | -| Matheus Franco | Aggregator Committee Consensus | Core | open-for-discussion | 2025-05-12 | +| Matheus Franco | Aggregator Committee Consensus | Core | spec-merged | 2025-05-12 | ## Summary diff --git a/sips/committee_consensus.md b/sips/committee_consensus.md index d99fc4b..0b9a950 100644 --- a/sips/committee_consensus.md +++ b/sips/committee_consensus.md @@ -1,6 +1,6 @@ | Author | Title | Category | Status | Date | | -------------- | -------------------------- | ---------- | ------------------- | ---------- | -| Matheus Franco, Gal Rogozinski | Committee consensus | Core | open-for-discussion | 2024-03-05 | +| Matheus Franco, Gal Rogozinski | Committee consensus | Core | spec-merged | 2024-03-05 | ## Summary diff --git a/sips/constant_qbft_timeout.md b/sips/constant_qbft_timeout.md index 8def2e9..8f5286a 100644 --- a/sips/constant_qbft_timeout.md +++ b/sips/constant_qbft_timeout.md @@ -1,6 +1,6 @@ | Author | Title | Category | Status | Date | |-------------|-----------------------|----------|----------|------------| -| Alon Muroch | Constant QBFT timeout | Core | rejected | 2022-11-19 | +| Alon Muroch | Constant QBFT timeout | Core | spec-merged | 2022-11-19 | _Special thanks for Henrique Moniz for reviewing_ diff --git a/sips/eliminate_bls.md b/sips/eliminate_bls.md index d6fb259..6f65d12 100644 --- a/sips/eliminate_bls.md +++ b/sips/eliminate_bls.md @@ -1,6 +1,6 @@ | Author | Title | Category | Status | Date | | -------------- | ------------------------ | -------- | ------------------- | ---------- | -| Matheus Franco | Eliminate BLS out of QBFT and change message structure | Core | open-for-discussion | 2024-03-15 | +| Matheus Franco | Eliminate BLS out of QBFT and change message structure | Core | spec-merged | 2024-03-15 | [Discussion](https://github.com/ssvlabs/SIPs/discussions/38) diff --git a/sips/epoch_aware_round_robin_proposer.md b/sips/epoch_aware_round_robin_proposer.md index 0baa739..1367b37 100644 --- a/sips/epoch_aware_round_robin_proposer.md +++ b/sips/epoch_aware_round_robin_proposer.md @@ -1,6 +1,6 @@ | Author | Title | Category | Status | Date | | -------------- |----------------------------------| -------- | ------------------- |------------| -| Matheus Franco | Epoch-Aware Round-Robin Proposer | Core | open-for-discussion | 2025-12-13 | +| Matheus Franco | Epoch-Aware Round-Robin Proposer | Core | spec-merged | 2025-12-13 | ## Summary @@ -55,4 +55,3 @@ func RoundRobinProposer(state *State, round Round) types.OperatorID { return state.CommitteeMember.Committee[index].OperatorID } ``` - diff --git a/sips/network_topics_minhash.md b/sips/network_topics_minhash.md index 8452e35..cc81086 100644 --- a/sips/network_topics_minhash.md +++ b/sips/network_topics_minhash.md @@ -1,6 +1,6 @@ | Author | Title | Category | Status | Date | | --------------------------------| -------------------------- | ---------- | ------------------- | ---------- | -| @diegomrsantos, Matheus Franco | Network Topics MinHash | Network | open-for-discussion | 2024-03-06 | +| @diegomrsantos, Matheus Franco | Network Topics MinHash | Network | spec-merged | 2024-03-06 | ## Table of Contents - [Summary](#summary) diff --git a/sips/pre_consensus_liveness.md b/sips/pre_consensus_liveness.md index a40efe3..b65315c 100644 --- a/sips/pre_consensus_liveness.md +++ b/sips/pre_consensus_liveness.md @@ -1,6 +1,6 @@ | Author | Title | Category | Status | Date | |-------------|------------------------|----------|----------|------------| -| Alon Muroch | Pre-Consensus Liveness | Core | approved | 2023-02-07 | +| Alon Muroch | Pre-Consensus Liveness | Core | open-for-discussion | 2023-02-07 | **Summary** Some duties require pre-consensus (randao, selection proof, etc) before the consensus stage can start. Partial signatures are signed and broadcasted to reconstruct a valid signature for the pre-consensus step. @@ -232,4 +232,4 @@ func (b *BaseRunner) processPreConsensusJustification(runner Runner, highestDeci return runner.decideOnRoots(r) } -``` \ No newline at end of file +``` diff --git a/sips/qbft_drop_redundant_bls.md b/sips/qbft_drop_redundant_bls.md index 6b1ba72..d34f303 100644 --- a/sips/qbft_drop_redundant_bls.md +++ b/sips/qbft_drop_redundant_bls.md @@ -1,6 +1,6 @@ | Author | Title | Category | Status | Date | | -------------- | ------------------------- | -------- | ------------------- | ---------- | -| Matheus Franco | QBFT - Drop redundant BLS | Core | open-for-discussion | 2024-03-27 | +| Matheus Franco | QBFT - Drop redundant BLS | Core | spec-merged | 2024-03-27 | [Discussion](https://github.com/ssvlabs/SIPs/discussions/38) @@ -190,4 +190,4 @@ func (n *Operator) GetOperatorPublicKey() []byte { ## Drawbacks -No drawbacks could be found yet. \ No newline at end of file +No drawbacks could be found yet. diff --git a/sips/topic_by_committee_id.md b/sips/topic_by_committee_id.md index 926dd78..d520213 100644 --- a/sips/topic_by_committee_id.md +++ b/sips/topic_by_committee_id.md @@ -1,6 +1,6 @@ | Author | Title | Category | Status | Date | | -------------- | --------------------- | -------- | ------------------ | ---------- | -| Matheus Franco | Topic by committee ID | Core | open-for-discussion | 2024-05-21 | +| Matheus Franco | Topic by committee ID | Core | spec-merged | 2024-05-21 | ## Summary From 409adf30f152ce42a8afc55da7a49a8076726f9b Mon Sep 17 00:00:00 2001 From: oleg-ssvlabs Date: Mon, 4 May 2026 11:05:21 +0200 Subject: [PATCH 5/5] Update dkg.md --- sips/dkg.md | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/sips/dkg.md b/sips/dkg.md index 787f2a8..ce14b30 100644 --- a/sips/dkg.md +++ b/sips/dkg.md @@ -4,14 +4,11 @@ [Discussion](https://github.com/ssvlabs/SIPs/discussions/7) -> **Note:** This SIP is no longer actively developed. The DKG protocol for SSV -> is implemented in [`ssvlabs/ssv-dkg`](https://github.com/ssvlabs/ssv-dkg) -> with its specification maintained in -> [`ssvlabs/dkg-spec`](https://github.com/ssvlabs/dkg-spec). This document -> is kept for historical reference only; design details below do not reflect -> the current implementation. The SIP lifecycle defined in [SIP 0](./sip0.md) -> does not currently include a `superseded` state, so the header status is -> left unchanged. +> **Note:** This SIP is no longer actively developed. DKG for SSV is now provided by +> [`ssvlabs/ssv-dkg`](https://github.com/ssvlabs/ssv-dkg) and +> [`ssvlabs/dkg-spec`](https://github.com/ssvlabs/dkg-spec), which follow a **different +> design** than the protocol described below. This document is kept for historical +> reference only. **Summary** Describes a general workflow and specifications for integrating DKG into SSV regardless of the DKG protocol selected, number of rounds it requires or data structures it uses.