Method and system for generating digital receipt proof of origin - Patents.com

By generating and storing digital receipts on the blockchain, the problem of difficult proof of product source in electronic transactions is solved, and an untampered digital receipt record is realized, ensuring the authenticity and legality of the transaction.

JP2025504313APending Publication Date: 2025-02-12MASTERCARD INT INC
View PDF 6 Cites 0 Cited by

Patent Information

Application Number
JP2024539320
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2021-12-28
Filing Date
2022-12-14
Publication Date
2025-02-12

AI Technical Summary

Technical Problem

In the prior art, it is difficult to generate and verify the proof of the product source in electronic transactions, and electronic receipts are easily forged, making it difficult for consumers to verify the authenticity and legality of the product.

Method used

By using blockchain technology to generate and store digital receipts, immutable records are created, including detailed information such as product identifiers, transaction time, date and amount, and digitally signed by the merchant to ensure that they are not tampered with.

Benefits of technology

A record of tamper-free digital receipts is provided, and consumers can verify their authenticity through blockchain, prevent fraudulent transactions, and ensure the reliability of the product's source.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025504313000001_ABST
    Figure 2025504313000001_ABST
Patent Text Reader

Abstract

A method for establishing an immutable record of proof of origin for a digital receipt using blockchain includes receiving, by a receiver of a computing device, at least a product identifier for each of one or more products; generating, by a processor, a data object including a digital receipt including at least the product identifier for each of the one or more products; transmitting, by a transmitter of the computing device, the generated data object to a blockchain node in a blockchain network; receiving, by the receiver, a notification message from the blockchain node indicating that a new blockchain data item has been successfully added to a blockchain associated with the blockchain network; and transmitting, by the transmitter, the generated data object to a user device.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] (CROSS REFERENCE TO RELATED APPLICATIONS) This application claims the benefit of U.S. Patent Application No. 17 / 563,270, filed December 28, 2021, the entire disclosure of which is incorporated herein by reference for all purposes.

[0002] The present disclosure relates to generating proof of origin for products via digital receipts, and in particular to using blockchain to establish an immutable record of proof of origin for digital receipts. [Background technology]

[0003] Traditionally, a consumer wanting to purchase a product would physically go to a store and exchange currency for a physical good or service. If the consumer needed to return or exchange a product, the consumer had to provide proof that they purchased the same product from the same store. To meet this need, the store issued the consumer a physical receipt, which served as a record of the transaction including the time, date, amount paid, and the product or products purchased as part of the transaction.

[0004] More recently, a huge number of transactions between consumers and merchants are conducted electronically, via the Internet, application programs, automated kiosks, etc. For these types of transactions, the creation and distribution of a physical receipt is inconvenient, if not impossible. As a result, consumers are typically provided with an electronic form of receipt, such as via text message or email.

[0005] However, with the sophistication of computing technology, confirmation emails and text messages can be easily forged. When a consumer purchases a product from a second-hand or reseller, the consumer may require proof of the original purchase and request a receipt to verify the authenticity of the product. In other cases, the receipt may be used to obtain a refund or reimbursement for a product or service that was not actually purchased. Although receipts for consumers can be easily created, consumers may be wary of the legitimacy of electronic receipts, as counterfeit electronic receipts are prevalent. Thus, there is a need for a system that provides an independently verifiable digital receipt for a product, which can establish the origin of the digital receipt and prevent fraud. Summary of the Invention

[0006] The present disclosure provides a description of a system and method for establishing an immutable record of proof of origin of a digital receipt using blockchain. When a merchant makes a transaction with a consumer, the merchant generates a digital receipt of the transaction, which includes details including at least a product identifier for each of the products purchased in the transaction, and any other relevant data such as time, date, point of sale identifier, transaction amount, etc. Before providing the digital receipt to the consumer, the merchant provides the digital receipt to a node in the blockchain network. The digital receipt is included in a new blockchain data value, which is included in a new block that is verified and added to the blockchain. The merchant then provides the digital receipt to the consumer. By storing the digital receipt in the blockchain, an immutable record of the digital receipt is created, which cannot be modified, and which the consumer can use as an independently verifiable proof of original purchase. As a result, if the consumer wishes to resell the product to another party, the digital receipt can be provided to the other party, who can then refer to the blockchain and verify that the digital receipt is authentic and legitimate. The result is immutable proof of the digital receipt's origin, preventing consumers, merchants, and other parties from potentially conducting fraudulent transactions.

[0007] A method for establishing an immutable record of proof of origin for a digital receipt using blockchain includes receiving, by a receiver of a computing device, at least a product identifier for each of one or more products; generating, by a processor of the computing device, a data object including the digital receipt including at least the product identifier for each of the one or more products; transmitting, by a transmitter of the computing device, the generated data object to a blockchain node in a blockchain network; receiving, by the receiver of the computing device, a notification message from the blockchain node indicating that a new blockchain data item has been successfully added to a blockchain associated with the blockchain network, the new blockchain data item including at least the generated data object; and transmitting, by the transmitter of the computing device, the generated data object to a user device.

[0008] A system for establishing an immutable record of proof of origin for a digital receipt using blockchain includes a blockchain network including at least blockchain nodes; a user device; and a computing device including a receiver that receives at least a product identifier for each of one or more products, a processor that generates a data object including the digital receipt including at least the product identifier for each of the one or more products, and a transmitter that transmits the generated data object to the blockchain node, wherein the receiver of the computing device receives a notification message from the blockchain node indicating that a new blockchain data item has been successfully added to a blockchain associated with the blockchain network, the new blockchain data item including at least the generated data object, and the transmitter of the computing device transmits the generated data object to the user device.

[0009] The scope of the present disclosure is best understood from the following detailed description of exemplary embodiments when read in conjunction with the accompanying drawing figures, which include the following figures: [Brief description of the drawings]

