The present invention relates in general to smart contracts and security technologies. In particular, the invention relates to a method and a system for recovering cryptographic keys of a blockchain network. The invention implements a mechanism for recovering the cryptographic keys which represent the identity of a user in the blockchain network through the network infrastructure, a series of smart contracts and a computing device operated by the user without compromising security related to the possible theft or improper use of the same by third parties.
One of the main problems with managing identities in current blockchain platforms is that if a user loses control over the cryptographic keys, they will lose control over their identity and all the assets associated with it (cryptocurrencies and cryptographic tokens) without there being a reliable way of recovering them without delegating the control of their keys to trusted third parties.
Another problem presented by identities in blockchain networks is that there is no correspondence between the identity of the user in the network and their physical identity, this benefits the privacy of the users in the network since their real identity cannot be inferred based on their identity (public key), but it complicates the implementation of simple mechanisms for managing and recovering keys because they are non-transferrable and only known by the user in question.
To be able to access a blockchain platform, a user should have a pair of asymmetric cryptographic keys which represent their access identity to the network. The public key unequivocally represents the user in the platform and all the actions and transactions that the user carries out via the network will be signed using their private key such that any participant in the network can identify the origin of the action. These keys are generated from a seed known by the user and are stored generally in the personal devices of the users. Moreover, the user is solely responsible for their keys and should try to keep them safe even if they do not have technical expertise. If a user loses access to their seed or their keys, they irrevocably lose control over their identity. In the event that this identity was associated with funds of any type (cryptocurrencies or other type of cryptographic assets) or access rights to a service, the user will not be able to mobilise these funds or access the services.
Currently, the models for recovering blockchain keys of a user require the recovery to be delegated to a trusted third party or relying on a sovereign digital identity model via a specific blockchain platform based on smart contracts:
However, managing identity keys on current blockchain platforms is very inefficient. The keys are generated from a random seed (random alphanumeric sequence) and the users must generate it, manage it and store it themselves. To do so, they can use wallet software (i.e. wallets installed by way of software on computing devices) which stores and manages the pair of keys or it uses specialised hardware which needs to be introduced on a device each time that they wish to sign a transaction.
The wallet software generates and stores the keys directly on the device on which the software is installed. This benefits the user experience since, because the keys are stored in the device, each time a transaction is initiated in the blockchain network, it can be signed directly from the device. This solution presents security problems: storing the keys directly via a device connected to the internet makes it vulnerable to cyberattacks, a hacker who obtains control of the device could easily obtain access to the keys and take control of the identity in the network.
Moreover, the wallet hardware consists of device hardware with a specific purpose (with a similar aspect to that of a USB flash drive) which stores the keys of the users. The security of these devices is greater than that of wallet software due to the fact that they are coded in an offline device, but the drawback with these types of solutions is the user experience. Each time they wish to perform a transaction with the identity by way of a device, the wallet hardware needs to be connected, the keys decoded and the transaction signed in the wallet in order to send the signed transactions to the devices and launch them on the network.
These types of solutions for managing keys in blockchain networks present a problem still not resolved in the ecosystem, since if the user loses control of their keys (either because they lose their wallet hardware or the device on which the wallet software is installed and the keys stored), they will completely lose control over their identity, with everything this entails. The main problems of the mechanisms for recovering keys that exist at present are the following:
Additionally, there is no easy way to perform correspondence between the unique digital identity of the user and their physical identify without using trusted third parties or additional applications.
The present invention provides according to a first aspect, a method for recovering cryptographic keys of a blockchain network in which a computing device of a user, for example a mobile phone or a tablet, among others, or an element associated with the computing device, has stored a pair of asymmetric cryptographic keys representative of the identity of said user in at least one cited blockchain network, said pair of keys including a public key and a private key. At the same time, an identity manager, operatively connected to the blockchain network, maintains a registry of the user in a distributed directory of identities. The cited registry includes information on the public key of the user and a smart contract of the user in the blockchain network.
Particularly, the method comprising eliminating, by the identity manager, from the cited registry, the information on the public key of the user and revoking the user as the owner of the smart contract when a request is received from the user due to the loss or theft of their private key; generating, by the computing device or in the element associated with the computing device, a new pair of asymmetric cryptographic keys representative of the identity of the user in the blockchain network in which said new pair of keys comprises a new public key and a new private key; storing the new pair of keys generated in the computing device or in the element associated with the computing device; identifying and authenticating the user by the identity manager, by means of an authentication mechanism provided by a guarantor entity of the identity; and once the user has been authenticated correctly, receiving by the identity manager, from the computing device, the new public key of the user and updating the registry of the user in the distributed directory of identities with the new public key received and updating the new public key with the ownership of the smart contract.
In one exemplary embodiment, the element associated with the computing device is a SIM card, the guarantor entity of the identity of the user being the telecommunications operator who issued the SIM card. Alternatively, the element associated with the computing device can be an electronic identification document of the user, for example, the ID card. In this latter case, the guarantor entity of the identity of the user would be the state who issued the ID card.
Particularly, the cited registration is implemented by means of an identification sequence including: an identifier of the user, an identifier of the smart contract of the blockchain and the public key. In cases where the public key of the user does not match the address of the identifier of the user in the blockchain, the cited identification sequence could also include the cited address.
In one exemplary embodiment, the authentication mechanism comprises the sending of a single-use code by means of a text message to the computing device. The authentication mechanism can comprise the use of a web service which authenticates the user by means of introducing their telephone number in said web service and then confirming the identity of the user with the computing device.
In another exemplary embodiment, the authentication mechanism comprises the use of a biometric authentication system of the user.
In one exemplary embodiment, the generation of the new pair of cryptographic keys is conditioned upon the acceptance and validation of the same by a third party. The generation of the new pair of cryptographic keys can be carried out by a cryptographic mechanism in which the user, the operator of the blockchain network and optionally the third party share part of a seed to generate the new pair of cryptographic keys.
The present invention provides, according to a second aspect, a system for recovering cryptographic keys of a blockchain network. The elements/modules/units/devices making up the system of the second aspect are adapted and configured to implement/execute the method of the first aspect of the invention.
Therefore, the present invention uses the infrastructure of a blockchain network, a computing device of a user, a form of unique electronic identification (such as a SIM or an electronic ID card) and a user authentication system to carry out the correspondence between physical identity (using the electronic identification) and digital identity (identity in blockchain networks) and carry out the secure management and recovery of the keys of the user.
The invention enables the regeneration and recovery of the keys of a user to be carried out without delegating the control or storage of the cryptographic keys to a third party. Thus far, a technical mechanism has not been implemented which enables the recovery of the identity of a user in systems based on blockchain technology faced with the loss of the generation seed of the keys and the keys themselves.
Furthermore, the invention provides an assignment and correspondence mechanism of the digital identity of a user with their physical identity by way of a physical element (for example the SIM card of a device) enabling the barrier between the physical and digital world to be overcome which involves significant friction in the development of many proposals of solutions based on blockchain.
Lastly, the invention provides a key recovery model extendible to multiple blockchain platforms and different contexts, unlike all the recovery proposals based on sovereign digital identity based on current blockchains which are very much linked to the platforms via which they are implemented.
The previous and other features and advantages will be more easily understood from the following detailed description of exemplary embodiments, which is merely illustrative and non-limiting, with reference to the drawings that accompany it, in which:
The present invention presents a hybrid between the key recovery models used by the sovereign digital identity models by way of a smart contract and the third-party key delegation models without there being any need to delegate the seed or the private key at any time. The invention is compatible with any blockchain network that enables the execution of smart contracts.
Now in relation to
When a SIM 101 is delivered and activated on the network 105, it informs the identity manager 110. The identity manager 110, by way of the relevant authentication mechanism, launches an identification process of the user 1 to the telephone number for which the SIM card 101 has been registered. If the user 1 is satisfactorily authenticated, the computing device 100 of the user 1 will securely transmit their new public key to the identity manager 110 and the identity manager will proceed with the deployment of the proxy contract 121 of the user 1, making the user the owner of the contract by way of their public key and proceed with updating the tuple of the user 1 in the identity registry 123. From this moment, the proxy contract 121 represents the sovereign identity of the user 1 in the system. If the user 1 were using their identity on more than one blockchain platform (and not only on the main identity blockchain platform 120), then a new proxy contract 133, 143 will be deployed for the user 1 in each blockchain network 130, 140 in which the user 1 is participating, updating the identity registry 133, 143 accordingly.
It is important to take into account that the public key of the user 1 is generated in the SIM card 101 of their computing device 100 (except for when they decide to generate their own keys) and the guarantor entity for the identity of the user 1 at no point has access to the private key of the user 1, it only acts as a user management and authentication system and the only piece of the identity of the user 1 that they know is the public key. When a satisfactory authentication is carried out, an applet on the SIM card 101 is responsible for extracting and securely transmitting the public key to the identity manager 110 so that information about the pair of keys cannot be leaked to the device 100 (the key can be stored in the SIM 101 or directly on the device 100 as a function of the management of the keys selected by the user 1). Consequently, in spite of the operator being a trusted third party in the recovery process of the keys, at no point are they capable of taking control of the proxy contract 121, 131, 141 and therefore of the identity of the user 1.
It should be pointed out that the present invention is not limited to being implemented by operators as providers of the identity management system and as reliable identity guarantors, but rather other trusted entities can play this role in both roles.
In this sense, in other exemplary embodiments, the invention could be based on any reliable identity guarantor entity which is supported via a secure user identification system. Thus, an electronic identification document could be used, for example an electronic ID card, as the unique identification and authentication system of the user 1 (the state in this case being the identity guarantor entity) such that if the user 1 loses their keys, they could be authenticated by way of their electronic ID card.
Similarly, the system for managing the identity of the present invention could be managed by any other reliable organisation. Faced with losing their keys, if the authentication of the user 1 were satisfactory, their new public key would be securely sent to the identity manager 110 who would be responsible for communicating with the corresponding infrastructure to return control of their identity to the user 1.
As an additional functionality, the present invention enables the use of a web service for authenticating users by means of using their telephone number in the web service, for example Mobile Connect as a physical authentication for the sovereign digital identity (when enabling access to the keys, granting access permissions to the data or validating various actions via the sovereign digital identity).
Additionally or alternatively, in other exemplary embodiments, more complex mechanisms can be used to recover the keys such that not only can the user 1 and the operator use it (with the generation of a new SIM 101 and the return of control of the proxy contract 121, 131, 141 to the user 1), but rather the user 1 can assign a series of trustees who must also accept and validate the recovery and generation of new identity keys for a user 1 (using the authentication system of their relevant operators, thus enabling the trust and the recovery process of the keys to be distributed even further). That is to say, the generation of the new pair of cryptographic keys can be conditioned upon the acceptance and validation of the same by a third party. For example, in a company it may be necessary for two or more representatives of the company to validate the generation of new keys.
Similarly, a key generation system can be used where it is now not the user 1, by way of the SIM 101, who generates the keys for the identity, but rather a cryptographic mechanism by way of which the user 1, the operator and if necessary the trustees, share parts of the seed in order to be able to regenerate the keys of the user 1.
The proposed invention can be implemented in hardware, software, firmware or any combination of the same. If it is implemented in software, the functions can be stored in or encoded as one or more instructions or code in a computer-readable medium.
The scope of the present invention is defined in the attached claims.
Number | Date | Country | Kind |
---|---|---|---|
P201930030 | Jan 2019 | ES | national |