US 11,943,350 B2
Systems and methods for re-using cold storage keys
Yolanda Liu, San Francisco, CA (US); Ryan Sears, San Francisco, CA (US); Alan Leung, San Francisco, CA (US); Zachary Blacher, San Francisco, CA (US); and Jeremy Suurkivi, San Francisco, CA (US)
Assigned to Coinbase, Inc., Oakland, CA (US)
Filed by Coinbase, Inc., San Francisco, CA (US)
Filed on Oct. 16, 2020, as Appl. No. 17/072,395.
Claims priority of provisional application 62/945,635, filed on Dec. 9, 2019.
Claims priority of provisional application 62/916,076, filed on Oct. 16, 2019.
Prior Publication US 2021/0119781 A1, Apr. 22, 2021
Int. Cl. H04L 29/06 (2006.01); H04L 9/06 (2006.01); H04L 9/08 (2006.01)
CPC H04L 9/088 (2013.01) [H04L 9/0631 (2013.01)] 20 Claims
OG exemplary drawing
 
1. A method for signing blockchain transactions, the method comprising:
with online computer system operating within an online computing environment:
in response to receiving a blockchain transaction to be signed, determining, by the online computer system, a key shard threshold, the key shard threshold being (i) a number of key shards required for reconstructing a signing private key and (ii) less than a number of key shards derived from the signing private key using a ceremony key;
obtaining, by the online computer system, based on the key shard threshold, signing key shards corresponding to the signing private key from a plurality of account managers, each of the plurality of account managers storing a different one of the signing key shards; and
storing, by the online computer system, the signing key shards and the blockchain transaction at a removable computer-readable storage medium; and
with an offline computer system operating within an offline computing environment:
obtaining, by the offline computer system in the offline computing environment, from the removable computer-readable storage medium, the signing key shards and the blockchain transaction;
forming, by the offline computer system in the offline computing environment, a ciphertext of the signing private key using the signing key shards that satisfy the key shard threshold;
reconstructing, by the offline computer system in the offline computing environment, the signing private key by obtaining the ceremony key from a hardware security module (HSM) and decrypting the ciphertext, derived from the signing key shards that satisfy the key shard threshold, using the ceremony key, wherein the ceremony key is a same symmetric private key previously used to encrypt the signing private key to generate a prior ciphertext from which the signing key shards were derived;
signing, by the offline computer system in the offline computing environment, the blockchain transaction using the signing private key; and
providing the signed blockchain transaction to the online computer system.