[0010] [Figure 1] FIG. 2 is a block diagram illustrating a high-level system architecture for establishing immutable proof of origin for digital receipts, according to an example embodiment. [Diagram 2] 2 is a block diagram illustrating a computing device in the system of FIG. 1 for establishing immutable proof of origin for a digital receipt, according to an exemplary embodiment. [Figure 3A] FIG. 2 is a flow diagram illustrating a process for establishing immutable proof of origin of a digital receipt for a transaction in the system of FIG. 1 according to an exemplary embodiment. [Figure 3B] FIG. 2 is a flow diagram illustrating a process for establishing immutable proof of origin of a digital receipt for a transaction in the system of FIG. 1 according to an exemplary embodiment. [Figure 4] 1 is a flowchart illustrating an example method for establishing an immutable record of proof of origin for a digital receipt using blockchain, according to an example embodiment. [Diagram 5] FIG. 1 is a block diagram illustrating a computer system architecture, in accordance with an exemplary embodiment. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0011] Further areas of applicability of the present disclosure will become apparent from the detailed description provided hereinafter. It should be understood that the detailed description of the exemplary embodiments is for purposes of illustration only, and is therefore not intended to necessarily limit the scope of the disclosure.

[0012] System for generating digital receipt proof of origin FIG. 1 illustrates a system 100 for establishing an immutable record of proof of origin for digital receipts using blockchain.

[0013] The system 100 can include a computing device 102. The computing device 102, described in more detail below, can be configured to generate a digital receipt for a payment transaction or any other transaction or exchange requiring proof. For example, the computing device 102 can be a point-of-sale device or system or a merchant involved in a transaction with a consumer for the purchase of one or more products (e.g., goods and / or services). The computing device 102 can be any type of device suitable for being specially programmed to perform the functions described herein, such as a desktop computer, a laptop computer, a tablet, a notebook computer, a smartphone, a server, or the like.

[0014] In the system 100, the computing device 102 can receive data of one or more products to be purchased as part of a transaction. If the transaction is a physical transaction (e.g., the consumer is physically present at a merchant location), the product details can be received by the computing device 102 via an optical imaging device that reads a machine-readable code (e.g., a barcode) displayed on the product that is encoded with product data such as a product identifier (e.g., Universal Product Code, Stock Keeping Unit (SKU), International Standard Book Number (ISBN), etc.), or via other suitable methods such as manual entry by a user (e.g., a merchant's employee) using a suitable input device (e.g., keyboard, mouse, microphone, etc.). If the transaction is an electronic transaction, the product details can be received by the computing device 102 from a second device, such as the user device 104. For example, the user device 104 can interact with the computing device 104 via a web page, an application program, an application programming interface, or other suitable methods. In one example, the user device 104 can be used to visit a merchant's webpage and select a product in an online shopping cart, where the computing device 102 can receive product data regarding the selection via traditional e-commerce shopping methods. In another example, the consumer can use the user device 104 to read product details from a machine-readable code displayed on the product, and the user device 104 can electronically transmit the product data to the computing device 102 using an appropriate communication network and method, such as radio frequency, Bluetooth, local area network, etc. The user device 104 can be any type of computing device suitable for performing the functions described herein, such as a desktop computer, laptop computer, tablet, notebook computer, smartphone, smart TV, mobile phone, etc.

[0015] The computing device 102 may receive at least a product identifier for each of the products purchased as part of the transaction. In some cases, the computing device 102 may receive additional data for some or each product, where such data may vary depending on the product being purchased. For example, the additional product data may include information regarding size, color, quantity, manufacturer, serial number, registration number, version number, date of manufacture, expiration date, etc. Upon receiving the product data for each product, the computing device 102 may calculate a total transaction amount to be paid for the purchase of the selected product(s). The transaction amount may be presented to the consumer (e.g., via a display device interfaced with the computing device 102 in the case of a physical transaction, or by the user device 104 after being transmitted by the computing device 102 to the user device 104 in the case of an electronic transaction). The consumer may then provide payment for the transaction using any appropriate method. The computing device 102 may process the payment using an appropriate method and verify that the transaction was successfully executed (e.g., that a sufficient payment was made to cover the calculated transaction amount).

[0016] After the transaction, the computing device 102 can generate a digital receipt for the transaction. The digital receipt can be a data object generated by the computing device 102 that includes data related to the transaction. The data object can be any suitable type of data object, such as a data file in any format suitable for use by the computing device 102 and / or the user device 104. For example, the data object can be a text file formatted similarly to a physical paper receipt, an image file generated to approximate the appearance of a digital scan of a physical paper receipt, a document file that includes machine-readable code encoded with data related to the transaction, etc. The data included in the data object can include at least a product identifier for each of the products purchased in the transaction. The data may also include any additional data, such as additional data about one or more of the products, transaction time, transaction date, merchant identifier, merchant name, geographic location, transaction type, currency type, transaction amount, payment method, issuer information, acquirer information, payment processor, transaction identifier, loyalty data, coupon data, rewards data, a device identifier for the user device 104 (e.g., registration number, media access control address, email address, phone number, etc.), as desired by the computing device 102 and / or user device 104. In some cases, the consumer may request the data to be included on the digital receipt, such as when submitting payment information.

[0017] Once the data object, including the digital receipt, is generated, the computing device 102 can electronically transmit the data object to a blockchain node 108 in the blockchain network 106 for addition to the associated blockchain. The blockchain network 110 can include multiple blockchain nodes 108. Each blockchain node 108 can be a computing system, such as that shown in FIG. 5 and described in more detail below, configured to perform functions associated with processing and managing a blockchain, including generating blockchain data values, verifying proposed blockchain transactions, verifying digital signatures, generating new blocks, validating new blocks, and maintaining a copy of the blockchain.

[0018] A blockchain may be a distributed ledger comprising at least a number of blocks. Each block may include at least a block header and one or more data values. Each block header may include at least a timestamp, a block reference value, and a data reference value. The timestamp is the time when the block header is generated and may be represented using any suitable method (e.g., UNIX timestamp, DateTime, etc.). The block reference value may be a value that references (e.g., based on the timestamp) a preceding block in the blockchain. In some embodiments, the block reference value in the block header may be a reference to the block header of the most recently added block preceding each block. In an exemplary embodiment, the block reference value may be a hash value generated by hashing the block header of the most recently added block. The data reference value may similarly be a reference to one or more data values ​​stored in the block including the block header. In an exemplary embodiment, the data reference value may be a hash value generated by hashing one or more data values. For example, the block reference value may be the root of a Merkle tree generated using one or more data values.

[0019] The use of block reference values ​​and data reference values ​​in each block header can provide immutability to the blockchain. Any attempted change to the data value requires the generation of a new data reference value for the block, which in turn requires the generation of a new block reference value for the subsequent block, which in turn requires the generation of a new block reference value for all subsequent blocks. For the change to be permanent, the above must be performed and updated for all blockchain nodes 108 in the blockchain network 106 before a new block is created and added to the blockchain. Computational and communication limitations can make such changes very difficult, if not impossible, and thus the blockchain achieves immutability.

[0020] In some embodiments, a blockchain can be used to store information about a blockchain transaction performed between two different blockchain wallets. A blockchain wallet can include a private key of a cryptographic key pair used to generate a digital signature that serves as a payer's acknowledgement of the blockchain transaction. The digital signature can be verified by the blockchain network 106 using the public key of the cryptographic key pair. In some cases, the term "blockchain wallet" can specifically refer to a private key. In other cases, the term "blockchain wallet" can refer to a computing device (e.g., recipient device 106, etc.) that stores a private key for use in a blockchain transaction. For example, each computing device can have its own private key for each cryptographic key pair, and each computing device can be a blockchain wallet for use in transactions with a blockchain associated with the blockchain network. The computing device can be any type of device suitable for storing and utilizing a blockchain wallet, such as a desktop computer, a laptop computer, a notebook computer, a tablet computer, a mobile phone, a smartphone, a smart watch, a smart TV, a wearable computing device, an embedded computing device, etc.

[0021] Each blockchain data value stored in the blockchain may correspond to a blockchain transaction or other data storage, if applicable. A blockchain transaction may include at least a digital signature of the sender of the currency (e.g., user device 104) generated using the sender's private key, a blockchain address of the recipient of the currency (e.g., computing device 102) generated using the recipient's public key, and the blockchain currency amount to be transferred or other data being stored. In some blockchain transactions, the transaction may also include one or more blockchain addresses of the sender where the blockchain currency is currently stored (e.g., the digital signature certifies access to such currency), and an address generated using the sender's public key for any changes held by the sender. The addresses sent with the cryptocurrency that can be used in future transactions are called "output" addresses, as each address was previously used to capture the output of a previous blockchain transaction, and are also called "unspent transactions". This is because there was currency sent to the address during a previous transaction where that currency remains unspent. In some cases, the blockchain transaction may also include the sender's public key for use by the entity in validating the transaction. For conventional processing of a blockchain transaction, such data may be provided by either the sender or the recipient to a blockchain node 108 in the blockchain network 106. The node may verify the digital signature using the public key of the sender's wallet's cryptographic key pair. The node may also verify the sender's access to the funds (e.g., that the unspent transaction has not yet been spent and was sent to an address associated with the sender's wallet) and a process known as "confirming" the transaction. The node may then include the blockchain transaction in a new block.In a traditional blockchain implementation, a new block may be verified by other nodes in the blockchain network 106 and distributed to all of the blockchain nodes 108 in the blockchain network 106 before being added to the blockchain. If the blockchain data value is not associated with a blockchain transaction but instead is associated with the storage of other types of data, the blockchain data value may still include or involve digital signature verification.

