Skip to content

Wire AgentRegistry + AgentEscrow to MPC committee custody via luxfi/mpc #77

@abhicris

Description

@abhicris

Problem

AgentEscrow.sol today releases on payee signature (ECDSA recover) or after timeout + challenge_period. There is no notion of a multi-party custody committee — every agent operates a single-key wallet, which is the single largest footgun in autonomous on-chain agents.

Closed issue #1 (MPC key management) was opened pre-Lux-collab and stalled. Reopen the surface with a concrete shape that maps onto luxfi/mpc + luxfi/threshold so committee membership is real, not aspirational.

Proposed Approach

Two surfaces:

On-chain (AgentRegistry.sol extension):

  • registerAgentCommittee(bytes32 agentId, bytes32 committeeRoot, uint8 threshold, uint8 size)
  • committeeRoot is the Merkle root of committee member public keys (one of them MUST be a luxfi/mpc committee identifier).
  • AgentEscrow gates releasePayment on a successful verifyCommitteeSig(committeeRoot, threshold, signature, message) precompile call (proposed at 0x0e or via luxfi/mpc precompile if it exists).
  • Rotation: rotateCommittee(bytes32 agentId, bytes32 newRoot) is gated on a 2-of-N quorum of the current committee.

Off-chain (switchboard/mpc_wallet.py):

  • New module wraps the luxfi/mpc client. Agent calls MpcWallet.sign(transcript) which routes to committee members, collects partial signatures, aggregates into a single Schnorr / FROST-style signature acceptable to the on-chain verifier.
  • Per-agent committee config in ~/.switchboard/agents/<agent_id>/committee.toml.
  • One reference committee composition: kcolbchain_node, hanzo_node, lux_mpc_node (3-of-3 for v1).

Acceptance Criteria

  • AgentRegistry.sol extended with committee registration + rotation + verification call
  • switchboard/mpc_wallet.py shipped with luxfi/mpc client integration
  • Test vector: 3-of-3 committee signs a releasePayment call, on-chain verifier accepts
  • Doc: docs/mpc-committee-custody.md covering threat model, rotation, slashing-on-double-sign
  • Issue Implement agent wallet with MPC key management #1 cross-linked and closed as superseded once this lands

References

  • Issue Implement agent wallet with MPC key management #1 — Implement agent wallet with MPC key management (CLOSED, superseded by this)
  • internal: see partner integration map section "Lux" — MPC custody is the wedge for the Lux/Hanzo committee composition
  • luxfi/mpc + luxfi/threshold

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requesthelp wantedExtra attention is needed

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions