区块链网络服务平台的随机数生成方法及装置、存储介质与流程

文档序号:33171857发布日期:2023-02-04 02:43阅读:17来源:国知局
区块链网络服务平台的随机数生成方法及装置、存储介质与流程

1.本技术涉及区块链技术领域,尤其涉及一种区块链网络服务平台的随机数生成方法及装置、存储介质。


背景技术:

2.生成随机数是一类区块链上的常见需求,如统计总样本中按照某种概率分布采样等,需要提供一种可信的随机数生成机制。由于区块链本身不具有足够的熵,不能在区块链上直接生成随机数种子,因此,需要使用外部数据源生成随机数种子。目前主要有三类链上随机数生成机制:vrf(可验证随机函数)、门限签名机制、分布式cr(commit-reveal,承诺展示)。
3.相关技术中的链上随机数生成机制是先生成随机数种子,然后将该随机数种子进行广播,以利用打包节点对该随机数种子进行打包,最终根据该随机数种子生成随机数,在区块链中的打包节点作恶,即某些攻击节点贿赂打包节点的情况下,打包节点就只选择对自己有利的时机、有利的随机数种子进行打包,导致不能及时根据随机数种子生成随机数,降低了随机数的生成效率。


技术实现要素:

4.为解决上述技术问题,本技术实施例期望提供区块链网络服务平台的随机数生成方法及装置、存储介质,能够提高随机数的生成效率。
5.本技术的技术方案是这样实现的:
6.本技术实施例提供一种区块链网络服务平台的随机数生成方法,所述方法包括:
7.在种子生成节点监测到携带第一随机数种子值的目标区块上链的情况下,利用私钥对所述目标区块中的融合加密种子参数进行解密,得到融合解密种子参数;所述融合加密种子参数为打包节点根据生成的第二随机数种子值和接收到的加密后的第一随机数种子值进行融合加密处理得到的参数;
8.获取所述目标区块的区块参数;
9.根据所述区块参数、所述融合解密种子参数和所述目标区块中携带的第一区块链交易的第一交易参数,得到目标种子参数;所述第一区块链交易为根据所述第一随机数种子值生成的、且广播至所述打包节点中的交易;
10.向验证节点传输所述目标种子参数,以供所述验证节点根据所述目标种子参数生成目标随机数。
11.本技术实施例提供了一种区块链网络服务平台,所述区块链网络服务平台,用于在种子生成节点监测到携带第一随机数种子值的目标区块上链的情况下,利用私钥对所述目标区块中的融合加密种子参数进行解密,得到融合解密种子参数;所述融合加密种子参数为打包节点根据生成的第二随机数种子值和接收到的加密后的第一随机数种子值进行融合加密处理得到的参数;获取所述目标区块的区块参数;根据所述区块参数、所述融合解
密种子参数和所述目标区块中携带的第一区块链交易的第一交易参数,得到目标种子参数;所述第一区块链交易为根据所述第一随机数种子值生成的、且广播至所述打包节点中的交易;向验证节点传输所述目标种子参数,以供所述验证节点根据所述目标种子参数生成目标随机数。
12.本技术实施例提供一种区块链网络服务平台,所述区块链网络服务平台包括:
13.至少一个存储器,用于存储可执行指令;
14.至少一个处理器,用于执行所述至少一个存储器中存储的可执行指令,实现如上述区块链网络服务平台的随机数生成方法。
15.本技术实施例提供一种存储介质,存储有可执行指令,当所述可执行指令被执行时,用于引起处理器执行如上述区块链网络服务平台的随机数生成方法。
16.本技术实施例提供了区块链网络服务平台的随机数生成方法及装置、存储介质,区块链网络服务平台的随机数生成方法包括:在种子生成节点监测到携带第一随机数种子值的目标区块上链的情况下,利用私钥对目标区块中的融合加密种子参数进行解密,得到融合解密种子参数;融合加密种子参数为打包节点根据生成的第二随机数种子值和接收到的加密后的第一随机数种子值进行融合加密处理得到的参数;获取目标区块的区块参数;根据区块参数、融合解密种子参数和目标区块中携带的第一区块链交易的第一交易参数,得到目标种子参数;第一区块链交易为根据第一随机数种子值生成的、且广播至打包节点中的交易;向验证节点传输目标种子参数,以供验证节点根据目标种子参数生成目标随机数。采用上述方法实现方案,区块链网络服务平台利用种子生成节点生成第一随机数种子值,利用打包节点生成第二随机数种子值,根据第一随机数种子值和第二随机数种子值得到融合加密种子参数,使得种子生成节点在随机数种子上链之前,不会了解到打包节点生成的第二随机数种子值,也无法了解到目标区块的区块参数,打包节点也无法了解到种子生成这的私钥,即种子生成节点和打包节点在随机数种子上链之前无法确定出被用于生成随机数的结果是否对自己有利,使得节点不能只选择对自己有利的时机、有利的随机数种子进行打包,即提高了随机数的生成效率。
附图说明
17.图1为本技术实施例提供的区块链网络服务平台的功能架构示意图;
18.图2为本技术实施例提供的资源层通过部署有容器化管理系统而被构建为容器集群200的结构示意图;
19.图3为本技术实施例提供的开发者通过终端300接入区块链网络服务平台100的示意图;
20.图4a至图4q是本技术实施例提供的区块链网络服务平台的各种功能管理页面的显示示意图;
21.图5为本技术实施例提供的示例性的使用区块链网络服务平台部署的区块链网络的结构示意图;
22.图6为本技术实施例提供的示例性的使用区块链网络服务平台进行交易的流程图;
23.图7为本技术实施例提供的一种区块链网络服务平台的随机数生成方法流程图;
24.图8为本技术实施例提供的一种示例性的区块链网络服务平台的随机数生成方法示意图;
25.图9为本技术实施例提供的一种区块链网络服务平台的结构示意图。
具体实施方式
26.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述。应当理解,此处所描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
27.对本发明实施例进行进一步详细说明之前,对本发明实施例中涉及的名词和术语进行说明,本发明实施例中涉及的名词和术语适用于如下的解释。
28.1)区块(block),记录一段时间内交易所更新的账本数据的数据结构,被标记上时间戳和之前一个区块的独特标记(例如数字指纹),区块经过区块链网络中节点的共识验证后,会被追加到区块链的末尾成为新的区块。
29.2)区块链(blockchain),区块以顺序相连的方式组合成的一种链式数据结构,在每个区块中引用前一个区块或者其子集的哈希值,从而以密码学的方式保证所记录交易的不可篡改和不可伪造。
30.3)账本(ledger),区块链网络中以账户为维度所记录的数据的总和,包括账本数据、账本状态、账本状态证明和区块索引等元素。
31.4)共识(consensus),是区块链网络中的一个过程,用于在涉及的多个节点之间对交易结果达成一致,实现共识的机制包括工作量证明(pow)、权益证明(pos,proof of stake)、股份授权证明(dpos,delegated proof-of-stake)、消逝时间量证明(poet,proof of elapsed time)等。
32.5)智能合约(smart contracts),也称为链码(chaincode),部署在区块链网络中的根据条件而触发执行的程序链码运行在一个安全的容器中,来初始化和管理账本数据和账本状态。
33.下面说明实现本发明实施例的区块链网络的示例性的功能架构,参见图1,图1本发明实施例提供的区块链网络的功能架构示意图,包括应用层101、共识层102、网络层103、数据层104和资源层105,下面分别进行说明。
34.资源层105封装各种可用的计算资源和存储资源,例如计算机、服务器/集群和云中的计算资源和存储资源,进行抽象并向数据层104提供统一的接口以屏蔽实现资源层105的底层硬件的差异性。
35.计算资源包括各种形式的处理器,例如中央处理器(cpu)、应用专用集成电路(asic,application specific integrated circuit)、专用集成电路和现场可编程门阵列(fpga,field-programmable gate array)的各种形式的处理器。
36.存储资源包括各种易失性存储器和非易失性存储器等各种类型的存储介质。其中,非易失性存储器可以是只读存储器(rom,read only memory)、可编程只读存储器(prom,programmable read-only memory)。易失性存储器可以是随机存取存储器(ram,random access memory),其用作外部高速缓存。
37.资源层105的计算资源和存储资源可以被映射为区块链网络中各种类型的节点,
实现本发明实施例的存储介质存储了用于实现本发明实施例的区块链网络部署方法的可执行指令,一旦被部署到节点的可执行指令被执行,实现节点的底层资源(例如各种类型的处理器)将实现区块链网络中各种类型的节点的部署、以及执行各种类型节点的功能,从而实现针对业务过程中的交易的账本、以及基于账本的各种应用。
38.作为示例,可执行指令可以采用软件(包括系统程序和应用程序)、软件模块、脚本、插件等的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件或者适合在计算环境中使用的其它单元。
39.数据层104封装了实现账本的各种数据结构,包括以文件系统实现的账本数据,以数据库形式实现的账本状态和存在性证明。
40.网络层103封装了点对点(p2p)网络协议、数据传播机制和数据验证机制、接入和认证机制和业务主体身份。p2p网络协议实现区块链网络中节点之间的通信,数据传播机制保证了交易/交易结果在区块链网络中的传播,数据验证机制用于基于加密学方法(例如数字证书、数字签名、公/私钥对)实现节点之间传输数据的可靠性;接入和认证机制用于基于业务主体身份对终端的接入和认证进行管理。
41.共识层102封装了区块链中传播的交易结果达成一致性的机制,包括pos、pow和dpos等,支持共识机制的可插拔。
42.应用层101封装了区块链网络能够实现的各种业务,包括交易结算、溯源和存证等。
43.参见图2,是本发明实施例提供的资源层通过部署有容器化管理系统而被构建为容器集群200的结构示意图,向资源层提供资源的机器中通过部署容器化管理系统的相应组件而形成管理节点(master server)200和服务节点300(node)两类节点,管理节点用于管理容器在服务节点中的调度和运行,服务节点主要用于运行各种容器,提供区块链网络中的各种应用的隔离运行环境,例如,用于运行链码的链码容器,用于运行节点(即区块链网络中各种类型的节点的代码)代码的节点容器等,下面分别进行说明。
44.管理节点(master server)200负责管理集群,以服务(service)的形式对外提供集群的资源数据访问入口,管理节点包括几个示例性的组件。
45.1)状态组件(etcd),用于保存整个集群的状态。
46.2)应用程序接口服务(api server)组件,用于提供了资源操作的唯一入口,并提供认证、授权、访问控制、api注册和发现等机制。
47.3)调度(scheduler)组件,用于负责资源的调度,按照预定的调度策略将容器调度到合适的节点上运行。服务节点所运行的容器中共享机器(也就是部署服务节点组件的机器)中同一组资源的容器组(pod)为调用的最小单位,对于区块链网络的应用来说,可以通过一个或多个的容器组来实现,容器组中的容器共享的资源包括:应用程序命名空间、网络命名空间、主机名和存储卷(volume)。
48.以共享存储卷为例,当节点上部署共享文件系统组件时,例如网络文件系统(nfs,network file system)、集群文件系统(glusterfs)、ceph文件系统(cephfs),调度组件就能够存储卷上所挂载的容器组轻易地调度(挂载)到其他机器(节点)的存储卷中。
49.4)控制管理(controller manager)组件,用于负责监控/维护集群的状态,通过应
用程序接口服务组件提供的接口,实时监控整个集群的每个资源对象的当前状态,当发生各种故障导致系统状态发生变化时,会修复到期望状态。
50.5)副本控制器(rc,replication controller)组件,控制一定时间内总有一定数量的pod副本的运行;例如正在运行的pod副本超出设定值,则关闭部分pod副本;如果pod副本少于设定值则创建新的pod副本。
51.6)部署控制器(deployment controller)组件,用于管理维护容器集群找中的资源对象-部署(deployment)对象,关联部署对象和副本控制器,在部署对象中为容器组和副本控制器提供声明式更新,用于声明容器组和副本控制器的目标状态,从而当部署对象更新时,控制实现副本控制器和容器组的更新。
52.服务节点300包括以下示例性的组件。
53.1)容器引擎(记为docker),用于来负责所有具体的镜像下载和容器运行。
54.2)守护进程组件(记为kubelet),用于负责维护容器的生命周期(创建、启动和停止),同时也负责存储卷和容器网络接口(cni)的管理。
55.以存储卷的管理为例,守护进程组件通过节点中部署的共享文件系统的组件,例如网络文件系统(nfs,network file system)、集群文件系统(glusterfs)、ceph文件系统(cephfs),将一个容器组中的各个容器挂载到相同的存储卷上,使各个容器使用相同的存储卷存储在运行过程中所生产的数据,存储卷中的数据可以被同一个容器组的任一容器访问。
56.3)负载均衡组件(记为proxy),负责为service提供cluster内部的服务发现和负载均衡。
57.基于图2示出的集群,部署一个区块链网络的应用的镜像被封装到容器组(在下面的示例中称为目标pod)并运行在节点(在下面的示例中称为目标node)的示例性过程如下所述。
58.首先,容器集群200的管理工具(kubectl)提交一个创建副本控制器(rc,replication controller)的请求,其中包括目标pod的定义;目标pod需要运行的副本数量;要监控的目标pod标签(lable)等信息。
59.接下来,请求通过api server被写入etcd中,此时controller manager通过api server的监听资源变化的接口监听到这个rc事件,发现当前集群中还没有它所对应的pod实例,于是根据rc里的pod模板定义生成一个pod对象,通过api server写入etcd。
60.紧接着,rc事件被scheduler发现,它立即执行一个调度流程:为这个新pod选定一个落户的节点,然后通过api server将这一结果写入到etcd中,随后,目标node上运行的kubelet进程通过api server监测到这个新pod,并按照它的定义,启动新pod,直到pod的生命结束。
61.随后,kubectl提交一个新的映射到目标pod的service的创建请求,controller manager会通过label查询到相关联的pod实例,然后生成service的端点(endpoints)信息(包括地址和端口),并通过api server写入到etcd中;容器集群中所有node上运行的proxy进程通过api server查询、并监听service对象与其对应的endpoints信息,建立一个软件方式的负载均衡器来实现service访问到后端pod的流量转发功能。
62.结合上文可知,实现本发明实施例的区块链网络服务平台通过在资源层部署容器
集群、并运行封装有区块链网络应用的容器而实现,由此,实现本发明实施例的区块链网络可以提供为存储器和处理器的形式,在存储器中存储有可执行指令,当可执行指令被处理器执行时,在运行处理器和存储器的多个节点上建立了容器集群,通过在容器中运行封装的应用,来实现本发明实施例的区块链服务网络平台中的链码安装方法。
63.实现本发明实施例的区块链网络平台通过各种方式与开发者连接,并提供各种图形化的方式以进行区块链网络的部署和管理,下面进行说明。
64.参见图3,图3是本发明实施例提供的开发者通过终端300接入区块链网络服务平台100的示意图,开发者终端300的sdk/web 320接口连接区块链网络服务平台100中的数据层104相应的sde/web接口,支持在开发者的终端300本地以远程的方式部署支撑特定业务的区块链网络,在终端300的图形界面310中显示区块链网络服务平台100的各种功能的管理页面,包括容器集群的创建和新的容器集群的接入、存储资源的管理、一键部署区块链网络、链码管理(运行状态查看)、应用商店管理等。
65.参见图4a至图4q,是本发明实施例提供的区块链网络服务平台的各种功能管理页面的显示示意图,将结合图4a至图4q示例性说明如图3中开发者终端300的图形界面310中显示的功能管理页面。
66.图4a示出了区块链网络服务平台100的状态查看页面,在状态查看页面中区块链网络的运行状态,例如cpu使用、内存使用、资源(节点)使用的情况。
67.图4b示出了区块链网络服务平台100的一键部署的控制台页面,支持开发者设置区块链网络的基本信息(包括区块域名、版本号)和组织(包括组织名、节点数量、用户数量等),采用默认值来设置高级选项,包括排序节点类型、通道名称和链码名称等。
68.图4c示出了的区块链网络服务平台100的资源层105的资源管理的控制台页面,其中显示了开发者通过区块链网络服务平台100可部署的集群的相关信息,包括是否连接的状态,cpu/内存使用情况等。
69.在图4d中支持添加用于支撑去区块链网络的容器集群,录入集群名称;在创建集群的功能选项被触发后将进入创建页面。
70.在图4e中示出了区块链网络服务平台100的查询集群的控制台页面,当查询集群的功能按钮被触发后,将进入集群列表页面,支持进行添加集群、查询集群、删除集群、编辑集群的操作。
71.在图4f中示出了区块链网络服务平台100的存储管理的控制台页面,当存储管理的功能按钮被触发时,将进入存储管理列表页,显示集群中已创建的存储项目,其中包含存储查询及删除功能。
72.在图4g中示出了区块链网络服务平台100的存储详情的控制台页面,在图4h中显示存储的详情,并支持对存储进行动态存储空间扩容。
73.在图4i中示出了区块链网络服务平台100的添加存储的控制台页面,支持对添加的存储名称和节点进行设置,根据设置将节点添加到容器集群中,并在图4j中显示添加存储后的详情信息,包括容器集群的节点的列表。
74.在图4k中示出了区块链网络服务平台100的超级账本的控制台页面,显示了部署区块链网络所使用的超级账本的名称、网络版本、状态和创建时间的信息。
75.在图4l中示出了区块链网络服务平台100的超级账本的一键部署的控制台页面,
提供了针对超级账本部署的基本信息的配置项目,以及采用默认值的高级配置项,例如排序节点类型、通道、默认链码和初始化参数等。
76.在图4m/n中示出了区块链网络服务平台100的链码的上传/安装的控制台页面,在上传的控制台页面中提供了链码名和版本号的设置项目;在安装的控制台页面中提供了链码版本、初始化参数、组织和节点的配置项目。
77.在图4o中示出了区块链网络服务平台100的网络详情的控制台页面,支持查看不同通道的组织成员、区块高度、交易数量和合约数量等信息,还可以显示所查看通道的组织名称、通道内节点名称、通道内链码名称等信息。
78.在图4p中示出了区块链网络服务平台100的链码查询的控制台页面,支持使用网络名称、链码名称、链码参数、账本名称和链码函数等方式配合查询链码,查询的维度包括状态、消息和数据。
79.在图4q中示出了区块链网络服务平台100的应用商店的控制台页面,支持开发者选择需要部署的应用,一旦有应用被确定部署到区块链网络,将通过复用应用的镜像的方式完成到资源层105的容器集群的快速部署。
80.参见图5,为使用区块链网络服务平台部署的区块链网络的一个示例性结构,应用程序从ca获取合法的身份证书来加入到网络内的应用通道。发起正式交易前,需要先构造交易提案(proposal)提交给组织1和组织2中的背书节点进行背书;客户端收集到足够(数量根据背书策略决定)的背书支持后,可以利用背书构造一个合法的交易请求(携带背书节点的背书),发给排序服务中的排序节点(orderer)进行排序,以是将交易封装形成区块。
81.参见图6,为应用程序与区块链网络的交易流程,其中,交易流程中客户端和各个节点的功能如下:
82.客户端(应用程序):使用sdk来跟区块链网络进行交互。首先,客户端从ca获取合法的身份证书来加入到网络内的应用通道。发起正式交易前,需要先构造交易提案(proposal)提交给背书节点进行背书;客户端收集到足够(数量根据背书策略决定)的背书支持后,可以利用背书构造一个合法的交易请求(携带背书节点的背书),发给排序节点(orderer)进行排序,以是将交易封装形成区块。客户端还可以通过事件机制来监听网络中消息,来获知交易是否被成功接收。
83.背书节点(endorser):主要提供方法供客户端调用,完成对交易提案的背书(签名)处理。收到来自客户端的交易提案后,首先进行合法性和acl权限检查,检查通过则模拟运行交易(交易中会执行需要执行的链码名称和参数,执行交易,实质就是执行交易中所指定的链码),对交易导致的状态变化(以读写集形式记录,包括所读状态的键和版本,所写状态的键值)进行背书(也就是进行数字签名)并返回客户端是否予以支持的结果。
84.排序节点(orderer):接收包含背书签名的交易,对未打包的交易进行排序生成区块,广播给peer节点。
85.主节点(leader peer):和排序节点通信的节点,负责从排序节点处获取最新的区块并在区块链网络的内部同步。
86.记账节点(committer):维护区块链和账本的结构(包括状态db、历史db、索引db等)。该节点会定期地从排序节点获取排序后的批量交易区块结构,对这些交易检查(包括交易消息结构、签名完整性、是否重复、读写集合版本是否匹配等)。检查通过后执行合法的
交易,将结果写入账本,同时构造新的区块。
87.需要说明的是,所有的peer节点都是记账节点,负责验证从排序节点区块里的交易,维护状态数据和账本的副本。部分peer节点会执行交易并对结果进行签名背书,充当背书节点的角色。背书节点是动态的角色,是与具体链码绑定的。在链码容器中的每个链码在实例化的时候都会设置背书策略,指定哪些节点对交易背书后才是有效的。也只有在应用程序向它发起交易背书请求的时候才是背书节点,其他时候就是普通的记账节点,只负责验证交易并记账。
88.实施例一
89.本技术实施例提供了一区块链网络服务平台的随机数生成方法,图7为本技术实施例提供的一种区块链网络服务平台的随机数生成方法流程图一,如图7所示,随机数生成方法可以包括:
90.s101、在种子生成节点监测到携带第一随机数种子值的目标区块上链的情况下,利用私钥对目标区块中的融合加密种子参数进行解密,得到融合解密种子参数;融合加密种子参数为打包节点根据生成的第二随机数种子值和接收到的加密后的第一随机数种子值进行融合加密处理得到的参数。
91.本技术实施例提供的一种随机数生成方法适用于生成随机数的场景下。
92.在本技术实施例中,融合加密种子参数为打包节点根据生成的第二随机数种子值和接收到的加密后的第一随机数种子值进行融合加密处理得到的参数。
93.在本技术实施例中,第一随机数种子值为种子生成节点生成的种子值。需要说明的是,种子生成节点可以是在接收到随机数种子生成指令的情况下,就生成第一随机数种子值;种子生成节点也可以是在预设时间段内,生成第一随机数种子值;具体的的种子生成节点生成第一随机数种子值的情况,可以根据实际情况进行确定,本技术实施例对此不作限定。
94.需要说明的是,种子生成节点生成第一随机数种子值的方式,可以为利用开源伪随机算法来生成第一随机数种子值;也可以利用其它的方式生成第一随机数种子值;具体的生成第一随机数种子值的方式可以根据实际情况进行确定,本技术实施例对此不作限定。
95.根据实际情况进行确定,本技术实施例对此不作限定。
96.在本技术实施例中,种子生成节点为区块链中的节点,具体的,种子生成节点为目标区块链中的节点。种子生成节点用于生成随机数种子值。
97.在本技术实施例中,种子生成节点在根据第一随机数种子值生成第一区块链交易、并将携带第一随机数种子值的第一区块链交易广播给打包节点之后,种子生成节点就开始监测目标区块链上是否有新的区块上链,并检测该新的区块中是否存在第一随机数种子值,在新的区块中存在第一随机数种子值的情况下,则种子生成节点就监测到了目标区块上链了。
98.在本技术实施例中,私钥也是种子生成节点生成的。种子生成节点在生成第一随机数种子值的情况下,种子生成节点同时也生成了一对非对称加密公钥、私钥对。
99.在本技术实施例中,融合加密种子参数是利用公钥对融合解密种子参数进行加密,得到的参数。即融合解密种子参数为明文,融合加密种子参数为密文。
100.在本技术实施例中,在种子生成节点监测到携带第一随机数种子值的目标区块上链的情况下,利用私钥对目标区块中的融合加密种子参数进行解密,得到融合解密种子参数之前,种子生成节点还会生成第一随机数种子值;并创建私钥和公钥;利用预设哈希处理方式和公钥对第一随机数种子值进行加密处理,得到第一加密种子参数;确定打包第一加密种子参数的打包参数范围;根据打包参数范围、第一加密种子参数和公钥,生成第一区块链交易;向打包节点广播第一区块链交易,以供打包节点根据第一区块链交易得到融合解密种子参数,并将融合解密种子参数打包至目标区块,上链目标区块至目标区块链。
101.需要说明的是,公钥和私钥为一对非对称加密密钥。
102.在本技术实施例中,预设哈希处理方式可以为sha256哈希处理方式;预设哈希处理方式也可以为sha1;预设哈希处理方式还可以为md5哈希处理方式;具体的预设哈希处理方式可以根据实际情况进行确定,本技术实施例对此不作限定。
103.在本技术实施例中,第一随机数种子值为明文,第一加密种子参数为密文。
104.在本技术实施例中,打包参数范围包括打包块高阈值和至少一个打包节点。具体的,种子生成节点确定打包参数范围的方式可以为种子生成节点确定第一加密种子参数所属的业务类型,根据该业务类型确定出对应的打包参数范围;种子生成节点也可以根据打包节点的打包质量情况,确定打包参数范围;种子生成节点还可以以其他的方式确定出打包参数范围;具体的种子生成节点确定出打包参数范围的方式可以根据实际情况进行确定,本技术实施例对此不作限定。
105.需要说明的是,打包块高阈值为第一加密种子参数最迟应该在哪个块高之前被打包上链,即确定第一加密种子参数最迟的打包块高期限,也即第一随机数种子值的生命周期开始时刻。至少一个打包节点,可以为打包节点的白名单,白名单中包括种子生成节点所选择的可以执行打包任务的区块链共识节点的节点信息(如节点id)。
106.需要说明的是,种子生成节点根据第一加密种子参数所属的业务类型确定出对应的打包参数范围的过程,可以为种子生成节点确定该业务所关联的打包节点,根据该打包节点来确定对应的打包参数范围。
107.在本技术实施例中,种子生成节点向打包节点广播第一区块链交易的方式为现有技术方式;具体的本技术实施例不进行限定。
108.在本技术实施例中,种子生成节点向打包节点广播第一区块链交易的过程,可以为种子生成节点将第一区块链交易广播至打包节点的交易池中,以供打包者进行候选打包。
109.需要说明的是,第一区块链交易可以为tx1,tx1的hash为tx1hash。其中,tx1hash为区块链创建交易时自动生成的。第一区块链交易中携带tx1hash信息。
110.在本技术实施例中,种子生成节点利用预设哈希处理方式和公钥对第一随机数种子值进行加密处理,得到第一加密种子参数的过程,包括:利用预设哈希处理方式对第一随机数种子值进行处理,得到第二哈希参数;利用公钥对第二哈希参数进行加密,得到第一加密种子参数。
111.在本技术实施例中,种子生成节点利用预设哈希处理方式对第一随机数种子值进行处理,得到第二哈希参数的方式,可以为种子生成节点利用预设哈希处理方式,生成第一随机数种子值的哈希值,从而得到第二哈希参数。
112.示例性的,若第一随机数种子值为g,预设哈希处理方式为sha256,则使用sha256哈希生成算法生成g的哈希值g
hash
,即该g
hash
为第二哈希参数。
113.在本技术实施例中,种子生成节点利用公钥对第二哈希参数进行加密,得到第一加密种子参数的过程,可以为种子生成节点利用预设加密算法,使用公钥对第二哈希参数进行非对称加密,从而得到第一加密种子参数。
114.示例性的,g
pub
为公钥,g
hash
为第二哈希参数,预设加密算法可以为encrypt为非对称加密函数,则利用预设加密算法,使用公钥对第二哈希参数进行非对称加密,从而得到第一加密种子参数g
enc
的方式如公式(1)所示:
115.g
enc
=encrypt(g
hash
,g
pub
)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1)
116.需要说明的是,该预设加密算法需要满足条件:对加密后的密文的运算,需要在数值上,等于对加密前的明文的运算。其中,明文和密文的运算方式可以不同。具体的表述方式如公式(2)所示:
[0117][0118]
其中,为运算算子(即运算方式),明文和密文的运算方式可以不同也可以相同,且每一个encrypt都对应一个decrypt为其逆运算,可以将密文解为明文。
[0119]
示例性的,明文和密文的运算算子(运算方式)可以均为乘法,如:encrypt为明文的e次幂,decrypt为对密文取e对数;易知,此组合必然满足公式(3)-公式(4):
[0120]
encrypt(a)=ae,decrypt(encrypt(a))=a
ꢀꢀꢀꢀꢀꢀꢀ
(3)
[0121]
encrypt(a
×
b)=abe=a
ebe
=encrypt(a)
×
encrypt(b)
ꢀꢀꢀꢀꢀꢀ
(4)
[0122]
示例性的,预设加密算法也可以为encrypt(a)=gar
an
加密算法;具体的可以根据实际情况进行确定,本技术实施例对此不作限定。
[0123]
在本技术实施例中,种子生成节点根据打包参数范围、第一加密种子参数和公钥,生成第一区块链交易的过程,包括:种子生成节点根据打包参数范围、第一加密种子参数和公钥,生成初始区块链交易;种子生成节点利用私钥对初始区块链交易进行签名,得到第一区块链交易。
[0124]
在本技术实施例中,种子生成节点发起区块链交易,然后将打包参数范围、第一加密种子参数和公钥添加至区块链交易的附带字段中,得到了初始区块链交易。
[0125]
在本技术实施例中,种子生成节点向打包节点广播第一区块链交易之后,区块链网络服务平台就利用打包节点根据第一区块链交易中携带的打包参数范围,确定是否打包第一区块链交易中的第一加密种子参数;在确定打包第一加密种子参数的情况下,生成第二随机数种子值;并利用第一区块链交易中的公钥和预设哈希处理方式对第二随机数种子值进行处理,得到第二加密种子参数;根据第一加密种子参数和第二加密种子参数,得到融合加密种子参数;根据融合加密种子参数和第一区块链交易,生成第二区块链交易;将第二区块链交易写入目标区块,并将目标区块上链至目标区块链。
[0126]
在本技术实施例中,打包节点生成第二随机数种子值的方式与种子生成节点生成第一随机数种子值的方式相同;具体的打包节点生成第二随机数种子值的方式,可参照种子生成节点生成第一随机数种子值的方式,此处不进行具体阐述。
[0127]
在本技术实施例中,打包节点根据第一加密种子参数和第二加密种子参数,得到
融合加密种子参数的过程,可以为:按照预设加密算法对应的密文域的运算方式对第一加密种子参数和第二加密种子参数进行处理,得到融合加密种子参数。
[0128]
在本技术实施例中,打包节点对两份种子的密文第二加密种子参数(u
enc
)以及第一加密种子参数(g
enc
),按照预设加密算法对应的密文域的运算方式(密文域算子)进行运算(如公式(5)所示),即可得到合并种子密文(融合加密种子参数s
enc
)。如此,打包节点即可在不接触明文(第一随机数种子值)的前提下将密文(u
enc
和g
enc
)完成合并。
[0129][0130]
需要说明的是,由于该预设加密算法满足条件:对加密后的密文的运算,需要在数值上,等于对加密前的明文;使得此密文域的运算可以经明文域运算后再加密得出,便于后续验证节点进行验证,以在验证通过的情况下,生成目标随机数。
[0131]
在本技术实施例中,打包节点发起新的区块链交易,然后将融合加密种子参数和第一区块链交易添加至新的区块链交易的附带字段中,得到了第二区块链交易。
[0132]
需要说明的是,第二区块链交易可以为tx2,tx2的hash为tx2hash。其中,tx2hash为区块链创建交易时自动生成的。第二区块链交易中携带tx2hash信息。
[0133]
需要说明的是,目标区块为待添加第二区块链交易信息的区块,目标区块链为待添加目标区块的区块链。
[0134]
在本技术实施例中,打包节点对融合加密种子参数(s
enc
),及种子生成节点所创建的交易的hash:tx1hash,一起附带到自己发出的另一笔交易(第二区块链交易,tx2)里,和之前的交易(第一区块链交易,tx1)一起打到一个区块(目标区块)中,并进行上链至目标区块链。
[0135]
表(1)示出了tx1交易(第一区块链交易)的附带信息;表格(2)示出了tx2交易(第二区块链交易)的附带信息;这两笔交易最后都会由打包节点上链到一个块(目标区块)里。
[0136]
表(1)
[0137]
一般交易信息附带信息g
enc g
pub bh
max u
set
tx1hashtx1sign
[0138]
表(2)
[0139]
一般交易信息附带信息s
enc tx1的tx1hashtx2hashtx2sign
[0140]
需要说明的是:这两笔交易(tx1和tx2)是一对一的,若打包节点在这个阶段处理了多于一笔的初始化请求,则需对每个请求都要对应一笔打包上链的新增交易。
[0141]
在本技术实施例中,打包节点将第二区块链交易写入目标区块,并将目标区块上链至目标区块链的过程为现有技术中的过程,具体的本技术实施例对此不作限定。
[0142]
在本技术实施例中,打包节点进行交易打包时,会看到种子生成者所贴出种子密文(第一加密种子参数,g
enc
)、公钥g
pub
,以及打包块高期限bh
max
(bh
max
为打包参数范围中携
带的参数)。
[0143]
需要说明的是,目标区块链上不止一个打包节点,不同的打包节点,对不同的种子值(第一随机数种子值)可能会有偏好,因此不是每个打包节点都会去执行打包、或立即执行打包。本技术为了防止打包节点等待太久才去打包,限制打包节点必须要在bh
max
的块高期限内执行打包,即保证这笔交易(第一区块链交易)上链的块高不晚于bh
max
,否则无法通过验证。打包节点判断能否在bh
max
期限内完成打包、且该打包节点属于u
set
(至少一个打包节点(u
set
)为打包参数范围中携带的参数)内的成员。
[0144]
在本技术实施例中,打包参数范围包括打包块高阈值和至少一个打包节点;区块链网络服务平台利用打包节点根据第一区块链交易中携带的打包参数范围,确定是否打包第一区块链交易中的第一加密种子参数的过程,包括:获取交易池中未完成打包的剩余区块链交易的交易数量;确定交易打包速度,以及当前块高参数;根据当前块高参数、交易打包速度和交易数量,确定对剩余区块链交易打包完成时的第一块高参数;在第一块高参数小于或者等于打包块高阈值、且至少一个打包节点包括打包节点的情况下,确定打包第一加密种子参数;在第一块高参数大于打包块高阈值、或者至少一个打包节点不包括打包节点的情况下,确定不打包第一加密种子参数。
[0145]
在本技术实施例中,交易池中存有打包节点未完成打包的区块链交易,通过统计未完成打包的区块链交易的数量,即可得到交易数量。
[0146]
需要说明的是,交易池与打包节点一一对应,即一个交易池对应一个打包节点。
[0147]
示例性的,打包节点a对应的交易池为交易池a,通过统计交易池a中未完成打包的区块链交易的数量,即可得到打包节点a对应的交易数量,以根据该交易数量确定打包节点a是否可以打包第一区块链交易中的第一加密种子参数。
[0148]
在本技术实施例中,交易打包速度可以根据打包节点历史上平均完成一次打包所消耗的交易数量进行确定。如打包节点历史上平均一次打包可以消耗5~10个交易。
[0149]
在本技术实施例中,当前块高参数为打包节点在接收到第一区块链交易时,该打包节点的块高信息。
[0150]
在本技术实施例中,根据根据当前块高参数、交易打包速度和交易数量,确定对剩余区块链交易打包完成时的第一块高参数的过程,可以为利用交易数量除以打包速度,得到打包剩余区块链交易所需的块高需求参数;利用块高需求参数和当前块高参数的和得到第一块高参数。
[0151]
示例性的,当前的块高为13,打包块高阈值(bhmax)为50,交易池总共积压了100笔交易(即交易数量为100),打包者历史上平均一次打包可以消耗5~10个交易(打包速度为5~10),那么预计块高(第一块高参数)即为13+(100/10)~13+(100/5)=23~33,由于第一块高参数(23~33)小于打包块高阈值(50),则需要进一步确定至少一个打包节点是否包括打包节点,若包括,则确定打包第一加密种子参数,若不包括,则确定不打包第一加密种子参数。
[0152]
在本技术实施例中,区块链网络服务平台利用第一区块链交易中的公钥和预设哈希处理方式对第二随机数种子值进行处理,得到第二加密种子参数的过程,包括:利用预设哈希处理方式对第二随机数种子值进行处理,得到第三哈希参数;利用公钥对第三哈希参数进行加密,得到第二加密种子参数。
[0153]
在本技术实施例中,利用预设哈希处理方式对第二随机数种子值进行处理,得到第三哈希参数的过程,可以为利用预设哈希处理方式,生成第二随机数种子值的哈希值,从而得到第三哈希参数。
[0154]
示例性的,若第二随机数种子值为u,预设哈希处理方式为sha256,则使用sha256哈希生成算法生成u的哈希值u
hash
,即该u
hash
为第三哈希参数。
[0155]
需要说明的是,打包节点在利用预设哈希处理方式对第二随机数种子值进行处理,得到第三哈希参数之前,打包节点就和种子生成节点约定了预设哈希处理方式,即打包节点生成第三哈希参数所涉及的预设哈希处理方式与种子生成节点生成第二哈希参数所涉及的预设哈希处理方式相同。
[0156]
在本技术实施例中,利用公钥对第三哈希参数进行加密,得到第二加密种子参数的方式,可以为利用预设加密算法,使用公钥对第三哈希参数进行非对称加密,从而得到第二加密种子参数。
[0157]
需要说明的是,利用预设加密算法,使用公钥对第三哈希参数进行非对称加密,从而得到第二加密种子参数的方式,与种子生成节点利用预设加密算法,使用公钥对第二哈希参数进行非对称加密,从而得到第一加密种子参数的方式相同。
[0158]
示例性的,示例性的,g
pub
为公钥,u
hash
为第三哈希参数,预设加密算法可以为encrypt为非对称加密函数,则利用预设加密算法,使用公钥对第三哈希参数进行非对称加密,从而得到第二加密种子参数u
enc
的方式如公式(6)所示:
[0159]uenc
=encrypt(u
hash
,g
pub
)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(6)
[0160]
在本技术实施例中,区块链网络服务平台在确定打包第一加密种子参数的情况下,生成第二随机数种子值的过程,包括:在确定打包第一加密种子参数的情况下,确定目标打包块;利用目标打包块生成第二随机数种子值。
[0161]
需要说明的是,目标打包块的块高小于或者等于打包块高阈值。
[0162]
示例性的,若第一块高参数为33,打包块高阈值为50,则第一块高参数与打包块高阈值之间存在50-33=17个打包块,打包节点可以从这17个打包块中自行确定目标打包块,以在该目标打包块中打包该第一加密种子参数。
[0163]
在本技术实施例中,在打包节点中存在多个打包块可以打包第一加密种子参数的情况下,打包节点可以随机选择一个打包块为目标打包块。打包节点也可以以其他的方式从多个打包块中确定目标打包块,具体的打包节点从多个打包块中确定目标打包块的过程可以根据实际情况进行确定,本技术实施例对此不作限定。
[0164]
在本技术实施例中,目标打包块生成第二随机数种子值的方式与种子生成节点生成第一随机数种子值的方式相同,如利用开源伪随机算法来生成第二随机数种子值;也可以利用其它的方式生成第二随机数种子值;具体的生成第二随机数种子值的方式可以根据实际情况进行确定,本技术实施例对此不作限定。
[0165]
s102、获取目标区块的区块参数。
[0166]
在本技术实施例中,区块链网络服务平台中的种子生成节点在利用私钥对目标区块中的融合加密种子参数进行解密,得到融合解密种子参数之后,种子生成节点就获取目标区块的区块参数。
[0167]
需要说明的是,目标区块的区块参数为该目标区块的默克尔树的树根的交易
hash。
[0168]
s103、根据区块参数、融合解密种子参数和目标区块中携带的第一区块链交易的第一交易参数,得到目标种子参数;第一区块链交易为根据第一随机数种子值生成的、且广播至打包节点中的交易。
[0169]
在本技术实施例中,种子生成节点获取目标区块的区块参数之后,种子生成节点就根据区块参数、融合解密种子参数和目标区块中携带的第一区块链交易的第一交易参数,得到目标种子参数。
[0170]
在本技术实施例中,第一交易参数为第一区块链交易的哈希值,即tx1hash。
[0171]
在本技术实施例中,种子生成节点根据区块参数、融合解密种子参数和目标区块中携带的第一区块链交易的第一交易参数,得到目标种子参数的过程,包括:对区块参数和第一交易参数进行拼接,得到第一拼接参数;利用预设哈希处理方式对第一拼接参数进行处理,得到第一哈希参数;对第一哈希参数和融合解密种子参数进行拼接,得到第二拼接参数;利用预设哈希处理方式对第二拼接参数进行处理,得到目标种子参数。
[0172]
在本技术实施例中,种子生成节点对区块参数和第一交易参数进行拼接,得到第一拼接参数的方式,可以为在区块参数的后面添加第一交易参数,从而得到第一拼接参数;也可以为在第一交易参数信息的后面添加区块参数从而得到第一拼接参数;还可以为利用其他的方式对区块参数和第一交易参数进行拼接,得到第一拼接参数;具体的对区块参数和第一交易参数进行拼接,得到第一拼接参数的方式可以根据实际情况进行确定,本技术实施例对此不作限定。
[0173]
在本技术实施例中,种子生成节点利用预设哈希处理方式对第一拼接参数进行处理,得到第一哈希参数的过程,可以为种子生成节点利用预设哈希处理方式,生成第一拼接参数的哈希值,从而得到第一哈希参数。
[0174]
在本技术实施例中,种子生成节点对第一哈希参数和融合解密种子参数进行拼接,得到第二拼接参数的方式,可以为在第一哈希参数的后面添加融合解密种子参数,从而得到第二拼接参数;也可以为在融合解密种子参数的后面添加第一哈希参数,从而得到第二拼接参数;还可以利用其他的方式对第一哈希参数和融合解密种子参数进行拼接,得到第二拼接参数;具体的对第一哈希参数和融合解密种子参数进行拼接,得到第二拼接参数的方式可以根据实际情况进行确定,本技术实施例对此不作限定。
[0175]
在本技术实施例中,利用预设哈希处理方式对第二拼接参数进行处理,得到目标种子参数的方式,可以为种子生成节点利用预设哈希处理方式,生成第二拼接参数的哈希值,从而得到目标种子参数。
[0176]
在本技术实施例中,种子生成节点不断监控目标区块链,若发现自己的交易(第一区块链交易)上链并出现在了某个区块(目标区块)中,首先使用私钥g
priv
对融合加密种子参数(s
enc
)进行解密,得到融合解密种子参数(合并种子原文s),其中,s=decrypt(s
enc
,g
priv
)。将融合解密种子参数代入公式(7),即可得到目标种子参数(种子值f);
[0177]
f=hash(hash(默克尔树根hash,txhash),s)
ꢀꢀꢀꢀꢀꢀ
(7)
[0178]
需要说明的是,默克尔树根hash为目标区块的区块参数;txhash为第一交易参数。即种子生成节点对区块参数和第一交易参数进行拼接,得到第一拼接参数;利用预设哈希处理方式对第一拼接参数进行处理,得到第一哈希参数;对第一哈希参数和融合解密种子
参数进行拼接,得到第二拼接参数;利用预设哈希处理方式对第二拼接参数进行处理,得到目标种子参数。
[0179]
s104、向验证节点传输目标种子参数,以供验证节点根据目标种子参数生成目标随机数。
[0180]
在本技术实施例中,种子生成节点根据区块参数、融合解密种子参数和目标区块中携带的第一区块链交易的第一交易参数,得到目标种子参数之后,种子生成节点就向验证节点传输目标种子参数。
[0181]
在本技术实施例中,种子生成节点向验证节点传输目标种子参数的过程,包括:获取目标区块中打包第一随机数种子值的目标块高参数;根据目标块高参数、目标种子参数和融合解密种子参数,得到目标参数;向验证节点传输目标参数。
[0182]
在本技术实施例中,种子生成节点根据目标块高参数、目标种子参数和融合解密种子参数,得到目标参数的过程,可以为依次将目标块高参数、目标种子参数和融合解密种子参数进行拼接,得到目标参数;也可以为直接将目标块高参数、目标种子参数和融合解密种子参数进行组合,得到一个信息包,该信息包即为目标参数;种子生成节点也可以利用其他的方式,根据目标块高参数、目标种子参数和融合解密种子参数,得到目标参数;具体的种子生成节点根据目标块高参数、目标种子参数和融合解密种子参数,得到目标参数的方式可以根据实际情况进行确定,本技术实施例对此不作限定。
[0183]
在本技术实施例中,种子生成节点向验证节点传输目标参数的方式可以根据实际情况进行确定,本技术实施例对此不作限定。
[0184]
在本技术实施例中,种子生成节点向验证节点传输目标种子参数之后,验证节点从目标种子参数中获取目标块高参数、目标种子参数和融合解密种子参数;验证节点从目标区块中获取打包参数范围、融合加密种子参数、公钥、区块参数和第一交易参数;在目标块高参数小于或者等于打包参数范围中的打包块高阈值、且打包参数范围中的至少一个打包节点包括打包节点的情况下,利用公钥对融合解密种子参数进行加密,得到加密参数;在加密参数和融合加密种子参数相同的情况下,根据区块参数、第一交易参数和融合解密种子参数,确定第一种子参数;在第一种子参数和目标种子参数相同的情况下,根据目标种子参数生成目标随机数。
[0185]
在本技术实施例中,验证节点利用公钥对融合解密种子参数进行加密,得到加密参数的方式,包括:验证节点利用预设加密算法,使用公钥对融合解密种子参数进行非对称加密,从而得到加密参数。
[0186]
示例性的,如公式(8)所示:预设加密算法为encrypt;融合解密种子参数为s;加密参数为s
enc
;公钥为g
pub

