# US 12,225,127 B2 · Address verification, seed splitting and firmware extension for secure cryptocurrency key backup, restore, and transaction signing platform apparatuses, methods and systems

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,225,127 B2
- Document ID: US12225127B2
- Status: Granted
- Kind: B2
- Application number: 17/719,344
- Filed: 2022-04-12
- Published: 2022-10-06
- Granted: 2025-02-11
- Earliest claimed: 2015-07-14
- Assignees: Fmr LLC
- Applicants: Fmr LLC
- Inventors: Vladimir Tsitrin; Gang Cheng
- Web page: https://patentgrep.com/patent/US12225127B2

## CPC

- G06F 21/64: Protecting data integrity, e.g. using checksums, certificates or signatures
- H04L 9/0894: {Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage}
- G06F 21/602: {Providing cryptographic facilities or services}
- G06F 21/6218: {to a system of files or objects, e.g. local or distributed file system or database}
- H04L 9/0825: {using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates}
- H04L 9/0838: {Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these (network architectures or network communication protocols for key exchange in a packet data network H04L63/061)}
- H04L 9/085: {Secret sharing or secret splitting, e.g. threshold schemes}
- H04L 9/0897: {involving additional devices, e.g. trusted platform module [TPM], smartcard or USB}
- H04L 9/3234: {involving additional secure or trusted devices, e.g. TPM, smartcard, USB or software token (network architectures or network communication protocols for supporting authentication of entities using an additional device in a packet data network H04L63/0853)}
- H04L 9/3255: {using group based signatures, e.g. ring or threshold signatures}
- H04L 9/50: {using hash chains, e.g. blockchains or hash trees}
- H04L 2209/56: Financial cryptography, e.g. electronic payment or e-cash
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

The Address Verification, Seed Splitting and Firmware Extension for Secure Cryptocurrency Key Backup, Restore, and Transaction Signing Platform Apparatuses, Methods and Systems (“SFTSP”) transforms contract deployment request, transaction signing request, key backup request, key recovery request inputs via SFTSP components into contract deployment response, transaction signing response, key backup response, key recovery response outputs. A contract deployment request message datastructure is obtained. Owner key identification parameters are determined. An owner public key is determined using the owner key identification parameters. An owner address is generated using the owner public key. A salt value is generated. A contract address for the smart contract is calculated as a function of the deployment factory address, the salt value, the contract code, and the owner address. An owner private key is determined using the owner key identification parameters and used to sign the contract address. A contract deployment data datastructure is provided.

## Claims

### Claim 1

A verified address smart contract deploying apparatus, comprising:
at least one memory;
a component collection stored in the at least one memory;
at least one processor disposed in communication with the at least one memory, the at least one processor executing processor-executable instructions from the component collection, the component collection storage structured with processor-executable instructions, comprising:
obtain, via the at least one processor, a contract deployment request message datastructure by a hardware security module (HSM) from a transaction signing server (TSS), in which the contract deployment request message datastructure is structured to specify a set of owner datastructures, a deployment factory address, and contract code for a smart contract;
determine, via the at least one processor, by the HSM, owner key identification parameters associated with an owner datastructure in the set of owner datastructures, in which the owner key identification parameters are structured to specify a keyset identifier and a keychain path;
determine, via the at least one processor, by the HSM, an owner public key associated with the owner datastructure using the owner key identification parameters;
generate, via the at least one processor, by the HSM, an owner address associated with the owner datastructure using the owner public key;
generate, via the at least one processor, by the HSM, a salt value for the smart contract;
calculate, via the at least one processor, by the HSM, a contract address for the smart contract as a function of the deployment factory address, the salt value, the contract code, and the owner address;
determine, via the at least one processor, by the HSM, an owner private key associated with the owner datastructure using the owner key identification parameters, in which the owner private key corresponds to the owner public key;
sign, via at least one processor, by the HSM, the contract address for the smart contract using the owner private key to generate a contract deployment signature; and
provide, via at least one processor, by the HSM, a contract deployment data datastructure to the TSS, in which the contract deployment data datastructure is structured to specify the salt value, and the contract deployment signature.

### Claim 2 (depends on 1)

The apparatus of claim 1, in which the deployment factory address is a blockchain address of a Contract Factory smart contract on the Ethereum blockchain.

### Claim 3 (depends on 1)

The apparatus of claim 1, in which the contract code is structured as a bytecode.

### Claim 4 (depends on 1)

The apparatus of claim 1, in which the owner key identification parameters are structured to specify a wallet type.

### Claim 5 (depends on 1)

The apparatus of claim 1, in which the owner address is generated using a Bitcoin improvement proposal #32 based (Bip32-based) deterministic key derivation procedure.

### Claim 6 (depends on 5)

The apparatus of claim 5, in which the owner address is calculated as the last 20 bytes of Keccak-256 hash of the owner public key.

### Claim 7 (depends on 1)

The apparatus of claim 1, in which the salt value is structured as a one-time 32-byte salt value.

### Claim 8 (depends on 1)