[0022] In the system 100, the blockchain data value may be used to store a digital receipt. The blockchain node 108 may receive a data object from the computing device 102 that is electronically transmitted to the computing device 102 using a suitable communication network and method. The blockchain node 108 may generate a new blockchain data value that includes the data object, thereby including the new blockchain data value in a new block generated for the blockchain. The new block may be transmitted to other blockchain nodes 108 in the blockchain network 106 for confirmation using conventional methods. Once the new block is confirmed by a majority of the blockchain nodes 108, the block may be added to the blockchain. In some embodiments, the blockchain node 108 may return a notification message to the computing device 102 to notify the computing device 102 that the data object was successfully added to the blockchain. In some cases, each blockchain data value in the blockchain may have a unique identifier associated with it (referred to herein as a blockchain identifier or a blockchain data value identifier). In such a case, the notification message may include the unique identifier, which may be used by the computing device 102 to identify the blockchain data value in the new block and verify that the data object is included.

[0023] After the data object is successfully added to the blockchain, the computing device 102 can electronically transmit the data object to the user device 104. The data object can be transmitted electronically to the user device 104 using any suitable communication network and method, which can be requested by the user device 104, for example, indicated during the consumer's registration process as a user, or provided during the transaction along with payment data, etc. For example, for a physical transaction, the data object can be emailed to the user device 104 via an email address provided during or before the transaction. In another example, for an electronic transaction, the data object can be transmitted to the user device 104 via an application program that the consumer uses to perform the transaction. In an embodiment in which the blockchain node 108 provides a unique identifier for the blockchain data value, including the data object, to the computing device 102, the computing device 102 can provide the unique identifier along with the data object to the user device 104, such as for use by the user device 104 in verifying that the data object is included in the blockchain.

