Systems and methods for creating and distributing blockchain-enabled redistributable electronic content components

By leveraging blockchain technology and smart contracts, the issues of authenticity and tampering in digital content distribution have been resolved, enabling secure and tamper-proof content distribution and automated execution, thereby reducing costs.

CN115943612BActive Publication Date: 2026-05-01PAYPAL INC
View PDF 1 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
PAYPAL INC
Filing Date
2021-08-24
Publication Date
2026-05-01

AI Technical Summary

Technical Problem

In existing technologies, it is difficult to ensure the authenticity of digital content and prevent unauthorized tampering during the distribution process, and downstream entities cannot detect whether the content meets the requirements and specifications for creating the entity.

Method used

By using blockchain technology to create and store electronic content components, and using smart contracts to automatically execute actions, the immutability and security of the content are ensured, and the actions are automated in the distribution chain.

Benefits of technology

It enables secure and tamper-proof distribution of digital content, ensuring the authenticity and compliance of the content, and reducing the cost of discovering and enforcing distribution protocols.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115943612B_ABST
    Figure CN115943612B_ABST
Patent Text Reader

Abstract

Methods and systems for creating and distributing blockchain-enabled redistributable electronic content components provide better computer security and authentication controls. An electronic content component is created associated with a first entity and a first set of actions. The electronic content component is published and the first set of actions and a block representing the electronic content component are added to a blockchain. A second entity requests to use the electronic content component and a distribution agreement between the first entity and the second entity associated with a second set of actions is created. The second set of actions and a block representing the distribution agreement are added to the blockchain. The electronic content component and the distribution agreement are validated based on the blockchain and custom content including the electronic content component is published. When an end user accesses the electronic content component, the first set of actions and the second set of actions are executed.
Need to check novelty before this filing date? Find Prior Art

Description

Systems and methods for creating and distributing blockchain-supported redistributable electronic content components

[0001] Cross-references to related applications

[0002] This application is a continuation-to-file of U.S. Patent Application No. 17 / 012,956, filed on September 4, 2020, and claims priority to that U.S. Patent Application, the entire contents of which are incorporated herein by reference. Technical Field

[0003] According to various implementation methods, this specification generally relates to blockchain technology, and more specifically to the publication and distribution of blockchain-supported redistributable electronic content components. Background Technology

[0004] Digital content can be created by entities and distributed online to other entities, who may be permitted to further distribute the content with optional, authorized modifications. However, downstream entities may be unable to detect whether the digital content has been tampered with, and may not be aware of whether the content complies with the requirements and specifications of the entity that created it. Existing channels for distributing such content (e.g., email) may present problems related to content authenticity and unauthorized tampering. Systems and methods are described below to mitigate and / or eliminate these problems. Attached Figure Description

[0005] Figure 1 is a block diagram illustrating an online system for creating and distributing redistributable electronic content components and performing actions associated with these components according to an embodiment of the present disclosure.

[0006] Figure 2 is a block diagram illustrating communication between components of an online system for creating and distributing redistributable electronic content components and performing actions associated with these components, according to an embodiment of the present disclosure.

[0007] Figure 3 illustrates a process for creating and distributing redistributable electronic content components and performing actions associated with these components according to an embodiment of the present disclosure.

[0008] Figure 4 illustrates various exemplary distribution chains for distributing redistributable electronic content components according to embodiments of the present disclosure.

[0009] Figure 5 illustrates a message including custom content according to an embodiment of the present disclosure, the custom content comprising multiple redistributable electronic content components.

[0010] Figure 6 illustrates an exemplary blockchain network.

[0011] Figure 7 illustrates an exemplary blockchain.

[0012] Figure 8 is a block diagram of a system for implementing the device according to an embodiment of the present disclosure.

[0013] The embodiments and advantages of this disclosure are best understood by referring to the following detailed description. It should be understood that the same reference numerals are used to identify the same elements shown in one or more figures, wherein the illustrations in the figures are for illustrative purposes and not for limiting the purpose of this disclosure. Detailed Implementation

[0014] This disclosure describes methods and systems for creating and distributing redistributable electronic content components and performing actions associated with these components.

[0015] Digital content can be distributed by entities via electronic content components. The system can create a first electronic content component associated with a first entity (e.g., a service provider) in a database. The first electronic content component may include a first set of one or more traits, each of which may or may not be modifiable by consumers of the first electronic content component (e.g., downstream entities). The electronic content component may also be associated with a first set of one or more actions. Each action can be defined by code that can be automatically executed when conditions associated with a promotional component and various distribution protocols are met. For example, each action can be implemented via a smart contract stored in a blockchain. One or more traits can be associated with actions (e.g., traits can be parameters considered by the action).

[0016] A system (e.g., at the request of a service provider) may publish a first electronic content component for use or distribution by other entities. When publishing the first electronic content component, the system may store each action in a first set of actions in a blockchain (e.g., as a transaction or in a ledger) and add a first electronic content component block based on the first electronic content component to the blockchain. The first electronic content component block may include a first content hash based at least on each immutable characteristic in a first set of characteristics. The system may combine immutable characteristics to generate a first content hash using a hash function (e.g., Secure Hash Algorithm 256 (SHA-256)) based on the combined characteristics. The first electronic content component block may also store the address associated with each action in the first set of actions (e.g., the address of the action on the blockchain). The first content hash and the address of the first set of actions may also be stored in a database as part of the electronic content component.

[0017] If the system receives a request from a second entity to use a first electronic content component, the system can create a distribution protocol in the database. The distribution protocol can associate the second entity with the first electronic content component and also with a second set of one or more actions. To create the distribution protocol, the system can create a sub-electronic content component that is initially a clone of the first electronic content component, where the parent field of the sub-electronic content component stores a reference to the first (i.e., the parent) electronic content component. The sub-electronic content component can include a subset of one or more characteristics, each of which is a copy of a characteristic from a first set of characteristics. The system can audit (e.g., set immutably) each characteristic in the subset of characteristics, each associated with an audit scope indicating that the characteristic should be audited when the distribution protocol is created. The system can then add each action in the second set of actions to the blockchain (e.g., add it as a transaction or add it to the ledger) and add a distribution protocol block based on the distribution protocol to the blockchain. The distribution protocol block can include at least a second content hash based on each immutable characteristic in the subset of characteristics, and each address corresponding to an action in the second set of actions (e.g., the address of the action on the blockchain). The second content hash and the address of the second action set can also be stored in the database as part of the distribution protocol.

[0018] A request to use the first electronic content component may include a request to modify a characteristic in a first set of characteristics (e.g., a credit limit to be issued to an end user fulfilling the terms of an offer included in the first electronic content component). The system may determine that a characteristic is variable (e.g., by retrieving the first offer component from a database and checking whether it is marked as variable or immutable) and approve the request to modify that characteristic and to use the first electronic content component. In some implementations, a characteristic may be associated with a range in which that characteristic can be modified. Before approving a request to modify the characteristic (and the request to use the first content component), the system may determine whether the modification value of the characteristic is within an appropriate range, and approve the request only if the modification value is within that range.

[0019] For example, an online service provider may want to reward users for taking action. The service provider could offer users discounts on products or services (e.g., via email) or, if a user makes a purchase, offer credit applied to the user's account. However, an online service provider may be more successful at persuading users to make a purchase by involving one or more entities in the distribution chain rather than directly contacting the user. For example, a local online merchant may be more well-known or trusted in a region than the online service provider. The service provider may be able to increase the usage of its service by having local merchants offer the provider's products or services to local consumers in exchange for rewards (e.g., commissions). An online service provider may also want to partner with multiple manufacturers or distributors to reach end users. For example, a service provider offering online payment services could partner with consumer electronics companies and national retailers to offer discounts to users who purchase products created by consumer electronics companies on websites owned by national retailers. The service provider could enter into agreements with each party in the distribution chain (with the local merchant in the first example, and with the consumer electronics company and national retailer in the second example) where the terms indicate what percentage or amount each party will receive from sales, the term of the agreement, and which entities will bear which portion of any discounts or credits given to the buyer. Once a transaction satisfying the terms of such an agreement occurs with an end user, the parties can distribute the proceeds of the transaction and exchange funds according to the agreement, and / or apply credit lines or future discounts to the user. Creating such an agreement can be costly, including search costs for willing parties, legal and other expenses for creating and negotiating the agreement, and enforcement costs associated with properly distributing funds based on the agreement after a transaction with the user. Therefore, there is a need for methods that allow service providers to communicate terms and enter into agreements with entities in the distribution chain (whom the service provider may not be aware of), thereby reducing the costs of discovering entities and enforcing agreement terms.

[0020] Online service providers can create affiliate programs that allow other entities to promote their products and services in exchange for compensation. However, these programs typically do not support distribution chains with multiple downstream resellers, nor do they allow multiple service providers or resellers to jointly offer rewards to consumers. Furthermore, affiliates may tamper with the terms of the offer before presenting it to users. For example, a service provider might allow affiliates to offer a 5% discount on a product and compensate them on a pay-per-click basis. The affiliate might then promote the 5% discount as a 10% discount to entice users to click on the offer. Users might click on the offer only to find that the service provider is offering a 5% discount, which infuriates them, as they may not realize that the affiliate, rather than the service provider, is responsible for the misleading offer. The service provider may then have to pay the affiliate based on the user's clicks unless it discovers the affiliate's fraudulent modification of the offer. Regulating its network of affiliates to prevent fraud increases the additional costs for service providers attempting to acquire consumers.

