区块链的数据对比及共识方法技术

技术编号:13330296 阅读:185 留言:0更新日期:2016-07-11 20:37
本发明专利技术公开了区块链的数据对比及共识方法对于每笔交易内容的哈希值计算,通过变换随机数,在一段时间内预设哈希值的某几位数不重复,这里称不重复编号,记账服务器间比较不同哈希值的预定几位数就可以判断出是一致的交易或是不一致的交易。不重复编号对比可以建立类似梅克尔树的方式进行对比,因为交易的哈希值约定几位是没有重复的,可以作为编号使用,可以按一定的规则放入类梅克尔树中,在不同的记账服务器上,同样的一笔交易哈希值放入梅克尔树中的位置是完全一致的,可以非常快的找出差别,减少了数据的传送量,大大加快了共识所需要的时间。

【技术实现步骤摘要】

本专利技术涉及互联网
,特别是区块链技术。
技术介绍
现有比特币、以太坊、比特股、瑞波币等技术弱点如下:1、在新区块交易数据对比时都需要传送全部哈希值,数据量很大。2、交易数据传输重复的概率大,自己缺少的数据不能确定地去找下载的来源,效率不高,数据不容易补全,有部分交易有较长的延时。3、比特币、以太坊、比特股是选一台服务器打包来广播新区块,传播速度慢,反复传输的数据量大,要么像瑞波币一样要同时比较非常多的服务器来达成共识,达成共识的时间不够快。4、现有的跨链交易是无法真正地跨链传递数字货币或数字资产的,只是一种需要中介的兑换关系。5、数据存储还不够灵活,没有做好大数据量需要分别存储不同服务器的准备。
技术实现思路
为了克服上述现有技术的不足,本专利技术的区块链的数据对比及共识方法,使数据对比需要传送的信息大幅度减少,非常方便地找出遗漏的数据,并能定位请求下载交易数据,灵活的共识方案,可大幅度地缩短各服务器达成共识的时间,跨链交易设计使区块链上的数字货币和数字资产可以真正的跨链转移,就像现金的转移一样,不需要转移中介,有利于区块链在不用领域和地域发挥更大的作用,交易数据可按不重复编号分段校验、打包、存储,可使数据存储采用更多的方案来实现,区块连的发展不会受制于服务器的性能和容量。区块链的数据对比及共识方法,其特征在于,对于每笔交易内容的哈希值计算,通过变换随机数,在一段时间内预设哈希值的某几位数不重复(可以是前几位、后几位、或任意几位的组合,这里称不重复编号),记账服务器间比较不同哈希值的预定几位数就可以判断出是一致的交易或是不一致的交易,这里的哈希值用16进制表示,便于叙述方便,另外也可以通过某些前置服务器来获取按顺序给每笔交易附加上整数编号,并附上新区块的高度,方便判断交易数据被服务器接收的时间先后,对于前面区块的遗漏的交易数据可以单独建组对比。用户可以按变换随机数,计算一批不重复编号,区块链系统可以定义一台或多台服务器作为交易入口,可称为前置节点,前置节点1台可以取所有的不重复编号,或者分配多台前置节点取不同段号的不重复编号。利用布隆过滤器可以检查数据的遗漏情况,可以通过变换随机数一段时间内生成的哈希值使其在布隆过滤器中不重复,可以使数据从A服务器传输到B服务器后前后比较的误判率降为0(假设数据仅会遗漏,不会有新的数据出现)。步骤S1:根据需要传送的数据量N建立布隆过滤器,设计映射函数或可以使用多个映射函数,确保在布隆过滤器上添加所有哈希值后,仍留有一部分空,一般留至少20%以上的空位为宜,留空位越少,挑选哈希值的难度越大,但留空位多,传送的数据量可能会增加。步骤S2:通过变换随机数生成的哈希值使其在A服务器上的布隆过滤器中不会重复,每次在布隆过滤器上添加哈希值时,在二进制位数组上至少有一个位置的1是和这个添加的哈希值唯一对应的。步骤S3:服务器B把收到的全部哈希值都添加到布隆过滤器(空的和A服务器上一样),比较A和B两个填上哈希值后的布隆过滤器是否一致,若不一致,就把在B添完数据的布隆过滤器发送到A服务器。步骤S4:服务器A收到B服务器发来的布隆过滤器(添加了B服务器上的哈希值),把A服务器上的所有哈希值继续添加到B发过来的过滤器上,把所有能填上新的空位的哈希值记录下来,这些就是B服务器上缺少的数据,发送到B服务器。步骤S5:重复步骤S3和步骤S4,直到B服务器上的布隆过滤器和A服务器一致为止。4、如果有公钥地址的帐户较多地发送不符合要求的交易哈希值,这里约定发送交易需要一笔超过最小额度的金额,若系统认为是违反交易或安全规则,可以将这金额消失,若帐户的最小余额不够则将不能发起交易,对于较多地发送不符合要求的交易哈希值的服务器,通过一定的监控程序,可以自动或人工手动停止其服务,也可由区块链上CA证书中心来管理,检测服务器监测到违反系统运行规则的公钥地址后(交易账户公钥地址或服务器公钥地址),通知CA证书中心冻结其一些功能,也可写入黑名单。5、所有记帐服务期在区块链准备打包前,比特股是每次只选一台服务器做记帐服务期,然后广播给其他服务器,瑞波币是所有记帐服务器都相互比较,把周围服务器的交易哈希值与自己服务器上的交易哈希值对比,若80%的交易哈希值一致,则打包,而这里则可以根据需要选举若干台服务器(1台至全部服务器的组合)作为共识服务器,每台服务器定时统计和其他服务器的通讯性能,并相互交换信息,每台服务器即可根据各服务器通讯性能信息,设计不同的多台服务器组合的共识方案,要排除通讯性能较差的服务器,兼顾一下每台服务器和其他非组合中的其他服务器的通讯性能,目的是使组合的共识服务器打包速度快,传播给其他最新区块的速度快。6、不同记账服务器(或称共识服务器)若发送交易哈希值进行对比,需要传送大量的数据,比较也耗时间,只要发送不重复编号对比即可,如可以排序后按顺序对比,也可以放到字典map中对比。7、可以设定不重复编号的段号,分配在不同的前置节点上,比如交易哈希值开始的第一位为3(或用16进制表示段号:0、1、2、3、4、5、6、7、8、9、a、b、c、d、e、f)的所有不重复编号都要到这个前置节点(或几台前置节点集群)上登记,并把相关的交易发送给其他记帐服务器,其他记帐服务器若缺少3开始的不重复编号的交易,在这个前置节点一定能下载到3开始的不重复编号的交易,通过不重复编号的分段发放,既保证不重复编号,也可以分流集中取号的压力。8、不同段号的不重复编号的发送和下载可以是分服务器管理的,在新的区块形成过程中,同一段号的交易统一共识和打包也是可行的,并可以建立独立的分段号的类梅克尔树,计算分段号的类梅克尔树根哈希值,最后在把分段号的类梅克尔树根作为叶子节点建立新的类梅克尔树,并生成类梅克尔树根哈希值,作为整个新区块所有交易的哈希值,不同段号的交易会常会出现同一支出地址的情况,记帐服务器要检查累计支付金额不应超过该账户余额,或者设专门的服务器检查同一地址支出的情况,并通知那些打包的服务器,交易哈希值可分段打包,可以在一个记帐服务器上打包和存储一个分段或多个分段,共识打包对比和硬盘存储也可以用不同的服务器来完成。9、比较从前置节点A服务器传输到记帐B服务器的数据差异,若使用几种不重复编号的传送方式结合,只需传送少量数据就可以很快地找出遗漏的数据,以下是步骤:步骤S1:根据权利3的步骤,使用特制的布隆过滤器使用方法,补全遗漏的交易数据,数据差异大时,使用效果特别好,这步是可选的。...

