首页 / 专利库 / 银行与财务事项 / 分布式账本技术 / 区块链 / 区块头 / 区块链网络、分支节点及区块链网络应用方法

链网络、分支节点及区块链网络应用方法

阅读:67发布:2020-12-23

专利汇可以提供链网络、分支节点及区块链网络应用方法专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种 区 块 链 网络、分支 节点 及区块链网络应用方法;区块链网络包括:多个节点,用于分别存储包括记录数据的区块,并链接区块而形成区块链;多个节点中包括至少一个分支节点,用于当接收到特定用户提交的记录数据时,将记录数据发送至区块链网络中其他节点,根据其他节点针对记录数据返回的有效确认结果的数量,向特定用户返回记录数据提交结果;还用于当接收到特定用户创建新区块的 请求 时,将新区块发送到区块链网络中其他节点,根据其他节点验证新区块的结果向特定用户返回创建新区块的结果。实施本发明,实现了区块链技术在用户侧的移动终端实施,扩展了区块链使用范围,并能够节约用户侧移动终端的资源。,下面是链网络、分支节点及区块链网络应用方法专利的具体信息内容。

1.一种链网络,其特征在于,包括:
多个节点,用于分别存储包括记录数据的区块,并链接所述区块而形成区块链;
所述多个节点中包括至少一个分支节点,用于与特定用户协商建立加密通道;
所述分支节点,还用于接收所述特定用户通过所述加密通道提交的记录数据,将所述记录数据发送至所述区块链网络中除所述分支节点的其他节点,根据其他节点针对所述记录数据返回的有效确认结果的数量,通过所述加密通道向所述特定用户返回记录数据提交结果;
所述分支节点,还用于接收所述特定用户通过加密通道发送的创建新区块的请求,将所述新区块发送到所述区块链网络中其他节点,根据其他节点验证所述新区块的结果向所述特定用户返回创建新区块的结果。
2.如权利要求1所述的区块链网络,其特征在于,
所述分支节点,还用于当接收到携带所述特定用户的数字签名的所述记录数据时向其他节点发送所述记录数据,当预定数量的其他节点验证成功、存储所述提交的记录数据、并返回有效确认结果时,向所述特定用户返回提交的记录数据得到确认。
3.如权利要求1所述的区块链网络,其特征在于,
所述分支节点,还用于基于所述提交的记录数据携带的所述特定用户的数字签名,验证所述记录数据的完整性以及来源为所述特定用户,验证通过时在所述分支节点维护的区块链中写入所述提交的记录数据。
4.如权利要求1所述的区块链网络,其特征在于,
所述分支节点,还用于将从所述区块链网络中新获取的记录数据发送至所述特定用户,所述记录数据供所述特定用户计算得到满足预定条件的随机数;在所述新区块的区块头中填充所述计算出的随机数,并基于所述区块头以及所述新获取的记录数据形成所述新区块。
5.如权利要求4所述的区块链网络,其特征在于,
所述分支节点,还用于当其他节点验证满足所述预定条件、并在所对应维护的区块链中写入所述新区块时,向所述特定用户返回创建新区块成功。
6.如权利要求1所述的区块链网络,其特征在于,
所述分支节点,还用于在所述记录数据为虚拟货币的交易清单、且其他节点确认所述新区块时,基于所述新区块中预写入的交易清单为所述特定用户获取虚拟货币,所述预写入的交易清单以所述特定用户的地址为虚拟货币的接收地址。
7.如权利要求1所述的区块链网络,其特征在于,
所述分支节点,还用于与所述特定用户进行认证,在认证通过时确定所述特定用户为定向提供基于区块链的服务的用户,并与所述特定用户建立用于提供基于区块链的服务的加密通道。
8.一种分支节点,其特征在于,包括:
存储单元,用于与区块链网络中的多个节点分别存储包括记录数据的区块,并链接所述区块而形成区块链;
认证加密单元,用于与特定用户协商建立加密通道;
记录数据单元,用于接收所述特定用户通过所述加密通道提交的记录数据,将所述记录数据发送至所述区块链网络中的其他节点,根据其他节点针对所述记录数据返回的有效确认结果的数量,通过所述加密通道向所述特定用户返回记录数据提交结果;
新区块单元,用于接收所述特定用户通过所述加密通道发送的创建新区块的请求,将所述新区块发送到所述区块链网络中其他节点,根据其他节点验证所述新区块的结果,通过所述加密通道向所述特定用户返回创建新区块的结果。
9.一种区块链网络应用方法,其特征在于,
区块链网络的多个节点中具有至少一个分支节点;
包括:
与特定用户协商建立加密通道;
接收到所述特定用户通过所述加密通道提交的记录数据时,将所述记录数据发送至所述区块链网络中除所述分支节点的其他节点,根据其他节点针对所述记录数据返回的有效确认结果的数量,通过所述加密通道向所述特定用户返回记录数据提交结果;
接收到所述特定用户通过所述加密通道发送的创建新区块的请求时,将所述新区块发送到所述区块链网络中其他节点进行确认,根据其他节点验证所述新区块的结果,通过所述加密通道向所述特定用户返回创建新区块的结果。
10.如权利要求9所述的区块链网络应用方法,其特征在于,所述将所述记录数据发送至所述区块链网络中除所述分支节点的其他节点,根据其他节点针对所述记录数据返回的有效确认结果的数量,通过所述加密通道向所述特定用户返回记录数据提交结果,包括:
通过所述加密通道接收到携带所述特定用户数字签名的所述记录数据时,向其他节点发送所述记录数据,当预定数量的其他节点验证成功、存储所述提交的记录数据并返回有效确认结果时,通过所述加密通道向所述特定用户返回提交的记录数据得到确认。
11.如权利要求9所述的区块链网络应用方法,其特征在于,还包括:
基于所述提交的记录数据携带的所述特定用户的数字签名,验证所述记录数据的完整性以及来源为所述特定用户,验证通过时在所述分支节点维护的区块链中写入所述提交的记录数据。
12.如权利要求9所述的区块链网络应用方法,其特征在于,还包括:
将从所述区块链网络中新获取的记录数据发送至所述特定用户,所述记录数据供所述特定用户计算得到满足预定条件的随机数;在所述新区块的区块头中填充所述计算出的随机数,并基于所述区块头以及所述新获取的记录数据形成所述新区块。
13.如权利要求9所述的区块链网络应用方法,其特征在于,所述根据其他节点验证所述新区块的结果向所述特定用户返回创建新区块的结果,包括:
当其他节点验证所述随机数满足所述预定条件、并在所对应维护的区块链中写入所述新区块时,向所述特定用户返回创建新区块成功。
14.如权利要求9所述的区块链网络应用方法,其特征在于,还包括:
当所述记录数据为虚拟货币的交易清单、且所述区块链中的其他节点确认所述新区块时,基于所述新区块中预写入的交易清单为所述特定用户获取虚拟货币,所述预写入的交易清单以所述特定用户的地址为虚拟货币的接收地址。
15.如权利要求9所述的区块链网络应用方法,其特征在于,所述与特定用户协商建立加密通道,包括:
与所述特定用户进行认证,在认证通过时确定所述特定用户为定向提供基于区块链的服务的用户,并与所述特定用户建立用于提供基于区块链的服务的所述加密通道。