[0021] Therefore, embodiments of the present invention provide methods and systems for creating and distributing redistributable electronic content components and performing actions associated with these components in a secure, tamper-proof manner. Electronic content components may include offers that reward users and any entity distributing the offer. Electronic content components may be distributed and redistributed by entities in a distribution chain and combined with other electronic content components from different entities (e.g., in a message from an online merchant to its consumer), while ensuring that the fixed terms of the offer are not altered by any entity in the distribution chain.

[0022] For example, a service provider can create an e-content component for distribution to users redeeming offers. This e-content component offers a 5% cashback to users using payment methods provided by the service provider and a 1% commission to the merchant. Online merchants can choose to incorporate the e-content component (e.g., using an application for composing messages that include the e-content component) into messages used by their consumer lists. The system can automatically create a distribution agreement between the online merchant and the service provider, awarding the merchant a 1% commission on purchases made by consumers using the e-content component included in the message to redeem offers. When a user redeems an offer, actions associated with the e-content component and the distribution agreement are executed, crediting the 5% cashback indicated by the offer to the user's account and the 1% commission indicated by the distribution agreement to the merchant.

[0023] Service providers can allow any number of entities to participate in the distribution chain between them and end users. For example, a consumer electronics manufacturer might choose to use an eContent Component and automatically enter into a distribution agreement with a service provider to receive a 1% commission. The manufacturer can then offer an additional 3% cashback to users who purchase their products using the service provider's payment methods. The manufacturer can then publish its own eContent Component based on content created by the service provider, offering an 8% cashback. As before, online merchants can choose to use eContent Components in messages sent to their consumer lists, and this time automatically enter into a distribution agreement with the manufacturer. When a consumer redeems an offer indicated by the eContent Component, actions related to the eContent Component and the distribution agreement are executed, crediting the consumer with 5% from the service provider and 3% from the manufacturer, as well as paying the merchant a 1% commission from the sale. The system can record all aspects of the eContent Component and the distribution agreement on the blockchain to prevent their terms from being modified, as detailed below.

[0024] In some implementations, the system may create a first e-content component associated with a first entity (e.g., a service provider) in a database. The first e-content component may include a first set of one or more characteristics that may correspond to attributes associated with, for example, offers to end users. For example, characteristics may include the type of reward offered to the user (e.g., an instant discount, a discount or voucher for future use, a cash back offer, or a stated credit amount), the amount associated with the reward (e.g., the amount of the discount or the amount of the credit), and the effective date of the offer. Each characteristic may be modifiable by the consumer (e.g., a merchant or distributor) of the first e-content component or may not be modifiable by the consumer (e.g., a merchant or distributor). The variability of a characteristic may be defined by the scope of approval associated with the characteristic. For example, the scope of approval may indicate that the characteristic will be immutable when a distribution agreement is created or when custom content including the e-content component is published. Characteristics may also be marked as immutable when the e-content component is first created.

[0025] The first electronic content component can also be associated with a first set of one or more actions (e.g., crediting a user's account with money or another type of credit, offering a discount on a purchase, adding a voucher for a future purchase discount to the user's account, performing an action to provide any reward indicated by a feature, etc.). Each action can be defined by code that can be executed automatically when conditions associated with the offer component and various distribution protocols are met. For example, each action can be implemented via a smart contract stored in a blockchain. In some implementations, actions and / or features can also be associated with penalties. For example, if a user earns credit for purchasing a product and subsequently returns the product, an action can be performed to remove that credit from the user's account.

[0026] A system (e.g., at the request of a service provider) may publish a first e-content component for use or distribution by other entities. When publishing the first e-content component, the system may store each action in a first action set in a blockchain (e.g., as a transaction or in a ledger) and add a first e-content component block based on the first e-content component to the blockchain. The first e-content component block may include a first content hash based at least on each immutable characteristic in a first characteristic set. For example, the first e-content component may include a name, maximum cash return value, minimum cash return value, and expiration date as immutable characteristics. The system may combine immutable characteristics to generate a first content hash based on the combined characteristics using a hash function (e.g., SHA-256). The first e-content component block may also store the address associated with each action in the first action set (e.g., the address of the action on the blockchain). The first content hash and the address of the first action set may also be stored as part of the e-content component in a database.

