区块链信息追踪方法和系统与流程

文档序号:17758006发布日期:2019-05-24 21:27阅读:546来源:国知局
区块链信息追踪方法和系统与流程

本发明涉及区块链技术领域,具体地,涉及一种区块链信息追踪方法和系统。



背景技术:

区块链技术是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算方式。区块链技术应用在信息追踪方面能够大大节省信息追踪的时间。

专利文献cn107944894a公开了一种基于区块链技术的零售商品追踪方法,分为第一步,定义零售商品的初始信息,并加入区块链系统中的创世区块中,第二步,对商品的流通信息进行定义,并规划其中经历的状态,第三步,商品的流通信息形成了一条追溯链,对零售商品在流通过程中涉及的过程进行详细分析,并符号化表示,当发生转移时,向区块链系统中写入信息,最后,讨论了形成了追踪链的定义以实现商品的追踪。但是上述专利文献在信息传输方式上存储缺陷,针对每次信息追踪请求,都需要对所有节点参与运算,计算得到最佳最近的节点位置,导致了整体效率比较慢。



技术实现要素:

针对现有技术中的缺陷,本发明的目的是提供一种区块链信息追踪方法和系统。

根据本发明提供的一种区块链信息追踪方法,包括:

文件加密步骤:采用非对称加密算法产生密钥对,使用密钥对对账户加密,采用电子签名对文件进行签名处理,得到第一加密文件;

数据传输步骤:采用p2p网络进行数据传输,通过服务器的搜索指定第一节点与新加入节点建立连接通道,通道连接后,令新加入节点采用泛洪机制进行全网广播,令密钥对的公钥公布到p2p网络;

数据存储步骤:第一加密文件存储在单机指定存储区域,当接收到传输请求时,则联网通过密钥对的私钥验证传输请求;

数据追踪步骤:令第一加密文件生成时间戳后加密,得到第二加密文件,令第二加密文件生成公有链,所述公有链包括文件过程信息;

数据读取步骤:通过密钥对的私钥验证数据读取请求,验证通过后读取公有链,查看或下载文件。

优选地,所述文件加密步骤包括:

生成密钥对步骤:使用sha3-256算法生成密钥对,以账户地址为索引,通过截取密钥对的公钥的字节编码,得到账户地址加密编码;

文件签名步骤:采用椭圆曲线算法得到文件签名。

优选地,所述文件签名步骤包括:

选取计算基点步骤:选取椭圆曲线ep(a,b)、基点g,选取私钥k,计算公钥k=kg,其中a表示椭圆曲线的第一坐标值,b表示椭圆曲线的第二坐标值,k<n,n表示g的阶;

生成签名步骤:选取随机整数r,得出计算点r=rg,将公钥和计算点r的坐标值x,y作为参数,计算sha1做为hash,即hash=sha1(公钥,x,y),计算s≡r-hash*k(modn),得到签名值(r,s)。

优选地,所述文件加密步骤还包括签名验证步骤:根据文件签名进行取模运算,进行签名验证,取模运算公式如下:

sg+h(m)k=(x1,y1),r1≡x1modk;

k=kg;

式中,s表示签名值中的第二要素;

g表示基点;

h(m)表示接收到的消息值;

k表示私有密钥,且k<n,n为g的阶;

k表示公开密钥;;

r1表示签名值中的第一要素;

x1表示计算点的第一坐标值;

y1表示计算点的第二坐标值。

根据本发明提供的一种区块链信息追踪系统,包括:

文件加密模块:采用非对称加密算法产生密钥对,使用密钥对对账户加密,采用电子签名对文件进行签名处理,得到第一加密文件;

数据传输模块:采用p2p网络进行数据传输,通过服务器的搜索指定第一节点与新加入节点建立连接通道,通道连接后,令新加入节点采用泛洪机制进行全网广播,令密钥对的公钥公布到p2p网络;

数据存储模块:第一加密文件存储在单机指定存储区域,当接收到传输请求时,则联网通过密钥对的私钥验证传输请求;

数据追踪模块:令第一加密文件生成时间戳后加密,得到第二加密文件,令第二加密文件生成公有链,所述公有链包括文件过程信息;

数据读取模块:通过密钥对的私钥验证数据读取请求,验证通过后读取公有链,查看或下载文件。

优选地,所述文件加密模块包括:

生成密钥对模块:使用sha3-256算法生成密钥对,以账户地址为索引,通过截取密钥对的公钥的字节编码,得到账户地址加密编码;

文件签名模块:采用椭圆曲线算法得到文件签名。

优选地,所述文件签名模块包括:

选取计算基点模块:选取椭圆曲线ep(a,b)、基点g,选取私钥k,计算公钥k=kg,其中a表示椭圆曲线的第一坐标值,b表示椭圆曲线的第二坐标值,k<n,n表示g的阶;