说明书全文

链网络、分支节点及区块链网络应用方法

技术领域

[0001] 本发明涉及区块链技术,尤其涉及一种区块链网络、分支节点及区块链网络应用方法。

背景技术

[0002] 区块链是(Blockchain)比特币的核心技术,本质上是一个去中心化的数据库。区块是一串使用密码学方法相关联产生的数据块,区块记录了比特币交易的信息,用于验证交易的有效性(防伪)和生成下一个区块。
[0003] 除了用于实现比特币等虚拟货币的交易,还可以广泛用于金融、公正、供应链、身份验证中相关记录数据的存储和回溯,具有广泛的应用前景。
[0004] 目前,区块链技术在应用到移动终端时存在以下问题:
[0005] 一、区块链需要存储在移动终端本地,占用移动终端大量的存储资源。
[0006] 区块链存储的记录数据会不断增长,会导致移动终端存储的区块链的体积越来越大。
[0007] 二、以区块链的比特币应用为例,比特币的交易发生时消耗移动终端的大量流量和计算资源。
[0008] 比特币的交易发生时需要区块链中节点立即确认,相应地,移动端中存储的区块链也需要进行更新,导致移动端流量的大量耗费,并且,移动终端本地需要通过哈希计算对发生的交易进行确认,例如,通过哈希计算确认区块链编号有效;确认前一页编码有效;通过回溯确认交易清单有效。这个过程需要花费移动终端大量的计算资源和存储空间。

发明内容