[0024] Once the user device 104 receives the data object, the user of the user device 104 can utilize the data object in providing authenticity and validation of the transaction. For example, the user of the user device 104 may have purchased an item from a merchant associated with the computing device 102 and be interested in reselling the item. The user may contact a third party for resale. The third party may be interested in validating that the user purchased the item directly from the merchant, such as to verify the authenticity of the product or to ensure that there were no additional ownership interests that could adversely affect the value of the item. The user device 104 can electronically transmit the data object, including a digital receipt for the purchase of the item, to the validation system 110, which may be another computing device or computing system used by or on behalf of the third party. The validation system 110 can receive the data object and then look for inclusion of the data object on a blockchain associated with the blockchain network 106. In some cases, the blockchain may be publicly accessible, in which case the verification system 110 can access the blockchain via the internet or other suitable method, and subsequently view the blockchain data values ​​to identify blockchain data values ​​that contain data objects that match the data object received from the user device 104. In other cases, the blockchain may be permissioned or private. In such cases, the verification system 110 can electronically transmit the data object to a blockchain node 108 or other permissioned system, which can identify that the data object is included in the blockchain, and provide a result to the verification system 110 indicating whether a match was found.

[0025] If the data object is successfully identified as being in the blockchain, the verification system 110 can verify that the data contained in the data object in the blockchain matches the data contained in the data object received from the user device 104, thereby ensuring that the user device 104 was involved (e.g., via a device identifier, a specified payment method, a match with provided details, etc.) or that a resalable item was included in the transaction. If the third party is satisfied with the verification result, the third party can proceed with the transaction and purchase the item for resale.

[0026] In some embodiments, the computing device 102 can be configured to digitally sign the digital receipt before including it in the blockchain. In such embodiments, the computing device 102 can possess a cryptographic key pair including a public key and a private key, such as may be used for a blockchain wallet. After the data object that includes the digital receipt is generated, the computing device 102 can digitally sign the data object using its private key and an appropriate signature algorithm. The computing device 102 can electronically transmit the signed data object to the blockchain node 108 for inclusion in a new blockchain data value that is added to the blockchain via a new block. When an entity, such as the blockchain node 108, the user device 104, or the verification system 110, wishes to verify the data object, the entity can request the public key of the cryptographic key pair from the computing device 102. The entity receives the public key and can use it to verify the digital signature of the data object using a signature generation algorithm. If the verification is successful, the digital receipt is authentic from the computing device 102 and therefore from the associated merchant or other entity. In such cases, the verification system 110 can verify that an item purchased through resale was purchased from a known, trusted merchant, rather than, for example, another merchant posing as the known, trusted merchant (e.g., using the same name in a digital receipt or other data). In these cases, the merchant associated with the computing device 102 can make the public key publicly available, for example, on a website or via an application program associated with the merchant, to encourage consumers and others to verify the purchase of an authentic product and the origin of the product.

[0027] The methods and systems described herein provide for establishing immutable proof of origin for digital receipts using blockchain. Digital receipts may be generated by merchants for any type of transaction and then stored on the blockchain and further digitally signed by the merchant for additional verification. The digital receipts are provided to consumers involved in the transaction, who may use the digital receipt to verify, for any reason, the transaction that occurred and the product(s) purchased in that transaction. Furthermore, because blockchain is immutable, any attempt to modify the digital receipt may be discovered by any interested party, such as a third party purchasing a product second-hand from the consumer. As a result, the methods and systems described herein use blockchain to provide electronic and digital receipts that are highly resistant to fraud without requiring significant modifications to merchant and consumer systems.

[0028] Computing Device 2 illustrates one embodiment of a computing device 102 of the system 100. It will be apparent to one of ordinary skill in the art that the embodiment of the computing device 102 illustrated in FIG. 2 is provided merely as an example and does not encompass all possible configurations of a computing device 102 suitable for performing the functions described herein. For example, computer system 500 illustrated in FIG. 5 and described in more detail below may be a suitable configuration of a computing device 102. Additional components in the system 100, such as user device 104, blockchain node 108, and validation system 110, may include components illustrated in FIG. 2 and described below.

[0029] The computing device 102 may include a receiving device 202. The receiving device 202 may be configured to receive data over one or more networks via one or more network protocols. In some cases, the receiving device 202 may be configured to receive data from the user device 104, the blockchain node 108, the verification system 110, and other systems and entities via one or more communication means such as radio frequency, a local area network, a wireless area network, a cellular communication network, Bluetooth, the Internet, etc. In some embodiments, the receiving device 202 may include multiple devices, such as different receiving devices receiving data over different networks, such as a first receiving device receiving data over a local area network and a second receiving device receiving data over the Internet. The receiving device 202 may receive an electronically transmitted data signal, whereby upon receipt of the data signal by the receiving device 202, data may be superimposed or encoded on the data signal and may be decoded, parsed, read, or retrieved. In some cases, the receiving device 202 may include a parsing module for parsing the received data signal to retrieve the data superimposed thereon. For example, the receiving device 202 may include an analysis program configured to receive a data signal and convert the received data signal into usable input for functions performed by the processing device to implement the methods and systems described herein.

[0030] The receiving device 202 can be configured to receive data signals transmitted electronically by the user device 104 and overlaid or encoded with payment data, product data, requested fields of a digital receipt, a request for a public key, contact information, etc. The receiving device 202 can also be configured to receive data signals transmitted electronically by the blockchain node 108 and overlaid or encoded with a blockchain data value, a unique identifier, a new block, blockchain data, etc. The receiving device 202 can further be configured to receive data signals transmitted electronically by the validation system 110 and overlaid or encoded with a request for a public key, a data object, a signed data object, etc.

[0031] The computing device 102 may also include a communication module 204. The communication module 204 may be configured to transfer data between modules, engines, databases, memory, and other components of the computing device 102 to perform the functions described herein. The communication module 204 may include one or more communication types and may utilize various communication methods for communication within the computing device. For example, the communication module 204 may include a bus, a connecting pin connector, wires, etc. In some embodiments, the communication module 204 may also be configured to communicate between internal components of the computing device 102 and external components of the computing device 102, such as an externally connected database, display device, input device, etc. The computing device 102 may also include a processing unit. The processing unit may be configured to perform the functions of the computing device 102 described herein, as will be apparent to one of ordinary skill in the art. In some embodiments, the processing unit may include and / or consist of multiple engines and / or modules specifically configured to perform one or more functions of the processing unit, such as the query module 216, the generation module 218, the validation module 220, etc. As used herein, the term "module" may be software or hardware that is specifically programmed to receive an input, perform one or more operations using the input, and provide an output. The inputs, outputs, and operations performed by the various modules will be apparent to one of ordinary skill in the art based on this disclosure.

