区块链的数据处理方法和系统与流程

文档序号:17773016发布日期:2019-05-28 19:40阅读:388来源:国知局
区块链的数据处理方法和系统与流程

本发明涉及区块链技术,更为具体而言,涉及一种区块链的数据处理方法和系统。



背景技术:

在现有的区块链技术中,在涉及到政府相关部分的区块链中,区块链的节点和网络之间的数据交互多是采用端到端模式、数据总线模式或者是逐级上报的模式。这些模式的建设成本、变更成本、运维成本比较高,而且管理复杂,接口稳定性、数据准确性和所有权、以及传输安全性得不到保障。

现有技术中,区块链系统的节点上的数据,一般都需要上传到区块链系统中,导致需要上传的数据量巨大,影响节点上传数据的效率。



技术实现要素:

本发明实施方法提供一种区块链的数据处理方法,通过第一类节点即生态节点与用户进行数据交互,承担业务处理,通过第二类节点即全节点进行数据同步,全节点之间互为备份,支持高并发,提高数据响应效率;而且,在生态节点到全节点的数据传输中,对结构数据和非结构数据分类处理,将结构数据和哈希值同时上链,对于非结构数据,仅将哈希值上链,原始数据保留在节点本地,通过哈希值进行关联,减少非结构化数据上链的数据量,提高节点上传数据的效率。

本发明实施方式的第一方面,提供一种区块链的数据处理方法,应用于区块链系统,所述区块链系统包括第一类节点和第二类节点,所述第一类节点配置为与多个第二类节点进行数据通信,所述第二类节点之间互为备份,所述方法包括:通过第一类节点接收第一用户的上链数据,所述上链数据的数据类型包括结构数据和非结构数据;第一类节点确定所述上链数据的数据类型;响应于所述上链数据为结构数据,将所述上链数据进行哈希变换得到变换数据,将所述变换数据和所述上链数据两者上传到所述第二类节点中的一个或多个;响应于所述上链数据为非结构数据,将所述上链数据进行哈希变换得到变换数据,将所述变换数据上传到所述第二类节点中的一个或多个,将所述上链数据在所述第一类节点的本地保存。

在本发明的一些实施例中,所述上链数据包括第一用户的身份标识数据,包括下述中的一种或多种:婚姻状况、信用信息、行政处罚、税务信息、车辆信息、不动产信息以及消费数据中的一种或多种。

在本发明的一些实施例中,所述第一类节点包括能够在移动终端运行的多种应用程序,每种应用程序用于上传第一用户的预定种类的身份标识数据。

在本发明的一些实施例中,所述方法还包括:为所述上链数据设置业务id,所述业务id与上传所述上链数据的应用程序的功能关联。

在本发明的一些实施例中,所述方法还包括:为所述上链数据设置数据id,所述数据id在与所述第二类节点通信后分配以便确保所述数据id在所述区块链系统中的唯一性。

在本发明的一些实施例中,所述方法还包括:所述第二类节点接收通过所述第一类节点中多种应用程序上传的用户的多种身份标识数据,对所述身份标识数据进行分词处理,根据所述分词处理的结果确定所述用户的标签,并将所述用户的标签与所述用户的身份标识数据关联存储。

在本发明的一些实施例中,所述方法还包括:通过所述第一类节点接收第二用户的资源访问请求,所述资源访问请求包括所述第二用户的角色属性和请求的数据,其中,所述角色属性对应预定的资源访问权限;向所述第二用户所在的第一类节点返回所述第二用户的角色属性具有访问权限的请求数据。

在本发明的一些实施例中,所述方法还包括:接收所述第二用户通过所述第一类节点上传的所述第一用户的关联数据,以便所述第二类节点根据所述第一用户的关联数据修正所述第一用户的标签。

本发明实施方式的第二方面提供一种区块链,包括第一类节点和第二类节点,所述第一类节点配置为与多个第二类节点进行数据通信,所述第二类节点之间互为备份,所述第一类节点包括第一存储器和第一处理器,所述第一存储器存储有计算机指令,所述第一处理器配置为执行所述计算机指令以实现第一类节点对应的方法,所述第二类节点包括第二存储器和第二处理器,所述第二存储器存储有计算机指令,所述第二处理器配置为执行所述第二存储器存储的计算机指令以实现第二类节点对应的方法。

本发明实施方式的第三方面提供一种机器可读的存储介质,其上存储有计算机指令,所述计算机指令被处理器执行时实现第一方面所述的方法。

附图说明

图1示出了根据本发明实施方式的区块链系统的结构示意图。

