System and method for authenticating user identity
Methods and systems for authenticating profile data is described. The method includes obtaining information associated with a commitment (i) generated based on an attribute of a user and (ii) verified via a verification system implementing a zero-knowledge (ZK) proof. The method also includes authenticating an identity of the user, and signing, based on the authentication of the identity of the user, a transaction on a blockchain.
1 . A method for authenticating profile data, the method comprising:
obtaining information associated with a commitment created as part of a commitment scheme, wherein the commitment: (i) is generated based on an attribute of a user; (ii) cannot change once generated; and (iii) is verified via a verification system implementing a zero-knowledge (ZK) proof, and
wherein the commitment scheme further comprises: (a) a commit phase, during which the attribute of the user and a value to be committed are chosen; and (b) a reveal phase, during which the attribute of the user is revealed and verified;
authenticating an identity of the user based, at least in part, on the information associated with the commitment; and
signing, based on the authentication of the identity of the user, a transaction on a blockchain.
2 . The method of claim 1 , wherein authenticating the identity of the user comprises matching the attribute of the user with a demographic characteristic of the user.
3 . The method of claim 2 , wherein matching the attribute of the user with the demographic characteristic of the user comprises comparing the attribute of the user to a demographic characteristic input into a multiparty computation (MPC).
4 . The method of claim 2 , wherein matching the attribute of the user with the demographic characteristic of the user is performed via the blockchain.
5 . The method of claim 2 , wherein matching the attribute of the user with the demographic characteristic of the user comprises determining that a user profile associated with the user includes the demographic characteristic that matches with the attribute of the user.
6 . The method of claim 2 , wherein authenticating the identity of the user comprises verifying the commitment using documentation provided by the user comprising the demographic characteristic of the user.
7 . The method of claim 1 , wherein the ZK proof is a zero-knowledge succinct non-interactive argument of knowledge (ZKSNARK).
8 . The method of claim 1 , further comprising storing, based on the authentication of the identity of the user, the attribute of the user on a device of the user.
9 . The method of claim 8 , further comprising encrypting the attribute of the user before storing the attribute of the user on the device of the user.
10 . A method for engaging a device of a user with a requesting system in a secure multiparty computation (SMC), the method comprising:
providing, by the device of the user, a random number to the SMC;
obtaining, by the requesting system and from a blockchain, a commitment generated as part of a commitment scheme, wherein the commitment: (i) is based on information associated with the user; (ii) cannot change once generated, and
wherein the commitment scheme further comprises: (a) a commit phase, during which the information associated with the user and the random number are chosen; and (b) a reveal phase, during which the information associated with the user is revealed and verified;
submitting, by the requesting system, the commitment into a zero-knowledge (ZK) proof with the device of the user; and
determining, based on the ZK proof, that one or more computations performed using the random number correspond to the commitment.
11 . The method of claim 10 , further comprising storing the commitment in the blockchain.
12 . The method of claim 11 , further comprising hashing the commitment before storing the commitment in the blockchain.
13 . A system comprising one or more processors and storage media storing instructions which, when executed by the one or more processors, cause:
obtaining information associated with a commitment created as part of a commitment scheme, wherein the commitment: (i) is generated based on an attribute of a user; (ii) cannot change once generated; and (iii) is verified via a verification system implementing a zero-knowledge (ZK) proof, and
wherein the commitment scheme further comprises: (a) a commit phase, during which the attribute of the user and a value to be committed are chosen; and (b) a reveal phase, during which the attribute of the user is revealed and verified;
authenticating an identity of the user based, at least in part, on the information associated with the commitment; and
signing, based on the authentication of the identity of the user, a transaction on a blockchain.
14 . The system of claim 13 , wherein the instructions when executed cause authenticating the identity of the user by matching the attribute of the user with a demographic characteristic of the user.
15 . The system of claim 14 , wherein the instructions when executed cause matching the attribute of the user with the demographic characteristic of the user by comparing the attribute of the user to a demographic characteristic input into a multiparty computation (MPC).
16 . The system of claim 14 , wherein the instructions when executed cause matching the attribute of the user with the demographic characteristic of the user via the blockchain.
17 . The system of claim 14 , wherein the instructions when executed cause matching the attribute of the user with the demographic characteristic of the user by determining that a user profile associated with the user includes the demographic characteristic that matches with the attribute of the user.
18 . The system of claim 14 , wherein the instructions when executed cause authenticating the identity of the user by verifying the commitment using documentation provided by the user comprising the demographic characteristic of the user.
19 . The system of claim 13 , wherein the storage media stores further instructions which when executed cause storing, based on the authentication of the identity of the user, the attribute of the user on a device of the user.
20 . The system of claim 19 , wherein the storage media stores further instructions which when executed cause encrypting the attribute of the user before storing the attribute of the user on the device of the user.