使用区块链的增量计费
技术领域
本申请涉及一种在采矿机处执行的用于确定由一个或多个设备提供以便执行服务的资源的资源使用的方法,并且涉及对应的采矿机。此外,提供一种用于操作计费节点的方法以及对应的计费节点。
此外,提供一种包括采矿机和计费节点的***、包括程序代码的计算机程序以及包括计算机程序的载体。
背景技术
区块链是一个不断增长的记录列表,其中每个区块包含指向前一个区块的链接。区块链的一个方面是包含在区块链中的数据不能被修改,以使得区块链可以用作能够记录各方的交易的开放分布式账本。区块链由对等网络管理,其中网络的每个节点可以经由对等网络来访问区块链,并且网络的每个节点存储通过网络更新的区块链的本地副本。此外,网络确保网络中的每个节点具有区块链的最新副本,并且拜占庭冲突解决协议确保全局副本不会彼此偏离。
区块链的一个应用是货币比特币。当前区块链应用(如比特币)具有以下问题:区块链中的数据不断增长,并且在2016年已达到100GB的大小。区块链的较大大小限制了区块链的可能使用场景。
因此,需要避免上述缺点并且针对区块链提供新用例,例如在定义的时段内有效确定由设备提供的资源的使用。
发明内容
由独立权利要求的特性满足这种需要。在从属权利要求中描述进一步方面。
根据第一方面,提供一种用于确定由一个或多个设备提供以便执行服务的资源的资源使用的方法。所述方法在网络中的采矿机处执行,所述采矿机确定与所述服务相关的区块链的最新区块和在所述最新区块中存在的总资源信息,其中,所述总资源信息表示自所定义的起始时间点以来由所述一个或多个设备使用以用于提供所述服务的总资源数量。此外,所述采矿机确定所述一个或多个设备中的第一设备的资源的新用例已发生,其中所述新用例未被所述总资源信息反映,并且确定在所述新用例期间由所述第一设备使用的新的资源数量。此外,确定新的总资源信息,在所述新的总资源信息中,所述总资源信息与所述新的资源数量相合并,并且所述新的总资源信息反映了从所定义的起始点直到确定所述新的总资源信息为止所述一个或多个设备的所述资源的完整使用。此外,生成所述区块链的新区块,将所述新的总资源信息添加到所述新区块上,并且将所述新区块添加到所述区块链上。
使用所述方法,能够始终有效地确定由一个或多个设备使用以便执行服务的总使用资源数量。设备可以是车辆、割草机、移动电话等。每个设备向用户提供某种服务,例如用户可以使用车辆、割草机或蜂窝电话,并且应当为使用由设备提供的资源而支付费用。因为添加到区块链上的新区块始终包括并且反映自所定义的起始点以来的总资源使用,所以能够通过访问添加到区块链上的新区块,容易地确定自所定义的起始时间点开始以来的总资源使用。当知道完整资源使用时,能够容易地确定该资源使用的成本。所定义的起始时间点能够定义其中开始对资源的使用计费的计费期的起始点。
可以使用多个设备来提供服务(例如提供运输服务的汽车或自行车)。在使用多个设备的情况下,区块链中针对特定设备的使用而生成的新区块可以包括该特定设备的标识信息,该标识信息然后将允许从区块链中标识该特定设备的资源使用。
此外,可以确定应当关闭所述计费期,确定在所述区块链的最后一个区块中存在的所述新的总资源信息,可以关闭所述区块链,以及可以向负责所述资源的使用计费的计费节点通知在所述最后一个区块中存在的所述新的总资源信息。在该示例中,区块链甚至能够在关闭计费期时被关闭,以使得能够针对每个计费期生成包括反映该计费期内所述总资源使用的信息的区块链。
此外,提供一种采矿机,包括存储器和至少一个处理单元,其中,所述处理单元包括能够由所述至少一个处理单元执行的指令,其中,所述采矿机可操作以按照上面讨论或下面更详细讨论的那样操作。
作为备选方案,提供一种采矿机,所述采矿机包括第一模块,被配置为确定与服务相关的区块链的最新区块和在所述最新区块中存在的总资源信息,其中,所述总资源信息表示自所定义的起始时间点以来由所述一个或多个设备使用以用于提供所述服务的总资源数量。所述采矿机可以包括第二模块,被配置为确定所述一个或多个设备中的第一设备的资源的新用例已发生,其中所述新用例未被所述总资源信息反映,并且被配置为确定在所述新用例期间由所述第一设备使用的新的资源数量。所述采矿机可以包括第三模块,被配置为确定新的总资源信息,在所述新的总资源信息中,所述总资源信息与所述新的资源数量相合并,并且所述新的总资源信息反映了从所定义的起始点直到确定所述新的总资源信息为止所述一个或多个设备的所述资源的完整使用。所述采矿机可以包括第四模块,被配置为生成所述区块链的新区块,将所述新的总资源信息添加到所述新区块上,并且将所述新区块添加到所述区块链上。
此外,提供一种用于操作计费节点的方法,所述计费节点被配置为监视由一个或多个设备提供以便执行服务的资源的使用。在此,确定用于所述资源的所述使用的合同,其中,所述合同提供至少计费信息,所述计费信息允许所述计费节点确定因所述资源的使用而产生的成本。此外,确定区块链的标识数据,其中,所述区块链包括总资源信息,所述总资源信息反映了在计费期中自所定义的起始时间点以来由所述一个或多个设备使用以用于提供所述服务的所述资源的完整使用。此外,确定所述计费期结束,并且向采矿机通知所述计费期结束。此外,所述计费节点从所述采矿机接收所述总资源信息,以及基于所接收的总资源信息,确定所述服务的总使用成本。
使用该方法,负责资源的使用计费的计费节点能够控制计费期及其长度,并且能够通知采矿机,采矿机相应地生成区块链。然后,计费节点从采矿机接收总资源信息,并且能够确定在计费期中针对资源的使用而发生的成本,计费期在所定义的起始时间点开始,并且在所定义的时间点结束。能够单独基于所接收的总资源信息来确定总成本,以使得所接收的总资源信息已经包括所涉及的成本。作为备选方案,除了已知的总资源使用之外,还能够使用在合同中提供的计费信息,以便确定用户必须为使用由一个或多个设备提供的服务而支付多少费用。
此外,提供对应的计费节点,包括存储器和至少一个处理单元,其中,所述处理单元包括能够由所述至少一个处理单元执行的指令,其中,当所述指令由所述至少一个处理单元执行时,所述计费节点可操作以按照上面所述或下面讨论的那样操作。
备选地,提供一种计费节点,所述计费节点包括第一模块,被配置为确定用于由所述一个或多个设备提供以便执行服务的资源的使用的合同,其中,所述合同至少包括计费信息,所述计费信息允许所述计费节点确定因所述资源的使用而产生的成本。所述计费节点可以包括第二模块,被配置为确定区块链的标识数据,其中,所述区块链包括总资源信息,所述总资源信息反映了自所定义的起始时间点以来(即,在所述计费期中)由所述一个或多个设备使用以用于提供所述服务的所述资源的完整使用。第三模块能够确定所述计费期结束,并且能够向采矿机通知所述计费期结束。第四模块能够从所述采矿机接收所述总资源信息,以及第五模块被配置为基于所接收的总资源信息,确定所述一个或多个设备的总使用成本。
此外,提供一种包括所述采矿机和所述计费节点的***。此外,提供一种包括要由采矿机或计费节点的至少一个处理单元执行的程序代码的计算机程序,其中,所述程序代码的执行使得所述至少一个处理器执行如上面讨论或下面更详细讨论的方法。此外,提供一种包括所述计算机程序的载体,其中,所述载体是电子信号、光信号、无线电信号、或者计算机可读存储介质中的一个。
要理解,在上面提及的特性以及还要在下面解释的特性不仅能够在说明书中指示的相应组合中使用,而且还在其它组合中使用,或者单独使用而不偏离本申请的范围。除非另外明确提及,否则上面提及的方面和下面描述的实施例的特性可以在其它实施例中彼此组合。
附图说明
当结合附图阅读时,从以下详细描述中,本申请的上述和额外特性和效果将变得显而易见,在附图中相同的参考标号指相同的元件。这些附图是:
图1示出包括所涉及的节点例如生成用于计费目的的区块链的采矿机以及确定何时应当关闭计费期的计费节点的网络的高级架构的示例;
图2示出在区块链中反映了由一个或多个设备提供的资源的总资源使用并且其中计费节点确定与计费期内资源的使用相关联的成本时在图1中所示的某些实体之间的示例消息交换;
图3示出由采矿机执行以便确定反映计费期中资源的完整使用的总资源信息的方法的示例流程图;
图4示出由计费节点执行以确定在计费期中因由一个或多个设备提供的资源的使用而产生的成本的方法的示例流程图;
图5示出被配置为生成用于确定资源的使用成本的区块链的采矿机的示例性示意表示;
图6示出在图1的网络中存在的另一个节点的另一个示例性示意表示;
图7示出被配置为在计费期内提供服务的设备的示例性示意表示;
图8示出被配置为生成反映计费期内的总资源使用的区块链的采矿机的另一个示例性示意表示;
图9示出被配置为确定在计费期内由一个或多个设备提供的资源的使用成本的计费节点的另一个示例性示意表示;
图10示出被配置为生成包括有关在计费期内由一个或多个设备提供的资源的总资源使用的信息的区块链的采矿机节点的另一个示意表示;
图11示出被配置为确定在计费期内因资源的使用而产生的成本的计费节点的另一个示意表示。
具体实施方式
在下面,将参考附图详细描述实施例。要理解,以下对实施例的描述不应被视为具有限制意义。范围不受以下描述的实施例或附图的限制,这些实施例和附图仅是说明性的。
附图被视为示意性表示,并且附图中示出的元件不一定按比例示出。相反,表示各种元件以使得它们的功能和一般用途对于本领域的技术人员而言变得显而易见。在附图中示出并且在以下描述的物理或功能单元的功能块、设备、组件之间的任何连接或耦合还可以通过间接连接或耦合来实现。可以通过有线或无线连接来建立组件之间的耦合。无线块可以以硬件、软件、固件、或者它们的组合来实现。
如下所述,本申请提供一种技术,其中至少在当前或正在运行的计费期内,存在由一个或多个设备提供以便执行服务的资源的使用的详细使用信息,并且该信息可能在以后的有限时间内存在,以使得所涉及的各方、用户和针对设备的使用进行计费的一方能够讨论由使用而产生的义务。在某些管辖范围中,甚至要求在特定时间(例如六个月)之后删除通信数据。以下解决方案提供在计费期完成之后关闭区块链的可能性。出于计费目的,区块链中在链结尾处的最后一个条目应该包含计费或计费期内的使用总和。本申请特别适用于使用区块链的后付费环境。例如实时在区块链中聚合计费费用,并且在计费期结束时,对提供所需服务的一个或多个设备的用户进行计费。因此,通过聚合使用费用并且在到达计费期结束之后提供新交易,该区块链技术被适配和优化以用于后付费计费用例。关闭交易可以关闭现有区块链,并且可以在下一个计费期内打开新区块链。先前区块链的数据可以被保留和存档、压缩或移除。上面或下面描述的场景主要涉及后付费环境。但是,区块链还可以用于预付费场景,其中将特定的预付费资源使用数量记入第一区块中,并且然后每次使用设备时,在新生成的区块中减少在区块中编码的“可用”资源,直到没有余额为止。
对于比特币,不可能减小区块链的大小,因为它们依赖于公共总账,其中每个节点或客户机必须知道过去的所有交易以检验比特币的正确性。
但是,存在并非始终需要所有数据的计费场景。例如,在计费场景中,必须在定义的计费期中知道设备的使用或设备的资源的使用或由设备提供的服务的使用。为此,必须在定义的时段内精确地确定由设备提供以便执行服务的资源的使用。
如下面将解释的,用户可能必须为由设备提供的资源的使用而支付费用,该设备连接到其中设置了至少一个采矿机和至少一个计费节点的网络。提供服务的设备的示例是割草机、3D打印机、机顶盒、车辆、移动通信实体等。设备可以是IoT(物联网)设备,其中仅在设备能够存储用于计费的所需使用信息的情况下,设备才可以提供其服务。
上面和下面讨论的解决方案递增使用,允许在计费期结束之后关闭区块链,以及允许在新的计费期中打开新的区块链。例如,如图1中所示,在对等网络中提供设备50(例如物联网设备),其中网络的每个节点(例如设备50、采矿机100或计费节点200)可以访问区块链,例如下面更详细讨论的区块链35和45。网络中的每个节点可以具有区块链35或45的副本。设备50可以具有整个区块链或仅其一部分(例如仅区块链的最后一个区块)的副本。对于每个区块链,将合同(例如智能合同)存储在区块链的起始区块中,在图1的实施例中,例如存储在区块链35的起始区块30中,或者存储在包括用于另一个计费期的另一个区块链45的合同的起始区块40中。合同用于定义用户、设备50、以及负责计费节点200的计费提供者之间的使用协议。用于建立协议的智能合同的使用还意味着能够使用智能合同概念的优势,即,合同的实时自治式执行以及较低执行和合规成本。
因此,在第一步骤中,合同已达成,在涉及的各方之间交换,并且存储在起始区块30中,如由设备50、计费节点200以及其中示出智能合同的区块(区块30)之间的实线箭头所示。
合同能够确立设备50的使用(或多个设备的使用),并且被存储在区块链35或45中,以使得合同能够由签订合同的各方访问。可以使用私钥和公钥的区块链概念以及加密散列函数来控制对智能合同的访问。当访问智能合同时,可以使用区块链安全概念来控制签订合同的各方。当开启设备50时,请求使用由设备提供的资源,并且执行使用交易作为区块链中的新交易。第一使用可能已经存储在区块链中,或者所请求的使用可以存储在区块链(例如区块35a)中。对使用进行汇总,并且输入该使用作为区块链中的新区块。对于第一使用,采矿机可以添加区块35a。因此,如图1中所示,当在实际使用服务之前第一次使用设备(例如3D打印机或割草机)时,将该第一使用存储在第一使用区块35a中,第一使用区块35a指示在第一用例中使用的总资源数量。当其他用例发生时,能够将其他区块条目添加到区块链上,参见35b和35c。
此外,能够将所请求的使用数量存储在所添加的区块链中。因此,设备50知道它必须针对所请求的用例提供的资源数量。设备不允许比所请求的资源高的资源使用。在所请求的使用之后,当所请求的使用未被完全使用时,可以校正使用,即,通过向区块链添加未用于新区块的负的资源数量。应用于图1,这意味着能够例如在区块35c与35d之间添加新的区块(被称为校正区块)。然后,该校正区块从已经使用的数量中减去使用的数量(例如使用1+使用2+使用3+(-校正))。因此,一种选择是仅在该使用之前添加具有所请求的资源数量的单个区块,另一种选择是针对新用例添加具有所请求的资源使用的区块,并且在新用例的使用终止之后,确定是否必须校正所请求的使用。然后,添加校正的数量作为在具有所请求的使用的区块之后的新区块(校正区块)。然后,从最后一个区块中减去实际使用与所请求的使用相比的差,以便在区块链的最后一个区块中具有反映该实际使用的使用。
用例可以通过以下项来定义:特定时段(例如一天)内的资源使用、再次关闭设备的事实或任何其它准则,具体取决于时间或位置。可以在实际使用发生之前将资源信息存储在区块链中。
当用户在第一次使用之后想要使用设备50(或多个设备中的任何其它设备)时,将信息发送到采矿机100,并且当采矿机100检测到新用例时,它确定在新用例中使用的资源数量。然后,采矿机确定新的总资源信息,其中将总资源信息(其存储在由采矿机生成的区块35a中)添加到在第二用例中发生的资源使用,以使得区块35b包含合并后的总使用或新的总资源信息。再次针对第三用例执行相同的操作,并且然后在第三用例结束时,区块35c包含设备在当前计费期中的完整使用历史。当计费期开始时,打开区块链35并且在当前区块链中收集所有用例。计费节点知道计费间隔,例如应该每次在月末、周末或任何其它定义的时段结束时执行计费,并且计费节点向采矿机通知计费期应当关闭。计费节点能够具有访问权限,以使得只有计费节点才能够触发区块链的关闭。如果计费期结束或已结束,则采矿机通过添加关闭区块35d来关闭区块链。此外,采矿机确定在最新区块(在此为区块35c)中存在的最新的总资源信息,并且向计费节点200通知表示计费期内的总资源使用的总资源信息。使用信息能够以时间单位来存储。用于对资源的使用进行汇总的规则能够存储在合同中并且由设备来应用。用于汇总的可能规则可以是根据日中时间、工作日或任何内容来在不同计数器上对使用进行汇总。然后,计费可以使用该组计数器来应用不同的价格。
区块链中的信息还能够包含由设备使用的数据量或时间量或作为使用信息发送到设备的日期量,或者能够直接包括价格信息,该价格信息直接反映了在计费期内针对资源的使用而必须支付的金额。
当新的计费期打开或开始时,将新的智能合同存储在第二区块链45的具有新标识或地址(在图1的示例中为#h2)的新的起始区块40中,并且当在该新的计费期中发生第一用例时,将该用例和对应的资源信息存储在第二区块链的第一区块45a中。
在计费期结束时,计费提供者或节点200浏览用户或客户的合同并且触发关闭交易。该交易返回向一个或多个设备的用户或客户进行计费的最后一个区块的使用费用,并且该交易关闭区块链以及能够针对可能的下一个计费期打开新区块链。
在当前使用的区块链中,仅将最后一个交易添加到区块链上。通过以下方式来增强区块链的这种现有使用:首先读取区块链的最后一个条目,然后对所读取的最后一个条目和与新用例相关的新信息执行操作,以便对总使用进行汇总。区块链中的最后一个条目应当始终包含自计费期开始以来的总使用。
另一方面是,计费节点200能够执行关闭交易,该关闭交易读取区块链35的最后一个条目以生成账单,通过添加关闭区块(例如区块35d)来关闭区块链,以及可以针对下一个计费期打开新区块链(例如区块链45)。可以对旧区块链进行压缩和/或存档,其中压缩可以意味着移除所有使用数据,并且仅保留合同、具有使用汇总的最后一个区块以及关闭信息。
可以由单个设备50或一组设备50(每个设备提供相同的服务或者每个设备属于同一(智能)合同)提供该使用。设备甚至可以提供不同的服务,并且合同中的规则能够规定可以在相同或不同的计数器上对不同服务的资源进行汇总。由该组的任何设备提供的资源的使用能够在计费期中被收集和计费。
经由包含合同细节和区块链的标识/地址的智能合同来确立设备50的使用。设备50和计费节点200知道该合同。如果设备50能够在区块链中找到用于用户的有效合同,则设备50提供服务。当设备被激活时,设备能够经由采矿机100来发送使用交易,如由从采矿机到区块30的虚线所示。使用交易的执行将最后一个条目和新条目的总和作为新条目添加在区块链中。在这种增量计费场景中,操作是对资源的使用进行汇总,并且将在前一个区块和新条目(反映新的总资源使用)中存在的使用作为新区块添加在区块链的结尾。因此,在新交易的区块中读取最后一个条目,对使用费用或资源使用信息进行汇总。因此,能够进行实时和增量的资源使用计费。
当到达计费期末尾时,计费节点200形成关闭交易,如由图1中所示的虚线表示的,其中,向第一区块链通知关闭并且生成新区块链,其中向一个或多个设备50通知用于新计费期的新区块链。将新合同存储在新区块链中以用于即将到来的计费期,并且通过网络将新区块链的地址发送到所有涉及的节点。然后,计费节点能够最终生成评估区块链中的最后条目的***(例如,在计费期结束时)。
图2总结了在一种可能的实现中执行的某些步骤,并且示出不同实体之间的交互。在步骤S21中,用户与服务提供者(例如经由计费节点)达成(例如签署)有关由一个或多个设备提供的资源的使用的合同,并且向一个或多个设备50通知合同的达成。在步骤S22中,通知采矿机100创建智能合同,在步骤S23中完成创建该智能合同。在步骤S24中,在网络上传播具有标识/地址信息(#h1)(其表示区块链的标识数据)的合同密钥,以使得对等网络中的每个部分都知道合同。设备在请求中已知,而计费节点在合同中已知。在步骤S25中,用户可以开启设备以使用该设备,并且因此在步骤S26中将使用请求发送到采矿机作为该合同的使用交易。然后,采矿机在步骤S26a中针对区块链生成新区块(在此为第一区块),并且将使用交易添加到区块链。在步骤S27中,可以向设备通知所添加的区块,该区块被添加到区块链以用于新使用,并且由此,设备从其区块链的本地副本获得使用区块。所接收的区块向设备50通知所请求的使用,并且可以配置设备以使得它不允许比所请求的数量高或大的资源使用。
当不需要进一步资源使用时,用例可以结束,并且具有所添加的区块的区块链反映了该用例以及在该用例(或者用于正在进行的计费期中的所有先前用例,如果该用例不是第一用例的话)期间使用的设备资源。然后,该方法可以继续下面进一步详细讨论的步骤S35。
但是,可能发生以下情况:在步骤S26中请求的所请求的使用并不足够,或者在第一使用中并未使用所有所请求的资源。在步骤S28中,设备向采矿机通知新的使用交易,并且采矿机在步骤S29中通过向区块链添加用于新用例的新区块,对最后一个使用和新使用进行汇总,其中可以在步骤S30中将具有新添加的区块的总资源使用的信息发送到设备。
作为另一选择,可以检查实际的资源使用是否小于所请求的使用。例如,在步骤S31中关闭设备,以及在步骤S32中将该信息从设备发送到采矿机100。例如,如果合同的规则使得在使用结束之后,将再次从区块链中减去剩余资源,则在步骤S32中向采矿机通知剩余或已使用的资源数量。在步骤S33中,采矿机然后将剩余资源作为校正区块、作为负数量添加到区块链,从而充当请求但未用完的数量的校正。然后,在步骤S34中将该校正发送到设备50。
在步骤S35中,计费节点可以确定计费期结束,并且可以相应地通知采矿机。在步骤S36中,采矿机关闭区块链,可以创建新合同,以及可以在步骤S37中将具有有关计费期内资源的完整使用的信息的使用记录发送到计费节点。在步骤S38中,采矿机可以向计费节点和设备通知新合同和新区块链以及新区块链的新标识/地址信息。
图3总结了在上述场景中在采矿机处执行的步骤。在步骤S41中,采矿机确定区块链中的最新区块。例如,假设在两个用例之后,区块链中存在区块35b。在步骤S42中,采矿机确定发生未由区块35b中存在的资源信息反映的新用例。此外,采矿机确定在该新用例期间由设备使用的新资源数量,并且在步骤S43中,确定新的总资源信息,在该新的总资源信息中,将总资源信息(例如存在于区块35b中)与有关由新用例使用的新资源数量的信息相合并,以使得在步骤S43中,确定反映当前计费期中资源的完整使用的新的总资源信息。在步骤S44中,针对区块链生成新区块(例如区块35c),并且将新区块添加到区块链上,其中该新区块包含该新的总资源信息。
如上所示,采矿机可以附加地在未示出的步骤中确定当从计费节点接收对应的信息时计费期应当关闭。然后,采矿机可以通过添加关闭区块(例如区块35d)来关闭区块链,从而向计费节点通知在最新区块中提供的最新总资源信息。
图4总结了在计费节点200处执行的某些步骤。
在步骤S51中,计费节点可以确定合同,该合同至少包括计费信息,该计费信息允许计费节点确定因资源的使用而产生的成本。在步骤S52中,计费节点确定区块链的标识数据(例如地址信息),其中区块链包括总资源信息,其反映了自所定义的起始点以来资源的完整使用。在步骤S53中,计费节点确定计费期结束,并且相应地通知采矿机100。然后,采矿机关闭区块链并且将信息发送到计费节点,以使得在步骤S54中,计费节点接收反映了计费期内总资源使用的新的总资源信息。在步骤S55中,计费节点然后能够基于所接收的总资源信息并且基于由合同提供的信息,确定一个或多个设备的使用成本。
图8示出采矿机100的示意性架构图,采矿机100能够执行上述涉及采矿机的步骤。采矿机100包括收发机110,其用于将用户数据或控制消息发送到其它实体(例如设备50或计费节点200),并且被配置为从其它实体接收用户数据或控制消息。此外,采矿机可以包括处理单元120,其负责采矿机100的操作。处理单元120包括一个或多个处理器,并且能够执行存储在存储器130中的指令。存储器可以包括只读存储器、随机存取存储器、大容量存储装置、硬盘等。此外,存储器能够包括将要由处理单元120执行以便实现采矿机的上述功能的合适的程序代码。
图9示出在上述场景中涉及的计费节点200的示意性架构图。计费节点200包括收发机210,其用于将用户数据或控制消息发送到其它实体或节点,并且用于从其它实体(例如采矿机110或设备50)接收用户数据或控制消息。此外,计费节点200包括处理单元220,其负责计费节点200的操作。处理单元220包括一个或多个处理器,其能够执行存储在存储器230上的指令,其中存储器能够包括只读存储器、随机存取存储器、大容量存储装置、硬盘等。此外,存储器230能够包括将要由处理单元220执行以便实现其中涉及计费节点200的上述功能的合适的程序代码。
图5示出具有收发机110、处理单元120以及存储器130的采矿机100的更详细视图。收发机可以包括与处理单元120的虚拟机121交互的接口111,并且可以包括用于从网络发送或接收信息的移动网络或WiFi接口112。例如,当采矿机从网络接收到有关新用例的信息时,接口112可以通知接口111,接口111然后触发用作处理单元的虚拟机121以如上所述进行操作。例如,执行智能合同132,生成用于新用例的新区块133,以及将新区块133添加到区块链上。然后,处理单元120还更新存储在存储器130中的区块链副本131。采矿机还通过接口112更新网络中有关新添加的区块的其它实体。
图6示出在上述场景中涉及的对等网络中存在的节点之一的架构图,其中该节点可以是采矿机、计费节点、或者任何其它节点。在示出的示例中,节点经由接口112从其它节点(例如另一个采矿机)接收有关区块链的更新,并且朝向虚拟机的接口将该更新发送到处理单元120,在处理单元120处还执行和检验智能合同。更新后的区块链可以存储在区块链的副本131中。可以使用内部触发器,其可以是节点内的抽象事件。对于IoT设备,这可以是事件,例如按下按钮或开启以请求设备。对于计费节点,这可以是针对计费期结束的计时器事件。
在图7中,示出包括接口51、处理单元52以及存储器53的设备50的更详细视图。设备50可以通过接口51b从网络接收更新,如左侧所示,然后触发虚拟机52a以读取也存储在设备50中的区块链的副本131。此外,设备另外可以包含智能合同132,可以经由接口51a将交易传播到移动网络或WiFi网络,可以将交易发送到网络和采矿机节点,以及当从采矿机接收到更新时,可以最终完成和实现由用户请求的服务。
图10示出采矿机的另一个示意图,其中采矿机300包括第一模块310,其用于确定在新用例发生之前的最新区块和在区块链中存在的最新资源信息。然后提供模块320,其用于确定资源的新用例已发生,并且该新用例尚未在由模块310确定的总资源信息中反映。模块330确定新的总资源信息,其反映到目前为止(即,当确定新的总资源信息时)在计费期内资源的完整使用,提供模块340,其生成新区块,并且将包括新的总资源信息的新区块添加到区块链上。
图11示出监视设备50的资源的使用的计费节点400的另一个示意图。计费节点包括第一模块410,其用于确定具有用于资源的使用的费用信息的合同。计费节点400包括模块420,其用于确定标识数据,并且标识数据可以包括网络地址,该网络地址可以是如图中所示的区块链的散列值。此外,提供模块430,其确定当前计费期结束并且向采矿机通知计费期结束。提供模块440,其用于接收在区块链的最后一个区块中存在的总资源信息,以及提供模块450,其用于确定在计费期内因资源的使用而产生的总成本。
图2的序列图以简化形式示出用户针对可以由一个或多个设备50提供的服务的使用而签署合同。可以经由采矿机来创建智能合同,并且区块链将合同的散列地址(#h1)返回到签署合同的各方,合同各方然后将该信息发送到一个或多个设备50。当用户开启设备时,设备将使用记录发送到采矿机,采矿机将使用记录存储在区块链中,并且例如在特定时间内一直激活服务。发送其中使用被聚合的其他使用交易,并将使用总和作为新区块存储在区块链的结尾。只要使用设备,便重复这些步骤,并且如果关闭设备,则发送最后一个使用交易。在这些步骤期间,可以关闭区块链,并且可以生成新区块链(例如当计费期到期时)。
在每个计费期(例如一个月)结束时,计费节点200关闭该时段并且浏览已知的有效合同。返回用于合同的给定区块链的最后一个区块,并且这是与计费目的相关的条目。借助关闭交易,区块链被关闭,并且可以针对下一个计费期创建和供应新合同,其中可以向签署合同的各方通知新合同的密钥或标识/地址。
从以上所述中能够得出某些总体结论。
就采矿机而言,采矿机100能够确定应当关闭计费期,其中可以从计费节点200接收该信息。然后,采矿机能够确定在区块链的最后一个区块中存在的新的总资源信息,并且能够例如通过添加关闭区块来关闭区块链。此外,采矿机能够向计费节点通知在最后一个区块中存在的新的总资源信息。
此外,采矿机能够在区块链被关闭时开始新的区块链,并且能够将新的标识数据(例如新的地址信息)添加到新的区块链上。
此外,区块链能够包括合同,该合同至少包含区块链的标识数据和指示哪个用户有权使用设备的资源的使用信息。服务可以由单个设备或提供相同服务的一个或多个设备来提供。例如,可以提供一组设备,例如一组车辆或一组割草机,并且每次使用设备之一,当提供相同服务的不同设备的使用能够在同一区块链中汇总时,资源的使用在区块链中被累计。
当采矿机检测到资源的新用例时,采矿机能够基于使用信息来检查该新用例是否被允许。当新用例与合同的使用信息不一致时,对于该新用例能够不允许资源的使用。
此外,合同能够包括被用于确定因资源的使用而产生的成本的计费信息。然后,基于计费信息来确定指示总成本的新的总资源信息,其中,该总成本是自所定义的起始时间点以来因资源的使用而产生的。
具有计费信息的合同能够存储在区块链的起始区块30或40中,如图1中所示。此外,区块链的具有新的总资源信息的最后一个区块能够被发送到计费节点。
此外,能够由采矿机在区块链中提供执行设备的服务所需的控制程序,其中,采矿机能够接收源自设备的对使用设备的资源的请求,其中采矿机然后能够将控制程序发送到请求资源的使用的设备之一。
当确定计费期应当被关闭时,能够对区块链进行存档,和/或压缩区块链,和/或删除区块链。此外,能够从区块链中移除有关资源的使用的所有信息,同时能够至少保留新的总资源信息。
此外,采矿机能够确定针对新用例请求的请求资源数量。然后,将请求资源数量存储在要添加到用于该新用例的区块链的新区块中。
此外,能够在新用例终止(已使用资源)之后,确定在新用例中使用的实际新的资源数量。如果实际新的资源数量不同于请求资源数量,则确定实际新的资源数量与请求资源数量之间的差,并且该差能够被存储在校正区块中,校正区块然后被添加到区块链上。
就计费节点而言,计费节点能够基于所接收的总资源信息并且基于合同中存在的计费信息,确定设备的使用的总成本。
此外,计费节点可以接收新区块链的标识数据,该新区块链应当收集表示在新计费期中由一个或多个设备使用以用于提供服务的总资源数量的的总资源信息。此外,计费节点能够确定新计费期也已结束,并且能够向采矿机通知新计费期结束。然后,计费节点能够接收用于新计费期的新的总资源信息,并且能够确定在该新计费期中设备的使用的总成本。
计费节点还能够例如经由采矿机对区块链进行存档、压缩区块链、删除区块链、或者当确定计费期结束时从区块链中移除所有使用信息。
设备的功能控制程序能够作为合同的一部分存储在区块链中。这避免了设备能够由用户操纵。设备50只能通过执行存储在区块链上的机密程序来提供服务。如果服务提供者已接收到确认,则只能在给定地址处提供功能程序。然后,设备50从区块链下载程序,并且然后对其源代码进行解密并检验代码源自服务提供者。然后,如果已经经由区块链合法授权执行程序,则设备50将执行程序以提供其服务。
服务质量参数能够集成到用于计费的聚合函数中。例如,当提供的服务质量低时,能够由考虑额外参数(例如折扣)的另一个函数来替换用于计算最后一个用例和新用例的总和的函数。
在计费场景中,对区块链执行操作的采矿机100通常由计费服务提供者提供,但第三方也能够为采矿机提供计算资源。采矿机可以被视为向服务提供者提供其计算能力以进行计费的IoT设备。如果计费服务提供者使用采矿机向其签署合同的各方之一进行计费,则采矿机针对需要由计费服务提供者支付费用的计算而创建新的使用交易。
上述场景具有以下优势。
首先,它利用智能合同的优势。借助实时的合同自执行,并且借助低执行和合规成本,它允许以安全的方式对设备资源的使用计价,因为用户数据是匿名的,可能不需要用户数据并且用户数据不存储在区块链中。区块链不能***纵,并且仅当使用记录能够存储在区块链中时才能够使用设备。在匿名计费的情况下,采矿机不需要知道用户的ID。此外,计费节点不需要知道用户ID,而是只要确保有人付款即可。
此外,与区块链的集成保证了用户在不支付使用费用的情况下无法使用设备。此外,能够通过依赖区块链工作证明来信任存储在区块链中的信息。它还提供对帐,并且每个交易均被跟踪。该场景是一种分散***,其保证高可用性和扩展性,并且是可靠的解决方案,因为存储区块链的多个副本,其中执行不同实体之间的同步。此外,它是一个自组织的解决方案,新设备提供者可以通过放置新资源来加入。此外,在每个(计费)时段之后,该解决方案减少要针对前一个(计费)时段保留的必需数据量,同时保留先前时段的数据。这节省参与实体的存储和计算时间。