图2示出了根据本发明实施方式的区块链系统的结构示意图。

图3示出了根据本发明实施方式的区块链数据处理方法的流程示意图。

图4示出了根据本发明实施方式的区块链数据处理的示意图。

图5示出了根据本发明实施方式的区块链系统的结构示意图。

具体实施方式

以下结合附图和具体实施方式对本发明的各个方面进行详细阐述。其中,众所周知的模块、单元及其相互之间的连接、链接、通信或操作没有示出或未作详细说明。并且,所描述的特征、架构或功能可在一个或一个以上实施方式中以任何方式组合。本领域技术人员应当理解,下述的各种实施方式只用于举例说明,而非用于限制本发明的保护范围。还可以容易理解,本文所述和附图所示的各实施方式中的模块或单元或处理方式可以按各种不同配置进行组合和设计。

参见图1,图1示出了根据本发明实施方式的区块链系统的结构示意图。该区块链系统100可包括生态节点102和全节点103、全节点104和全节点105,其中,生态节点为第一类节点,全节点为第二类节点,第一类节点(即生态节点)与用户101进行交互,第二类节点(即全节点)通过网络和其他数据传输方式与生态节点进行交互。需要说明的是,虽然图1示出的区块链系统,仅示出1个生态节点和3个全节点,但是在实际的区块链系统部署中,生态节点和全节点的个数都可以进行相应的设置。

在本发明的一些实施例中,生态节点在一个区块链系统(例如,政务链系统)中可以是多个,每一个生态节点可以包括运行承担区块链的节点数据采集的一种或多种应用程序,该应用程序可以是能够在智能移动设备,例如,收集、平板等电脑等移动设备,运行的应用程序app。这些app可以是由政府机构的不同行政部门开发,用于采集不同种类的数据。在这样的场景下,用户是普通的市民等。

在本发明的一些实施例中,第一类节点包括能够在移动终端运行的多种应用程序,每种应用程序用于上传用户的预定种类的身份标识数据。例如,一些应用程序可以上传用户的生物信息,诸如指纹、性别、面部信息、声音信息以及笔迹信息之类的生物信息,另外一些应用程序可以上传用户的个人特征数据,例如,婚姻状况、信用信息、行政处罚、税务信息、车辆信息、不动产信息以及消费数据中的一种或多种。这些身份标识数据,可以是用户本身自己通过自己下载的用于上传这些身份标识数据的应用程序或者浏览器页面上传,也可以有政务链系统中政府部门的工作人员通过其专用的应用程序或浏览页面进行上传;此外,也可以是政务链系统中有关的商业或企事业单位的工作人员通过应用程序或者浏览页面上传。

在本发明的另外一些实施例中,生态节点还可以采用以浏览器/服务器形式与全节点进行数据交互,这些生态节点可以通过登录账号,访问全节点中的预定资源或数据。

在本发明的实施例的区块链系统中,全节点可以互为备份,其可以采用数据库集群的形式,其数据库可以实时或者按照预定的周期进行数据同步。例如,可以按照数据的性质,对实时性的要求,选择实时同步或者周期同步。这些全节点可以采用分布式存储的形式对生态节点的上链数据进行保存和同步。

在一些实施例中,这些全节点部署于地理位置不同的多个行政区域。例如,可以部署在不同的省份。在另外一些实施例中,全节点还可以部署于同一行政区域的不同行政机构设施内部,例如,可以部署在税务部门、安全部门和监管部门等等。

图2示出了根据本发明实施方式的区块链系统的结构示意图。该区块链系统200可包括全节点201、全节点202、全节点203、全节点204、全节点205和全节点206,生态节点207、生态节点208、生态节点209和生态节点210,其中,全节点201到206之间互为备份,组成一个全节点的系统,可以部署在同一地理位置,也可以部署在不同的地理位置,统一对外,对生态节点提供服务;生态节点207可包括app1、生态节点208可包括app2和app3,生态节点209可包括app4和app5、生态节点210可包括app6,这些app可以是区块链中不同节点的app,例如,可以是源头节点、仓储节点、运输节点、销售节点和用户节点的app等,每个节点可以包括不同厂商的app等。

在另外一些实施例中,全节点可以是部署在不在行政区域的政务链系统中的数据同步和共享的分布式服务器系统,生态节点可以是不同行政部门对公众提供的客户端口,每种端口可包括一种或多种客户端,这些客户端可供用户上传不同的上链数据。