[0032] The computing device 102 may include an account database 206. The account database 206 may be configured to store a number of account profiles 208 using a suitable data storage format and schema. The account database 206 may be a relational database utilizing a structured query language for storing, identifying, modifying, updating, accessing, etc., structured data sets stored therein. Each account profile 208 may be a structured data set configured to store data related to one or more consumers and / or associated user devices 104. For example, a consumer may establish an account with a merchant associated with the computing device 102, and the account profile may include payment data, data objects including digital receipts of past transactions, data object field preferences, communication data, loyalty data, rewards data, shipping information, product preferences, warranty data, etc.

[0033] The computing device 102 may also include a memory 214. The memory 214 may be configured to store data (e.g., public keys, private keys, symmetric keys, etc.) for use by the computing device 102 in performing the functions described herein. The memory 214 may be configured to store data using appropriate data formatting methods and schemas and may be any suitable type of memory (e.g., read-only memory, random access memory, etc.). The memory 214 may include, for example, encryption keys and algorithms, communication protocols and standards, data formatting standards and protocols, program code for modules and application programs for the processing device, and other data suitable for use by the computing device 102 in performing the functions disclosed herein, as would be apparent to one of ordinary skill in the art. In some embodiments, the memory 214 may include a relational database using a structured query language to store, identify, modify, update, access, etc., stored structured data sets. The memory 214 may be configured to store, for example, encryption keys, encryption key pairs, communication information, data formatting rules, blockchain data, signature generation algorithms, account information, etc.

[0034] The computing device 102 may include a query module 216. The query module 216 may be configured to run a query on a database to identify information. The query module 216 may receive one or more data values ​​or query strings based on which it may run a query on a designated database, such as the memory 212 of the computing device 102, to identify information stored therein. The query module 216 may output the identified information to an appropriate engine or module of the computing device 102, as appropriate. The query module 216 may, for example, run a query on the account database 206 to identify an account profile 208 of a consumer involved in a new transaction, such as via a username and password provided by the user device 104, and identify preferences for fields to be included in a digital receipt generated for the new transaction.

[0035] The computing device 102 may also include a generation module 218. The generation module 218 may be configured to generate data for use by the computing device 102 in performing the functions described herein. The generation module 218 may receive instructions as input, generate data based on the instructions, and output the generated data to one or more modules of the computing device 102. For example, the generation module 218 may be configured to generate notification messages, confirmation messages, digital signatures, machine-readable codes, transaction amounts, data objects, digital receipts, etc.

[0036] The computing device 102 may also include a validation module 220. The validation module 220 may be configured to perform validation of the computing device 102 as part of the functionality described herein. The validation module 220 may receive as input instructions, which may also include data used to perform the validation, perform the validation upon request, and output the results of the validation to another module or engine of the computing device 102. The validation module 220 may be configured, for example, to validate a digital signature using an appropriate signature generation algorithm and key to validate a data object and / or the data contained therein.

[0037] The computing device 102 may also include a transmitting device 222. The transmitting device 222 may be configured to transmit data over one or more networks via one or more network protocols. In some cases, the transmitting device 222 may be configured to transmit data to the user device 104, the blockchain node 108, the verification system 110, and other entities via one or more communication means (e.g., a local area network, a wireless area network, cellular communication, Bluetooth, radio frequency, the Internet, etc.). In some embodiments, the transmitting device 222 may include multiple devices, such as a first transmitting device for transmitting data over a local area network and a second transmitting device for transmitting data over the Internet, or different transmitting devices for transmitting data over different networks. The transmitting device 222 may electronically transmit a data signal having the superimposed data, the data being parsable by the receiving computing device. In some cases, the transmitting device 222 may include one or more modules for superimposing, encoding, or formatting the data into a data signal suitable for transmission.

[0038] The sending device 222 can be configured to electronically send the data signal overlaid or encoded with the data object, the signed data object, the transaction amount, the transaction data, the product data, the verification result, the public key, etc. to the user device 104. The sending device 222 can also be configured to electronically send the data signal overlaid or encoded with the data object, the signed data object, the public key, the blockchain data value, the unique identifier, the request for the unique identifier, etc. to the blockchain node 108. The sending device 222 can further be configured to electronically send the data signal overlaid or encoded with the data object, the signed data object, the public key, the verification result, etc. to the verification system 110.

[0039] Computing device 102 may also include input device(s) 224. Input device 224 may be any type of device suitable for capturing input from a user of computing device 102 or any other device or item (e.g., product) using any suitable method. Input device 224 may be, for example, a keyboard, a mouse, a capacitive touch screen, a track pad, a click wheel, a microphone, a camera, an optical imaging device, etc. Input device 224 may be configured to receive user commands, receive other data input by a user (e.g., payment data, product data, preferences, etc.), read machine-readable codes, etc. Input device 224 may be directly connected to computing device 102, e.g., internally, or may interface with computing device 102, e.g., via one or more external cables or wirelessly using suitable communications networks and methods.

[0040] The computing device 102 may also include a display device 226. The display device 226 may be any type of device suitable for displaying data to a user of the computing device 102 using any suitable method. The display device 226 may be, for example, a monitor, a capacitive touch screen, a thin film transistor display, a liquid crystal display, a light emitting diode display, etc. The display device 226 may be configured to display product data, transaction amounts, data objects, etc. The display device 226 may be directly connected to the computing device 102, for example, internally, or may interface with the computing device 102, for example, via one or more external cables or wirelessly using suitable communications networks and methods.

[0041] Process for generating proof of origin for digital receipts 3A and 3B illustrate a process for generating proof of origin for a digital receipt for an electronic transaction using blockchain in the system 100 of FIG. 1.