生成签名模块:选取随机整数r,得出计算点r=rg,将公钥和点r的坐标值x,y作为参数,计算sha1做为hash,即hash=sha1(公钥,x,y),计算s≡r-hash*k(modn),得到签名值(r,s)。

优选地,所述文件加密模块还包括签名验证模块:根据文件签名进行取模运算,进行签名验证,取模运算公式如下:

sg+h(m)k=(x1,y1),r1≡x1modp;

k=kg;

式中,s表示签名值中的第二要素;

g表示基点;

h(m)表示接收到的消息值;

k表示私有密钥,且k<n,n为g的阶;

k表示公开密钥;

r1表示签名值中的第一要素;

x1表示计算点的第一坐标值;

y1表示计算点的第二坐标值。与现有技术相比,本发明具有如下的有益效果:

1、本发明能够实现在服务器端对公钥信息记录使用分布式存储,保证数据安全性能;

2、本发明有利于实现移动端的数据连接公有链;

3、本发明能够在服务器端实现计算最近结点的云计算方式,解决单个客户端寻找最近结点慢的问题。

附图说明

通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:

图1为本发明的系统模块示意图。

具体实施方式

下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。

根据本发明提供的一种区块链信息追踪方法,包括:

文件加密步骤:采用非对称加密算法产生密钥对,使用密钥对对账户加密,采用电子签名对文件进行签名处理,得到第一加密文件;

数据传输步骤:采用p2p网络进行数据传输,通过服务器的搜索指定第一节点与新加入节点建立连接通道,通道连接后,令新加入节点采用泛洪机制进行全网广播,令密钥对的公钥公布到p2p网络;

数据存储步骤:第一加密文件存储在单机指定存储区域,当接收到传输请求时,则联网通过密钥对的私钥验证传输请求;

数据追踪步骤:令第一加密文件生成时间戳后加密,得到第二加密文件,令第二加密文件生成公有链,所述公有链包括文件过程信息;

数据读取步骤:通过密钥对的私钥验证数据读取请求,验证通过后读取公有链,查看或下载文件。

具体地,所述文件加密步骤包括:

生成密钥对步骤:使用sha3-256算法生成密钥对,以账户地址为索引,通过截取密钥对的公钥的字节编码,得到账户地址加密编码;

文件签名步骤:采用椭圆曲线算法得到文件签名。

具体地,所述文件签名步骤包括:

选取计算基点步骤:选取椭圆曲线ep(a,b)、基点g,选取私钥k,计算公钥k=kg,其中a表示椭圆曲线的第一坐标值,b表示椭圆曲线的第二坐标值,k<n,n表示g的阶;

生成签名步骤:选取随机整数r,计算点r=rg,将公钥和点r的坐标值x,y作为参数,计算sha1做为hash,即hash=sha1(公钥,x,y),计算s≡r-hash*k(modn),得到签名值(r,s)。

具体地,所述文件加密步骤还包括签名验证步骤:根据文件签名进行取模运算,进行签名验证,取模运算公式如下:

sg+h(m)k=(x1,y1),r1≡x1modp;k=kg;

式中,s表示签名值中的第二要素;

g表示基点;

h(m)表示接收到的消息值;

k表示私有密钥,且k<n,n为g的阶;

k表示公开密钥;r1表示签名值中的第一要素;

x1表示计算点的第一坐标值;

y1表示计算点的第二坐标值。

根据本发明提供的一种区块链信息追踪系统,包括:

文件加密模块:采用非对称加密算法产生密钥对,使用密钥对对账户加密,采用电子签名对文件进行签名处理,得到第一加密文件;

数据传输模块:采用p2p网络进行数据传输,通过服务器的搜索指定第一节点与新加入节点建立连接通道,通道连接后,令新加入节点采用泛洪机制进行全网广播,令密钥对的公钥公布到p2p网络;

数据存储模块:第一加密文件存储在单机指定存储区域,当接收到传输请求时,则联网通过密钥对的私钥验证传输请求;

数据追踪模块:令第一加密文件生成时间戳后加密,得到第二加密文件,令第二加密文件生成公有链,所述公有链包括文件过程信息;

数据读取模块:通过密钥对的私钥验证数据读取请求,验证通过后读取公有链,查看或下载文件。

具体地,所述文件加密模块包括:

生成密钥对模块:使用sha3-256算法生成密钥对,以账户地址为索引,通过截取密钥对的公钥的字节编码,得到账户地址加密编码;

文件签名模块:采用椭圆曲线算法得到文件签名。

具体地,所述文件签名模块包括:

选取计算基点模块:选取椭圆曲线ep(a,b)、基点g,选取私钥k,计算公钥k=kg,其中a表示椭圆曲线的第一坐标值,b表示椭圆曲线的第二坐标值,k<n,n表示g的阶;

生成签名模块:选取随机整数r,计算点r=rg,将公钥和点r的坐标值x,y作为参数,计算sha1做为hash,即hash=sha1(公钥,x,y),计算s≡r-hash*k(modn),得到签名值(r,s)。

