首页 / 专利库 / 银行与财务事项 / 比特币钱包 / 一种基于区块链的P2P安全下载检测方法及系统

一种基于链的P2P安全下载检测方法及系统

阅读:559发布:2020-05-16

专利汇可以提供一种基于链的P2P安全下载检测方法及系统专利检索,专利查询,专利分析的服务。并且本 发明 提供了一种基于 区 块 链 的P2P安全下载检测方法及系统,所述方法主要包含:P2P网络构造、 节点 请求 下载文件 片段 过程、文件片段下载过程、激励与惩罚过程、共识过程及记账过程。本发明提出了一种在无中心 服务器 情况下,P2P网络下载中虚假片段检测的第三方可信公有链的数据组织方法,通过建立公有链来保证链上全部信息不可篡改、可追溯、具有时间戳等性质,以此建立P2P网络的信任机制,去除第三方信任平台,实现虚假片段的检测。,下面是一种基于链的P2P安全下载检测方法及系统专利的具体信息内容。

1.一种基于链的P2P安全下载检测方法,其特征在于,包含如下步骤:
S1、P2P网络构造:P2P网络的构造包含安装P2P客户端和P2P网络协议;其中将参与P2P下载的每个节点均安装客户端,所述P2P客户端包括:比特币客户端、以太坊客户端、以太坊钱包;所述P2P协议可实现节点发现和网络组网功能,所述节点可以自由加入和退出P2P网络;
所述以太坊钱包里存储私钥PRKx,使用椭圆曲线乘法单向加密函数产生公钥PUKx,使用椭圆曲线乘法单向加密函数生成特定收款地址ADx;
P2P网络中,安装了挖矿软件的节点在挖矿网站上注册之后成为矿工;P2P网络中的每个节点维护各自的本地文件片段的列表,列表格式为:,其中Num1为所述文件片段在列表中的位置序号,Segment1表示文件片段,Length1文件片段字节大小,File1[Start,End]表示文件片段在文件中的起止位置,hash(Segment1)表示所述文件片段的哈希值;
S2、节点请求下载文件片段过程:区块链中的任一请求节点N1在P2P网络中发布需要下载的文件片段的起止位置信息,区块链中其他所有节点收到所述信息后,和本地文件片段的列表进行核对,如果存在任意一个节点有所述文件片段,则所有的所述任意一个节点将文件片段的哈希值均传送给请求节点N1,请求节点N1收到后,核对所述文件片段哈希值与节点N1下载的文件列表中的文件片段哈希值是否一致,如果一致,则在所有的所述任意一个节点中选择距离请求节点N1最近、传输速度最快且带宽最大的一个节点N2与请求节点N1建立连接;
S3、文件片段下载过程:下载文件片段前,节点N1需要支付给节点N2代币,代币的个数为n个,下一次使用代币需要节点的多重签名,节点N2在等待全网共识账本已经完成k个区块的确认后,再向节点N1发送文件片段,其中n>0,k>0;
S4、激励与惩罚过程:节点N1下载文件片段后,进行核验所述文件片段的哈希值是否与预知的文件片段哈希值一致,如果正确则表明所述文件片段正确无误,则节点N1给节点N2提供签名,允许节点N2使用代币,否则不提供签名;如果N1在下载到正确文件片段后不提供签名,则第三方仲裁机构T介入,验证N1是否故意不支付,如果验证属实,则强制节点N1提供签名,允许节点N2使用代币;
S5、共识过程:通过基于PoW和PoS的联合机制,P2P网络可动态调整PoW共识过程的难度值,最先找到正确的解随机数的并经过全体节点验证的节点N3将会获得当前交易的记账权;
S6、记账过程:获得交易记账权的节点N3将节点N1与N2的交易信息打包成BLOCK,然后根据数据传播协议通知全网其他节点,通过交易验证机制,全网节点对该区块进行合法性验证,若验证通过,则记账节点将BLOCK放入共有链;记账的节点客户端满足具有挖矿打包区块功能,记账节点会取得n的比例p,即p*n作为手续费,所述手续费由N1支付。
2.根据权利要求1所述一种基于区块链的P2P安全下载检测方法,其特征在于,步骤S6中所述的公有链区块BLOCK数据结构包括:
A1区块体:A11当前区块的交易数量、A12经过验证的区块创建过程中生成的所有交易记录、A13当前区块大小;
A2区块头:A21当区块前版本号、A22前一区块地址、A23当前区块的目标哈希值、A24当前区块PoW共识过程的解随机数、A25Merkle根、A26当前区块生成的时间戳;
公有链区块上内容数据的数据结构包括:
B1元数据、B2交易费用、B3手续费、B4数据签名;
其中,哈希值:交易数据编码为特定长度的由数字和字母组成的字符串;
Merkel根:将区块体的数据进行分组哈希,将相邻的字符串合并为一个字符串,然后运算这个字符串的哈希,hash(hash(data1)||hash(data2)),得到数目少一级的哈希,如此递归直到只剩最后一个根哈希值记为区块头的Merkle根;
时间戳:主链上各区块是按照时间顺序依次排列的,记录区块数据的写入时间。时间戳可以作为区块数据的存在性证明。
3.根据权利要求1所述一种基于区块链的P2P安全下载检测方法,其特征在于,步骤S1中参与下载的节点包含全节点和挖矿节点,其中全节点为具有完整的、最新的区块链拷贝,能够独立自主进行交易的节点;挖矿节点是通过工作量证明算法,参与矿池挖矿,以相互竞争的方式创建新的区块的节点;
步骤S1中参与下载的所有节点可以自由加入和退出P2P网络,所述自由加入过程具体为:一个新的节点N0加入网络后,立即进行区块链账本数据的同步,先向一个知道节点N0的节点Np发送一个消息,然后询问节点Np还知道什么其他节点,链接到节点Np知道的其他节点Np0、Np1...Npm上。
4.根据权利要求1所述一种基于区块链的P2P安全下载检测方法,其特征在于,步骤S1中所述的以太坊钱包,用来保存比特币地址和私钥,可以用来接受、发送和储存代币,公钥由用户钱包生成,公钥是比特币地址,公钥加密创建一个密钥对,用于控制代币的获取;密钥对包括一个私钥和由私钥衍生出的唯一的公钥,公钥用于接收代币,私钥用于代币支付时的交易签名,交易支付时,代币的当前所有者需要在交易中提交其公钥和签名,通过P2P网络中所有在线节点提交的公钥和签名进行验证,确认所述交易是否有效,即确认支付节点在该时刻对所交易的代币拥有所有权。
5.根据权利要求1所述一种基于区块链的P2P安全下载检测方法,其特征在于,步骤S3中所述多重签名,具体为获得三个节点中的任意两个节点的签名,预设N1和N2均信任的第三方仲裁机构T,T也有所述下载的文件片段,只要交易满足三个节点中有任意两个节点同时进行交易并签名,那么判断交易有效。
6.根据权利要求1所述一种基于区块链的P2P安全下载检测方法,其特征在于,步骤S4具体为节点N1从节点N2下载到文件片段后,节点N1计算文件片段的哈希值,与本地存有的哈希列表进行比对核验,如果一致,则说明节点N2在此次交易中诚实,当N2使用来自N1的代币的时候,N1提供签名,若节点N1拒绝提供签名,节点N2由于不满足多重签名条件而不能继续交易,如果节点N1收到正确片段后,欺骗N2收到不正确文件片段,那么申请第三方仲裁机构T介入。
7.根据权利要求1所述一种基于区块链的P2P安全下载检测方法,其特征在于,步骤S5中所述的PoW共识机制为:各个挖矿节点基于各自的计算机算理相互竞争来共同解决一个SHA256数学问题,最快解决所述问题的节点将获得区块记账权和系统自动生成的奖励,所述数学问题可表述为:根据当前交易难度值,通过搜索求解一个合适的随机数,使得公有链区块BLOCK区块头各元数据的双SHA256哈希值小于或等于预设的指定哈希值,Pos权益证明,Pow是一种升级共识机制,根据每个节点所占代币的比例和时间,等比例的降低挖矿难度,从而加快找随机数的速度,采用权益证明来代替PoW中的基于哈希算的工作量证明,根据挖矿节点持有数字货币的量和时间,分配给挖矿节点相应的利息。
8.根据权利要求1所述一种基于区块链的P2P安全下载检测方法,其特征在于,步骤S6中,获得记账权的挖矿节点N3,将区块BLOCK放入公有链BC的过程包含:节点N3根据BLOCK区块的内容数据B,计算出区块大小A23和区块头信息A1,生成随机数A14,将区块大小、区块头信息及随机数与内容数据B一起作为整个区块加入公有链;
步骤S6中所述的获得记账权过程,如果同一段时间内有两个挖矿节点同时计算出正确的随机数,会出现暂时的分叉情况,约定挖矿节点总是选择延长累计工作量证明最大的区块链;因此,当主链分叉后,后续区块的挖矿节点将通过计算和比较,将自身的区块链连接到当前累计工作量证明最大化的备选链上,形成更长的新主链,从而解决分叉问题,取得记账权的挖矿节点将当前区块链连接到前一区块,形成最新的区块主链接,各个区块依次环环相接,形成从创始区块到当前区块的一条最长主链;
步骤S6中,交易费用的计算方法为:根据P2P全网约定的方法计算,或者根据交易节点之间临时交互商讨的价格计算,或者根据交易传输的字节数量计算。
9.根据权利要求1所述一种基于区块链的P2P安全下载检测方法,其特征在于,步骤S6中,将BLOCK区块记入公有链,所述公有链账本公开,P2P网络中每个节点都包含一系列区块的总账本,每个区块中都包含了已经被所有节点达成共识的交易清单,全网数据保持同步;
步骤S6中公有链上还包括创世区块,其中创世区块BLOCK0的内容包括:预定义的交易标准清单,数据结构类型、语法规范性、输入输出和数字签名;
步骤S6中所述数据传播协议:任一区块数据生成后,由生成该数据的节点广播到全网其他所有的节点来加以验证;
步骤S6中所述交易验证机制:P2P网络中的每个节点时刻监听网络中广播的数据与新区块,挖矿节点会收集和验证P2P网络中广播的尚未确认的交易数据,并对照预定义的标准清单,从数据结构、语法规范性、输入输出和数字签名四个方面同时校验交易数据的有效性,并将有效交易数据整合到当前区块中;当某挖矿节点“挖”到新区块后,其他某挖矿节点按照预定义标准来校验当前区块包含的工作量证明是否达到预设值,时间戳是否有效;若当前区块包含的工作量证明达到预设值同时时间戳有效,则其他挖矿节点将当前区块链接到主区块链上,并开始竞争下一个新区块。
10.一种基于区块链的P2P安全下载检测系统,其特征在于,采用权利要求1-9任意一项基于区块链的P2P安全下载检测方法来实现区块链的P2P安全下载检测。

