Product promotion using smart contracts in a blockchain network
Patent Information
- Application Number
- CN202311611463.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2019-04-08
- Publication Date
- 2026-10-30
- Estimated Expiration
- 2039-04-08
AI Technical Summary
如果中心化数据存储被入侵、被黑客攻击或以其他方式受损,则可能泄露优惠券信息,导致无效活动、严重的经济损失和其他后果
[0007]在一些实施例中,智能合约可用于在区块链网络中实施促销活动以促进商家创建促销活动和消费者兑换数字票券。在一些实施例中,基于智能合约的促销活动可节省存储大量数字票券所需的存储空间。在一些实施例中,基于智能合约的促销活动可避开将数字票券同时上传到区块链网络的计算瓶颈。在一些实施例中,基于智能合约的促销活动可提高数据安全性,以保护数字票券免于泄露或恶意破译。
Smart Images

Figure CN117557309B_ABST
Abstract
Description
Technical Field
[0001] This article discusses the use of smart contracts for product promotion on blockchain networks. Background Technology
[0002] Distributed ledger systems (DLS) enable participating entities to store data securely and immutably. Without referencing any specific use case, DLS can also be referred to as a consensus network or a blockchain network. Examples of blockchain networks can include consortium blockchain networks provided for selected groups of entities. Consortium blockchain networks control the consensus processing of the selected group of entities. Consortium blockchain networks include an access control layer.
[0003] Coupons are a type of marketing tool approved by merchants, allowing consumers to obtain products or services at a lower price. In turn, merchants can gain more customers. Coupons can be printed or electronic. When issuing electronic coupons, merchants typically generate a unique identifier and associate it with the coupon. This unique identifier is also known as a "coupon code." Typically, the unique identifier is stored in a centralized data store. Consumers can obtain the coupon's unique identifier through the relevant product and then redeem the corresponding reward. If the centralized data store is compromised, hacked, or otherwise damaged, coupon information may be leaked, leading to invalid activities, significant financial losses, and other consequences. In some cases, the unique identifier can be guessed or otherwise deciphered.
[0004] Effective measures are needed to protect coupons from leakage, malicious decryption, and other consequences. Summary of the Invention
[0005] This article describes the technology used for product promotion using smart contracts on blockchain networks.
[0006] The embodiments described herein relate to the use of smart contracts in a blockchain network to implement product promotions (referred to as smart contract-based promotional campaigns). In some embodiments, a merchant (e.g., a brand owner, retailer, or manufacturer) of one or more products (e.g., including one or more goods and / or services) may create a promotional campaign, for example, for marketing purposes. In some embodiments, the merchant may issue multiple digital or electronic tickets (e.g., electronic vouchers, electronic coupons, or electronic gift certificates) for the promotional campaign.
[0007] In some embodiments, smart contracts can be used to implement promotional activities on a blockchain network to facilitate merchants creating promotions and consumers redeeming digital tickets. In some embodiments, smart contract-based promotional activities can save storage space required to store large amounts of digital tickets. In some embodiments, smart contract-based promotional activities can avoid the computational bottleneck of simultaneously uploading digital tickets to the blockchain network. In some embodiments, smart contract-based promotional activities can improve data security to protect digital tickets from leakage or malicious decryption.
[0008] This document also provides one or more non-transitory computer-readable storage media coupled to one or more processors and having instructions stored thereon that, when executed by one or more processors, cause one or more processors to perform operations according to embodiments of the methods provided herein.
[0009] This document also provides a system for implementing the methods provided herein. The system includes one or more processors and a computer-readable storage medium coupled to the one or more processors, having instructions stored thereon that, when executed by the one or more processors, cause the one or more processors to perform operations according to embodiments of the methods provided herein.
[0010] It should be understood that the methods according to this document may include any combination of the aspects and features described herein. That is, the methods according to this document are not limited to the combinations of aspects and features specifically described herein, but also include any combination of aspects and features provided.
[0011] Details of one or more embodiments herein are set forth in the accompanying drawings and the following description. Further features and advantages of this document will become apparent from the specification, drawings, and claims. Attached Figure Description
[0012] Figure 1 This is a diagram illustrating an example of an environment that can be used to perform the embodiments described herein.
[0013] Figure 2 This is a diagram illustrating an example of an architecture according to embodiments of this document.
[0014] Figure 3 This is a diagram illustrating an example of operations for creating a product promotion campaign using smart contracts in a blockchain network, according to embodiments of this document.
[0015] Figure 4 This is a diagram illustrating an example of an operation for redeeming a promotional code for a product promotion activity implemented using a smart contract in a blockchain network, according to embodiments of this article.
[0016] Figure 5An example of a process for product promotion using smart contracts in a blockchain network, according to embodiments herein, is described.
[0017] Figure 6 Examples of modules of an apparatus according to embodiments of this document are depicted.
[0018] The same reference numerals and names in the various figures denote the same elements. Detailed Implementation
[0019] The embodiments described herein relate to the use of smart contracts in a blockchain network to implement product promotions (referred to as smart contract-based promotional campaigns). In some embodiments, a merchant (e.g., a brand owner, retailer, wholesaler, or manufacturer) of one or more products (e.g., including one or more goods and / or services) may create a promotional campaign, for example, for marketing purposes. In some embodiments, the merchant may issue multiple digital or electronic tickets (e.g., electronic vouchers, electronic coupons, or electronic gift certificates) for the promotional campaign.
[0020] In some embodiments, smart contracts can be used to implement promotional activities on a blockchain network to facilitate merchants creating promotions and consumers redeeming digital tickets. In some embodiments, smart contract-based promotional activities can save storage space required to store large amounts of digital tickets. In some embodiments, smart contract-based promotional activities can avoid the computational bottleneck of simultaneously uploading digital tickets to the blockchain network. In some embodiments, smart contract-based promotional activities can improve data security to protect digital tickets from leakage or malicious decryption.
[0021] To provide further context for the embodiments described herein, and as stated above, a distributed ledger system (DLS), which may also be referred to as a consensus network (e.g., composed of peer-to-peer nodes) and a blockchain network, enables participating entities to securely and immutably transact and store data. Although the term “blockchain” is often associated with a specific network and / or use case, this document uses “blockchain” to generally refer to a DLS without referring to any particular use case.
[0022] A blockchain is a data structure that stores transactions in an immutable manner. Therefore, transactions recorded on a blockchain are reliable and trustworthy. A blockchain consists of one or more blocks. Each block in the chain is linked to the preceding block by a cryptographic hash contained within it. Each block also includes a timestamp, its own cryptographic hash, and one or more transactions. Transactions verified by nodes in the blockchain network are hashed and encoded into a Merkle tree. A Merkle tree is a data structure where data at the leaf nodes is hashed, and all hashes in each branch are concatenated at the root of that branch. This process continues along the tree to the root, where hashes representing all data in the tree are stored. A hash value can be quickly verified as belonging to a transaction stored in the tree by determining if it matches the tree's structure.
[0023] A blockchain is a decentralized or at least partially decentralized data structure used to store transactions, and a blockchain network is a network of computing nodes that manage, update, and maintain one or more blockchains through broadcasting, verifying, and confirming transactions. As mentioned above, blockchain networks can be provided as public blockchain networks, private blockchain networks, or consortium blockchain networks. Embodiments described herein are further described in detail with reference to consortium blockchain networks. However, it is contemplated that the embodiments described herein can be implemented in any suitable type of blockchain network.
[0024] Typically, consortium blockchain networks are private among the participating entities. In a consortium blockchain network, consensus processing is controlled by an authorized set of nodes, which may be referred to as consensus nodes, and one or more consensus nodes are operated by the respective entities (e.g., financial institutions, insurance companies). For example, a consortium of ten (10) entities (e.g., financial institutions, insurance companies) can operate a consortium blockchain network, with each entity operating at least one node in the consortium blockchain network.
[0025] In some examples, within a consortium blockchain network, a global blockchain is provided as a replica across all nodes. That is, all consensus nodes are in a state of complete consensus relative to the global blockchain. To achieve consensus (e.g., agreeing to add blocks to the blockchain), a consensus protocol is implemented within the consortium blockchain network. For example, a consortium blockchain network can implement Practical Byzantine Fault Tolerance (PBFT) consensus, which will be described in further detail below.
[0026] Figure 1This diagram illustrates an example of an environment 100 that can be used to perform embodiments of this document. In some examples, environment 100 enables entities to participate in consortium blockchain network 102. Environment 100 includes computing systems 106, 108 and network 110. In some examples, network 110 includes a local area network (LAN), a wide area network (WAN), the Internet, or a combination thereof, and connects websites, user devices (e.g., computing devices), and backend systems. In some examples, network 110 can be accessed via wired and / or wireless communication links. In some examples, network 110 enables communication with or within consortium blockchain network 102. Typically, network 110 represents one or more communication networks. In some cases, computing systems 106, 108 may be nodes of a cloud computing system (not shown), or each computing system 106, 108 may be a separate cloud computing system comprising multiple computers interconnected via a network and used as a distributed processing system.
[0027] In the depicted examples, computing systems 106 and 108 may each include any suitable computing system capable of participating as a node in the consortium blockchain network 102. Examples of computing systems include (but are not limited to) servers, desktop computers, laptops, tablets, and smartphones. In some examples, computing systems 106 and 108 host one or more computer-implemented services for interacting with the consortium blockchain network 102. For example, computing system 106 may host a computer-implemented service, such as a transaction management system, for a first entity (e.g., user A), which uses the transaction management system to manage its transactions with one or more other entities (e.g., other users). Computing system 108 may host a computer-implemented service, such as a transaction management system, for a second entity (e.g., user B), which uses the transaction management system to manage its transactions with one or more other entities (e.g., other users). Figure 1 In the example, the consortium blockchain network 102 is represented as a peer-to-peer network of nodes, and computing systems 106 and 108 provide nodes for the first and second entities participating in the consortium blockchain network 102, respectively.
[0028] Figure 2An example of architecture 200 according to embodiments herein is depicted. Exemplary architecture 200 includes participant systems 202, 204, and 206 corresponding to participant A, participant B, and participant C, respectively. Each participant (e.g., a user, enterprise) participates in a blockchain network 212 provided as a peer-to-peer network comprising multiple nodes 214, at least some of which immutably record information in blockchain 216. As described further in detail herein, although a single blockchain 216 is schematically depicted within blockchain network 212, multiple copies of blockchain 216 are provided and maintained throughout blockchain network 212.
[0029] In the depicted example, each participant system 202, 204, and 206 is provided by or represents participants A, B, and C, respectively, and functions as their respective nodes 214 in the blockchain network. As used herein, a "node" generally refers to a single system (e.g., a computer, server) connected to the blockchain network 212 and enabling the corresponding participant to participate in the blockchain network. Figure 2 In the example, a participant corresponds to each node 214. However, it is anticipated that a participant can operate multiple nodes 214 within the blockchain network 212, and / or multiple participants can share a single node 214. In some examples, participant systems 202, 204, 206 communicate with or through the blockchain network 212 using protocols (e.g., Hypertext Transfer Protocol Security (HTTPS)) and / or using Remote Procedure Calls (RPC).
[0030] Node 214 can have different levels of participation within the blockchain network 212. For example, some nodes 214 may participate in consensus processing (e.g., as monitoring nodes adding blocks to blockchain 216), while other nodes 214 may not participate in this consensus processing. As another example, some nodes 214 may store a complete copy of blockchain 216, while other nodes 214 may store only a partial copy of blockchain 216. For example, data access privileges can restrict the blockchain data that a given participant can store within their respective system. Figure 2 In the example, participant systems 202 and 204 store corresponding complete copies 216' and 216 of blockchain 216.
[0031] Blockchain (e.g., Figure 2A blockchain (216) consists of a series of blocks, each storing data. Examples of data include transaction data representing a transaction between two or more participants. While this document uses the term "transaction" by way of non-limiting example, it is contemplated that any suitable data (e.g., documents, images, videos, audio) may be stored in the blockchain. Examples of transactions may include, but are not limited to, the exchange of goods of value (e.g., assets, products, services, currencies). Transaction data is stored immutably in the blockchain. That is, transaction data cannot be changed.
[0032] Before transaction data is stored in a block, it is hashed. Hashing is the process of converting transaction data (provided as string data) into a fixed-length hash value (also provided as string data). It is not possible to dehash the hash value to obtain the transaction data. Hashing ensures that even slight changes to the transaction data will result in a completely different hash value. Furthermore, as mentioned above, the hash value has a fixed length. That is, the length of the hash value is fixed regardless of the size of the transaction data. Hashing involves processing the transaction data using a hash function to generate a hash value. Examples of hash functions include, but are not limited to, the Secure Hash Algorithm (SHA)-256, which outputs a 256-bit hash value.
[0033] Transaction data from multiple transactions is hashed and stored in a block. For example, two transactions are provided with hashes, and then each transaction is hashed to provide another hash. This process is repeated until a single hash is provided for all transactions to be stored in the block. This hash is called the Merkle root hash and is stored in the block header. Any change to a transaction will cause its hash to change, and ultimately, the Merkle root hash will change.
[0034] Blocks are added to the blockchain via a consensus protocol. Multiple nodes in the blockchain network participate in the consensus protocol and perform the work of adding blocks to the blockchain. Such nodes are called consensus nodes. PBFT, described above, serves as a non-restricted example of a consensus protocol. Consensus nodes execute the consensus protocol to add transactions to the blockchain and update the overall state of the blockchain network.
[0035] More specifically, consensus nodes generate block headers, hash all transactions within a block, and combine the resulting hashes in pairs to generate further hashes until a single hash (the Merkle root hash) is provided for all transactions in the block. This hash is then added to the block header. Consensus nodes also determine the hash of the most recent block in the blockchain (i.e., the last block added to the blockchain). Consensus nodes also add a nonce and a timestamp to the block header.
[0036] Typically, PBFT provides a practical Byzantine state machine replication that tolerates Byzantine failures (e.g., faulty nodes, malicious nodes). This is achieved in PBFT by assuming failures will occur (e.g., assuming the existence of independent node failures and / or manipulation messages sent by consensus nodes). In PBFT, consensus nodes are provided in the order of primary and backup consensus nodes. The primary consensus node is changed periodically, and transactions are added to the blockchain by all consensus nodes within the blockchain network to reach consensus on the global state of the blockchain network. In this process, messages are transmitted between consensus nodes, and each consensus node proves that it received the message from its designated peer and verifies that the message has not been modified during transmission.
[0037] In PBFT, a consensus protocol is provided in multiple phases where all consensus nodes begin in the same state. First, the client sends a request to the primary consensus node to invoke a service operation (e.g., execute a transaction within the blockchain network). Upon receiving the request, the primary consensus node multicasts the request to backup consensus nodes. The backup consensus nodes execute the request and each send a response to the client. The client waits until it receives a threshold number of responses. In some examples, the client waits until it receives f+1 responses, where f is the maximum number of faulty consensus nodes that can be tolerated within the blockchain network. The end result is that a sufficient number of consensus nodes agree on the order in which records to be added to the blockchain are to be accepted or rejected.
[0038] In some blockchain networks, cryptography is implemented to maintain transaction privacy. For example, if two nodes want to keep transaction privacy so that other nodes in the blockchain network cannot see the details of the transaction, these two nodes can encrypt the transaction data. Examples of encryption include, but are not limited to, symmetric and asymmetric encryption. Symmetric encryption refers to encryption that uses a single key for both encryption (generating ciphertext from plaintext) and decryption (generating plaintext from ciphertext). In symmetric encryption, the same key can be used by multiple nodes, so each node can encrypt / decrypt the transaction data.
[0039] Asymmetric encryption uses key pairs, each consisting of a private key and a public key. The private key is known only to the corresponding node, while the public key is known to any or all other nodes in the blockchain network. A node can use another node's public key to encrypt data, and that encrypted data can be decrypted using another node's private key. For example, refer again... Figure 2 Participant A can use Participant B's public key to encrypt data and send the encrypted data to Participant B. Participant B can use their private key to decrypt the encrypted data (ciphertext) and retrieve the original data (plaintext). Messages encrypted using a node's public key can only be decrypted using that node's private key.
[0040] Asymmetric encryption is used to provide digital signatures, enabling participants in a transaction to verify the other participants and the validity of the transaction. For example, a node can digitally sign a message, and another node can verify that the message was sent by participant A based on that digital signature. Digital signatures can also be used to ensure that messages are not tampered with during transmission. For example, see again... Figure 2 Participant A will send a message to Participant B. Participant A generates a hash value for the message and then encrypts the hash value using its private key to provide a digital signature as the encrypted hash. Participant A appends this digital signature to the message and sends the digitally signed message to Participant B. Participant B decrypts the digital signature using Participant A's public key and extracts the hash value. Participant B hashes the message and compares the hash values. If the hash values are the same, Participant B can confirm that the message did indeed originate from Participant A and has not been tampered with.
[0041] In some blockchain networks, so-called smart contracts are executable. A smart contract can be described as a digital representation of a real-world legal contract with contractual terms affecting the parties involved. In an exemplary context, smart contracts are implemented, stored, updated (as needed), and executed within a consortium blockchain network. The contracting parties associated with a smart contract (e.g., buyer and seller) are represented as nodes in the consortium blockchain network. In some examples, contracting parties may include entities associated with the smart contract (e.g., business enterprises) (e.g., as parties to the smart contract).
[0042] More specifically, smart contracts are provided as computer-executable programs that execute on a blockchain (e.g., nodes within a blockchain network). A smart contract contains a set of predefined rules that the parties to the smart contract agree to interact with each other according to. If the predefined rules of the smart contract are satisfied, the protocol defined in the smart contract will be automatically implemented. Smart contracts are typically tamper-proof and facilitate, verify, and implement the negotiation or execution of protocols or transactions.
[0043] Figure 3 This is an example figure 300 illustrating operations for creating a promotional campaign using smart contracts in a blockchain network according to embodiments herein. For convenience, this process will be described as being performed by a system of one or more computers located in one or more locations and appropriately programmed according to this document. For example, an appropriately programmed distributed system (e.g., Figure 1The system (blockchain environment 100) can perform this processing. The system may include a merchant 302, a merchant server 304, and a blockchain network 306. Merchant 302 may be, for example, a brand owner, retailer, manufacturer, trading platform, or another entity that can create promotional campaigns for one or more products (e.g., including one or more goods and / or services). Merchant 302 may access, operate on, or otherwise associate with merchant server 304 to create promotional campaigns. Merchant server 304 may be one or more computers or data processing devices capable of accessing or otherwise communicatively coupled to blockchain network 306. In some embodiments, merchant server 304 may be a node (e.g., a client node, consensus node, or non-consensus node) of blockchain network 306. In some embodiments, merchant server 304 may generate one or more smart contracts and submit one or more smart contracts to blockchain network 306. In some embodiments, merchant server 304 may be a deployment server for one or more smart contracts in blockchain network 306, for example, by submitting smart contract transactions to blockchain network 306. In some embodiments, smart contracts may be deployed in a distributed manner on blockchain network 306 and have a unique smart contract address from which they can be invoked. In some embodiments, one or more smart contracts have been defined and deployed on blockchain network 306, and merchant server 304 can invoke one or more operations defined in the one or more contracts.
[0044] As shown, at 310, merchant 302 sends a request to merchant server 304 to create a promotional campaign in blockchain network 306. The promotional campaign can be used, for example, to promote or market one or more products. In some embodiments, merchant 302 may issue or recognize a large number (e.g., approximately tens, hundreds, thousands, and more) of e-tickets or digital tickets to offer consumers discounts or other promotional offers on one or more products in the promotion. Digital tickets are typically virtual instances of tickets used to obtain goods or services. Examples of digital tickets may include e-vouchers, e-coupons, or e-gift certificates, where e-vouchers have a specific monetary value and can be redeemed for goods and services, e-coupons can be used by consumers (or customers) at the time of consumption to purchase products at a discounted price according to the discount rate indicated on the coupon, and e-gift certificates can be used for goods or services from a specific merchant.
[0045] In some embodiments, each digital ticket is associated with a unique identifier. The unique identifier may also be referred to as a "promotional code", "promotional code", "coupon code", "discount code", "key code", "promotional code", "remaining code", "portable code", "shopping code", "voucher code", "reward code", "discount coupon", "referral code", or "source code".
[0046] Merchant server 304 can set, define, or otherwise configure rules for promotional activities. Promotional activity rules may include one or more of the following: promotional activity identifier (ID) (e.g., name or code), digital ticket rules, digital ticket authentication rules, the effective duration of the promotion, the region of the promotion, information on applicable products for the promotion, or eligibility of consumers redeeming digital tickets.
[0047] For example, at 320, merchant server 304 can set, define, or otherwise configure rules for digital tickets. Exemplary rules for digital tickets may include, for example, the type of digital ticket (e.g., e-coupon, e-voucher, e-gift certificate, or e-red packet), the type of reward or benefit of the digital ticket (e.g., discount, cash, points, rebates, and / or other products), winning rules or criteria, the total number of promotional codes, the value range of promotional codes, the individual types of multiple promotional codes, or the spelling rules for valid promotional codes.
[0048] For example, at 330, merchant server 304 may set, define, or otherwise configure authentication rules for digital tickets. In some embodiments, each valid digital ticket approved by merchant 302 may be authenticated or verified based on digital signature technology. For example, a private key and public key pair may be assigned to merchant 302 or a promotional activity of merchant 302. Each valid digital ticket approved by merchant 302 may be signed, for example, by merchant server 304 using merchant 302's private key or merchant 302's private key for a specific promotional activity. A third party may use the corresponding public key of merchant 302 or merchant 302's corresponding public key for a specific promotional activity to verify the digital ticket. In some embodiments, the authentication rules for digital tickets may define information to be included in the digital signature generated using merchant 302's private key or merchant 302's private key for a specific promotional activity (e.g., promotional code and other information, if any, such as the promotional activity ID).
[0049] In some embodiments, digital signatures for promotional codes can enhance data security. For example, even if a third party deciphers the spelling rules of a promotional code, they cannot generate a valid signature for the promotional code without the merchant's private key or the merchant's private key for a specific promotional activity. Therefore, any promotional code generated by a third party cannot be verified as valid.
[0050] For example, at 340, merchant server 304 may set, define, or otherwise configure the effective duration of a promotional campaign, for example, by configuring the promotional campaign's expiration time or a count-based expiration rule. In some embodiments, merchant server 304 may configure additional or different rules for the promotional campaign.
[0051] At point 350, merchant server 304 sends a request to blockchain network 306 to create a promotional campaign within blockchain network 306. This request may include, for example, the campaign ID, the rules of the campaign, the digital signature of the request, and / or other information.
[0052] Upon receiving a request from the merchant server 304, the blockchain network 306 may, for example, determine the validity of the promotional activity at 360. In some embodiments, the validity of the promotional activity may be determined, for example, by invoking a promotional activity verification operation defined in a smart contract. For example, the promotional activity verification operation may receive information about the promotional activity (e.g., rules), compare it with certain regulations (e.g., those of the blockchain network 306 or those of a regulatory agency such as a government), and determine that the promotional activity complies with the regulations.
[0053] At point 370, in response to determining that the promotion is valid, blockchain network 306 can register the promotion, for example, by storing the rules of the promotion in blockchain network 306. In this way, smart contracts can be executed according to the rules of the promotion to perform various operations of the promotion, such as redeeming one or more digital tickets for the promotion.
[0054] Note that the promotional codes for digital tickets used in the promotion are not stored on blockchain network 306. This saves storage space. Furthermore, it prevents blockchain network 306 from uploading a large number of promotional codes simultaneously. It also prevents promotional code leakage.
[0055] In some embodiments, in response to determining that a promotion is invalid, blockchain network 306 may refuse to create the promotion.
[0056] At point 380, blockchain network 306 may send a notification to merchant server 304 indicating the result of the promotional activity creation. In some embodiments, the notification may be an acknowledgment that the promotional activity has been successfully created in blockchain network 306. In some embodiments, the notification may be a notification indicating that the promotional activity has not yet been successfully created in blockchain network 306, with or without details about why the promotional activity has not yet been successfully created in blockchain network 306.
[0057] At point 390, merchant server 304 can send a response to merchant 302 indicating the creation result of the promotional activity based on a notification from blockchain network 306.
[0058] Figure 4Figure 400 illustrates an example of an operation for redeeming a promotional code for a product promotion implemented using a smart contract in a blockchain network, according to embodiments of this document. For convenience, this process will be described as being performed by a system of one or more computers located in one or more locations and appropriately programmed according to this document. For example, an appropriately programmed distributed system (e.g., Figure 1 The blockchain environment 100 can perform this processing. The system may include a consumer 303, a merchant server 304, and a blockchain network 306. The consumer node 303 may be, for example, one or more computers or data processing devices, accessible, operated, or otherwise associated with a person or other entity who has obtained a promotional code for a promotional activity from merchant 302. In some embodiments, the consumer node 303 may obtain the promotional code and / or other information, such as the promotional activity ID and the digital signature of the promotional code. In some embodiments, the consumer node 303 may obtain the promotional code and / or other information in encrypted or otherwise converted form.
[0059] In some embodiments, consumer node 303 may communicate with merchant server 304 to redeem a promotional code for a promotional activity. For example, consumer node 303 may be a mobile device of a consumer who has scanned a QR code, wherein the QR code includes a promotional code for a promotional activity. In some embodiments, the QR code may also include other information, such as the ID of the promotional activity and a digital signature of the promotional code. In some embodiments, when the QR code is scanned, a request to redeem the promotional code for a promotional activity may be automatically transmitted to merchant server 304.
[0060] For example, such as Figure 4 As shown, at 410, consumer node 303 sends a redemption request to merchant server 304 for a promotional code to redeem for a promotional activity. In some embodiments, merchant server 304 may first determine the validity of the redemption request. For example, merchant server 304 may identify the promotional code and the corresponding promotion (e.g., based on the promotional code's ID) and determine whether the promotional code conforms to the rules of the promotional activity.
[0061] At position 420, merchant server 304 sends the exchange request to blockchain network 306. In some embodiments, merchant server 304 only sends the exchange request to blockchain network 306 if it determines the validity of the exchange request. In some embodiments, merchant server 304 does not check the validity of the exchange request and forwards the exchange request to blockchain network 306 after receiving it.
[0062] At point 430, blockchain network 306 uses exchange requests to identify registered promotions, for example, by matching the promotion ID in the exchange request with the ID of the registered promotion.
[0063] At 440, blockchain network 306 determines the validity of the promotional code in the redemption request. In some embodiments, the validity of the promotional code may be determined, for example, by invoking a promotional code verification operation defined in a smart contract. For example, the promotional code verification operation may receive the promotional code and / or other information in the redemption request, compare it with the rules of a registered promotional activity, and determine whether the promotional code complies with the rules of the registered promotional activity. In some embodiments, determining the validity of the promotional code in the redemption request may include determining the validity of the digital signature included in the redemption request, the expiration date of the promotional code, and the eligibility of the consumer associated with consumer node 303, or any other determination.
[0064] At point 450, in response to determining that the promotional code is valid, blockchain network 306 may record the promotional code and / or its related information. In some embodiments, blockchain network 306 may record that the promotional code has been redeemed, the time, location, or other information of the redemption, and the consumer and / or consumer node 303 who redeemed the promotional code. In some embodiments, the identity of the consumer who redeemed the promotional code may be recorded and used for subsequent redemption record queries. In some embodiments, if the promotional code is valid for a single use, blockchain network 306 may mark the promotional code as invalid after redemption, or if the promotional code is valid for multiple uses, record the number of redemptions.
[0065] At point 460, blockchain network 306 can send a notification to merchant server 304 indicating that the promotional code has been successfully redeemed.
[0066] At 470, the merchant server 304 can return a confirmation of successful redemption of the promotional code to the consumer node 303, and allow the consumer to be granted the corresponding reward or benefit of the promotional code.
[0067] As another example, at 415, consumer node 303 sends a second redemption request to merchant server 304 for a second promotional code for a second promotional activity. Typically, merchant server 304 receives the second redemption request at a different time than the redemption request sent at 410. In some embodiments, the second promotional code may be the same as or different from the promotional code discussed at 410. In some embodiments, the second promotional activity may be the same as or different from the promotional activity discussed at 410.
[0068] At point 425, merchant server 304 sends the second exchange request to blockchain network 306. In some embodiments, merchant server 304 only sends the second exchange request to blockchain network 306 if it determines the validity of the second exchange request. In some embodiments, merchant server 304 does not check the validity of the second exchange request and forwards the second exchange request to blockchain network 306 after receiving it.
[0069] At point 435, blockchain network 306 uses the second exchange request to identify registered promotional activities, for example, by matching the promotional activity ID in the second exchange request with the ID of the registered promotional activity.
[0070] At point 445, blockchain network 306 determines the validity of the second promotional code in the second redemption request. In some embodiments, the validity of the promotional code may be determined, for example, by invoking a promotional code verification operation defined in a smart contract. For example, the promotional code verification operation may receive the second promotional code and / or other information in the second redemption request, compare it with the rules of the registered promotion, and determine whether the second promotional code complies with the rules of the registered promotion. For example, determining the validity of the second promotional code in the second redemption request may include determining the validity of the digital signature included in the second redemption request, the expiration date of the second promotional code, and the eligibility of the consumer associated with consumer node 303, or any other determination.
[0071] At point 455, blockchain network 306 determines that the second promotional code is invalid or has already been redeemed. In this case, blockchain network 306 may send a notification to merchant server 304 indicating that the redemption of the second promotional code failed or was incorrect, with or without detailed information about the reason for the failure or error.
[0072] At point 465, the merchant server 304 may return a rejection of the redemption of the second promotional code to the consumer node 303. In some embodiments, the merchant server 304 may notify the consumer of detailed information regarding the reason for the failure or error in redeeming the second promotional code. In some embodiments, the consumer node 303 may submit a redemption record query, for example, if notified of a redemption failure or error because the second promotional code has already been redeemed. In some embodiments, if there are doubts about the redemption record, the consumer or a third party may submit a report to the merchant. In some embodiments, the transparency, security, and immutability of the data storage of the blockchain network 306 may enable the tracing of the redemption record or history of promotional codes for a promotional campaign, for example, to determine if any problems or irregularities exist.
[0073] Figure 5An example of a process 500 for product promotion using smart contracts in a blockchain network, according to embodiments thereof, is described. Process 500 can be executed using one or more computer-executable programs that utilize one or more computing devices. In some embodiments, process 500 may be executed by a distributed system (e.g., Figure 1 The blockchain system 100 executes to promote products using smart contracts on the blockchain network. For convenience, the process 500 will be described as being executed by a system of one or more computers located in one or more locations and appropriately programmed according to this document. For example, a appropriately programmed distributed system, such as... Figure 1 A blockchain environment 100 is provided, capable of performing processing 500. In some embodiments, some or all operations of processing 500 may be performed by a node, such as a consensus node of a blockchain network. For example, node 214 of an architecture 200 that is properly programmed may perform some or all operations of processing 500. For example, one or more computing systems (e.g., computing systems 106, 108) may be used to implement the node. In some embodiments, processing 500 may include operations targeting... Figure 3 and Figure 4 Describes some or all of the operations.
[0074] At point 502, a node in the blockchain network (e.g., a node in blockchain network 306) receives a request to create a promotional campaign. The promotional campaign is associated with multiple promotional codes. In some embodiments, the creation request is received, for example, from a merchant server (e.g., merchant server 304).
[0075] In some embodiments, a promotional campaign is associated with a private key and public key pair used to identify and authenticate the campaign. In some embodiments, the private key can be used to generate a digital signature for each of a plurality of promotional codes to improve data security for the multiple promotional codes. The public key can be used to verify the validity of the promotional codes based on the digital signatures and public key of the promotional campaign. In some embodiments, the private key can be used to generate individual digital signatures for the multiple promotional codes by signing each of the multiple promotional codes, a hash value generated based on each of the multiple promotional codes, or some variation of each of the multiple promotional codes. The public key of the promotional campaign can be used to decrypt the digital signatures and extract each of the multiple promotional codes.
[0076] In some embodiments, the creation request includes a public key and a digital signature generated using the private key. For example, a merchant server can generate a digital signature by generating a hash value based on some or all of the information included in the creation request and signing that hash value using the private key. In some embodiments, the creation request may also include rules for promotional activities, such as those targeting... Figure 3The rules described. For example, the rules may include one or more of the following: the promotional activity identifier (ID), the total number of multiple promotional codes, the range of multiple promotional codes, the type of each of the multiple promotional codes, the spelling rules for valid promotional codes, the expiration date of the promotion, the region of the promotion, or the eligibility of the person redeeming one of the multiple promotional codes.
[0077] At position 504, the node determines the validity of the creation request based on the public key and the digital signature generated using the private key. In some embodiments, as an example, the node may use the public key to decrypt the digital signature and extract a hash value from it. The node may also generate a hash value based on some or all of the information included in the creation request. The validity of the creation request is determined in response to determining that the public key can decrypt the digital signature and that the hash value extracted from the digital signature matches the hash value generated by the node.
[0078] At point 506, in response to determining that the creation request is valid, the node registers a promotional activity in the blockchain network using a smart contract, without storing multiple promotional codes in the blockchain network. In some embodiments, registering a promotional activity in the blockchain network using a smart contract includes: the node inputting rules into one or more functions of the smart contract; the node executing one or more functions of the smart contract; and the node storing the rules in the blockchain network.
[0079] In some embodiments, registering a promotional campaign using a smart contract in a blockchain network includes invoking and executing one or more logic, functions, or other operations defined in the smart contract to create the promotional campaign in the blockchain network. For example, a smart contract defining multiple operations for a promotional campaign can be generated and deployed in the blockchain network. These multiple operations of the smart contract may include one or more of the following: for example, a promotional campaign creation operation, a promotional campaign verification operation, a promotional code verification operation, a promotional code redemption operation, or a redemption record query operation. In some embodiments, each operation may be implemented as an application programming interface (API), a service, a function, or a combination thereof. Operations are specified using routines, data structures, and object classes in one or more computer languages. In some embodiments, a node can execute an operation defined in the smart contract by invoking the operation and inputting one or more parameters or arguments into the operation.
[0080] At point 508, in response to registering a promotional campaign using a smart contract on the blockchain network, the node will indicate that confirmation of successful campaign creation has been returned to, for example, the merchant's server.
[0081] At point 510, the node receives a redemption request for multiple promotional codes. The redemption request includes the promotional code, the promotional activity identifier (ID), and a digital signature of the redemption request signed with a private key. For example, the digital signature of the redemption request can be generated by generating a hash value based on some or all of the information included in the redemption request and signing the hash value with the private key. In some embodiments, the redemption request may include additional or different information. In some embodiments, the multiple promotional codes are generated simultaneously, while two or more redemption requests for two or more of the multiple promotional codes are received by the node at different times.
[0082] At point 512, the node identifies the public key and rules of the promotion based on the promotion's ID.
[0083] At point 514, the node determines the validity of the exchange request based on the digital signature and public key attached to it. In some embodiments, as an example, the node may use the public key to decrypt the digital signature of the exchange request and extract a hash value from it. The node may also generate a hash value based on some or all of the information included in the exchange request. The validity of the request can be determined in response to determining that the public key can decrypt the digital signature of the exchange request, and that the hash value extracted from the digital signature matches a hash value generated by the node based on some or all of the information included in the exchange request.
[0084] At point 518, in response to determining that the exchange request is valid, a notification indicating that the exchange request is invalid is returned to the merchant server, for example. In some embodiments, for example, in response to determining that the public key cannot decrypt the digital signature of the exchange request and / or that the hash value extracted from the digital signature does not match the hash value generated by the node based on some or all of the information included in the exchange request, the node determines that the exchange request is invalid.
[0085] At point 520, in response to confirming the redemption request is valid, the node executes a smart contract to determine whether the promotional code is valid based on the rules. For example, the node can determine the validity of the promotional code by invoking one or more promotional code verification operations defined in the smart contract. These verification operations can check, for example, whether the promotional code is within the range defined by the rules, whether the promotional code conforms to the spelling rules defined by the rules, etc.
[0086] At point 521, in response to determining that the promotional code is invalid, a notification indicating that the promotional code is invalid is returned to the merchant's server.
[0087] At point 522, in response to determining that the promotional code is valid, the node executes a smart contract to determine whether the promotional code has been redeemed based on the redemption history of the promotional activity.
[0088] At point 523, in response to determining that the promotional code has been redeemed, a notification indicating that the promotional code has been redeemed is returned to the merchant's server.
[0089] At point 524, in response to determining that the promotional code is valid and has not yet been redeemed, a confirmation indicating successful redemption of the promotional code is returned to the merchant server. In some embodiments, the redemption of the promotional code is recorded in a blockchain network.
[0090] Figure 6 This is a diagram illustrating an example of modules of device 600 according to embodiments of this document. Device 600 may be an example of an embodiment of a node in a blockchain network for using smart contracts to promote products within the blockchain network. Device 600 may correspond to the above embodiments and includes the following: a first receiving module 602, configured to receive a creation request for creating a promotional activity from a node in the blockchain network, wherein the promotional activity is associated with multiple promotional codes, the promotional activity is associated with a private key and public key pair for identifying the promotional activity, and the creation request includes a public key and a digital signature generated using the private key; a first determining module 604, configured to determine the validity of the creation request by the node based on the public key and the digital signature; and a registration module 606, configured to, in response to determining that the creation request is valid, register the promotional activity in the blockchain network using a smart contract, without storing multiple promotional codes in the blockchain network.
[0091] In an optional embodiment, the device 600 further includes: a first return module 608, used by the node to return confirmation indicating successful creation of the promotional activity.
[0092] In an optional embodiment, the creation request further includes rules for the promotional activity, wherein the registration module 606 includes an input submodule for nodes to input the rules into one or more functions of the smart contract; an execution submodule for nodes to execute one or more functions of the smart contract; and a storage submodule for nodes to store the rules in the blockchain network.
[0093] In an optional embodiment, the rules include one or more of the following: the identifier (ID) of the promotional activity, the total number of multiple promotional codes, the range of the multiple promotional codes, the type of each of the multiple promotional codes, the spelling rules for valid promotional codes, the expiration time of the promotional activity, the region of the promotional activity, or the eligibility of the person redeeming one of the multiple promotional codes.
[0094] In an optional embodiment, the device 600 further includes: a second receiving module 610, configured to receive a redemption request for multiple promotional codes from a node, wherein the redemption request includes a promotional code, an identifier (ID) of a promotional activity, and a digital signature of the redemption request signed with a private key; an identification module 612, configured to identify the public key and rules of a promotional activity based on the ID of the promotional activity; and a second determining module 614, configured to determine the validity of the redemption request based on the digital signature and public key of the redemption request.
[0095] In an optional embodiment, the device 600 further includes: a third determining module 616, used by the node to determine whether the promotional code is valid based on the rules by executing a smart contract.
[0096] In an optional embodiment, the device 600 further includes: a fourth determining module 618, used by the node to determine whether the promotional code has been redeemed based on the redemption history of the promotional activity by executing a smart contract.
[0097] In an optional embodiment, the device 600 further includes: a second return module 620, configured to return a confirmation indicating successful redemption of the promotional code in response to determining that the promotional code is valid and has not yet been redeemed; and a recording module 622, configured to record the redemption of the promotional code in a blockchain network.
[0098] In an optional embodiment, the device 600 further includes a third return module 624, configured to return a notification indicating that the promotional code is invalid in response to determining that the promotional code is invalid.
[0099] In an optional embodiment, the device 600 further includes a fourth return module 626, configured to return a notification indicating that the promotional code has been redeemed in response to determining that the promotional code has been redeemed.
[0100] In an optional embodiment, multiple promotional codes are generated simultaneously, and the second receiving module 610 receives two or more redemption requests for two or more promotional codes at different times through a node.
[0101] The systems, apparatus, modules, or units illustrated in the preceding embodiments may be implemented using computer chips or entities, or by using products with specific functions. A typical implementation device is a computer, which may be a personal computer, laptop computer, cellular phone, camera phone, smartphone, personal digital assistant, media player, navigation device, email transceiver, game console, tablet computer, wearable device, or any combination of these devices.
[0102] For the implementation details regarding the function and role of each module in the device, please refer to the corresponding steps in the previous method. For simplicity, details are omitted here.
[0103] Since the apparatus implementation essentially corresponds to the method implementation, reference can be made to the relevant descriptions in the method implementation for the relevant parts. The apparatus implementations described above are merely examples. Modules described as separate parts may or may not be physically separate, and parts shown as modules may or may not be physical modules, may be located in one location, or may be distributed across multiple network modules. Some or all modules may be selected based on actual needs to achieve the objectives of the scheme herein. Those skilled in the art can understand and implement the embodiments of this application without inventive effort.
[0104] Refer again Figure 6 This can be interpreted as illustrating the structure of an internal functional module and a blockchain smart contract promotion management device. The blockchain smart contract promotion management device can be an example of a blockchain node that uses smart contracts to promote products within a blockchain network. The executing entity can essentially be an electronic device, and this electronic device includes: one or more processors and a memory configured to store executable instructions from the one or more processors.
[0105] The techniques described herein produce one or more technical effects. In some embodiments, smart contracts can be used in a blockchain network to implement product promotions. In some embodiments, merchants (e.g., brand owners, retailers, wholesalers, or manufacturers) can create promotional campaigns, for example, for marketing purposes. In some embodiments, merchants can issue multiple digital or electronic tickets (e.g., electronic vouchers, electronic coupons, or electronic gift certificates) for the promotional campaign. Each digital ticket can be associated with a unique promotional code. For example, each promotional code can be signed using the private key corresponding to the promotional campaign to verify its validity. Thus, any promotional code generated by a third party without the private key of the promotional campaign cannot be verified as a valid promotional code. Therefore, even if the spelling rules of the promotional code are deciphered, a digital ticket cannot be redeemed without a valid signature signed using the private key of the authorized merchant's promotional campaign. This prevents the forgery of promotional codes and improves data security.
[0106] In some embodiments, smart contracts can be used to implement promotional activities (referred to as smart contract-based promotions) on a blockchain network to facilitate merchants creating promotions and consumers redeeming digital vouchers. Unlike traditional schemes that store large numbers of promotional codes for a promotion, smart contract-based promotions do not require storing any promotional codes on the blockchain, thus saving storage space and computing resources on the blockchain network. In some embodiments, smart contract-based promotions can alleviate and reduce the computational burden on the blockchain network from the promotion creation phase to the promotional code redemption phase. Typically, a large number of promotional codes for a promotion are generated at once, for example, simultaneously during the promotion creation phase. Conversely, the redemption of different promotional codes for a promotion typically occurs at different times, for example, by different consumers. In some embodiments, smart contract-based promotions avoid uploading and storing promotional codes to the blockchain network simultaneously, thus not imposing a computational burden on the blockchain network.
[0107] In some embodiments, smart contract-based promotional campaigns can improve data security in protecting digital tickets from disclosure or malicious decryption because the promotional code itself is not stored.
[0108] In some embodiments, smart contract-based promotions allow for the examination of the redemption history of each digital ticket, thereby increasing the transparency of promotions.
[0109] Embodiments of the described subject matter may include one or more features, individually or in combination.
[0110] For example, in a first embodiment, a computer-implemented method for promoting a product using a smart contract in a blockchain network includes: a node in the blockchain network receiving a creation request for a promotional activity, wherein the promotional activity is associated with multiple promotional codes, the promotional activity is associated with a private key and public key pair for identifying the promotional activity, and the creation request includes a public key and a digital signature generated using the private key; the node determines the validity of the creation request based on the public key and the digital signature; and in response to determining that the creation request is valid, the node registers the promotional activity in the blockchain network using a smart contract, without storing the multiple promotional codes in the blockchain network. The foregoing and other described embodiments may optionally include one or more of the following features:
[0111] The first feature, which can be combined with any of the following features, specifies that the creation request also includes rules for a promotional activity, and wherein registering the promotional activity by a node in the blockchain network using a smart contract includes: the node inputting the rules into one or more functions of the smart contract; the node executing one or more functions of the smart contract; and the node storing the rules in the blockchain network.
[0112] The second feature, which may be combined with any of the previous or following features, specifies that the rule includes one or more of the following: the identifier (ID) of the promotion, the total number of multiple promotional codes, the range of the multiple promotional codes, the type of each of the multiple promotional codes, the spelling rules for valid promotional codes, the expiration date of the promotion, the region of the promotion, or the eligibility of the person redeeming one of the multiple promotional codes.
[0113] The method further includes, as specified by a third feature which may be combined with any of the preceding or following features: a node receiving a redemption request for multiple promotional codes, wherein the redemption request includes a promotional code, an identifier (ID) of a promotional activity, and a digital signature of the redemption request signed with a private key; the node identifying the public key and rules of the promotional activity based on the ID of the promotional activity; and the node determining the validity of the redemption request based on the digital signature and public key of the redemption request.
[0114] The fourth feature, which can be combined with any of the previous or following features, specifies that the method further includes: the node determining whether the promotional code is valid based on the rules by executing a smart contract.
[0115] The fifth feature, which may be combined with any of the previous or following features, specifies that the method further includes: the node determining whether the promotional code has been redeemed based on the redemption history of the promotional activity by executing a smart contract.
[0116] The sixth feature, which may be combined with any of the previous or following features, specifies that the method further includes: in response to determining that the promotional code is valid and has not yet been redeemed, recording the redemption of the promotional code in the blockchain network; and returning a confirmation indicating successful redemption of the promotional code.
[0117] The seventh feature, which may be combined with any of the previous or following features, specifies that the method also includes: in response to determining that the promotional code is invalid, returning a notification indicating that the promotional code is invalid.
[0118] The method may also include, in combination with any of the previous or following features, an eighth feature specifying that the method further includes: in response to determining that the promotional code has been redeemed, returning a notification indicating that the promotional code has been redeemed.
[0119] The ninth feature, which can be combined with any of the previous or following features, specifies that multiple promotional codes are generated simultaneously, and the computer-implemented method further includes: a node receiving two or more redemption requests for two or more of the multiple promotional codes at different times.
[0120] Embodiments of the subject matter, actions, and operations described herein may be implemented in digital electronic circuits, tangibly embodied computer software or firmware, computer hardware, including the structures disclosed herein and their structural equivalents, or combinations thereof. Implementations of the subject matter described herein may be implemented as one or more computer programs, such as one or more computer program instruction modules encoded on a computer program carrier for execution by or control of the operation of a data processing apparatus. For example, a computer program carrier may include one or more computer-readable storage media having instructions encoded thereon or stored thereon. The carrier may be a tangible, non-transitory computer-readable medium, such as a magnetic disk, magneto-optical disk or optical disk, a solid-state drive, random access memory (RAM), read-only memory (ROM), or other media types. Alternatively or additionally, the carrier may be an artificially generated propagating signal, such as a machine-generated electrical, optical, or electromagnetic signal generated to encode information for transmission to a suitable receiver device for execution by a data processing apparatus. A computer storage medium may be, or in part, a machine-readable storage device, a machine-readable storage substrate, a random or serial access memory device, or a combination thereof. A computer storage medium is not a propagating signal.
[0121] A computer program, also referred to or described as a program, software, software application, app, module, software module, engine, script, or code, may be written in any form of programming language, including compiled or interpreted languages, descriptive or procedural languages; it may be configured in any form, including as a standalone program, or as a module, component, engine, subroutine, or other unit suitable for execution in a computing environment, which may include one or more computers at one or more locations interconnected by a communications data network.
[0122] A computer program may, but does not necessarily, correspond to a file in a file system. A computer program may be stored as: a portion of a file that holds other programs or data, such as one or more scripts stored in a markup language document; a single file dedicated to the program in question; or multiple coordination files, such as multiple files that store one or more modules, subroutines, or code sections.
[0123] For example, processors used to execute computer programs include general-purpose and special-purpose microprocessors, as well as any one or more processors in any type of digital computer. Typically, the processor receives instructions and data for executing the computer program from a non-transitory computer-readable medium coupled to the processor.
[0124] The term "data processing apparatus" includes all types of devices, apparatuses, and machines for processing data, including, for example, programmable processors, computers, or multiprocessors or computers. Data processing apparatuses may include special-purpose logic circuitry, such as FPGAs (Field-Programmable Gate Arrays), ASICs (Application-Specific Integrated Circuits), or GPUs (Graphics Processing Units). In addition to hardware, the apparatus may also include code that creates an execution environment for computer programs, such as code that constitutes processor firmware, protocol stacks, database management systems, operating systems, or combinations thereof.
[0125] The processing and logic flows described herein can be executed by one or more computers or processors that execute one or more computer programs to perform operations by processing input data and generating output. The processing and logic flows can also be executed by dedicated logic circuitry, such as FPGAs, ASICs, or GPUs, or a combination of dedicated logic circuitry and one or more programmed computers.
[0126] A computer suitable for executing computer programs may be based on a general-purpose and / or special-purpose microprocessor, or any other type of central processing unit. Typically, the central processing unit receives instructions and data from read-only memory and / or random access memory. The components of a computer may include a central processing unit for executing instructions and one or more memory devices for storing instructions and data. The central processing unit and memory may be supplemented with or integrated into special-purpose logic circuitry.
[0127] Typically, a computer will also include or be operatively coupled to one or more storage devices to receive data from or transfer data to one or more storage devices. Storage devices can be, for example, disks, magneto-optical or optical disks, solid-state drives, or any other type of non-transitory computer-readable media. However, a computer does not need to have such devices. Therefore, a computer may be coupled to one or more storage devices, such as local and / or remote storage. For example, a computer may include one or more local storage devices as an integral part of the computer, or the computer may be coupled to one or more remote storage devices in a cloud network. Furthermore, a computer may be embedded in another device, such as a mobile phone, a personal digital assistant (PDA), a mobile audio or video player, a game console, a global positioning system (GPS) receiver, or a portable storage device such as a universal serial bus (USB) flash drive, to name a few.
[0128] Components can be interchangeably "coupled" to each other, for example, by direct or optical connections to one or more intermediate components. Components can also be "coupled" to each other if one component is integrated into another. For example, a memory component integrated into a processor (e.g., an L2 cache component) is "coupled" to the processor.
[0129] To provide interaction with a user, embodiments of the subject matter described herein can be implemented or configured to communicate with a computer having: a display device (e.g., an LCD (liquid crystal display) monitor) for displaying information to a user; and an input device through which the user provides input to the computer, such as a keyboard and a pointing device such as a mouse, trackball, or touchpad. Other types of devices can also be used to provide interaction with a user; for example, feedback provided to the user can be any form of sensory feedback, such as visual, auditory, or tactile feedback; and input from the user can be received in any form, including sound, speech, or tactile input. Additionally, a computer can interact with a user by sending and receiving documents to and from a device used by the user; for example, by sending a webpage to a web browser on the user's device in response to a request received from a web browser on the user's device, or by interacting with an application (app) running on a user's device, such as a smartphone or tablet. Furthermore, a computer can interact with a user by sending text messages or other forms of messages to a personal device (e.g., a smartphone running a messaging application) in turn and receiving response messages from the user.
[0130] This document uses the term "configured as" in relation to systems, devices, and computer program components. For a system of one or more computers configured to perform a specific operation or action, this means that the system has software, firmware, hardware, or a combination thereof installed thereon that causes the system to perform said operation or action during operation. For one or more computer programs configured to perform a specific operation or action, this means that the one or more programs include instructions that, when executed by a data processing device, cause that device to perform said operation or action. For a dedicated logic circuit configured to perform a specific operation or action, this means that the circuit has electronic logic for performing said operation or action.
[0131] While this document contains numerous specific implementation details, these should not be construed as limiting the scope of the claims as defined by the claims themselves, but rather as descriptions of specific features of particular embodiments. Certain features described in the context of individual embodiments herein may also be implemented in combination in a single embodiment. Conversely, various features described in the context of a single embodiment may also be implemented individually or in any suitable sub-combination in multiple embodiments. Furthermore, although the features above may be described as functioning in certain combinations and even initially claimed in this way, in some cases, one or more features from the claimed combination may be removed from that combination, and claims may be made pointing to sub-combinations or variations thereof.
[0132] Similarly, although the operations are depicted in the accompanying drawings in a specific order and are described in the claims, this should not be construed as requiring that the operations be performed in the specific order shown or sequentially, or requiring that all the shown operations be performed, in order to achieve the desired effect. In some cases, multitasking and parallel processing may be advantageous. Furthermore, the division of various system modules and components in the above embodiments should not be construed as requiring such division in all embodiments, but rather it should be understood that the described program components and systems can generally be integrated together in a single software product or packaged into multiple software products.
[0133] Specific embodiments of the subject matter have been described. Other embodiments are within the scope of the following claims. For example, the actions recited in the claims can be performed in a different order and still achieve the desired result. As an example, the processing depicted in the figures does not require a specific order or sequence to achieve the desired result. In some cases, multitasking and parallel processing may be advantageous.
Claims
1. A computer-implemented method for promoting products using smart contracts in a blockchain network, wherein the blockchain network stores rules for promotional activities but not multiple promotional codes associated with the promotional activities, the promotional activities being associated with a private key and public key pair for identifying the promotional activities, the method comprising: A node in the blockchain network receives a redemption request for one of the multiple promotional codes; wherein the redemption request includes the promotional code, the identifier ID of the promotional activity, and a digital signature of the redemption request signed using the private key; The node identifies the public key of the promotional activity and the rules based on the ID of the promotional activity; The node determines the validity of the exchange request based on the digital signature of the exchange request and the public key; The node determines whether the promotional code is valid based on the rules by executing a smart contract.
2. The computer-implemented method as described in claim 1, further comprising: A node in the blockchain network receives a request to create a promotional campaign, wherein the request includes the public key and a digital signature generated using the private key; The node determines the validity of the creation request based on the public key and the digital signature; In response to determining that the creation request is valid, the node registers the promotional activity using the smart contract in the blockchain network, without storing the multiple promotional codes in the blockchain network.
3. The computer-implemented method as described in claim 2, wherein, The creation request also includes the rules for the promotional activity. The node registers the promotional activity using the smart contract in the blockchain network, including: The node inputs the rules into one or more functions of the smart contract; The node executes one or more functions of the smart contract; The node stores the rules in the blockchain network.
4. The computer-implemented method as described in claim 3, wherein, The rules include one or more of the following: The promotional activity's identifier ID, The total number of the multiple promotional codes, The scope of the multiple promotional codes, The types of the various promotional codes, Spelling rules for valid promotional codes The expiration date of the promotional activity, The promotional activity's area, or Eligibility for redeeming one of the multiple promotional codes.
5. The computer-implemented method as described in claim 1, further comprising: The node determines whether the promotional code has been redeemed based on the redemption history of the promotional activity by executing the smart contract.
6. The computer-implemented method as described in claim 5, further comprising: In response to the determination that the promotional code is valid and has not yet been redeemed: The redemption record of the promotional code is stored in the blockchain network; The system returns a confirmation that the promotional code has been successfully redeemed.
7. The computer-implemented method as described in claim 1, further comprising: In response to determining that the promotional code is invalid, a notification indicating that the promotional code is invalid is returned.
8. The computer-implemented method as described in claim 5, further comprising: In response to determining that the promotional code has been redeemed, a notification indicating that the promotional code has been redeemed is returned.
9. The computer-implemented method as described in any of the preceding claims, wherein, The multiple promotional codes are generated simultaneously, and the computer-implemented method further includes: The node receives two or more redemption requests at different times for redeeming two or more of the multiple promotional codes.
10. An apparatus for promoting products using smart contracts in a blockchain network, the apparatus comprising a plurality of modules for performing the method of any one of claims 1 to 9.
11. A system for using smart contracts to promote products in a blockchain network, the system comprising: One or more computers; and One or more computer-readable storage devices coupled to the one or more computers and storing instructions thereon, the instructions being executable by the one or more computers to perform the method of any one of claims 1 to 9.
Citation Information
Patent Citations
Transparent self-managing rewards program using blockchain and smart contracts
US20170140408A1
Systems and methods for hybrid blockchain platform
US20180268401A1
