Secure digital wallet processing system
Systems and methods for implementing a secure digital wallet processing system. An example method comprises: receiving, by a computer system, a distributed ledger transaction and a public address; retrieving, from a key management system, a private key corresponding to the public address, wherein the key management system comprises a hardware security module (HSM) that generated the public address from the private key; signing the distributed ledger transaction by the private key; and providing the signed distributed ledger transaction to a distributed ledger.
1. A computer-implemented method of a secure digital wallet processing system, the method comprising:
retrieving, by a hardware security module (HSM) of the secure digital wallet processing system from a cold storage included in the secure digital wallet processing system, a private key associated with a customer, wherein the secure digital wallet processing system further includes a warm storage;
generating, using the HSM, a public address associated for the customer from the private key, by performing by the HSM a cryptographic operation on the private key retrieved by the HSM from the cold storage, wherein the public address is not generated from a public key;
encrypting, by the HSM, the private key and the public address;
storing the encrypted public address in association with the encrypted private key in a key management system database of the secure digital wallet processing system;
receiving a distributed ledger transaction request including an authentication token and a customer identifier, the customer identifier being the public address associated with the customer;
validating the distributed ledger transaction request using the received public address by an authenticator that accesses a customer identifier public address database;
in response to the validating the distributed ledger transaction request, retrieving using the received public address, from the key management system database, the encrypted private key;
decrypting the encrypted private key;
signing, using the HSM, a distributed ledger transaction by the decrypted private key; and
providing the signed distributed ledger transaction to a distributed ledger.
2. The method of claim 1 , wherein the distributed ledger transaction is one of: a cryptocurrency buy order, a cryptocurrency sell order, a cryptocurrency transfer to another public address, or a code implementing a smart contract.
3. The method of claim 1 , further comprising:
generating the public address and providing the public address to a user prior to receiving the distributed ledger transaction.
4. The method of claim 1 , further comprising:
prior to the retrieving, storing the private key and a corresponding public key in the cold storage.
5. The method of claim 1 , further comprising:
performing by the HSM the cryptographic operation on the private key in the warm storage.
6. A computer system, comprising:
a memory; and
a processor coupled to the memory, wherein the memory comprises executable instructions which, when executed by the processor, cause the processor to perform a method including:
retrieving, by using a hardware security module (HSM) of the computer system from a cold storage included in the computer system, a private key associated with a customer, wherein the computer system further comprises a warm storage;
generating, by using the HSM, a public address associated or the customer, from the private key, by performing by the HSM a cryptographic operation on the private key retrieved by the HSM from the cold storage, wherein the public address is not generated from a public key;
encrypting, by using the HSM, the private key and the public address;
storing the encrypted public address in association with the encrypted private key in a key management system database of the computer system;
receiving a distributed ledger transaction request including an authentication token and a customer identifier, the customer identifier being the public address associated with the customer;
validating the distributed ledger transaction request using the received public address by an authenticator that accesses a customer identifier public address database;
in response to the validating the distributed ledger transaction request, retrieving using the received public address, from the key management system database, the encrypted private key;
decrypting the encrypted private key;
using the HSM to sign a distributed ledger transaction by the decrypted private key; and
providing the signed distributed ledger transaction to a distributed ledger.
7. The computer system of claim 6 , wherein the distributed ledger transaction is one of: a cryptocurrency buy order, a cryptocurrency sell order, a cryptocurrency transfer to another public address, or a code implementing a smart contract.
8. The computer system of claim 6 , wherein the method further includes:
generate the public address and providing the public address to a user prior to receiving the distributed ledger transaction.
9. The computer system of claim 6 , wherein the HSM is included in a key management system of the computer system, the key management system further including at least one of: a warm storage device or a cold storage device.
10. A non-transitory computer-readable storage medium comprising executable instructions that, when executed by a processor of a secure digital wallet processing system, cause the processor to perform a method including:
retrieving, by using a hardware security module (HSM) of the secure digital wallet processing system from a cold storage included in the secure digital wallet processing system, a private key associated with a customer, wherein the secure digital wallet processing system further includes a warm storage;
generating, by using the HSM, a public address associated or the customer, from the private key, by performing by the HSM a cryptographic operation on the private key retrieved by the HSM from the cold storage, wherein the public address is not generated from a public key;
encrypting, by using the HSM, the private key and the public address;
storing the encrypted public address in association with the encrypted private key in a key management system database of the secure digital wallet processing system;
receiving a distributed ledger transaction request including an authentication token and a customer identifier, the customer identifier being the public address associated with the customer;
validating the distributed ledger transaction request using the received public address by an authenticator that accesses a customer identifier public address database;
in response to the validating the distributed ledger transaction request, retrieving using the received public address, from the key management system database, the encrypted private key;
decrypting the encrypted private key;
using the HSM to sign a distributed ledger transaction by the decrypted private key; and
providing the signed distributed ledger transaction to a distributed ledger.
11. The non-transitory computer-readable storage medium of claim 10 , wherein the distributed ledger transaction is one of: a cryptocurrency buy order, a cryptocurrency sell order, a cryptocurrency transfer to another public address, or a code implementing a smart contract.
12. The non-transitory computer-readable storage medium of claim 10 , wherein the method further includes:
generate the public address and providing the public address to a user prior to receiving the distributed ledger transaction.