[0027] The system can receive requests to use a first electronic content component from a second entity (e.g., a distributor or merchant). In response to the request, the system can create a distribution agreement in a database. The distribution agreement can associate the second entity with the first electronic content component and also with a second set of one or more actions (e.g., paying a commission to the second entity or deducting a previously paid commission from the second entity's account). To create the distribution agreement, the system can create a sub-electronic content component that is initially a clone of the first electronic content component, where the sub-electronic content component's parent field stores a reference to the first (i.e., the parent) electronic content component. The sub-electronic content component can include a subset of one or more features, each of which is a copy of a feature from a first feature set. The system can audit (e.g., set it to be immutable) each feature in the feature subset, each feature being associated with an audit scope indicating that the feature should be audited at the time the distribution agreement is created. The system can then add each action in the second set of actions to the blockchain (e.g., add it as a transaction or add it to the ledger) and add a distribution agreement block based on the distribution agreement to the blockchain. The distribution protocol block may include a second content hash based on at least each immutable characteristic in the characteristic subset, and each address corresponding to an action in the second action set (e.g., the address of the action on the blockchain). The second content hash and the address of the second action set may also be stored in a database as part of the distribution protocol.

[0028] In some implementations, a request to use the first electronic content component may include a request to modify a characteristic in a first set of characteristics (e.g., a credit limit to be issued to an end user fulfilling the terms of an offer included in the first electronic content component). The system may determine that a characteristic is variable (e.g., by retrieving the first offer component from a database and checking whether it is marked as variable or immutable) and approve the request to modify that characteristic and to use the first electronic content component. In some implementations, a characteristic may be associated with a range in which that characteristic can be modified. Before approving a request to modify a characteristic (and a request to use the first content component), the system may determine whether the modification value of the characteristic is within an appropriate range, and approve the request only if the modification value is within that range.

[0029] The system can then receive a request from the second entity to publish custom content comprising a first electronic content component (which can be internally represented by a clone or sub-electronic content component). The custom content could be, for example, an email message from the second entity to a consumer, incorporating the first electronic offer component. The system can verify the first electronic content component in response to the request to publish the custom content. For example, the system can determine, based on a first content hash and a second content hash, that immutable characteristics in either the first or second set of characteristics have not been modified in the custom content. The system can retrieve the second content hash from a database and compare it with a second content hash stored in a distribution protocol block in the blockchain to ensure they match, and similarly compare the first content hash from the database with a first content hash stored in a first electronic content component block in the blockchain to ensure they match. If the content hashes match (indicating no modification to immutable characteristics), the system may approve the request to publish the custom content. Otherwise, if the content hashes do not match, the system may reject the request. After approving a request to publish custom content, the system can use tracking information to modify the URL associated with the first content component (and any other content components to be included in the custom content). For example, tracking information can allow the system to determine if an end user has visited a link indicated by the URL.

[0030] When an end user accesses the first electronic content component (e.g., by following a link included in custom content and / or by making a purchase based on that link), the system may receive a notification that the user has accessed the first electronic content component. In response to this notification, the system may execute a second set of actions and a first set of actions. For example, the system may pay any commission owed to a second entity based on the terms of the distribution agreement (using funds from the first entity), and apply any credit amount or discount owed to the end user based on the first electronic content component.

[0031] In some implementations, the distribution protocol may be associated with a time frame indicating when the distribution protocol is valid. The system may receive a second notification that a second end user has accessed the first electronic content component outside the valid time frame, and determine not to perform either the second set of actions or the first set of actions in response to the access time being outside the valid time frame.

[0032] In some implementations, a second entity may request the release of its own eContent Component (ECC) instead of directly incorporating the first ECC into custom content (e.g., an email message). For example, the second entity might be a reseller of a merchant who intends to make the ECC available for better access to certain consumers. The second entity may wish to create a new ECC based on the first ECC, where the new ECC splits the commission of the first ECC between itself and a third entity. As another example, the second entity may wish to add rewards for end-user purchases of specific products (e.g., if the second entity is a footwear manufacturer, it may wish to offer discounts on its branded shoes in addition to cash rebates included in the first ECC). The second entity may then wish to release an ECC that includes both its own rewards and those offered by the first entity. In these and other cases, the system may receive and approve a request from the second entity to release a second ECC based on the first ECC (e.g., after determining that the immutable characteristics of the first ECC have not been modified). Similar to the first electronic content component, the system can create a second electronic content component in the database associated with a second set of features and a third set of actions (e.g., additional rewards for end users), and add the second electronic content component block and the third set of actions to the blockchain. The system can then receive requests from a third entity to use the second electronic content component.

[0033] Upon receiving a request to use the first electronic content component, the system can create a second distribution protocol in the database that associates a third entity with the second electronic content component. The second distribution protocol can be associated with a fourth set of actions (e.g., a reward paid by the second entity to the third entity). Following the same procedure as the first distribution protocol described above, the system can add a second distribution protocol block to the blockchain based on the second distribution protocol, and add the fourth set of actions to the blockchain (e.g., add it as a transaction or add it to the ledger). The system can then receive requests to publish custom content that includes the second electronic content component. After verifying that the immutability of either the first or second electronic content component has not been modified, the system can approve the request to publish the custom content (or reject the request if any characteristic has been modified). The system can also verify whether the first or second distribution protocol has been modified and thus terminate any downstream distribution protocols. For example, the system can determine that the first distribution protocol has been modified (based on a mismatch between the content hash stored in the database and the content hash stored in the blockchain), reject the request to publish the custom content, and terminate the second distribution protocol.

[0034] If the system approves a request to publish custom content, the system may receive a notification that the end user has accessed the second electronic content component, and in response to the notification, perform a fourth set of actions, a third set of actions, a second set of actions, and a first set of actions (e.g., paying any commission owed to the entity and applying any credit amount and / or discount to the end user).

[0035] Figure 1 illustrates an online system 100 for creating and distributing redistributable electronic content components and performing actions associated with these components, according to embodiments of the present disclosure. The illustrated online system 100 includes a content platform server 130, a blockchain 180, one or more content creator servers (e.g., 140a and 140b), a merchant server 150, and user equipment 110, each of which can communicate with other components via a network 160. In one embodiment, the network 160 may be implemented as a single network or a combination of multiple networks. For example, in various embodiments, the network 160 may include the Internet and / or one or more intranets, terrestrial networks, wireless networks, and / or other suitable types of communication networks. In another example, the network 160 may include a wireless telecommunications network (e.g., a cellular telephone network) adapted to communicate with other communication networks such as the Internet.

[0036] In one implementation, user equipment 110 can be used by user 140 to interact with merchant server 150 via network 160. For example, user 140 can use user equipment 110 to search for and purchase goods and / or services from merchant server 150.

[0037] In various implementations, user equipment 110 may be implemented using any suitable combination of hardware and / or software configured to perform wired and / or wireless communications over network 160. In various implementations, user equipment 110 may include at least one of a wireless cellular phone, a wearable computing device, a PC, or a laptop computer.

[0038] In one implementation, user equipment 110 includes a user interface (UI) application 112 (e.g., a web browser) that can be used by user 140 to conduct electronic transactions (e.g., selling, shopping, purchasing, bidding, etc.) with merchant server 150 via network 160. In one implementation, the user interface application 112 includes software programs, such as a graphical user interface (GUI), that can be executed by a processor configured to interact and communicate with merchant server 150 via network 160. In another implementation, the user interface application 112 includes a browser module that provides a network interface to browse available information via network 160. For example, the user interface application 112 may be partially implemented as a web browser to view available information via network 160.

[0039] In various embodiments, user equipment 110 may include additional applications 114 that may be desired in one or more embodiments of this disclosure to provide additional functionality available to user 140. For example, application 114 may include: a security application for implementing client-side security functions; a programmatic client application for interacting with a suitable application programming interface (API) via network 160; and / or various other types of well-known programs and / or software applications. In yet another example, additional applications 114 may interact with user interface application 112 to improve efficiency and convenience.

[0040] In various implementations, user 140 may input data and information into the input components (e.g., a keyboard) of user device 110 to provide user information with a request, such as a request to purchase goods or servers, a request to log in to an account, or other types of requests. User information may include user identification information.

[0041] Although only one user equipment 110 is shown in Figure 1, it is envisioned that one or more user equipments (each similar to user equipment 110) can communicate with other components via network 160 within system 100.

[0042] In one implementation, the content platform server 130 includes an electronic content component module 132 and a component data storage device 138. The electronic content component module 132 can support the creation, publication, and distribution of electronic content components. For example, the electronic content component 132 can receive requests to create, publish, and distribute electronic content components from content creator servers 140a and 140b, and requests to construct messages including electronic content components from merchant server 150. When a request is received from content creator server 140a to use electronic content components created from different content creator servers 140b, the electronic content component module 132 can also create distribution protocols. The electronic content component module 132 can store electronic content components and distribution protocols (e.g., records representing electronic content components and distribution protocols) in the content component data storage device 138. The electronic content component module 132 can also create blocks in blockchain 180 for each electronic content component and distribution protocol, the blocks including hashes based on the immutable characteristics or attributes of the electronic content component or distribution protocol. A copy of each hash can be stored in the content component data storage device 138 along with the corresponding electronic content component or distribution protocol to determine whether the electronic content component or distribution protocol has been tampered with (e.g., by comparing the hash in the content component data storage device 138 with its corresponding hash in the blockchain). The electronic content component module 132 can also store actions associated with each electronic content component and distribution protocol (e.g., as smart contracts) in the blockchain 180 (e.g., as transactions or in the ledger) and trigger those actions in response to user 140 interacting with the electronic content component (e.g., clicking a link within the electronic content component in an email message or making a purchase on the merchant server 150).

[0043] In one implementation, merchant server 150 includes storage module 152 and message builder application 154. Storage module 152 may include: various applications and components for running an online store, including a storefront allowing users to view and purchase goods and services; a backend including a web server for hosting the storefront and managing inventory; and storage devices for storing product information and user account information. Message builder application 154 provides functionality for composing messages including electronic content components (e.g., email messages). For example, an agent (e.g., an employee of the merchant operating merchant server 150) can compose messages to be sent to the merchant's consumers, including content created by the agent and one or more electronic content components. Message builder application 154 may be a standalone application running on merchant server 150 or a web browser accessing message builders hosted on content platform server 130. Although only one merchant server 150 is shown in Figure 1, it is envisioned that one or more merchant servers 150 can communicate with other components via network 160 within system 100.

[0044] Each content creator server may include an eContent Component Builder application 142, which may be identical or similar to the Message Builder application 154 on Merchant server 150, and has additional functionality for creating eContent Components. EContent Component Builder application 142 may present interfaces for creating, modifying, and distributing eContent Components. EContent Component Builder application 142 may allow content creators to define parameters for eContent Components, including rewards for end users who meet various conditions, and rewards for any entity distributing the eContent Component. For example, content creator server 140a may use eContent Component Builder application 142a to create and publish eContent Components, thereby granting users a 5% discount on any purchase made using a payment method managed by the content creator. The eContent Component may stipulate that the entity distributing the eContent Component (e.g., a merchant or reseller) will receive a 1% sales commission from the sales generated by the eContent Component. Content creator server 140b can access electronic content components using electronic content component builder application 142b and create new electronic content components based on the electronic content components created by content creator server 140a, thereby providing a 0.5% commission (e.g., derived from a 1% commission) to merchants who complete sales based on the new electronic content components, and distributing the new electronic content components to multiple merchant servers, including merchant server 150 (which may not be visible to content creator server 140a).

[0045] Figure 2 shows a more detailed block diagram of a system 100 interacting with an electronic content component module 132 according to an embodiment of the present disclosure. As shown, the electronic content component module 132 includes a content component manager 134, a verification module 135, and an event module 136. The electronic content component module 132 can communicate with a content component data storage device 138 to store and retrieve data related to electronic content components, with an account data storage device 138 to store and retrieve data related to content creators (e.g., distributors, merchants, etc.), and with a blockchain 180 to store data related to electronic content components and distribution protocols. The blockchain 180 can be used to ensure the integrity of electronic content components and distribution protocols (e.g., the immutability of electronic content components and distribution protocols is not modified), facilitate the discovery of distribution protocols and electronic content components in the distribution chain, and store actions associated with electronic content components and distribution protocols.

[0046] Content component data storage device 138 can store data representing electronic content components and distribution protocols. For example, for each electronic content component, the content component data storage device can store records including: electronic content component ID, parent ID (if the electronic content component is cloned or derived from another electronic content component), name of the electronic content component, description of the electronic content component for display in the message builder application 154 and content creation module 142 (including a brief overview and a detailed description), user interface (UI) elements for inclusion in custom content (e.g., email messages and web pages) including the electronic content component (e.g., HTML files, images, JavaScript code, etc.), characteristics (e.g., customizable attributes such as the amount of cashback or credit, discounts, validity period, how many times the electronic content component may be redistributed, etc.), actions (e.g., smart contracts to be executed when a user-related event occurs, such as clicking a link in the electronic content component or making a purchase), and status information (e.g., whether the electronic content component is drafted or has been published, or whether the electronic content component is inactive or archived). Each record may also include a content hash of an electronic content component, which includes attributes of the electronic content component fixed at the time of its creation or publication (e.g., name, description, and any immutable characteristics), which may also be stored in blocks on blockchain 180. Content component data storage device 138 may also store data representing distribution protocols created when a request to use an existing electronic content component is received from content creator server or merchant server 150. Each distribution protocol (e.g., each record representing a distribution protocol) may include a distribution protocol ID, a parent distribution protocol ID (identifying the distribution protocol preceding the current one in the distribution chain), the name of the distribution protocol, the electronic content component to which the distribution protocol belongs, the transferor (the entity providing the electronic content component), the transferee (the entity using the electronic content component), a flag indicating whether the electronic content component can be further distributed by the transferee and / or a counter indicating how many times it can be further distributed by the transferee, a start and end time indicating when the transferee can use the electronic content component, terms and conditions, and actions (e.g., smart contracts executed when user-related events such as clicking a link in the electronic content component or making a purchase occur).

[0047] Account data storage device 138 may store data relating to which entities (e.g., manufacturers, service providers, distributors, merchants, etc.) have access to content available from content platform server 130. For example, account data storage device 138 may store authentication information (e.g., usernames and passwords) and / or certificate data to verify the identity of entities. Content creator servers 140a and 140b and merchant server 150 may use login information and / or certificate information to access content from content platform server 130. Account data storage device 138 may also include information indicating which entities have access to e-content components. For example, entities may create groups with different entities as members and make e-content components available only to entities within a specific group.

[0048] Blockchain 180 (which may be blockchain 620 or 700 as described in Figures 6 and 7) may be a privately permitted blockchain and may be managed by the entity that controls content platform server 130. In some implementations, any number of content creator servers (e.g., 140a and 140b) may be peers in a blockchain network that manage blockchain 180 with access and permissions determined by content platform server 130. Blockchain 180 may store linked blocks corresponding to electronic content components and distribution protocols, as well as actions associated with electronic content components and distribution protocols. Each electronic content component block may include a unique block ID identifying the block (which may also be stored in a record corresponding to the electronic content component in content component data storage device 138), an index identifying the creation order of the block, a timestamp indicating the creation time of the block, a hash of the previous block in the blockchain, and data (e.g., transaction information) including a hash of the immutable properties of the electronic content component and the address (in the blockchain) of any action associated with the electronic content component. Similarly, each distribution protocol block may include a unique block ID that identifies the block (which may also be stored in a record corresponding to the distribution protocol in the content component data storage device 138), an index that identifies the creation order of the blocks, a timestamp indicating the creation time of the block, a hash of the previous block in the blockchain, and data (e.g., transaction information) that includes the electronic content component ID of the electronic content component associated with the distribution protocol, a hash of the immutable properties of the distribution protocol, and the address of any action associated with the distribution protocol (in the blockchain).

[0049] Content Component Manager 134 can support the creation, publishing, and distribution of electronic content components. For example, Content Component Manager 134 can receive a request from Content Creator Server 140a (e.g., from Content Component Creation Module 142a) to create a first electronic content component with attributes configured using Content Component Creation Module 142a. Attributes may include, for example, a set of features indicating that for purchases made using a specific payment method, the end user will receive a 5% cashback, and that the merchant will receive a 1% commission when sending the electronic content component to the end user and the end user redeems the offer indicated by the electronic content component. Content Component Manager 134 can create the first electronic content component (e.g., a record for the electronic content component) in Content Component Data Storage Device 138.

[0050] Content Component Manager 134 can then receive a request to publish an electronic content component from Content Creator Server 140a. Electronic Content Component Module 132 can update the electronic content component in Content Component Data Storage Device 138 to change its state from draft to published, add blocks to the blockchain corresponding to the electronic content component (having the aforementioned attributes), add any actions related to the electronic content component to the blockchain (e.g., as a smart contract stored in a transaction), and make the electronic content component available for distribution. Electronic Content Component Module 132 can then receive a request to distribute a first electronic content component from Content Creator Server 140b (e.g., via Content Component Creation Module 142b). Electronic Content Component Module 132 can cooperate with Verification Module 135, as described below, to verify the electronic content component.

[0051] Electronic content component module 132 can then create a first distribution protocol in the content component data storage device and clone the first electronic content component to create a second electronic content component. Electronic content component module 132 can set the parent ID of the second electronic content component to the electronic content component ID of the first electronic content component. Content component creation module 142b can modify any variable aspects of the electronic content component (e.g., a 10% cashback can be changed to a 12% cashback, with the additional condition that the purchase is brand-specific, and a 1% commission can be changed to a 1.5% commission, with the entity making the modification bearing the cost of the additional 2% cashback and the additional 0.5% commission) and the request to publish the electronic content component from content component manager 134. Content component manager 134 can communicate with verification module 135 to verify the second electronic content component as described below, and then publish the second electronic content component in the same manner as the first electronic content component.

[0052] Content Component Manager 134 can receive requests from Message Builder Application 154 on Merchant Server 150 to create custom content including a first e-content component and / or a second e-content component. For example, Message Builder Application 154 can compose a message offering a user the option to redeem an offer indicated by any e-content component (e.g., 10% cashback for using the indicated payment method, or 12% cashback for purchasing a product of a specified brand using the indicated payment method). Content Component Manager 134 can communicate with Verification Module 135 (as described below) to verify the e-content components (e.g., verifying that immutable characteristics have not been altered) and allow the creation of custom content. Custom content may include indications that the e-content components have been verified (e.g., checking for markers, asterisks, ribbons, or other icons visible to the end user). Clicking or tapping on the indicator takes the user to a webpage hosted on Content Platform Server 130, which includes verification information for any e-content components included in the custom content. For example, the webpage may include a distribution chain showing which entities each e-content component originates from and the terms of each e-content component. A second distribution protocol can be created in a content component data storage device (where the parent distribution protocol ID is set to the distribution protocol ID of the first distribution protocol) between content creator server 140b (e.g., the entity that controls content creator server 140b) and merchant server 150 (e.g., the merchant that controls merchant server 150), and the distribution protocol block can be added to the blockchain.

[0053] After verification, the message builder application 154 can allow custom content to be published and sent to end users (e.g., via the functionality of the message builder application 154, or by exporting the custom content for transfer to different applications). During the publication of custom content, the message builder application 154 can use parameters (e.g., parameters indicated by the content component manager) to modify the URL associated with each e-content component to allow tracking of end users accessing the e-content component (e.g., to allow the e-content component module 132 to determine which links in the e-content component are followed, identify the e-content component, and identify the merchant).

[0054] Event module 136 can receive user event notifications related to electronic content components from a merchant server. For example, the event module can receive notifications when a user (e.g., on user device 110, using UI application 112) clicks or hovers over an element in the storefront (provided by storage module 152) or makes a purchase. Storage module 152 can be configured (e.g., via JavaScript code) to send event notifications related to electronic content components to electronic content component module 132, enabling electronic content component module 132 to determine when conditions are met for performing actions associated with the electronic content component and / or distribution protocols. Event module 136 can receive user event notifications, process user event notifications, and notify registered event listeners that they have received notifications in electronic content component module 132, which may include content component manager 134. Content component manager can receive notifications, determine when conditions associated with the electronic content component are met, and initiate actions associated with the electronic content component and any related distribution protocols.

[0055] For example, event module 136 can receive, process, and transmit a notification that a user has purchased a product from a brand indicated by the second electronic content component using a payment method specified by the second electronic content component. Content component manager 134 can receive the notification and initiate any action associated with the second electronic content component and any distribution protocol in the distribution chain of the second electronic content component. For example, content component manager 134 can retrieve a second distribution protocol from the content component data storage device using the distribution protocol ID included in the notification. Content component manager 134 can initiate the execution of an action associated with the second distribution protocol based on an address stored in the distribution protocol (e.g., a smart contract address) (e.g., by sending the transaction to a blockchain with the contract address). For example, a smart contract can pay a merchant a 0.5% commission. Content component manager 134 can retrieve the second electronic content component (based on the electronic content component ID stored in the distribution protocol) and execute an action associated with that second electronic content component (e.g., paying a 2% cashback to the end user). The content component manager can then retrieve the first distribution protocol by tracing back through the distribution chain (using the parent distribution protocol ID stored with each distribution protocol). The content component manager can then perform actions associated with the first distribution agreement (paying a 1% commission) and the first electronic content component (paying a 10% cash rebate).

[0056] Verification module 135 can verify the electronic content component at various stages of the electronic content component publishing process, for example, before publishing the electronic content component or custom content including the electronic content component. Verification module 135 can verify that the immutability of the electronic content component has not been modified. For example, verification module 135 can retrieve the hash of the electronic content component from the content component data storage device 138 and compare that hash with the hash in the electronic content component block stored in the blockchain to ensure they match. The verification module can verify that the immutability has not been modified by backtracking the distribution chain (using the parent ID of each electronic content component). Verification module 135 can also verify that the publication of the electronic content component or custom content including the electronic content component occurs within a time period indicated by the electronic content component or the distribution protocol associated with the electronic content component. The verification module 135 can also verify whether the entity requesting the use of the electronic content component (whether for redistribution or for publishing custom content including the electronic content component) has permission to use the electronic content component (e.g., because the entity created the electronic content component, or because the entity has been granted permission to use the electronic content component through a distribution agreement); and whether the electronic content component has been distributed more than the permitted number of times (e.g., the electronic content component may indicate that it can be distributed up to two levels deep in the distribution chain). The verification module 135 can notify the content component manager 134 of any verification failure, and the content component manager 134 can refuse to publish and distribute a second electronic content component or custom content including a second electronic content component in response to the verification failure.

[0057] Figure 3 illustrates a process 300 for creating and distributing redistributable electronic content components and performing actions associated with these components. Note that the steps described below with respect to Figure 3 are also described above and may be performed, combined, or appropriately omitted in different embodiments. According to various embodiments, one or more operations described in Figure 3 may be performed by the content platform server 130 and / or another computer system (e.g., computer system 800 shown in Figure 8).

[0058] At box 305, process 300 (e.g., using content component manager 134 in response to a request from a content creator server) can create a first electronic content component associated with a first entity (e.g., a service provider operating the content creator server) in a database (e.g., in content component data storage device 138). The first electronic content component may include a first set of one or more characteristics that may correspond to attributes associated with, for example, offers to end users. For example, characteristics may include the type of reward offered to the user (e.g., an instant discount, a discount or voucher for future use, a cash rebate offer, or a stated credit amount, etc.), the amount associated with the reward (e.g., the amount of the discount or the credit amount), and the effective date of the offer. Each characteristic may be modifiable by the consumer (e.g., a merchant or distributor) of the first electronic content component or may not be modifiable by the consumer (e.g., a merchant or distributor). The variability of a characteristic may be defined by the scope of approval associated with the characteristic. For example, the scope of approval may indicate that the characteristic will be immutable when a distribution agreement is created or when custom content including the electronic content component is published. When an eContent Component is first created, its properties can also be marked as immutable. The first eContent Component may also include additional attributes, such as eContent Component ID, name, description of the eContent Component, elements contained in the custom content that includes the eContent Component (e.g., HTML files, images, JavaScript code, etc.), and / or status information (e.g., whether the first eContent Component is drafted or has been published, or whether the first eContent Component is inactive or archived).

[0059] The first e-content component can also be associated with a first set of one or more actions (e.g., crediting a user's account with money or another type of credit, offering a discount on an app purchase, adding a voucher for a future purchase discount to the user's account, etc.). Each action can be defined by code that can be executed automatically when conditions associated with the offer component and various distribution protocols are met. For example, each action can be implemented via a smart contract, where the address of each smart contract is stored in the e-content component.

[0060] At box 310, process 300 (e.g., using content component manager 134 in response to a request from a content creator server) can publish a first e-content component for use or distribution by other entities. When publishing the first e-content component, content component manager 134 can store each action in the first action set in the blockchain (e.g., stored as a transaction or stored in a ledger) and add a first e-content component block based on the first e-content component to the blockchain. The first e-content component block can include a first content hash based at least on each immutable characteristic in the first characteristic set. For example, the first e-content component can include a maximum cash return value, a minimum cash return value, and a deadline as immutable characteristics. Content component manager 134 can combine immutable characteristics to generate a first content hash based on the combined characteristics using a hash function (e.g., SHA-256). The first e-content component block can also store the address associated with each action in the first action set (e.g., the address of the action on blockchain 180). The addresses of the first content hash and the first action set can also be stored in the database as part of the electronic content component for use by process 300 when verifying the first electronic content component and executing the first action set.

[0061] At box 305, process 300 (e.g., via content component manager 134) can receive a request to use the first e-content component from a second entity (e.g., from a reseller via content creator server 140b or from a merchant via merchant server 150). For example, a merchant operating merchant server 150 might want to use message builder application 154 to write custom content that includes the first e-content component.

[0062] In step 320, in response to a request to use the first electronic content component, process 300 (e.g., using content component manager 134) may create a distribution agreement in a database (e.g., in content component data storage device 138). The distribution agreement may associate a second entity with the first electronic content component and may also associate it with a second set of one or more actions (e.g., paying a commission to the second entity). For example, content component manager 134 may set the assignor field of the distribution agreement to the entity operating content creator server 140a, and the assignee field to the entity operating merchant server 150. To create the distribution agreement, the system may create a sub-electronic content component that is initially a clone of the first electronic content component, where the parent field of the sub-electronic content component stores a reference to the first electronic content component. The sub-electronic content component may include a subset of one or more features, each feature being a copy of a feature from a first feature set. Content component manager 134 may vet each feature in the feature subset (e.g., set it to immutable), each feature being associated with a vetted scope indicating that the feature should be vetted when the distribution agreement is created.

[0063] At box 325, process 300 (e.g., using content component manager 134) can add each action in a second set of one or more actions to the blockchain (e.g., add it as a transaction or add it to the ledger), and at box 330, process 300 can add a distribution protocol block based on the distribution protocol to the blockchain. The distribution protocol block may include a second content hash based at least on each immutable characteristic in the characteristic subset, and each address corresponding to an action in the second set of actions (e.g., the address of the action on blockchain 180). The second content hash and the address of the second set of actions may also be stored in a database as part of the distribution protocol.

[0064] In some implementations, a request to use the first electronic content component may include a request to modify a characteristic in a first set of characteristics (e.g., the amount of credit to be issued to an end user). Process 300 (e.g., using verification module 135) may determine that the characteristic is mutable (e.g., by retrieving the first electronic content component from a database and checking whether the characteristic is marked as mutable or immutable) and approve the request to modify the characteristic and to use the first electronic content component. In some implementations, the characteristic may be associated with a range in which the characteristic can be modified. Before approving the request to modify the characteristic (and the request to use the first content component), verification module 135 may determine whether the modified value of the characteristic is within an appropriate range, and approve the request only if the modified value is within that range.

[0065] At box 335, process 300 (e.g., via content component manager 134) can receive a request from a second entity (e.g., a merchant via merchant server 150) to publish custom content including the first e-content component (which may be represented internally by a cloned e-content component or a sub-e-content component). The custom content may be, for example, an email message from the second entity to a consumer incorporating the first e-offer component or a webpage incorporating the first e-offer component.

[0066] At box 340, verification module 135 can verify the first electronic content component in response to a request to publish custom content. For example, verification module 135 can determine, based on a first content hash and a second content hash, that immutable characteristics in either the first or second set of characteristics have not been modified. Verification module 135 can retrieve the second content hash from component data storage device 138 and compare it with a second content hash stored in a distribution protocol block in the blockchain to ensure they match, and similarly compare the first content hash from component data storage device 138 with a first content hash stored in a first electronic content component block in the blockchain to ensure they match. If the content hashes match (e.g., indicating no modification of immutable characteristics), process 300 proceeds to box 345, where content component manager 134 approves the request to publish custom content. Otherwise, if the content hashes do not match, process 300 proceeds to 360, where content component manager 134 can reject the request.

[0067] At box 345, process 300 (using content component manager 134) can approve a request to publish custom content. Content component manager 134 can use tracking information to modify the URL associated with the first content component (and any other content components to be included in the custom content). For example, the URL can be modified with a query string that includes the ID and distribution protocol of the first electronic content component (e.g., "?eccID=827AJn0445k&daID=100354619&..."), which content component manager 134 can use to determine that the first electronic content component has been clicked. The tracking information can allow content component manager 134 to determine that the end user has followed the link indicated by the URL (e.g., by redirecting the user to content platform server 130 before redirecting the user to merchant server 150, or by having merchant server 150 report the tracking information to electronic content component module 132).

[0068] At box 350, process 300 (e.g., via event module 136) may receive a notification that a user has accessed the first electronic content component. For example, the user may have followed a link contained in the first electronic content component within custom content and / or made a purchase after following that link. In response to this notification, content component manager 134 may execute a second set of actions and a first set of actions. Content component manager 134 may retrieve a distribution protocol from content component data storage device 138 using the distribution protocol ID included in the notification. Content component manager 134 may initiate the execution of actions associated with the distribution protocol based on an address stored in the distribution protocol (e.g., a smart contract address) (e.g., by sending a transaction to a blockchain with the contract address). Content component manager 134 may then retrieve the first electronic content component using the electronic content component ID stored in the distribution protocol and (using an address stored in the second electronic content component) execute any actions associated with the first electronic content component. For example, an action associated with the distribution protocol may pay any commission owed to the second entity based on the terms of the distribution protocol (using funds from the first entity), and an action associated with the first electronic content component may use a credit amount or discount owed to the end user.

[0069] In some implementations, the distribution protocol may be associated with a time frame indicating when the distribution protocol is valid. Event module 136 may receive a second notification that a second end user has accessed the first electronic content, and verification module 135 may determine that the first component was accessed outside of the valid time frame. Content component manager 134 may then determine whether to execute the second set of actions or the first set of actions.

[0070] In some implementations, the second entity may request the release of its own eContent Components instead of directly incorporating the first eContent Component into custom content (e.g., an email message). For example, the second entity might be a reseller of a merchant intending to make the eContent Components available for better access to certain consumers. The second entity may wish to create a new eContent Component based on the first content component, where the new content component splits the commission of the first content component between the second entity itself and a third entity. As another example, the second entity may wish to add rewards for end-user purchases of specific products (e.g., if the second entity is a footwear manufacturer, it may wish to offer discounts on shoes of its own brand in addition to the cash rebates included in the first eContent Component). The second entity may then wish to release an eContent Component that includes both its own rewards and rewards provided by the first entity. In these and other cases, the Content Component Manager 134 may receive a request from the second entity to release a second eContent Component based on the first eContent Component and approve the request after the verification module 135 verifies both the first and second eContent Components. Similar to the first electronic content component, the system can create a second electronic content component associated with a second set of features and a third set of actions (e.g., additional rewards for end users) in the content component data storage device 138, and add the second electronic content component block and the third set of actions to the blockchain.

[0071] Content Component Manager 134 can then receive requests from a third entity to use the second electronic content component. Content Component Manager 134 can create a second distribution protocol that associates the third entity with the second electronic content component in the database. The second distribution protocol can be associated with a fourth set of actions (e.g., a reward paid by the second entity to the third entity). Following the same procedure as the first distribution protocol described above, Content Component Manager 134 can add a second distribution protocol block to the blockchain based on the second distribution protocol, and add the fourth set of actions to the blockchain (e.g., add it as a transaction or add it to the ledger). Content Component Manager 134 can then receive requests to publish custom content including the second electronic content component. After verifying (via Verification Module 135) that the immutability of the first or second electronic content component has not been modified, Content Component Manager 134 can verify the request to publish the custom content. Verification Module 135 can also verify whether the first or second distribution protocol has been modified and thus terminate any downstream distribution protocols. For example, the system can determine that the first distribution protocol has been modified (by comparing the content hash of the distribution protocol stored in the content component data storage device with the content hash of the distribution protocol block stored in the blockchain), reject the request to publish custom content, and terminate the second distribution protocol. If the content component manager 134 approves the request to publish custom content, the event module 136 can receive a notification that the end user has accessed the second electronic content component and, in response to the notification, execute the fourth set of actions, the third set of actions, the second set of actions, and the first set of actions (e.g., any commission paid to the entity and any credit amount and / or discount applied to the end user), as described above for the first set of actions.

[0072] Figure 4 illustrates various exemplary distribution chains 402, 404, 480, 484, and 488 for distributing redistributable electronic content components according to embodiments of the present disclosure. In the example of Figure 4, entity 410 creates and publishes electronic content components 412a and 414a. For example, entity 410 may use the content component creation module 142 of the content creator server to communicate with the content platform server 130 and create electronic content components 412a and 414a. Electronic content components 412a and 414a may be visible to any entity in distribution chain 402 (e.g., entities 420, 422, 426, and 430).

[0073] Electronic content component 412a offers end users a 10% cashback on purchases (e.g., using payment methods provided by entity 410) and may offer rewards (e.g., commissions based on transaction amounts, or small payments whenever a user clicks a link included in electronic content component 412a) to any entity distributing electronic content component 412a in distribution chain 402. The cashback amount may be a variable feature of electronic content component 412a. For example, entity 410 may have instructed entities that have chosen to distribute electronic content component 412a to potentially modify the offered cashback amount within a range (e.g., 10% to 15%). Entity 420 may choose to distribute electronic content component 412a, facilitating the creation of distribution agreement 444 between entity 410 and entity 420. As shown, no entity has entered into a distribution agreement with entity 420 to further distribute electronic content component 412a. Entity 422 has also chosen to distribute electronic content component 412a, facilitating the creation of distribution agreement 446. Entity 422 may publish electronic content component 412b for distribution, which may simply be a clone of electronic content component 412a. Entity 426 has chosen to distribute electronic content component 412b, facilitating the creation of a distribution agreement 454 between entities 422 and 426. However, prior to distributing electronic content component 412b, entity 426 modifies the offered cash rebate amount from 10% to 12% and publishes electronic content component 412c based on electronic content component 412b. Verification module 235 may verify electronic content component 412c before publication to ensure that the immutable characteristics of the electronic content components (i.e., electronic content components 412a and 412b) upon which electronic content component 412c is based have not been modified. Since the cash rebate amount characteristic is defined as variable, and the modified amount (12%) is within the allowable range (10% to 15%), the publication of electronic content component 412c is successful. Entity 428, the merchant, selects to distribute e-content component 412c as part of its custom content. For example, entity 428 may use message builder application 154 on the merchant's server to compose and request the publication of custom content. Entity 428 may also wish to include e-content components 481, 485, and 489 from distribution chains 480, 484, and 488, respectively. For example, e-content component 481 from distribution chain 480 may offer free shipping to users using shipping services provided by the entity controlling distribution chain 480. e-content component 485 from distribution chain 484 may offer a discount to users when they use payment methods provided by the entity controlling distribution chain 484. e-content component 489 from distribution chain 488 may not include any rewards for users, but may include rewards for any entity distributing e-content component 489 (e.g., a 1% commission on brand sales).After receiving a request from entity 428 to include electronic content components 481, 485, and 489 in custom content, content component manager 134 can create distribution protocol 482 for electronic content component 481, distribution protocol 486 for electronic content component 485, and distribution protocol 490 for electronic content component 489. Entity 428 can then request the publication of the custom content, causing verification module 135 to verify electronic content components 412c, 481, 485, and 489 (e.g., determining that immutable properties have not been changed, that entity 428 has permitted the use of electronic content components 412c, 481, 485, and 489, and that the publication date is within any permitted range indicated in the electronic content components and their corresponding distribution protocols). After verification, entity 428 can compose and send message 500 (shown in detail in Figure 5) including electronic content components 412c, 481, 485, and 489.

[0074] An entity may be included in more than one distribution chain (e.g., an account corresponding to an entity on account data storage device 138 may be associated with more than one distribution chain). For example, entity 430 may be included in distribution chains 402 and 404, allowing entity 430 to distribute electronic content components (e.g., 414a) from one distribution chain (e.g., 402) to a different distribution chain (e.g., 404). In some implementations, electronic content components may be created that combine different electronic content components. For example, entity 430 may distribute electronic content component 414a, thereby causing the creation of distribution protocol 448 and electronic content component 414b, in this example electronic content component 414b being a clone of electronic content component 414a. Instead of simply redistributing electronic content component 414b (with the same or modified characteristics), entity 432 may request the use of electronic content component 414b, thereby causing the creation of distribution protocol 462. Entity 432 may create a new electronic content component 434 that includes electronic content component 414b, thereby causing the creation of distribution protocol 462. Electronic content component 434 includes electronic content component 414c (cloned from electronic content component 414b) as a sub-component. A merchant, such as entity 436, can request the publication of custom content including electronic content component 434, thereby causing the creation of distribution agreement 466 and the verification of electronic content components 434, 414c, and all electronic content components preceding electronic content components 434 and 414c in distribution chains 404 and 402.

[0075] Figure 5 illustrates a message 500 (e.g., an email message) including custom content according to an embodiment of the present disclosure, the custom content comprising multiple redistributable electronic content components. The message 500 shown in Figure 5 corresponds to the message 500 in Figure 4, which is created by entity 428 by combining electronic content components 412c, 481, 485, and 489, as described in Figure 4. The arrangement and presentation of each electronic content component can be customized using a message builder application 154. Segment 589 of message 500 combines electronic content component 489, segment 581 combines electronic content component 481, segment 512 combines electronic content component 412c, and segment 585 combines electronic content component 485.

[0076] Message 500 includes a verification indicator 502 (e.g., represented as a check mark in Figure 5, but could also be an asterisk, ribbon, or other icon, image, or text visible to the end user) indicating that e-content components 412c, 481, 485, and 489 included in message 500 have been verified. Clicking or tapping the indicator takes the user to a webpage hosted on content platform server 130. This webpage may include verification information for each of e-content components 412c, 481, 485, and 489. For example, the webpage may include a distribution chain showing which entities each e-content component originates from and the terms of each e-content component.

[0077] Interactive UI elements used as hyperlinks (e.g., buttons and / or text) can have their associated URLs modified by the Content Component Manager 134 during the publication of custom content to allow the Electronic Content Component Module 132 to track user engagement with each electronic content component. For example, the URL associated with a hyperlink in segment 512 can be modified using the query string “?eccID=827AJn0445k&daID=100354619&…”, which the Electronic Content Component Module 132 can use to determine if the electronic content component 412c has been clicked, along with additional identifying information (e.g., distribution protocol ID, user's email address, the merchant sending the message, etc.). In some implementations, clicking an interactive UI element may first take the user to the Content Platform Server 130 (e.g., to an endpoint on the Content Platform Server 130) and then redirect the user to their intended destination (e.g., a storefront hosted on the Merchant Server 150). Merchant server 150 can be configured to transmit user event information (e.g., clicking or hovering over terms, making a purchase, etc.) to content platform server 130 to facilitate the execution of actions associated with electronic content component 412c. For example, after clicking a link in segment 512, a user can be taken to a storefront hosted by merchant server 150. When a user makes a purchase at the storefront, merchant server 150 can send an event notification to content platform server 130, which can then cause content platform server to perform all actions associated with electronic content component 412c, parent electronic content components 412b and 412a, and distribution protocols 458, 454, and 446, as described in step 355 of Figures 2 and 3. Message 500 may include content unrelated to the electronic content component. For example, segment 504 links to the purchase pages of two terms unrelated to the electronic content component.

[0078] Figure 6 illustrates an exemplary blockchain network 600 comprising multiple interconnected nodes or devices 605a to 605h (generally referred to as nodes 605). Each node 605 may include a computer system 800 as described in more detail with reference to Figure 8. Content platform server 130, content creator servers 140a and 140b, and merchant server 150 may all be nodes 605 in the blockchain network 600. Although Figure 6 shows a single device 605, each node 605 may include multiple devices (e.g., a pool). The blockchain network 600 may be associated with a blockchain 620, which may be the blockchain 180 described in detail in Figure 2. Some or all nodes 605 may replicate and store the same copy of blockchain 620. For example, nodes 605b to 605e and 605g to 605h store copies of blockchain 620. Nodes 605b to 605e and 605g to 605h may independently update their respective copies of blockchain 620, as described below.

[0079] Blockchain nodes, such as node 605, can be full nodes or lightweight nodes. Full nodes, such as nodes 605b to 605e and 605g to 605h, can act as servers in the blockchain network 600 by storing a copy of the entire blockchain 620 and ensuring the validity of transactions published to blockchain 620. Full nodes 605b to 605e and 605g to 605h can publish new blocks on blockchain 620. Lightweight nodes, such as nodes 605a and 605f, can have fewer computing resources than full nodes. Lightweight nodes can communicate with other nodes 605, provide information to full nodes 605b to 605e and 605g to 605h, and query the status of blocks in blockchain 620 stored by full nodes 605b to 605e and 605g to 605h. However, in this example, lightweight nodes 605a and 605f may not store a copy of blockchain 620, and therefore may not publish new blocks on blockchain 620. In some implementations, merchant server 150 may be a lightweight node.

[0080] Blockchain network 600 and its associated blockchain 620 can be public (permissionless), federated or consortium-based, or private. If blockchain network 600 is public, any entity can read and write to the associated blockchain 620. However, if controlled by a single entity or organization, blockchain network 600 and its associated blockchain 620 can be federated or consortium-based. Furthermore, any node 605 with internet access can be restricted from participating in transaction verification on blockchain 620. If access to blockchain network 600 and blockchain 620 is limited to specific authorized entities, such as organizations or groups of individuals, blockchain network 600 and its associated blockchain 620 can be private (permissioned). Furthermore, read permissions for blockchain 620 can be public or restricted, while write permissions can be limited to the controlling or authorized entity.

[0081] Figure 7 illustrates an exemplary blockchain 700 suitable for implementing one or more aspects of this disclosure, such as blockchain 180. Blockchain 700 may include multiple blocks 705a, 705b, and 705c (commonly referred to as block 705). Blockchain 700 includes a first block (not shown), sometimes referred to as the genesis block. Each block 705 may include a record of one or more committed and verified transactions. Blocks 705 of blockchain 700 may be chained together and cryptographically protected. Examples of various types of data fields stored in blockchain blocks are provided below. Replicas of blockchain 700 may be stored locally, for example, by nodes 605b to 605e and 605g to 605h, in the cloud, on a power grid as files, or stored in a database.

[0082] Each block 705 may include one or more data fields. The organization of block 705 and its corresponding data fields within blockchain 700 may be implementation-specific. As an example, block 705 may include corresponding headers 720a, 720b, and 720c (often referred to as header 720) and block data 775a, 775b, and 775c (often referred to as block data 775). Header 720 may include metadata associated with its corresponding block 705. For example, header 720 may include corresponding block numbers 725a, 725b, and 725c. As shown in Figure 7, block number 725a of block 705a is N-1, block number 725b of block 705b is N, and block number 725c of block 705c is N+1. Header 720 of block 705 may include a data field containing the block size (not shown).

[0083] Blocks 705 can be chained together and cryptographically protected. For example, the header 720b of block N (block 705b) includes a data field (the hash of the previous block 770b) that contains a hash representation of the header 720a of the previous block N-1. The hash algorithm used to generate the hash representation could be, for example, SHA-256, which produces a fixed-length output. In this example, the hash algorithm is a one-way hash function, where determining the input of the hash function based on its output is computationally difficult. Additionally, the header 720c of block N+1 (block 705c) includes a data field (the hash of the previous block 770c) that contains a hash representation of the header 720b of block N (block 705b).

[0084] The header 720 of block 705 may also include a data field containing a hash representation of the block data, such as block data hashes 770a to 770c. Block data hashes 770a to 770c may be generated, for example, through a Merkle tree and by storing hashes or by using hashes based on all block data. The header 720 of block 705 may include corresponding random numbers 760a, 760b, and 760c. In some implementations, the values ​​of random numbers 760a to 760c are arbitrary strings concatenated with (or appended to) the hash of the block. The header 720 may include other data, such as a difficulty target.

[0085] Block 705 may include corresponding block data 775a, 775b, and 775c (commonly referred to as block data 775). Block data 775 may include records of verified transactions that are also integrated into the blockchain. As discussed above, block data 775 may include many different types of data besides verified transactions. Block data 775 may include any data, such as text, audio, video, images, or files, which may be digitally represented and stored electronically.

[0086] Figure 8 is a block diagram of a computer system 800 suitable for implementing one or more aspects of this disclosure, the computer system including a content platform server 130 and a user device 110. In various implementations, the user device 110 may include a mobile cellular phone, a personal computer (PC), a laptop computer, a wearable computing device, etc., suitable for wireless communication, and the content platform server 130 may include a network computing device, such as a server. Therefore, it should be understood that devices 110 and 130 can be implemented as computer system 800 in the following manner.

[0087] Computer system 800 includes a bus 812 or other communication mechanisms for transmitting information data, signals, and information between various components of computer system 800. These components include input / output (I / O) components 804, which process user (i.e., sender, receiver, service provider) actions, such as selecting keys on a keypad / keyboard, selecting one or more buttons or links, and sending corresponding signals to bus 812. I / O component 804 may also include output components, such as a display 802 and cursor controls 808 (such as a keyboard, keypad, mouse, etc.). Display 802 may be configured to display a login page for logging into a user account or a checkout page for purchasing items from a merchant. Optional audio input / output components 806 may also be included to allow users to input information using speech by converting audio signals. Audio I / O component 806 allows users to hear audio. Transceiver or network interface 820 transmits and receives signals between computer system 800 and other devices (such as another user device, merchant server, or content platform server) via network 822. In one implementation, the transmission is wireless, although other transmission media and methods may also be suitable. Processor 814, which may be a microcontroller, digital signal processor (DSP), or other processing component, processes these various signals, such as those for display on computer system 800 or for transmission to other devices via communication link 824. Processor 814 can also control the transmission of information such as information logging programs or IP addresses to other devices.

[0088] The computer system 800 also includes a system memory component 810 (e.g., RAM), a static storage component 816 (e.g., ROM), and / or a disk drive 818 (e.g., a solid-state drive, a hard drive). The computer system 800 performs specific operations of the processor 814 and other components by executing one or more sequences of instructions contained in the system memory component 810. For example, the processor 814 may perform the functions described herein according to process 300.

[0089] The logic can be encoded in a computer-readable medium, which can refer to any medium that participates in providing instructions to the processor 814 for execution. Such a medium can take many forms, including, but not limited to, non-volatile media, volatile media, and transmission media. In various implementations, non-volatile media include optical discs or magnetic disks, volatile media include dynamic memory, such as system memory component 810, and transmission media include coaxial cables, copper wires, and optical fibers, including wires containing bus 812. In one embodiment, the logic is encoded in a non-transitory computer-readable medium. In one example, the transmission medium can take the form of sound waves or light waves, such as those generated during radio waves, optical data communications, and infrared data communications.

[0090] Some common forms of computer-readable media include, for example, floppy disks, floppy disks, hard disks, magnetic tapes, any other magnetic media, CD-ROMs, any other optical media, punched cards, paper tapes, any other physical media with perforated patterns, RAM, PROMs, EPROMs, FLASH-EPROMs, any other memory chips or cassette tapes, or any other media that a computer is adapted to read from.

[0091] In various embodiments of this disclosure, the execution of a sequence of instructions to practice this disclosure can be performed by a computer system 800. In various other embodiments of this disclosure, multiple computer systems 800 coupled to a network (e.g., a LAN, WLAN, PTSN, and / or various other wired or wireless networks, including telecommunications, mobile, and cellular telephone networks) via a communication link 824 can execute the sequence of instructions to practice this disclosure in a coordinated manner.

[0092] Where appropriate, the various embodiments provided in this disclosure can be implemented using hardware, software, or a combination of hardware and software. Furthermore, where appropriate, without departing from the spirit of this disclosure, the various hardware and / or software components described herein can be combined into composite components including software, hardware, and / or both. Where appropriate, without departing from the scope of this disclosure, the various hardware and / or software components described herein can be divided into sub-components including software, hardware, or both. Furthermore, where appropriate, it is contemplated that software components can be implemented as hardware components, and vice versa.

[0093] According to the software disclosed herein, program code and / or data may be stored on one or more computer-readable media. It is also contemplated that the software identified herein may be implemented using one or more general-purpose or special-purpose computers and / or computer systems, networked and / or otherwise. Where appropriate, the order of the various steps described herein may be changed, combined into compound steps, and / or separated into sub-steps to provide the features described herein.

[0094] The various features and steps described herein can be implemented as a system comprising one or more memories storing the various information described herein and one or more processors coupled to one or more memories and a network, wherein one or more processors are operable as a non-transitory machine-readable medium comprising a plurality of machine-readable instructions adapted, when executed by one or more processors, to cause the one or more processors to perform a method comprising the steps described herein, and a method executed by one or more devices, such as hardware processors, user devices, servers, and other devices described herein.

Claims

1. A system for creating and distributing blockchain-supported redistributable electronic content components, comprising: Non-transitory memory; The system also includes one or more hardware processors coupled to the non-transitory memory, configured to read instructions from the non-transitory memory to cause the system to perform operations, including: creating a first electronic content component associated with a first entity in a database, the first electronic content component comprising a first set of one or more characteristics, each characteristic being modifiable by a consumer of the first electronic content component or not modifiable by a consumer of the first electronic content component, wherein the first electronic content component is also associated with a first set of one or more actions; publishing the first electronic content component, the publishing of the first electronic content component comprising: storing each action in the first set of one or more actions in a blockchain and adding a first electronic content component block based on the first electronic content component to the blockchain, the first electronic content component block comprising a first content hash based at least on each immutable characteristic in the first set of one or more characteristics; receiving a request from a second entity to use the first electronic content component; and creating a distribution agreement with multiple terms in the database in response to the request. The distribution protocol associates a second entity with the first electronic content component and associates the distribution protocol with a second set of one or more actions, wherein a first subset of the plurality of terms corresponds to immutable characteristics; wherein a second subset of the plurality of terms corresponds to mutable characteristics; each action in the second set of one or more actions is added to the blockchain; a distribution protocol block based on the distribution protocol is added to the blockchain; a request to publish custom content, including the first electronic content component, is received from the second entity; the first electronic content component is verified to match the first subset of the plurality of terms in accordance with the received request to publish the custom content by determining, based on the first content hash, that the immutable characteristics in the first set of one or more characteristics in the custom content have not been modified; the request to publish the custom content, including the first electronic content component, is approved based on the verification; a notification is received that an end user has accessed the first electronic content component; and the second set of one or more actions and the first set of one or more actions are executed in response to receiving the notification.

2. The system according to claim 1, wherein, Storing each action in the first set of one or more actions in the blockchain includes storing each action in a transaction on the blockchain.

3. The system according to claim 1, wherein, The first set of one or more actions includes at least one of the following: applying a credit amount to an account associated with the end user; or applying a discount to a purchase associated with the first electronic content component.

4. The system according to claim 1, wherein, Adding the first electronic content component block to the blockchain includes: storing one or more addresses in the first electronic content component block, each address being associated with an action in a first set of the one or more actions.

5. The system according to claim 1, wherein, Each of the first set of one or more features is associated with an approval scope that indicates: (i) the feature will become immutable when the distribution protocol is created; or (ii) the feature will become immutable when the custom content is published.

6. The system according to claim 5, wherein, Creating the distribution protocol in the database includes: creating a sub-electronic content component based on the first electronic content component, the sub-electronic content component comprising a subset of one or more characteristics, each characteristic in the subset of one or more characteristics being a copy of a characteristic in a first set of one or more characteristics; setting a parent field of the sub-electronic content component to reference the first electronic content component; and setting each of the subsets of one or more characteristics to be immutable: the characteristic being associated with a scope of review indicating that the characteristic will be reviewed when the distribution protocol is created; and adding the distribution protocol block to the blockchain includes: creating the distribution protocol block; storing a second content hash based at least on each immutable characteristic in the subset of one or more characteristics in the distribution protocol block; and storing one or more addresses in the distribution protocol block, each address corresponding to an action in a second set of one or more actions.

7. The system according to claim 1, wherein, Each action in the first set of one or more actions and each action in the second set of one or more actions are represented by a smart contract.

8. The system according to claim 1, wherein, The distribution protocol is associated with a time frame indicating when the distribution protocol is valid, and the operation further includes: receiving a second notification that a second end user has accessed the first electronic content component at the access time; determining that the access time is outside the time frame indicating when the distribution protocol is valid; and determining, in response to determining that the access time is outside the time frame, a second set of not performing the one or more actions or a first set of the one or more actions.

9. A method for creating and distributing blockchain-supported redistributable electronic content components, comprising: Receive a request from a first entity to use a first electronic content component associated with a second entity, wherein the first electronic content component comprises one or more variable characteristics and a first set of one or more immutable characteristics, and wherein the first electronic content component is also associated with a first set of one or more actions, the request including a request to modify a first characteristic in the first set of one or more characteristics; access the first electronic content component from a database, wherein the first electronic content component is published such that each action in the first set of one or more actions is stored in a blockchain, and such that a first electronic content component block based on the first electronic content component is added to the blockchain, the first electronic content component block comprising a first content hash based at least on each immutable characteristic in the first set of one or more characteristics; approve the request to use the first electronic content component; use the first electronic content component. After the request is approved, a distribution protocol is created in the database to associate the first entity with the first electronic content component. This distribution protocol is associated with a second set of one or more actions, wherein the distribution protocol includes a first subset of clauses corresponding to one or more immutable characteristics and a second subset of clauses corresponding to one or more variable characteristics. Each action in the second set of one or more actions is added to the blockchain. A distribution protocol block based on the distribution protocol is added to the blockchain. A request to publish custom content, including the first electronic content component, is received from the first entity. A first content hash associated with the first electronic content component block is used to determine whether the first electronic content component in the custom content violates a first subset of the terms of the distribution protocol. Based on this determination, the request to publish the custom content is approved or rejected.

10. The method according to claim 9, wherein, Approving a request to use the electronic content component includes: determining that the first feature is variable; and approving a request to modify the first feature.

11. The method according to claim 10, wherein, The first characteristic is associated with the following range: the value of the first characteristic can be modified within the range, and approving a request to modify the first characteristic includes: determining that the modified value of the first characteristic is within the range.

12. The method according to claim 9, wherein, The determination includes: determining, based on the first content hash associated with the first electronic content component block, that a first immutable characteristic among the one or more immutable characteristics has been modified; and wherein approving or rejecting the request includes rejecting a request to publish the custom content.

13. The method according to claim 9, wherein, The determination includes determining, based on the first content hash associated with the first electronic content component block, that none of the one or more immutable characteristics have been modified; and wherein approving or rejecting the request includes approving the request to publish the custom content.

14. The method according to claim 9, wherein, The first electronic content component is associated with a Uniform Resource Locator (URL), and the method further includes adding tracking information to the Uniform Resource Locator in response to receiving a request to publish the custom content.

15. A non-transitory machine-readable medium storing machine-readable instructions, the machine-readable instructions being executable to cause a machine to perform operations, the operations including: Create a first electronic content component associated with a first entity in a database. The first electronic content component includes a first set of one or more characteristics, each characteristic being mutable or immutable. The first electronic content component is also associated with a first set of one or more actions. Publish the first electronic content component, wherein the publication includes: storing each action in the first set of one or more actions in a blockchain and adding a first electronic content component block based on the first electronic content component to the blockchain, the first electronic content component block including a first content hash based at least on each immutable characteristic in the first set of one or more characteristics; receive a request from a second entity to use the first electronic content component; in response to the request, create a first distribution protocol in the database associating the second entity with the first electronic content component. The first distribution protocol is associated with a second set of one or more actions, wherein the first distribution protocol includes a first subset of terms associated with immutable characteristics and a second subset of terms associated with mutable characteristics; and distribute the one or more actions... Each action in the second set of actions is added to the blockchain; a first distribution protocol block based on the first distribution protocol is added to the blockchain; a request is received from the second entity to create a second electronic content component based on the first electronic content component; the second electronic content component associated with the second entity is created in the database based on a first set of one or more characteristics, the second electronic content component comprising a second set of one or more characteristics, each characteristic being either modifiable by a consumer of the second electronic content component or not modifiable by a consumer of the second electronic content component, wherein the second electronic content component is also associated with a third set of one or more actions; a request is received from the second entity to publish the second electronic content component; and the request to publish the second electronic content component is approved based on verification that the second electronic content component is consistent with a first subset of the terms, wherein the verification includes determining, based on the first content hash, that immutable characteristics in the first set of one or more characteristics have not been modified in the second set of one or more characteristics.

16. The non-transitory machine-readable medium of claim 15, further comprising: Receive a request from a third entity to use the second electronic content component; In response to the request, a second distribution protocol is created in the database to associate the third entity with the second electronic content component, the second distribution protocol being associated with a fourth set of one or more actions; each action in the fourth set of one or more actions is added to the blockchain; a second distribution protocol block based on the second distribution protocol is added to the blockchain; And receiving a request from the third entity to publish custom content, the custom content including the second electronic content component.

17. The non-transitory machine-readable medium of claim 16, further comprising: Approve the request to publish the custom content; Receive notification that the end user has accessed the second electronic content component; And a fourth set of actions, a third set of actions, a second set of actions, and a first set of actions, which are performed in response to receiving the notification.

18. The non-transitory machine-readable medium of claim 16, further comprising: Based on the second distribution protocol block, it is determined that the immutable characteristics in the second set of one or more characteristics have been modified; And, based on the determination that an immutable characteristic in a second set of one or more of the characteristics has been modified, a request to publish the custom content is rejected.

19. The non-transitory machine-readable medium of claim 16, further comprising: It is determined that the first distribution protocol has been modified based on the first distribution protocol block; And terminate the second distribution protocol based on the determination that the first distribution protocol has been modified.

Citation Information

Patent Citations

  • Entitlement management system

    US20180314809A1