[0187]senc
=encrypt(s,g
pub
)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(8)
[0188]
在本技术实施例中,根据区块参数、第一交易参数和融合解密种子参数,确定第一种子参数的方式,可以为对区块参数和第一交易参数进行拼接,得到第三拼接参数;在第三拼接参数与第一拼接参数相同的情况下,利用预设哈希处理方式对第三拼接参数进行处理,得到第四哈希参数;在第四哈希参数与第一哈希参数相同的情况下,对第四哈希参数和融合解密种子参数进行拼接,得到第四拼接参数;在第四拼接参数与第二拼接参数相同的情况下,利用预设哈希处理方式对第四拼接参数进行处理,得到第一种子参数。
[0189]
需要说明的是,在第三拼接参数与第一拼接参数不同的情况下,则摒弃该目标种子参数,不再利用该目标种子参数生成目标随机数。或者,在第四哈希参数与第一哈希参数不同的情况下,则摒弃该目标种子参数,不再利用该目标种子参数生成目标随机数。或者,在第四拼接参数与第二拼接参数不同的情况下,则摒弃该目标种子参数,不再利用该目标种子参数生成目标随机数。
[0190]
在本技术实施例中,根据目标种子参数生成目标随机数的方式可以根据实际情况进行确定,本技术实施例对此不作限定。
[0191]
示例性的,整个创建种子初始化请求和区块打包上链的图8所示:种子生成节点生成第一随机数种子值(g);并创建私钥(g
priv
)和公钥(g
pub
);利用预设哈希处理方式和公钥对第一随机数种子值进行加密处理,得到第一加密种子参数(g
enc
);确定打包第一加密种子参数的打包参数范围(u
set
、bh
max
);根据打包参数范围、第一加密种子参数和公钥,生成第一区块链交易(tx1);向打包节点广播第一区块链交易。利用打包节点根据第一区块链交易中携带的打包参数范围,确定是否打包第一区块链交易中的第一加密种子参数;在确定打包第一加密种子参数的情况下,生成第二随机数种子值(u);并利用预设哈希处理方式对第二随机数种子值进行处理,得到第三哈希参数(u
hash
);利用公钥对第三哈希参数进行加密,得到第二加密种子参数(u
enc
);根据第一加密种子参数和第二加密种子参数,得到融合加密种子参数;根据融合加密种子参数和第一区块链交易,生成第二区块链交易(tx2);将第二区块链交易写入目标区块(目标区块中包括区块参数,即包括merkleroothash),并将目标区块上链至目标区块链。在种子生成节点监测到携带第一随机数种子值的目标区块上链的情况下,利用私钥对目标区块中的融合加密种子参数进行解密,得到融合解密种子参数;融合加密种子参数为打包节点根据生成的第二随机数种子值和接收到的加密后的第一随机数种子值进行融合加密处理得到的参数;获取目标区块的区块参数;根据区块参数、融合解密种子参数和目标区块中携带的第一区块链交易的第一交易参数(tx1的txhash),得到目标种子参数;第一区块链交易为根据第一随机数种子值生成的、且广播至打包节点中的交易;向验证节点传输目标种子参数,以供验证节点根据目标种子参数生成目标随机数。
[0192]
需要说明的是,目标区块中不仅包括tx1的txhash(tx1hash),还包括tx2hash、tx3hash、


