coinbase / coinbase/mesh-specifications

[More Research Required] Bitcoin-Style Multi-sig

Open
#50 0 comments 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
Shell
Stars
342
Forks
100
PR merge metrics
No merged PRs in 30d

Description

The Construction API currently assumes there is **at most** one KeyPair associated with a given `AccountIdentifier` (this does not mean there can only be a single KeyPair associated with an `AccountIdentifier` as there can be multiple `AccountIdentifiers` with the same `Address` with different `SubAccounts`). This restriction does not prevent many stake-based multi-sig flows but does block "Bitcoin-style" multi-sig transactions.

We should find some way to support returning multiple `PublicKeys` for a given `AccountIdentifier` (likely just wrapping `PublicKey` with the associated `AccountIdentifier`) in `/construction/metadata` and `/construction/payloads`. We may also need to add a field to `SigningPayload` to indicate which `PublicKey` should be used to sign a particular payload (when it is possible to use multiple).

Contributor guide

Open the contributing guide

Research direction

Start by reviewing the Construction API endpoints /construction/metadata and /construction/payloads, focusing on how PublicKeys are returned for an AccountIdentifier. Then inspect SigningPayload and determine the requirements for selecting among multiple keys. Done means the API can represent multiple PublicKeys for one AccountIdentifier and identify which key signs each applicable payload.

Written by the indexing model from the issue text.

Assessment

Domain
api, blockchain
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.