Bitcoin Core 31.0.0
P2P Digital Currency
Loading...
Searching...
No Matches
musig.h File Reference
#include <pubkey.h>
#include <optional>
#include <vector>
Include dependency graph for musig.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  MuSig2SecNonce
 MuSig2SecNonce encapsulates a secret nonce in use in a MuSig2 signing session. More...

Functions

std::optional< CPubKeyMuSig2AggregatePubkeys (const std::vector< CPubKey > &pubkeys, secp256k1_musig_keyagg_cache &keyagg_cache, const std::optional< CPubKey > &expected_aggregate)
std::optional< CPubKeyMuSig2AggregatePubkeys (const std::vector< CPubKey > &pubkeys)
CExtPubKey CreateMuSig2SyntheticXpub (const CPubKey &pubkey)
 Construct the BIP 328 synthetic xpub for a pubkey.
uint256 MuSig2SessionID (const CPubKey &script_pubkey, const CPubKey &part_pubkey, const uint256 &sighash)
std::optional< std::vector< uint8_t > > CreateMuSig2AggregateSig (const std::vector< CPubKey > &participants, const CPubKey &aggregate_pubkey, const std::vector< std::pair< uint256, bool > > &tweaks, const uint256 &sighash, const std::map< CPubKey, std::vector< uint8_t > > &pubnonces, const std::map< CPubKey, uint256 > &partial_sigs)

Variables

constexpr size_t MUSIG2_PUBNONCE_SIZE {66}

Function Documentation

◆ CreateMuSig2AggregateSig()

std::optional< std::vector< uint8_t > > CreateMuSig2AggregateSig ( const std::vector< CPubKey > & participants,
const CPubKey & aggregate_pubkey,
const std::vector< std::pair< uint256, bool > > & tweaks,
const uint256 & sighash,
const std::map< CPubKey, std::vector< uint8_t > > & pubnonces,
const std::map< CPubKey, uint256 > & partial_sigs )

Definition at line 129 of file musig.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ CreateMuSig2SyntheticXpub()

CExtPubKey CreateMuSig2SyntheticXpub ( const CPubKey & pubkey)

Construct the BIP 328 synthetic xpub for a pubkey.

Definition at line 71 of file musig.cpp.

Here is the caller graph for this function:

◆ MuSig2AggregatePubkeys() [1/2]

std::optional< CPubKey > MuSig2AggregatePubkeys ( const std::vector< CPubKey > & pubkeys)

Definition at line 65 of file musig.cpp.

Here is the call graph for this function:

◆ MuSig2AggregatePubkeys() [2/2]

std::optional< CPubKey > MuSig2AggregatePubkeys ( const std::vector< CPubKey > & pubkeys,
secp256k1_musig_keyagg_cache & keyagg_cache,
const std::optional< CPubKey > & expected_aggregate )

Compute the full aggregate pubkey from the given participant pubkeys in their current order. Outputs the secp256k1_musig_keyagg_cache and validates that the computed aggregate pubkey matches an expected aggregate pubkey. This is necessary for most MuSig2 operations.

Definition at line 54 of file musig.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ MuSig2SessionID()

uint256 MuSig2SessionID ( const CPubKey & script_pubkey,
const CPubKey & part_pubkey,
const uint256 & sighash )

Definition at line 122 of file musig.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

Variable Documentation

◆ MUSIG2_PUBNONCE_SIZE

size_t MUSIG2_PUBNONCE_SIZE {66}
constexpr

Definition at line 17 of file musig.h.