Scalable scaffolding and bundled data
Disclosed is a system to provide information associated with a user device from a server to the user device without disclosing the association to the server. Data structures, created at the server, contain information such as information about restaurants, mechanics, medical conditions, etc. The server creates bundles including two or more data structures containing disparate information, and a unique identifier for each bundle. The server creates a table of contents indicating the unique identifier of a bundle and the information contained in the bundle and sends the table of contents to the device. The server receives the unique identifier of the bundle and provides the bundle having the unique identifier to the device. While the bundle contains the information associated with the user device, because the bundle contains disparate information. the server does not know which information is associated with the user device.
1 . A system comprising:
a processor; and
a memory coupled to the processor, wherein the memory includes instructions executable by the processor to cause the system to:
create, at a user device, a universal data scaffold including a plurality of data structures containing information corresponding to a plurality of topics;
create, at the user device, a plurality of bundles using a zero-knowledge encryption process,
wherein a bundle of the plurality of bundles comprises a first data structure and a second data structure of the plurality of data structures,
wherein the first data structure includes first information and the second data structure includes second information, the first information and the second information comprising a subset of the information corresponding to the plurality of topics, and
wherein the first information and the second information are associated with different topics of the plurality of topics from each other;
for each encrypted bundle, generate a unique identifier;
transmit, from the user device to a server, the encrypted bundles and a table of contents data structure that maps each unique identifier to both the first information and the second information, wherein the server does not have access to decrypt the encrypted bundles and wherein the server is unable to determine an underlying content or topic of a user-selected bundle; and
provide, by the user device, an indication of a unique identifier to the server, wherein the server, in response to receiving the indication, is configured to transmit the corresponding encrypted bundle to the user device.
2 . The system of claim 1 , wherein the system is further caused to:
incorporate additional information into the universal data scaffold;
update the plurality of bundles to contain the additional information;
update the table of contents data structure to include the additional information and an additional unique identifier of a bundle associated with the additional information; and
distribute the updated table of contents data structure to the user device.
3 . The system of claim 1 , wherein the first information is associated with a commercial service, and wherein the second information is associated with a government service.
4 . The system of claim 1 , wherein the first information and the second information are associated with disparate geographical locations.
5 . The system of claim 1 , wherein the bundle includes a third data structure, the third data structure including a placeholder associated with currently unavailable information.
6 . The system of claim 1 , wherein the system is further caused to:
delete the first information or the second information from the user device.
7 . The system of claim 6 , wherein the first information or the second information is deleted based on a bandwidth between the user device and the server.
8 . The system of claim 6 , wherein the first information or the second information is deleted based on a memory capacity of the user device.
9 . The system of claim 6 , wherein the first information or the second information is deleted based on determining a likelihood that a user of the user device will access a portion of the encrypted bundle within a predetermined time period.
10 . The system of claim 1 , wherein the system is further caused to:
determine a first amount of a first resource associated with the user device consumed by at least a portion of the encrypted bundle;
determine a second amount of a second resource associated with the user device consumed by the at least the portion of the encrypted bundle;
determine availability of the first resource associated with the user device and availability of the second resource associated with the user device; and
based on the availability of the first resource associated with the user device and the availability of the second resource associated with the user device, determine whether to delete the at least the portion of the encrypted bundle.
11 . The system of claim 1 , wherein the system is further caused to:
prior to creating the plurality of bundles, structure data associated with a user of the user device into a format compatible with the universal data scaffold;
encrypt the data associated with the user; and
transmit the data associated with the user to the server, wherein the data associated with the user is included in the first information.
12 . A computer-implemented method comprising:
creating, by a user device, a universal data scaffold including a plurality of data structures containing information corresponding to a plurality of topics;
creating, by the user device, a plurality of bundles using a zero-knowledge encryption process, wherein a bundle of the plurality of bundles comprises a first data structure and a second data structure of the plurality of data structures, wherein the first data structure includes first information and the second data structure includes second information, the first information and the second information comprising a subset of the information corresponding to the plurality of topics, and wherein the first information and the second information are associated with different topics of the plurality of topics from each other;
for each encrypted bundle, generating a unique identifier;
transmitting, by the user device to a server, the encrypted bundles and a table of contents data structure that maps each unique identifier to both the first information and the second information, wherein the server does not have access to decrypt the encrypted bundles and wherein the server is unable to determine an underlying content or topic of a user-selected bundle; and
providing, by the user device, an indication of a unique identifier to the server, wherein the server, in response to receiving the indication, is configured to transmit the corresponding encrypted bundle to the user device.
13 . The method of claim 12 , further comprising:
incorporating additional information into the universal data scaffold;
updating the plurality of bundles to contain the additional information;
updating the table of contents data structure to include the additional information and an additional unique identifier of a bundle associated with the additional information; and
distributing the updated table of contents data structure to the user device.
14 . The method of claim 12 , wherein the first information is associated with a commercial service, and wherein the second information is associated with a government service.
15 . The method of claim 12 , wherein the first information and the second information are associated with disparate geographical locations.
16 . The method of claim 12 , wherein the bundle includes a third data structure, the third data structure including a placeholder associated with currently unavailable information.
17 . The method of claim 12 , further comprising:
deleting the first information or the second information from the user device.
18 . The method of claim 17 , wherein the first information or the second information is deleted based on one or more of: a bandwidth between the server and a second server, a memory capacity of the server, or a likelihood that a user of the user device will access a portion of the bundle within a predetermined time period.
19 . The method of claim 12 , further comprising:
determining a first amount of a first resource associated with the user device consumed by at least a portion of the encrypted bundle;
determining a second amount of a second resource associated with the user device consumed by the at least the portion of the encrypted bundle;
determining availability of the first resource associated with the user device and availability of the second resource associated with the user device; and
based on the availability of the first resource associated with the user device and the availability of the second resource associated with the system, determining whether to delete the at least the portion of the encrypted bundle.
20 . The method of claim 12 , further comprising:
prior to creating the plurality of bundles, structuring data associated with a user of the user device into a format compatible with the universal data scaffold;
encrypting the data associated with the user; and
transmitting the data associated with the user to the server, wherein the data associated with the user is included in the first information.