[0009] 本发明实施例提供一种区块链网络、分支节点及区块链网络应用方法,实现了区块链技术在用户侧的移动终端实施,并能够节约用户侧移动终端的资源。
[0010] 本发明实施例的技术方案是这样实现的:
[0011] 第一方面,本发明实施例提供一种区块链网络,包括:
[0012] 多个节点,用于分别存储包括记录数据的区块,并链接所述区块而形成区块链;
[0013] 所述多个节点中包括至少一个分支节点,用于与特定用户协商建立加密通道;
[0014] 所述分支节点,还用于接收所述特定用户通过所述加密通道提交的记录数据,将所述记录数据发送至所述区块链网络中除所述分支节点的其他节点,根据其他节点针对所述记录数据返回的有效确认结果的数量,通过所述加密通道向所述特定用户返回记录数据提交结果;
[0015] 所述分支节点,还用于接收所述特定用户通过加密通道发送的创建新区块的请求,将所述新区块发送到所述区块链网络中其他节点,根据其他节点验证所述新区块的结果向所述特定用户返回创建新区块的结果。
[0016] 第二方面,本发明实施例提供一种如前所述的分支节点,包括:
[0017] 存储单元,用于与区块链网络中的多个节点分别存储包括记录数据的区块,并链接所述区块而形成区块链;
[0018] 加密通道单元,用于与特定用户协商建立加密通道;
[0019] 记录数据单元,用于接收所述特定用户通过所述加密通道提交的记录数据,将所述记录数据发送至所述区块链网络中的其他节点,根据其他节点针对所述记录数据返回的有效确认结果的数量,通过所述加密通道向所述特定用户返回记录数据提交结果;
[0020] 新区块单元,用于接收所述特定用户通过所述加密通道发送的创建新区块的请求,将所述新区块发送到所述区块链网络中其他节点,根据其他节点验证所述新区块的结果,通过所述加密通道向所述特定用户返回创建新区块的结果。
[0021] 第三方面,本发明实施例提供一种应用于前述的区块链网络的区块链网络应用方法,其中,区块链网络的多个节点中具有至少一个分支节点;
[0022] 方法包括:
[0023] 与特定用户协商建立加密通道;
[0024] 接收到所述特定用户通过所述加密通道提交的记录数据时,将所述记录数据发送至所述区块链网络中除所述分支节点的其他节点,根据其他节点针对所述记录数据返回的有效确认结果的数量,通过所述加密通道向所述特定用户返回记录数据提交结果;
[0025] 接收到所述特定用户通过所述加密通道发送的创建新区块的请求时,将所述新区块发送到所述区块链网络中其他节点进行确认,根据其他节点验证所述新区块的结果,通过所述加密通道向所述特定用户返回创建新区块的结果。
[0026] 本发明实施例具有这样的有益效果:
[0027] 将区块链的一个或多个节点作为的分支节点,通过分支节点向服务范围内的用户(特定应用)提供基于区块链的服务,包括提交记录数据、以及确认创建的新区块,使得区块链服务可以在用户侧实现的效率,表现在:
[0028] 1)对于向区块链网络中提交记录数据来说,用户只需要提交记录数据以及接收记录数据的提交结果,其余的处理由分支节点与其他节点交互实现,用户既不需要存储区块链,也不需要进行其他的计算,实现了节省存储空间和计算资源的效果。
[0029] 2)对于在区块链中创建新区块来说,用户至需要发起创建新区块的请求,后续不需要再进行网络通信(直至接收到确认结果),从而实现了对创建的新区块进行离线确认的技术效果,减少用户侧频繁的网络操作,使得区块链服务可以在移动终端更加容易实现。附图说明
[0030] 图1是本发明实施例中区块链网络的一个可选的结构示意图;
[0031] 图2是本发明实施例中区块链一个可选的结构示意图;
[0032] 图3-1是本发明实施例中区块链一个可选的结构示意图;
[0033] 图3-2是本发明实施例中区块链一个可选的结构示意图;
[0034] 图4是本发明实施例中区块链网络的一个可选的结构示意图;
[0035] 图5是本发明实施例中分支节点的一个可选的软硬件结构示意图;
[0036] 图6-1是本发明实施例中分支节点为特定用户确认交易的一个可选的流程示意图;
[0037] 图6-2是本发明实施例中分支节点为特定用户确认交易的一个可选的流程示意图;
[0038] 图6-3是本发明实施例中分支节点为特定用户确认交易的一个可选的场景示意图;
[0039] 图6-4是本发明实施例中分支节点为特定用户确认交易的一个可选的场景示意图;
[0040] 图7是本发明实施例中分支节点为特定用户在区块链中请求创建新区块的一个可选的流程示意图;
[0041] 图8是本发明实施例中区块链网络应用于供应链时区块中写入供应链记录的一个可选的示意图;
[0042] 图9是本发明实施例中分支节点的一个可选的功能结构示意图。

具体实施方式

