TECHNICAL FIELD

This application relates generally to generating and manipulating datasets stored in blockchains.

BACKGROUND

Employees are continuously changing jobs, so the resumes and references of those employees are often updated with new or additional information. Many new employers must verify the information within the employees resumes. A problem that exists with employment verification is the amount of administrative work to contact each previous employer and verify certain information. As expected, this manual process is tedious, time-consuming, inefficient, and sometimes inaccurate. For example, a previous employer may not be as easily accessible or may transmit false information regarding the employee.

As the processing power of computers allow for greater computer functionality and the Internet technology era allows for interconnectivity between computing systems, many institutions store employee data records electronically. These institutions simply store the data in a database and retrieve it when necessary. However, since the implementation of these more sophisticated online tools, several shortcomings in these technologies have been identified and have created a new set of challenges. First, existing and conventional methods fail to provide fast and efficient analysis due to a high volume of customer information existing on different networks and computing infrastructures. Managing such information on different platforms is difficult due to number, size, content, or relationships of the data associated with the customers. Second, information stored in a database may be susceptible to risk and/or fraudulent modification. For example, the database may be subject to cyber-attacks. Third, access to previous employer's databases may be limited due to security concerns. For instance, an employee may not have access to an employer's database once he decides to change employers. As a result, employment data records are not transferrable with the employee.

SUMMARY

For the aforementioned reasons, there is a need for a more accurate system and method, which would allow employees to accurately store and access employee records, profile, and other pertinent employment information in a more efficient manner than possible with human-intervention or conventional data-driven software solutions. Disclosed herein are systems and methods for dynamic generation of an intelligent employment-based blockchain using distributed databases.

Distributed databases such as distributed ledgers ensure the integrity of data by generating a chain of data blocks linked together by cryptographic hashes of the data records in the data blocks. For example, a cryptographic hash of at least a portion of data records within a first block, and, in some cases, combined with a portion of data records in previous blocks is used to generate the block address for a new digital identity block succeeding the first block. As an update to the data records stored in the one or more data blocks, a new data block is generated containing respective updated data records and linked to a preceding block with an address based upon a cryptographic hash of at least a portion of the data records in the preceding block. In other words, the linked blocks form a blockchain that inherently includes a traceable sequence of addresses that can be used to track the updates to the data records contained therein.

The linked blocks (or blockchain) may be distributed among multiple network nodes within a computer network such that each node may maintain a copy of the blockchain. Malicious network nodes attempting to compromise the integrity of the database have to recreate and redistribute the blockchain faster than the honest network nodes, which, in most cases, is computationally infeasible. In other words, data integrity is guaranteed by the virtue of multiple network nodes in a network having a copy of the same blockchain. A central trust authority is therefore not required to vouch for the integrity of the distributed database hosted by multiple nodes in the network.

In one embodiment, a computer-implemented method comprises receiving, by a server from a first network node, a first request to generate an employment record associated with a user operating the first network node; generating, by a server, a graphical user interface to be displayed on the first network node, the graphical user interface comprising a plurality of input fields configured to receive data associated with employment of the user; upon displaying the graphical user interface on the first network node, receiving, by the server, a first set of data associated with employment of the user; generating, by the server, a user employment record of the user in a non-blockchain system database configured to store a plurality of user employment records, the user employment record comprising one or more data fields containing the first set of data; generating, by the server, a first cryptographic hash value based at least on one of the user, the first set of data, and the first network node, according to a hashing algorithm; updating, by the server, a first block instance of an employment blockchain with the first cryptographic hash value, the first block instance being stored within the first network node; receiving, by the server from a second network node, a second request to update the employment blockchain; upon displaying the graphical user interface on the second network node, receiving, by the server, a second set of data associated with employment of the user; updating, by the server, the user employment record of the user in the non-blockchain system database based on the second set of data; retrieving, by the server, a latest valid employment blockchain, wherein content of the latest valid employment blockchain is confirmed by the first network node; appending, by the server, a second block instance to the first block instance by: generating a second cryptographic hash value identifying the user, the second set of data, and the second network node, according to a hashing algorithm; and updating a second block instance with the second cryptographic hash value, the second block instance being stored at least within the second network node; transmitting, by the server, the second block instance to the first network node.

