具体实施方式
本文描述了使用来自区块链网络的智能合约动态地确定数字票证(例如,电子折扣券、电子抵用券、电子礼券)的价值(例如,折扣率、货币价值)的技术。这些技术通常涉及使用来自区块链网络的智能合约基于一个或多个价值变化规则来确定数字票证的当前价值。在一些实施例中,客户端可以向票证分发节点(例如,电子交易平台)提交请求以兑换具有原始价值的数字票证,其中所述请求包括数字票证和由用户指定的一个或多个价值变化规则。所述一个或多个价值变化规则可以包括用于基于诸如兑换数字票证的日期或兑换数字票证的位置等因素确定数字票证的当前价值的预定规则。例如,当数字票证在不同日期或不同位置被兑换时,它可以具有不同的当前价值。票证分发节点从客户端接收请求并从区块链网络检索智能合约。所述智能合约包括多个价值变化规则。用户在所述请求中指定的一个或多个价值变化规则是智能合约中的价值变化规则的子集。然后,票证分发节点可以通过将一个或多个价值变化规则应用于数字票证的原始价值来执行智能合约以确定数字票证的当前价值。
在特定实施例中实现的本申请中描述的实施例实现了以下技术效果中的一个或多个。可以基于由用户指定的不同价值变化规则动态确定数字票证的价值。在一些实施例中,数字票证可以基于用户在所述请求中指定的价值变化规则在不同日期或不同位置达到最大价值。这有助于鼓励用户在不同日期或位置兑换数字票证,从而减轻处理来自用户兑换数字票证的请求对计算机系统的压力。此外,可以使用来自区块链网络的智能合约确定数字票证的价值。在不涉及第三方的情况下,所述智能合约可以用于实现可追踪的、不可逆的且防篡改的可信交易。这确保了针对数字票证的安全且可信的价值确定处理。智能合约的自主执行能力将区块链的交易安全保证扩展到需要数字票证的复杂且动态的价值检索的情况。在一些情况下,智能合约可以在客户端和分发节点之间在没有第三方(例如,没有仲裁程序或中间程序)的情况下被执行,以用于检索数字票证的价值。该方法可以节省用于价值检索处理的计算资源和网络资源(例如,网络带宽)。
为提供本文的实施例的进一步上下文,并且如上所述,分布式账本系统(DLS),又可以被称为共识网络(例如,由点对点节点组成)和区块链网络,使参与的实体能够安全地、不可篡改地进行交易和存储数据。尽管术语区块链通常与特定网络和/或用例相关联,但是本文使用区块链来一般地指代DLS而不涉及任何特定用例。
区块链是以交易不可篡改的方式存储交易的数据结构。因此,区块链上记录的交易是可靠且值得信任的。区块链包括一个或多个区块。链中的每个区块通过包括在链中紧邻其之前的前一区块的加密哈希值(cryptographic hash)链接到该前一区块。每个区块还包括时间戳、自身的加密哈希值以及一个或多个交易。已经被区块链网络中的节点验证的交易经哈希处理并编入默克尔(Merkle)树中。Merkle树是一种数据结构,在该树的叶节点处的数据是经哈希处理的,并且在该树的每个分支中的所有哈希值在该分支的根处连接。此处理沿着树持续一直到整个树的根,在整个树的根处存储了代表树中所有数据的哈希值。声称是存储在树中的交易的哈希值可以通过确定其是否与树的结构一致而被快速验证。
区块链是用于存储交易的去中心化或至少部分去中心化的数据结构,而区块链网络是通过广播、验证和确认交易等来管理、更新和维护一个或多个区块链的计算节点的网络。如上所述,区块链网络可以作为公有区块链网络、私有区块链网络或联盟区块链网络被提供。本文中参考联盟区块链网络进一步详细描述了本文的实施例。然而,可以预期,本文的实施例可以在任何适当类型的区块链网络中实现。
通常,联盟区块链网络在参与实体之间是私有的。在联盟区块链网络中,共识处理由经授权的一组节点控制,所述节点可以被称为共识节点,一个或多个共识节点由各自的实体(例如,金融机构、保险公司)操作。例如,由十(10)个实体(例如,金融机构、保险公司)组成的联盟可以操作联盟区块链网络,每个实体可以操作联盟区块链网络中的至少一个节点。
在一些示例中,在联盟区块链网络内,提供作为跨所有节点复制的区块链的全局区块链。也就是说,所有共识节点相对于全局区块链处于完全共识状态。为了达成共识(例如,同意向区块链添加区块),在联盟区块链网络内实施共识协议。例如,联盟区块链网络可以实现实际拜占庭容错(PBFT)共识,下面将进一步详细描述。
图1是示出了可用于执行本文的实施例的环境100的示例的图。在一些示例中,环境100使得实体能够参与联盟区块链网络102。环境100包括计算设备106、108以及网络110。在一些示例中,网络110包括局域网(LAN)、广域网(WAN)、因特网或其组合,并且连接网络站点、用户设备(例如,计算设备)和后端系统。在一些示例中,可以通过有线和/或无线通信链路来访问网络110。在一些示例中,网络110使得与区块链网络102通信以及在联盟区块链网络102内部通信成为可能。通常,网络110表示一个或多个通信网络。在一些情况下,计算设备106、108可以是云计算系统(未示出)的节点,或者每个计算设备106、108可以是包括通过网络互连的多个计算机并且充当分布式处理系统的单独的云计算系统。
在所描绘的示例中,计算设备106、108可以各自包括能够作为节点参与至联盟区块链网络102中的任何适当的计算系统。计算设备的示例包括但不限于服务器、台式计算机、膝上型计算机、平板计算设备以及智能电话。在一些示例中,计算设备106、108承载(host)一个或多个计算机实施的服务,用于与联盟区块链网络102进行交互。例如,计算设备106可以承载第一实体(例如,用户A)的计算机实施的服务,例如第一实体使用的管理其与一个或多个其他实体(例如,其他用户)的交易的交易管理系统。计算系统108可以承载第二实体(例如,用户B)的计算机实施的服务,例如第二实体使用的管理其与一个或多个其他实体(例如,其他用户)的交易的交易管理系统。在图1的示例中,联盟区块链网络102被表示为节点的点对点网络(Peer-to-Peer network),且计算设备106、108分别提供参与联盟区块链网络102的第一实体和第二实体的节点。
图2描绘了根据本文的实施例的概念架构200的示例。概念架构200包括分别对应于参与者A、参与者B和参与者C的参与者系统202、204、206。每个参与者(例如,用户、企业)参与到作为点对点网络提供的区块链网络212中,该点对点网络包括多个节点214,至少一些节点将信息不可篡改地记录在区块链216中。如图中进一步详述的,尽管在区块链网络212中示意性地描述了单个区块链216,但是在区块链网络212上提供并维护了区块链216的多个副本。
在所描绘的示例中,每个参与者系统202、204、206分别由参与者A、参与者B和参与者C提供或代表参与者A、参与者B和参与者C,并且在区块链网络中作为各自的节点214发挥作用。如这里所使用的,节点通常是指连接到区块链网络212且使相应的参与者能够参与到区块链网络中的个体系统(例如,计算机、服务器)。在图2的示例中,参与者对应于每个节点214。然而,可以预期,一个参与者可以操作区块链网络212内的多个节点214,和/或多个参与者可以共享一个节点214。在一些示例中,参与者系统202、204、206使用协议(例如,超文本传输协议安全(HTTPS))和/或使用远程过程调用(RPC)与区块链网络212通信或通过区块链网络212进行通信。
节点214可以在区块链网络212内具有不同的参与程度。例如,一些节点214可以参与共识处理(例如,作为将区块添加到区块链216的矿工节点),而其它节点214不参与此共识处理。作为另一示例,一些节点214存储区块链216的完整副本,而其他节点214仅存储区块链216的一部分的副本。例如,数据访问特权可以限制相应的参与者在其相应系统内存储的区块链数据。在图2的示例中,参与者系统202、204存储区块链216的各自的完整副本216’、216”。
区块链(例如,图2的区块链216)由区块的链组成,每个区块存储数据。所述数据的示例包括表示两个或更多个参与者之间的交易的交易数据。尽管本文通过非限制性示例使用了“交易”,但是可以预期,任何适当的数据可以被存储在区块链中(例如,文档、图像、视频、音频)。所述交易的示例可以包括但不限于有价物的交换(例如,资产、产品、服务、货币)。交易数据被不可篡改地存储在区块链中。也就是说,交易数据不能改变。
在将交易数据存储在区块中之前,对交易数据进行哈希处理。哈希处理是将交易数据(作为字符串数据提供)转换为固定长度哈希值(也作为字符串数据提供)的处理。不可能对哈希值进行去哈希处理(un-hash)以获取交易数据。哈希处理确保了即使交易数据轻微改变也会导致完全不同的哈希值。此外,如上所述,哈希值具有固定长度。也就是说,无论交易数据的大小如何,哈希值的长度都是固定的。哈希处理包括通过哈希函数处理交易数据以生成哈希值。哈希函数的示例包括但不限于输出256位哈希值的安全哈希算法(SHA)-256。
多个交易的交易数据被哈希处理并存储在区块中。例如,提供两个交易的哈希值,并对它们本身进行哈希处理以提供另一个哈希值。重复此处理,直到针对所有要存储在区块中的交易提供单个哈希值为止。该哈希值被称为Merkle根哈希值,并被存储在区块的头中。任何交易中的更改都会导致其哈希值发生变化,并最终导致Merkle根哈希值发生变化。
通过共识协议将区块添加到区块链。区块链网络中的多个节点参与共识协议,并执行将区块添加到区块链中的操作。这种节点被称为共识节点。如上介绍的,PBFT用作共识协议的非限制性示例。共识节点执行共识协议以将交易添加到区块链,并更新区块链网络的整体状态。
进一步详细地,共识节点生成区块头,对区块中的所有交易进行哈希处理,并将所得的哈希值成对地组合以生成进一步的哈希值,直到为区块中的所有交易提供单个哈希值(Merkle根哈希值)为止。将此哈希值添加到区块头中。共识节点还确定区块链中最近的区块的哈希值(即,添加到区块链中的最后一个区块)。共识节点还向区块头添加随机数(nonce)和时间戳。
通常,PBFT提供容忍拜占庭故障(例如,故障节点、恶意节点)的实际拜占庭状态机复制。这通过假设将发生故障(例如,假设存在独立节点故障和/或由共识节点发送的操纵消息)而在PBFT中实现。在PBFT中,以包括主共识节点和备份共识节点的顺序提供共识节点。主共识节点被周期性地改变,交易由区块链网络内达成关于区块链网络的世界状态的协议的所有共识节点添加到区块链中。在此过程中,在共识节点之间传输消息,并且每个共识节点证明从指定的对等节点接收消息,并验证在传输期间所述消息未被修改。
在PBFT中,在多个阶段提供共识协议,所有共识节点以同一状态开始。首先,客户端向主共识节点发送请求以调用服务操作(例如,在区块链网络内执行交易)。响应于接收所述请求,主共识节点将所述请求多播到备份共识节点。所述备份共识节点执行所述请求,并且每个节点都向客户端发送回复。客户端等待直到接收到阈值数量的回复。在一些示例中,客户端等待接收到f+1个回复,其中f是区块链网络内可以容忍的故障共识节点的最大数量。最终结果是,足够数量的共识节点对于要添加到区块链的记录的顺序达成一致,并且所述记录被接受或拒绝。
本文描述的区块链网络可以用于实现电子交易系统或平台。电子交易系统可以出于促销目的将数字票证(例如,电子优惠券)分发给消费者。数字票证可以具有消费者可以在电子交易平台上兑换用于购买产品或服务的价值(例如,折扣券的折扣率、或电子抵用券的货币价值)。图3是示出使用来自区块链网络的智能合约检索数字票证的当前价值的系统300的示例的图。如图所示,系统300包括区块链网络302、部署服务器304、分发节点306和客户端308(例如,客户端计算设备)。通常,部署服务器304将智能合约310部署到区块链网络302,并且分发节点306将数字票证312分发到客户端308。基于智能合约310生成数字票证312,使得可以通过执行智能合约310中的价值变化规则动态地确定数字票证312的价值。
部署服务器304可以是被编程为执行本文中描述的方法的任何合适的服务器、计算机、模块或计算元件。在一些实施例中,运行中的部署服务器304创建智能合约310并将智能合约310部署到区块链网络302。在一些实施例中,部署服务器304可以在智能合约310中设置可以用于创建数字票证312的一个或多个动态票证模板。部署服务器304可以定义动态票证模板中用于动态地确定数字票证312的价值的规则。部署服务器304还可以根据请求向智能合约310添加更多模板。智能合约310中的规则的一些示例包括随着时间的推移增加数字票证312的价值、在指定时间段期间为数字票证分配特定价值等。
分发节点306可以基于智能合约310生成数字票证312。在一些示例中,分发节点306可以在智能合约310中注册账户并使用智能合约310中的动态票证模板生成数字票证312。在一些示例中,数字票证312可以具有电子凭证、数字代币或电子优惠券等形式。每个数字票证312可以包括用于确定数字票证312的价值的一个或多个规则。在生成之后,数字票证312可以以分布式方式被存储在区块链网络302中。
客户端308可以从分发节点306请求(例如,购买)一个或多个数字票证312并获得数字票证312。在一些示例中,客户端308可以针对每个数字票证312中包含的规则检查每个数字票证312。客户端308可以选择数字票证312中的一个或多个规则来应用于数字票证312,以获得数字票证312的价值。在一些实施例中,客户端308可以向分发节点306提交针对兑换数字票证312的价值的请求,并且分发节点306可以进行智能合约调用以确定数字票证312的价值。
在操作中,部署服务器304生成智能合约310并将智能合约310部署到区块链网络302,每个智能合约包括一个或多个动态票证模板。分发节点306在智能合约310中注册账户并基于智能合约310生成数字票证312。分发节点306将数字票证分发给客户端308。客户端308获得数字票证312并检查数字票证312中的规则。每个客户端308选择应用于数字票证312的一个或多个规则,以确定数字票证312的价值。客户端308将数字票证312和所选择的规则提交给分发节点306,以兑换数字票证312的价值。分发节点306接收数字票证312以及所选择的规则并进行智能合约调用。分发节点306使用所调用的智能合约310和所选择的规则来确定数字票证312的价值。分发节点306将确定的价值赋予数字票证312,并且客户端308可以使用赋值票证。下面将参考图4更详细地讨论数字票证312的价值确定。
在一些实施例中,分发数字票证312的分发实体和接收数字票证312的接收实体是在智能合约310中定义的并且位于所述区块链网络外部。在一些示例中,数字票证312的价值基于数字票证312的规则线性地增加或减少。例如,数字票证312可以是具有95%的原始折扣率的电子折扣券,并且原始折扣率可以每周减少5%直到其达到例如60%的预定阈值。在一些示例中,数字票证312可以在不同的时间点或时间段具有不同的价值。例如,数字票证312可以是电子凭证,其在1月份的第一货币价值为10美元,在2月份的第二货币价值为5美元,在3月份的第三货币价值为15美元。
图4描绘了根据本文的实施例的信号流400的示例。信号流400表示用于确定数字票证的价值的处理的示例。为方便起见,处理将被描述为由位于一个或多个位置并根据本文被适当编程的一个或多个计算机的系统执行。例如,被适当地编程的分布式系统(例如,图1的环境100;图3的系统300)可以执行该处理。
部署服务器304生成(402)智能合约310。在一些实施例中,部署服务器304在一个或多个智能合约310中设置可以用于创建数字票证312的一个或多个动态票证模板。部署服务器304还可以定义动态票证模板中用于动态地确定数字票证312的价值的规则。部署服务器304还可以根据请求向智能合约310添加更多模板。在一些模板中,模板中的规则包括用于改变由模板生成的数字票证312的价值的价值变化规则,诸如将增长率与数字票证312的价值相关联的规则、将日期与数字票证312的价值相关联的规则、和/或将位置与数字票证312的价值相关联的规则。智能合约310中的规则的一些示例包括随着时间的推移增加数字票证312的价值、在指定时间段期间为数字票证312分配特定价值等。
部署服务器304将智能合约310部署(404)到区块链网络。在一些示例中,部署服务器304生成智能合约的交易并将其提交给区块链网络302。智能合约310的交易可以包括智能合约310的程序和发起者。区块链网络302的挖矿节点(矿工)验证智能合约310的交易。在挖矿节点成功验证智能合约310的交易之后,智能合约310可以以分布式方式被部署在区块链网络302中,并且具有唯一智能合约地址,从所述唯一智能合约地址可以调用智能合约310。
在一些实施例中,分发节点306访问(406)区块链网络302并获得智能合约310。分发节点306处理智能合约310并注册(创建)具有智能合约310的账户。在一些示例中,分发节点306基于智能合约310生成(408)数字票证312。如上所述,智能合约310包括定义用于确定数字票证312的价值的多个规则的动态票证模板。分发节点306可以使用一个或多个规则来创建数字票证312,使得不同的票证312可以与所述规则的不同子集相关联。例如,一个数字票证312可以与从票证312被提交以兑换票证时起随时间增加票证312的价值的规则相关联。作为另一示例,另一数字票证312可以与在特定时间窗期间赋予票证312最大价值的另一规则相关联。
在一些实施例中,数字票证312以分布式方式存储在区块链网络302中。在一些示例中,数字票证312具有原始价值。每个数字票证312与一个或多个规则相关联。在一些示例中,在创建票证312期间将所述规则分配给数字票证312,或者可以在创建票证312之后由运营者将所述规则分配给数字票证312。在一些实施例中,分配给数字票证312的规则不可以被篡改或被无效。在一些示例中,分配给数字票证312的规则可以在认证机构批准时被篡改或被无效。分配给数字票证312的不同规则和/或规则的子集反映票证312的不同价值赋予。当客户端308兑换数字票证312时,客户端308可以选择与数字票证312相关联的一个或多个规则。
在一些实施例中,分发节点306可以将价值变化策略应用于数字票证312的规则。在一些示例中,价值变化策略允许数字票证312的价值基于时间而改变。例如,基于价值变化策略的规则可以允许数字票证312的价值随时间逐渐增加,直到达到最大价值。选择用于兑换数字票证312的这种规则的客户端308可以等待直到数字票证312的价值为最大价值,从而获得票证312的全部价值。作为另一示例,基于价值变化策略的规则可以允许数字票证312的价值在指定时间窗期间是特定价值。例如,数字票证312的价值可以在指定时间窗期间是最大价值,但在该时间窗之外仅是最大价值的一部分。选择用于数字票证312的这种规则的客户端308可以在指定时间窗期间兑换数字票证312以获得票证312的全部价值。在一些实施例中,价值变化策略允许规则将增长率与数字票证312的价值相关联。例如,与规则相关联的数字票证312的价值可以随时间以指定的增长率增加。在一些实施例中,价值变化策略允许规则将日期与数字票证312的价值相关联。例如,与规则相关联的数字票证312的价值可以是在指定日期的价值。在一些实施例中,价值变化策略允许规则将位置与数字票证312的价值相关联。例如,与规则相关联的数字票证312的价值可以是在指定位置的价值。
在一些实施例中,分发节点306可以在生成数字票证312时将相关价值变化策略应用于数字票证312的规则。在一些示例中,基于相关价值变化策略的规则可以允许与数字票证312的价值相关的其他价值随时间或位置或其他因素而改变。在一些实施例中,分发节点306可以在生成票证312之后将附加规则添加到数字票证312。在一些示例中,附加规则可以包括改变数字票证312的价值的规则,以及将其他数字票证312与现有数字票证312相关联的规则以及将相关联的数字票证312分配给保持现有数字票证312的客户端308的规则。
分发节点306发布(410)数字票证312。在一些实施例中,分发节点306实现数字分发平台并在平台上发布数字票证312,其中票证312可供客户端308使用。如上所述,数字票证312以分布式方式存储在区块链网络302中。想要获得数字票证312的客户端308可以向分发节点306发送请求并在得到分发节点306批准时从区块链网络302获得数字票证312。
客户端308从分发节点306请求(412)数字票证312。如上所述,分发节点306可以实现数字分发平台,并且客户端308可以将针对数字票证312的请求发送到数字分发平台。在一些实施例中,分发节点306返回所请求的数字票证312在区块链网络302中的链接或地址。客户端308可以使用该链接或地址从区块链网络获得(414)数字票证312。
在一些实施例中,客户端308处理(416)数字票证312以检查用于确定票证312的价值的规则。客户端308可以选择票证312的一个或多个规则以将价值赋予票证312。例如,客户端308可以选择随时间逐渐增加票证312的价值的规则,或者可以选择在指定时间窗期间赋予票证312特定价值的规则。
当客户端308兑换数字票证312时,客户端308将数字票证312提交(418)给分发节点306。在一些示例中,客户端308向分发节点306发送请求,所述请求指示客户端308想要兑换该客户端先前从分发节点306获得的数字票证312,并且所述请求包括数字票证312和由客户端308选择的一个或多个规则。所述请求还可以包括指示客户端308何时向分发节点306提交所述请求的时间戳。
所述分发节点306处理(420)来自客户端308的请求。如上所述,来自客户端308的请求可以包括数字票证312以及一个或多个规则和时间戳。所述分发节点306可以基于规则和时间戳确定数字票证312的价值。在一些实施例中,所述分发节点306对智能合约进行智能合约调用,这用于生成数字票证312。如上所述,智能合约310包括定义用于确定数字票证312的价值的多个规则的动态票证模板,其中所述多个规则包括数字票证312中的规则。智能合约310使用智能合约中的时间戳和规则来执行其自身,所述规则与客户端在数字票证312中选择的规则相同。例如,智能合约310可以使用时间戳来确定客户端308何时提交数字票证312并使用基于价值变化策略的规则来计算数字票证312的价值。在一些示例中,可以从分发节点306的账户中扣除计算出的数字票证312的价值并将其添加到客户端308的账户中,数字票证312被成功兑换。
图5描绘了用于使用区块链网络中的智能合约处理针对数字票证的当前价值的请求的处理500的示例。可以使用一个或多个使用一个或多个计算设备执行的计算机可执行程序来执行处理500。在一些示例中,处理500可以由分布式系统(例如,图1的环境100;图3的系统300)执行,用于处理针对数字票证的当前价值的请求。
处理500开始于502,其中分发节点306从客户端设备308接收针对数字票证312的当前价值的请求。所述请求指示客户端设备308想要兑换数字票证312并获得数字票证312的当前价值。在一些实施例中,所述请求可以包括数字票证312和用于确定数字票证312的当前价值的一个或多个价值变化规则。在一些实施例中,一个或多个价值变化规则可以包括将增长率与数字票证的当前价值相关联的价值变化规则、将日期与数字票证的当前价值相关联的价值变化规则、和/或将位置与数字票证的当前价值相关联的价值变化规则。
在一些实施例中,数字票证312与多个价值变化规则相关联,并且客户端设备308可以指定多个价值变化规则中的一个或多个,并将它们包含在所述请求中。在一些实施例中,所述请求还包括指示客户端设备308何时向分发节点306提交所述请求的时间戳。
在一些实施例中,数字票证312具有原始价值。例如,数字票证312可以是具有90%的原始折扣值的电子折扣券。作为另一示例,数字票证312可以是具有10美元的原始货币价值的电子抵用券。
在504处,响应于从客户端设备308接收到所述请求,分发节点306从区块链网络302检索智能合约310。在一些实施例中,分发节点位于区块链网络302外部,并且可以经由网络连接与区块链网络302通信。在一些实施例中,分发节点306从区块链网络302对智能合约310进行合约调用。在一些实施例中,智能合约310包括多个价值变化规则,并且所述请求中的一个或多个变化规则是所述多个价值变化规则的子集。
在506处,分发节点306通过执行智能合约310基于数字票证312的原始价值和一个或多个价值变化规则来确定数字票证312的当前价值。在一些实施例中,分发节点306使用数字票证312的原始价值和请求中指定的一个或多个价值变化规则来执行智能合约310。在一些实施例中,分发节点306使用数字票证312的原始价值、所述请求中指定的一个或多个价值变化规则以及所述请求中的时间戳来执行智能合约310。例如,数字票证312可以是具有90%的原始折扣值的电子折扣券,并且所述请求可以包括指示数字票证312的折扣值每周减少5%直到其到达60%的价值变化规则。在这种情况下,可以基于原始折扣值、价值变化规则、所述请求中的时间戳以及将数字票证312分发给客户端设备308的时间点来确定数字票证312的当前折扣值。
在508处,分发节点306将在步骤506处确定的数字票证312的当前价值与数字票证312相关联。例如,分发节点306可以将在步骤506处确定的当前价值分配给数字票证312。继续上述示例,通过基于原始折扣值、价值变化规则、所述请求中的时间戳以及将数字票证312分发给客户端设备308的时间点来执行智能合约310,可以为具有90%的原始折扣值的数字票证312分配75%的当前折扣值。
图6是根据本文的实施例的装置600的模块的示例的图。装置600可以是分发节点的实施例的示例。在一些示例中,分发节点从客户端接收针对数字票证的当前价值的请求,并且使用来自区块链网络的智能合约基于价值变化规则确定价值。
装置600可以对应于上述实施例,并且装置600包括以下:接收模块602,从客户端设备接收针对数字票证的当前价值的请求,其中所述请求包括数字票证和用于确定数字票证的当前价值的一个或多个价值变化规则,其中数字票证具有原始价值;检索模块604,响应于从客户端设备接收所述请求,从区块链网络检索智能合约,其中所述智能合约包括用于确定数字票证的当前价值的一个或多个价值变化规则;确定模块606,通过执行智能合约,至少部分地基于数字票证的原始价值和一个或多个价值变化规则来确定数字票证的当前价值;以及关联模块608,将当前价值与数字票证相关联。
在可选实施例中,所述请求包括数字票证的时间戳,并且还基于所述时间戳确定数字票证的当前价值。
在可选实施例中,一个或多个价值变化规则包括将增长率与数字票证的价值相关联的价值变化规则。
在可选实施例中,一个或多个价值变化规则包括将日期与数字票证的价值相关联的价值变化规则。
在可选实施例中,一个或多个价值变化规则包括将位置与数字票证的价值相关联的价值变化规则。
在可选实施例中,所述智能合约包括多个价值变化规则,其中所述一个或多个价值变化规则是多个价值变化规则的子集。
在可选实施例中,所述分发节点位于区块链网络外部。
在先前实施例中示出的系统、装置、模块或单元可以通过使用计算机芯片或实体来实现,或者可以通过使用具有特定功能的产品来实现。典型的实施例设备是计算机,计算机可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或这些设备的任意组合。
对于装置中每个模块的功能和角色的实施例过程,可以参考前一方法中相应步骤的实施例过程。为简单起见,这里省略了细节。
由于装置实施例基本上对应于方法实施例,对于相关部分,可以参考方法实施例中的相关描述。先前描述的装置实施例仅是示例。被描述为单独部分的模块可以是或不是物理上分离的,并且显示为模块的部分可以是或不是物理模块,可以位于一个位置,或者可以分布在多个网络模块上。可以基于实际需求来选择一些或所有模块,以实现本申请方案的目标。本领域普通技术人员无需付出创造性劳动就能理解和实现本文的实施例。
再次参考图6,它可以被解释为示出数字票证价值检索装置的内部功能模块和结构。数字票证价值检索装置可以是被配置成检索数字票证的当前价值的分发节点的示例。执行主体本质上可以是电子设备,并且所述电子设备包括下面:一个或多个处理器;以及被配置为存储一个或多个处理器的可执行指令的存储器。
本文中描述的技术产生一种或多种技术效果。在一些实施例中,可以基于用户指定的不同价值变化规则来动态地确定数字票证的当前价值。在一些实施例中,数字票证可以基于用户在所述请求中指定的价值变化规则在不同日期或不同位置达到最大价值。这有助于鼓励用户在不同日期或位置兑换数字票证,从而减轻处理来自用户兑换数字票证的请求对计算机系统的压力。此外,可以使用来自区块链网络的智能合约确定数字票证的价值。在不涉及第三方的情况下,所述智能合约可以用于实现可追踪的、不可逆的且防篡改的可信交易。这确保了针对数字票证的安全且可靠的价值确定处理。智能合约的自主执行能力将区块链的交易安全保证扩展到需要数字票证的复杂且动态的价值检索的情况。在一些情况下,智能合约可以在客户端和分发节点之间在没有第三方(例如,没有仲裁程序或中间程序)的情况下被执行,以用于检索数字票证的价值。该方法可以节省用于价值检索处理的计算资源和网络资源(例如,网络带宽)。
所描述的主题的实施例可以包括单独或组合的一个或多个特征。例如,在第一实施例中,分发节点从客户端设备接收针对数字票证的当前价值的请求,所述请求包括数字票证和用于确定数字票证的当前价值的一个或多个价值变化规则,所述数字票证具有原始价值。所述分发节点响应于从客户端设备接收所述请求而从区块链网络检索智能合约,所述智能合约包括用于确定数字票证的当前价值的一个或多个价值变化规则。所述分发节点通过执行智能合约至少部分地基于数字票证的原始价值和一个或多个价值变化规则确定数字票证的当前价值,并将当前价值与数字票证相关联。前述和其他描述的实施例可以各自可选地包括以下特征中的一个或多个:
第一特征,可与以下任何特征组合,指定所述请求包括数字票证的时间戳,并且所述数字票证的当前价值还基于所述时间戳来确定。
第二特征,可与以下任何特征组合,指定所述一个或多个价值变化规则包括将增长率与所述数字票证的价值相关联的价值变化规则。
第三特征,可与以下任何特征组合,指定所述一个或多个价值变化规则包括将日期与所述数字票证的价值相关联的价值变化规则。
第四特征,可与以下任何特征组合,指定所述一个或多个价值变化规则包括将位置与所述数字票证的价值相关联的价值变化规则。
第五特征,可与以下任何特征组合,指定所述智能合约包括多个价值变化规则,其中所述一个或多个价值变化规则是所述多个价值变化规则的子集。
第六特征,与以下任何特征组合,指定所述分发节点位于所述区块链网络外部。
本文中描述的主题、动作以及操作的实施例可以在数字电子电路、有形体现的计算机软件或固件、计算机硬件中实现,包括本文中公开的结构及其结构等同物,或者它们中的一个或多个的组合。本文中描述的主题的实施例可以被实现为一个或多个计算机程序,例如,一个或多个计算机程序指令模块,编码在计算机程序载体上,用于由数据处理装置执行或控制数据处理装置的操作。例如,计算机程序载体可以包括具有编码或存储在其上的指令的一个或多个计算机可读存储介质。所述载体可以是有形的非暂态计算机可读介质,例如磁盘、磁光盘或光盘、固态驱动器、随机存取存储器(RAM)、只读存储器(ROM)或其他类型媒体。可选地或附加地,载体可以是人工生成的传播信号,例如,机器生成的电、光或电磁信号,其被生成来编码信息用于传输到合适的接收器装置以供数据处理装置执行。计算机存储介质可以是机器可读存储设备、机器可读存储基板、随机或串行存取存储器设备或它们中的一个或多个的组合或者是机器可读存储设备、机器可读存储基板、随机或串行存取存储器设备或它们中的一个或多个的组合的一部分。计算机存储介质不是传播信号。
计算机程序也可以被称为或描述为程序、软件、软件应用程序、app、模块、软件模块、引擎、脚本或代码,可以以任何形式的编程语言编写,包括编译语言或解释语言、声明性语言或过程性语言;它可以被配置为任何形式,包括作为独立程序,或者作为模块、组件、引擎、子程序或适合在计算环境中执行的其他单元,该环境可以包括由通信数据网络互联的在一个或多个位置的一台或多台计算机。
计算机程序可以但非必须对应于文件系统中的文件。计算机程序可以被存储在保存其他程序或数据的文件的一部分中,例如,一个或多个脚本被存储在标记语言文档中、专用于所讨论的程序的单个文件中或者多个协调文件中,例如,存储一个或多个模块、子程序或代码部分的多个文件。
用于执行计算机程序的处理器包括,例如,通用微处理器和专用微处理器,以及任意种类数码计算机的任意一个或多个处理器。通常,处理器将接收用于执行的计算机程序的指令以及来自耦接到所述处理器的非暂态计算机可读介质的数据。
术语“数据处理装置”包括用于处理数据的所有类型的装置、设备和机器,包括例如可编程处理器、计算机或者多处理器或计算机。数据处理装置可以包括专用逻辑电路,例如FPGA(现场可编程门阵列)、ASIC(专用集成电路)或GPU(图形处理单元)。除了硬件,该装置还可以包括为计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统或者它们中的一个或多个的组合的代码。
本文中描述的处理和逻辑流程可以由一台或多台计算机或处理器执行一个或多个计算机程序来进行,以进行通过对输入数据进行运算并生成输出的操作。处理和逻辑流程也可以由例如FPGA、ASIC或GPU等的专用逻辑电路或专用逻辑电路与一个或多个编程计算机的组合来执行。
适合于执行计算机程序的计算机可以基于通用和/或专用微处理器或任何其他种类的中央处理单元。通常,中央处理器将从只读存储器和/或随机存取存储器接收指令和数据。计算机的元件可以包括用于执行指令的中央处理单元以及用于存储指令和数据的一个或多个存储器设备。中央处理单元和存储器可以由专用逻辑电路补充或被集成在专用逻辑电路中。
通常,计算机还将包括或可操作地耦接至一个或多个存储设备,以从一个或多个存储设备接收数据或将数据传输到一个或多个存储设备。存储设备可以是例如磁盘、磁光盘或光盘、固态驱动器或任何其他类型的非暂态计算机可读介质。但是,计算机不需要具有这样的设备。因此,计算机可以耦接到本地和/或远程的一个或多个存储设备,例如一个或多个存储器。例如,计算机可以包括作为计算机的集成部件的一个或多个本地存储器,或者计算机可以耦接到云网络中的一个或多个远程存储器。此外,计算机可以被嵌入在另一个设备中,例如移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏控制台、全球定位系统(GPS)接收器或例如通用串行总线(USB)闪存驱动器的便携式存储设备,仅举几例。
组件可以通过彼此交换地例如电连接或光学连接直接地或经由一个或多个中间组件彼此“耦接”。如果组件中的一个组件被集成到另一个组件中,则组件也可以被彼此“耦接”。例如,集成到处理器中的存储组件(例如,L2高速缓存组件)被“耦接到”处理器。
为了提供与用户的交互,本文中描述的主题的实施例可以在计算机上实现或配置为与该计算机通信,该计算机具有:显示设备,例如,LCD(液晶显示器)监视器,用于向用户显示信息;以及输入设备,用户可以通过该输入设备向该计算机提供输入,例如键盘和例如鼠标、轨迹球或触摸板等的指针设备。其他类型的设备也可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感官反馈,例如视觉反馈、听觉反馈或触觉反馈;并且可以接收来自用户的任何形式的输入,包括声音、语音或触觉输入。此外,计算机可以通过向用户使用的设备发送文档和从用户使用的设备接收文档来与用户交互;例如,通过响应于从web浏览器收到的请求向用户设备上的web浏览器发送web页面,或者通过与例如智能电话或电子平板电脑等的用户设备上运行的应用程序(app)进行交互。此外,计算机可以通过向个人设备(例如,运行消息应用的智能手机)发送文本消息或其他形式的消息并接收来自用户的作为回应的响应消息来与用户交互。
本文使用与系统、装置和计算机程序组件有关的术语“被配置为”。对于被配置为执行特定操作或动作的一个或多个计算机的系统,意味着系统已经在其上安装了在运行中促使该系统执行所述操作或动作的软件、固件、硬件或它们的组合。对于被配置为执行特定操作或动作的一个或多个计算机程序,意味着一个或多个程序包括当被数据处理装置执行时使该装置执行所述操作或动作的指令。对于被配置为执行特定操作或动作的专用逻辑电路,意味着该电路具有执行所述操作或动作的电子逻辑。
虽然本文包括许多具体实施例细节,但是这些不应被解释为由权利要求书本身限定的对要求保护的范围的限制,而是作为对特定实施例的具体特征的描述。在本文多个单独实施例的上下文中描述的多个特定特征也可以在单个实施例中组合实现。相反,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合在多个实施例中实现。此外,尽管上面的特征可以被描述为以某些组合起作用并且甚至最初如此要求保护,但是在一些情况下,可以从要求保护的组合中删除来自该组合的一个或多个特征,并且权利要求书可以涉及子组合或子组合的变体。
类似地,虽然以特定顺序在附图中描绘了操作并且在权利要求中叙述了操作,但是这不应该被理解为:为了达到期望的结果,要求以所示的特定顺序或依次执行这些操作,或者要求执行所有示出的操作。在一些情况下,多任务并行处理可能是有利的。此外,上述实施例中的各种系统模块和组件的划分不应被理解为所有实施例中都要求如此划分,而应当理解,所描述的程序组件和系统通常可以一起被集成在单个软件产品中或者被打包成多个软件产品。
已经描述了主题的特定实施例。其他实施例在以下权利要求书的范围内。例如,权利要求书中记载的动作可以以不同的顺序执行并且仍然实现期望的结果。作为一个示例,附图中描绘的处理无需要求所示的特定顺序或次序来实现期望的结果。在一些情况下,多任务和并行处理可能是有利的。