Non-transferable token
Various aspects of the subject technology relate to systems, methods, and machine-readable media for providing a digital credential. Various aspects may include receiving a request for execution of a transaction on a blockchain. Aspects may also include identifying a party that originated the request. Aspects may also include selecting an issuer of a non-transferable credential stored on the blockchain. Aspects may also include requesting receipt of the non-transferable credential from the party. Aspects may include performing a credential check based on a digitally signed statement comprising key pairs of the non-transferable credential.
1 . A computer-implemented method, comprising:
receiving a request for execution of a transaction in a blockchain;
identifying an originating party that submitted the request;
selecting, based on issuer permissions indicated by credential classes stored on the blockchain, an issuer authorized to issue a non-transferable credential associated with the originating party;
determining a parameter of the non-transferable credential, wherein determining the parameter comprises determining a limited quantity of moves of the non-transferable credential that are permitted;
performing a credential check based on a digitally signed statement associated with a credential class of the selected issuer, the credential check (i) pertaining to ownership of the non-transferable credential and (ii) confirming that the non-transferable credential has not been revoked and remains bound to the originating party;
based on successful completion of the credential check, executing the transaction; and
based on failure of the credential check, rejecting the transaction request and preventing inclusion of the transaction in the blockchain.
2 . The computer-implemented method of claim 1 , wherein identifying the originating party comprises determining that the originating party possesses the non-transferable credential and the nontransferable credential is classified under a category of non-unique credentials.
3 . The computer-implemented method of claim 1 , wherein selecting an issuer of a non-transferable credential comprises storing the non-transferable credential as a non-movable credential granted to a public address on the blockchain.
4 . The computer-implemented method of claim 1 , wherein requesting receipt of the non-transferable credential from the originating party comprises receiving attribute value pairs indicative of the originating party possessing a private key corresponding to the non-transferable credential, wherein the digitally signed statement comprises the attribute value pairs.
5 . The computer-implemented method of claim 1 , wherein performing a credential check comprises receiving a zero-knowledge proof from the originating party.
6 . The computer-implemented method of claim 1 , further comprising determining, by the issuer of the non-transferable credential, an expiration time for the non-transferable credential.
7 . The computer-implemented method of claim 1 , further comprising performing, by the issuer of the non-transferable credential, a revocation of a key set of the nontransferable credential.
8 . The computer-implemented method of claim 1 , further comprising:
capturing, via a crypto signature, a quorum attestation that the originating party possesses the non-transferable credential; and
generating, for the originating party, a proof of ownership of the non-transferable credential based on the quorum attestation.
9 . The computer-implemented method of claim 1 , further comprising:
determining an encryption parameter of the non-transferable credential, the encryption parameter specifying that the non-transferable credential is encrypted on the blockchain and is decryptable by a key corresponding to the originating party.
10 . A system, comprising:
one or more processors; and
a memory comprising instructions stored thereon, which when executed by the one or more processors, causes the one or more processors to perform:
receiving a request for execution of a transaction in a blockchain;
identifying an originating party that submitted the request;
selecting, based on issuer permissions indicated by credential classes stored on the blockchain, an issuer authorized to issue a non-transferable credential associated with the originating party;
determining a parameter of the non-transferable credential, wherein determining the parameter comprises determining a limited quantity of moves of the non-transferable credential that are permitted;
requesting receipt of the non-transferable credential from the originating party; and
performing a credential check based on a digitally signed statement associated with a credential class of the selected issuer, the credential check (i) pertaining to ownership of the non-transferable credential and (ii) confirming that the non-transferable credential has not been revoked and remains bound to the originating party;
based on successful completion of the credential check, executing the transaction; and
based on failure of the credential check, rejecting the transaction request and preventing inclusion of the transaction in the blockchain.
11 . The system of claim 10 , wherein the instructions that cause the one or more processors to identify the originating party that originated the request, cause the one or more processors to perform determining that the originating party possesses the non-transferable credential and the non-transferable credential is classified under a category of non-unique credentials.
12 . The system of claim 10 , wherein the instructions that cause the one or more processors to perform selecting an issuer of a non-transferable credential cause the one or more processors to perform storing the non-transferable credential as a non-movable credential granted to a public address on the blockchain.
13 . The system of claim 10 , wherein the instructions that cause the one or more processors to perform requesting receipt of the non-transferable credential from the originating party that originated the request, cause the one or more processors to perform receiving attribute value pairs indicative of the originating party possessing a private key corresponding to the non-transferable credential, wherein the digitally signed statement comprises the attribute value pairs.
14 . The system of claim 10 , wherein the instructions that cause the one or more processors to perform performing a credential check cause the one or more processors to perform receiving a zero-knowledge proof from the originating party.
15 . The system of claim 10 , further comprising stored sequences of instructions, which when executed by the one or more processors, cause the one or more processors to perform determining, by the issuer of the non-transferable credential, an expiration time for the nontransferable credential.
16 . The system of claim 10 , further comprising stored sequences of instructions, which when executed by the one or more processors, cause the one or more processors to perform, by the issuer of the non-transferable credential, a revocation of a key set of the non-transferable credential.
17 . The system of claim 10 , further comprising stored sequences of instructions, which when executed by the one or more processors, cause the one or more processors to perform:
capturing, via a crypto signature, a quorum attestation that the originating party possesses the non-transferable credential; and
generating, for the originating party, a proof of ownership of the non-transferable credential based on the quorum attestation.
18 . The system of claim 10 , further comprising stored sequences of instructions, which when executed by the one or more processors, cause the one or more processors to perform:
determining an encryption parameter of the non-transferable credential, the encryption parameter specifying that the non-transferable credential is encrypted on the blockchain and is decryptable by a key corresponding to the originating party; and
receiving an image representation that indicates a characteristic of the non-transferable credential.
19 . A non-transitory computer-readable storage medium comprising instructions stored thereon, which when executed by one or more processors, cause the one or more processors to perform operations, comprising:
receiving a request for execution of a transaction on a blockchain;
identifying an originating party that submitted the request;
selecting, based on issuer permissions indicated by credential classes stored on the blockchain, an issuer authorized to issue a non-transferable credential associated with the originating party;
determining a parameter of the non-transferable credential, wherein determining the parameter comprises determining a limited quantity of moves of the non-transferable credential that are permitted;
requesting receipt of the non-transferable credential from the originating party;
receiving an image representation that indicates a characteristic of the non-transferable credential;
performing a credential check based on a digitally signed statement associated with a credential class of the selected issuer, the credential check (i) pertaining to ownership of the non-transferable credential and (ii) confirming that the non-transferable credential has not been revoked and remains bound to the originating party;
based on successful completion of the credential check, executing the transaction; and
based on failure of the credential check, rejecting the transaction request and preventing inclusion of the transaction in the blockchain.
20 . The computer-implemented method of claim 1 , further comprising:
receiving an image representation that indicates a characteristic of the non-transferable credential.