In another embodiment, a computer system comprises a plurality of network nodes comprising at least a first network node and a second network node; a non-blockchain system database configured to store a plurality of user employment records; and a server communicatively in connection with the plurality of network nodes and the non-blockchain system database, wherein the server is configured to receive, from the first network node, a first request to generate an employment record associated with a user operating the first network node; generate a graphical user interface to be displayed on the first network node, the graphical user interface comprising a plurality of input fields configured to receive data associated with employment of the user; upon displaying the graphical user interface on the first network node, receiving a first set of data associated with employment of the user; generate a user employment record of the user in the non-blockchain system database; generate a first cryptographic hash value based at least on one of the user, the first set of data, and the first network node, according to a hashing algorithm; update a first block instance of an employment blockchain with the first cryptographic hash value, the first block instance being stored within the first network node; receive, from the second network node, a second request to update the employment blockchain; upon displaying the graphical user interface on the second network node, receive a second set of data associated with employment of the user; update the user employment record of the user in the non-blockchain system database based on the second set of data; retrieve a latest valid employment blockchain, wherein content of the latest valid employment blockchain is confirmed by the first network node; append a second block instance to the first block instance by generating a second cryptographic hash value identifying the user, the second set of data, and the second network node, according to a hashing algorithm; and updating a second block instance with the second cryptographic hash value, the second block instance being stored at least within the second network node; transmit the second block instance to the first network node.

In another embodiment, a method comprises receiving, by a server, from a computing device, a request to update an employment record associated with a user, the employment record corresponding to a first blockchain stored on a plurality of first network nodes, the first request instructing the server to append a second blockchain stored on a plurality of second network nodes to the first blockchain, wherein the first request comprises a first set of data identifying: the second blockchain, a block instance within the first blockchain associated with the second blockchain, and a first network node associated with the block instance; retrieving, by the server, a latest valid second blockchain by generating and transmitting an instruction to the first network node, the instruction configured to receive a latest valid second blockchain; generating, by the server, a hash value based at least on one of the user, a hash value associated with the block instance, and the first network node, according to a hashing algorithm; appending, by the server, the second blockchain to the block instance within the first blockchain by updating a block instance associated with the second blockchain with the hash value; and transmitting, by the server, the block instance and the second blockchain to the plurality of first network nodes.

In another embodiment, a computer system for managing distributed data sources comprises a plurality of first network nodes storing a first blockchain; a plurality of second network nodes storing a second blockchain; a computing device operated by a user associated with the first and the second blockchain; a server communicatively in connection with the first plurality of network nodes, the second plurality of network nodes, and the computing device, wherein the server is configured to receive, from a computing device, a request to update an employment record associated with a user, the employment record corresponding to the first blockchain stored on the plurality of first network nodes, the first request instructing the server to append the second blockchain stored on the plurality of second network nodes to the first blockchain, wherein the first request comprises a first set of data identifying the second blockchain, a block instance within the first blockchain associated with the second blockchain, and a first network node associated with the block instance; retrieve a latest valid second blockchain by generating and transmitting an instruction to the first network node, the instruction configured to receive a latest valid second blockchain; generate a hash value based at least on one of the user, a hash value associated with the block instance, and the first network node, according to a hashing algorithm; append the second blockchain to the block instance within the first blockchain by updating a block instance associated with the second blockchain with the hash value; and transmit the block instance and the second blockchain to the plurality of first network nodes.

In another embodiment, a method comprises receiving, by a server, a request to generate a customized dataset, wherein the request is received from a computing device operated by a user; generating, by the server, a first instruction to receive a latest valid blockchain from a plurality of network nodes, the latest valid blockchain comprising one or more block instances comprising data associated with the user and a corresponding hash value, wherein each block instance is stored on a database associated with at least one of the plurality of network nodes; upon transmitting the first instruction, receiving, by the server, the latest valid blockchain from each network node of the plurality of network nodes; comparing, by the server, the hash value associated with each block instance with each respective hash value associated with each respective block instance within each latest valid blockchain received from each network node of the plurality of network nodes; upon a number of matching hash values satisfying a pre-determined threshold, generating, by the server, a second instruction to receive the data associated with each block instance from the plurality of the network nodes; upon transmitting the second instruction to the plurality of network nodes, receiving, by the server, the data within each block instance within the latest valid blockchain from each of the network nodes of the plurality of network nodes; generating, by the server, a graphical user interface configured display the data associated with the latest valid blockchain on the computing device operated by the user; upon displaying the graphical user interface on the computing device, receiving, by the server, from the user, a selection of the data associated with the latest valid blockchain and an encryption key; encrypting, by the server utilizing the received encryption key, the selection of data; generating, by the server, a blockchain address corresponding to the selected decrypted data, wherein the blockchain address corresponds to each block instance containing the selected decrypted data; and transmitting, by the server, the blockchain address to the computing device associated with the user.