参见图3,图3示出了根据本发明实施方式的区块链数据处理方法的流程示意图,该方法应用于区块链系统,所述区块链系统包括第一类节点和第二类节点,所述第一类节点配置为与多个第二类节点进行数据通信,所述第二类节点之间互为备份,所述方法包括:步骤s301、步骤s302、步骤s303和步骤s304,下面结合具体的例子对上述步骤进行描述。

步骤s301,第一类节点接收第一用户的上链数据,所述上链数据的数据类型包括结构数据和非结构数据。

在本发明的实施例中,第一类节点也可以称为生态节点,其与用户直接进行交互,承担对业务数据的初步处理。用户一侧的上链数据是多种多样的,包括结构数据和非结构的数据,其中,结构数据可包括预定的数据格式和数据长度,方便在区块链的网络一侧的全节点进行保存和处理。非结构数据,例如,节点一侧的办公文档、xml、html、各类报表、图片和音频、视频信息等,其不具有固定的结构,存取不便,而且对于政务链系统,这样的非结构数据所占的比重不小,因此对非结构化数据的上链处理,关系到政务链系统的数据整体的上链处理效率,以及网络一侧的非结构化数据处理效率。需要说明的是,第一用户可以能够与生态节点交互的任意一个用户。在政务链系统中,不同的生态节点处,对应不同种类的第一用户。

步骤s302,第一类节点确定所述上链数据的数据类型。

在本发明的实施例中,如上所述,待上链数据的数据,从数据类型角度划分,可以分为结构数据和非结构数据。在一些实施例中,可以根据上链数据的后缀或约定字段确定待上链数据的数据类型,例如,后缀为xml、html和text的上链数据为非结构数据。在本发明的其他实施例中,还可以采用其他方式确定上链数据的数据类型,本发明实施方式对此不做限定。

步骤s303,响应于所述上链数据为结构数据,将所述上链数据进行哈希变换得到变换数据,将所述变换数据和所述上链数据两者上传到所述第二类节点中的一个或多个。

在本发明的实施例中,如果确定上链数据为结构数据,例如,能够直接存储到全节点的数据库的数据库表中的数据,则可以直接对该结构数据进行哈希变换,得到变换数据,将变换数据和原始的上链数据两者进行关联,然后将关联后的数据上传到全节点,可以上传到全节点中的一个或者多个(例如,大于或等于2个)。在一种具体的实施例中,变换数据可以是哈希值,其可以作为原始的上链数据的一部分,例如,标识部分。

步骤s304,响应于所述上链数据为非结构数据,将所述上链数据进行哈希变换得到变换数据,将所述变换数据上传到所述第二类节点中的一个或多个,将所述上链数据在所述第一类节点的本地保存。

在本发明的实施例中,如果确定上链数据为非结构数据,则仅仅将该非结构化的上链数据进行哈希变换,得到变换数据,然后仅将变换数据上传到全节点,例如,全节点中的一个或多个(例如,大于或等于2个)。对于非结构化的原始的上链数据,则保存到生态节点的本地。

在一种具体的实施例中,政务链系统中区块链节点的数据上传可以如图4所示。区块链节点上的结构化数据401可以生成哈希值403,并将原始数据(即原始的上链数据)404一起上传到政务链区块407、408、409和410中的任意一个区块,在图4中,上传到政务链区块408。对于非结构化数据402,生成哈希值405,然后仅将变换得到的哈希值上传到政务链区块408。原始数据406,即原始的非结构化数据,保存到本地文件411。

本发明实施方式提供的区块链数据处理方法,结构化数据上链,非结构化数据哈希值上链,原始数据保留本地,通过哈希值进行关联。此方式节省了链上数据空间,并且上链非结构数据的hash值以后,也能够避免本地存储的数据被篡改,提高了数据安全性。

在一些实施例中,在上链数据的加密过程中,使用公钥和私钥。具体而言,私钥是一个32字节随机数,由64个十六进制的字符组成,正常情况下一个账户所生成的私钥与其他账户正好相同的概率几乎为零。

私钥为256位/32个字节,也就是64个16进制字符,例如

070fb48e48f0c6488e0491869ce3e556635728f445045731c4d4859e69735a0b

公钥为512位/64字节,也就是128个16进制字符,例如

4c6c17445245c0e8d2df5ef924934d6488797831a694ee77c00f1ea58f44f0d82d1a594d40097eaed749f230b0cbb36e6656fa500c64eb3ff3b46a6807eb8789

从公钥推导出公钥哈希地址,通常为一串十进制数字,也就是keyid:

4701480943326592696

从公钥哈希值推导出钱包地址:

