Skip to content

Add generic, batch, and distributed signing profiles - #29

Draft
wemeetagain wants to merge 1 commit into
ethereum:mainfrom
wemeetagain:feat/distributed-signing
Draft

wemeetagain wants to merge 1 commit into
ethereum:mainfrom
wemeetagain:feat/distributed-signing

Conversation

@wemeetagain

Copy link
Copy Markdown

Summary

  • extract the reusable SigningRequest union and add a GENERIC signing request
  • add an optional same-duty, multi-key batch signing endpoint with ordered per-key results
  • add an optional distributed-signing profile for participant discovery, partial signing, and batch partial signing
  • document threshold recovery, authorization, and slashing-protection requirements, with a deterministic 2-of-3 test vector

Motivation

The existing API standardizes the validator-client-to-signer boundary, but threshold deployments also need a consistent coordinator-to-participant boundary. This adds that profile without changing the existing full-signature endpoint or requiring distributed-signing details in validator clients.

This also addresses the generic-signing and batching use cases discussed in #26 and #19 while keeping them additive to the existing API.

API additions

  • POST /api/v1/eth2/sign for same-duty multi-key batch signing
  • GET /api/v1/eth2/distributed/accounts
  • GET /api/v1/eth2/distributed/accounts/{identifier}
  • POST /api/v1/eth2/distributed/sign
  • POST /api/v1/eth2/distributed/sign/{identifier}

The existing POST /api/v1/eth2/sign/{identifier} endpoint remains the full-signature endpoint. Distributed signing endpoints return partial signatures and participant metadata only.

Compatibility and release note

All new request types and endpoints are additive. The specification version is intentionally unchanged because #28 currently claims v1.4.0; once that work lands, this branch can be rebased and its new signing types incorporated into the centralized SigningRequest union.

Validation

  • Spectral lint: zero errors; one pre-existing /publicKeys camel-case warning
  • Swagger CLI validation and fully dereferenced bundle generation
  • JSON syntax validation for the threshold-signing vector
  • verified every 2-of-3 recovery subset in the threshold vector against the parent implementation's conformance suite
  • git diff --check

Related: #19, #26

Extract the signing request union for reuse, add safe generic signing and same-duty multi-key batches, and define an optional coordinator-to-participant threshold signing profile with discovery, partial-signature endpoints, recovery rules, and a deterministic 2-of-3 vector.

This branch has not been deployed

No deployments
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.

1 participant