The apparatus of claim 1, in which the contract address is calculated as an Ethereum Improvement Protocol #1014 (EIP-1014) blockchain address.

### Claim 9 (depends on 8)

The apparatus of claim 8, in which the contract address is calculated as the last 20 bytes of Keccak-256 hash of a concatenated list of: 0xFF byte, the deployment factory address, the salt value, and Keccak-256 hash of a concatenated list of: the contract code, and the owner address.

### Claim 10 (depends on 1)

The apparatus of claim 1, in which the contract deployment data datastructure is structured to specify the owner address.

### Claim 11

A verified address smart contract deploying processor-readable, non-transient medium, the medium storing a component collection, the component collection storage structured with processor-executable instructions comprising:
obtain, via at least one processor, a contract deployment request message datastructure by a hardware security module (HSM) from a transaction signing server (TSS), in which the contract deployment request message datastructure is structured to specify a set of owner datastructures, a deployment factory address, and contract code for a smart contract;
determine, via the at least one processor, by the HSM, owner key identification parameters associated with an owner datastructure in the set of owner datastructures, in which the owner key identification parameters are structured to specify a keyset identifier and a keychain path;
determine, via the at least one processor, by the HSM, an owner public key associated with the owner datastructure using the owner key identification parameters;
generate, via the at least one processor, by the HSM, an owner address associated with the owner datastructure using the owner public key;
generate, via the at least one processor, by the HSM, a salt value for the smart contract;
calculate, via the at least one processor, by the HSM, a contract address for the smart contract as a function of the deployment factory address, the salt value, the contract code, and the owner address;
determine, via the at least one processor, by the HSM, an owner private key associated with the owner datastructure using the owner key identification parameters, in which the owner private key corresponds to the owner public key;
sign, via at least one processor, by the HSM, the contract address for the smart contract using the owner private key to generate a contract deployment signature; and
provide, via at least one processor, by the HSM, a contract deployment data datastructure to the TSS, in which the contract deployment data datastructure is structured to specify the salt value, and the contract deployment signature.

### Claim 12

A verified address smart contract deploying processor-implemented system, comprising:
memory configured to store a component collection;
at least one processor implemented in hardware configured to process processor-executable instructions from the component collection, the component collection storage structured with processor-executable instructions including:
obtain, via the at least one processor, a contract deployment request message datastructure by a hardware security module (HSM) from a transaction signing server (TSS), in which the contract deployment request message datastructure is structured to specify a set of owner datastructures, a deployment factory address, and contract code for a smart contract;
determine, via the at least one processor, by the HSM, owner key identification parameters associated with an owner datastructure in the set of owner datastructures, in which the owner key identification parameters are structured to specify a keyset identifier and a keychain path;
determine, via the at least one processor, by the HSM, an owner public key associated with the owner datastructure using the owner key identification parameters;
generate, via the at least one processor, by the HSM, an owner address associated with the owner datastructure using the owner public key;
generate, via the at least one processor, by the HSM, a salt value for the smart contract;
calculate, via the at least one processor, by the HSM, a contract address for the smart contract as a function of the deployment factory address, the salt value, the contract code, and the owner address;
determine, via the at least one processor, by the HSM, an owner private key associated with the owner datastructure using the owner key identification parameters, in which the owner private key corresponds to the owner public key;
sign, via at least one processor, by the HSM, the contract address for the smart contract using the owner private key to generate a contract deployment signature; and
provide, via at least one processor, by the HSM, a contract deployment data datastructure to the TSS, in which the contract deployment data datastructure is structured to specify the salt value, and the contract deployment signature.

### Claim 13

A verified address smart contract deploying processor-implemented process, including processing processor-executable instructions via at least one processor from a component collection stored in at least one memory, the component collection storage structured with processor-executable instructions comprising:
obtain, via the at least one processor, a contract deployment request message datastructure by a hardware security module (HSM) from a transaction signing server (TSS), in which the contract deployment request message datastructure is structured to specify a set of owner datastructures, a deployment factory address, and contract code for a smart contract;
determine, via the at least one processor, by the HSM, owner key identification parameters associated with an owner datastructure in the set of owner datastructures, in which the owner key identification parameters are structured to specify a keyset identifier and a keychain path;
determine, via the at least one processor, by the HSM, an owner public key associated with the owner datastructure using the owner key identification parameters;
generate, via the at least one processor, by the HSM, an owner address associated with the owner datastructure using the owner public key;
generate, via the at least one processor, by the HSM, a salt value for the smart contract;
calculate, via the at least one processor, by the HSM, a contract address for the smart contract as a function of the deployment factory address, the salt value, the contract code, and the owner address;
determine, via the at least one processor, by the HSM, an owner private key associated with the owner datastructure using the owner key identification parameters, in which the owner private key corresponds to the owner public key;
sign, via at least one processor, by the HSM, the contract address for the smart contract using the owner private key to generate a contract deployment signature; and
provide, via at least one processor, by the HSM, a contract deployment data datastructure to the TSS, in which the contract deployment data datastructure is structured to specify the salt value, and the contract deployment signature.