[0193]
可以理解的是,区块链网络服务平台利用种子生成节点生成第一随机数种子值,利用打包节点生成第二随机数种子值,根据第一随机数种子值和第二随机数种子值得到融合加密种子参数,使得种子生成节点在随机数种子上链之前,不会了解到打包节点生成的第二随机数种子值,也无法了解到目标区块的区块参数,打包节点也无法了解到种子生成这的私钥,即种子生成节点和打包节点在随机数种子上链之前无法确定出被用于生成随机数的结果是否对自己有利,使得节点不能只选择对自己有利的时机、有利的随机数种子进行打包,即提高了随机数的生成效率。
[0194]
实施例二
[0195]
基于实施例一同一发明构思,本技术实施例提供了一种区块链网络服务平台100,如图1所示,所述区块链网络服务平台100,用于在种子生成节点监测到携带第一随机数种子值的目标区块上链的情况下,利用私钥对所述目标区块中的融合加密种子参数进行解密,得到融合解密种子参数;所述融合加密种子参数为打包节点根据生成的第二随机数种
子值和接收到的加密后的第一随机数种子值进行融合加密处理得到的参数;获取所述目标区块的区块参数;根据所述区块参数、所述融合解密种子参数和所述目标区块中携带的第一区块链交易的第一交易参数,得到目标种子参数;所述第一区块链交易为根据所述第一随机数种子值生成的、且广播至所述打包节点中的交易;向验证节点传输所述目标种子参数,以供所述验证节点根据所述目标种子参数生成目标随机数。
[0196]
可选的,所述区块链网络服务平台100,用于对所述区块参数和所述第一交易参数进行拼接,得到第一拼接参数;利用预设哈希处理方式对第一拼接参数进行处理,得到第一哈希参数;对所述第一哈希参数和所述融合解密种子参数进行拼接,得到第二拼接参数;利用预设哈希处理方式对所述第二拼接参数进行处理,得到所述目标种子参数。
[0197]
可选的,所述区块链网络服务平台100,用于获取所述目标区块中打包所述第一随机数种子值的目标块高参数;根据所述目标块高参数、所述目标种子参数和所述融合解密种子参数,得到目标参数;向所述验证节点传输所述目标参数。
[0198]
可选的,所述区块链网络服务平台100,还用于生成第一随机数种子值;并创建私钥和公钥;利用预设哈希处理方式和所述公钥对所述第一随机数种子值进行加密处理,得到第一加密种子参数;确定打包所述第一加密种子参数的打包参数范围;根据所述打包参数范围、所述第一加密种子参数和所述公钥,生成第一区块链交易;向所述打包节点广播所述第一区块链交易,以供所述打包节点根据所述第一区块链交易得到融合解密种子参数,并将所述融合解密种子参数打包至所述目标区块,上链所述目标区块至目标区块链。
[0199]
可选的,所述区块链网络服务平台100,用于利用所述预设哈希处理方式对所述第一随机数种子值进行处理,得到第二哈希参数;利用所述公钥对所述第二哈希参数进行加密,得到所述第一加密种子参数。
[0200]
可选的,所述区块链网络服务平台100,用于根据所述打包参数范围、所述第一加密种子参数和所述公钥,生成初始区块链交易;利用所述私钥对所述初始区块链交易进行签名,得到所述第一区块链交易。
[0201]
可选的,所述区块链网络服务平台100,还用于利用所述打包节点根据所述第一区块链交易中携带的打包参数范围,确定是否打包所述第一区块链交易中的所述第一加密种子参数;在确定打包所述第一加密种子参数的情况下,生成所述第二随机数种子值;并利用所述第一区块链交易中的公钥和预设哈希处理方式对所述第二随机数种子值进行处理,得到第二加密种子参数;根据所述第一加密种子参数和所述第二加密种子参数,得到融合加密种子参数;根据所述融合加密种子参数和所述第一区块链交易,生成第二区块链交易;将所述第二区块链交易写入所述目标区块,并将所述目标区块上链至所述目标区块链。
[0202]
可选的,所述区块链网络服务平台100,用于获取交易池中未完成打包的剩余区块链交易的交易数量;确定交易打包速度,以及当前块高参数;根据所述当前块高参数、所述交易打包速度和所述交易数量,确定对所述剩余区块链交易打包完成时的第一块高参数;在所述第一块高参数小于或者等于所述打包块高阈值、且所述至少一个打包节点包括所述打包节点的情况下,确定打包所述第一加密种子参数;在所述第一块高参数大于所述打包块高阈值、或者所述至少一个打包节点不包括所述打包节点的情况下,确定不打包所述第一加密种子参数。所述打包参数范围包括打包块高阈值和至少一个打包节点。
[0203]
可选的,所述区块链网络服务平台100,用于利用所述预设哈希处理方式对所述第
二随机数种子值进行处理,得到第三哈希参数;利用所述公钥对所述第三哈希参数进行加密,得到所述第二加密种子参数。
[0204]
可选的,所述区块链网络服务平台100,用于在确定打包所述第一加密种子参数的情况下,确定目标打包块;所述目标打包块的块高小于或者等于所述打包块高阈值;利用所述目标打包块生成所述第二随机数种子值。
[0205]
可选的,所述区块链网络服务平台100,还用于所述验证节点从目标种子参数中获取所述目标块高参数、所述目标种子参数和所述融合解密种子参数;所述验证节点从所述目标区块中获取打包参数范围、所述融合加密种子参数、公钥、所述区块参数和所述第一交易参数;在所述目标块高参数小于或者等于所述打包参数范围中的打包块高阈值、且所述打包参数范围中的至少一个打包节点包括所述打包节点的情况下,利用所述公钥对所述融合解密种子参数进行加密,得到加密参数;在所述加密参数和所述融合加密种子参数相同的情况下,根据所述区块参数、所述第一交易参数和所述融合解密种子参数,确定第一种子参数;在所述第一种子参数和所述目标种子参数相同的情况下,根据所述目标种子参数生成目标随机数。
[0206]
基于实施例一的同一发明构思下,本技术实施例提供一种区块链网络服务平台,如图9所示,图9为本技术实施例提出的一种区块链网络服务平台的组成结构示意图二,本技术实施例的区块链网络服务平台100包括:至少一个处理器10、至少一个存储器11及至少一个通信总线12。在具体的实施例的过程中,上述至少一个处理器10可以为特定用途集成电路(asic,application specific integrated circuit)、数字信号处理器(dsp,digital signal processor)、数字信号处理终端(dspd,digital signal processing device)、可编程逻辑终端(pld,programmable logic device)、现场可编程门阵列(fpga,field programmable gate array)、cpu、控制器、微控制器、微处理器中的至少一种。可以理解地,对于不同的设备,用于实现上述处理器功能的电子器件还可以为其它,本技术实施例不作具体限定。
[0207]
在本技术的实施例中,上述至少一个通信总线12用于实现至少一个处理器10和至少一个存储器11之间的连接通信;至少一个存储器11,用于存储可执行指令;
[0208]
至少一个处理器10,用于执行所述至少一个存储器11中存储的可执行指令,实现如实施例一所述的随机数生成方法。
[0209]
本技术实施例提供一种存储介质,上述存储介质存储有一个或者多个程序,上述一个或者多个程序可被一个或者多个处理器执行,应用于区块链网络服务平台中,该程序被至少一个处理器执行时实现如实施例一所述的随机数生成方法。
[0210]
可以理解的是,区块链网络服务平台利用种子生成节点生成第一随机数种子值,利用打包节点生成第二随机数种子值,根据第一随机数种子值和第二随机数种子值得到融合加密种子参数,使得种子生成节点在随机数种子上链之前,不会了解到打包节点生成的第二随机数种子值,也无法了解到目标区块的区块参数,打包节点也无法了解到种子生成这的私钥,即种子生成节点和打包节点在随机数种子上链之前无法确定出被用于生成随机数的结果是否对自己有利,使得节点不能只选择对自己有利的时机、有利的随机数种子进行打包,即提高了随机数的生成效率。
[0211]
本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序
产品。因此,本技术可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
[0212]
本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0213]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0214]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0215]
以上所述,仅为本技术的较佳实施例而已,并非用于限定本技术的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1