【技术保护点】
区块链的数据对比及共识方法,其特征在于,对于每笔交易内容的哈希值计算,通过变换随机数,在一段时间内预设哈希值的某几位数不重复(可以是前几位、后几位、或任意几位的组合,这里称不重复编号),记账服务器间比较不同哈希值的预定几位数就可以判断出是一致的交易或是不一致的交易,这里的哈希值用16进制表示,便于叙述方便,另外也可以通过某些前置服务器来获取按顺序给每笔交易附加上整数编号,并附上新区块的高度,方便判断交易数据被服务器接收的时间先后,对于前面区块的遗漏的交易数据可以单独建组对比。

【技术特征摘要】
1.区块链的数据对比及共识方法,其特征在于,对于每笔交易内容的哈希值计算,通过
变换随机数,在一段时间内预设哈希值的某几位数不重复(可以是前几位、后几位、或任意
几位的组合,这里称不重复编号),记账服务器间比较不同哈希值的预定几位数就可以判断
出是一致的交易或是不一致的交易,这里的哈希值用16进制表示,便于叙述方便,另外也可
以通过某些前置服务器来获取按顺序给每笔交易附加上整数编号,并附上新区块的高度,
方便判断交易数据被服务器接收的时间先后,对于前面区块的遗漏的交易数据可以单独建
组对比。
2.根据权利1所述区块链的数据对比及共识方法,其特征在于,用户可以按变换随机
数,计算一批不重复编号,区块链系统可以定义一台或多台服务器作为交易入口,可称为前
置节点,前置节点1台可以取所有的不重复编号,或者分配多台前置节点取不同段号的不重
复编号。
3.根据权利1、2所述区块链的数据对比及共识方法,其特征在于,利用布隆过滤器可以
检查数据的遗漏情况,可以通过变换随机数一段时间内生成的哈希值使其在布隆过滤器中
不重复,可以使数据从A服务器传输到B服务器后前后比较的误判率降为0(假设数据仅会遗
漏,不会有新的数据出现),
步骤S1:根据需要传送的数据量N建立布隆过滤器,设计映射函数或可以使用多个映射
函数,确保在布隆过滤器上添加所有哈希值后,仍留有一部分空,一般留至少20%以上的空
位为宜,留空位越少,挑选哈希值的难度越大,但留空位多,传送的数据量可能会增加,
步骤S2:通过变换随机数生成的哈希值使其在A服务器上的布隆过滤器中不会重复,每
次在布隆过滤器上添加哈希值时,在二进制位数组上至少有一个位置的1是和这个添加的
哈希值唯一对应的,
步骤S3:服务器B把收到的全部哈希值都添加到布隆过滤器(空的和A服务器上一样),
比较A和B两个填上哈希值后的布隆过滤器是否一致,若不一致,就把在B添完数据的布隆过
滤器发送到A服务器,
步骤S4:服务器A收到B服务器发来的布隆过滤器(添加了B服务器上的哈希值),把A服
务器上的所有哈希值继续添加到B发过来的过滤器上,把所有能填上新的空位的哈希值记
录下来,这些就是B服务器上缺少的数据,发送到B服务器,
步骤S5:重复步骤S3和步骤S4,直到B服务器上的布隆过滤器和A服务器一致为止。
4.根据权利1、2、3所述区块链的数据对比及共识方法,其特征在于,如果有公钥地址的
帐户较多地发送不符合要求的交易哈希值,这里约定发送交易需要一笔超过最小额度的金
额,若系统认为是违反交易或安全规则,可以将这金额消失,若帐户的最小余额不够则将不
能发起交易,对于较多地发送不符合要求的交易哈希值的服务器,通过一定的监控程序,可
以自动或人工手动停止其服务,也可由区块链上CA证书中心来管理,检测服务器监测到违
反系统运行规则的公钥地址后(交易账户公钥地址或服务器公钥地址),通知CA证书中心冻
结其一些功能,也可写入黑名单。
5.根据权利1、2、3所述区块链的数据对比及共识方法,其特征在于,所有记帐服务期在
区块链准备打包前,比特股是每次只选一台服务器做记帐服务期,然后广播给其他服务器,
瑞波币是所有记帐服务器都相互比较,把周围服务器的交易哈希值与自己服务器上的交易
哈希值对比,若80%的交易哈希值一致,则打包,而这里则可以根据需要选举若干台服务器
(1台至全部服务器的组合)作为共识服务器,每台服务器定时统计和其他服务器的通讯性
能,并相互交换信息,每台服务器即可根据各服务器通讯性能信息,设计不同的多台服务器
组合的共识方案,要排除通讯性能较差的服务器,兼顾一下每台服务器和其他非组合中的
其他服务器的通讯性能,目的是使组合的共识服务器打包速度快,传播给其他最新区块的
速度快。
6.根据权利1、2、3、4、5区块链的数据对比及共识方法,其特征在于,不同记账服务器
(或称共识服务器)若发送交易哈希值进行对比,需要传送大量的数据,比较也耗时间,只要
发送不重复编号对比即可,如可以排序后按顺序对比,也可以放到字典map中对比。
7.根据权利1、2、3所述区块链的数据对比及共识方法,其特征在于,可以设定不重复编
号的段号,分配在不同的前置节点上,比如交易哈希值开始的第一位为3(或用16进制表示
段号:0、1、2、3、4、5、6、7、8、9、a、b、c、d、e、f)的所有不重复编号都要到这个前置节点(或几
台前置节点集群)上登记,并把相关的交易发送给其他记帐服务器,其他记帐服务器若缺少
3开始的不重复编号的交易,在这个前置节点一定能下载到3开始的不重复编号的交易,通
过不重复编号的分段发放,既保证不重复编号,也可以分流集中取号的压力。
8.根据权利1、2、3、7所述区块链的数据对比及共识方法,不同段号的不重复编号的发
送和下载可以是分服务器管理的,在新的区块形成过程中,同一段号的交易统一共识和打
包也是可行的,并可以建立独立的分段号的类梅克尔树,计算分段号的类梅克尔树根哈希
值,最后在把分段号的类梅克尔树根作为叶子节点建立新的类梅克尔树,并生成类梅克尔
树根哈希值,作为整个新区块所有交易的哈希值,不同段号的交易会常会出现同一支出地
址的情况,记帐服务器要检查累计支付金额不应超过该账户余额,或者设专门的服务器检
查同一地址支出的情况,并通知那些打包的服务器,交易哈希值可分段打包,可以在一个记
帐服务器上打包和存储一个分段或多个分段,共识打包对比和硬盘存储也可以用不同的服
务器来完成。
9.根据权利1、2、3、4、5、6、7、8所述区块链的数据对比及共识方法,其特征在于,比较从
前置节点A服务器传输到记帐B服务器的数据差异,若使用几种不重复编号的传送方式结
合...

【专利技术属性】
技术研发人员:吴思进王志文
申请(专利权)人:杭州复杂美科技有限公司
类型:发明
国别省市:浙江;33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1