说明书全文

一种基于链的P2P安全下载检测方法及系统

技术领域

[0001] 本发明涉及的是区块链及其应用技术领域,特别涉及一种基于区块链的P2P安全下载检测方法及系统。

背景技术

[0002] P2P网络,又称对等网络,具有开放、匿名、自组织的特点,其中每一个节点既充当生产者发布资源,也充当消费者接收资源,节点间可以直接进行连接和数据交换,节点可以自由地加入或离开网络。在P2P下载中,节点向中心索引服务器请求下载共享片段,获取种子文件,然后与其他节点进行通信。这种方法基于绝对信任,一旦中心索引服务器遭受攻击,P2P网络将瘫痪,或者节点被恶意控制,将传播虚假信息,破坏网络。因此,节点的信任度评判是一个急需解决的问题,当前的研究多采用信任模型构建的方法,通过以往的交易评估节点的可信程度来为节点选择高质量服务、避免不安全交互提供选择依据,虽然可以在一定程度上提升网络安全性能,但计算过程依赖于反馈和推荐信息,对于大规模网络中反馈稀疏的情况评估性能较差,存在大量冗余信息,特别当恶意节点提供虚假反馈,发动共谋攻击,女巫攻击等针对信任模型的攻击时难于应对。与此同时,仍保留中心可信平台,容易遭到第三方攻击。为解决该问题,本方法提出一种基于区块链的方法,保障了交易信息的不可篡改、可追溯、时间证据序列等要求。方法涵盖了公有链中交易账本结构、块头结构以及代币发行,共识,挖矿,激励等机制。

