Skip to content

Conversation

jpraynaud
Copy link
Member

@jpraynaud jpraynaud commented Sep 11, 2025

Content

This PR includes support for multiple proof systems in the STM library:

  • Adds AggregateSignatureType enum with initial support for Concatenation proof system
  • Refactors AggregateSignature from struct to enum to support multiple proof system implementations (a new proof is now implemented in a dedicated sub-module of the proof sub-module)
  • Update of aggregator, e2e tests, infrastructure and CI to include the configuration of the aggregate signature type

Pre-submit checklist

  • Branch
    • Tests are provided (if possible)
    • Crates versions are updated (if relevant)
    • CHANGELOG file is updated (if relevant)
    • Commit sequence broadly makes sense
    • Key commits have useful messages
  • PR
    • All check jobs of the CI have succeeded
    • Self-reviewed the diff
    • Useful pull request description
    • Reviewer requested
  • Documentation
    • No new TODOs introduced

Issue(s)

Closes #2680

@jpraynaud jpraynaud self-assigned this Sep 11, 2025
Copy link

github-actions bot commented Sep 11, 2025

Test Results

    4 files  ±0    164 suites  ±0   23m 39s ⏱️ -21s
2 195 tests +2  2 195 ✅ +2  0 💤 ±0  0 ❌ ±0 
6 760 runs  +7  6 760 ✅ +7  0 💤 ±0  0 ❌ ±0 

Results for commit d4b30d4. ± Comparison against base commit 098106d.

♻️ This comment has been updated with latest results.

@jpraynaud jpraynaud force-pushed the jpraynaud/2680-stm-multiple-proof-system branch from c532b82 to 39fcd60 Compare September 12, 2025 16:06
@jpraynaud jpraynaud force-pushed the jpraynaud/2680-stm-multiple-proof-system branch from 39fcd60 to 9dc8a47 Compare September 15, 2025 16:26
@jpraynaud jpraynaud force-pushed the jpraynaud/2680-stm-multiple-proof-system branch from 9dc8a47 to cf5d7fb Compare September 15, 2025 16:40
@jpraynaud jpraynaud force-pushed the jpraynaud/2680-stm-multiple-proof-system branch from cf5d7fb to 26f6e40 Compare September 15, 2025 16:53
@jpraynaud jpraynaud force-pushed the jpraynaud/2680-stm-multiple-proof-system branch 2 times, most recently from b62c4d8 to 51526d9 Compare September 17, 2025 16:29
@jpraynaud jpraynaud requested a review from Copilot September 17, 2025 16:32
Copy link

@Copilot Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR introduces support for multiple proof systems in the STM (Stake-based Threshold Multisignature) implementation by adding an aggregate signature type parameter. The main change refactors the existing concatenation proof system into a modular structure that can support future proof systems.

  • Adds AggregateSignatureType enum with initial support for Concatenation proof system
  • Refactors AggregateSignature from struct to enum to support multiple proof system implementations
  • Updates configuration, API, and infrastructure to include aggregate signature type parameter

Reviewed Changes

Copilot reviewed 45 out of 46 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
openapi.yaml Adds aggregate_signature_type field to API specifications and examples
mithril-stm/src/aggregate_signature/signature.rs Refactors AggregateSignature from struct to enum with proof system abstraction
mithril-stm/src/aggregate_signature/proof/ Creates new modular proof system structure with concatenation implementation
mithril-aggregator/src/configuration.rs Adds aggregate signature type configuration parameter
mithril-common/src/messages/aggregator_features.rs Updates aggregator capabilities to include signature type
mithril-test-lab/ Updates test infrastructure to support aggregate signature type parameter
Comments suppressed due to low confidence (2)

mithril-stm/src/aggregate_signature/signature.rs:1

  • Use proper Rust formatting with a space after 'else'. Should be } else { instead of }else{.
use std::collections::HashMap;

mithril-stm/src/aggregate_signature/signature.rs:1

  • Use proper Rust formatting with a space after 'else'. Should be } else { instead of }else{.
use std::collections::HashMap;

Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

@jpraynaud jpraynaud force-pushed the jpraynaud/2680-stm-multiple-proof-system branch from 51526d9 to 26d6768 Compare September 18, 2025 13:12
@jpraynaud jpraynaud force-pushed the jpraynaud/2680-stm-multiple-proof-system branch from 26d6768 to 215e64e Compare September 18, 2025 14:31
@jpraynaud jpraynaud marked this pull request as ready for review September 18, 2025 14:51
Copy link
Collaborator

@turmelclem turmelclem left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM 👍

@jpraynaud jpraynaud force-pushed the jpraynaud/2680-stm-multiple-proof-system branch from 215e64e to 94d39fe Compare October 2, 2025 12:52
Copy link
Collaborator

@curiecrypt curiecrypt left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Left some minor comments, questions 😊

And create a new 'proof' sub-module where it is moved.
This will be removed when a new proof system is implemented.
In the mean time it structures the code for ease of implementation later.
@jpraynaud jpraynaud force-pushed the jpraynaud/2680-stm-multiple-proof-system branch 2 times, most recently from 56ce6cd to 764628b Compare October 7, 2025 10:45
Copy link
Collaborator

@curiecrypt curiecrypt left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM 🚀

@jpraynaud jpraynaud force-pushed the jpraynaud/2680-stm-multiple-proof-system branch from 764628b to 7543e87 Compare October 7, 2025 14:52
@jpraynaud jpraynaud force-pushed the jpraynaud/2680-stm-multiple-proof-system branch from 7543e87 to 3f368d0 Compare October 7, 2025 14:57
* mithril-aggregator from `0.7.86` to `0.7.87`
* mithril-common from `0.6.19` to `0.6.20`
* mithril-stm from `0.5.2` to `0.5.3`
* mithril-end-to-end from `0.4.103` to `0.4.104`
* [js] mithril-explorer from `0.7.38` to `0.7.39`
* openapi.yaml from `0.1.52` to `0.1.53`
* mithril-infra/assets/infra.version from `0.4.11` to `0.4.12`
@jpraynaud jpraynaud force-pushed the jpraynaud/2680-stm-multiple-proof-system branch from 3f368d0 to d4b30d4 Compare October 7, 2025 15:01
@jpraynaud jpraynaud merged commit d7ce977 into main Oct 7, 2025
70 of 71 checks passed
@jpraynaud jpraynaud deleted the jpraynaud/2680-stm-multiple-proof-system branch October 7, 2025 15:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Support multiple aggregation proof systems in STM library
3 participants