一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于区块链的数据处理方法、装置、设备以及介质与流程

2022-11-23 10:30:21 来源:中国专利 TAG:


1.本技术涉及计算机技术领域以及区块链技术领域,尤其涉及一种基于区块链的数据处理方法、装置、设备以及介质。


背景技术:

2.随着计算机技术的发展,区块链技术也迅速发展,考虑到存储在区块链上的信息不可伪造和篡改,越来越多的企业会将业务数据存储在区块链上,若用户需要对区块链上的数据以交易的形式进行数据处理时,通常只需要验证交易签名的合法性即可,即任意用户可以实现对区块链上的数据处理,由此可见,如何提升当前区块链上的数据处理过程中的安全性,成为了当前的研究热点问题。


技术实现要素:

3.本技术实施例提供一种基于区块链的数据处理方法、装置、设备以及介质,可以利用交易数据所携带的身份标识和智能合约中所记录的身份证书之间的映射关系,确定客户端对应的身份证书,并按照身份证书中指示的权限进行交易操作,从而提升区块链上数据处理的安全性。同时,在交易数据中只携带身份标识,可以在保证能够获取到相应身份证书的情况下,相对于在交易数据中携带完整的身份证书,可以减少交易数据的数据量,以实现一定程度上的数据压缩,有利于交易数据的快速传输。
4.本技术实施例第一方面公开了一种基于区块链的数据处理方法,所述方法包括:
5.获取客户端的交易数据,所述交易数据携带所述客户端的身份标识,所述身份标识是根据所述客户端的身份证书确定的;
6.根据所述身份标识从智能合约中查询所述客户端的身份证书;
7.若从所述智能合约中查询到所述客户端的身份证书,且根据所述身份证书确定出所述客户端具备针对区块链执行所述交易数据所对应交易操作的权限,则针对所述区块链执行所述交易数据所对应的交易操作。
8.本技术实施例第二方面公开了一种基于区块链的数据处理装置,所述装置包括:
9.获取单元,用于获取客户端的交易数据,所述交易数据携带所述客户端的身份标识,所述身份标识是根据所述客户端的身份证书确定的;
10.查询单元,用于根据所述身份标识从智能合约中查询所述客户端的身份证书;
11.执行单元,用于若从所述智能合约中查询到所述客户端的身份证书,且根据所述身份证书确定出所述客户端具备针对区块链执行所述交易数据所对应交易操作的权限,则针对所述区块链执行所述交易数据所对应的交易操作。
12.本技术实施例第三方面公开了一种数据处理设备,包括处理器、存储器和网络接口,所述处理器、存储器和网络接口相互连接,其中,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行上述第一方面的方法。
13.本技术实施例第四方面公开了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行上述第一方面的方法。
14.本技术实施例第五方面公开了一种计算机程序产品或计算机程序,所述计算机程序产品或计算机程序包括计算机指令,所述计算机指令存储在计算机可读存储介质中。数据处理设备的处理器从计算机可读存储介质读取所述计算机指令,处理器执行所述计算机指令,使得所述数据处理设备执行上述第一方面的方法。
15.在本技术实施例中,可以获取客户端的交易数据,该交易数据可以携带客户端的身份标识,该身份标识可以是根据客户端的身份证书确定的,接着,可以根据该身份标识从智能合约中查询客户端的身份证书,如果从智能合约中查询到客户端的身份证书,且根据身份证书确定出客户端具备针对区块链执行交易数据所对应交易操作的权限,则可以针对区块链执行交易数据所对应的交易操作。通过上述实施方法,可以利用交易数据所携带的身份标识和智能合约中所记录的身份证书之间的映射关系,确定客户端对应的身份证书,并按照身份证书中指示的权限进行交易操作,从而提升区块链上数据处理的安全性。在交易数据中只携带身份标识,可以在保证能够获取到相应身份证书的情况下,相对于在交易数据中携带完整的身份证书,可以减少交易数据的数据量,有利于交易数据的快速传输。
附图说明
16.为了更清楚地说明本技术实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
17.图1a是本技术实施例提供的一种基于区块链的数据处理系统的架构示意图;
18.图1b是本技术实施例提供的一种区块链的结构示意图;
19.图1c是本技术实施例提供的一种产生新区块的过程示意图;
20.图2是本技术实施例提供的一种基于区块链的数据处理方法的流程示意图;
21.图3是本技术实施例提供的一种联盟链上身份的结构示意图;
22.图4是本技术实施例提供的一种基于区块链的数据处理方法的流程示意图;
23.图5是本技术实施例提供的一种基于区块链的数据处理装置的结构示意图;
24.图6是本技术实施例提供的一种数据处理设备的结构示意图。
具体实施方式
25.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
26.请参见图1a,是本技术实施例提供的一种基于区块链的数据处理系统的架构示意图,该基于区块链的数据处理系统包括区块链网络10、客户端102,其中:
27.区块链网络10是指用于进行节点与节点之间数据共享的网络,区块链网络中可以包括多个节点101,其中,该多个节点101中可以包括共识节点。每个节点101在进行正常工
作可以接收到输入信息,并基于接收到的输入信息维护区块链网络内的共享数据(即区块链)。其中,区块链网络中的每个节点均存储一条相同的区块链,该区块链包括一系列按照产生的先后时间顺序相互接续的区块(block),如图1a中所示的区块1、区块m-1等等,新区块一旦加入到区块链中就不会再被移除,区块中记录了区块链网络中节点提交的记录数据。为了保证区块链网络内的信息互通,每个节点之间可以存在信息连接,任意两个节点之间可以实现点对点(peer to peer,p2p)通信,具体可以通过有线通信链路或无线通信链路进行p2p通信。例如,当区块链网络中的任意节点接收到输入信息时,其他节点便根据共识算法获取该输入信息,将该输入信息作为共享数据中的数据进行存储,使得区块链网络中全部节点上存储的数据均一致。
28.客户端102可以接入该区块链网络,并可以与区块链网络中的节点进行通信,例如,向节点发送交易数据等等。其中,客户端102所在的终端具体可以是智能手机、平板电脑、笔记本电脑、台式电脑、车载智能终端等,本技术实施例不做限定。
29.需要说明的是,图1a中所示的节点的数目仅仅是示意性的,根据实际需要,可以部署任意数目的节点,该节点可以是指接入网络中的任意形式的计算设备,例如服务器、用户终端均可以加入而成为节点。
30.其中,对于区块链网络中的每个节点,均具有与其对应的节点标识,而且区块链网络中的每个节点均可以存储有区块链网络中其他节点的节点标识,以便后续根据其他节点的节点标识,将生成的区块广播至区块链网络中的其他节点。每个节点中可维护一个如下表所示的节点标识列表,将节点名称和节点标识对应存储至该节点标识列表中。其中,节点标识可为互联网协议(internet protocol,ip)地址以及其他任一种能够用于标识该节点的信息,表中仅以ip地址为例进行说明。
31.节点名称节点标识节点1117.114.151.174节点2117.116.189.145
……
节点n119.123.789.258
32.其中,区块链网络中的每个节点均存储一条相同的区块链。区块链由多个区块组成,参见图1b,区块链由多个区块组成,创始块中包括区块头和区块主体,区块头中存储有输入信息特征值、版本号、时间戳和难度值,区块主体中存储有输入信息;创始块的下一区块以创始块为父区块,下一区块中同样包括区块头和区块主体,区块头中存储有当前区块的输入信息特征值、父区块的区块头特征值、版本号、时间戳和难度值,并以此类推,使得区块链中每个区块中存储的区块数据均与父区块中存储的区块数据存在关联,保证了区块中输入信息的安全性。
33.其中,在生成区块链中的各个区块时,参见图1c,区块链所在的节点在接收到输入信息时,对输入信息进行校验,完成校验后,将输入信息存储至内存池中,并更新其用于记录输入信息的哈希树;之后,将更新时间戳更新为接收到输入信息的时间,并尝试不同的随机数,多次进行特征值计算,使得计算得到的特征值可以满足下述公式:
34.sha256(sha256(version prev_hash merkle_root ntime nbits x))《target
35.其中,sha256为计算特征值所用的特征值算法;version(版本号)为区块链中相关
区块协议的版本信息;prev_hash为当前区块的父区块的区块头特征值;merkle_root为输入信息的特征值;ntime为更新时间戳的更新时间;nbits为当前难度,在一段时间内为定值,并在超出固定时间段后再次进行确定;x为随机数;target为特征值阈值,该特征值阈值可以根据nbits确定得到。
36.这样,当计算得到满足上述公式的随机数时,便可将信息对应存储,生成区块头和区块主体,得到当前区块。随后,区块链所在节点根据区块链网络中其他节点的节点标识,将新生成的区块分别发送给其所在的区块链网络中的其他节点,由其他节点对新生成的区块进行校验,并在完成校验后将新生成的区块添加至其存储的区块链中。
37.其中,区块链网络的节点上可以运行智能合约,可以通过调用该智能合约实现各种交易。智能合约是一种运行在区块链上的不可篡改、自动执行的计算机程序,智能合约是用于在满足一定条件时而执行的代码实现,开发人员可以通过编程语言定义合约逻辑,发布到区块链上(智能合约注册),根据合约条款的逻辑,调用密钥或者其他的事件触发执行,完成合约逻辑,同时还提供对智能合约升级、注销的功能。
38.在一些可行的实施方式中,区块链网络的任一节点101可以获取客户端的交易数据,该交易数据可以携带客户端的身份标识,该身份标识可以是根据客户端的身份证书确定的,节点101可以根据身份标识从智能合约中查询客户端的身份证书,若从智能合约中查询到客户端的身份证书,且根据身份证书确定出客户端具备针对区块链执行交易数据所对应交易操作的权限,则节点101可以针对区块链执行交易数据所对应的交易操作,可以利用交易数据所携带的身份标识和智能合约中所记录的身份证书之间的映射关系,确定客户端对应的身份证书,并按照身份证书中指示的权限进行交易操作,从而提升区块链上数据处理的安全性。在交易数据中只携带身份标识,可以在保证能够获取到相应身份证书的情况下,相对于在交易数据中携带完整的身份证书,可以减少交易数据的数据量,有利于交易数据的快速传输。
39.通常,还需要针对交易数据生成交易区块,并将区块进行上链(将区块存储到区块链上),由于只携带身份标识,可以在保证能够获取到相应身份证书的情况下,相对于在交易数据中携带完整的身份证书,可以减少交易数据的数据量,以实现一定程度上的数据压缩,这样可以降低对区块链存储资源的消耗。
40.以下对本技术实施例的技术方案的实现细节进行详细阐述:
41.请参见图2,图2是本技术实施例提供的一种基于区块链的数据处理方法的流程示意图,本技术实施例的数据处理方法主要是从节点一侧进行描述的,如图2所示,该基于区块链的数据处理方法可包括:
42.s201:获取客户端的交易数据,交易数据携带客户端的身份标识。
43.在一种实现方式中,当客户端需要在区块链执行某种数据操作时,可以以交易形式访问区块链,例如,该数据操作可以是增加数据、删除数据、查找数据、修改数据中的任一种或多种。那么,客户端可以向区块链网络发送交易数据,以使得区块链网络接收到该交易数据之后,在区块链上执行交易数据所对应交易操作(交易操作可以理解为数据操作)。客户端在将交易数据发送给区块链网络之后,区块链网络的节点可以获取该交易数据,该节点可以是区块链网络包括的多个节点中的任意一个节点,该任意一个节点可以是共识节点也可以是其他节点(非共识节点)。
44.在一种实现方式中,交易数据中还可以携带有客户端的身份标识,该身份标识可以用于对客户端发起的交易进行身份权限的验证,以便于后续根据该身份标识确定客户端是否具备针对区块链执行交易数据所对应交易操作的权限。例如,以区块链为联盟链为例进行说明,联盟链属于准入制,即客户端需要从联盟链获得身份证书所给予的权限才能访问联盟链,该身份证书可以用于指示客户端所具备的相应权限。针对联盟链而言,可以在交易数据中携带完整的身份证书以访问联盟链,以根据该身份证书进行身份权限的验证,而考虑到在交易数据中携带完整的身份证书可能会带来大量的存储开销,那么,可以考虑将身份证书进行压缩,以降低因交易携带完整的身份证书带来的大量存储开销。例如,可以将身份证书替换为身份证书对应的身份标识,从而在交易数据中携带身份标识,而非完整的身份证书。从上述可知,在只携带身份标识,并保证后续能够获取到相应身份证书的情况下,相对于在交易数据中携带完整的身份证书,可以减少交易数据的数据量,以实现一定程度上的数据压缩。那么,可以根据交易数据中所携带的身份标识进行身份权限的验证。其中,身份权限的验证具体可以是根据该身份标识确定该客户端是否具备针对区块链执行交易数据所对应交易操作的权限。而在具备该权限的情况下,可以针对区块链执行交易数据所对应的交易操作,从而可以增强数据处理的安全性。其中,该身份标识可以根据客户端的身份证书确定。该身份标识可以是对客户端的身份证书进行哈希计算得到的哈希值,也可以是是身份证书对应的数字编号,比特值(位),或者其他信息,本技术不做限定。
45.在一种实现方式中,客户端在向区块链发送交易数据之前,可以将客户端的身份证书记录在智能合约上,以便于后续客户端可以从智能合约上获得身份证书中所指示的权限对区块链上的数据进行处理。假设身份标识包括对客户端的身份证书进行哈希计算得到的哈希值,那么,智能合约中可以记录有一个或多个客户端的身份证书以及身份证书所对应的哈希值。即每一个客户端在访问区块链之前,可以将客户端对应的身份证书记录在智能合约上。其中,客户端的身份证书可以向区块链对应的组织机构申请,该客户端可以是指组织机构中的成员或者组织机构之外的成员所利用的客户端,本技术可以将组织机构中的成员或者组织机构之外的成员称之为用户。而区块链对应的组织机构通过客户端访问区块链时,也需要具备对应的身份证书。其中,组织机构对应的身份证书可以是组织机构对应的组织管理员的身份证书,组织管理员的身份证书则可以向证书颁发(certificate authority,ca)机构申请。组织管理员也可以将其对应的身份证书记录在智能合约上,以便于后续组织管理员可以通过客户端与区块链进行数据的交互。该组织管理员对应的身份证书可以理解为组织管理员所利用的客户端的身份证书。后续在描述用户的身份证书(或身份标识),组织管理员的身份证书(或身份标识)均可理解为用户和组织管理员所利用的客户端。
46.在具体实施场景中,下述以区块链为联盟链为例进行说明,在联盟链平台,所有与区块链、数据库、配置等交互的主体都会被赋予一个身份,例如,该主体可以是客户端。只有在所述身份具备某个特定权限时,才能成功的在区块链上执行对应的交互操作。其中,可以通过身份证书管理身份权限,身份证书的证书类型可以分为登记证书、交易证书和通信证书。其中,登记证书可以颁发给提供了注册凭证的用户或节点等实体,代表区块链网络中的身份;交易证书可以颁发给用户,控制每个交易的权限,不同交易可以具备不同权限;通信证书可以控制对网络层的接入访问,可以对远端实体身份进行校验。如图3所示,联盟链上
的身份可以包括组织管理员、共识节点、其他节点、用户,该联盟链上的各个身份可以与身份证书绑定。其中,该联盟链可以是由某一组织机构或多个组织机构组成的联盟链,组织管理员可以是该组织机构中的管理员,该组织管理员的身份证书可以由组织机构自行提供,组织机构中其他成员的身份证书可以由组织管理员的身份证书的私钥签发,并在组织管理员的身份证书对应字段设置其他成员的对应身份信息。
47.其中,组织管理员对应的身份证书记录在智能合约的具体实现过程可以包括如下步骤:
48.s1:组织机构可以生成非对称的公钥和私钥,并利用该私钥将组织机构对应的身份信息进行签名处理,以得到签名信息,在得到签名信息之后,可以向ca机构发送证书申请请求,以向ca机构申请组织机构对应的身份证书,或者理解为组织管理员对应的身份证书。其中,该证书申请请求可以包括公钥、组织机构对应的身份信息以及签名信息。
49.s2:ca机构在接收到组织机构发送的证书申请请求之后,可以利用该证书申请请求中所包括的信息进行实名认证。而在实名认证通过之后,可以给组织机构颁发对应的身份证书。在ca机构给组织机构颁发了身份证书之后,该身份证书还需要记录在智能合约中。那么,ca机构可以根据该身份证书生成交易数据,并将该交易数据发送给区块链网络,该交易数据可以包括ca机构为组织机构颁发的身份证书(组织管理员对应的身份证书)。
50.s3:区块链网络在接收到该交易数据之后,可以校验该交易数据的合法性。其中,可以是区块链网络中的任一节点接收交易数据。该交易数据中还可以包括身份证书对应的签名数据,该签名数据是利用ca机构的私钥对身份证书进行签名处理得到的。那么,校验该交易数据的合法性可以是对该签名数据进行验证。其中,验证的具体实施方式可以是利用ca机构的私钥所对应的公钥,对签名数据进行解签处理,以得到解签数据,而在得到解签数据之后,可以检测解签数据和身份证书是否是一致的,如果是一致的,则可以确定该交易数据是合法的。那么,在校验通过后可以调用虚拟机执行该交易数据对应的交易操作,执行该交易操作也就是将组织管理员的身份证书记录在智能合约上。其中,智能合约可以运行该虚拟机上。
51.s4:在执行过程中,区块链网络中的节点可以调用智能合约进行身份证书的记录。例如,可以先根据身份证书确定身份证书对应的身份标识,其中,该身份标识可以是对身份证书进行哈希计算得到的哈希值,该哈希计算可以是摘要哈希计算。在得到哈希值之后,可以根据哈希值在智能合约中查询是否已经存在该哈希值对应的身份证书。如果在智能合约中查询到该哈希值对应的身份证书,则可以向ca机构返回执行失败结果。如果在智能合约中未查询到该哈希值对应的身份证书,则可以将哈希值和该哈希值对应的身份证书记录在智能合约中,以便于后续可以根据哈希值查询对应的身份证书。例如,可以以键值对的形式将哈希值和该哈希值对应的身份证书记录在智能合约中,即可以将哈希值作为关键字(key),将哈希值对应的身份证书作为值(value)记录在智能合约中。
52.s5:在区块链网络中的节点还可以将组织管理员的身份证书发送给区块链网络中的共识节点进行共识,以使得区块链网络中的共识节点对身份证书对应的哈希值进行共识,而在共识通过后,可以将哈希值和该哈希值对应的身份证书记录在智能合约中。
53.s6:在组织管理员对应的身份证书记录在智能合约之后,区块链网络中的节点可以将该身份证书对应的哈希值返回给ca机构。
54.s7:ca机构可以接收区块链网络返回的组织管理员的身份证书对应的哈希值,并将身份证书以及身份证书对应的哈希值返回给组织机构。那么,组织机构可以存储该身份证书以及该身份证书对应的哈希值,以便于后续与联盟链进行数据交互时,可以根据身份证书对应的哈希值进行身份权限的验证。
55.在一种实现方式中,用户想加入由组织机构组成的联盟链,即用户想要通过客户端对联盟链进行数据交互时,也是需要进行身份权限的验证,用户对应的身份证书也需要记录在智能合约上。其中,用户的身份证书可以向组织机构(或组织管理员)申请,用户对应的身份证书记录在智能合约的具体实现过程可以包括如下步骤:
56.s1:用户可以生成非对称的公钥和私钥,并利用该私钥将用户对应的身份信息进行签名处理,以得到签名信息,在得到签名信息之后,可以向组织机构发送证书申请请求,以向组织机构申请用户对应的身份证书。其中,该证书申请请求可以包括公钥、用户对应的身份信息以及签名信息。
57.s2:组织机构在接收到用户发送的证书申请请求之后,可以利用该证书申请请求中所包括的信息进行实名认证。而在实名认证通过之后,可以给用户颁发对应的身份证书。在组织机构给用户颁发了身份证书之后,该身份证书还需要记录在智能合约中。那么,组织机构可以根据该身份证书生成交易数据,并将该交易数据发送给区块链网络,该交易数据可以包括组织机构为用户颁发的身份证书。
58.s3:区块链网络在接收到该交易数据之后,可以校验该交易数据的合法性。其中,校验该交易数据的合法性可以参考上述描述,在此处不在赘述。而在校验通过后可以调用虚拟机执行该交易数据对应的交易操作。其中,执行该交易操作也就是将用户的身份证书记录在智能合约上。
59.s4:在执行过程中,区块链网络中的节点可以调用智能合约进行身份证书的记录。例如,可以先根据身份证书确定身份证书对应的身份标识,其中,该身份标识可以是对身份证书进行哈希计算得到的哈希值,该哈希计算可以是摘要哈希计算。在得到哈希值之后,可以根据哈希值在智能合约中查询是否已经存在该哈希值对应的身份证书。如果在智能合约中查询到该哈希值对应的身份证书,则可以向组织机构返回执行失败结果。如果在智能合约中未查询到该哈希值对应的身份证书,则可以将哈希值和该哈希值对应的身份证书记录在智能合约中,以便于后续可以根据哈希值查询对应的身份证书。例如,可以以键值对的形式将哈希值和该哈希值对应的身份证书记录在智能合约中,即可以将哈希值作为关键字(key),将哈希值对应的身份证书作为值(value)记录在智能合约中。
60.s5:在区块链网络中的节点还可以将用户的身份证书发送给区块链网络中的共识节点进行共识,以使得区块链网络中的共识节点对身份证书对应的哈希值进行共识,而在共识通过后,可以将哈希值和该哈希值对应的身份证书记录在智能合约中。
61.s6:在用户对应的身份证书记录在智能合约之后,区块链网络中的节点可以将该身份证书对应的哈希值返回给组织机构。
62.s7:组织机构可以接收区块链网络返回的用户的身份证书对应的哈希值,并将身份证书以及身份证书对应的哈希值返回给用户。那么,用户可以存储该身份证书以及该身份证书对应的哈希值,以便于后续与联盟链进行数据交互时,可以根据身份证书对应的哈希值进行身份权限的验证。组织机构也可以选择存储用户的身份证书以及身份证书对应的
哈希值。
63.那么,在组织机构的身份证书和用户的身份证书均记录在智能合约之后,用户可以通过客户端与区块链进行数据的交互。
64.在一种实现方式中,在区块链网络上的任一节点接收到客户端的交易数据之后,通常是需要针对交易数据生成交易区块,并将区块进行上链(将区块存储到区块链上)的。例如,区块链网络中的某一节点获取到交易数据之后,可以将交易数据存储至区块体,计算上述交易数据的默克尔根,获取节点所存储的区块链的最后一个区块的哈希值,节点将交易数据的默克尔根、当前区块链的最后一个区块的哈希值以及当前时间戳存储至区块头,节点将该区块头以及存储了交易数据的区块体组合为第一区块,并将第一区块添加至该节点所存储的区块链,以及向区块链网络中的其余的节点广播该第一区块,以使其余的节点将第一区块添加至各自维护的区块链,使得各节点所维护的区块链达到同步。从上述可知,在只携带身份标识,并保证后续能够获取到相应身份证书的情况下,相对于在交易数据中携带完整的身份证书,可以减少交易数据的数据量,以实现一定程度上的数据压缩,这样也可以降低对区块链存储资源的消耗。
65.s202:根据身份标识从智能合约中查询客户端的身份证书。
66.s203:若从智能合约中查询到客户端的身份证书,且根据身份证书确定出客户端具备针对区块链执行交易数据所对应交易操作的权限,则针对区块链执行交易数据所对应的交易操作。
67.在步骤s202和步骤s203中,可以根据身份标识从智能合约中查询客户端的身份证书,确定是否可以从该智能合约中查询到客户端的身份证书,以便于根据该身份证书确定客户端具备针对区块链执行交易数据所对应交易操作的权限。如果从智能合约中未查询到客户端的身份证书,即可以表明该客户端不具备有针对区块链执行交易数据所对应交易操作的权限,则可以向客户端返回交易执行失败的结果。如果可以从智能合约中查询到客户端的身份证书,则可以根据该身份证书中确定客户端是否具备针对区块链执行交易数据所对应交易操作的权限。例如,可以检测该身份证书中是否记录针对区块链执行交易数据所对应交易操作的权限。如果检测到在该身份证书中记录有针对区块链执行交易数据所对应交易操作的权限,则可以确定客户端具备针对区块链执行交易数据所对应交易操作的权限。如果检测到在该身份证书中没有记录针对区块链执行交易数据所对应交易操作的权限,则可以确定客户端不具备针对区块链执行交易数据所对应交易操作的权限。那么,如果根据身份证书确定出客户端不具备针对区块链执行交易数据所对应交易操作的权限之后,则可以向客户端返回交易执行失败的结果。如果根据身份证书确定出客户端具备针对区块链执行交易数据所对应交易操作的权限之后,则可以针对区块链执行交易数据所对应的交易操作。
68.在一种实现方式中,可以由上述描述的节点根据身份证书确定客户端是否具备针对区块链执行交易数据所对应交易操作的权限,还可以再次由共识节点确定客户端是否具备针对区块链执行交易数据所对应交易操作的权限。例如,可以在节点(该节点可以是共识节点或非共识节点)根据身份证书确定出客户端具备针对区块链执行交易数据所对应交易操作的权限之后,再由共识节点进行共识,以根据共识数据确定客户端是否具备针对区块链执行交易数据所对应交易操作的权限。
69.可选的,由共识节点确定客户端是否具备针对区块链执行交易数据所对应交易操作的权限的具体实施方式可以为如下描述。在节点根据身份证书确定出客户端具备针对区块链执行交易数据所对应交易操作的权限之后,还可以将客户端的身份标识以及交易数据发送给区块链网络中的共识节点,以使得区块链网络中的共识节点对客户端是否具备针对区块链执行交易数据所对应交易操作的权限进行共识。其中,共识节点确定客户端是否具备针对区块链执行交易数据所对应交易操作的权限的具体实施方式,可以参考上述节点确定客户端是否具备针对区块链执行交易数据所对应交易操作的权限的描述,在此处不在赘述。在共识节点确定客户端是否具备针对区块链执行交易数据所对应交易操作的权限之后,可以向节点返回共识数据,其中,该共识数据可以包括确定客户端具备针对区块链执行交易操作的权限的共识数据,或确定客户端不具备针对区块链执行交易操作的权限的共识数据。
70.那么,节点可以接收区块链网络中的共识节点所返回的共识数据,以根据该共识数据确定客户端是否具备针对区块链执行交易操作的权限。例如,如果可以根据共识数据检测出区块链网络中,超过目标比例的共识节点确定客户端具备针对区块链执行交易操作的权限,则可以得到用于指示客户端具备针对区块链执行交易操作的权限的共识结果,即客户端具备针对区块链执行交易操作的权限。换言之,可以先检测共识数据中为确定客户端具备针对区块链执行交易操作的权限的共识数据对应的共识节点的数量,再确定该数量与区块链网络中所有的共识节点的数量之间的比例,如果检测出该比例超过目标比例,则可以得到用于指示客户端具备针对区块链执行交易操作的权限的共识结果,即客户端具备针对区块链执行交易操作的权限。其中,目标比例可以预先设置,例如,假设区块链网络中共识节点的数量为n(n可以大于或等于2),可以将目标比例设置为n/2或者n*2/3等比例。
71.在一种实现方式中,交易数据中还可以包括解签密钥,那么,在从智能合约中查询到客户端的身份证书的情况下,还可以从身份证书中获取客户端的解签密钥,以检测身份证书中所获取的解签密钥与交易数据所包括的解签密钥是否匹配。如果从身份证书中所获取的解签密钥与交易数据所包括的解签密钥是匹配的,则可以根据身份证书确定出客户端具备针对区块链执行交易数据所对应交易操作的权限,并针对区块链执行交易数据所对应交易操作。如果从身份证书中所获取的解签密钥与交易数据所包括的解签密钥是不匹配的,则可以向客户端返回交易执行失败的结果。
72.在一种实现方式中,在节点针对区块链执行交易数据所对应的交易操作之后,可以将交易操作后的执行结果封装为第二区块(或者将交易数据和交易操作后的执行结果共同封装为第二区块),并存储在区块链上的区块中。节点在区块链上存储第二区块时,也可以向其余的节点广播第二区块,以使其余的节点将第二区块添加至各自维护的区块链,使得各节点所维护的区块链达到同步。
73.可选的,在节点向区块链网络中的其余的节点广播该第二区块时,可以将该第二区块广播至区块链网络中的共识节点,以使得共识节点对第二区块中的交易操作后的执行结果进行共识验证,以验证该交易操作后的执行结果为有效的执行结果。而在共识验证通过之后,可以将该第二区块添加至各自维护的区块链,还可以将指示共识验证通过的结果发送给发起广播的操作节点。例如,如果发起广播的操作节点所接收到的指示共识验证通过的结果的数量超过指定比例,则可以确定共识验证通过,而在共识验证通过之后,即可以
将交易操作后的执行结果写入区块链中。其中,指定比例可以预先设置,例如,假设区块链网络中共识节点的数量为n(n可以大于或等于2),可以将目标比例设置为n/2或者n*2/3或者n*3/4等比例。
74.本技术实施例中,可以获取客户端的交易数据,交易数据可以携带客户端的身份标识,那么,可以根据身份标识从智能合约中查询客户端的身份证书,若从智能合约中可以查询到客户端的身份证书,且根据身份证书确定出客户端具备针对区块链执行交易数据所对应交易操作的权限,则可以针对区块链执行交易数据所对应的交易操作。通过实施上述方法,可以利用交易数据所携带的身份标识和智能合约中所记录的身份证书之间的映射关系,确定客户端对应的身份证书,并按照身份证书中指示的权限进行交易操作,从而提升区块链上数据处理的安全性。并且在交易数据中只携带身份标识,可以在保证能够获取到相应身份证书的情况下,相对于在交易数据中携带完整的身份证书,可以减少交易数据的数据量,以实现一定程度上的数据压缩,有利于交易数据的快速传输,也可以降低因携带完整的身份证书所带来的对区块链存储资源的消耗。
75.请参见图4,图4是本技术实施例提供的一种基于区块链的数据处理方法的流程示意图,本技术实施例的数据处理方法主要是从节点一侧进行描述的,如图4所示,该基于区块链的数据处理方法可包括:
76.s401:获取客户端的交易数据,交易数据携带客户端的身份标识。
77.在一种实现方式中,该交易携带还可以包括签名数据,其中,该签名数据可以是利用客户端的签名密钥针对交易数据进行签名处理得到的。那么,在获取到客户端的交易数据之后,还需要对该交易数据中所包括的签名数据进行校验,在该签名数据校验通过的情况下,可以执行下述步骤s402。
78.可选的,对签名数据进行校验的具体实施方式可以为如下描述。可以利用签名密钥所对应的解签密钥,对签名数据进行解签处理,以得到该签名数据对应的解签数据。其中,签名密钥对应的解签密钥可以是在区块链上预先存储中获取的,也可以获取的交易数据中所包括的解密密钥,还可以以其他方式获取,在本技术不做限定。而在得到解签数据之后,即可以根据解签数据和交易数据确定签名数据的签名校验结果。其中,该签名校验结果可以包括指示签名数据校验通过或指示签名数据校验未通过。例如,可以确定解签数据和交易数据是否是一致的,如果解签数据和交易数据是一致的,则可以确定签名校验结果为指示签名数据校验通过,如果解签数据和交易数据是不一致的,则可以确定签名校验结果为指示签名数据校验未通过。而在签名校验结果为指示签名数据校验通过的情况下,可以执行后续步骤s402。而在签名校验结果为指示签名数据校验未通过的情况下,可以向客户端返回交易执行失败的结果。
79.其中,步骤s401具体实施方式可以参见上述实施例步骤s201的具体描述,此处不再赘述。
80.s402:根据身份标识从缓存中存储的智能合约数据中查询客户端的身份证书。
81.在一种实现方式中,为了降低存储开销,本技术还可以利用缓存机制将客户端的身份证书记录在智能合约上。那么,客户端的身份证书可能记录在缓存中存储的智能合约数据中,则可以先根据身份标识从缓存中存储的智能合约数据中查询是否存在客户端的身份证书。其中,该缓存中存储的智能合约数据可以包括部分客户端的身份证书。如果可以从
缓存中存储的智能合约数据中查询到客户端的身份证书,则可以根据该身份证书确定出客户端是否具备针对区块链执行交易数据所对应交易操作的权限。例如,可以检测该身份证书中是否记录针对区块链执行交易数据所对应交易操作的权限。如果检测到在该身份证书中记录有针对区块链执行交易数据所对应交易操作的权限,则可以确定客户端具备针对区块链执行交易数据所对应交易操作的权限,那么,可以针对区块链执行交易数据所对应交易操作。如果检测到在该身份证书中没有记录针对区块链执行交易数据所对应交易操作的权限,则可以确定客户端不具备针对区块链执行交易数据所对应交易操作的权限,那么,可以向客户端返回交易执行失败的结果。
82.s403:若从缓存中存储的智能合约数据中未查询到客户端的身份证书,则根据身份标识从内存中存储的智能合约中查询客户端的身份证书。
83.在一种实现方式中,如果从缓存中存储的智能合约数据中没有查询到该客户端的身份证书,则可以根据身份标识从内存中存储的智能合约中查询客户端的身份证书。
84.从上述可知,可以先在缓存中查询客户端的身份证书,在缓存中未查询到该身份证书的情况下,可以再从内存中查询该身份证书。那么,可以通过缓存机制可以不必在每次需要确定客户端具备针对区块链执行交易数据所对应交易操作的权限时从内存中读数据,从而可以提高交易权限验证的速度,进而可以提高交易执行的速度,也可以提供区块链整体的吞吐量。
85.在一种实现方式中,如果是从内存中存储的智能合约中查询到客户端的身份证书,还可以将该客户端的身份证书存储到缓存中,从而可以提高后续来自同一个客户端发起的交易数据中的权限验证的速度,进而可以提高交易执行的速度。
86.s404:若从内存中存储的智能合约中查询到客户端的身份证书,且根据身份证书确定出客户端具备针对区块链执行交易数据所对应交易操作的权限,则针对区块链执行交易数据所对应的交易操作。
87.其中,步骤s404的具体实施方式可以参见上述实施例步骤s203的具体描述,此处不再赘述。
88.本技术实施例中,可以获取客户端的交易数据,该交易数据可以携带客户端的身份标识,那么,可以根据身份标识从缓存中存储的智能合约数据中查询客户端的身份证书,若从缓存中存储的智能合约数据中未查询到客户端的身份证书,则可以根据身份标识从内存中存储的智能合约中查询客户端的身份证书,若从内存中存储的智能合约中可以查询到客户端的身份证书,且根据身份证书确定出客户端具备针对区块链执行交易数据所对应交易操作的权限,则可以针对区块链执行交易数据所对应的交易操作。通过实施上述方法,可以利用交易数据所携带的身份标识和智能合约中所记录的身份证书之间的映射关系,确定客户端对应的身份证书,并按照身份证书中指示的权限进行交易操作,从而提升区块链上数据处理的安全性。并且在交易数据中只携带身份标识,相对于在交易数据中携带完整的身份证书,可以减少交易数据的数据量,以实现一定程度上的数据压缩,有利于交易数据的快速传输,也可以降低因携带完整的身份证书所带来的对区块链存储资源的消耗。同时,利用缓存机制,即将身份证书存储在内存中,也可以不必每次从内存中读取数据,可以有效的提高交易执行速度。
89.请参阅图5,是本技术实施例提供的一种基于区块链的数据处理装置的结构示意
图。本实施例中所描述的数据处理装置,包括:
90.获取单元501,用于获取客户端的交易数据,所述交易数据携带所述客户端的身份标识,所述身份标识是根据所述客户端的身份证书确定的;
91.查询单元502,用于根据所述身份标识从智能合约中查询所述客户端的身份证书;
92.执行单元503,用于若从所述智能合约中查询到所述客户端的身份证书,且根据所述身份证书确定出所述客户端具备针对区块链执行所述交易数据所对应交易操作的权限,则针对所述区块链执行所述交易数据所对应的交易操作。
93.在一种实现方式中,所述查询单元502,具体用于:
94.根据所述身份标识从缓存中存储的智能合约数据中查询所述客户端的身份证书。
95.在一种实现方式中,所述查询单元502,还用于:
96.若从所述缓存中存储的智能合约数据中未查询到所述客户端的身份证书,则根据所述身份标识从内存中存储的智能合约中查询所述客户端的身份证书。
97.在一种实现方式中,所述查询单元502,还用于:
98.若是从所述内存中存储的智能合约中查询到所述客户端的身份证书,则将所述客户端的身份证书存储到所述缓存中。
99.在一种实现方式中,所述交易数据还包括签名数据,所述签名数据是利用所述客户端的签名密钥针对所述交易数据进行签名处理得到的;所述获取单元501,还用于:
100.利用所述签名密钥所对应的解签密钥,对所述签名数据进行解签处理,得到解签数据;
101.根据所述解签数据和所述交易数据确定所述签名数据的签名校验结果;
102.若所述签名校验结果指示所述签名数据校验通过,则执行所述根据所述身份标识从智能合约中查询所述客户端的身份证书的步骤。
103.在一种实现方式中,所述交易数据还包括所述解签密钥;所述执行单元503,具体用于:
104.若从所述智能合约中查询到所述客户端的身份证书,则从所述身份证书中获取所述客户端的解签密钥;
105.若从所述身份证书中获取的解签密钥与所述交易数据包括的解签密钥相匹配,且根据所述身份证书确定出所述客户端具备针对区块链执行所述交易数据所对应交易操作的权限,则针对所述区块链执行所述交易数据所对应的交易操作。
106.在一种实现方式中,所述执行单元503,还用于:
107.将所述交易数据发送给区块链网络中的共识节点,以使得所述区块链网络中的共识节点对所述客户端是否具备针对区块链执行所述交易数据所对应交易操作的权限进行共识;
108.接收所述区块链网络中的共识节点返回的共识数据;
109.若根据所述共识数据检测出所述区块链网络中,超过目标比例的共识节点确定所述客户端具备针对区块链执行所述交易操作的权限,则得到用于指示所述客户端具备针对区块链执行所述交易操作的权限的共识结果。
110.在一种实现方式中,所述身份标识包括对所述客户端的身份证书进行哈希计算得到的哈希值;所述智能合约中记录一个或多个客户端的身份证书以及身份证书所对应的哈
希值。
111.可以理解,本技术实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。本技术实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
112.请参阅图6,是本技术实施例提供的一种数据处理设备的结构示意图。本实施例中所描述的数据处理设备,包括:处理器601、存储器602以及网络接口603。上述处理器601、存储器602以及网络接口603之间可以交互数据。
113.上述处理器601可以是中央处理单元(central processing unit,cpu),该处理器还可以是其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现成可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
114.上述存储器602可以包括只读存储器和随机存取存储器,并向处理器601提供程序指令和数据。存储器602的一部分还可以包括非易失性随机存取存储器。其中,所述处理器601调用所述程序指令时用于执行:
115.获取客户端的交易数据,所述交易数据携带所述客户端的身份标识,所述身份标识是根据所述客户端的身份证书确定的;
116.根据所述身份标识从智能合约中查询所述客户端的身份证书;
117.若从所述智能合约中查询到所述客户端的身份证书,且根据所述身份证书确定出所述客户端具备针对区块链执行所述交易数据所对应交易操作的权限,则针对所述区块链执行所述交易数据所对应的交易操作。
118.在一种实现方式中,所述处理器601,具体用于:
119.根据所述身份标识从缓存中存储的智能合约数据中查询所述客户端的身份证书。
120.在一种实现方式中,所述处理器601,还用于:
121.若从所述缓存中存储的智能合约数据中未查询到所述客户端的身份证书,则根据所述身份标识从内存中存储的智能合约中查询所述客户端的身份证书。
122.在一种实现方式中,所述处理器601,还用于:
123.若是从所述内存中存储的智能合约中查询到所述客户端的身份证书,则将所述客户端的身份证书存储到所述缓存中。
124.在一种实现方式中,所述交易数据还包括签名数据,所述签名数据是利用所述客户端的签名密钥针对所述交易数据进行签名处理得到的;所述处理器601,还用于:
125.利用所述签名密钥所对应的解签密钥,对所述签名数据进行解签处理,得到解签数据;
126.根据所述解签数据和所述交易数据确定所述签名数据的签名校验结果;
127.若所述签名校验结果指示所述签名数据校验通过,则执行所述根据所述身份标识从智能合约中查询所述客户端的身份证书的步骤。
128.在一种实现方式中,所述交易数据还包括所述解签密钥;所述处理器601,具体用
于:
129.若从所述智能合约中查询到所述客户端的身份证书,则从所述身份证书中获取所述客户端的解签密钥;
130.若从所述身份证书中获取的解签密钥与所述交易数据包括的解签密钥相匹配,且根据所述身份证书确定出所述客户端具备针对区块链执行所述交易数据所对应交易操作的权限,则针对所述区块链执行所述交易数据所对应的交易操作。
131.在一种实现方式中,所述处理器601,还用于:
132.将所述交易数据发送给区块链网络中的共识节点,以使得所述区块链网络中的共识节点对所述客户端是否具备针对区块链执行所述交易数据所对应交易操作的权限进行共识;
133.接收所述区块链网络中的共识节点返回的共识数据;
134.若根据所述共识数据检测出所述区块链网络中,超过目标比例的共识节点确定所述客户端具备针对区块链执行所述交易操作的权限,则得到用于指示所述客户端具备针对区块链执行所述交易操作的权限的共识结果。
135.在一种实现方式中,所述身份标识包括对所述客户端的身份证书进行哈希计算得到的哈希值;所述智能合约中记录一个或多个客户端的身份证书以及身份证书所对应的哈希值。
136.本技术实施例还提供了一种计算机存储介质,该计算机存储介质中存储有程序指令,所述程序执行时可包括如图2或者图4对应实施例中的基于区块链的数据处理方法的部分或全部步骤。
137.需要说明的是,对于前述的各个方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本技术并不受所描述的动作顺序的限制,因为依据本技术,某一些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本技术所必须的。
138.本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(read-only memory,rom)、随机存取器(random access memory,ram)、磁盘或光盘等。
139.本技术实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。服务器的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该服务器执行上述各方法的实施例中所执行的步骤。
140.以上对本技术实施例所提供的一种基于区块链的数据处理方法、装置、设备以及介质进行了详细介绍,本文中应用了具体个例对本技术的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本技术的方法及其核心思想;同时,对于本领域的一般技术人员,依据本技术的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本技术的限制。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献