发明内容

[0003] 针对现有技术中心可信平台容易受到第三方攻击、网络安全性差及冗余信息过多的缺点,本发明提供了一种基于区块链的P2P安全下载检测方法及系统。所述方法包含以下步骤:
[0004] S1、P2P网络构造:P2P网络的构造包含安装P2P客户端和P2P网络协议;其中将参与P2P下载的每个节点均安装P2P客户端,所述P2P客户端包括:比特币客户端、以太坊客户端、以太坊钱包;所述P2P协议可实现节点发现和网络组网功能,所述节点可以自由加入和退出P2P网络;
[0005] 所述以太坊钱包里存储私钥PRKx,使用椭圆曲线乘法单向加密函数产生公钥PUKx,使用椭圆曲线乘法单向加密函数生成特定收款地址ADx;
[0006] P2P网络中,安装了挖矿软件的节点在挖矿网站上注册之后成为矿工;P2P网络中的每个节点维护各自的本地文件片段的列表,列表格式为:,其中Num1为所述文件片段在列表中的位置序号,Segment1表示文件片段,Length1文件片段字节大小,File1[Start,End]表示文件片段在文件中的起止位置,hash(Segment1)表示所述文件片段的哈希值;
[0007] S2、节点请求下载文件片段过程:区块链中的任一请求节点N1在P2P网络中发布需要下载的文件片段的起止位置信息,区块链中其他所有节点收到所述信息后,和本地文件片段的列表进行核对,如果存在任意一个节点有所述文件片段,则所有的所述任意一个节点将文件片段的哈希值均传送给请求节点N1,请求节点N1收到后,核对所述文件片段哈希值与节点N1下载的文件列表中的文件片段哈希值是否一致,如果一致,则在所有的所述任意一个节点中选择距离请求节点N1最近、传输速度最快且带宽最大的一个节点N2与请求节点N1建立连接;
[0008] S3、文件片段下载过程:下载文件片段前,节点N1需要支付给节点N2代币,代币的个数为n个,下一次使用代币需要节点的多重签名,节点N2在等待全网共识账本已经完成k个区块的确认后,再向节点N1发送文件片段,其中n>0,k>0;
[0009] S4、激励与惩罚过程:节点N1下载文件片段后,进行核验所述文件片段的哈希值是否与预知的文件片段哈希值一致,如果正确则表明所述文件片段正确无误,则节点N1给节点N2提供签名,允许节点N2使用代币,否则不提供签名;如果N1在下载到正确文件片段后不提供签名,则第三方仲裁机构T介入,验证N1是否故意不支付,如果验证属实,则强制节点N1提供签名,允许节点N2使用代币;
[0010] S5、共识过程:通过基于PoW和PoS的联合机制,P2P网络可动态调整PoW共识过程的难度值,最先找到正确的解随机数的并经过全体节点验证的节点N3将会获得当前交易的记账权;
[0011] S6、记账过程:获得交易记账权的节点N3将节点N1与N2的交易信息打包成BLOCK,然后根据数据传播协议通知全网其他节点,通过交易验证机制,全网节点对该区块进行合法性验证,若验证通过,则记账节点将BLOCK放入共有链;记账的节点客户端满足具有挖矿打包区块功能,记账节点会取得n的比例p,即p*n作为手续费,所述手续费由N1支付。
[0012] 在本发明的一种基于区块链的P2P安全下载检测方法中,步骤S6中所述的公有链区块BLOCK数据结构包括:
[0013] A1区块体:A11当前区块的交易数量、A12经过验证的区块创建过程中生成的所有交易记录、A13当前区块大小;
[0014] A2区块头:A21当区块前版本号、A22前一区块地址、A23当前区块的目标哈希值、A24当前区块PoW共识过程的解随机数、A25Merkle根、A26当前区块生成的时间戳;
[0015] 公有链区块上内容数据的数据结构包括:
[0016] B1元数据、B2交易费用、B3手续费、B4数据签名;
[0017] 其中,哈希值:交易数据编码为特定长度的由数字和字母组成的字符串;
[0018] Merkel根:将区块体的数据进行分组哈希,将相邻的字符串合并为一个字符串,然后运算这个字符串的哈希,hash(hash(data1)||hash(data2)),得到数目少一级的哈希,如此递归直到只剩最后一个根哈希值记为区块头的Merkle根;
[0019] 时间戳:主链上各区块是按照时间顺序依次排列的,记录区块数据的写入时间。时间戳可以作为区块数据的存在性证明。
[0020] 在本发明的一种基于区块链的P2P安全下载检测方法中,步骤S1中参与下载的节点包含全节点和挖矿节点,其中全节点为具有完整的、最新的区块链拷贝,能够独立自主进行交易的节点;挖矿节点是通过工作量证明算法,参与矿池挖矿,以相互竞争的方式创建新的区块的节点;
[0021] 步骤S1中参与下载的所有节点可以自由加入和退出P2P网络,所述自由加入过程具体为:一个新的节点N0加入网络后,立即进行区块链账本数据的同步,先向一个知道节点N0的节点Np发送一个消息,然后询问节点Np还知道什么其他节点,链接到节点Np知道的其他节点Np0、Np1...Npm上;
[0022] 在本发明的一种基于区块链的P2P安全下载检测方法中,步骤S1中所述的以太坊钱包,用来保存比特币地址和私钥,可以用来接受、发送和储存代币,公钥由用户钱包生成,公钥是比特币地址,公钥加密创建一个密钥对,用于控制代币的获取;密钥对包括一个私钥和由私钥衍生出的唯一的公钥,公钥用于接收代币,私钥用于代币支付时的交易签名,交易支付时,代币的当前所有者需要在交易中提交其公钥和签名,通过P2P网络中所有在线节点提交的公钥和签名进行验证,确认所述交易是否有效,即确认支付节点在该时刻对所交易的代币拥有所有权。
[0023] 在本发明的一种基于区块链的P2P安全下载检测方法中,步骤S3中所述多重签名,具体为获得三个节点中的任意两个节点的签名,预设N1和N2均信任的第三方仲裁机构T,T也有所述下载的文件片段,只要交易满足三个节点中有任意两个节点同时进行交易并签名,那么判断交易有效。
[0024] 在本发明的一种基于区块链的P2P安全下载检测方法中,步骤S4具体为节点N1从节点N2下载到文件片段后,节点N1计算文件片段的哈希值,与本地存有的哈希列表进行比对核验,如果一致,则说明节点N2在此次交易中诚实,当N2使用来自N1的代币的时候,N1提供签名,若节点N1拒绝提供签名,节点N2由于不满足多重签名条件而不能继续交易,如果节点N1收到正确片段后,欺骗N2收到不正确文件片段,那么申请第三方仲裁机构T介入。
[0025] 在本发明的一种基于区块链的P2P安全下载检测方法中,步骤S5中所述的PoW共识机制为:各个挖矿节点基于各自的计算机算理相互竞争来共同解决一个SHA256数学问题,最快解决所述问题的节点将获得区块记账权和系统自动生成的奖励,所述数学问题可表述为:根据当前交易难度值,通过搜索求解一个合适的随机数,使得公有链区块BLOCK区块头各元数据的双SHA256哈希值小于或等于预设的指定哈希值,Pos权益证明,Pow是一种升级共识机制,根据每个节点所占代币的比例和时间,等比例的降低挖矿难度,从而加快找随机数的速度,采用权益证明来代替PoW中的基于哈希算的工作量证明,根据挖矿节点持有数字货币的量和时间,分配给挖矿节点相应的利息。
[0026] 在本发明的一种基于区块链的P2P安全下载检测方法中,步骤S6中,获得记账权的挖矿节点N3,将区块BLOCK放入公有链BC的过程包含:节点N3根据BLOCK区块的内容数据B,计算出区块大小A23和区块头信息A1,生成随机数A14,将区块大小、区块头信息及随机数与内容数据B一起作为整个区块加入公有链;
[0027] 步骤S6中所述的获得记账权过程,如果同一段时间内有两个挖矿节点同时计算出正确的随机数,会出现暂时的分叉情况,约定挖矿节点总是选择延长累计工作量证明最大的区块链;因此,当主链分叉后,后续区块的挖矿节点将通过计算和比较,将自身的区块链连接到当前累计工作量证明最大化的备选链上,形成更长的新主链,从而解决分叉问题,取得记账权的挖矿节点将当前区块链连接到前一区块,形成最新的区块主链接,各个区块依次环环相接,形成从创始区块到当前区块的一条最长主链;
[0028] 步骤S6中,交易费用的计算方法为:根据P2P全网约定的方法计算,或者根据交易节点之间临时交互商讨的价格计算,或者根据交易传输的字节数量计算。
[0029] 在本发明的一种基于区块链的P2P安全下载检测方法中,步骤S6中,将BLOCK区块记入公有链,所述公有链账本公开,P2P网络中每个节点都包含一系列区块的总账本,每个区块中都包含了已经被所有节点达成共识的交易清单,全网数据保持同步;
[0030] 步骤S6中公有链上还包括创世区块,其中创世区块BLOCK0的内容包括:预定义的交易标准清单,数据结构类型、语法规范性、输入输出和数字签名;
[0031] 步骤S6中所述数据传播协议:任一区块数据生成后,由生成该数据的节点广播到全网其他所有的节点来加以验证;
[0032] 步骤S6中所述交易验证机制:P2P网络中的每个节点时刻监听网络中广播的数据与新区块,挖矿节点会收集和验证P2P网络中广播的尚未确认的交易数据,并对照预定义的标准清单,从数据结构、语法规范性、输入输出和数字签名四个方面同时校验交易数据的有效性,并将有效交易数据整合到当前区块中;当某挖矿节点“挖”到新区块后,其他某挖矿节点按照预定义标准来校验当前区块包含的工作量证明是否达到预设值,时间戳是否有效;若当前区块包含的工作量证明达到预设值同时时间戳有效,则其他挖矿节点将当前区块链接到主区块链上,并开始竞争下一个新区块。
[0033] 优选的,本发明还提供了一种基于区块链的P2P安全下载检测系统,采用以上任意一项基于区块链的P2P安全下载检测方法来实现区块链的P2P安全下载检测。
[0034] 本方法优势在于,提出了P2P网络下载节点交易信息存储的账本结构、区块链块头结构,以及交易算法,通过建立公有链来保证链上全部信息不可篡改、可追溯、具有时间戳等性质,以此建立P2P网络的信任机制,去除第三方信任平台,实现虚假片段的检测。附图说明
[0035] 下面将结合附图及实施例对本发明作进一步说明,附图中:
[0036] 图1是本发明实施流程图
[0037] 图2本发明区块数据结构图;
[0038] 图3是区块体内部信息数据结构图。