0470-1480-9433-2659-2696

需要说明的是,账户:区块链系统上每个账户都由一对密钥定义,一个公钥和一个私钥。私钥是保密的,而公钥对外都是公开的。钱包是一个比较形象的概念,一个账户通常由私钥文件来控制,拥有私钥的用户就可以拥有对应地址的账户里的数据使用权。通常把管理这些数字密钥的软件称为“钱包”。“备份钱包”可以指备份账户的私钥文件,可以包括助记词、keystore、私钥、种子。纸钱包,纸钱包的实质就是将keystore文件或者私钥以纸质的形式保存(例如,二维码的形式)。

在一种具体的实施例中,钱包地址生成流程可包括:随机数(熵)->助记词->种子->私钥->公钥->钱包地址。其中,随机数可以通过固定词库生成助记词,固定词库可以由用户自己选择。私钥的字符串没有规律可循,并且可读性低难以记忆。在使用钱包保存数据货币时,可以使用到助记词来代替私钥。助记词相当于另一种形式的私钥。

助记词是明文私钥的另一种表现形式,其目的是为了帮助用户记忆复杂的私钥(64位的哈希值)。助记词一般由12、15、18、21个单词构成,这些单词都取自一个固定词库,其生成顺序也是按照一定算法而来。助记词是有序的,且词库很大,排列组合非常多,“撞词”的概率几乎不存在。

助记词的生成可包括下述的几个步骤:

1.生成一个长度为128~256位(bits)的随机序列(熵),例如,长度为128bits。

2.取熵哈希后的前n位作为校验和(n=熵长度/32),例如,n为4。

3.随机序列+校验和,例如,将128bits的熵序列和校验和4bits组合,得到132bits.

4.把步骤三得到的结果每11位切割,例如,将132bit每11位切割,得到12块(segments)。

5.步骤四得到的每11位字节匹配固定词库的一个词。

6.步骤五得到的结果就是助记词串。

助记词可以生成种子,种子可以生成私钥。为了从助记词中生成二进制种子,采用哈希算法,把助记词经过多次迭代计算进行加密。当然肯定是不可逆的,可以防止碰撞破解。

本发明实施例采用椭圆曲线数据签名算法(ellipticcurvedigitalsignaturealgorithm,ecdsa)算法函数,通过调用,可以直接生成密钥对(一个私钥和一个公钥)。通过公钥,先进行sha-256哈希运算,2.对结果进行sha-512哈希运算,3.对结果进行64位的循环冗余校验,4.最后进行补全、求余、计算字节效验和等运算,最后构造出一个整型数(keyid)。5.补全到20字节字符串,用“-”号分隔成五部分,变成xxxx-xxxx-xxxx-xxxx-xxxx格式。

本发明实施例采用加密算法对生态节点上传的数据进行加密,生成的字符串无法反推内容,且哈希值唯一,无法篡改,提高了上链数据的安全性和可追溯性。

在本发明的一些实施例中,上链数据包括第一用户的身份标识数据,包括下述中的一种或多种:婚姻状况、信用信息、行政处罚、税务信息、车辆信息、不动产信息以及消费数据中的一种或多种。所述第一类节点,即生态节点,包括能够在移动终端运行的一种或多种应用程序,每种应用程序用于上传第一用户的预定种类的身份标识数据。

在本发明的一些实施例中,还可以包括:为所述上链数据设置业务id,所述业务id与上传所述上链数据的应用程序的功能关联。例如,可以将上链数据设置对应的业务标号,该业务标号可以与该应用程序所对应的功能关联。例如,用于政务链中xx行政部门的应用程序,其对应上链数据的业务id与该xx行政部门的应用程序的功能关联。一种业务数据对应一个业务id标号。区块链系统中不同的业务id可以互相关联,通过业务id之间的关联标识,可以确定方便地确定各环节之间的拓扑结构。

在本发明的一些实施例中,所述方法还包括:为所述上链数据设置数据id,所述数据id在与所述第二类节点通信后分配以便确保所述数据id在所述区块链系统中的唯一性。通过设置数据id,可以确定数据在区块链的各个环节的记录。

本发明的一些实施例中,所述方法还包括:所述第二类节点接收通过所述第一类节点中多种应用程序上传的用户的多种身份标识数据,对所述身份标识数据进行分词处理,根据所述分词处理的结果确定所述用户的标签,并将所述用户的标签与所述用户的身份标识数据关联存储。

