Copies of a distributed ledger with multiple blocks are stored on multiple computing devices. A first computing device coming into proximity with a particular object triggers generation of a new block to the distributed ledger, the new block identifying a characteristic of the object and including a hash of a previous block of the distributed ledger. The new block is optionally verified before it is appended onto the distributed ledger and transmitted out to each of the multiple computing devices so that each copy of the distributed ledger includes the new block.
Legal claims defining the scope of protection, as filed with the USPTO.
storing a distributed ledger that includes a plurality of blocks; receiving information associated with an asset; verifying an authenticity of the asset based on one or more of the plurality of blocks of the distributed ledger that identify the asset; causing a new block to be generated automatically in response to receiving the information and verifying the authenticity of the asset, wherein the new block includes a payload indicative of the asset, wherein the new block also includes a new block header that includes a hash of at least a portion of a most recent block of the distributed ledger; and causing the new block to be appended to the plurality of blocks of the distributed ledger. . A method of ledger-based asset management, the method comprising:
claim 1 . The method of, wherein the asset is a virtual asset.
claim 1 . The method of, wherein the asset is associated with a video game.
claim 1 . The method of, wherein the asset is associated with at least one of a transaction involving a cryptocurrency, a transaction involving a fiat currency, a transaction of value, a purchase, a reward, a manufacturing process, a modification process, a distribution process, a security process, a user, an account, a customer, a seller, an event at a location, sensor data captured using a sensor, a robotic device, an actuator, a vehicle, a pump, a chemical assay, information stored in a data structure, a data field, a website, a stock keeping unit (SKU), a barcode, a quick response (QR) code, a near field communication (NFC) tag, a radio-frequency identification (RFID) tag, a beacon, a Bluetooth® device, a wearable device, a key, a wireless signal transceiver device, a package, a cellular data network, a local area network (LAN), a wireless LAN (WLAN), an e-book, a video, an audio dataset, a media asset, a card, or a card reader.
claim 1 . The method of, wherein the asset is associated with at least one image.
claim 1 . The method of, wherein the payload of the new block indicates a transfer of access to the asset.
claim 1 . The method of, wherein the payload of the new block indicates a transfer of ownership associated with the asset.
claim 1 . The method of, wherein the asset is associated with an object, wherein the payload of the new block indicates a transfer of ownership associated with the object.
claim 1 . The method of, wherein the payload of the new block indicates a change in a relationship between a user account and the asset.
claim 1 . The method of, wherein the payload of the new block indicates a change in an accessibility of the asset by a device.
claim 1 . The method of, wherein the payload of the new block indicates a change in storage of the asset from a first storage location to a second storage location.
claim 1 . The method of, wherein causing the new block to be generated includes generating the new block.
claim 1 . The method of, wherein causing the new block to be generated includes requesting that a computing device generate the new block and receiving the new block from the computing device.
claim 1 . The method of, wherein causing the new block to be appended to the plurality of blocks of the distributed ledger includes appending the new block to the plurality of blocks of the distributed ledger.
claim 1 . The method of, wherein causing the new block to be appended to the plurality of blocks of the distributed ledger includes requesting that a computing device append the new block to the plurality of blocks of the distributed ledger.
claim 1 . The method of, wherein verifying the authenticity of the asset includes verifying that the asset is unchanged from a first time to a second time based on the distributed ledger to verify the authenticity of the asset.
claim 1 . The method of, wherein verifying the authenticity of the asset includes verifying that one or more changes associated with the asset do not include a change of a specified type.
at least one memory storing instructions; and store a distributed ledger that includes a plurality of blocks; receive information associated with an asset; verify an authenticity of the asset based on one or more of the plurality of blocks of the distributed ledger that identify the asset; cause a new block to be generated automatically in response to receiving the information and verifying the authenticity of the asset, wherein the new block includes a payload indicative of the asset, wherein the new block also includes a new block header that includes a hash of at least a portion of a most recent block of the distributed ledger; and cause the new block to be appended to the plurality of blocks of the distributed ledger. at least one processor coupled to the at least one memory, wherein execution of the instructions by the at least one processor causes the at least one processor to: . A system for ledger-based asset management, the system comprising:
claim 18 . The system of, wherein the asset is associated with a video game.
claim 18 . The system of, wherein the asset is associated with at least one of a transaction involving a cryptocurrency, a transaction involving a fiat currency, a transaction of value, a purchase, a reward, a manufacturing process, a modification process, a distribution process, a security process, a user, an account, a customer, a seller, an event at a location, sensor data captured using a sensor, a robotic device, an actuator, a vehicle, a pump, a chemical assay, information stored in a data structure, a data field, a website, a stock keeping unit (SKU), a barcode, a quick response (QR) code, a near field communication (NFC) tag, a radio-frequency identification (RFID) tag, a beacon, a Bluetooth® device, a wearable device, a key, a wireless signal transceiver device, a package, a cellular data network, a local area network (LAN), a wireless LAN (WLAN), an e-book, a video, an audio dataset, a media asset, a card, or a card reader.
storing a distributed ledger that includes a plurality of blocks; receiving information associated with an asset; verifying an authenticity of the asset based on one or more of the plurality of blocks of the distributed ledger that identify the asset; causing a new block to be generated automatically in response to receiving the information and verifying the authenticity of the asset, wherein the new block includes a payload indicative of the asset, wherein the new block also includes a new block header that includes a hash of at least a portion of a most recent block of the distributed ledger; and causing the new block to be appended to the plurality of blocks of the distributed ledger. . A non-transitory computer readable storage medium having embodied thereon a program, wherein the program is executable by a processor to perform a method of ledger-based asset management, the method comprising:
Complete technical specification and implementation details from the patent document.
The present application is a continuation and claims the priority benefit of U.S. patent application Ser. No. 18/212,860 filed Jun. 22, 2023, now U.S. Pat. No. 12,001,906, which is a continuation and claims the priority benefit of U.S. patent application Ser. No. 17/884,309 filed Aug. 9, 2022, now U.S. Pat. No. 11,727,227, which is a continuation and claims the priority benefit of U.S. patent application Ser. No. 17/171,665 filed Feb. 9, 2021, now U.S. Pat. No. 11,409,974, which is a continuation and claims the priority benefit of U.S. patent application Ser. No. 16/736,746 filed Jan. 7, 2020, now U.S. Pat. No. 10,915,716, which is a continuation and claims the priority benefit of Ser. No. 16/115,339 filed Aug. 28, 2018, now U.S. Pat. No. 10,528,776, the disclosures of which are incorporated herein by reference.
The present invention generally relates to transaction and product management. More specifically, the present invention relates to tracking and authentication of products and product transactions via distributed ledgers and NFC tags.
Modern commerce provides many avenues for customers to purchase products. Products traditionally purchased by customers at brick-and-mortar stores can now be purchased over the internet from online retailers or large online commerce platforms. In some cases, customers are able purchase products directly from high-level distributors or even directly from manufacturers, which can provide cost savings for customers by cutting out “middleman” entities.
Along with these benefits to customers also come growing risks. The expansion of legitimate commerce brought about by the internet has also increased illegitimate commerce, such as an increased risk to customers of unknowingly buying counterfeit goods. Customers purchasing from online sources often cannot see, touch, or otherwise try the actual product they will receive until it is finally delivered, potentially a long time after the purchase. A customer who receives a product that is broken, non-functional, ill-fitted, counterfeit, or simply not what the customer expected can have a difficult time returning the product, getting a refund, or getting a replacement. Customers typically also have no way to know for sure that their product is genuine.
Digital currencies (or “cryptocurrencies”) such as Bitcoin are based on a distributed peer-to-peer network of devices maintaining a distributed ledgers, such as blockchain ledgers, of all transactions made using the digital currency. Distributed blockchain ledgers offer improved security between parties compared to traditional centralized systems in that blockchain ledgers are safe from outages due to their distributed nature and are nearly immutable. So far, use of blockchain ledger technologies have largely remained confined to use with digital currencies such as Bitcoin.
Near-field communication (NFC) is a short-range wireless communication technology enabling one-way or two-way wireless communications between two electronic devices. Often, one or both of these electronic devices is a portable computing device, such as a smartphone. NFC “tags” are passive data stores which can be read, and under some circumstances written to, by an NFC device. NFC tags typically do not require a battery—the wireless signals that the NFC tag receives from an “active” powered NFC device such as a smartphone generally supply enough power to the NFC tag to allow the NFC tag to emit a detectable response to the active NFC device, the response generally conveying data that is stored on the NFC tag.
Accordingly, a more secure, reliable, and distributed technology for tracking and authentication of products and product transactions is needed.
A method of tracking of an object via a distributed architecture that includes a plurality of computing devices is described. The method includes storing a blockchain ledger comprising a plurality of blocks, wherein each of the plurality of computing devices also stores a copy of the blockchain ledger. The method also includes receiving, from a first computing device, an indication of proximity between the first computing device and the object, wherein the indication of proximity also identifies the object. The method also includes generating a hash of a most recent block of the blockchain ledger and generating a new block header for a new block, wherein the new block header comprises at least the hash of the most recent block of the blockchain ledger. The method also includes generating the new block, wherein the new block comprises at least the new block header and one or more transactions corresponding to one or more changes to a characteristic of the object. The method also includes appending the new block to the plurality of blocks of the blockchain ledger and transmitting the new block to the plurality of computing devices that each store the blockchain ledger, causing each of the plurality of computing devices to also append the new block to their respective copy of the blockchain ledger, thereby recording the one or more transactions in the blockchain ledger.
A system for tracking of an object via a distributed architecture that includes a plurality of computing devices is described. The system includes a non-transitory computer-readable storage medium that stores a blockchain ledger including a plurality of blocks, wherein each of the plurality of computing devices also stores a copy of the blockchain ledger. The system also includes a network communication transceiver that receives an indication of proximity between a first computing device and the object and that transmits a new block to the plurality of computing devices, wherein the indication of proximity between the first computing device and the object identifies the object. The system also includes one or more processors executing instructions that are stored in a memory, wherein execution of the instructions via the one or more processors causes the one or more processors to perform system operations. The system operations include generating a hash of a most recent block of the blockchain ledger and generating a new block header for the new block, wherein the new block header comprises at least the hash of the most recent block of the blockchain ledger. The system operations also include generating the new block, wherein the new block comprises at least the new block header and one or more transactions corresponding to one or more changes to a characteristic of the object. The system operations also include appending the new block to the plurality of blocks of the blockchain ledger.
A method of tracking of an object via a distributed architecture that includes a plurality of computing devices is described. The method includes storing a blockchain ledger comprising a plurality of blocks, wherein each of the plurality of computing devices also stores a copy of the blockchain ledger. The method also includes receiving, at a first computing device, an indication of proximity between the first computing device and the object, wherein the indication of proximity between the first computing device and the object also identifies the object. The method also includes transmitting a request to add a new block to the blockchain ledger to at least one of the plurality of computing devices, the new block including one or more transactions corresponding to one or more changes to a characteristic of the object. The method also includes receiving the new block and appending the new block to the plurality of blocks of the blockchain ledger.
Copies of a distributed ledger with multiple blocks are stored on multiple computing devices. A first computing device coming into proximity with a particular object triggers generation of a new block to the distributed ledger, the new block identifying a characteristic of the object and including a hash of a previous block of the distributed ledger. The new block is optionally verified before it is appended onto the distributed ledger and transmitted out to each of the multiple computing devices so that each copy of the distributed ledger includes the new block. Proximity is optionally determined based on successful conveyance of short-range wireless communications between the first computing device and a Near Field Communication (NFC) tag coupled to the object.
1 FIG.A illustrates retrieval of an ownership history of a product as accessed from a distributed ledger using an NFC tag associated with the product.
105 110 110 110 105 1 FIG.A In particular, a productA—which inappears as an automobile vehicleA—includes an NFC tagA. The NFC tagA may be, for example, embedded in a portion of the vehicleA, such as along the dashboard, or on an exterior or interior surface of a door.
120 800 110 115 120 110 110 120 115 110 120 120 110 110 120 130 130 The user deviceA, which in most cases is a computing device, communicates with the NFC tagA via one or more short-range wireless signalsA. The user deviceA may provide electrical power wirelessly to the NFC tagA, in response to which the NFC tagA conveys data/information to the user deviceA via NFC signalsA. For example, the NFC tagA can provide the user deviceA with a code that the user deviceA would otherwise not know. The code may be a unique identifier corresponding to that particular NFC tagA. The NFC tagA can alternately or additionally provide the user deviceA with an address or other information identifying or pointing to a particular distributed ledgerA in a way that makes the particular distributed ledgerA accessible.
105 110 130 120 130 110 130 125 800 105 120 115 130 130 105 105 105 1994 2001 105 2001 2009 105 2009 2018 110 130 1 FIG.A 1 FIG.A While the code may store information about characteristics of the object, memory of NFC tags may sometimes be hardcoded and immutable or difficult to change. Thus, information that may change over time, such as ownership of the vehicleA, is better stored externally from the NFC tagA, such as via the distributed ledgerA. The user deviceA can use the address or identifier identifying the distributed ledgerA provided by the NFC tagA to access the distributed ledgerA, copies of which are stored at each device of a distributed architectureA having multiple computing devices. As illustrated in, the information identifying the productA as a “X200 Luxury Sedan” is conveyed to the user deviceA either encoded directly in the wireless signalsA, in the distributed ledgerA, or both. The distributed ledgerA stores information keeping track of the ownership history of the vehicleA. The ownership history illustrated inidentifies that the vehicleA was owned by Avery (who paid $3400 for the vehicleA) fromto, was owned by Bob (who paid $2900 for the vehicleA) fromto, and was owned by Chuck (who paid $1800 for the vehicleA) fromto. The user deviceA reads and parses this ownership history from the distributed ledger(s)A, then displays this ownership history.
110 9 18 FIGS.- The code may also include one or more resources pointing to one or more websites and/or databases associated with one or more providers such as one or more of a retailer (online or brick-and-mortar), a manufacturer, a distributor, a shipping provider, any other type of provider discussed herein, or some combination thereof. In some cases, information in the code may be encrypted using a public key or a private key of a keypair that includes a public key and a private key, where the other key of the keypair is in the possession of at least one of the one or more providers discussed above. The code conveyed by the NFC tagmay in some cases include such a public key or private key. These processes are discussed further with respect to.
800 800 125 The distributed ledger may be a public distributed ledger or a private distributed ledger, sometimes referred to as a “permissioned” distributed ledger. Public distributed ledgers provide the benefit of unbiased verification by anyone with access to the ledger (and in general by a greater population), but have the risk of making public data that should remain secret or otherwise not be public. Private or privileged distributed ledgers reduce the risk of making public data that should remain secret or otherwise not be public, as they are only accessible to computers through one or more “gateway” servers (which are computing devices) controlling access to the distributed ledger by requiring that computing devicesrequesting access to the distributed ledger be authenticated (e.g. via a signature encrypted with a user's private key that is verified by a certificate authority with the corresponding public key) as having permission to access it. Private or privileged distributed ledgers can thus limit access to certain data (e.g., from competitors or malicious parties), but reduce the pool of verifying machines and thereby increase the risk of bias in blockchain verification procedures, and also introduce “trusted” middleman parties or servers such as the certificate authority that reduce the degree of decentralization introduce potential points of failure. To get the best of both worlds, there may effectively be a public “portion” and a private “portion” of a distributed ledger, which may actually in execution be a separate public distributed ledger and a separate private/permissioned distributed ledger. In a private or privileged distributed ledger, authentication by the gateway server and via the signature/certificate authority may be required to acquire permission to read or access one or more blocks of the distributed ledger, to acquire permission to request a transaction be added to the ledger, to acquire permission to request a new block be added to the ledger, to acquire permission to verify a transaction or a new block, to acquire permission to finalize the appending of a new block (and transmit the new block and/or updated ledger to the distributed architecture), or some combination thereof. Whether a distributed ledger as used herein is public or private, storage of data in the distributed ledger provides protection from outages or data corruption in that data associated with a particular provider is stored on additional devices, and diversifies how important data within the provider's organization is stored.
1 FIG.E 1 FIG.C 1 FIG.D 1 FIG.A 1 FIG.G 1 FIG.B 1 FIG.F 1 FIG.G 800 130 As an example, one or more providers discussed above may wish to keep certain data a trade secret, such as information about which products are related to each other (in other words, are “upsell” products with relation to each other) as in, or a manufacturing schedule as in, or a distribution pipeline as in. Similar data may also be kept private to address consumer privacy concerns, such as the ownership data ofor location data of(if it were to track location of the object even after it is purchased by the consumer) or shipping history of(particularly if consumer addresses are stored). Such data would best be placed in a private/permissioned distributed ledger accessible only to computing devicesassociated with one or more of the providers discussed above. Less sensitive data, such as usage history of a baseball as in, or location history only in aisles of a store/warehouse as in, may be in a public distributed ledger. It should be understood that the examples provided herein are not to be construed as limiting, and that any of the data described herein as potentially being stored in a distributed ledgermay be stored in a public distributed ledger or a private/permissioned distributed ledger.
120 130 105 120 120 120 120 110 115 The user deviceA may add a new block corresponding to a new ownership record to the distributed ledgerA, for example when Chuck sells the vehicleA to a new user, Dave. The user deviceA may have a public/private key pair, including a private key and a public key, that corresponds to that user deviceA in particular and/or to a particular user or individual that uses the user deviceA (in this example, this could be either transferor “Chuck” or transferee “Dave”). The user deviceA may encrypt the code received from the NFC tagA via the wireless signalsA using the private key.
120 800 125 800 125 130 105 105 The user deviceA can then send this encrypted code to the computing devicesof the distributed architectureA, which may then verify, using the public key, that the code was encrypted using the corresponding private key, and that this public/private keypair corresponds to an user and/or device that is appropriate to be requesting a transaction between the transferor and the transferee—for instance, by verifying that the public/private keypair corresponds to the transferor or to the transferee. Since the private key is inaccessible to anyone other than these users, nobody can pretend to be them. Each user's public key, on the other hand, is made available to each of the computing devicesof the distributed architectureA for this verification process, for example via one or more centralized certificate authority (CA) server(s) or a distributed certificate authority (CA) ledger stored on another distributed ledger. Verification can also entail checking to make sure that the objectA that the transferor (“Chuck”) is attempting to transfer to the transferee (“Dave”) is actually possessed by the transferor at the moment the transaction was attempted, and that no concurrent conflicting transaction was also pending, such as transferor “Chuck” simultaneously attempting to transfer the vehicleA to another transferee “Edward.”
130 120 130 120 130 4 FIG.A It should be understood that each of the transactions of the distributed ledgerA were added in this way. That is, a user devicecorresponding to Avery or Bob inserted the transaction from Avery to Bob into the distributed ledgerA, and a user devicecorresponding to Bob or Chuck inserted the transaction from Bob to Chuck into the distributed ledgerA. Such transactions are illustrated in.
105 105 105 110 105 105 110 105 120 110 110 120 105 130 120 110 110 1 FIG.A In the case where the productis a vehicleA as in, or where the productis another structure with doors like a building (not pictured), the NFC tagA may be reachable from the exterior of the productand may be electrically connected to circuitry of the productin a way that makes it necessary to interact with the NFC tagA for a new user to open doors the product, and can even in some cases make it necessary for a user deviceA to provide confirmation to the NFC tagA (especially when the NFC tagA is an active NFC device) that it is the user deviceA of the current owner of the productas identified in the distributed ledgerA. This can be done by the user deviceA encrypting data, such as the code from the NFC tagA, using its private key, and sending the encrypted data to the NFC tagA to decrypt using the public key to confirm identity.
130 1 1 FIGS.A-G 3 FIG. The distributed ledger(s)illustrated inare illustrated as blockchain ledgers with multiple blocks that each have a header and list one or more transactions as discussed further in.
120 800 120 800 800 1 1 FIG.A-G 8 FIG. The user devicediscussed inis illustrated as a computing devicethat is that is mobile, portable, battery-powered, handheld, or a combination thereof. The user deviceneed not be a computing device, but can still include one or more of the components of the computing devicediscussed with respect to.
110 120 800 800 1 1 FIG.A-G 8 FIG. The NFC tagsdiscussed inmay be passive NFC tags that rely on receiving power wirelessly from short-range wireless signals sent by the user deviceor may alternately be active NFC devices that are powered by one or more electrically connected power sources such as batteries. Such active NFC devices may be computing devicesor may include one or more of the components of the computing devicediscussed with respect to.
110 115 860 850 115 110 115 120 120 115 110 115 110 115 120 120 115 110 110 120 110 1 1 FIG.A-G 8 FIG. While elementsandofare referred to as an “NFC tag” and “NFC signal(s),” these elements can alternately or additionally use a variety of other short-range wireless transceivers and short-range wireless signals, respectively. This can include any combination of wireless transceiver(s), signal(s), and/or protocol(s) discussed with respect to the input devicesand/or output devicesof. The short-range wireless signalscan in some cases represent unidirectional communication/transmissions—i.e., the short-range wireless transceiversending information and/or power via short-range wireless signal(s)to the user device, or the user devicesending information and/or power via short-range wireless signal(s)to the short-range wireless transceiver. The short-range wireless signalscan alternately be bidirectional communication/transmissions—i.e., the short-range wireless transceiversending information and/or power via short-range wireless signal(s)to the user device, and the user devicesending information and/or power via short-range wireless signal(s)to the short-range wireless transceiver. The “NFC tag” may also be replaced or supplemented with an optical glyph, such as a barcode or a quick response (QR) code, which may be scanned optically via one or more camera(s) of the user device. This optical glyph may encode any of the information discussed with respect to the NFC tag.
1 FIG.B illustrates retrieval of a shipping history of a product as accessed from a distributed ledger using an NFC tag associated with the product.
105 105 105 1 FIG.B The productB illustrated inis an object shipped and delivered to a user, for example in a package that at least partially covers the productor object itself. For example, the productB may be a product ordered by a user from an online retailer and shipped to the user.
110 105 105 105 105 110 105 130 120 105 1 FIG.B 1 FIG.A The NFC tagB ofmay be coupled to the package covering the productB or to the productB itself that is at least partially within or inside the package. Like the doors of the vehicle productA of, the package of the productB may require interaction with the NFC tagB and/or verification of the productB having been delivered according to the distributed ledgerB and/or verification of identity of the user deviceB and/or its associated user via public/private keypair in order to open the package to remove and/or use the productB that is at least partially within the package.
110 105 110 115 110 130 130 110 1 FIG.B 1 FIG.B 1 FIG.B 1 FIG.B 1 FIG.B The user deviceB ofdisplays an identification of the productB ofas a “package delivery” which may be conveyed to the user deviceB via NFC signalsB from the NFC tagB, via the distributed ledger(s)B of, or both. The distributed ledger(s)B ofstores, and the user deviceB ofreads, parses, and displays, that the package delivery was purchased on May 21, 2018, that the package delivery was shipped on Jul. 14, 2017, and that the package delivery was confirmed delivered on Jul. 31, 2018.
120 130 105 120 120 110 115 120 105 130 120 105 130 120 130 4 FIG.A To provide these shipping milestones, different user devicesB add transactions to the distributed ledger(s)B, transitioning an item corresponding to the productB from a state “PURCHASED” to a state “SHIPPED,” and from a state “SHIPPED” to a state “DELIVERED,” in a manner similar to that of. These different user devicesB are user devicesB that have scanned the NFC tagB and are verified as appropriate devices based on public-private keypair encryption of the NFC code from the NFC signal(s)B as discussed above. For example, a user deviceB associated with the online retailer from which the productB was purchased can add the “purchased” indication into the distributed ledger, a user deviceB associated with shipping of the package containing the productB can add the “shipped” indication into the distributed ledger, and a user deviceB associated with either delivery personnel or a customer/recipient of the packages can add the “delivered” indication into the distributed ledger.
1 FIG.C illustrates retrieval of a manufacturing history of a product as accessed from a distributed ledger using an NFC tag associated with the product.
105 110 105 105 110 120 115 130 120 130 1 FIG.C 1 FIG.A 1 FIG.B The productC illustrated inis a diamond ring, manufacture of which requires a number of steps. As withand, above, the NFC tagC may be coupled to the ringC itself or to packaging, such as a ring box. The identity of the productC as a diamond ring may be stored in the NFC tagC and conveyed to the user deviceC via the wireless signalsC, or may be stored in the distributed ledger(s)C and read by the user deviceC upon its retrieval, storage, and parsing of a copy of the distributed ledger(s)C.
130 110 105 105 105 105 105 105 105 120 125 130 800 1 FIG.C 1 FIG.C 4 FIG.A The distributed ledger(s)C ofstore(s), and the user deviceC ofreads, parses, and displays, that the diamond for the diamond ring productC was selected on May 3, 2018; that a mold was made for the diamond ring productC on May 7, 2018; that a wax cast was made for the diamond ring productC on May 12, 2018; that a plaster form was made for the diamond ring productC on May 15, 2018; that metal was poured into the plaster form for the diamond ring productC on May 17, 2018; that the diamond ring productC was polished on May 27, 2018; and that the diamond ring productC was finished on Jun. 4, 2018. Different user devicesC of the distributed architectureC may add transactions corresponding to these different manufacturing milestones to the distributed ledger(s)C as illustrated in. Each of these devices may be computing devicesthat are associated with one or more of the stages of manufacturing (e.g., diamond selection, molding, wax casting, plaster forms, metal pouring, polishing, finishing) in a manner that is verifiable via public-private keypair as discussed above.
1 FIG.D illustrates retrieval of a distribution history of a product as accessed from a distributed ledger using an NFC tag associated with the product.
105 110 105 105 105 110 120 115 130 120 130 1 FIG.D 1 FIG.A The productD illustrated inis a video game console, distribution of which has a number of stops. As with-IC above, the NFC tagD may be coupled to the video game consoleD itself or to packaging, such as a box, that at least partially contains the video game consoleD. The identity of the productD as a video game console may be stored in the NFC tagD and conveyed to the user deviceD via the wireless signalsD, or may be stored in the distributed ledger(s)D and read by the user deviceD upon its retrieval, storage, and parsing of a copy of the distributed ledger(s)D.
130 110 105 105 105 105 105 105 105 1 FIG.D 1 FIG.D 1 FIG.D The distributed ledger(s)D ofstore(s), and the user deviceD ofreads, parses, and displays, that the video game consoleD was at or near the Tokyo International Airport (HND) in Japan on Aug. 3, 2018; that the video game consoleD was at or near the Ted Stevens Anchorage International Airport (ANC) in the United States on Aug. 4, 2018; that the video game consoleD was at or near the San Francisco International Airport (SFO) in the United States on Aug. 5, 2018; that the video game consoleD was at or near the Denver International Airport (DEN) in the United States on Aug. 6, 2018; that the video game consoleD was at or near the Lambert St. Louis International Airport (STL) in the United States on Aug. 7, 2018; that the video game consoleD was at or near the Philadelphia International Airport (PHL) in the United States on Aug. 8, 2018; and that the video game consoleD was at or near the John F. Kennedy International Airport (JFK) in New York in the United States on Aug. 9, 2018. While the codes illustrated intraditionally represent airports, these can also be understood to represent nearby distribution warehouses, retail stores, waterway ports, truck depots, train depots, and other stops corresponding to various avenues and types of distribution.
120 125 130 800 4 FIG.A Different user devicesD of the distributed architectureD may add transactions corresponding to these different distribution milestones to the distributed ledger(s)D in the manner illustrated in. Each of these devices may be computing devicesthat are associated with one or more of the locations/stops along the distribution route (e.g., HND, ANC, SFO, DEN, STL, PHL, JFK) in a manner that is verifiable via public-private keypair as discussed above.
1 FIG.E illustrates retrieval of a user's purchase history of products related to a particular product accessed from a distributed ledger using an NFC tag associated with the particular product.
105 110 105 105 105 110 120 115 130 120 130 1 FIG.E 1 1 FIG.A-D The productE illustrated inis an inkjet printer, which has a number of related products such as paper and ink in colors such as black, yellow, cyan, magenta. As withabove, the NFC tagE may be coupled to the printerE itself or to packaging, such as a box, that at least partially contains the printerE. The identity of the productE as a printer may be stored in the NFC tagE and conveyed to the user deviceE via the wireless signalsE, or may be stored in the distributed ledger(s)E and read by the user deviceE upon its retrieval, storage, and parsing of a copy of the distributed ledger(s)E.
130 110 105 120 125 130 800 105 110 105 110 105 1 FIG.E 1 FIG.E 4 FIG.B The distributed ledger(s)E ofstore(s), and the user deviceE ofreads, parses, and displays, that the printerE itself was purchased on Dec. 25, 2017; that related product magenta ink was purchased on Dec. 30, 2017; that related product yellow ink was purchased on Mar. 9, 2018; that related product cyan ink was purchased on May 18, 2018; that related product paper was purchased on Jul. 1, 2018; and that related product black ink was purchased on Jul. 28, 2018. Different user devicesE of the distributed architectureE may add transactions corresponding to these different distribution milestones to the distributed ledger(s)E in the manner illustrated in. Each of these devices may be computing devicesthat are associated with purchase of the printerE itself or one of the related products, such as a user deviceE of the customer buying the printerE itself or one of the related products, or a user deviceE of a retail employee or online retailer server selling the printerE itself or one of the related products, in a manner that is verifiable via public-private keypair as discussed above.
130 105 1 FIG.E 1 FIG.E In some cases, the distributed ledger(s)E ofstore(s) data identifying one or more retail employees that were able to sell one or more related products in a particular sales transaction and/or one or more consumers who purchased one or more related products in a particular purchase transaction. Such sales and purchase transactions may also be monitored to automatically identify new related products. For instance, using the printer example of, a new type of photo paper may come in stock, and may be identified as an “upsell” product related to the inkjet printer due to a number of purchases by the same customer, either in the same sales/purchase transaction or over time—and/or by the same retail employee, for example if the retail employee specializes in printers and related products. In another example, if the productE were a shoe, then related products could include shoelaces, shoehorns, shoe polish, leather conditioner, leather care oil, suede waterproofing fluid, shoe trees, shoe polish, shoe shine, shoe brushes, shoe shine cloth, and the like.
1 FIG.F illustrates retrieval of a usage history of a product as accessed from a distributed ledger using an NFC tag associated with the product.
105 110 105 105 105 110 120 115 130 120 130 1 FIG.F 1 1 FIG.A-E The productF illustrated inis an autographed baseball, which has a usage history in various games. As withabove, the NFC tagF may be coupled to the autographed baseballF itself or to packaging, such as a box, that at least partially contains the autographed baseballF. The identity of the productF as an autographed baseball may be stored in the NFC tagF and conveyed to the user deviceF via the wireless signalsF, or may be stored in the distributed ledger(s)F and read by the user deviceF upon its retrieval, storage, and parsing of a copy of the distributed ledger(s)F.
130 110 105 105 105 105 105 1 FIG.F 1 FIG.F The distributed ledger(s)F ofstore(s), and the user deviceF ofreads, parses, and displays, that the autographed baseballF was used in a strike by Player_A on Mar. 9, 2018; that the autographed baseballF was used in a foul by Player_A on Mar. 9, 2018; that the autographed baseballF was used in a first base hit by Player_B on May 30, 2018; that the autographed baseballF was used in a home run hit by Player_C on Jul. 28, 2018; and that the autographed baseballF was autographed by Player_C on Jul. 28, 2018.
120 125 105 130 800 105 120 105 105 4 FIG.A Different user devicesF of the distributed architectureF may add transactions corresponding to these different uses of the autographed baseballF to the distributed ledger(s)F in the manner illustrated in. Each of these devices may be computing devicesthat are associated with use of the autographed baseballF, such as user devicesF corresponding to baseball players using the autographed baseballF or to stadium staff at the stadiums at which the autographed baseballF is used, in a manner that is verifiable via public-private keypair as discussed above.
1 FIG.G illustrates retrieval of a location history of a product as accessed from a distributed ledger using an NFC tag associated with the product.
105 110 105 105 105 110 120 115 130 120 130 1 FIG.G 1 FIG.A The productG illustrated inis a pencil, which is moved to different aisles of a retail store or warehouse. As with-IF above, the NFC tagG may be coupled to the pencilG itself or to packaging, such as a box, that at least partially contains the pencilG. The identity of the productG as a pencil may be stored in the NFC tagG and conveyed to the user deviceG via the wireless signalsG, or may be stored in the distributed ledger(s)G and read by the user deviceG upon its retrieval, storage, and parsing of a copy of the distributed ledger(s)G.
130 110 105 6 105 14 105 2 1 FIG.G 1 FIG.G The distributed ledger(s)F ofstore(s), and the user deviceG ofreads, parses, and displays, that the pencilG was located in aisleof the store or warehouse as of May 19, 2018; that the pencilG was located in aisleof the store or warehouse as of Jun. 21, 2018; and that the pencilG was located in aisleof the store or warehouse as of Jul. 28, 2018. While the term “aisle” is used for illustration, this could be used to convey rows, columns, coordinate systems (such as latitude and longitude), street names, or other indications of absolute or relative location/position.
120 125 105 130 800 105 120 120 120 4 FIG.A Different user devicesG of the distributed architectureG may add transactions corresponding to these different locations of the pencilG to the distributed ledger(s)G in the manner illustrated in. Each of these devices may be computing devicesthat are associated with positioning or moving of the pencilG, such as user devicesG corresponding to retail employees that stock shelves of a retail store or to warehouse employees in charge of arranging items in a warehouse, user devicesG that themselves move items in a retail store or warehouse, user devicesG that provide tracking services such as GNSS receiver devices, or combinations thereof, in a manner that is verifiable via public-private keypair as discussed above.
2 FIG.A illustrates a distributed architecture supporting the distributed ledger, the distributed architecture including different classes of devices along a commercial supply chain.
125 800 130 130 130 130 130 800 125 800 125 120 2 FIG.A The distributed architectureillustrated inincludes various computing devicesthat each optionally store copies of various distributed ledger(s), each of which may on occasion request transactions to be added to the distributed ledger(s), verify requested transactions for the distributed ledger(s), generate new blocks that each store one or more verified transactions for the distributed ledger(s), append new blocks to the distributed ledger(s), distribute new blocks to the other computing devicesof the distributed architecture, or combinations thereof. Each of these computing devicesof the distributed architecturemay also be referred to as a user devicecorresponding to a particular user or type of user.
800 125 205 105 210 105 215 105 225 105 230 105 240 105 215 105 220 2 FIG.A The computing devicesof the distributed architectureillustrated ininclude: one or more manufacturer devicescorresponding to one or more manufacturers of a product, one or more distributor devicescorresponding to one or more distributors that distribute the product, one or more physical (brick-and-mortar) retailer devicescorresponding to one or more physical (brick-and-mortar) retailers selling the product, one or more online commerce platform devicescorresponding to one or more online commerce platforms helping sell the product, one or more online retailer devicescorresponding to a one or more online retailers selling the product, or one or more customer user devicescorresponding to a one or more customers purchasing the product. The physical (brick-and-mortar) retailer devicescorresponding to a one or more physical (brick-and-mortar) retailers of a productmay, for example, be point of sale (POS) devicessuch as card reader terminals capable of reading payment instruments such as magnetic stripe cards, integrated circuit chip (ICC) cards, or NFC payment instruments.
800 125 105 205 105 105 205 210 215 225 230 240 205 240 105 105 240 2 FIG.A 2 FIG.A The various arrows between the computing devicesof the distributed architectureillustrated inindicate potential paths that the productcan take. The manufacturer(s)can give the productdirectly to any of the other entities illustrated in. The customer can buy the productdirectly from the manufacturer, from the distributor, from the physical retailer, from the online commerce platform, from the online retailer, or from another customer. All of the entities in between the manufacturerand customercan distribute the productamongst themselves; even physical retailers sometime have corresponding online storefronts with which they can share productsoffered to customers.
225 230 The online commerce platform device(s)and/or online retailer device(s)may also be referred to, either individually or together, as an ordering website network.
2 FIG.B 2 FIG.A illustrates elements optionally included among the devices in the distributed architecture of.
2 FIG.B 13 FIG. 16 FIG. 9 FIG. 10 FIG. 11 FIG. 12 FIG. 14 FIG. 15 FIG. 17 FIG. 18 FIG. The optional databases, components, and modules illustrated inrepresent data structures for storing information, such as those ofand, hardware devices/components, and/or software modules that are stored by and run on the devices that they are illustrated over to provide functionality discussed in the flow diagrams of,,,,,,, and.
205 210 215 225 230 240 105 105 110 260 260 130 260 800 255 1 FIG.F The manufacturer device(s)may include a NFC Manufacturer Database, a Manufacturer Security Module, a Customer Database, and a Manufacturer Reseller Module. The distributor device(s)and/or physical retailer device(s)may include Products for Sale Database, a Products Upsell Database, a Retailer Security Module, and an NFC reader. The online commerce platform device(s)and/or online retailer device(s)may include Products for Sale Database, a Products Upsell Database, a Customer Information Module, and a Retail User Interface. The customer user devicemay include an NFC reader. A productor objectwith an NFC tag, which may be collectively referred as a productor object, may include NFC Manufacturing URL Data—that is, an address (e.g., Uniform Resource Locator or URL or another type of hyperlink or pointer) of one or more distributed ledger(s)relevant to the object—and may also include an NFC customer code or NFC code as discussed above. The distributed architecture may optionally also include one or more computing devicesreferred to as an upsell security network, which may store information about groupings of related products (see e.g.,) and which may include an Upsell Security Database, an Ordering Website Protection Module, a Retail Protection Module, and a Comm Portal.
130 730 130 7 FIG.A The distributed ledger(s)themselves may each include or correspond to blockchain data (e.g., headers and transactions), pre-mined tokens (e.g., cryptocurrency as discussed in stepof), and a blockchain security module for using the distributed ledger(s)as a way to securely store information about the transactions discussed herein.
3 FIG. 3 FIG. 305 335 365 300 illustrates a portion of a blockchain ledger that implements distributed product transaction tracking and authentication. Three blocks-Block A, Block B, and Block C—of the blockchain ledgerare illustrated in.
310 340 370 330 360 390 310 315 345 375 370 365 375 340 335 340 335 345 310 305 310 305 315 305 300 300 300 300 Each block includes a block header//and a list of one or more transactions//. The block headerincludes a hash of the block header of the previous block//, which may alternately be replaced or supplemented by a hash of the entire previous block. For instance, the headerof block Cincludes a hashof the headerof block B. The headerof block Blikewise includes a hashof the headerof block A. The headerof block Alikewise includes a hashof a header (not pictured) of previous block (not pictured) that is before block Ain the blockchain. Including the hash of the previous block's header secures the blockchain ledgerby preventing modification of any block of the blockchainafter the block has been entered into the blockchain, as any change to a particular block would cause that block header's hash in the next block to be incorrect. Further, modification of that block header's hash in the next block would make the next block's header's hash in the block after the next block incorrect, and so forth.
310 340 370 320 350 380 330 360 390 320 350 380 315 345 375 310 340 370 5 FIG. Each block's block header//also includes a Merkle root//, which is generated based on hashes of the transaction(s) listed in the list of transaction(s)//for that block as explained further with respect to. Any attempt to modify a transaction after the block has been entered would change the Merkle root//, which would change the hash//of the block header//, again allowing all nodes to see if any block has been tampered with.
310 340 370 7 FIG.A 7 FIG.B 7 FIG.A 7 FIG.B Each block's block header//may also include various elements of metadata, such as a version number for the blockchain ledger platform, a version number for the block itself that identifies how many nonces have been tried, a timestamp for verification of each transaction, a timestamp for generation of the block, a difficulty target value as discussed with respect toAND, a nonce value as discussed with respect toAND, or a combination thereof.
305 335 365 300 330 360 390 330 360 390 410 425 105 4 FIG.A 4 FIG.B 1 FIG.A 1 FIG.B 1 FIG.C 1 FIG.D 1 FIG.E 1 FIG.F 1 FIG.G Each block//of the blockchainalso includes a list of one or more transaction(s)//. Each of these transactions//may be identified in a similar matter to the transactionsorofand. These transactions may convey information corresponding to, for example, an ownership history as in, a shipping history as in, a manufacturing history as in, a distribution history as in, a history of user purchases of related products as in, an item usage history as in, a location/position history as in, other characteristics or conditions of a product/object/itemthat change over time, or combinations thereof.
3 FIG. 305 335 365 300 Whileonly illustrates three blocks//of the blockchain, it should be understood that any blockchain discussed herein may be longer or shorter in that it may have more or fewer than three blocks.
4 FIG.A illustrates transactions related to supply chain stages of three items as recorded via distributed ledger.
405 410 405 4 FIG.A Boxofidentifies which supply chain stages include which of the three items before the transactions. In particular, boxindicates that entity MANUFACTURE_BEGINS corresponding to the start of the manufacturing process includes 1 of ITEM_A and 0 of ITEM_B and ITEM_C; entity MANUFACTURE_COMPLETE corresponding to the completion of the manufacturing process includes 0 of ITEM_A and ITEM_B and ITEM_C; entity QUALITY_ASSURANCE corresponding to the quality assurance process includes 0 of ITEM_A and ITEM_B and ITEM_C; entity DISTRIBUTION_SHIPPING corresponding to the shipping of an item for distribution and includes 0 of ITEM_A and ITEM_B and ITEM_C; entity DISTRIBUTION_DELIVERY corresponding to the delivery of an item for distribution includes 0 of ITEM_A and ITEM_B and ITEM_C; entity STOCKED_LOCALLY corresponding to the stocking of an item at an online or physical retail location includes 0 of ITEM_A and ITEM_B and ITEM_C; entity PURCHASED_BY_CUSTOMER corresponding to an item being purchased from an online or physical retailer by a customer includes 1 of ITEM_B and 0 of ITEM_A and ITEM_C; entity CUSTOMER_SHIPPING corresponding to an item being shipped to a customer includes 1 of ITEM_C and 0 of ITEM_A and ITEM_B; and entity CUSTOMER_DELIVERY corresponding to an item being delivered to a customer includes 0 of ITEM_A and ITEM_B and ITEM_C. Thus, one of ITEM_A has begun manufacturing, one of ITEM_B was purchased by a customer, and one of ITEM_C was shipped to a customer.
410 410 405 410 405 410 405 410 130 4 FIG.A 5 FIG. 3 FIG. The transactionsofeach identify a value of a transfer, a transferee entity, a transferor entity, and a signature, which may be a hash of the transaction of any of the hash types discussed herein at least with respect to. The first of the transactions(with signature BA7816BF8F01CFEA414) indicates that one of ITEM_A is to be transferred from entity MANUFACTURE_BEGINS to entity MANUFACTURE_COMPLETE, indicating that manufacture of the one of ITEM_A that had begun in the time state characterized by boxhas now completed. The second of the transactions(with signature AB8896967C7979F976G) indicates that one of ITEM_B is to be transferred from entity PURCHASED_BY_CUSTOMER to entity CUSTOMER_SHIPPING, indicating that the one of ITEM_B that had been purchased by a customer in the time state characterized by boxhas now been shipping to the customer. The third of the transactions(with signature GA8796F79879876C977) indicates that one of ITEM_C is to be transferred from entity CUSTOMER_SHIPPING to entity CUSTOMER_DELVERY, indicating that the one of ITEM_C that had been shipped to a customer in the time state characterized by boxhas now been delivered to the customer. The transactionscan be grouped into a single block of a distributed ledgersuch as the blockchain ledger ofor into multiple blocks.
415 410 405 405 410 405 410 405 410 4 FIG.A Boxofidentifies which supply chain stages include which of the three items after the transactions. In particular, boxindicates that entity MANUFACTURE_BEGINS corresponding to the start of the manufacturing process includes 0 of ITEM_A and ITEM_B and ITEM_C; entity MANUFACTURE_COMPLETE corresponding to the completion of the manufacturing process includes 1 of ITEM_A and 0 of ITEM_B and ITEM_C; entity QUALITY_ASSURANCE corresponding to the quality assurance process includes 0 of ITEM_A and ITEM_B and ITEM_C; entity DISTRIBUTION_SHIPPING corresponding to the shipping of an item for distribution and includes 0 of ITEM_A and ITEM_B and ITEM_C; entity DISTRIBUTION_DELIVERY corresponding to the delivery of an item for distribution includes 0 of ITEM_A and ITEM_B and ITEM_C; entity STOCKED_LOCALLY corresponding to the stocking of an item at an online or physical retail location includes 0 of ITEM_A and ITEM_B and ITEM_C; entity PURCHASED_BY_CUSTOMER corresponding to an item being purchased from an online or physical retailer by a customer includes 0 of ITEM_A and ITEM_B and ITEM_C; entity CUSTOMER_SHIPPING corresponding to an item being shipped to a customer includes 1 of ITEM_B and 0 of ITEM_A and ITEM_C; and entity CUSTOMER_DELIVERY corresponding to an item being delivered to a customer includes 1 of ITEM_C and 0 of ITEM_A and ITEM_B. Thus, the one of ITEM_A referenced in boxand the first of the transactionshas completed manufacturing, the one of ITEM_B referenced in boxand the second of the transactionswas shipped to the customer, and the one of ITEM_C referenced in boxand the third of the transactionswas delivered to the customer.
4 FIG.B illustrates transactions related to ownership of three vehicles as recorded via distributed ledger.
420 425 420 4 FIG.B Boxofidentifies which of three users possess which of three vehicle items before the transactions. In particular, boxindicates that entity USER_AVERY corresponding to the user “Avery” possesses 1 one VEHICLE_A and 0 of VEHICLE_B and VEHICLE_C; entity USER_BOB corresponding to the user “Bob” possesses 1 one VEHICLE_B and 0 of VEHICLE_A and VEHICLE_C; and entity USER_CHUCK corresponding to the user “CHUCK” possesses 1 one VEHICLE_C and 0 of VEHICLE_A and VEHICLE_B. Thus, Avery has one of VEHICLE_A, Bob has one of VEHICLE_B, and Chuck has one of VEHICLE_C.
425 425 425 425 425 130 4 FIG.B 5 FIG. 3 FIG. The transactionsofeach identify a value of a transfer, a transferee entity, a transferor entity, and a signature, which may be a hash of the transaction of any of the hash types discussed herein at least with respect to. The first of the transactions(with signature 969678FAFF96697FFCB) indicates that one of VEHICLE_A is to be transferred from entity USER_AVERY to entity USER_BOB, indicating that user Avery has sold or otherwise given a Vehicle A to user Bob. The second of the transactions(with signature 9713CBDA9796DDB7AFF) indicates that one of VEHICLE_B is to be transferred from entity USER_BOB to entity USER_CHUCK, indicating that user Bob has sold or otherwise given a Vehicle B to user Chuck. The third of the transactions(with signature FFA987332BCC797A12C) indicates that one of VEHICLE_C is to be transferred from entity USER_CHUCK to entity USER_AVERY, indicating that user Chuck has sold or otherwise given a Vehicle C to user Avery. The transactionscan be grouped into a single block of a distributed ledgersuch as the blockchain ledger ofor into multiple blocks.
430 425 420 4 FIG.B Boxofidentifies which of the three users possess which of the three vehicle items after the transactions. In particular, boxindicates that entity USER_AVERY corresponding to the user “Avery” possesses 1 one VEHICLE_C and 0 of VEHICLE_A and VEHICLE_B; entity USER_BOB corresponding to the user “Bob” possesses 1 one VEHICLE_A and 0 of VEHICLE_B and VEHICLE_C; and entity USER_CHUCK corresponding to the user “CHUCK” possesses 1 one VEHICLE_B and 0 of VEHICLE_A and VEHICLE_C. Thus, Avery has one of VEHICLE_C, Bob has one of VEHICLE_A, and Chuck has one of VEHICLE_B.
5 FIG. is a diagram of a Merkle tree for securing product transaction tracking and authentication using the distributed ledger.
5 FIG. 546 502 504 506 508 510 512 514 516 The Merkle tree ofis used to generate a Merkle rootfor a block with 8 transactions: transaction A, transaction B, transaction C, transaction D, transaction E, transaction F, transaction G, and transaction H.
502 518 504 520 506 522 508 524 510 526 512 528 514 530 516 532 A hash is generated for each transaction. Transaction Ais hashed into hash A, transaction Bis hashed into hash B, transaction Cis hashed into hash C, transaction Dis hashed into hash D, transaction Eis hashed into hash E, transaction Fis hashed into hash F, transaction Gis hashed into hash G, and transaction His hashed into hash H.
518 532 518 520 534 522 524 536 526 528 538 530 532 540 Each of the hashes Athrough Hare hashed after being paired with another hash. That is, Hash Aand Hash Bare hashed together into Hash AB, Hash Cand Hash Dare hashed together into Hash CD, Hash Eand Hash Fare hashed together into Hash EF, and Hash Gand Hash Hare hashed together into Hash GH.
534 536 542 538 540 544 542 544 546 546 546 502 504 506 508 510 512 514 516 546 This process repeats until a single hash results. That is, Hash ABand Hash CDare hashed together into Hash ABCD, and Hash EFand Hash GHare hashed together into Hash EFGH. Hash ABCDand Hash EFGHare hashed together into Hash ABCDEFGH. Hash ABCDEFGHis also known as the Merkle rootfor the 8 transactions: transaction A, transaction B, transaction C, transaction D, transaction E, transaction F, transaction G, and transaction H. Any modification to any of these 8 transactions also necessarily changes the Merkle root, which can be verified by any node to ensure that no changes were made to the transactions in any given block.
5 FIG. 3 FIG. 6 FIG. The hashes used in the Merkle root calculation of, the hashes of previous block discussed with respect to, and the hashes of parent blocks discussed with respect to, are generated using a hash algorithm, which may optionally be a secure hash algorithm (SHA), such as SHA-0, SHA-1, SHA-2, SHA-3, SHA-N, SHA-128, SHA-192, SHA-256, SHA-512, SHA-224, SHA-384, SHA-512/224, SHA-512/256, SHA3-224, SHA3-256, SHA3-384, SHA3-512, SHAKE128, or one or more variants or combinations thereof.
6 FIG. illustrates a portion of a distributed directed acyclic graph (DAG) ledger that implements distributed product transaction tracking and authentication.
3 FIG. 7 FIG.A 7 FIG.B 6 FIG. 3 FIG. 6 FIG. 5 FIG. 518 520 522 524 526 528 530 532 While,, anddiscuss use of a blockchain ledger, it should be understood that a non-linear ledger structure, such as the directed acyclic graph (DAG) ledger structure of, may be used instead of a blockchain ledger discussed herein. That is, the term “distributed ledger” as used herein should be understood to refer to at least one of a blockchain ledger (as in), a DAG ledger (as in), or a combination thereof. In a DAG ledger, each block header includes the hashes of block headers of a predetermined number of other “parent” blocks in the DAG ledger selected either at random or in some other non-linear manner, rather than the hash of a single previous block in the blockchain. Each block header may alternately or additionally include hashes of the entire parent blocks instead of hashes of just the headers of the parent blocks. Where each block header includes multiple hashes corresponding to different parent blocks or their headers, these hashes can be combined together into a Merkle root much like the hashes A, B, C, D, E, F, G, and Hof.
6 FIG. 6 FIG. 610 620 650 620 640 660 630 620 660 640 610 630 650 610 620 660 610 650 For example, in the DAG ledger of, the predetermined number is two, at least after the first two blocks are generated. In the web DAG ledger of, the parent blocks are indicated using arrows. Blockincludes hashes of the block headers of parent blocksand. Blockincludes hashes of the block headers of parent blocksand. Blockincludes hashes of the block headers of parent blocksand. Blockincludes hashes of the block headers of parent blocksand. Blockincludes hashes of the block headers of parent blocksand. Blockincludes hashes of the block headers of parent blocksand. The resulting structure is a directed acyclic graph (DAG) of blocks, where each vertex block includes a hash of its parent vertex block(s), rather than a linear stream of blocks as in a blockchain. A DAG ledger may sometimes be referred to as a “web,” a “tangle,” or a “hashgraph.”
In some cases, the number of parent blocks in a DAG ledger is not strictly predetermined, but there is a predetermined minimum number of blocks, such as a two-parent minimum or a one-parent minimum, meaning that each block has at least the predetermined minimum number of parent blocks. In some cases, each block in a DAG ledger may only identify only a single transaction rather than multiple transactions, and may therefore forego a Merkle root and/or replace it with a hash of the single transaction. In other implementations, each block may identify multiple transactions associated with a predetermined time period as discussed herein.
Potential benefits of distributed DAG ledgers over blockchain ledgers may include parallelized validation, which results in higher throughput.
7 FIG.A is a flow diagram illustrating operations through which a new block is generated for the distributed ledger.
705 At step, a device A associated with a user account A receives user input(s) conveying an intended transaction of an identified quantity of a virtual asset from a transferor (e.g., a transferor user account or other entity) to a transferee (e.g., a transferee user account or other entity). In most cases, user account A must be the transferor account for the intended transaction to proceed, but in some cases it may alternately be the transferee account. In some cases, user account A may even be a third party account other than the transferor and transferee, such as an account corresponding to a platform, a bank, an intermediary, or an adjudicative entity for transactions, or other third party account having heightened power over transactions.
710 At step, Device A associated with user account A encrypts at least part of the intended transaction using a private key associated with user account A to digitally sign the intended transaction.
715 710 715 710 At step, Device A broadcasts or otherwise transmits the encrypted intended transaction to each device (node) of a distributed peer-to-peer network of devices (nodes), optionally along with a public key corresponding to the private key used to digitally sign the transaction in step. Nodes receiving the public key may verify it against a key stored via a CA, or may verify a hash of the public key against a hash of a public key stored via the CA. Alternately, nodes may simply acquire the public key from the CA. The nodes may thereby verify that the intended transaction broadcast at stepwas indeed digitally signed at stepby the user account A with the private key corresponding to user account A.
720 At step, a “Miner” Device B, a node in the distributed peer-to-peer network, validates the intended transaction in one or more of three ways.
710 The “Miner” Device B may decrypt the intended transaction using the public key to verify that it was indeed digitally signed at stepby the user account A with the private key corresponding to user account A, and may optionally verify that user account A is a the transferor account, transferee account, or another account authorized to request the transaction in question.
130 The “Miner” Device B may identify, based on existing records in the distributed ledger, that the transferor account possesses at least the identified quantity of the asset to be transferred.
The “Miner” Device B may identify that the transferor acct is not trying to perform a simultaneous conflicting transfer, such as one that would leave the transferor account lacking the identified quantity of the virtual asset to be transferred. That is, the “Miner” Device B may check that if all intended transactions involving the transferor account were to complete, the transferor account would be left with a non-negative (greater than or equal to zero) quantity of the virtual asset.
725 720 At step, once the intended transaction (and optionally other transactions in same time predetermined period) is validated as in step, the “Miner” Device B generates a block recording the verified transaction (and optionally other verified transactions in same predetermined time period), and broadcasts the block to the distributed peer-to-peer network of devices (nodes), thereby allowing each device (node) to update its copy of the blockchain ledger by appending the new block.
730 7 FIG.B At optional step, the “Miner” Device B is rewarded for successfully generating the new block, for example by granting an account corresponding to “Miner” Device B with a virtual asset such as a cryptocurrency. This is detailed further in.
735 At step, each device (node) of the distributed peer-to-peer network updates its copy of the blockchain ledger upon receipt of the new block from “Miner” Device B by appending the new block. The transaction is now complete.
Consensus among the nodes of the distributed network regarding new blocks can be achieved using a practical byzantine fault tolerance (PBFT) algoritm, a proof-of-work (PoW) algorithm, a proof-of-stake (POS) algorithm, a delegated proof-of-stake (DPoS) algorithm, a proof-of-activity (PoA) algorithm, a proof-of-burn (PoB) algorithm, a proof-of-capacity (PoC) algorithm, a proof-of-storage (PoSt) algorithm, a proof-of-space (PoSp) algorithm, a proof-of-elapsed-time (PoET) algorithm, or a combination thereof.
3 FIG. 7 FIG.A 7 FIG.B 4 FIG.A While the discussions of,, anddiscuss transfer of virtual assets, it should be understood that these virtual assets may represent physical assets, so that ownership of a virtual asset implies ownership of the corresponding physical asset. For example, in, ownership of the virtual asset VEHICLE_A implies ownership of a corresponding vehicle referred to as “Vehicle A.”
7 FIG.B is a flow diagram illustrating operations through which generation of a new blocks for the distributed ledger is optionally incentivized.
745 750 730 730 725 725 7 FIG.B 7 FIG.A 7 FIG.A Optional stepsandand equation 755 ofexpand on stepof. At optional stepof, the “Miner” Device B was rewarded for successfully generating the new block, for example by granting an account corresponding to “Miner” Device B with a virtual asset such as a cryptocurrency. The cryptocurrency may have real value and be exchangeable for real fiat currency, may be used as a virtual currency exclusively usable in a particular software application or at a particular online retailer or physical retailer, or some combination thereof. The generation and transfer of cryptocurrency to reward “Miner” Device B may be identified as a transaction in the next block that will be generated after the block generated by “Miner” Device B at step. Similarly, the block generated by “Miner” Device B at stepmay identify a previous “Miner” Device that generated a previous block in the blockchain and may generate and transfer a similar reward to that “Miner” Device.
745 730 325 355 385 Stepexplains that generating a new block to add to the blockchain can be made to be intentionally difficult if “miner” devices/nodes are to be rewarded as in step. A predetermined numeric (decimal or hexadecimal) difficulty target value may be used. To successfully generate a new block, a hash of the block (or block header) should be numerically less than the difficulty target value for the new block to be successful. Each “miner” device/node can try hashing the new block with various different nonce values in the metadata//of the block header in an attempt to find a nonce value that makes the hash of the whole block (or block header) be numerically less than the difficulty target value.
750 755 Stepexplains that the difficulty target value can stay constant during a predetermined time period, such as 2 weeks. Just before the predetermined time period ends and before the next time period starts, difficulty target value is potentially adjusted up or down slightly, using the formula identified in blockor a similar formula. In some cases, a predetermined upper and lower bound may be set on how much the difficulty target value may be adjusted by.
755 The formula identified in blockidentifies that (new adjusted difficulty target value)=(previous difficulty target value)×((predetermined time period)/(total transaction time for N transactions during predetermined time period)). N is defined as ((predetermined time period)/(desired block generation time)).
If the time period is 2 weeks (20160 minutes) and each block should take approximately 10 minutes to generate, N is ((20160 minutes)/(10 minutes))=2016. Thus, one might calculate the new adjusted difficulty target value as (new adjusted difficulty target value)=(previous difficulty target value)×((20160 minutes)/(total transaction time for 2016 transactions during predetermined time period)).
8 FIG. 8 FIG. 8 FIG. 8 FIG. 800 800 800 800 810 820 810 810 820 810 820 800 830 840 850 860 870 880 illustrates an exemplary computing systemthat may be used to implement some aspects of the subject technology. For example, any of the computing devices, computing systems, network devices, network systems, servers, and/or arrangements of circuitry described herein may include at least one computing system, or may include at least one component of the computer systemidentified in. The computing systemofincludes one or more processorsand memory. Each of the processor(s)may refer to one or more processors, controllers, microcontrollers, central processing units (CPUs), graphics processing units (GPUs), arithmetic logic units (ALUs), accelerated processing units (APUs), digital signal processors (DSPs), application specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), or combinations thereof. Each of the processor(s)may include one or more cores, either integrated onto a single chip or spread across multiple chips connected or coupled together. Memorystores, in part, instructions and data for execution by processor. Memorycan store the executable code when in operation. The systemoffurther includes a mass storage device, portable storage medium drive(s), output devices, user input devices, a graphics display, and peripheral devices.
8 FIG. 890 810 820 830 880 840 870 The components shown inare depicted as being connected via a single bus. However, the components may be connected through one or more data transport means. For example, processor unitand memorymay be connected via a local microprocessor bus, and the mass storage device, peripheral device(s), portable storage device, and display systemmay be connected via one or more input/output (I/O) buses.
830 810 830 820 Mass storage device, which may be implemented with a magnetic disk drive or an optical disk drive, is a non-volatile storage device for storing data and instructions for use by processor unit. Mass storage devicecan store the system software for implementing some aspects of the subject technology for purposes of loading that software into memory.
840 800 800 840 8 FIG. Portable storage deviceoperates in conjunction with a portable non-volatile storage medium, such as a floppy disk, compact disk or Digital video disc, to input and output data and code to and from the computer systemof. The system software for implementing aspects of the subject technology may be stored on such a portable medium and input to the computer systemvia the portable storage device.
820 830 840 810 820 830 840 810 The memory, mass storage device, or portable storagemay in some cases store sensitive information, such as transaction information, health information, or cryptographic keys, and may in some cases encrypt or decrypt such information with the aid of the processor. The memory, mass storage device, or portable storagemay in some cases store, at least in part, instructions, executable code, or other data for execution or processing by the processor.
850 870 850 850 Output devicesmay include, for example, communication circuitry for outputting data through wired or wireless means, display circuitry for displaying data via a display screen, audio circuitry for outputting audio via headphones or a speaker, printer circuitry for printing data via a printer, or some combination thereof. The display screen may be any type of display discussed with respect to the display system. The printer may be inkjet, laserjet, thermal, or some combination thereof. In some cases, the output device circuitrymay allow for transmission of data over an audio jack/plug, a microphone jack/plug, a universal serial bus (USB) port/plug, an Apple® Lightning® port/plug, an Ethernet port/plug, a fiber optic port/plug, a proprietary wired port/plug, a BLUETOOTH® wireless signal transfer, a BLUETOOTH® low energy (BLE) wireless signal transfer, an IBEACON® wireless signal transfer, a radio-frequency identification (RFID) wireless signal transfer, near-field communications (NFC) wireless signal transfer, 802.11 Wi-Fi wireless signal transfer, cellular data network wireless signal transfer, a radio wave signal transfer, a microwave signal transfer, an infrared signal transfer, a visible light signal transfer, an ultraviolet signal transfer, a wireless signal transfer along the electromagnetic spectrum, or some combination thereof. Output devicesmay include any ports, plugs, antennae, wired or wireless transmitters, wired or wireless transceivers, or any other components necessary for or usable to implement the communication types listed above, such as cellular Subscriber Identity Module (SIM) cards.
860 860 860 860 Input devicesmay include circuitry providing a portion of a user interface. Input devicesmay include an alpha-numeric keypad, such as a keyboard, for inputting alpha-numeric and other information, or a pointing device, such as a mouse, a trackball, stylus, or cursor direction keys. Input devicesmay include touch-sensitive surfaces as well, either integrated with a display as in a touchscreen, or separate from a display as in a trackpad. Touch-sensitive surfaces may in some cases detect localized variable pressure or force detection. In some cases, the input device circuitry may allow for receipt of data over an audio jack, a microphone jack, a universal serial bus (USB) port/plug, an Apple® Lightning® port/plug, an Ethernet port/plug, a fiber optic port/plug, a proprietary wired port/plug, a wired local area network (LAN) port/plug, a BLUETOOTH® wireless signal transfer, a BLUETOOTH® low energy (BLE) wireless signal transfer, an IBEACON® wireless signal transfer, a radio-frequency identification (RFID) wireless signal transfer, near-field communications (NFC) wireless signal transfer, 802.11 Wi-Fi wireless signal transfer, wireless local area network (WAN) signal transfer, cellular data network wireless signal transfer, personal area network (PAN) signal transfer, wide area network (WAN) signal transfer, a radio wave signal transfer, a microwave signal transfer, an infrared signal transfer, a visible light signal transfer, an ultraviolet signal transfer, a wireless signal transfer along the electromagnetic spectrum, or some combination thereof. Input devicesmay include any ports, plugs, antennae, wired or wireless receivers, wired or wireless transceivers, or any other components necessary for or usable to implement the communication types listed above, such as cellular SIM cards.
860 800 800 800 800 800 860 Input devicesmay include receivers or transceivers used for positioning of the computing systemas well. These may include any of the wired or wireless signal receivers or transceivers. For example, a location of the computing systemcan be determined based on signal strength of signals as received at the computing systemfrom three cellular network towers, a process known as cellular triangulation. Fewer than three cellular network towers can also be used-even one can be used-though the location determined from such data will be less precise (e.g., somewhere within a particular circle for one tower, somewhere along a line or within a relatively small area for two towers) than via triangulation. More than three cellular network towers can also be used, further enhancing the location's accuracy. Similar positioning operations can be performed using proximity beacons, which might use short-range wireless signals such as BLUETOOTH® wireless signals, BLUETOOTH® low energy (BLE) wireless signals, IBEACON® wireless signals, personal area network (PAN) signals, microwave signals, radio wave signals, or other signals discussed above. Similar positioning operations can be performed using wired local area networks (LAN) or wireless local area networks (WLAN) where locations are known of one or more network devices in communication with the computing systemsuch as a router, modem, switch, hub, bridge, gateway, or repeater. These may also include Global Navigation Satellite System (GNSS) receivers or transceivers that are used to determine a location of the computing systembased on receipt of one or more signals from one or more satellites associated with one or more GNSS systems. GNSS systems include, but are not limited to, the US-based Global Positioning System (GPS), the Russia-based Global Navigation Satellite System (GLONASS), the China-based BeiDou Navigation Satellite System (BDS), and the Europe-based Galileo GNSS. Input devicesmay include receivers or transceivers corresponding to one or more of these GNSS systems.
870 870 870 Display systemmay include a liquid crystal display (LCD), a plasma display, an organic light-emitting diode (OLED) display, an electronic ink or “e-paper” display, a projector-based display, a holographic display, or another suitable display device. Display systemreceives textual and graphical information, and processes the information for output to the display device. The display systemmay include multiple-touch touchscreen input capabilities, such as capacitive touch detection, resistive touch detection, surface acoustic wave touch detection, or infrared touch detection. Such touchscreen input capabilities may or may not allow for variable pressure or force detection.
880 880 850 860 870 820 830 840 Peripheralsmay include any type of computer support device to add additional functionality to the computer system. For example, peripheral device(s)may include one or more additional output devices of any of the types discussed with respect to output device, one or more additional input devices of any of the types discussed with respect to input device, one or more additional display systems of any of the types discussed with respect to display system, one or more memories or mass storage devices or portable storage devices of any of the types discussed with respect to memoryor mass storageor portable storage, a modem, a router, an antenna, a wired or wireless transceiver, a printer, a bar code scanner, a quick-response (“QR”) code scanner, a magnetic stripe card reader, a integrated circuit chip (ICC) card reader such as a smartcard reader or a EUROPAY®-MASTERCARD®-VISA® (EMV) chip card reader, a near field communication (NFC) reader, a document/image scanner, a visible light camera, a thermal/infrared camera, an ultraviolet-sensitive camera, a night vision camera, a light sensor, a phototransistor, a photoresistor, a thermometer, a thermistor, a battery, a power source, a proximity sensor, a laser rangefinder, a sonar transceiver, a radar transceiver, a lidar transceiver, a network device, a motor, an actuator, a pump, a conveyer belt, a robotic arm, a rotor, a drill, a chemical assay device, or some combination thereof.
800 800 800 800 800 8 FIG. 8 FIG. 8 FIG. The components contained in the computer systemofcan include those typically found in computer systems that may be suitable for use with some aspects of the subject technology and represent a broad category of such computer components that are well known in the art. That said, the computer systemofcan be customized and specialized for the purposes discussed herein and to carry out the various operations discussed herein, with specialized hardware components, specialized arrangements of hardware components, and/or specialized software. Thus, the computer systemofcan be a personal computer, a hand held computing device, a telephone (“smartphone” or otherwise), a mobile computing device, a workstation, a server (on a server rack or otherwise), a minicomputer, a mainframe computer, a tablet computing device, a wearable device (such as a watch, a ring, a pair of glasses, or another type of jewelry or clothing or accessory), a video game console (portable or otherwise), an e-book reader, a media player device (portable or otherwise), a vehicle-based computer, another type of computing device, or some combination thereof. The computer systemmay in some cases be a virtual computer system executed by another computer system. The computer can also include different bus configurations, networked platforms, multi-processor platforms, etc. Various operating systems can be used including Unix®, Linux®, FreeBSD®, FreeNAS®, pfSense®, Windows®, Apple® Macintosh OS® (“MacOS®”), Palm OS®, Google® Android®, Google® Chrome OS®, Chromium® OS®, OPENSTEP®, XNUR®, Darwin®, Apple® iOS®, Apple® tvOS®, Apple® watchOS®, Apple® audioOS®, Amazon® Fire OS®, Amazon® Kindle OS®, variants of any of these, other suitable operating systems, or combinations thereof. The computer systemmay also use a Basic Input/Output System (BIOS) or Unified Extensible Firmware Interface (UEFI) as a layer upon which the operating system(s) are run.
800 800 800 800 In some cases, the computer systemmay be part of a multi-computer system that uses multiple computer systems, each for one or more specific tasks or purposes. For example, the multi-computer system may include multiple computer systemscommunicatively coupled together via at least one of a personal area network (PAN), a local area network (LAN), a wireless local area network (WLAN), a municipal area network (MAN), a wide area network (WAN), or some combination thereof. The multi-computer system may further include multiple computer systemsfrom different networks communicatively coupled together via the internet (also known as a “distributed” system).
820 830 840 Some aspects of the subject technology may be implemented in an application that may be operable using a variety of devices. Non-transitory computer-readable storage media refer to any medium or media that participate in providing instructions to a central processing unit (CPU) for execution and that may be used in the memory, the mass storage, the portable storage, or some combination thereof. Such media can take many forms, including, but not limited to, non-volatile and volatile media such as optical or magnetic disks and dynamic memory, respectively. Some forms of non-transitory computer-readable media include, for example, a floppy disk, a flexible disk, a hard disk, magnetic tape, a magnetic strip/stripe, any other magnetic storage medium, flash memory, memristor memory, any other solid-state memory, a compact disc read only memory (CD-ROM) optical disc, a rewritable compact disc (CD) optical disc, digital video disk (DVD) optical disc, a blu-ray disc (BDD) optical disc, a holographic optical disk, another optical medium, a secure digital (SD) card, a micro secure digital (microSD) card, a Memory Stick® card, a smartcard chip, a EMV chip, a subscriber identity module (SIM) card, a mini/micro/nano/pico SIM card, another integrated circuit (IC) chip/card, random access memory (RAM), static RAM (SRAM), dynamic RAM (DRAM), read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), flash EPROM (FLASHEPROM), cache memory (L1/L2/L3/L4/L5/L8), resistive random-access memory (RRAM/ReRAM), phase change memory (PCM), spin transfer torque RAM (STT-RAM), another memory chip or cartridge, or a combination thereof.
810 890 820 810 820 830 840 810 Various forms of transmission media may be involved in carrying one or more sequences of one or more instructions to a processorfor execution. A buscarries the data to system RAM or another memory, from which a processorretrieves and executes the instructions. The instructions received by system RAM or another memorycan optionally be stored on a fixed disk (mass storage device/portable storage) either before or after execution by processor. Various forms of storage may likewise be implemented as well as the necessary network interfaces and network topologies to implement the same.
9 FIG. 9 FIG. 7 FIG.A 120 800 125 is a flow diagram illustrating operations for proximity-based tracking of object characteristic via distributed ledger. In particular, the operations illustrated inmay be performed by any user deviceor any computing devicein a distributed architecture, such as one that performs tasks discussed as being performed by “Miner” Device B in.
905 6 FIG. Stepincludes storing a blockchain ledger comprising a plurality of blocks, wherein each of a plurality of computing devices also stores a copy of the blockchain ledger. This blockchain ledger may alternately be a different type of distributed ledger, such as a DAG ledger as illustrated in.
910 115 105 110 120 910 705 710 915 720 7 FIG.A 7 FIG.A 7 FIG.A 1 1 FIGS.A-G Stepincludes receiving, from a first computing device, an indication of proximity (e.g., NFC communications) between the first computing device and the object (e.g., productwith NFC tag), wherein the indication of proximity between the first computing device (e.g., user device) and the object also identifies a characteristic or a condition of the object (e.g., unfinished, finished, stage of manufacture, stage of distribution, stage along a supply chain, location, shipping status, delivery status, unsold status, sold status, current or previous ownership, related products, sales of related products, sales of the object itself). Stepmay also optionally involve receipt of one or more intended transactions as in stepof. The indication of proximity, the intended transactions, or both may be encrypted using a private key associated with the first computing device and/or with a user of the first computing device as in stepof. These may be decrypted with a corresponding public key in stepas part of the verification processes, as also discussed with respect to stepof, as well as with respect to.
915 915 720 7 FIG.A 1 1 FIGS.A-G Optional stepincludes verifying the indication of proximity verifying that a code included as part of the indication of proximity matches a code in a database, wherein appending the new block to the plurality of blocks of the blockchain ledger occurs automatically in response to verifying the indication of proximity. This verification stepcan alternately or also include any of the verification processes discussed with respect to stepof, any of the verification processes discussed with respect to, any other verification processes discussed herein, or combinations thereof.
920 925 930 920 925 930 915 3 FIG. Stepincludes generating a hash of a most recent block of the blockchain ledger. Stepincludes generating a new block header for a new block, wherein the new block header comprises at least the hash of the most recent block of the blockchain ledger. Stepincludes generating the new block, wherein the new block comprises at least the new block header and the condition of the object. Steps,, andare discussed further with respect toand may occur automatically in response to successful completion of the verification processes step.
935 930 Stepincludes appending the new block to the plurality of blocks of the blockchain ledger. This may occur automatically in response to generation of the new block in step.
940 930 940 Stepincludes transmitting the new block to the plurality of computing devices that each store the blockchain ledger in response to verifying the intended transaction, wherein each of the plurality of computing devices also appends the new block to their respective copy of the blockchain ledger, thereby recording the one or more transactions in the blockchain ledger. This may occur automatically in response to generation of the new block in stepand/or in response to appending the new block at step.
10 FIG. is a flow diagram illustrating a customer purchasing a product via an online retailer and confirming receipt of the purchased by scanning an NFC tag corresponding to the product.
10 FIG. 120 1005 1010 1015 1020 1025 1030 1035 1040 The flow diagram ofdisplays activity by buyers/customers and their respective user devices. The process begins with the Buyer ordering a retail product from the ordering website (step). The buyer then inputs their customer data such as their name, e-mail address, shipping address, etc. (step). The buyer inputs their transaction data such as their payment method, account number, billing address, etc. (step). The buyer's customer and transaction data are sent to the Ordering Website Network Ordering Website Security Module (step). The buyer receives the product they purchased which contains an NFC code and public key (located on the NFC code) (step). The buyer scans the NFC code with an NFC reader which may be a user device (step). The NFC code and public key are sent to the Upsell Security Network Ordering Website Protection Module (step), which are then passed on to the Blockchain Security Network Blockchain Security Module to access the upsell product data that is related to the product that the buyer has just received (step). The buyer (on their device) receives the product upsell data from the Blockchain Security Network Blockchain Security Module which contains the upsell products that are related to the product that the buyer just received.
11 FIG. is a flow diagram illustrating tracking of sales of related products (“upsell” products) by a retail employee.
11 FIG. 120 1105 1110 1115 1120 1105 1125 The flow diagram ofdisplays activity by retail employees and their respective user devices. The process begins with the retail employee scans the NFC on the product within the retail store that a customer is interested in or is about to purchase (step). The NFC code and public key are sent to the Upsell Security Network Retail Protection Module (step), the public key is stored in the NFC code which is located on the product in the retail store. The retail employee receives the upsell products from the Blockchain Security Network Blockchain Security Module (step). Then it is determined (at step) if any of the upsell products sent to the retail employee are purchased by a client. If no upsell products are purchased the process returns to the retail employee scanning the NFC (at step). If there were upsell products purchased the upsell product SKU number and the retail employee ID are sent to the Retail Security Network Security Module (step) where the data can be stored and used as a metric for how well retail employees increase store sales using the upsell products data.
11 FIG. 1 FIG.E 110 110 Whileprimarily focuses on an implementation in which the retail employee scans the NFC tag, it should be understood that other individuals, such as a shopper/buyer in a store, may also scan the NFC tag(or any other equivalent) to receive suggestions of related/upsell products as in. This may be useful to customers looking for suggestions or products that are similar or complementary to products that they already know that they enjoy.
12 FIG. is a flow diagram illustrating interplay between online retailer databases and distributed ledgers.
12 FIG. 2 FIG.B 1205 1210 1215 1220 1225 1230 1235 The flow diagram ofdisplays operations of the Ordering Website Network Security Module of. The process begins with receiving a request for the Ordering Website Network Products Database and Ordering Website Network Products Upsell Database from the Blockchain Security Network Blockchain Security Module (step). The Ordering Website Network Products Database and Ordering Website Network Products Upsell Database are both sent to the Blockchain Security Module Blockchain Security Module (step). The Ordering Website Network Security Module receives the public keys and NFC codes from the Upsell Security Network Ordering Website Protection Module (step), which are the public keys and NFC codes for the data that was sent to the Blockchain Security Network Blockchain Security Module to be securely stored. The Ordering Website Network Security Module is then continuously or periodically polling for the Buyer order (step). The Buyer customer data and transaction data is received (step) and is sent to the Blockchain Security Network Blockchain Security Module (step). Lastly, the Buyer order is fulfilled by the Ordering Website Network Security Module and the purchased retail product is sent to the Buyer with the NFC code and public key (step).
13 FIG. illustrates an online retailer product database tracking related product groups (“upsell” products) as sold by particular retail employees.
13 FIG. 2 FIG.B The database ofmay represent the Retail Security Network Products Sale Database which is provided by the Retail Security Network of. This database contains the products for sale (by their SKU numbers) and the related upsell products that a customer would potentially purchase based upon the product that they ordered. The database provides the product SKU number, an Upsell 1 SKU number, Upsell 2 SKU number and Upsell N SKU number indicating that there could be an infinite number of products that could related to the purchased product.
13 FIG. 2 FIG.B The database ofmay alternately or additionally represent the Retail Security Network Products Upsell Database which is provided by the Retail Security Network of. This database contains the upsell products for sale (by their SKU numbers) and the products that a customer purchased. The database provides the upsell product SKU number, a Product 1 SKU number, Product 2 SKU number and Product N SKU number indicating that there could be an infinite number of products related to the upsell product, and the Retail Employee ID as a record of that employee selling an upsell product.
13 FIG. 2 FIG.B The database ofmay alternately or additionally represent the Ordering Website Network Products Sale Database which is provided by the Ordering Website Network of. This database contains the products for sale (by their SKU numbers) and the related upsell products that a customer would potentially purchase based upon the product that they ordered. The database provides the product SKU number, an Upsell 1 SKU number, an Upsell 2 SKU number and Upsell N SKU number indicating that there could be an infinite number of products that could related to the purchased product.
2 FIG.B The Ordering Website Network Products Upsell Database which is provided by the Ordering Website Network ofis similar, but instead contains the upsell products for sale (by their SKU numbers) and the products that a customer purchased. The database provides the upsell product SKU number, an Product 1 SKU number, Product 2 SKU number and Product N SKU number indicating that there could be an infinite number of products related to the upsell product.
14 FIG. is a flow diagram illustrating procedures for installation of NFC tags to be used with the present technologies.
14 FIG. 2 FIG.B 1405 1410 1415 110 1420 1425 1430 The flow diagram ofdisplays operations of the Retail Security Network Security Module of. The process begins with receiving a request from the Blockchain Security Network Blockchain Security Module for the Retail Security Network Products Database and Retail Security Network Products Upsell Database (step). The Retail Security Network Products Database and Retail Security Network Upsell Database are sent to the Blockchain Security Network Blockchain Security Module (step). The Retail Security Network Security Module then receives public keys and NFC codes from the Upsell Security Network Retail Protection Module (step). The NFC tagsare installed on the products that will be on sale in the retail stores (step). It is determined (at step) if the Retail Security Network Security Module receives an Upsell Product SKU number and Retail Employee ID from the Retail Employee. If the Upsell Product SKU number and Retail Employee ID is received, then the Retail Employee ID is stored in the Retail Security Network Upsell Database (step). If no, the process returns to the beginning.
15 FIG. is a flow diagram illustrating tracking of transactions using NFC tags, databases, and a distributed ledger.
15 FIG. 2 FIG.B 1505 1510 1515 1520 1525 1530 1535 1540 1545 1550 1555 1565 1570 1560 1575 1505 1580 1585 The flow diagram ofdisplays operations of the Blockchain Security Network Blockchain Security Module of. The Blockchain Security Module begins with sending a request to the Ordering Website Network for the Ordering Website Network Products Database and Ordering Website Network Products Upsell Database (step) and receives the Ordering Website Network Products Database and Ordering Website Network Products Upsell Database (step). The Ordering Website Network Products Database and Ordering Website Network Products Upsell Database are stored in the Blockchain Security Network Blockchain Database (step). Then the Blockchain Security Module sends a request to the Retail Security Network for the Retail Security Network Products Database and Retail Security Network Products Upsell Database (step), and receives the Retail Security Network Products Database and Retail Security Network Products Upsell Database (step). The Blockchain Security Module also receives the Buyer customer data and transaction data from the Ordering Website Network Security Module (step). The Retail Security Network Products Database, Retail Security Network Products Upsell Database, customer data, and transaction data are stored in the Blockchain Security Network Blockchain Database (step). Private and public keys are generated and/or assigned to each data entry to securely store the data (step). The public keys and optionally the private keys and are sent to the Upsell Security Network (step). It is determined (at step) if the Blockchain Security Module receives the NFC code, public and/or private key from the Upsell Security Network Ordering Website Protection Module. If yes, it is determined (at step) if the NFC code has been used. If the NFC code has not been used, the upsell products are extracted from the Blockchain Database (step), and is sent to the Buyer (step). If the NFC code has been used, an error message is sent to the Buyer (step). If data has not been received from the Upsell Security Network Ordering Website Protection Module, it is then determined (at step) if the Blockchain Security Module receives the NFC code, public and private key from the Upsell Security Network Retail Protection Module. If not, the process returns to the beginning (step). If yes, the upsell products are extracted from the Blockchain Database (step), and are sent to the Retail Employee (step).
16 FIG. illustrates a transaction tracking database optionally for use with or instead of the distributed ledger.
16 FIG. 2 FIG.B The database ofmay represent the Blockchain Database which is provided by the Blockchain Security Network of. It which securely stores all the data from the Retail Security Network, Ordering Website Network, Buyer and Upsell Security Network. The database contains the private and public keys, customer data such as the Buyer's name, address, and e-mail, NFC Data such as the code, ordering website, and retailer, product data such as the SKU number, upsell product SKU numbers, and transaction data such as account numbers, price, and if NFC use.
16 FIG. 2 FIG.B The database ofmay alternately or additionally represent the Upsell Security Database of, which receives the private and public keys from the Blockchain Security Network Blockchain Security Module and assigns an NFC code to the data entries to provide Buyers and Retail Employees an NFC code that can be used to receive public key to access the secure data (the upsell products) in the Blockchain Security Network Blockchain Database. The database contains both the private and public keys, the NFC Data such as the code, ordering website and retailer.
17 FIG. is a flow diagram illustrating data transfer with respect to keys and NFC data in a purchase made through an online retailer.
17 FIG. 2 FIG.B 1705 1710 1715 1720 1725 1730 1735 1740 The flow diagram ofdisplays operations of the Upsell Security Network Ordering Website Protection Module of. The process begins with receiving the public keys and optionally private keys from Blockchain Security Network Blockchain Security Module (step). The private and public keys are stored in the Upsell Security Network Upsell Database (step), and an NFC code is assigned to a public key (step). The NFC code is sent to the Blockchain Security Network Blockchain Security Module (step). The public keys and NFC code are sent to the Ordering Website Network Security Module (step) to be used on the products that are shipped to the Buyer. The Upsell Security Network Ordering Website Protection Module is then continuously polling for NFC code and public key from the Buyer (step). The NFC code and public key are received from the Buyer (step). The NFC code, Buyer public key and optionally the Upsell Security Network Upsell Database private key are sent to the Blockchain Security Network Blockchain Security Module (step).
18 FIG. is a flow diagram illustrating data transfer with respect to keys and NFC data in a purchase made through a brick-and-mortar retailer.
18 FIG. 2 FIG.B 1805 1810 1815 1820 1825 1830 1835 The flow diagram ofdisplays operations of the Upsell Security Network Retail Protection Module of. The process begins with receiving the private and public keys from Blockchain Security Network Blockchain Security Module (step). The private and public keys are stored in the Upsell Security Network Upsell Database (step), and an NFC code is assigned to a public key (step). The NFC code is sent to the Blockchain Security Network Blockchain Security Module (step). The public keys and NFC code are sent to the Retail Security Network Security Module to be used on the products that are in the retail stores (step). The NFC code and public key are received from the Retail Employee (step). The NFC code, Buyer public key and optionally the Upsell Security Network Upsell Database private key are sent to the Blockchain Security Network Blockchain Security Module (step).
800 While various flow diagrams provided and described above may show a particular order of operations performed by some embodiments of the subject technology, it should be understood that such order is exemplary. Alternative embodiments may perform the operations in a different order, combine certain operations, overlap certain operations, or some combination thereof. It should be understood that unless disclosed otherwise, any process illustrated in any flow diagram herein or otherwise illustrated or described herein may be performed by a machine, mechanism, and/or computing systemdiscussed herein, and may be performed automatically (e.g., in response to one or more triggers/conditions described herein), autonomously, semi-autonomously (e.g., based on received instructions), or a combination thereof. Furthermore, any action described herein as occurring in response to one or more particular triggers/conditions should be understood to optionally occur automatically response to the one or more particular triggers/conditions.
The foregoing detailed description of the technology has been presented for purposes of illustration and description. It is not intended to be exhaustive or to limit the technology to the precise form disclosed. Many modifications and variations are possible in light of the above teaching. The described embodiments were chosen in order to best explain the principles of the technology, its practical application, and to enable others skilled in the art to utilize the technology in various embodiments and with various modifications as are suited to the particular use contemplated. It is intended that the scope of the technology be defined by the claim.
Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.
June 3, 2024
August 25, 2026
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.