[0042] In step 302, the user device 104 may add one or more products to a shopping cart (e.g., as a result of instructions from a user input) for purchase through electronic commerce via a website of a merchant associated with the computing device 102. Each time a product is added to the shopping cart, a product identifier for the product is electronically transmitted to the computing device 102 via an appropriate communication network and method. In step 304, the receiving device 202 of the computing device 102 may receive the product identifier. In step 306, the query module 216 of the computing device 102 may perform a query on the account database 206 of the computing device 102 to add the product identifier to the shopping cart associated with the user device 104, such as in the account profile 208 associated with the user device 104. In some cases, step 306 may include updating a transaction amount for the transaction that is displayed to the user of the user device 104 via a display device of the user device 104.

[0043] Once the user of the user device 104 is satisfied with the product selection, in step 308, the user device 104 may initiate a checkout process on the web browser via interaction with a button or other interactable object. As part of the checkout process, the user is prompted to enter payment data associated with a transaction account to be used as funds for the electronic payment transaction for the purchase of the selected product. The user device 104 may collect the payment data and any other suitable information (e.g., shipping information, billing address, requested fields on a digital receipt, etc.) and in step 310 may electronically transmit the payment data and other data to the computing device 102, such as through a form on a website accessed by the user device 104.

[0044] At step 312, the receiving unit 202 of the computing device 102 may receive the payment data from the user device 104 along with any other associated data. At step 314, the computing device 102 may process an electronic payment transaction from a transaction account associated with the payment data submitted by the user device 104 to a transaction account associated with the merchant for payment of a transaction amount based on the cost of the products selected for purchase and any applicable taxes and fees. Upon successful authorization of the payment transaction, the generating module 218 of the computing device 102 may generate a data object including a digital receipt of the transaction at step 316. The data object may include at least a product identifier for each of the selected products purchased in the transaction, and may include any additional data (such as additional product details, time, date, geographic location, device identifier of the user device 104, device identifier of the computing device 102, transaction type, payment method, currency, transaction amount, etc.) as desired by the computing device 102 and / or the user device 104. In step 318, the generation module 218 of the computing device 102 may digitally sign the data object using a private key of the computing device's 102 cryptographic key pair (e.g., stored in the memory 214 of the computing device 102).

[0045] In step 320, the sending device 222 of the computing device 102 can electronically transmit the signed data object to a blockchain node 108 in the blockchain network 106 using a suitable communication network and method. In step 322, the blockchain node 108 can receive the signed data object. In some embodiments, the blockchain node 108 can verify the digital signature of the data object using a public key of the computing device's cryptographic key pair, which may be attached to the signed data object or may have been previously provided to the blockchain node 108, such as through a registration process. In step 324, the blockchain node 108 generates a new blockchain data value that includes the signed data object and generates a new block that includes the blockchain data value and may include one or more additional blockchain data values. In some embodiments, a unique identifier can be generated for the new blockchain data value and included in the new blockchain data value. In step 326, the new block can be added to the blockchain via a conventional confirmation process of the blockchain network 106.

[0046] In step 328, the blockchain node 108 may electronically send a notification message to the computing device 102. The notification message may indicate that the signed data object was successfully added to the blockchain. The notification message may include a unique identifier if the new blockchain data value including the signed data object included a unique identifier. In step 330, the receiving device 202 of the computing device 102 may receive the notification message from the blockchain node 108. In step 332, the sending device 222 of the computing device 102 may electronically send the data object including the digital receipt to the user device 104 using a suitable communication network and method. In some cases, the signed data object may be sent to the user device 104. If the computing device 102 was provided with a unique identifier by the blockchain node 108, the unique identifier may be forwarded to the user device 104 along with the data object.

[0047] In step 334, the user device 104 receives the data object from the computing device 102, where the data object may be stored in its memory and displayed to a user of the user device 104. In step 336, the user device 104 may verify the authenticity of the digital receipt, such as by verifying that the data object is included in a blockchain data value in the blockchain. If the data object stored in the blockchain is digitally signed, the user device 104 may receive a public key of the computing device's cryptographic key pair and, as part of the verification process, use the public key to verify the digital signature of the data object in the blockchain.

[0048] Exemplary Method for Establishing an Immutable Record of a Digital Receipt FIG. 4 illustrates a method 400 for establishing an immutable record of proof of origin for a digital receipt using blockchain.

[0049] At step 402, at least a product identifier for each of the one or more products may be received by a receiver (e.g., receiving device 202) of a computing device (e.g., computing device 102). At step 404, a data object including a digital receipt may be generated by a processor (e.g., generating module 218) of the computing device. The digital receipt includes at least a product identifier for each of the one or more products. At step 406, the generated data object may be transmitted by a transmitter (e.g., transmitting device 222) of the computing device to a blockchain node (e.g., blockchain node 108) in a blockchain network (e.g., blockchain network 106). At step 408, a notification message may be received by the receiver of the computing device from the blockchain node indicating that a new blockchain data item has been successfully added to a blockchain associated with the blockchain network. The new blockchain data item includes at least the generated data object. At step 410, the generated data object may be transmitted by the transmitter of the computing device to a user device (e.g., user device 104).

[0050] In one embodiment, the digital receipt may further include at least one of a merchant identifier, a transaction amount, a time, a date, a geographic location, and a point of sale identifier. In some embodiments, receiving the product identifier for the one or more products may include using an optical imaging device (e.g., input device 224) to read a machine-readable code displayed on each of the one or more products encoded with the respective product identifier. In one embodiment, the product identifier for each of the one or more products may be received as a result of one or more actions performed using the user device. In some embodiments, the method 400 may further include storing a cryptographic key pair including a public key and a private key in a memory (e.g., memory 214) of the computing device, and digitally signing the generated data object using the private key by a processor (e.g., generation module 218) of the computing device, the digital signature may be transmitted with the generated data object to the blockchain node, and the digital signature may be included in the new blockchain data item.