在一些实施例中,一个用户可以包括多种标签,例如,可以是区域标签,例如,北京、上海等,这些区域可以表示出生地、工作地点、居住起点等等。在另外一些实施例中,标签还可以是个人特征信息的标签,例如,失信人员、老赖等。

在一些实施例中,可以将用户的身份标识数据进行编码存储,而将用户的标签放置于身份标识数据的编码数据之外,也就是说,在访问该用户的身份标识数据时,在对该用户的身份标识数据进行解码获取之前,即可提前获取该用户的标签,这样的存储方式方便通过用户标签进行身份数据验证。

例如,全节点中用户a的地区标签为110,对应北京,如果采用其他的标签,例如,120,对应上海,其验证是不成功。在另外一些实施例中,可以通过多种标签组合验证,例如,可以同时验证区域标签和第一个人特征标签。

本发明实施例提供的标签数据可以保存在编码的数据主体之外,方便获取,在对身份数据的验证中,能够在不解码数据主体的情况下,对用户关联的标签数据进行验证,能够显著提高对用户身份标识数据的验证效率,特别是在用户的身份标识数据的数据总量较多的场景下。

本发明的一些实施例中,所述方法还包括:接收所述第二用户通过所述第一类节点上传的所述第一用户的关联数据,以便所述第二类节点根据所述第一用户的关联数据修正所述第一用户的标签。需要说明的是,第二用户可以是在与生态节点交互的任意一个用户。例如,第二用户可以是在政府中管理预定数据的工作人员。在一些实施例中,用户的标签是综合多种关联数据后确定的,在这样的场景下,用户的标签可以根据新上传的该用户的关联数据进行更新,提高标签数据标注的准确性。

本发明的一些实施例中,所述方法还包括:通过所述第一类节点接收第二用户的资源访问请求,所述资源访问请求包括所述第二用户的角色属性和请求的数据,其中,所述角色属性对应预定的资源访问权限;向所述第二用户所在的第一类节点返回所述第二用户的角色属性具有访问权限的请求数据。第二用户可以设置对应的角色,具有对应的数据范围和资源访问权限。每个角色可设置对应的资源权限,实现对资源的精细粒度控制。这些资源权限可以通过功能、服务和字段等进行设置。例如,规范资源目录,建立资源共享渠道。在一种具体的实施例中,可以建立共享资源池,资源池中包括模块资源、服务资源、数据资源和文档资源,这些资源可以由各个区块链的节点入池。功能权限可以对应模块资源,服务权限可以对应服务资源,字段可以对应数据资源和文档资源等。用户对共享资源池的访问,可以对其中的模块资源、服务资源、数据资源和文档资源等分别设置权限,实现对不同资源的精细粒度控制。

一个角色可以包括对多种不同资源的不同级别的访问权限。例如,角色xx,对政务链的共享资源池中的数据资源具有a级访问权限,对文档资源具有m级访问权限,对服务资源具有n级访问权限等。

本发明实施方式还提供一种区块链系统,如图5所示,该区块链系统500包括第一类节点501和第二类节点502,第一类节点可以上面描述的生态节点,其可以是在智能手机、平板电脑、个人电脑或者笔记本电脑等,第二类节点可以是上面描述的全节点,其可以是计算机或者服务器集群的形式,以分布式的形式进行部署。

所述第一类节点,即生态节点,可以是专用的计算机设备,包括第一存储器5011和第一处理器5012,所述第一存储器存储有计算机指令,所述第一处理器配置为执行所述计算机指令以实现第一类节点对应的方法,所述第二类节点,即全节点,可以是专用的计算机设备,包括第二存储器5021和第二处理器5022,所述第二存储器存储有计算机指令,所述第二处理器配置为执行所述第二存储器存储的计算机指令以实现第二类节点对应的方法。

本发明实施方式还提供一种机器可读的存储介质,其上存储有计算机指令,所述计算机指令被处理器执行时实现上面所述的方法。其中,所述机器可读的存储介质可以包含在第一类节点上的存储介质,又可以包括在第二类节点上的存储介质。在区块链系统中,这些存储介质是非易失性的存储介质。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件结合硬件平台的方式来实现。基于这样的理解,本发明的技术方案对背景技术做出贡献的全部或者部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,智能手机或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。

本发明说明书中使用的术语和措辞仅仅为了举例说明,并不意味构成限定。本领域技术人员应当理解,在不脱离所公开的实施方式的基本原理的前提下,对上述实施方式中的各细节可进行各种变化。因此,本发明的范围只由权利要求确定,在权利要求中,除非另有说明,所有的术语应按最宽泛合理的意思进行理解。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1