User interface log validation via blockchain system and methods
Disclosed are apparatus, systems, computer readable media, or methods wherein user interface user interactions may be electronically logged and stored based on various inputs and outputs of data from the user interface forming a digital chain of events and interactions (e.g., a blockchain). An interaction logging system is disclosed including a user tracking or logging engine configured to derive session data and user interface data storing the same into interaction tracking chains or blockchains. A validation blockchain may co-exist with a session blockchain that may be formed independently and include version data of user interface software acting as a secure verifiable history of the versions of the user interface. In a session block of the session blockchain, a pointer may be stored with the session data, wherein the pointer indicates a particular block on the validation blockchain that may assist in the validation of information stored in the session blockchain.
1 . A computer program product comprising one or more non-transitory computer readable media on which are stored program instructions executable by one or more processors to perform operations comprising:
deriving session data from a user interface session of a user interface of a software application, the session data including one or more user interactions of a user with the user interface;
storing a record of the session data in a session block of a private ledger;
storing, in the session block, a hash reference to data in another session block of the private ledger;
storing, in the session block, an external timestamp derived from a validation block of a public ledger that is stored at a different geographical location than the private ledger, the public ledger functioning as a notary to provide an independent measure of the validity of the timestamp;
deriving user interface data from the user interface session and recording a record of the user interface data in the session block, the user interface data including user interface content data of the user interface;
storing, in the session block, a pointer to the validation block of public ledger, the validation block storing reference user interface data of the user interface; and
validating the user interface data stored in the session blockchain based on the external timestamp and based on the reference user interface data stored in the validation block.
2 . The computer program product of claim 1 , wherein the one or more user interactions includes a keystroke.
3 . The computer program product of claim 1 , wherein the one or more user interactions includes a mouse cursor movement.
4 . The computer program product of claim 1 , wherein the one or more user interactions includes an eye gaze.
5 . The computer program product of claim 1 , wherein the one or more user interactions includes a selection of an item.
6 . The computer program product of claim 1 , wherein the session data further includes biometric data of the user.
7 . The computer program product of claim 1 , wherein the session data further includes patient medical data collected from one or more monitors or sensors.
8 . The computer program product of claim 1 , wherein the session data further includes patient medical record data collected from one or more healthcare network systems.
9 . The computer program product of claim 1 , wherein the user interface content data includes one or more elements selected from the group consisting of menu data, window data, pane data, tab data, icon data, pointer data, cursor data, and widget data.
10 . The computer program product of claim 1 , further comprising deriving user interface data from the user interface session and recording a record of the user interface data in the session block, the user interface data including user interface version data of the user interface.
11 . The computer program product of claim 1 , wherein the record is a record of all of the session data derived from the user interface session.
12 . The computer program product of claim 1 , wherein the private ledger is distributed among a plurality of servers.
13 . The computer program product of claim 1 , wherein the private ledger comprises a private blockchain.
14 . The computer program product of claim 1 , wherein the private ledger is associated with a particular user of the user interface.
15 . The computer program product of claim 1 , wherein the public ledger comprises a public blockchain.
16 . The computer program product of claim 15 , wherein the public blockchain stores cryptocurrency transactions.
17 . The computer program product of claim 1 , wherein the software application is a smartphone application.
18 . A method comprising:
deriving session data from a user interface session of a user interface of a software application, the session data including one or more user interactions of a user with the user interface;
storing a record of the session data in a session block of a private ledger;
storing, in the session block, a hash reference to data in another session block of the private ledger;
storing, in the session block, an external timestamp derived from a validation block of a public ledger that is stored at a different geographical location than the private ledger, the public ledger functioning as a notary to provide an independent measure of the validity of the timestamp;
deriving user interface data from the user interface session and recording a record of the user interface data in the session block, the user interface data including user interface content data of the user interface;
storing, in the session block, a pointer to the validation block of the public ledger, the validation block storing reference user interface data of the user interface; and
validating the user interface data stored in the session blockchain based on the external timestamp and based on the reference user interface data stored in the validation block.
19 . A system comprising:
a computing workstation;
at least one processor; and
at least one non-transitory computer readable memory storing software instructions executable by said at least one processor to perform operations comprising:
deriving session data from a user interface session of a user interface of the computing workstation, the session data including one or more user interactions of a user with the user interface;
storing a record of the session data in a session block of a private ledger;
storing, in the session block, a hash reference to data in another session block of the private ledger;
storing, in the session block, an external timestamp derived from a validation block of a public ledger that is stored at a different geographical location than the private ledger, the public ledger functioning as a notary to provide an independent measure of the validity of the timestamp;
deriving user interface data from the user interface session and recording a record of the user interface data in the session block, the user interface data including user interface content data of the user interface;
storing, in the session block, a pointer to the validation block of the public ledger, the validation block storing reference user interface data of the user interface; and
validating the user interface data stored in the session blockchain based on the external timestamp and based on the reference user interface data stored in the validation block.