[0051] In one embodiment, the notification message may include a blockchain identification value. In a further embodiment, the blockchain identification value may be transmitted to the user device along with the generated data object. In yet another embodiment, the method 400 may further include adding, by a processor of the computing device, the blockchain identification value to the generated data object prior to transmitting the generated data object to the user device.

[0052] Computer System Architecture 5 illustrates a computer system 500 in which an embodiment of the present disclosure or a portion thereof can be implemented as computer readable code. For example, the computing device 102 of FIG. 1 and FIG. 2 as well as the user device 104, the blockchain node 108, and the validation system 110 of FIG. 1 can be implemented in the computer system 500 using hardware, a non-transitory computer readable medium having instructions stored thereon, or a combination thereof, and can be implemented in one or more computer systems or other processing systems. The hardware can embody modules and components used to implement the methods of FIG. 3A, FIG. 3B, and FIG. 4.

[0053] Where programmable logic is used, such logic may be executed on commercially available processing platforms configured with executable software code to become special purpose computers or special purpose devices (e.g., programmable logic arrays, application specific integrated circuits, etc.). Those skilled in the art will appreciate that embodiments of the disclosed subject matter may be implemented in a variety of computer system configurations, including multi-core multiprocessor systems, minicomputers, mainframe computers, computers linked or clustered with distributed functionality, and pervasive or miniature computers that may be incorporated into virtually any device. For example, the above-described embodiments may be implemented using at least one processor device and memory.

[0054] A processor unit or device described herein may be a single processor, multiple processors, or a combination thereof. A processor device may have one or more processor "cores." The terms "computer program medium," "non-transitory computer-readable medium," and "computer usable medium" described herein are generally used to refer to tangible media, such as removable storage unit 518, removable storage unit 522, and a hard disk installed in hard disk drive 512.

[0055] Various embodiments of the present disclosure are described with respect to this exemplary computer system 500. After reading this description, it will be obvious to one of ordinary skill in the art how to implement the present disclosure using other computer systems and / or computer architectures. Although operations are described as sequential processes, some operations may in fact be performed in parallel, concurrently, and / or in a distributed environment using program code, where the program code is stored locally or remotely for access by a single-processor or multi-processor machine. Furthermore, in some embodiments, the order of operations may be rearranged without departing from the spirit of the disclosed subject matter.

[0056] The processor unit 504 can be a special purpose or general purpose processor unit that is specially configured to perform the functions described herein. The processor unit 504 can be connected to a communication infrastructure 506, such as, for example, a bus, a message queue, a network, a multi-core message passing scheme, etc. The network can be any network suitable for performing the functions disclosed herein and can include a local area network (LAN), a wide area network (WAN), a wireless network (e.g., WiFi), a mobile communication network, a satellite network, the Internet, optical fiber, coaxial cable, infrared, radio frequency (RF), or any combination thereof. Other suitable network types and configurations will be apparent to those skilled in the art. The computer system 500 can also include a main memory 508 (e.g., random access memory, read only memory, etc.) and can also include a secondary memory 510. The secondary memory 510 can include a hard disk drive 512 and a removable storage drive 514, such as, for example, a floppy disk drive, a magnetic tape drive, an optical disk drive, a flash memory, etc.

[0057] The removable storage drive 514 may read from and write to the removable storage unit 518 in a well-known manner. The removable storage unit 518 may include a removable storage medium that can be read from or written to by the removable storage drive 514. For example, if the removable storage drive 514 is a floppy disk drive or a universal serial bus port, the removable storage unit 518 may be a floppy disk or a portable flash drive, respectively. In one embodiment, the removable storage unit 518 may be a non-transitory computer readable recording medium.

[0058] In some embodiments, secondary memory 510 may include alternative means for allowing computer programs or other instructions to be loaded into computer system 500 (e.g., removable storage unit 522 and interface 520). Those skilled in the art will appreciate that examples of such means may include program cartridges and cartridge interfaces (e.g., as found in video game systems), removable memory chips (e.g., EEPROM, PROM, etc.) and associated sockets, other removable storage units 522 and interfaces 520.

[0059] Data stored in computer system 500 (e.g., in main memory 508 and / or in secondary memory 510) may be stored on any type of suitable computer-readable medium (e.g., optical storage (e.g., compact disc, digital versatile disc, Blu-ray disc, etc.) or magnetic tape storage (e.g., hard disk drive)). The data may be organized in any type of suitable database configuration (e.g., a relational database, a Structured Query Language (SQL) database, a distributed database, an object database, etc.). Suitable configurations and storage types will be apparent to those skilled in the art.

[0060] Computer system 500 may also include a communications interface 524. Communications interface 524 may be configured to allow software and data to be transmitted between computer system 500 and external devices. Exemplary communications interface 524 may include a modem, a network interface (e.g., an Ethernet card), a communications port, a PCMCIA slot and card, and the like. The software and data transferred via communications interface 524 may be in the form of signals, which may be electronic, electromagnetic, optical, or other signals as would be apparent to one skilled in the art. The signals travel over communications path 526, which is configured to transmit the signals and may be implemented using wire, cable, optical fiber, a telephone line, a cellular phone link, a radio frequency link, and the like.

[0061] The computer system 500 may further include a display interface 502. The display interface 502 may be configured to allow data to be transferred between the computer system 500 and an external display 530. Exemplary display interfaces 502 may include a high-definition multimedia interface (HDMI), a digital visual interface (DVI), a video graphics array (VGA), etc. The display 530 may be any suitable type of display to display data transferred via the display interface 502 of the computer system 500, including a cathode ray tube (CRT) display, a liquid crystal display (LCD), a light emitting diode (LED) display, a capacitive touch display, a thin film transistor (TFT) display, etc.

