Platform and associated method for authenticating the identity of a user in a decentralized system without need for a third-party identity service
AssigneeBlockstack PBC
InventorsJude Nelson, Aaron Blankstein, Lawrence Salibra, Yukan Liao, Matthew Little
Life of this patent
Estimating the term…
Abstract
A decentralized application platform and associated method creates an ID that can be used to sign into any decentralized application that follows the platform protocol without having a centralized third party having to vouch for the user's identity.
Claims18
A client computing device of a blockchain-based decentralized network comprising:
- a network interface configured to couple the client computing device to a storage server configured to store data specific to a user and a decentralized application, the stored data being available for use by the decentralized application;
- a display;
- a hardware processor;
- a non-transitory computer readable storage medium storing program instructions for execution by the hardware processor in order to cause the client computing device to:
- receive from an instance of a decentralized application executed on the client computing device a request to login initiated by a first user selection of a graphical button displayed on the display in a first graphical user interface of the decentralized application;
- in response to the received request, invoke an authenticator application that is distinct from the decentralized application for execution by the client computing device;
- with the display, display a second graphical user interface of the authenticator application, the second graphical user interface configured to display one or more user IDs associated with the authenticator application;
- receive from the authenticator application a second user selection comprising a selected ID of the one or more IDs;
- in response to the received selected ID, receive from the authenticator application a username associated with the received selected ID, an application-specific private key that is specific to the decentralized application, and a storage server identifier associated with the username;
- with the decentralized application, access the storage server for read and write access with the decentralized application-specific private key and the storage server identifier;
- receive from the decentralized application or from the authenticator application a request to logout;
- and
- clear a local state of the decentralized application such that the decentralized application and the authenticator application do not store and have no access to the decentralized application-specific private key.
A method of authenticating a user with a client computing device of a decentralized network, the method comprising:
- under the control of a client computing device configured to communicate with a storage server via a network interface and to execute a decentralized application and an authenticator application,
- receiving from an instance of a decentralized application on the client computing device a request to login initiated by a first user selection via a user interface of the decentralized application;
- in response to the received request, invoking an authenticator application for execution on the client computing device;
- with a display, displaying the authenticator application in a second graphical user interface, the second graphical user interface configured to display one or more user IDs associated with the authenticator application;
- with the authenticator application, receiving a second user selection comprising a selected ID of the one or more IDs and identify a pre-defied address on the storage server associated with the selected ID;
- with the authenticator application, generating an application-specific private key that is specific to the decentralized application based on a top-level private key and an identifier associated with the decentralized application;
- with the authenticator application, return the application-specific private key and the pre-defined address to the decentralized application;
- with the decentralized application, access the address on the storage server for read and write access with the decentralized application-specific private key;
- receiving from the decentralized application or from the authenticator application a request to logout;
- and
- clearing a local state of the decentralized application such that the decentralized application and the authenticator application do not store and have no access to the decentralized application-specific private key.
Non-transitory, computer-readable storage media comprising computer-executable instructions for authenticating a user with a client computing device of a decentralized network, wherein the computer-executable instructions, when executed by a computer system, cause the client computer to:
- receive from an instance of a decentralized application executed on the client computing device, a request to login initiated by a first user selection of a graphical button displayed on the display in a first graphical user interface of the decentralized application;
- in response to the received request, invoke an authenticator application;
- display a second graphical user interface of the authenticator application, the second graphical user interface configured to display one or more user IDs associated with the authenticator application;
- receive from the authenticator application a second user selection comprising a selected ID of the one or more IDs;
- in response to the received selected ID, receive from the authenticator application, an application-specific private key that is specific to the decentralized application and an address associated with a storage server;
- with the decentralized application, access the address associated with the storage server for read and write access with the decentralized application-specific private key;
- receive from the decentralized application or from the authenticator application a request to logout;
- and
- clear a local state of the decentralized application such that the decentralized application and the authenticator application do not store and have no access to the decentralized application-specific private key.
Dependencies are inferred from the claim text.