IP Library Granted Patent US 12,225,127
Granted Patent B2
US 12,225,127 · App. 17/719,344 · Granted Feb 11, 2025

Address verification, seed splitting and firmware extension for secure cryptocurrency key backup, restore, and transaction signing platform apparatuses, methods and systems

Inventors: Vladimir Tsitrin (Acton, MA); Gang Cheng (Nashua, NH)
Assignee: FMR LLC
H04L9/0894G06F21/602G06F21/6218H04L9/0825H04L9/0838H04L9/3234H04L9/50H04L2209/56
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,225,127
App. No.
17/719,344
Granted
Feb 11, 2025
Kind
B2
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 (54)

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.

2. 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.

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

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

5. 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.

6. 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.

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

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

9. 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.

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

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.

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.

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.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 4, 2022
From: TSITRIN, VLADIMIR; CHENG, GANG
To: FMR LLC
Reel/Frame 059818/0537 →
Continuity (27)
Continuation In Part 16421442 · May 23, 2019
Continuation In Part 15984280 · May 18, 2018
Continuation In Part 15898224 · Feb 15, 2018
Continuation In Part 15486243 · Apr 12, 2017
Continuation In Part 15456461 · Mar 10, 2017
Continuation In Part 15210813 · Jul 14, 2016
Continuation In Part 15210781 · Jul 14, 2016
Continuation In Part 15210807 · Jul 14, 2016
Continuation In Part 15210817 · Jul 14, 2016
Continuation In Part 15210795 · Jul 14, 2016
Continuation In Part 15210821 · Jul 14, 2016
Continuation In Part 15209709 · Jul 13, 2016
Continuation In Part 15209714 · Jul 13, 2016
Continuation In Part 15209701 · Jul 13, 2016
Continuation In Part 15019926 · Feb 9, 2016
Continuation In Part 14963165 · Dec 8, 2015
Continuation In Part 14799229 · Jul 14, 2015
Continuation In Part 14799242 · Jul 14, 2015
Continuation In Part 14799282 · Jul 14, 2015
Continuation In Part PCTUS2016042169 · Jul 13, 2016
Provisional Application 62509011 · May 19, 2017
Provisional Application 62273450 · Dec 31, 2015
Provisional Application 62273452 · Dec 31, 2015
Provisional Application 62273449 · Dec 31, 2015
Provisional Application 62273447 · Dec 31, 2015
Provisional Application 62273453 · Dec 31, 2015
Related Publication 20220321340A1 · Oct 6, 2022
References Cited (132)
US 6202068B1 · Kraay et al. · 2001 [cited by applicant]
US 6959382B1 · Kinnis · 2005 [cited by examiner]
US 8848053B2 · Scanlon · 2014 [cited by applicant]
US 9076290B2 · Griffin · 2015 [cited by applicant]
US 9082113B2 · Shea et al. · 2015 [cited by applicant]
US 9087326B2 · Shea et al. · 2015 [cited by applicant]
US 9098190B2 · Zhou · 2015 [cited by applicant]
US 9098387B1 · Curtis et al. · 2015 [cited by applicant]
US 9098874B2 · Chandra et al. · 2015 [cited by applicant]
US 9117341B2 · Marantelli · 2015 [cited by applicant]
US 9122749B2 · Elmore et al. · 2015 [cited by applicant]
US 9129338B2 · Liu · 2015 [cited by applicant]
US 9129339B2 · Liu · 2015 [cited by applicant]
US 9135616B2 · Hirson et al. · 2015 [cited by applicant]
US 9135787B1 · Russell · 2015 [cited by applicant]
US 9144742B1 · Curtis et al. · 2015 [cited by applicant]
US 9153088B2 · Spencer, II · 2015 [cited by applicant]
US 9160717B2 · Bhanoo et al. · 2015 [cited by applicant]
US 9451030B2 · Schunder · 2016 [cited by applicant]
US 20030191709A1 · Elston · 2003 [cited by applicant]
US 20030217258A1 · Bade · 2003 [cited by examiner]
US 20060004670A1 · McKenney · 2006 [cited by examiner]
US 20060236384A1 · Lindholm · 2006 [cited by applicant]
US 20070215695A1 · Trane · 2007 [cited by applicant]
US 20080064333A1 · Hymes · 2008 [cited by applicant]
US 20090106125A1 · Rock · 2009 [cited by applicant]
US 20100031024A1 · Hayes · 2010 [cited by examiner]
US 20100185504A1 · Rajan · 2010 [cited by applicant]
US 20120158586A1 · Ganti · 2012 [cited by applicant]
US 20140052994A1 · Sabin · 2014 [cited by examiner]
US 20140074497A1 · Griffin · 2014 [cited by applicant]
US 20140188691A1 · Blank · 2014 [cited by applicant]
US 20140195415A1 · Broberg · 2014 [cited by applicant]
US 20150018084A1 · Gatto · 2015 [cited by applicant]
US 20150120472A1 · Abaye · 2015 [cited by applicant]
US 20150195099A1 · Imes · 2015 [cited by applicant]
US 20150205929A1 · Brama · 2015 [cited by applicant]
US 20150206106A1 · Yago · 2015 [cited by applicant]
US 20150206240A1 · Baker · 2015 [cited by applicant]
US 20150213008A1 · Orsini et al. · 2015 [cited by applicant]
US 20150213351A1 · Wyatt · 2015 [cited by applicant]
US 20150213419A1 · Lyons et al. · 2015 [cited by applicant]
US 20150213437A1 · Wyatt · 2015 [cited by applicant]
US 20150220717A1 · Shin · 2015 [cited by examiner]
US 20150220892A1 · Allen · 2015 [cited by applicant]
US 20150220928A1 · Allen · 2015 [cited by applicant]
US 20150227897A1 · Loera · 2015 [cited by applicant]
US 20150227898A1 · Ballout · 2015 [cited by applicant]
US 20150227913A1 · Ballout · 2015 [cited by applicant]
US 20150245084A1 · Downing et al. · 2015 [cited by applicant]
US 20150248672A1 · Bayer et al. · 2015 [cited by applicant]
US 20150254640A1 · Cassano et al. · 2015 [cited by applicant]
US 20150254768A1 · Menon et al. · 2015 [cited by applicant]
US 20150261269A1 · Bruscoe · 2015 [cited by applicant]
US 20150262137A1 · Armstrong · 2015 [cited by applicant]
US 20150262138A1 · Hudon · 2015 [cited by applicant]
US 20150262139A1 · Shtylman · 2015 [cited by applicant]
US 20150262140A1 · Armstrong · 2015 [cited by applicant]
US 20150262141A1 · Rebernik et al. · 2015 [cited by applicant]
US 20150262168A1 · Armstrong · 2015 [cited by applicant]
US 20150262171A1 · Langschaedel et al. · 2015 [cited by applicant]
US 20150262172A1 · Rebernik · 2015 [cited by applicant]
US 20150262173A1 · Durbin et al. · 2015 [cited by applicant]
US 20150262176A1 · Langschaedel et al. · 2015 [cited by applicant]
US 20150262251A1 · Knobel · 2015 [cited by applicant]
US 20150269538A1 · Stanchfield · 2015 [cited by applicant]
US 20150269539A1 · MacGregor et al. · 2015 [cited by applicant]
US 20150269541A1 · MacGregor et al. · 2015 [cited by applicant]
US 20150269570A1 · Phan · 2015 [cited by applicant]
US 20150271183A1 · MacGregor et al. · 2015 [cited by applicant]
US 20150278820A1 · Meadows · 2015 [cited by applicant]
US 20150286995A1 · Korosec · 2015 [cited by applicant]
US 20150287026A1 · Yang et al. · 2015 [cited by applicant]
US 20150294308A1 · Pauker et al. · 2015 [cited by applicant]
US 20150294424A1 · Hakim · 2015 [cited by applicant]
US 20150294425A1 · Benson · 2015 [cited by applicant]
US 20150302357A1 · Chandra · 2015 [cited by applicant]
US 20150302400A1 · Metral · 2015 [cited by applicant]
US 20150302401A1 · Metral · 2015 [cited by applicant]
US 20150302441A1 · Katsuyama et al. · 2015 [cited by applicant]
US 20150302446A1 · Park et al. · 2015 [cited by applicant]
US 20150324764A1 · Van Rooyen · 2015 [cited by examiner]
US 20150324789A1 · Dvorak · 2015 [cited by examiner]
US 20150379510A1 · Smith · 2015 [cited by examiner]
US 20160019522A1 · Granbery · 2016 [cited by applicant]
US 20160073279A1 · Johnsson · 2016 [cited by applicant]
US 20160086175A1 · Finlow-Bates · 2016 [cited by applicant]
US 20160210632A1 · Li · 2016 [cited by applicant]
US 20190026146A1 · Peffers · 2019 [cited by examiner]
CA 2870844A1 · 2015 [cited by applicant]
CA 2843034A1 · 2015 [cited by applicant]
CA 2845648A1 · 2015 [cited by applicant]
EP 2820797A1 · 2015 [cited by applicant]
EP 2831823A1 · 2015 [cited by applicant]
EP 2874112A1 · 2015 [cited by applicant]
EP 2896001A1 · 2015 [cited by applicant]
WO 2008065345A1 · 2008 [cited by applicant]
WO 2012142521A2 · 2012 [cited by applicant]
WO 2013078990A1 · 2013 [cited by applicant]
WO 2014201059A1 · 2014 [cited by applicant]
WO 2015004820A1 · 2015 [cited by applicant]
WO 2015016356A1 · 2015 [cited by applicant]
WO 2015024129A1 · 2015 [cited by applicant]
WO 2015051692A1 · 2015 [cited by applicant]
WO 2015058282A1 · 2015 [cited by applicant]
WO 2015059669A1 · 2015 [cited by applicant]
WO 2015077378A1 · 2015 [cited by applicant]
WO 2015085393A1 · 2015 [cited by applicant]
WO 2015095761A1 · 2015 [cited by applicant]
WO 2015106285A1 · 2015 [cited by applicant]
WO 2015113519A1 · 2015 [cited by applicant]
WO 2015116998A2 · 2015 [cited by applicant]
WO 2015120606A1 · 2015 [cited by applicant]
WO 2015134890A1 · 2015 [cited by applicant]
WO 2015135018A1 · 2015 [cited by applicant]
WO 2015142765A1 · 2015 [cited by applicant]
WO 2015143068A1 · 2015 [cited by applicant]
WO 2015144971A1 · 2015 [cited by applicant]
WO 2015148725A2 · 2015 [cited by applicant]
WO 2016025990 · 2016 [cited by applicant]
NPL Search History (Year: 2024). [cited by examiner]
Third party submission filed in related U.S. Appl. No. 14/799,242. [cited by applicant]
“Developer Guide —Bitcoin”, Anonymous, May 11, 2015, pp. 1-48. [cited by applicant]
“On the Privacy Provisions of Bloom Filters in Lightweight Bitcoin Clients”, Arthur Gervais et al, International Association For Cryptologic Research, vol. 20141013:202348, Oct. 2014, pp. 1-11. [cited by applicant]
“Making Sense of Data II, A practical Guide to Data Visualization, Advanced Data Mining Methods and Applications”, Glenn Hyatt et al., download from http://www.safanbooksonline.com/library/view/making-sense-of/978047022… [cited by applicant]
European Search Report, dated Feb. 13, 2019 for EP Application No. 16825146.0. [cited by applicant]
“Crytocurrencies, smart contracts, and artificial intelligence”, Steve Omohundro, Dec. 19, 2014, AI Matters, ACM vol. 1, No. 2. [cited by applicant]
“Smart Oracles: A Simple, Powerful Approach to Smart Contracts? Codius/codius WiKi? GitHub”, Jul. 17, 2014, https://github.com/codius/codius/wiki/Smart-Oracles:-A-Simple,-Powerful-Approach-to-Smart-Contracts. [cited by applicant]
“Distributed Consensus Technologies in Crytocurrency Applications”, Francisco Rivera, Jul. 15, 2014. [cited by applicant]
“Blockchain Electronic Vote Contents”, Pierre Noizat et al., Apr. 29, 2015. [cited by applicant]
Supplementary Search Report dated May 27, 2019 for EP Application No. 16825146. [cited by applicant]
International Search Report for PCT/US2016/042169 mailed Oct. 5, 2016. [cited by applicant]
Cited By (2)
US 12,518,256 US 12,536,599