Method and system for secure wallet recovery verification
A system and method for wallet recovery verification are provided. The system includes a processor of a wallet verifier node connected to an at least one wallet operator entity node and to at least one backup provider entity node; and a memory on which are stored machine-readable instructions that when executed by the processor, cause the processor to: receive, from the at least one wallet operator entity node backup data comprising (X, C, ψ), where C is a ciphertext encrypting a secret key of the at least one wallet operator entity node, w is a zero-knowledge proof and X is an address of the wallet being backed up; execute a verification algorithm based on the (X, C, ψ), and a public key N received from the at least one backup provider entity node; and derive the address X and verify that a combination of a primary address with a seed produced the derived address.
1 . A system for wallet recovery verification, comprising:
a processor of a wallet verifier node connected to an at least one wallet operator entity node and to at least one backup provider entity node; and
a memory having stored thereon machine-readable instructions that, when executed by the processor, configure the processor to:
receive, from the at least one wallet operator entity node backup data comprising a ciphertext encrypting a secret key of the at least one wallet operator entity node, a zero-knowledge proof and an address of a wallet being backed up;
parse the zero-knowledge proof in order to produce a parsing result;
set a value of a bit to a first value or a second value based on the parsing result;
execute a verification algorithm based on the ciphertext, the zero-knowledge proof, the address of the wallet, and a public key received from the at least one backup provider entity node, wherein executing the verification algorithm includes performing a comparison, wherein the comparison uses a first calculation based on the public key when the value of the bit is set to the first value, wherein the comparison uses a second calculation based on the public key when the value of the bit is set to the second value, wherein the verification algorithm outputs true when the result of the comparison yields an equal result; and
verify whether the backup of the wallet provides access to the wallet on the blockchain based on the true output of the verification algorithm.
2 . The system of claim 1 , further comprising machine-readable instructions that when executed by the processor, cause the processor to:
request a signature for the public key, from the at least one backup provider entity node.
3 . The system of claim 2 , further comprising machine-readable instructions that when executed by the processor, cause the processor to:
verify the signature against the public key.
4 . The system of claim 1 , wherein each backup provider entity node holds an encryption key and knows a corresponding decryption key, wherein each decryption key functions as a signing key.
5 . A method for wallet recovery verification, comprising:
receiving, by a wallet verifier node, from at least one wallet operator entity node backup data comprising a ciphertext encrypting a secret key of the at least one wallet operator entity node, a zero-knowledge proof and an address of a wallet being backed up;
parsing the zero-knowledge proof in order to produce a parsing result;
setting a value of a bit to a first value or a second value based on the parsing result;
executing, by the wallet verifier node, a verification algorithm based on the ciphertext, the zero-knowledge proof, the address of the wallet, and a public key received from the at least one backup provider entity node, wherein executing the verification algorithm includes performing a comparison, wherein the comparison uses a first calculation based on the public key when the value of the bit is set to the first value, wherein the comparison uses a second calculation based on the public key when the value of the bit is set to the second value, wherein the verification algorithm outputs true when the result of the comparison yields an equal result; and
verifying whether the backup of the wallet provides access to the wallet on the blockchain based on the true output of the verification algorithm.
6 . The method of claim 5 , further comprising requesting a signature for the public key, from the at least one backup provider entity node.
7 . The method of claim 6 , further comprising verifying the signature against the public key.
8 . The method of claim 5 , wherein each backup provider entity node holds an encryption key and knows a corresponding decryption key, wherein each decryption key functions as a signing key.
9 . A non-transitory computer-readable medium having stored thereon instructions for causing a processing circuitry to execute a process, the process comprising:
receiving, by a wallet verifier node, from at least one wallet operator entity node backup data comprising a ciphertext encrypting a secret key of the at least one wallet operator entity node, a zero-knowledge proof and an address of a wallet being backed up;
parsing the zero-knowledge proof in order to produce a parsing result:
setting a value of a bit to a first value or a second value based on the parsing result;
executing, by the wallet verifier node, a verification algorithm based on the ciphertext, the zero-knowledge proof, the address of the wallet, and a public key received from the at least one backup provider entity node, wherein executing the verification algorithm includes performing a comparison, wherein the comparison uses a first calculation based on the public key when the value of the bit is set to the first value, wherein the comparison uses a second calculation based on the public key when the value of the bit is set to the second value, wherein the verification algorithm outputs true when the result of the comparison yields an equal result; and
verifying whether the backup of the wallet provides access to the wallet on the blockchain based on the true output of the verification algorithm.
10 . The non-transitory computer-readable medium of claim 9 having stored thereon instructions for causing a processing circuitry to execute a process, the process comprising requesting a signature for the public key N, from the at least one backup provider entity node, based on an unpredictable message.