The present invention relates to the management of consumer data. More specifically, the present invention relates to systems and methods for distributed management of consumer data.
The growth of the Internet and related technologies in recent years has led to the exponential growth in the collection and use of data. Moreover, data related to individual consumers can be extremely useful for retailers, producers, and other organizations. Such data allow these organizations to provide customized experiences, rewards, and benefits based on the individual consumer's needs, preferences and/or interests indicated by such data.
However, concerns around data protection and privacy, as well as difficulties and expenses related to storing such data, have also risen commensurately. In particular, many methods of storing and indexing data are arguably overbroad— that is, in many systems, substantial data that personally identifies someone is collected in order to keep track of a single user, regardless of the connection between that data and the intended use. As an example, some retail stores manage loyalty programs using customers' telephone numbers as a lookup value, meaning that the customer must provide their telephone numbers in order to accrue loyalty points. The store might never use the telephone number to place a call to the customer, and arguably has no need for the telephone number itself. Other organizations may use email addresses or other personally identifiable information for the same purpose.
Of course, a common alternative to such overly intrusive methods is to generate a unique key-code combination for each use (i.e., a unique username and password). But, as has also been well-studied, such username/password proliferation can pose its own set of problems for consumers, as multiple unique combinations are difficult to remember accurately. As a result, many consumers use insecure passwords (e.g., “Password1”), or use a single password for multiple accounts. Such approaches can result in significant security risks, especially when personally identifiable data, financial data, and/or other sensitive information are protected by such passwords.
Protecting consumer data is thus a complex and potentially very expense task for organizations that wish to benefit from data collection. For instance, in 2018, Forbes reported that the US companies on the Fortune 500 list had spent nearly $8 billion USD to comply with the European General Data Protection Regulation (GDPR). Moreover, many organizations, such as Google LLC, have recently blocked or have begun to block conventional data collection mechanisms such as third-party cookies. Further, centralized data storage tends to result in large processing loads and lengthy processing times, as substantial amounts of data must often be uploaded/downloaded. There are thus clear advantages to systems that provide the benefits of data collection to organizations without requiring the organizations to collect, manage, or secure that data.
Additionally, such systems would provide significant benefits to consumers by affording them greater control over, and awareness of, the data and personal information that they are sharing with an organization.
Accordingly, there is a need for systems and methods that provide consumer users with greater control over their own data, and with greater anonymity and security, while also allowing organizations to benefit from the existence of that data.
This document discloses a system and method for distributed management of consumer data. The system verifies anonymized credential objects that represent consumer experiences/interests/preferences/etc. Credential schema data outlining desired attributes of a specific credential is provided by an organization user and is written to a distributed ledger. In response to a request from a consumer user's computing device, a credential delivery device delivers available credential object(s) to that user's computing device. A credential verification device subsequently receives a verification request from the computing device and prompts the creation of a response value (related to the credential's desired attributes) on the consumer user's computing device. If the response value conforms to requirements derived from the credential schema data, a first result is prompted; otherwise, a second result is prompted. The response value can be a zero-knowledge-proof (ZKP): i.e., the response value contains no consumer data or credential schema data. Delivery and verification can be performed using Bluetooth (BT), Bluetooth Low Energy (BLE), near field communications (NFC), QR codes, and any other suitable method(s).
In a first aspect, this document discloses a system for distributed management of consumer data, the system comprising: a server for: receiving credential schema data from an organization user, said organization user being affiliated with an organization and said credential schema data comprising desired attributes of a specific credential, wherein said specific credential relates to said consumer data; writing said credential schema to a distributed ledger; receiving result data from said organization user, wherein said result data relate to at least a first result associated with said specific credential and a second result associated with said specific credential; and writing said result data to a database; and a credential delivery device for: delivering a credential object to a computing device used by a consumer user in response to a first request from said computing device, said credential object being associated with said specific credential; wherein said credential object is verified by a credential verification device, and wherein: said distributed ledger is accessed by said credential verification device such that said credential schema data is accessed by said credential verification device, wherein said credential verification device accesses said distributed ledger in response to a subsequent verification request from said computing device used by said consumer user; said computing device used by said consumer user generates a response value based on an assessment of said consumer data and said credential schema data, said response value being devoid of any data from said consumer data and credential schema data; said response value is passed to said credential verification device; and said response value is analyzed by said credential verification device to determine whether said response value conforms to at least part of said credential schema data, wherein, when said response value conforms to said at least part of said credential schema data, a first result is prompted by said credential verification device, and wherein, when said response value is non-conformant to said at least part of said credential schema data, a second result is prompted by said credential verification device.
In another embodiment, this document discloses a system wherein said response value is encrypted.
In another embodiment, this document discloses a system further comprising a design interface in communication with said server for enabling said organization user to create said credential schema data and said result data and for enabling said organization user to upload said credential schema data and said result data to said server.
In another embodiment, this document discloses a system wherein said design interface is customized to said organization.
In another embodiment, this document discloses a system wherein said server receives result data from said organization user, wherein said result data relate to at least said first result and said second result, and wherein said server is further for writing said result data to a database.
In another embodiment, this document discloses a system wherein at least one of said desired attributes relates to at least one of: a completion of a purchase by said consumer user; an indication of a preference by said consumer user; a completion of an experience by said consumer user; an indication of an interest by said consumer user.
In another embodiment, this document discloses a system wherein said credential delivery device prompts said consumer user to accept said credential object on said computing device.
In another embodiment, this document discloses a system further comprising a second interface for use on said computing device, wherein said second interface enables said consumer user to review and modify credential objects on said computing device.
In another embodiment, this document discloses a system wherein a modification of a credential object comprises at least one of: a deletion of said credential object from said computing device and a temporary disabling of said credential object.
In another embodiment, this document discloses a system wherein said first request, said delivery of said credential object, said subsequent verification request, and delivery of said first result and said second result are conducted using at least one of Near Field Communication (NFC), Bluetooth (BT), and Bluetooth Low Energy (BLE).
In another embodiment, this document discloses a system wherein multiple organizations direct credential delivery devices to deliver credential objects based on a single credential schema.
In another embodiment, this document discloses a system wherein said credential delivery device and said credential verification device comprise a single physical unit.
In another embodiment, this document discloses a system wherein said credential delivery device and said credential verification device are located in a retail store.
In another embodiment, this document discloses a system wherein said organization user shares said credential schema data with at least one other user.
In another embodiment, this document discloses a system wherein said system accesses multiple distributed ledgers.
In another embodiment, this document discloses a system wherein said response value is based on biometric data of said consumer user.
In another embodiment, this document discloses a system wherein said system comprises said credential verification device.
In a second aspect, this document discloses a method for distributed management of consumer data, said method comprising the steps of: receiving credential schema data and result data from an organization user, said organization user being affiliated with an organization, said credential schema data comprising attributes of a specific credential, and said result data relating to at least a first result associated with said specific credential and a second result associated with said specific credential; writing said credential schema data to a distributed ledger; writing said result data to a database; receiving, from a computing device used by a consumer user, a first request; and delivering a credential object to said computing device in response to said first request.
In another embodiment, this document discloses a method further comprising the steps of: receiving a subsequent verification request from said computing device; accessing said distributed ledger in response to said subsequent verification request to thereby access said credential schema data; prompting said computing device used by said consumer user to generate a response value based on said consumer data and said credential schema data; receiving said response value from said computing device used by said consumer user; and analyzing said response value to determine whether said desired attributes are satisfied by said consumer data, when said response value indicates that said desired attributes are satisfied by said consumer data, passing a first result to said computing device; and when said response value indicates that said desired attributes are unsatisfied by said consumer data, passing a second result to said computing device.
In another embodiment, this document discloses a method further comprising the steps of: receiving result data from said organization user, said result data relating to at least a first result and a second result, said first result and said second result being associated with said specific credential; and writing said result data to a database.
In another embodiment, this document discloses a method wherein at least one of said desired attributes relates to at least one of: a completion of a purchase by said consumer user; an indication of a preference by said consumer user; a completion of an experience by said consumer user; an indication of an interest by said consumer user.
In another embodiment, this document discloses a method further comprising the step of prompting said consumer user to accept said credential object on said computing device.
In another embodiment, this document discloses a method wherein said credential object on said computing device is reviewable and modifiable by said consumer user.
In another embodiment, this document discloses a method wherein a modification of said credential object includes at least one of: a deletion of said credential object from said computing device and a temporary disabling of said credential object.
In another embodiment, this document discloses a method wherein said response value is encrypted.
In another embodiment, this document discloses a method wherein said delivering is performed after a biometric authentication process is successful.
The present invention will now be described by reference to the following figures, in which identical reference numerals refer to identical elements and in which:
The present invention discloses a system and method for the distributed management of consumer data via “credential objects” stored on a consumer user's computing device. Credential objects are associated with credentials determined by an organization, which can be related to a previous purchase by the consumer user, to a previous experience of the consumer user, and/or to a previous interest or preference of the consumer user. The credential objects are delivered to the consumer user's device at the consumer user's request. “Credential schema data” outlining desired attributes of each specific credential (i.e., what must be satisfied when the credential is evaluated) are stored on a distributed ledger. The consumer user can then present the credential object for verification. A response value related to the consumer user's consumer data and to the credential schema data is then created on the consumer user's device and passed to the credential verification device. In a preferred embodiment, the response value contains no personally identifiable information or information that is extraneous to the requirements of the response value. Further, the consumer data itself does not leave the consumer user's device. The credential verification devices analyzes the response value to determine whether the response value conforms to at least a part of the credential schema data (i.e., whether the response value indicates that the desired attributes for the specific credential are satisfied and, thus, whether the credential is valid). A result based on that response value is then prompted—for instance, if the credential object relates to a previous purchase of a meal, the consumer user can be prompted to order that meal again.
Consumer data, as should be clear, is a very broad category of data encompassing any and all data related to an individual consumer user. This can include, without limitation, data related to the user's experiences, tasks, interests, preferences, activities, purchases and other transactions, relationships, and/or demographics. Further, consumer data can take any suitable form, including, without limitation, text data, numeric data, machine-readable data, sensor data from internal sensors on consumer devices (e.g., data from the accelerometer on a smart phone), audio data, visual data (e.g., images), audiovisual data (e.g., videos), and other multi-dimensional forms of data. As would be understood by the person skilled in the art, however, complex forms of data (e.g., videos) may be comparatively more difficult to use than simpler forms (e.g., text or alphanumeric strings). The organization user can determine, while designing the credentials and inputting credential schema data, what consumer data should be evaluated and how that data should be assessed.
The credential schema data, similarly, can comprise any suitable form of data. As will be discussed below, credential schema data can be directly input by the organization user as text data (including natural language, computer code, and/or other forms of text), or can be generated by the organization user using a graphical user interface (GUI) or other interface, or can be based at least in part on templates. Other input and uploading methods, as may be known to the person skilled in the art, should be understood as falling within the scope of this invention.
Referring now to
In some embodiments, other information related to the credential(s), such as (without limitation): results/outcomes when the credential is verified or not verified, and/or details of the devices that can deliver and/or verify the credential(s), are passed to the server 20 from the organization user's computing device 30 and stored in a database 80. Such information can be easily modified by the organization user and modifications propagated to all connected delivery/verification devices, as may be suitable for a specific implementation.
As would be clear, depending on the embodiment, the server 20 can have any suitable architecture. For instance, in one embodiment, the server 20 is a locally hosted server maintained by an organization issuing credentials. However, in a preferable embodiment, the server 20 is remote and/or distributed (e.g., ‘cloud-based’) and externally maintained.
A consumer user, using a computing device 50, then requests the delivery of a credential object. Specifically, the consumer user's computing device 50 passes a request to a credential delivery device 60. This request indicates what credential is being sought (if that is known in advance), or merely indicates that a credential is being sought. The credential delivery device 60 then delivers any available credential object to the computing device 50.
Subsequently, the consumer user presents their credential for verification. As an example, the consumer user might have previously collected a credential object that would entitle them to a discount on a current purchase, if they had a made a previous purchase. The consumer user thus directs their computing device 50 to pass a verification request to a credential verification device 70. In one embodiment, the request includes a list of all credential objects on the user computing device 50, while in other embodiments, the request merely indicates that one or more credentials is stored on the computing device 50.
In response to the request from the computing device 50, the credential verification device 70 accesses any relevant credential schema data on the distributed ledger 40 and prompts the computing device 50 to generate a ‘response value’/‘proof’ based on an assessment of that credential schema data and consumer data stored on the computing device 50. In a preferred embodiment, the response value is an encrypted data value that indicates whether the consumer data satisfies the desired attributes of the credential according to the credential schema data, but contains no unnecessary information. This may be termed a “zero-knowledge proof” (ZKP)—that is, no extraneous details about the consumer data are contained in the response value. In particular, the response value is devoid of any and all consumer data, and also of any credential schema data. Such ZKPs are highly anonymized and thus highly protective of user privacy. As an example, if a desired attribute of a certain credential is that the credential holder be over 18, the response value would not indicate the credential holder's actual age or birthdate, merely that they ‘are’ or ‘are not’ over 18. The response value can be represented by numerical and/or binary data, Boolean data, text data, or any other suitable kind of data.
As would be clear to the person skilled in the art, any suitable method for generating such a response value/proof may be used. The response value/proof can be created/evaluated by any mechanism capable of cryptographically proving that a consumer user owns/holds credentials that match desired criteria/desired attributes without transmitting the credential or actual value(s) for the desired attribute(s). In one embodiment, the well-known Hyperledger implementation of anonymous credentials is used to generate Camenisch-Lysyanskaya (CL) signatures based on a secret value shared between holder and issuer, and negotiated for each credential, as the means of proving credential ownership to third party verifiers. Of course, many other signature types are possible, and the person skilled in the art would understand how to adjust the invention to accommodate such different signature types. Additionally, as should be understood, in preferable embodiments of the invention, it is not necessary for the organization user to have a detailed understanding of the cryptographic mechanism used to generate/evaluate the proof/response value. Rather, preferable embodiments can provide, e.g., a node-based graphical user interface to enable the organization user to “draw” (i.e., visually map) the relationship between proofs and credentials, and/or include drop-down components or similar features that allow organization users to select from the set of available attributes for a given credential, and to then specify any conditions that should be tested. Other user-friendly embodiments can include wizard/survey style interfaces. However, of course, any suitable interface may be used in a given embodiment.
The response value is then passed from the user's computing device 50 to the credential verification device 70. The credential verification device 70 analyzes the response value against the credential schema data to determine whether the response value conforms to at least a part of the credential schema data (i.e., whether the proof is ‘true’ or ‘false’). If the response value conforms to the at least part of the credential schema data, then the proof is ‘true’ (meaning the desired attributes of the specific credential(s) were satisfied), and the credential is valid. If the response value is non-conformant with the at least part of the credential schema data, then the proof is ‘false’ (meaning the desired attributes of the specific credential(s) were unsatisfied), and the credential is invalid.
When the credential is valid, a first (positive) result associated with that credential object is prompted. On the other hand, when the credential is invalid, a second (negative) result associated with that credential object is prompted. The first and second results are determined by the organization user and stored in the database 80, as described above.
The database 80 can comprise any conventional database, such as a database based on SQL, mySQL, and/or other common database language(s), or can comprise a database based on a purpose-built/proprietary system. Positive results can be any desired outcome (e.g., updating a loyalty status, providing a discount, etc.). Negative results can include null results (i.e., doing nothing) or prompting the display of a message to the consumer user via the computing device 50 (e.g., a simple message such as “[Credential X] not found”, a motivational message such as “Almost there!”, or other messages). Other positive and negative results are, of course, possible, depending on the organization's configuration of the relevant credential schema. Additionally, in some embodiments, some organizations may wish to offer ‘multi-step credentials’ or credentials with multiple levels (e.g., a single credential to reward different tiers of a loyalty program). In such scenarios, intermediary results or results for the different levels may be created by the organization user.
Distributed ledgers such as the ledger 40 are well-known in the art and are consensus-based data structures that are replicated across multiple nodes in a network. The reliance on consensus means that, in a robust ledger system, retroactively modifying of ledger entries is extremely difficult. The credential schema data is thus effectively immutable so long as the distributed ledger 40 is maintained. Thus, the organization user will not be able to modify or remove a specific credential schema from the ledger 40. However, in preferable implementations, each credential schema data entry recorded on the ledger 40 is associated with a unique cryptographic key. Should the organization user need to modify that credential schema data, a new record with the same cryptographic key would be added further down the ledger and would over-ride the previous record.
It should of course be noted that, although the use of a distributed ledger is preferable, alternative storage mechanisms for the credential schema data may in some embodiments be used. For instance, in some embodiments, the credential schema data can be stored in a conventional database, such as a locally hosted, remote, or cloud-based database. As would be clear, any system or data structure for managing and/or storing data may be used in place of the distributed ledger, provided the system permits sufficient access to the credential schema data, as described herein.
The organization user is associated with an organization, which may be a for-profit, not-for-profit, non-profit, and/or any other organization for which the present invention is suitable. That is, the organization may be any organization that collects, processes, and/or stores consumer data, or that believes such data could be useful. Similarly, the organization user may be any representative of the organization, such as a CEO or other officer, an employee or contractor, or an associated agent (such as a marketing consultant). Typically, the organization user would be a marketing and/or advertising professional in some way associated with the organization. However, as should be clear, an organization can determine its own authorized representatives based on its own preferences and needs.
Computing device 30 may be any kind of computing device, including a desktop or laptop computer, a tablet, a smart phone, or other device suitable for communicating with the server 20. In some embodiments, the organization user may write the credential schema data in a programming language, using a text editor, integrated development environment (IDE) for that programming language, or any other tool. In other embodiments, a design interface is provided. The design interface allows the organization user to create credential schema, modify credential schema, and manage the delivery of credential objects according to the schema. In some implementations, the design interface can be fairly minimal and may require the organization user to do substantial programming/coding work, while in other implementations, the design interface can be substantially or fully graphical and may require little to no programming by the organization user.
Further, in a preferred embodiment, a single interface for designing credentials is used to upload the credential schema data, as well as result data (relating to the first and second results, and to any other desired results) and information regarding how the credential object is to be delivered (e.g., what kind of delivery device should be used). The credential schema data, the result data and the delivery information could all be entered in the single system/design interface and passed together to the server 20. The server 20 would then write the credential schema data to the distributed ledger 40 and write the result data and the delivery information to the database 80. The server 20 can then communicate with any/each credential delivery device 60, regarding the credentials that are available to that specific credential delivery device 60. Similarly, the server 20 can communicate with any/each credential verification device 70, regarding the appropriate result when a response value is evaluated.
For instance, a treadmill could be outfitted as a credential delivery device. The treadmill would directly deliver one or more available credential object(s) to a computing device 50 of the treadmill's user. As should be clear, a given credential delivery device 60 can be used to deliver many different credential objects in response to different requests from users. In the treadmill example, different credentials could represent different distances, times, and/or average speeds, or combinations of any such factors, as well as any other criteria that the organization chooses to recognize.
Further, the credential may relate solely to preferences, rather than to completed experiences, purchases, or tasks. As an example, a consumer might prefer an aisle seat on an airplane, rather than a window seat. In such a case, the credential's desired attributes would outline the following requirement: “Has the consumer user indicated a preference for an aisle seat?” If the consumer user has previously indicated such a preference, the verification device would determine that the consumer has a verified “aisle-seat preference” credential object. Clearly, where multiple potentially preferred alternatives exist, it can be beneficial for the organization to create credential schema data for each possible alternative (e.g., separate and mutually exclusive credentials could exist for “aisle-seat preference”, “window-seat preference”, and, where relevant, “middle-seat preference”). Further, credentials that account for ranked preferences may also exist (e.g., “aisle seat is preferable to window seat, but either is preferable to middle seat”). Additionally, in some embodiments, if the consumer has not indicated a preference for a specific alternative related to a preference-based credential, the credential delivery device 60 is configured to prompt the user to indicate their preference. The specific configuration of credentials, of course, can be determined by the organization and/or the organization user, based on their goals and specific circumstances.
It should thus be clear that the credential delivery device 60 can be any device configured to deliver a credential object. This can include, without limitation, point of sale devices, single-purpose credential delivery kiosks, and multi-purpose devices or devices for which credential delivery is not the primary purpose (e.g., the treadmill in the example above). Such devices can be retrofitted as credential delivery devices or can be initially designed and produced with credential delivery capabilities.
Further, the delivery of credential objects can occur using any suitable method and/or protocol. In some implementations, wired connections may be required. However, in a preferable implementation, the consumer user's computing device 50 is a portable computing device, such as a smart phone, that is configured for wireless communication using a wireless protocol such as Near Field Communication (NFC), Bluetooth (BT), and Bluetooth Low Energy (BLE), and the credential delivery device is also configured to use the same protocol. Such protocols are commonly used to securely transfer payments, etc., over short distances, and require physical contact, or physical proximity between the communicating devices (i.e., “tapping” the devices together). Accordingly, in implementations using a wireless protocol that requires tapping, the consumer user would simply tap their computing device 50 against the credential delivery device 60. With other protocols, physical proximity may be sufficient. Other methods of communication/other communication protocols can of course be used, such as radio frequency identification (RFID) communication methods, QR-code-based protocols and methods, HTTP-based protocols and methods (which may be triggered by the scanning of a QR code or other link), and other data transfer/data communications methods and protocols. Of course, the credential verification device(s) 70 can similarly use any of these methods and/or protocols to communicate with the computing device 50. Note that the credential delivery device 60 and the credential verification device 70 are not required to use the same communication methods/protocols.
The response value is generated on the user's computing device 50 based on consumer data stored on that device 50 and the desired attributes associated with the credential (obtained by the credential verification device 70 from the distributed ledger 40). For instance, if the credential relates to a previous purchase of a specific good, and the purchase was made using a mobile wallet on the computing device 50, the response value passed to the credential verification device 70 would be that such a purchase was made using that computing device 50. However, the response value passed to the credential verification device 70 in this instance would not need to include the identity of the purchaser, the date, time, or location of the purchase, the contact information for the purchaser, or any information about any other purchases made using the mobile wallet.
As mentioned above, “partial credentials” or “multi-step credentials” may be created by some organizations. Such partial credentials are, in some embodiments, designed as multi-level credentials but actually represented by multiple separate credential objects, each having different desired attributes. Referring back to the treadmill example, an organization may wish to reward different distances run (e.g., 1K, 5K, 10K, etc.). Rather than designing a credential for each increment, it may be more efficient for the organization user to create a multi-step credential. A multi-leveled/multi-step credential object could then be delivered to the consumer user's device 50, or multiple credential objects could then be created, depending on the implementation.
Credential objects can be stored in a ‘credential wallet’ on the consumer user's computing device 50. In one embodiment, a single-purpose application is used to store credential objects for multiple organizations. In other embodiments, the credential wallet is a plug-in or interface that can be added to a pre-existing application in order to integrate the distributed consumer data management system with other applications. This plug-in style interface may be preferred by organizations that already have established applications and/or mobile apps, and can allow customization based on the organization's existing branding, look-and-feel, etc. Exemplary credential wallet interface screens are shown in
Many different identity wallet applications are currently known and in use in the art. For example,
In one embodiment, the system 10 is configured to support multiple wallet applications using an extensible ledger connector approach. In this approach, wallet applications are mapped to their associated ledger through a common DID method string. This string is, in one embodiment, stored on the system's central ledger 40, while in other embodiments it is stored in other data storage modules, such as the database 80 or an external database. Users of wallet applications (i.e., the consumer users associated with devices 50) select their preferred wallet at the time of issuance and verification. Using the system 10, issuer and verifier organizations are thus able to support numerous wallet applications/ledgers.
As indicated by the grey boxes at the bottom of the schematic in
In some embodiments, the consumer user is able to review, modify, and control which credential objects are stored on their computing device 50. Modification of a credential object can include permanently deleting the credential object from the computing device 50 or temporarily disabling the credential object (i.e., ‘hiding’ the credential object so that credential verification devices 70 do not recognize its presence). Additionally, in some cases, it may be preferable to require the consumer user's explicit permission for delivery of a credential object. For instance, the consumer user can be asked to explicitly accept delivery of each new credential object added to their computing device 50. In other embodiments, the consumer user can change permission settings to always allow credential objects (i.e., without explicitly receiving permission for each separate credential), or to allow credential objects from one or more specific organizations without explicit permission.
In some embodiments, a credential verification device can only verify one specific credential. This may be useful in implementations where many people will be verifying similar information (e.g., verifying entry tickets at a large event). However, in other embodiments, it may be preferable for the credential verification device to be able to verify many different credentials. For instance, it may be desirable for a credential verification device installed in a retail store operated by an organization to be able to verify any and all credentials managed by that organization. In other embodiments, moreover, a credential verification device may be configured to verify any credential, regardless of the issuing organization of the credential. This could be useful in common areas of high-traffic locations (e.g., shopping malls or mass transit stations). Such configurations can be managed by the organization user in communication with the server 20.
Further, in some embodiments, more than one organization can use a single credential. That is, in some embodiments, the distributed ledger 40 is publicly visible and the requirements and results for any particular credential may be seen by external parties. Thus, if one organization sees a benefit to a credential developed by another organization, the first organization can use the associated credential schema for its own purposes. Of course, depending on the level of detail of the credential schema data, direct reuse may be impractical. Additionally, in some embodiments, organizations may prefer not to publicly reveal their credential schema or provide same for others' use. In such embodiments, all credential schema data can be encrypted by any suitable method before being written to the ledger, and only made visible to/decrypted for authorized users from the associated organization (or, of course, anyone providing the encryption key). Alternatively, specific entries on the ledger may be encrypted while other entries on the ledger are not.
In some embodiments, the system permits the credential-issuing organization to share credentials with other organizations. That is, rather than having to locate specific, individual credential schemas (which are currently difficult to locate) or create its own credential schemas, an organization receives credential schema data from another organization.
Further, in some embodiments, a search interface allows a verifying user to conduct text searches for credential schemas that have been shared with them or that are globally available. Such a search interface substantially reduces the time and difficulty of finding credentials for verifying desired attributes.
In one embodiment, further, the credential design interface includes or accesses an additional template database comprising credential schema templates. These can be developed by the organization user or by system administrators, and/or shared between different organization users. Such templates can relate to common actions/results (e.g., ‘receive a free coffee after 10 purchases’) and can accelerate the credential schema process, as they would require only minor customizations.
In some embodiments, the credential delivery device 60 and the credential verification device 70 are separate units. However, in other embodiments, the credential delivery device 60 and the credential verification device 70 are formed as a single unit, or a single hardware unit may be configured to perform either function in response to an appropriate request. For instance, a point-of-sale (POS) terminal may be configured to deliver credentials upon purchase of qualifying goods and to automatically apply a discount as the result of a verified credential.
In some embodiments, credential delivery devices and/or credential verification devices can be automatically configured to deliver and/or verify credentials. Further, all devices within a certain category of devices can be configured to operate in the same ways. That is, specific credentials would not have to be associated with each individual device through the design interface (which could easily become tedious and error-prone). Rather, credentials can be associated with categories of devices (e.g., with all point-of-sale devices operated by the organization). Such automatic configuration enables easier scaling of the distributed consumer data management system.
Preferably, each device generates an associated “Device ID” that is unique to that specific device and that is based on characteristics of the hardware, firmware, operating system, etc. of the device. The Device ID can then be matched with a suitable “device profile”—i.e., matched with a group of similar devices. As an example, if a new treadmill were to be added to the system, a Device ID for that treadmill would be generated that represented various characteristics and hardware/firmware specifications of the treadmill. The Device ID would be sent to the server 20 and compared to other Device IDs. Based on the results of that comparison, the device would be assigned a device profile as a ‘treadmill’. As would be clear to the person skilled in the art, the device profile can have any desired level of granularity. For instance, for some organizations, a single ‘treadmill’ category may be sufficient. However, another organization may wish to offer different credentials through treadmills at different locations. Accordingly, the categories for that organization could be of the form ‘treadmill at location A’, ‘treadmill at location B’, etc.
Turning now to
As discussed above, many kinds and formats of design interface are possible. Additionally, it may be desirable to customize the design interface to fit in with the branding and/or general style of the organization itself.
In some embodiments, the system also uses biometric verification (“bioauthentication”) methods. In these embodiments, a credential is configured to provide a biometric challenge at the time of issuance/verification (i.e., when presented to the user's device). In such embodiments, when a user seeks to obtain a credential (i.e., have a credential delivered to the device 50), part of the delivery process of that credential is a biometric check, such as a Face ID™ scan or other facial recognition scan, a fingerprint scan, a retinal scan, or any other suitable biometric check. Such a scan confirms that the active user of the device is the user associated with the device. In some embodiments, the verification device 70 may directly compare biometric information to verify the credentials. For example, some credentials have desired attributes that include biometric information (e.g., a driver's license photo may be compared with a Face ID™ scan). In such embodiments, the assessment of response values includes assessment of biometric information.
However, in other embodiments, the desired attributes do not include biometric information and no direct comparison is made. Rather, the user device 50 has previously saved bioauthentication information for its user and compares the result of the biometric challenge to that saved bioauthentication information. When the bioauthentication is successful, the device 50 informs the credential delivery device 60 that the bioauthentication was successful (i.e., the success result is accounted for in the response value sent to the credential delivery device 60).
Of course, in such embodiments, if the bioauthentication is unsuccessful, the response value accounts for an unsuccessful bioauthentication success result. That response value fails the verification process for delivering the credential object and a result associated with a failure is triggered.
As used herein, the phrase “at least one of [x] and [y]” is intended to mean and should be construed as meaning “[x], [y], or [x] and [y]”.
It should be clear that the various aspects of the present invention may be implemented as software modules in an overall software system. As such, the present invention may thus take the form of computer executable instructions that, when executed, implements various software modules with predefined functions.
Additionally, it should be clear that, unless otherwise specified, any references herein to ‘image’ or to ‘images’ refer to a digital image or to digital images, comprising pixels or picture cells. Likewise, any references to an ‘audio file’ or to ‘audio files’ refer to digital audio files, unless otherwise specified. ‘Video’, ‘video files’, ‘data objects’, ‘data files’ and all other such terms should be taken to mean digital files and/or data objects, unless otherwise specified.
The embodiments of the invention may be executed by a computer processor or similar device programmed in the manner of method steps, or may be executed by an electronic system which is provided with means for executing these steps. Similarly, an electronic memory means such as computer diskettes, CD-ROMs, Random Access Memory (RAM), Read Only Memory (ROM) or similar computer software storage media known in the art, may be programmed to execute such method steps. As well, electronic signals representing these method steps may also be transmitted via a communication network.
Embodiments of the invention may be implemented in any conventional computer programming language. For example, preferred embodiments may be implemented in a procedural programming language (e.g., “C” or “Go”) or an object-oriented language (e.g., “C++”, “java”, “PHP”, “PYTHON” or “C #”). Alternative embodiments of the invention may be implemented as pre-programmed hardware elements, other related components, or as a combination of hardware and software components.
Embodiments can be implemented as a computer program product for use with a computer system. Such implementations may include a series of computer instructions fixed either on a tangible medium, such as a computer readable medium (e.g., a diskette, CD-ROM, ROM, or fixed disk) or transmittable to a computer system, via a modem or other interface device, such as a communications adapter connected to a network over a medium. The medium may be either a tangible medium (e.g., optical or electrical communications lines) or a medium implemented with wireless techniques (e.g., microwave, infrared or other transmission techniques). The series of computer instructions embodies all or part of the functionality previously described herein. Those skilled in the art should appreciate that such computer instructions can be written in a number of programming languages for use with many computer architectures or operating systems. Furthermore, such instructions may be stored in any memory device, such as semiconductor, magnetic, optical or other memory devices, and may be transmitted using any communications technology, such as optical, infrared, microwave, or other transmission technologies. It is expected that such a computer program product may be distributed as a removable medium with accompanying printed or electronic documentation (e.g., shrink-wrapped software), preloaded with a computer system (e.g., on system ROM or fixed disk), or distributed from a server over a network (e.g., the Internet or World Wide Web). Of course, some embodiments of the invention may be implemented as a combination of both software (e.g., a computer program product) and hardware. Still other embodiments of the invention may be implemented as entirely hardware, or entirely software (e.g., a computer program product).
A person understanding this invention may now conceive of alternative structures and embodiments or variations of the above all of which are intended to fall within the scope of the invention as defined in the claims that follow.
This application claims the benefit of U.S. Provisional Application No. 63/141,747 filed on Jan. 26, 2021, which is hereby incorporated herein by reference in its entirety.
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/CA2022/050099 | 1/25/2022 | WO |
Number | Date | Country | |
---|---|---|---|
63141747 | Jan 2021 | US |