具体实施方式

[0039] 为了对发明的技术特征、目的和效果有更加清楚的理解,现对照附图详细说明本发明的具体实施方式。图1为本发明实施流程图,图2为本发明区块数据结构图,图3为区块体内部信息数据结构图。
[0040] 参考图1,一种基于区块链的P2P安全下载检测方法,其特征在于,包含如下步骤:
[0041] S1、P2P网络构造:P2P网络的构造包含安装P2P客户端和P2P网络协议;其中将参与P2P下载的每个节点均安装客户端,所述P2P客户端包括:比特币客户端、以太坊客户端、以太坊钱包;所述P2P客户端的功能包括:P2P组网、支付和管理代币、更新和查看账本、检查账本是否满足要求、挖矿打包区块;所述P2P协议可实现节点发现和网络组网功能,所述节点可以自由加入和退出P2P网络;
[0042] 所述以太坊钱包里存储私钥PRKx,使用椭圆曲线乘法单向加密函数产生公钥PUKx,使用椭圆曲线乘法单向加密函数生成特定收款地址ADx;
[0043] P2P网络中,安装了挖矿软件的节点在挖矿网站上注册之后成为矿工;P2P网络中的每个节点维护各自的本地文件片段的列表,列表格式为:,其中Num1为所述文件片段在列表中的位置序号,Segment1表示文件片段,Length1文件片段字节大小,File1[Start,End]表示文件片段在文件中的起止位置,hash(Segment1)表示所述文件片段的哈希值;
[0045] 参与下载的节点包含全节点和挖矿节点,其中全节点为具有完整的、最新的区块链拷贝,能够独立自主进行交易的节点;挖矿节点是通过工作量证明算法,参与矿池挖矿,以相互竞争的方式创建新的区块的节点;
[0046] 参与下载的所有节点可以自由加入和退出P2P网络,所述自由加入过程具体为:一个新的节点N0加入网络后,立即进行区块链账本数据的同步,先向一个知道节点N0的节点Np发送一个消息,然后询问节点Np还知道什么其他节点,链接到节点Np知道的其他节点Np0、Np1...Npm上;
[0047] 所述的以太坊钱包,用来保存比特币地址和私钥,可以用来接受、发送和储存代币,公钥由用户钱包生成,公钥是比特币地址,公钥加密创建一个密钥对,用于控制代币的获取;密钥对包括一个私钥和由私钥衍生出的唯一的公钥,公钥用于接收代币,私钥用于代币支付时的交易签名,交易支付时,代币的当前所有者需要在交易中提交其公钥和签名,通过P2P网络中所有在线节点提交的公钥和签名进行验证,确认所述交易是否有效,即确认支付节点在该时刻对所交易的代币拥有所有权。
[0048] S2、节点请求下载文件片段过程:区块链中的任一请求节点N1在P2P网络中发布需要下载的文件片段的起止位置信息,区块链中其他所有节点收到所述信息后,和本地文件片段的列表进行核对,如果存在任意一个节点有所述文件片段,则所有的所述任意一个节点将文件片段的哈希值均传送给请求节点N1,请求节点N1收到后,核对所述文件片段哈希值与节点N1下载的文件列表中的文件片段哈希值是否一致,如果一致,则在所有的所述任意一个节点中选择距离请求节点N1最近、传输速度最快且带宽最大的一个节点N2与请求节点N1建立连接;
[0049] S3、文件片段下载过程:下载文件片段前,节点N1需要支付给节点N2代币,代币的个数为n个,下一次使用代币需要节点的多重签名,节点N2在等待全网共识账本已经完成k个区块的确认后,再向节点N1发送文件片段,其中n>0,k>0;
[0050] 所述多重签名,具体为获得三个节点中的任意两个节点的签名,预设N1和N2均信任的第三方仲裁机构T,T也有所述下载的文件片段,只要交易满足三个节点中有任意两个节点同时进行交易并签名,那么判断交易有效。
[0051] S4、激励与惩罚过程:节点N1下载文件片段后,进行核验所述文件片段的哈希值是否与预知的文件片段哈希值一致,如果正确则表明所述文件片段正确无误,则节点N1给节点N2提供签名,允许节点N2使用代币,否则不提供签名;如果N1在下载到正确文件片段后不提供签名,则第三方仲裁机构T介入,验证N1是否故意不支付,如果验证属实,则强制节点N1提供签名,允许节点N2使用代币;
[0052] 步骤S4具体为节点N1从节点N2下载到文件片段后,节点N1计算文件片段的哈希值,与本地存有的哈希列表进行比对核验,如果一致,则说明节点N2在此次交易中诚实,当N2使用来自N1的代币的时候,N1提供签名,若节点N1拒绝提供签名,节点N2由于不满足多重签名条件而不能继续交易,如果节点N1收到正确片段后,欺骗N2收到不正确文件片段,那么申请第三方仲裁机构T介入。
[0053] S5、共识过程:通过基于PoW和PoS的联合机制,P2P网络可动态调整PoW共识过程的难度值,最先找到正确的解随机数的并经过全体节点验证的节点N3将会获得当前交易的记账权;
[0054] 所述的PoW共识机制为:各个挖矿节点基于各自的计算机算理相互竞争来共同解决一个SHA256数学问题,最快解决所述问题的节点将获得区块记账权和系统自动生成的奖励,所述数学问题可表述为:根据当前交易难度值,通过搜索求解一个合适的随机数,使得公有链区块BLOCK区块头各元数据的双SHA256哈希值小于或等于预设的指定哈希值,Pos权益证明,Pow是一种升级共识机制,根据每个节点所占代币的比例和时间,等比例的降低挖矿难度,从而加快找随机数的速度,采用权益证明来代替PoW中的基于哈希算力的工作量证明,根据挖矿节点持有数字货币的量和时间,分配给挖矿节点相应的利息。
[0055] S6、记账过程:获得交易记账权的节点N3将节点N1与N2的交易信息打包成BLOCK,然后根据数据传播协议通知全网其他节点,通过交易验证机制,全网节点对该区块进行合法性验证,若验证通过,则记账节点将BLOCK放入共有链;记账的节点客户端满足具有挖矿打包区块功能,记账节点会取得n的比例p,即p*n作为手续费,所述手续费由N1支付。
[0056] 参考图2和图3,所述的公有链区块BLOCK数据结构包括:
[0057] A1区块体:A11当前区块的交易数量、A12经过验证的区块创建过程中生成的所有交易记录、A13当前区块大小;
[0058] A2区块头:A21当区块前版本号、A22前一区块地址、A23当前区块的目标哈希值、A24当前区块PoW共识过程的解随机数、A25Merkle根、A26当前区块生成的时间戳;
[0059] 公有链区块上内容数据的数据结构包括:
[0060] B1元数据、B2交易费用、B3手续费、B4数据签名;
[0061] 其中,哈希值:交易数据编码为特定长度的由数字和字母组成的字符串;
[0062] Merkel根:将区块体的数据进行分组哈希,将相邻的字符串合并为一个字符串,然后运算这个字符串的哈希,hash(hash(data1)||hash(data2)),得到数目少一级的哈希,如此递归直到只剩最后一个根哈希值记为区块头的Merkle根;
[0063] 时间戳:主链上各区块是按照时间顺序依次排列的,记录区块数据的写入时间。时间戳可以作为区块数据的存在性证明。
[0064] 步骤S6中,获得记账权的挖矿节点N3,将区块BLOCK放入公有链BC的过程包含:节点N3根据BLOCK区块的内容数据B,计算出区块大小A23和区块头信息A1,生成随机数A14,将区块大小、区块头信息及随机数与内容数据B一起作为整个区块加入公有链;
[0065] 步骤S6中所述的获得记账权过程,如果同一段时间内有两个挖矿节点同时计算出正确的随机数,会出现暂时的分叉情况,约定挖矿节点总是选择延长累计工作量证明最大的区块链;因此,当主链分叉后,后续区块的挖矿节点将通过计算和比较,将自身的区块链连接到当前累计工作量证明最大化的备选链上,形成更长的新主链,从而解决分叉问题,取得记账权的挖矿节点将当前区块链连接到前一区块,形成最新的区块主链接,各个区块依次环环相接,形成从创始区块到当前区块的一条最长主链;
[0066] 步骤S6中,交易费用的计算方法为:根据P2P全网约定的方法计算,或者根据交易节点之间临时交互商讨的价格计算,或者根据交易传输的字节数量计算。
[0067] 步骤S6中,将BLOCK区块记入公有链,所述公有链账本公开,P2P网络中每个节点都包含一系列区块的总账本,每个区块中都包含了已经被所有节点达成共识的交易清单,全网数据保持同步;
[0068] 步骤S6中公有链上还包括创世区块,其中创世区块BLOCK0的内容包括:预定义的交易标准清单,数据结构类型、语法规范性、输入输出和数字签名;
[0069] 步骤S6中所述数据传播协议:任一区块数据生成后,由生成该数据的节点广播到全网其他所有的节点来加以验证;
[0070] 步骤S6中所述交易验证机制:P2P网络中的每个节点时刻监听网络中广播的数据与新区块,挖矿节点会收集和验证P2P网络中广播的尚未确认的交易数据,并对照预定义的标准清单,从数据结构、语法规范性、输入输出和数字签名四个方面同时校验交易数据的有效性,并将有效交易数据整合到当前区块中;当某挖矿节点“挖”到新区块后,其他某挖矿节点按照预定义标准来校验当前区块包含的工作量证明是否达到预设值,时间戳是否有效;若当前区块包含的工作量证明达到预设值同时时间戳有效,则其他挖矿节点将当前区块链接到主区块链上,并开始竞争下一个新区块。
[0071] 一种基于区块链的P2P安全下载检测系统,采用步骤S1-S9任意一项基于区块链的P2P安全下载检测方法来实现区块链的P2P安全下载检测。
[0072] 上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。
高效检索全球专利

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

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

申请试用

分析报告

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

申请试用

QQ群二维码
意见反馈