A method for signing a signature for a private key for a cryptocurrency signature wallet device equipped with an operating system to control a hardware having a CPU and a memory configured with a software installed in the operating system, including an address data configured, the cryptocurrency signature wallet device comprises:
- a public key derived from a private key creating an address so as to be used in trading via a network;
- a central control server device including:
- a receiving unit configured to receive trading request data,
- a memory configured to store a first data store structure that specifies the address to identify the public key for a signature,
- an unsigned transaction creation unit having a second data store structure configured to hold the unsigned transaction, and
- a communication unit, for a first communication network, configured to transmit the unsigned transaction;
- a hot wallet server device including:
- a memory configured to store a third data store structure data that stores and creates a private key,
- a communication unit, for a second communication network, configured to receive a signature request and send a signature, and
- a cryptocurrency signature unit for the signature request;
- a remote signature device that is offline from internet, the remote signature device including:
- a memory that stores the third data store structure data that stores and creates the private key,
- a cryptocurrency signature unit, and
- a data propagation unit configured to input the signature request, and configured to be controlled by an operator to output the signature corresponding to the signature request accepted through the data propagation unit;
- a cold wallet server device including:
- a communication unit, for the second communication network, the communication unit being configured to transmit data in both directions and receive the signature requests from a signature requester, and configured to send the signature,
- a memory configured to store a data store that stores an identification key as a mark for identifying the signature to be signed by the remote signature device, and
- a data propagation unit configured to transfer data for signing remotely in combination with the remote signature device;
- and
- a transaction manager device including:
- a communication unit, for the first communication network, configured to receive the unsigned transaction from the central control server device,
- a communication unit, for the second communication network, configured to send the signature request outbound and receive the signature from the hot wallet server device and/or the cold wallet server device,
- a signature status management unit configured to hold the unsigned transaction until the signatures are completely signed,
- a data transformer unit configured to transform the unsigned transaction to a cryptocurrency transaction to conform a cryptocurrency network,
- a communication unit, for a third communication network, configured to output the cryptocurrency transaction, and
- a memory configured to store a fourth data store structure data that specifies the public key corresponding to the third data store structure,
- wherein the fourth data store structure is structured by the identification key to identify the signature associated as a mark,
- wherein the first, the second, and the third data store structure configured to store or create private keys of the cryptocurrency signature wallet device, include:
- a key sequence number to perform deterministic generation by the cryptocurrency signature wallet device, and
- a series of data sufficient to create and recreate the private key,
- wherein the first, the second and the forth data store structure and the data structure thereof further include a common key feature and common key data to create the signature request for the unsigned transaction and a master common key for the internal use in the cryptocurrency signature device to identify the sufficient private keys to sign the signature request for the unsigned transaction, and
- wherein data including the common key and one or more seeds corresponding to the common key are aggregated as one group, and one or more set of the data group are stored for master data in the transaction manager device,
- the method comprising a first stage, the first stage including:
- accepting data items, by an API (Application Program Interface), received from a user system through a gateway communication;
- and
- creating, via the CPU, an unsigned transaction using the accepted data items in a software configured in an operating system on a central control server device,
- wherein the cryptocurrency signature wallet device is configured as a deterministic wallet configured to perform trading, the method including preparing the addresses created by using the public key and private key,
- wherein the unsigned transaction including a specified data store structure including:
- one or more seed data fields having used in creating multi-signature addresses in creating the deterministic wallet;
- a master common key field associated with the one or more seed data fields;
- key sequence number data fields representing the sequence of the address creation;
- and
- signature data fields configured to store the signatures,
- wherein the first stage of the method further comprises transmitting the unsigned transaction from the central control server device to the transaction manager device through the communication unit for the first communication network between the central control server device and the transaction manager device,
- the method further comprising a sequenced second stage including:
- upon receiving the unsigned transaction in the transaction manager device through the communication unit for the first communication network by a software installed in the operating system on the transaction manager device, storing the unsigned transaction in a transaction pool in the memory,
- the method further comprising a sequenced third stage including:
- causing the software in the operating system on the transaction manager device to enter a status of wait for notification from another device being ready for a signature request,
- the method further comprising a fourth stage in parallel, the fourth stage including:
- causing a software installed on an operating system on the hot wallet server device and the cold wallet server device to send, to the transaction manager device, a notification for signature request wait attached with the master common key through a communication unit for the second communication network,
- the method further comprising a sequenced fifth stage including:
- upon receiving the notification, causing a software installed on an operating system in the transaction manager device to search for unsigned transactions with the master common key matching in the transaction pool of unsigned transactions;
- and
- sending one of the selected unsigned transaction for the signature request to the originator of the notification, the originator including hot wallet sever devices or cold wallet server devices, through the communication unit for the second network,
- the method further comprising a sequenced sixth stage including:
- causing a software installed on an operating system in the hot wallet server device to receive the signature request through a communication unit for the second communication network;
- and
- causing the software installed on the operating system in the hot wallet server device to sign the signature request using the private key corresponding to the master common key;
- and
- sending back the signature to the transaction manager device through the second communication network,
- the method further comprising a seventh stage in parallel to the sixth stage, the seventh stage including:
- upon receiving the signature request through a communication unit for the second communication network, causing a software installed on an operating system in the cold wallet server device to output portable data through a data propagation unit for a signature device to remotely sign the signature;
- causing a software installed on an operating system in the signature device to read the portable data through the data propagation unit;
- causing the software installed on the operating system in the signature device to sign a signature using the private key corresponding to the portable data to output a portable data through the data propagation unit;
- causing the software installed on the operating system in the cold wallet server device to read the portable data through the data propagation unit;
- and
- causing the software installed on the operating system in the cold wallet server device to transfer the signature through the second communication network to the transaction manager device,
- the method further comprising a sequenced eighth stage including:
- upon receiving the signature through the communication unit for the second communication network, causing the software installed on the operating system in the transaction manager device to write the signature in a signature field in the unsigned transaction;
- summing up a number of signatures written in the signature fields to compare for validation to a specified criteria on sufficient number of multi-signatures to complete signing the unsigned transaction;
- upon success in the validation, transforming the signed transaction into the cryptocurrency transaction;
- and
- upon failure in the validation, causing the software on the operating system in the transaction manager device to return system flow control to the third stage to loop.