[0062] The computer program medium and computer usable medium may refer to memory (e.g., main memory 508 and secondary memory 510), which may be semiconductor memory (e.g., DRAM, etc.). These computer program products may be a means for providing software to the computer system 500. The computer programs (e.g., computer control logic) may be stored in the main memory 508 and / or the secondary memory 510. The computer programs may also be received via the communication interface 524. Such computer programs, when executed, may enable the computer system 500 to perform the methods described herein. In particular, the computer programs, when executed, may enable the processor unit 504 to perform the methods described herein shown in Figures 3A, 3B, and 4. Thus, such computer programs may represent the controller of the computer system 500. When the present disclosure is implemented using software, the software may be stored in the computer program product and loaded into the computer system 500 using the removable storage drive 514, the interface 520, and the hard disk drive 512 or the communication interface 524.

[0063] The processor unit 504 may include one or more modules or engines configured to perform the functions of the computer system 500. Each module or engine may be implemented using hardware and in some cases may utilize software (e.g., corresponding to program code and / or programs stored in the main memory 508 or secondary memory 510). In such cases, the program code may be compiled by the processor unit 504 (e.g., by compiling the module or engine) before execution by the hardware of the computer system 500. For example, the program code may be source code written in a programming language (e.g., assembly language or machine code) that is translated into a lower-level language for execution by the processor unit 504 and / or any additional hardware components of the computer system 500. The compilation process may include the use of lexical analysis, preprocessing, parsing, semantic analysis, syntax-driven translation, code generation, code optimization, and any other techniques suitable for translating the program code into a lower-level language suitable for controlling the computer system 500 to perform the functions disclosed herein. Those skilled in the art will appreciate that such processing results in computer system 500 being a specially configured computer system 500 that is uniquely programmed to perform the functions described above.

[0064] The technology consistent with the present disclosure provides, among other things, a system and method for establishing an immutable record of proof of origin of a digital receipt using a blockchain. Although various exemplary embodiments of the disclosed system and method are described above, it should be understood that they are presented for purposes of illustration only and are not limiting. They are not exhaustive and do not limit the disclosure to the precise forms disclosed. Modifications and variations are possible in light of the above teachings, or may be obtained from implementations of the present disclosure without departing from the breadth or scope.

Claims

1. 1. A method of establishing an immutable record of proof of origin for a digital receipt using blockchain, comprising: receiving, by a receiver of the computing device, at least a product identifier for each of the one or more products; generating, by a processor of the computing device, a data object including at least a digital receipt including the product identifier for each of the one or more products; transmitting, by a transmitter of the computing device, the generated data object to a blockchain node in a blockchain network; receiving, by the receiver of the computing device, a notification message from the blockchain node indicating a new blockchain data item has been successfully added to a blockchain associated with the blockchain network, the new blockchain data item including at least the generated data object; transmitting, by the transmitter of the computing device, the generated data object to a user device; A method comprising:

2. The method of claim 1 , wherein the digital receipt further includes at least one of a merchant identifier, a transaction amount, a time, a date, a geographic location, and a point of sale identifier.

3. 2. The method of claim 1, wherein receiving the product identifiers for one or more products comprises reading, with an optical imaging device, a machine-readable code displayed on each of the one or more products that is encoded with each of the product identifiers.

4. The method of claim 1 , wherein the product identifier for each of the one or more products is received as a result of one or more actions performed using the user device.

5. The method of claim 1 , wherein the notification message includes a blockchain identification value.

6. The method of claim 5 , wherein the blockchain identification value is transmitted to the user device along with the created data object.

7. Furthermore, 6. The method of claim 5, comprising adding, by the processor of the computing device, the blockchain identification value to the generated data object prior to transmitting the generated data object to the user device.

8. Furthermore, storing a cryptographic key pair, including a public key and a private key, in a memory of said computing device; digitally signing, by the processor of the computing device, the generated data object using the private key; Including, The digital signature is sent to the blockchain node along with the generated data object; The digital signature is included in the new blockchain data item. The method of claim 1.

9. A system that uses blockchain to establish an immutable record of proof of origin for digital receipts, comprising: a blockchain network including at least one blockchain node; A user device; 1. A computing device comprising: a receiver for receiving at least a product identifier for each of the one or more products; a processor for generating a data object including at least a digital receipt including the product identifier for each of the one or more products; a transmitter for transmitting the generated data object to the blockchain node; a computing device including: Equipped with The receiver of the computing device receives a notification message from the blockchain node indicating that a new blockchain data item was successfully added to a blockchain associated with the blockchain network, the new blockchain data item including at least the generated data object; The transmitter of the computing device transmits the generated data object to the user device.

10. 10. The system of claim 9, wherein the digital receipt further includes at least one of a merchant identifier, a transaction amount, a time, a date, a geographic location, and a point of sale identifier.

11. 10. The system of claim 9, wherein receiving the product identifiers for one or more products includes reading, with an optical imaging device, a machine-readable code displayed on each of the one or more products that is encoded with each of the product identifiers.

12. The system of claim 9 , wherein the product identifier for each of the one or more products is received as a result of one or more actions performed using the user device.

13. The method of claim 9 , wherein the notification message includes a blockchain identification value.

14. The system of claim 13 , wherein the blockchain identification value is transmitted to the user device along with the created data object.

15. 14. The system of claim 13, wherein the processor of the computing device adds the blockchain identification value to the generated data object before the generated data object is sent to the user device.

16. The computing device further includes a memory for storing a cryptographic key pair including a public key and a private key; The processor of the computing device digitally signs the generated data object using the private key; The digital signature is sent to the blockchain node together with the generated data object; The system of claim 9 , wherein the digital signature is included in the new blockchain data item.

Citation Information

Patent Citations

  • POS register, receipt, and consumer support system

    JP2006350939A

  • Transaction device, transaction method and transaction program

    JP2020048161A

  • A fully decentralized blockchain system and computer program for cryptocurrency transactions that prevents illegal transactions while allowing anonymous users to participate

    JP6967211B1

  • ESD and EOS protection circuit using RC-FET and logic circuit

    KR1020220157595A

  • Methods and systems using a computing platform for routing virtual receipts to customers with a scan-able code generated by the merchant

    US20190066079A1