具体地,所述文件加密模块还包括签名验证模块:根据文件签名进行取模运算,进行签名验证,取模运算公式如下:

sg+h(m)k=(x1,y1),r1≡x1modp;k=kg;

式中,s表示签名值中的第二要素;

g表示基点;

h(m)表示接收到的消息值;

k表示私有密钥,且k<n,n为g的阶;

k表示公开密钥;r1表示签名值中的第一要素;

x1表示计算点的第一坐标值;

y1表示计算点的第二坐标值。

本发明提供的区块链信息追踪系统,可以通过区块链信息追踪方法的步骤流程实现。本领域技术人员可以将区块链信息追踪方法理解为所述区块链信息追踪系统的优选例。

以下对本发明的优选例进行阐述。

如图1所示,本方法包括如下步骤:

步骤1:文件安全(包含加密算法);

步骤1.1:账号非对称加密算法;

使用sha3-256实现非对称算法,相对对称加密,非对称有公钥和私钥两个钥匙来验证数据,每个账户都由一对钥匙定义,一个私钥(privatekey)和一个公钥(publickey)。账户以地址为索引,地址由公钥衍生而来,取公钥的最后20个字节。每对私钥/地址都编码在一个钥匙文件里。该文件是json格式的,公钥:通过openssl可以同时得到私钥和公钥;私钥:私钥是一组64位的16进制字符,通过私钥我们能够访问一个账户。私钥生成是通过secp256k1^5曲线生成的,secp256k1是一个椭圆曲线算法。

步骤1.2:文件签名:椭圆曲线数字签名ecdsa是ecc与dsa的结合,整个签名过程与ds似,所不一样的是签名中采取的算法为ecc,最后签名出来的值也是分为r,s。

签名过程如下:1、选择一条椭圆曲线ep(a,b)和基点g;2、选择私有密钥k(k<n,n为g的阶),利用基点g计算公开密钥k=kg;3、产生一个随机整数r(r<n),计算点r=rg;4、将原数据和计算点r的坐标值x,y作为参数,计算sha1做为hash,即hash=sha1(原数据,x,y);5、计算s≡r-hash*k(modn);6、r和s做为签名值,如果r和s其中一个为0,重新从第3步开始执行。其中,原数据表示原有的公钥参数,计算点在签名过程中用于公式标准,原数据用于计算公式过程必要值。

验证过程如下:1、接受方在收到消息(m)和签名值(r,s)后,进行以下运算;2、计算:sg+h(m)p=(x1,y1),r1≡x1modp;3、验证等式:r1≡rmodp;4、如果等式成立,接受签名,否则签名无效。例如:x=参数x,y=参数y,选取随机数k=3,假设h(m)=4,则计算(x,y)=kg=3(x,y)=kg=3(0,2)=(11,9),r=xmodn=11mod23=11,s=kh(m)×namodp=3-4×9mod23=13.因此对m的签名为(1113),验证过程:签名接收者乙得到签名后计算:sg+h(m)p=13g+4p=(11,9),r1=x1;modn=11模29=11=r因此乙签名接受。

步骤2:数据传输:以p2p混合式结构化模型传输和管理,通过服务器的搜索指定最近的节点寻找在p2p节点之间建立网络,在一个新的加入节点和p2p网络中的某个节点建立连接通道,从而形成一个拓扑结构;新节点与最近节点建立连接后,还需要进行全网广播,让整个网络知道该节点的存在.全网广播的方式就是,该节点首先向邻居节点广播,邻居节点收到广播消息后,再继续向自己的邻居节点广播,以此类推,从而广播整个网络.这种广播方法也称为泛洪机制,当然在广播之前同时服务器也会收到他们连接的消息,但是这个广播不是由服务器来发送;当连接成功广播发送完成节点与节点之间进行数据传输.传输完成把文件加密的公钥公布到p2p网络和服务方便追踪。

步骤3:数据存储:所有的文件数据都存储在自己指定的服务器或者个人存储区域,每个存储区域可以不用联网,当你需要提供或者获取客户的文件时在联网,通过私钥验证客户的文件预览或者下载请求,这样保证网络传输的安全性同时也保证文件的安全性。

步骤4:数据追踪:追踪的本质就是信息的传递,通过sha3-256实现非对称算法对文件加时间进行加密得到公有链,每个公有链都包含上一个生成的公有链的信息,其中包含谁查看谁下载,以此类推可以追踪到最原始的公有链。

步骤5:数据读取(包含下载):通过生成的公有链可以查看文件信息,但是如果是要下载和预览必须要通过私钥验证通过以后才能查看。

本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统、装置及其各个模块以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统、装置及其各个模块以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同程序。所以,本发明提供的系统、装置及其各个模块可以被认为是一种硬件部件,而对其内包括的用于实现各种程序的模块也可以视为硬件部件内的结构;也可以将用于实现各种功能的模块视为既可以是实现方法的软件程序又可以是硬件部件内的结构。

以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。

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