Skip to content

fix: lock the force-skip connector to the committee - #23

Open
KSlashh wants to merge 2 commits into
gc-v2from
committee-force-skip
Open

KSlashh wants to merge 2 commits into
gc-v2from
committee-force-skip

Conversation

@KSlashh

@KSlashh KSlashh commented Nov 9, 2026 •

Copy link
Copy Markdown
Collaborator

The operator could sweep the force-skip connector and make both Quick-Challenge and Force-Skip-Kickoff unspendable, bypassing enforcement of the one-active-kickoff rule.

  • Use the committee N-of-N key for the connector's script and internal key.
  • Add MuSig2 pre-signing and signature aggregation for input 1 of both penalty transactions, using SIGHASH_NONE.
  • Keep operator signing limited to input 0.

Audit finding: M29.

Companion node PR: GOATNetwork/bitvm-node#527. That change supplies the committee key and integrates both signatures into the graph pre-signing round.

This changes connector construction and the transaction signing API; deploy with the companion node change.

Validation: the companion node branch includes a full operator/committee pre-signing regression covering committee signature verification, rejection of the operator key, and simplified graph round-tripping. Its zkm notes record passing bitvm-gc/node tests and clippy; these were not rerun during this review.

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