[0043] 以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所提供的实施例仅仅用以解释本发明,并不用于限定本发明。另外,以下所提供的实施例是用于实施本发明的部分实施例,而非提供实施本发明的全部实施例,在不冲突的情况下,本发明实施例记载的技术方案可以任意组合的方式实施。
[0044] 对本发明进行进一步详细说明之前,对本发明实施例中涉及的名词和术语进行说明。
[0045] 虚拟货币,本发明实施例中指加密互联网货币,是以密码学为基础的分布式数字货币,包括比特币、莱特币以及其他类似的衍生币种。
[0046] 区块(Block)是一个存储单元,各个区块之间通过随机散列(也称哈希算法)实现链接(chain),后一个区块的区块头(区块的头部)包含前一个区块的哈希值,从而实现区块与区块相继接续,形成区块链。
[0047] 区块链(Blockchain),多个节点通过一串使用密码学方法相关联产生区块,区块采用“区块头+区块体”的结构,区块头中用于验证记录数据的有效性的数据、以及前一个区块的索引数据,区块体中包含了一定时间内的记录数据。
[0048] 从功能结构上讲,区块链是一群分散的节点运行的分布式数据库,用以存储各种记录数据如虚拟货币交易的记录数据。从数据结构层面上讲,区块链中包括一系列的区块,新区块一旦加入到区块链中就不会再被移走,区块中包含了记录数据,用于验证记录数据的有效性(防伪)和生成下一个区块。
[0049] 以比特币为例,比特币的交易依赖于运行区块链中节点的确认,当比特币交易被一节点首次确认时,对应的交易清单被添加到区块链中的最新区块,该交易被区块链网络中的其他节点继续确认免交易重复,当在足够的区块中得到确认(也就是在区块记录数据该交易)时交易得到最终确认,此时交易不可逆转。
[0050] 数字签名,涉及哈希函数、发送者的公钥和发送者的私钥。发送方利用私钥对需要发送的报文(如报文的摘要)进行加密,接收方利用公钥对报文解密以验证报文没有经过更改以及发送者的身份。
[0051] 本发明实施例提供区块链网络,参见图1示出的比特币的区块链网络的一个可选的结构示意图,区块链网络是由多个节点组成的点对点(P2P,Peer To Peer)网络,P2P是一个运行在TCP协议之上的应用层协议,在区块链网络中的节点彼此对等,网络中不存在中心节点,每个节点都可以随机连接其他节点因此区块链网络具有去中心化的特点。
[0052] 参见图1示出的区块链中节点的功能结构,区块链中的节点均具有:1)路由功能,用于把其它节点传送过来的交易清单等信息再传送给更多的节点实现节点之间的通信。另外,节点的完整功能还包括:2)比特币钱包,用于支持用户进行比特币的交易;3)区块链,记录了比特币历史上的所有交易(也即交易的记录数据),通过特殊的结构保证历史交易的安全性,并且用来验证新交易的合法性;4)矿工,通过记录交易及解密数学题来生成区块链中的新区块,如果生成新的区块成功可以获取比特币的奖励,上述对创建新区块的数学难题进行求解以创建新区块、并获取相应的比特币奖励的过程也成为挖矿。实际应用中,只有路由功能是区块链中的节点所必须的,根据实际需要节点中设置其他功能,例如,对于矿工节点来说可以只具有路由功能和矿工功能,部分节点可以只实现钱包功能,部分节点可以只实现挖矿功能。
[0053] 基于图1,对区块链的结构进行说明,参见图2示出的区块链200的一个可选的结构示意图,区块链以区块为单位存储比特币的交易清单,区块链中的区块是按照时间顺序生成,每个区块用于记录一定时间内产生的比特币的交易清单。区块链中首先出现第一个区块也即创世区块,由于交易清单会随时间不断增多,区块链中用于存储交易清单的区块的数量也随着时间的演进而不断增多。除了创世区块,节点存储的区块链中每个区块都会存储有前一个区块的索引如哈希散列,因此区块之间基于索引而链接成为区块链。由于区块链中的区块根据时间顺序生成的,通过在创世区块中基于创世区块的生成时间,区块链中的区块的先后顺序相当于实现了时间戳的效果,同时每个区块存储有前一区块的索引,使得区块链中的交易清单具有不可伪造的特性。
[0054] 参见图3-1和图3-2示出的区块结构(BlockStructure)一个可选的示意图,区块分为区块头(header)和区块体(body)两部分。区块体中会记录下区块生成时间段内的交易清单,区块链的其他功能通过区块头实现。
[0055] 区块头包括:
[0056] 1)版本号,标识软件及协议的相关版本信息。
[0057] 2)区块哈希值(父哈希),区块所链接的前一区块(也称为父区块)的区块头的哈希值,通过SHA256算法对父区块的区块头进行二次哈希计算得到;区块首尾相连而链接形成区块链,并且保证区块链的安全性,防止交易清单的篡改。
[0058] 3)Merkle树根,这个值是由区块体中所有交易清单的哈希值再逐级两两哈希计算出来的数值,主要用于检验记录数据(如一笔比特币的交易)是否在该区块中存在。
[0059] 4)时间戳,记录区块产生的时间。
[0060] 5)难度值,区块相关数学题的难度目标;
[0061] 6)随机数(Nonce),解密该区块相关数学题的答案的值。
[0062] 针对图1示出的区块链网络在移动终端应用时存在的前述的问题,本发明实施例提供一种如下的区块链网络,在区块链网络中包括多个节点,并且构成区块链网络的节点中至少存在一个分支节点,分支节点用于定向特定用户提供基于区块链的服务。
[0063] 参见图4示出的区块链网络的一个可选的结构示意图,在图4示出的区块链网络中包括多个节点,节点都具有路由功能以通过以太网进行点对点的通信(如发送交易清单),部分节点作为分支节点如分支节点41和分支节点42,分支节点41向特定的用户侧的移动终端(包括移动终端44和移动终端45)提供基于区块链的服务。
[0064] 可选地,移动终端44和移动终端45通过无线接入点43接入网络以与分支节点41通信;类似地,分支节点42向特定的用户侧的移动终端(包括移动终端47和移动终端48)提供基于区块链的服务,可选地,移动终端47和移动终端48通过无线接入点46接入网络以与分支节点42通信。
[0065] 实际应用中,任何机器如服务器、用户侧的移动终端都可以加入区块链网络而成为节点,一般地,当分支节点基于服务器或服务器集群实现时,分支节点也可称为分支服务器。在硬件层面上,示例性地,参见图5示出的分支节点50的一个可选的软硬件结构示意图,分支节点包括硬件层、中间层操作系统层和软件层。
[0066] 然而,本领域的技术人员应当理解,图5示出的分支节点50的结构仅为示例,并不构成对分支节点50结构的限定。例如,分支节点50可以根据实施需要设置较图5更多的组件,或者根据实施需要省略设置部分组件。
[0067] 分支节点50的硬件层包括处理器51、输入/输出接口53,存储介质54以及网络接口52,组件可以经系统总线连接通信。
[0068] 处理器51可以采用中央处理器(CPU)、微处理器(MCU,Microcontroller Unit)、专用集成电路(ASIC,Application Specific Integrated Circuit)或逻辑可编程阵列(FPGA,Field-Programmable Gate Array)实现。
[0069] 输入/输出接口53可以采用如显示屏、触摸屏、扬声器等输入/输出器件实现。
[0070] 存储介质54可以采用闪存、硬盘、光盘等非易失性存储介质实现,也可以采用双倍率(DDR,Double Data Rate)动态缓存等易失性存储介质实现,其中存储有用以执行上述通信状态处理方法的可执行指令。
[0071] 示例性地,存储介质54可以与分支服务器50共同在同一地点设置,也可以相对于分支节点50异地远程设置,或者相对分支节点50本地和异地分布设置。网络接口52向处理器51提供外部数据如异地设置的存储介质54的访问,示例性地,网络接口52可以实现如基于码分多址(CDMA,Code Division Multiple Access)、宽带码分多址(WCDMA,Wideband Code Division Multiple Access)等通信制式及其演进制式的通信。
[0072] 驱动层包括用于供操作系统56识别硬件层并与硬件层各组件通信的中间件55,例如可以为针对硬件层的各组件的驱动程序的集合。
[0073] 操作系统56用于提供面向用户的图形界面,示例性地,包括插件图标、桌面背景和应用图标,操作系统56支持用户经由图形界面对设备的控制本发明实施例对上述设备的软件环境如操作系统类型、版本不做限定,例如可以是安卓操作系统、iOS操作系统、Linux操作系统或UNIX操作系统等。
[0074] 协议层57包括支持区块链相关功能如钱包、挖矿等的软件和协议。
[0075] 下面,假设比特币的区块链网络,继续对分支节点定向特定用户提供基于区块链的服务进行说明,可以理解地,当区块链用于比特币之外的用途,如金融、公正、供应链、身份验证等领域时,本领域技术人员可以基于以下记载的方案而进行实施。分支节点支持向特定用户(也就是分支节点提供定向)提供的基于区块链的服务包括:
[0076] 1)支持用户进行比特币的交易,也即:在用户提交比特币的交易(对应记录数据)时,在区块链中同步交易以对交易进行确认,向特定用户返回交易提交结果(如交易得到确认,或者,交易失败)。
[0077] 2)支持用户进行挖矿,也就是用户通过移动终端计算出创建新区块的数学题的答案(满足预定条件的随机数),并针对新创建的区块向分支节点请求确认创建的新区块时,分支节点在区块链网络中请求其他节点确认特定用户创建的新区块(作为区块链中的最新区块),在区块链中的其他节点确认特定节点创建的新区块为合法区块似时,为特定用户获得一定数量的比特币作为创建新区块的奖励。
[0078] 下面再对实现上述基于区块链的服务的实现过程进行说明。
[0079] 1)比特币交易
[0080] 结合图4,下述的分支节点可以为分支节点41和分支节点42中的任一个,特定用户为分支节点定向提供基于区块链的服务的用户(也简称为用户),如对应分支节点41的用户侧的移动终端44和移动终端45的用户,又如对应分支节点42的用户侧的移动终端47和移动终端48的用户。
[0081] 参见图6-1示出的分支节点为特定用户支持进行比特币交易的一个可选的流程示意图,特定用户通过手机客户端(如比特币钱包)进行了比特币交易,例如向其他用户支付一定数量的比特币,则向分支服务器提交交易清单(步骤101),交易清单中包括比特币的发送方、接收方的地址、交易的比特币的数量,分支节点将交易清单广播给区块链中其他节点的方式向区块链网络请求确认交易清单(步骤102)。
[0082] 在一个实施例中,特定用户提交的交易清单中还携带特定用户针对交易清单形成的数字签名,示例性地,特定用户的手机客户端使用这样的方式形成数字签名:使用哈希算法计算交易清单的摘要,使用不对称加密算法的私钥对交易清单的摘要加密形成数字签名。
[0083] 示例性地,比特币私钥是使用SHA-256算法生成的32字节(256位)的随机数,有效私钥的范围则取决于比特币使用的secp256k1椭圆曲线数字签名标准。大小介于0x1到0xFFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFE BAAE DCE6 AF48 A03B BFD2 5E8C D036 
4140之间的数都是合法的私钥。
[0084] 在私钥的前面加上版本号,私钥后面添加压缩标志和附加校验码(所谓附加校验码,就是对私钥经过2次SHA-256运算,取两次哈希结果的前四字节),然后再对其进行Base58编码,得到钱包导入格式(WIF,Wallet import Format)格式的私钥。
[0085] 对于分支节点发送至区块链中的特定用户提交的交易清单,区块链网络中的其他节点基于交易清单的数字签名可以验证交易清单的来源(特定用户)以及交易清单的完整性,避免交易清单被篡改。对于区块链中的分支节点来说,如果对特定用户提交的交易清单验证通过并在所维护的区块链中存储(当然,在所维护的区块链的最新区块的区块体中存储)交易清单后,会向分支节点发送针对交易清单的确认(步骤103)。当特定用户的交易清单得到区块链中预定数量的节点(如区块链网络中超过半数的节点,或者区块链中全部的节点,这里仍假设节点具有维护区块链的功能)的确认时,分支节点认为特定用户提交的交易清单得到区块链网络的确认,向特定用户的手机客户端发送确认交易成功(步骤104)。
[0086] 示例性地,区块链中的分支节点可以采用这样的方式验证特定用户提交的交易清单:采用哈希算法(与特定用户的手机客户端使用相同哈希算法)计算接收到的交易清单的摘要,与利用不对称加密算法的公钥解密数字签名得到的摘要比对,比对一致则说明交易清单的摘要来自特定用户,交易清单是可信的,分支节点以及区块链中接收到交易清单的节点会将交易清单存储在自身所维护区块链(这里假设接收到交易清单的节点具有前述的区块链功能)的最新的区块中(当然,在最新区块的区块体中存储)。
[0087] 作为一个示例,如前所述,由于分支节点本身也是区块链网络中的一个节点,与区块链网络中其他节点的区别在于还为特定用户支持比特币的交易,因此,如果分支节点自身也存储有区块链功能时,那么对于特定用户提交的交易清单,分支节点可以采用前述的验证方式对交易清单的完整性以及来源(是否为来自特定用户)进行验证,在验证通过时,在分支节点自身维护的区块链(这里,假设分支节点也具有维护区块链的功能)的最新区块的区块体中存储交易清单。
[0088] 与前述示例不同,参见图6-2示出的分支节点为特定用户支持进行比特币交易的一个可选的流程示意图,分支节点向特定用户提供基于区块链的服务之前,可以与用户侧的手机客户端进行认证(步骤105),以下示例性说明。
[0089] 例如,单向认证:1)分支节点对特定用户的手机客户端进行认证;2)特定用户的手机客户端对分支节点进行认证。
[0090] 又例如,双向认证,分支节点对特定用户的手机客户端进行认证,并且特定用户的手机客户端对分支节点进行认证。
[0091] 在认证通过后分支节点与特定用户的手机客户端建立加密通道(步骤106),如基于安全传输层协议(TLS,Transport Layer Security)的加密连接。这样在分支节点接收到特定用户提交的交易清单时可以不对交易清单进行验证即认为特定用户提交的交易清单是可信的,直接在分支节点维护的区块链中写入交易清单。
[0092] 当然,对于区块链中的其他节点,分支节点仍然需要将特定用户提交的交易清单发送到区块链中请求确认。对于用户B来讲,用户B的手机客户端在向区块链查询所拥有的比特币时即可显示用户A发送的比特币,但是由于尚未确认因此无法使用。
[0093] 结合图6-3和图6-4示出的比特币交易的可选的场景示意图进行说明。
[0094] 用户A需要向用户B发送一定数量的比特币,用户A通过手机客户端(如比特币钱包)创建交易清单,包括用户A的发送地址、用户B的接收地址以及比特币的数量,示例性地,用户B的接收地址可以通过用户A手动输入、扫码等方式获取;交易清单中还携带用户A的数字签名,通过加密通道向分支节点请求确认交易(如前所述,分支节点与用户A的手机客户端可以预先进行双向认证并建立加密通道)。此时,用户A的手机客户端发送的比特币显示为“已发送、待确认”的状态。
[0095] 分支节点首先对交易进行确认:在分支节点本地的区块链中写入交易清单。并且,将交易清单在区块链的其他节点中进行广播,使区块链中的其他节点基于交易清单的数字签名进行验证,在验证通过时在各节点的区块链中写入交易清单并在区块链中广播交易清单验证通过。
[0096] 当分支节点接收区块链针对广播的交易清单的足够数量的确认时,向用户A的手机客户端返回交易成功,在用户A的手机客户端中发送的比特币显示为“已发送、已确认”的状态,同时用户B的手机客户端在向区块链查询用户B所有的比特币的数量时,在用户B的手机客户端中显示用户A发送的比特币,用户B可以使用用户A发送的比特币,交易至此完成。
[0097] 可以看出,对于用户A来讲,只需要通过分支节点提交交易清单,后续不需要联网并参与运算,有效节省了用户A移动终端的流量以及计算资源。
[0098] 2)挖矿
[0099] 结合图4,下述的分支节点可以为分支节点41和分支节点42中的任一个,特定用户为分支节点定向提供基于区块链的服务的用户(也简称为用户),如对应分支节点41的用户侧的移动终端44和移动终端45的用户,又如对应分支节点42的用户侧的移动终端47和移动终端48的用户。
[0100] 结合图7示出的分支节点为特定用户支持进行挖矿的一个可选的流程示意图进行说明,特定用户向为该特定用户提供挖矿服务支持的分支节点请求提交到区块链网络的交易清单的清单(步骤201),如前所述,当用户(可以特定用户,也可以为其他用户)发起交易时会通过对应的分支节点提交交易清单请求区块链中的节点进行确认,从而,分支节点得到收集到最近的一定时间(是指,创建区块链中最新区块的有效时间,如最近的十分钟)发送到区块链中的交易清单并存储到区块链的最新的区块中。在特定用户通过手机客户端请求交易清单时,即将最新的区块中的交易清单发送给特定用户的手机客户端(步骤202),由手机客户端组织最近的一定时间交易清单(步骤203),在创建区块链中最新区块的有效时间内未到达时,分支节点会继续将接收到的新的交易清单发送到特定用户的手机客户端以对手机客户端组织的交易清单进行更新(步骤204)。
[0101] 仍以以图4为例,当移动终端45的用户向移动终端44的用户发送比特币时,移动终端45中的客户端向区块链发送交易清单,从而区块链中的其他节点如分支节点46接收到了交易清单,在对交易清单验证通过后即将交易清单存储在自身所维护的区块链中的最新区块(也可以视为最后的一个区块)。当移动终端47的用户通过客户端请求交易清单的清单时,分支节点46将区块链中最后的一个区块中的交易清单发送给移动终端47的客户端。
[0102] 手机客户端通过交易清单的清单计算出相应新区块的哈希值(步骤205)也就是前述的Merkle树根。示例性地,假设交易清单的清单中四笔交易,分别是A、B、C和D,首先将交易数据通过两次SHA256算法生成一个32字节的哈希值,这些值作为叶子节点存储在Merkle树中,然后把相邻叶子节点的两个32字节的哈希值串联成一个64字节的字符串,再对这个字符串通过两次SHA256算法生成一个32字节的哈希值作为这两个叶子节点的父节点存入Merkle树中,以此类推,最终形成交易清单的统一的哈希值。
[0103] 如前所述,区块头包括区块哈希值(父哈希)、Merkle树根、时间戳、难度值和Nonce;其中,对于新区块的区块头来说,父哈希是上一个区块的哈希值(已知),Merkle树根可由手机客户端通过上述的步骤205计算得到,另外,手机客户端可以将时间戳填充为当前时间,难度值字段也会根据之前一段时间区块的平均生成时间进行调整得到,对于Nonce的值,手机客户端通过计算得到的Nonce需要得到满足如下的条件(也称为数学难题):当Nonce值为手机客户端计算出的随机数时,新区块的区块头的SHA256哈希值小于区块头中的难度值。
[0104] 当手机客户端计算出满足上述条件的Nonce的值时,将计算出的Nonce的值填充到新区块头部的相应字段,手机客户端已经计算得到新区块的完整头部,即向分支节点发起针对新区块的确认(步骤206),分支节点将手机客户端请求确认的新区块(包括计算出的区块头的字段如Nonce的值,以及区块体中的交易清单)向区块链网络以广播的方式公开请求确认(步骤207),区块链网络中的节点对接收到的新区块时,验证新区块的区块头中的值是否满足上述的条件,如果满足,则承认特定用户的手机客户端创建的新区块作为区块链中的合法区块,将新区块链接到各节点本地维护的区块链中,向分支节点发送确认。同时,手机客户端在创建的新区块中的区块体中还添加有以特定用户的比特币地址为接收地址的交易清单(一般地,称为生产交易清单),用户接收一定数量的比特币作为创建新区块的奖励(步骤208)。分支节点向特定用户的手机客户端返回新区块创建成功、以及获得一定数量的比特币奖励(步骤209)。
[0105] 可以看出,对于用户A来讲,只需要通过分支节点提交在手机客户端提交计算出的Nonce的值,分支服务器即可为客户端在区块链中请求确认新区块并为特定用户获取奖励,对于手机客户端来说,不需要持续进行网络通信,也不需要进除计算Nonce的值之外的其他运算,节省了流量和计算资源。
[0106] 需要指出的是,前述以区块链网络应用于比特币的交易以及比特币挖矿领域的实施为例进行说明,但不应视为对本发明实施例提供的区块链网络应用领域的限定,以下再以本发明实施例提供的如图4所示的区块链网络应用于供应链为例进行说明。参见图8示出供应链时区块链网络中各节点维护的区块的一个可选的示意图,在图8中,分支服务器向供应链不同环节的工作人员提供提交商品运输进度的服务,以农场环节为例,当农场的工作人员1将商品从农场向处理中心运输后,在手机客户端中提交记录1,对应的分支节点将记录1发送到区块链网络中请求确认,使得农场中的其他工作人员2通过手机客户端(此时其他工作人员2的手机客户端成为区块链网络中的其他节点)也接收到记录1,当农场足够数量的工作人员2通过对应的分支节点确认记录1后,记录1被写入区块链的区块体中,由于记录1需要农场多个工作人员2的手机客户端通过对应的分支服务器进行确认后,然后经由工作人员1对应的分支服务器向工作人员1的手机客户端返回记录1确认消息,因此避免了篡改和伪造的可能。同时,工作人员的手机不会持续与区块链网络通信并参与相关的运算,从而节省了手机的流量和计算资源,保证手机的续航性能。
[0107] 对前述分支节点的逻辑功能结构进行示例性说明,参见图9示出的分支节点90的一个可选的逻辑功能结构示意图,包括:
[0108] 存储单元91,用于与区块链网络中的多个节点分别存储包括记录数据的区块,并链接所述区块而形成区块链;
[0109] 记录数据单元92,用于当接收到特定用户提交的记录数据时,将所述记录数据发送至所述区块链网络中除所述分支节点的其他节点根据其他节点针对所述记录数据返回的有效确认结果的数量,向所述特定用户返回记录数据提交结果;
[0110] 新区块单元93,用于当接收到所述特定用户创建新区块的请求时,将所述新区块发送到所述区块链网络中其他节点,根据其他节点验证所述新区块的结果向所述特定用户返回创建新区块的结果。
[0111] 在一个实施例中,所述记录数据单元92,还用于当接收到携带所述特定用户数字签名的所述记录数据时向其他节点发送所述记录数据,当预定数量的其他节点验证成功、存储所述提交的记录数据、并返回有效确认结果时,向所述特定用户返回提交的记录数据得到确认。
[0112] 在一个实施例中,所述记录数据单元92,还用于基于所述提交的记录数据携带的所述特定用户的数字签名,验证所述记录数据的完整性以及来源为所述特定用户,验证通过时在所述分支节点维护的区块链中写入所述提交的记录数据。
[0113] 在一个实施例中,所述新区块单元93,还用于将从所述区块链网络中新获取的记录数据发送至所述特定用户,所述记录数据供所述特定用户计算得到满足预定条件的随机数,在所述新区块的区块头中填充所述计算出的随机数,并基于所述区块头以及所述新获取的记录数据形成所述新区块。
[0114] 在一个实施例中,所述新区块单元93,还用于当所述区块链中其他节点验证所述随机数满足所述预定条件、并在所对应维护的区块链中写入所述新区块时,向所述特定用户返回创建新区块成功。
[0115] 在一个实施例中,所述新区块单元93,还用于在所述记录数据为虚拟货币的交易清单、且所述区块链中其他节点确认所述新区块时,基于所述新区块中预写入的以所述特定用户的地址为接收地址的交易清单,为所述特定用户获取虚拟货币。
[0116] 在一个实施例中,所述新区块单元93,所述分支节点还包括:认证加密单元94,用于与所述特定用户进行认证,在认证通过时确定所述特定用户为定向提供基于区块链的服务的用户,并与所述特定用户建立用于提供基于区块链的服务的加密通道。
[0117] 再对前述区块链网络以及分支节点所实施的区块链网络应用方法进行说明,区块链网络应用方法可以包括:
[0118] 步骤301,区块链网络的多个节点中具有至少一个分支节点;
[0119] 步骤302,接收到特定用户提交的记录数据时,将所述记录数据发送至所述区块链网络中除所述分支节点的其他节点,根据其他节点针对所述记录数据返回的有效确认结果的数量,向所述特定用户返回记录数据提交结果;
[0120] 步骤303,接收到所述特定用户创建新区块的请求时,将所述新区块发送到所述区块链网络中其他节点进行确认,根据其他节点验证所述新区块的结果向所述特定用户返回创建新区块的结果。
[0121] 在一个实施例中,所述多个节点的至少一个分支节点接收到特定用户提交的记录数据时,将所述记录数据发送至所述区块链网络中其他节点,根据确认所述记录数据的节点的数量向所述特定用户返回记录数据提交结果,包括:
[0122] 接收到携带所述特定用户数字签名的所述记录数据时,向其他节点发送所述记录数据,当所述区块链网络中预定数量的其他节点验证成功并存储所述提交的记录数据时,向所述特定用户返回提交的记录数据得到确认。
[0123] 在一个实施例中,所述方法还包括:
[0124] 基于所述提交的记录数据携带的所述特定用户的数字签名,验证所述记录数据的完整性以及来源为所述特定用户,验证通过时在所述分支节点维护的区块链中写入所述提交的记录数据。
[0125] 在一个实施例中,所述方法还包括:
[0126] 将从所述区块链网络中新获取的记录数据发送至所述特定用户,所述记录数据供所述特定用户计算得到满足预定条件的随机数,在所述新区块的区块头中填充所述计算出的随机数,并基于所述区块头以及所述新获取的记录数据形成所述新区块。
[0127] 在一个实施例中,所述根据其他节点验证所述新区块的结果向所述特定用户返回创建新区块的结果,包括:
[0128] 当其他节点验证所述随机数满足所述预定条件、并在所对应维护的区块链中写入所述新区块时,向所述特定用户返回创建新区块成功。
[0129] 在一个实施例中,所述方法还包括:
[0130] 当所述记录数据为虚拟货币的交易清单、且所述区块链中的其他节点确认所述新区块时,所述分支节点基于所述新区块中预写入的以所述特定用户的地址为接收地址的交易清单,为所述特定用户获取虚拟货币。
[0131] 在一个实施例中,所述方法还包括:
[0132] 与所述特定用户进行认证,在认证通过时确定所述特定用户为定向提供基于区块链的服务的用户,并与所述特定用户建立用于提供基于区块链的服务的加密通道。
[0133] 综上所述,本发明实施例具有以下有益效果:
[0134] 将区块链的一个或多个节点作为的分支节点,通过分支节点向服务范围内的用户(特定应用)提供基于区块链的服务,包括提交记录数据、以及确认创建的新区块,使得区块链服务可以在用户侧实现的效率,表现在:
[0135] 1)对于向区块链网络中提交记录数据来说,用户只需要提交记录数据以及接收记录数据的提交结果,其余的处理有分支节点与其他节点交互实现,用户既不需要存储区块链,也不需要进行其他的计算,实现了节省存储空间和计算资源的效果。
[0136] 2)对于在区块链中创建新区块来说,用户至需要发起创建新区块的请求,后续不需要再进行网络通信(直至接收到确认结果),从而实现了对创建的新区块进行离线确认的技术效果,减少用户侧频繁的网络操作,节省了用户的流量和计算资源,保证用户侧终端的续航性能。
[0137] 3)分支节点与分支节点所提供区块链服务的特定用户进行认证,并在认证通过后使用加密通道进行区块链业务,保证了数据安全。
[0138] 4)对于特定用户提交的记录数据,分支节点由于已经与特定用户进行了认证,即认为特定用户总是可信的,因此可以在维护的区块链中直接写入特定用户提交的记录数据,在区块链网络中其他节点确认记录数据时可以理解向特定用户返回确认结果(而不必等待写入分支节点的区块链中),进一步提升了为特定用户确认交易的效率。
[0139] 本领域的技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储通信状态处理装置、随机存取存储器(RAM,Random Access Memory)、只读存储器(ROM,Read-Only Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0140] 或者,本发明上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机通信状态处理装置(可以是个人计算机、服务器、或者网络通信状态处理装置等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储通信状态处理装置、RAM、ROM、磁碟或者光盘等各种可以存储程序代码的介质。
[0141] 以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