Patent ID: 11954672
Assignee: COINBASE, INC.
Field: Digital communication (Electrical engineering)
Classification: CPC G  H | IPC G  H

Claim 13:
14. A non-transitory computer-readable media storing instructions that, when executed by one or more processors, cause operations comprising:
storing a collection of private keys, the collection comprising a first portion stored in a hot storage system via a hot storage scheme and a second portion stored in a cold storage system via a cold storage scheme;
storing, in one or more databases, a set of pool objects associated with pools, wherein each pool object of the set of pool objects is allocated a set of private keys of the collection and indicates blockchain functionalities for keys of the set of private keys, the set of pool objects comprising (i) a first pool object being allocated a first plurality of private keys of the collection that are each associated with a different blockchain functionality than at least one other blockchain functionality associated with another key of the first plurality of private keys and (ii) a second pool object being allocated a second plurality of private keys of the collection that are each associated with a different blockchain functionality than at least one other blockchain functionality associated with another key of the second plurality of private keys;
in response to obtaining a request to sign a message for a blockchain, identifying pool objects and private keys for signing the message that are respectively allocated to the pool objects, wherein the pool objects and the private keys are identified using (i) parameters of the request and (ii) pool configurations of one or more pools associated with the private keys, the private keys comprising a first private key allocated to the first pool object and a second private key allocated to the second pool object, wherein identifying the private keys comprises:
selecting, from the first plurality of private keys allocated to the first pool object, the first private key over one or more other keys of the first plurality of private keys based on (i) the first private key being associated with a first blockchain functionality and not associated with a second blockchain functionality and (ii) at least one parameter of the request indicating the first blockchain functionality; and
selecting, from the second plurality of private keys allocated to the second pool object, the second private key over one or more other keys of the second plurality of private keys based on (i) the second private key being associated with the second blockchain functionality and (ii) and at least one parameter of the request indicating the second blockchain functionality;

identifying, based on the first and second pool objects, a first signing scheme for the first private key allocated to the first pool object having the first plurality of private keys and a second signing scheme for the second private key allocated to the second pool object, the second signing scheme being different from the first signing scheme;
invoking, based on the first and second signing schemes for the first and second private keys, (i) a first signing system to generate a first signature for the message with the first private key allocated to the first pool object having the first plurality of private keys and (ii) a second signing system to generate a second signature for the message with the second private key allocated to the second pool object; and
using the first signature and the second signature to generate a multi-signature message indicating authorization by the one or more pools for the request,
wherein, subsequent to the generation of the multi-signature message, the multi-signature message is recorded on the blockchain.