In another embodiment, a computer system comprises a plurality of network nodes hosting a blockchain; a computing device operated by a user associated with the blockchain; and a server communicatively in connection with the computing device and the plurality of network nodes, wherein the server is configured to: receive a request to generate a customized dataset, wherein the request is received from a computing device operated by a user; generate a first instruction to receive a latest valid blockchain from a plurality of network nodes, the latest valid blockchain comprising one or more block instances comprising data associated with the user and a corresponding hash value, wherein each block instance is stored on a database associated with at least one of the plurality of network nodes; upon transmitting the first instruction, receive the latest valid blockchain from each network node of the plurality of network nodes; compare the hash value associated with each block instance with each respective hash value associated with each respective block instance within each latest valid blockchain received from each network node of the plurality of network nodes; upon a number of matching hash values satisfying a pre-determined threshold, generate a second instruction to receive the data associated with each block instance from the plurality of the network nodes; upon transmitting the second instruction to the plurality of network nodes, receive the data within each block instance within the latest valid blockchain from each of the network nodes of the plurality of network nodes; generate a graphical user interface configured display the data associated with the latest valid blockchain on the computing device operated by the user; upon displaying the graphical user interface on the computing device, receive from the user, a selection of the data associated with the latest valid blockchain and an encryption key; encrypt, utilizing the received encryption key, the selection of data; generate a blockchain address corresponding to the selected decrypted data, wherein the blockchain address corresponds to each block instance containing the selected decrypted data; and transmit the blockchain address to the computing device associated with the user.

In another embodiment, a method comprises receiving, by a server, a request to generate an employee dataset comprising one or more users, wherein the request is received from a computing device operated by a first user; generating, by the server, a first instruction to receive, from a plurality of network nodes, a plurality of latest valid blockchain associated with a plurality of users, wherein the plurality of latest valid blockchains comprises one or more block instances comprising data associated with the plurality of users and one or more corresponding hash values, wherein each block instance is stored in a database associated with at least one of the plurality of network nodes; upon transmitting the first instruction, receiving, by the server, the plurality of latest valid blockchains from each network node of the plurality of network nodes; comparing, by the server, the hash value associated with each block instance with each respective hash value associated with each respective block instance within each latest valid blockchain received from each network node of the plurality of network nodes; upon a number of matching hash values satisfying a pre-determined threshold, generating, by the server, a second instruction to receive the data associated with each block instance from the plurality of the network nodes; upon transmitting the second instruction to the plurality of network nodes, receiving, by the server, the data within each block instance within the plurality of latest valid blockchains from each of the network nodes of the plurality of network nodes; generating, by the server based on each valid latest blockchain, a score corresponding to each user; generating, by the server, one or more blockchain addresses corresponding to a selection of the plurality of latest valid blockchains, wherein each selected latest valid blockchains satisfies a pre-determined threshold transmitting, by the server, the one or more blockchain addresses to the computing device operated by the first user.

In yet another embodiment, a computer system comprises a plurality of network nodes hosting a blockchain; a first user operating a computing device; and a server communicatively in connection with the plurality of network nodes and the computing device, wherein the server is configured to receive a request to generate an employee dataset comprising one or more users, wherein the request is received from a computing device operated by a first user; generate a first instruction to receive, from a plurality of network nodes, a plurality of latest valid blockchain associated with a plurality of users, wherein the plurality of latest valid blockchains comprises one or more block instances comprising data associated with the plurality of users and one or more corresponding hash values, wherein each block instance is stored in a database associated with at least one of the plurality of network nodes; upon transmitting the first instruction, receive the plurality of latest valid blockchains from each network node of the plurality of network nodes; compare the hash value associated with each block instance with each respective hash value associated with each respective block instance within each latest valid blockchain received from each network node of the plurality of network nodes; upon a number of matching hash values satisfying a pre-determined threshold, generate a second instruction to receive the data associated with each block instance from the plurality of the network nodes; upon transmitting the second instruction to the plurality of network nodes, receive the data within each block instance within the plurality of latest valid blockchains from each of the network nodes of the plurality of network nodes; generate, based on each valid latest blockchain, a score corresponding to each user; generate one or more blockchain addresses corresponding to a selection of the plurality of latest valid blockchains, wherein each selected latest valid blockchains satisfies a pre-determined threshold transmit the one or more blockchain addresses to the computing device operated by the first user.

It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory and are intended to provide further explanation of the invention as claimed.

