首页 / 专利库 / 银行与财务事项 / 区块链交易 / 区块链的数据对比及共识方法

链的数据对比及共识方法

阅读:192发布:2022-07-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服务器的数据差异,若使用几种不重复编号的传送方式结合,只需传送少量数据就可以很快地找出遗漏的数据,以下是步骤:
步骤S1:根据权利3的步骤,使用特制的布隆过滤器使用方法,补全遗漏的交易数据,数据差异大时,使用效果特别好,这步是可选的,
步骤S2:根据前期实际交易量设计类梅克尔树的层级,可以按最近的交易笔数,考虑历史(节假日、去年当月、上周同一天、昨天、前一小时、前1分钟、前几个区块等)交易笔数,动态调整每个新的区块的不重复编号的设计容量,设计类梅克尔数节点的容量是(2的n+1次方)-2,最下层理论上最多可放置交易笔数是2的n次方,
如容量调整方案可以是这样:若最新一个区块的实际交易笔数超过2的n次方的80%,下一区块的类梅克尔树最下层的设计容量即可增加1倍,到2的n+1次方,若最新一个区块的实际交易笔数小于2的n次方的30%,下一区块的类梅克尔树最下层设计容量即可缩小1倍,到2的n-1次方,
如本次新区块的设计容量是2的n次方,共有2的n次方的编号可选,建立一个2的n次方位数的字符串,每位都为0,在前置节点选出不重复编号后,把编号和字符串位置对应起来,将相应的位置的0字符串用1代替,2的n次方位字符串位置编号从左到右为0至(2的n次方)-
1,
服务器B也和A服务器一样建立一个(2的n次方)位字符串StringB,服务器收到A服务器传过来的交易数据后,把相应的不重复编号与字符串对应的位置的0用1替换。
10.B服务器把StringB发送到A服务器与StringA进行对比,找出不同的字符的位置,这位置编号就是交易的不重复编号,将这些编号的相应数据发送到B服务器即补全了所B服务器所缺的数据,
步骤S3:类梅克尔树数据存储用一个数组表示,0至(2的n+1次方)-2存储下层2个哈希值的串联后再哈希的哈希值,(2的n次方)-1开始到(2的n+1次方)-2存储按顺序的交易不重复编号,在类梅克尔数存储数组下标和不重复编号他们的差是(2的n次方)-1,没有对应的信息的叶子节点默认为哈希空值,
步骤S4:自下而上逐层计算合并的哈希值,直到算出根节点的哈希值,
步骤S5:向系统选出的共识记账服务器传送类梅克尔树的值,每次传送的数据量取决予带宽和往返的速度,既要利用了带宽,又要减少对比往返的次数,只传送哈希值不一致下面一层或几层相关的哈希值,
步骤S6:找到最下层有差异的哈希值,缺少的记帐服务器可向有相关数据的前置节点或其他服务器请求下载数据,若数据与其他服务器不一致,则将数据发送到缺失的服务器让其校验,重新计算出相关的哈希值后再通知自己,
步骤S7:重复步骤S4、S5、S6,排除与周围记帐服务器相同率少于20%的交易,重复步骤S4,
步骤S8:根据权利项5所述选举若干台共识记账服务器,将这几台服务器所有交易的类默克尔树根进行对比,类默克尔树根哈希值一样的最多的服务器生成的区块作为最新的区块,若默克尔树根哈希值都不一样,就随机选一台,其他记帐服务期对比类默克尔树根哈希值,若一样就作为新的区块,若不一样,就比较类默克尔树,下载不同的交易数据,形成一样的新区块,或直接下载新的区块,最后也可以去掉类默克尔树最层哈希值为空值的节点,重新生成容量更小的区块,
区块链的数据对比及共识方法,其特征在于,不但本区块链的交易可以形成共识,跨区块链也可以形成共识,通过区块链的投票权系统或区块链最高权限的CA管理中心可以授权跨区块链传递数字货币或数字资产,甚至可以在两条或多条区块链之间交易,这有利于区块链的行业分工或地域分工,如产权登记、信息存证、电子商务、政务系统、物流、物联网、供应链、交易所、行清算系统、行业、企业(采购、销售、报销)、央行、交通运输、公用事业支付、医疗系统(方便公费医疗管理)、零钱包(可以将频繁的小额交易独立开来)等,跨链交易的步骤如下:
步骤S1:相应的区块链监管部门互相授权两条(如A和B)或多条链可以跨区块链交易,即允许一条区块链上的数字货币或数字资产可以转移到另一条区块链上,
步骤S2:用户在A或B区块链上都开立合法公钥地址帐户(如通过区块链上CA认证中心认证通过),为安全期间,最好让CA中心将需要跨链交易的本人在不同链上的公钥地址都进行关联签名认证,证明两个不同链上的公钥地址是同一人拥有,并用CA中心所拥有的权限将相关CA证书分别写入A和B区块链,
CA中心可以给用户一个随机数签名,只要能用用户公钥解开,就说明用户是该公钥的拥有者,同时可以通过声音、视频或身份证等信息确认用户的真实身份,
步骤S3:交易内容为,用户要将A区块链上的币(如100个)转移到B区块链上,用户将交易内容用A、B区块链上对应的私钥分别签名或依次签名,
步骤S4:用户将签名和相应的公钥发送到自己公钥地址帐户所在的区块链,也可以同时发送到交易对手的区块链,或将共同的签名发到两个区块链,
步骤S5:A区块链记帐服务器验证交易A或B的签名后达成共识后写入A区块链最新区
块,将用户A公钥地址上的币(如100个)扣除,在A区块链上纪录“支付给B区块链公钥地址”,这里仅是记录,标记为不能再花费的币,
步骤S6:B区块链上的相当多台记账服务器访问A区块链上的历史纪录,若发现确实有对应的跨链交易信息,已标记为不能再花费的币(如100个),B区块链上相当多台记账服务器达成共识后,同意在B区块链用户公钥地址上增加币(如100个),
步骤S7:用户将A区块链上的币转移到B区块链上后,就可以直接向在B区块链上的商家(如公交公司)或其他个人支付币,
步骤S8:商家(如公交公司)或其他个人也可以重复S1至S7步骤,将币从B区块链跨链支付到A区块链。

说明书全文

链的数据对比及共识方法

技术领域

[0001] 本发明涉及互联网技术领域,特别是区块链技术。

背景技术

[0002] 现有比特币、以太坊、比特股、瑞波币等技术弱点如下:1、在新区块交易数据对比时都需要传送全部哈希值,数据量很大。
[0003] 2、交易数据传输重复的概率大,自己缺少的数据不能确定地去找下载的来源,效率不高,数据不容易补全,有部分交易有较长的延时。
[0004] 3、比特币、以太坊、比特股是选一台服务器打包来广播新区块,传播速度慢,反复传输的数据量大,要么像瑞波币一样要同时比较非常多的服务器来达成共识,达成共识的时间不够快。
[0005] 4、现有的跨链交易是无法真正地跨链传递数字货币或数字资产的,只是一种需要中介的兑换关系。
[0006]  5、数据存储还不够灵活,没有做好大数据量需要分别存储不同服务器的准备。
[0007]

发明内容

[0008] 为了克服上述现有技术的不足,本发明的区块链的数据对比及共识方法,使数据对比需要传送的信息大幅度减少,非常方便地找出遗漏的数据,并能定位请求下载交易数据,灵活的共识方案,可大幅度地缩短各服务器达成共识的时间,跨链交易设计使区块链上的数字货币和数字资产可以真正的跨链转移,就像现金的转移一样,不需要转移中介,有利于区块链在不用领域和地域发挥更大的作用,交易数据可按不重复编号分段校验、打包、存储,可使数据存储采用更多的方案来实现,区块连的发展不会受制于服务器的性能和容量。
[0009] 区块链的数据对比及共识方法,其特征在于,对于每笔交易内容的哈希值计算,通过变换随机数,在一段时间内预设哈希值的某几位数不重复(可以是前几位、后几位、或任意几位的组合,这里称不重复编号),记账服务器间比较不同哈希值的预定几位数就可以判断出是一致的交易或是不一致的交易,这里的哈希值用16进制表示,便于叙述方便,另外也可以通过某些前置服务器来获取按顺序给每笔交易附加上整数编号,并附上新区块的高度,方便判断交易数据被服务器接收的时间先后,对于前面区块的遗漏的交易数据可以单独建组对比。
[0010] 用户可以按变换随机数,计算一批不重复编号,区块链系统可以定义一台或多台服务器作为交易入口,可称为前置节点,前置节点1台可以取所有的不重复编号,或者分配多台前置节点取不同段号的不重复编号。
[0011] 利用布隆过滤器可以检查数据的遗漏情况,可以通过变换随机数一段时间内生成的哈希值使其在布隆过滤器中不重复,可以使数据从A服务器传输到B服务器后前后比较的误判率降为0(假设数据仅会遗漏,不会有新的数据出现)。
[0012]步骤S1:根据需要传送的数据量N建立布隆过滤器,设计映射函数或可以使用多个映射函数,确保在布隆过滤器上添加所有哈希值后,仍留有一部分空,一般留至少20%以上的空位为宜,留空位越少,挑选哈希值的难度越大,但留空位多,传送的数据量可能会增加。
[0013] 步骤S2:通过变换随机数生成的哈希值使其在A服务器上的布隆过滤器中不会重复,每次在布隆过滤器上添加哈希值时,在二进制位数组上至少有一个位置的1是和这个添加的哈希值唯一对应的。
[0014] 步骤S3:服务器B把收到的全部哈希值都添加到布隆过滤器(空的和A服务器上一样),比较A和B两个填上哈希值后的布隆过滤器是否一致,若不一致,就把在B添完数据的布隆过滤器发送到A服务器。
[0015] 步骤S4:服务器A收到B服务器发来的布隆过滤器(添加了B服务器上的哈希值),把A服务器上的所有哈希值继续添加到B发过来的过滤器上,把所有能填上新的空位的哈希值记录下来,这些就是B服务器上缺少的数据,发送到B服务器。
[0016] 步骤S5:重复步骤S3和步骤S4,直到B服务器上的布隆过滤器和A服务器一致为止。
[0017]4、如果有公钥地址的帐户较多地发送不符合要求的交易哈希值,这里约定发送交易需要一笔超过最小额度的金额,若系统认为是违反交易或安全规则,可以将这金额消失,若帐户的最小余额不够则将不能发起交易,对于较多地发送不符合要求的交易哈希值的服务器,通过一定的监控程序,可以自动或人工手动停止其服务,也可由区块链上CA证书中心来管理,检测服务器监测到违反系统运行规则的公钥地址后(交易账户公钥地址或服务器公钥地址),通知CA证书中心冻结其一些功能,也可写入黑名单。
[0018] 5、所有记帐服务期在区块链准备打包前,比特股是每次只选一台服务器做记帐服务期,然后广播给其他服务器,瑞波币是所有记帐服务器都相互比较,把周围服务器的交易哈希值与自己服务器上的交易哈希值对比,若80%的交易哈希值一致,则打包,而这里则可以根据需要选举若干台服务器(1台至全部服务器的组合)作为共识服务器,每台服务器定时统计和其他服务器的通讯性能,并相互交换信息,每台服务器即可根据各服务器通讯性能信息,设计不同的多台服务器组合的共识方案,要排除通讯性能较差的服务器,兼顾一下每台服务器和其他非组合中的其他服务器的通讯性能,目的是使组合的共识服务器打包速度快,传播给其他最新区块的速度快。
[0019] 6、不同记账服务器(或称共识服务器)若发送交易哈希值进行对比,需要传送大量的数据,比较也耗时间,只要发送不重复编号对比即可,如可以排序后按顺序对比,也可以放到字典map中对比。
[0020] 7、可以设定不重复编号的段号,分配在不同的前置节点上,比如交易哈希值开始的第一位为3(或用16进制表示段号:0、1、2、3、4、5、6、7、8、9、a、b、c、d、e、f)的所有不重复编号都要到这个前置节点(或几台前置节点集群)上登记,并把相关的交易发送给其他记帐服务器,其他记帐服务器若缺少3开始的不重复编号的交易,在这个前置节点一定能下载到3开始的不重复编号的交易,通过不重复编号的分段发放,既保证不重复编号,也可以分流集中取号的压
[0021] 8、不同段号的不重复编号的发送和下载可以是分服务器管理的,在新的区块形成过程中,同一段号的交易统一共识和打包也是可行的,并可以建立独立的分段号的类梅克尔树,计算分段号的类梅克尔树根哈希值,最后在把分段号的类梅克尔树根作为叶子节点建立新的类梅克尔树,并生成类梅克尔树根哈希值,作为整个新区块所有交易的哈希值,不同段号的交易会常会出现同一支出地址的情况,记帐服务器要检查累计支付金额不应超过该账户余额,或者设专的服务器检查同一地址支出的情况,并通知那些打包的服务器,交易哈希值可分段打包,可以在一个记帐服务器上打包和存储一个分段或多个分段,共识打包对比和硬盘存储也可以用不同的服务器来完成。
[0022] 9、比较从前置节点A服务器传输到记帐B服务器的数据差异,若使用几种不重复编号的传送方式结合,只需传送少量数据就可以很快地找出遗漏的数据,以下是步骤:步骤S1:根据权利3的步骤,使用特制的布隆过滤器使用方法,补全遗漏的交易数据,数据差异大时,使用效果特别好,这步是可选的。
[0023] 步骤S2:根据前期实际交易量设计类梅克尔树的层级,可以按最近的交易笔数,考虑历史(节假日、去年当月、上周同一天、昨天、前一小时、前1分钟、前几个区块等)交易笔数,动态调整每个新的区块的不重复编号的设计容量,设计类梅克尔数节点的容量是(2的n+1次方)-2,最下层理论上最多可放置交易笔数是2的n次方。
[0024] 如容量调整方案可以是这样:若最新一个区块的实际交易笔数超过2的n次方的80%,下一区块的类梅克尔树最下层的设计容量即可增加1倍,到2的n+1次方,若最新一个区块的实际交易笔数小于2的n次方的30%,下一区块的类梅克尔树最下层设计容量即可缩小1倍,到2的n-1次方。
[0025] 如本次新区块的设计容量是2的n次方,共有2的n次方的编号可选,建立一个2的n次方位数的字符串,每位都为0,在前置节点选出不重复编号后,把编号和字符串位置对应起来,将相应的位置的0字符串用1代替,2的n次方位字符串位置编号从左到右为0至(2的n次方)-1。
[0026] 服务器B也和A服务器一样建立一个(2的n次方)位字符串StringB,服务器收到A服务器传过来的交易数据后,把相应的不重复编号与字符串对应的位置的0用1替换。
[0027] B服务器把StringB发送到A服务器与StringA进行对比,找出不同的字符的位置,这位置编号就是交易的不重复编号,将这些编号的相应数据发送到B服务器即补全了所B服务器所缺的数据。
[0028] 步骤S3:类梅克尔树数据存储用一个数组表示,0至(2的n+1次方)-2存储下层2个哈希值的串联后再哈希的哈希值,(2的n次方)-1开始到(2的n+1次方)-2存储按顺序的交易不重复编号,在类梅克尔数存储数组下标和不重复编号他们的差是(2的n次方)-1,没有对应的信息的叶子节点默认为哈希空值。
[0029] 步骤S4:自下而上逐层计算合并的哈希值,直到算出根节点的哈希值。
[0030] 步骤S5:向系统选出的共识记账服务器传送类梅克尔树的值,每次传送的数据量取决予带宽和往返的速度,既要利用了带宽,又要减少对比往返的次数,只传送哈希值不一致下面一层或几层相关的哈希值。
[0031] 步骤S6:找到最下层有差异的哈希值,缺少的记帐服务器可向有相关数据的前置节点或其他服务器请求下载数据,若数据与其他服务器不一致,则将数据发送到缺失的服务器让其校验,重新计算出相关的哈希值后再通知自己。
[0032] 步骤S7:重复步骤S4、S5、S6,排除与周围记帐服务器相同率少于20%的交易,重复步骤S4。
[0033] 步骤S8:根据权利项5所述选举若干台共识记账服务器,将这几台服务器所有交易的类默克尔树根进行对比,类默克尔树根哈希值一样的最多的服务器生成的区块作为最新的区块,若默克尔树根哈希值都不一样,就随机选一台,其他记帐服务期对比类默克尔树根哈希值,若一样就作为新的区块,若不一样,就比较类默克尔树,下载不同的交易数据,形成一样的新区块,或直接下载新的区块,最后也可以去掉类默克尔树最层哈希值为空值的节点,重新生成容量更小的区块。
[0034] 不但本区块链的交易可以形成共识,跨区块链也可以形成共识,通过区块链的投票权系统或区块链最高权限的CA管理中心可以授权跨区块链传递数字货币或数字资产,甚至可以在两条或多条区块链之间交易,这有利于区块链的行业分工或地域分工,如产权登记、信息存证、电子商务、政务系统、物流、物联网、供应链、交易所、行清算系统、行业、企业(采购、销售、报销)、央行、交通运输、公用事业支付、医疗系统(方便公费医疗管理)、零钱包(可以将频繁的小额交易独立开来)等,跨链交易的步骤如下:步骤S1:相应的区块链监管部门互相授权两条(如A和B)或多条链可以跨区块链交易,即允许一条区块链上的数字货币或数字资产可以转移到另一条区块链上。
[0035] 步骤S2:用户在A或B区块链上都开立合法公钥地址帐户(如通过区块链上CA认证中心认证通过),为安全期间,最好让CA中心将需要跨链交易的本人在不同链上的公钥地址都进行关联签名认证,证明两个不同链上的公钥地址是同一人拥有,并用CA中心所拥有的权限将相关CA证书分别写入A和B区块链。CA中心可以给用户一个随机数签名,只要能用用户公钥解开,就说明用户是该公钥的拥有者,同时可以通过声音、视频或身份证等信息确认用户的真实身份。
[0036] 步骤S3:交易内容为,用户要将A区块链上的币(如100个)转移到B区块链上,用户将交易内容用A、B区块链上对应的私钥分别签名或依次签名。
[0037] 步骤S4:用户将签名和相应的公钥发送到自己公钥地址帐户所在的区块链,也可以同时发送到交易对手的区块链,或将共同的签名发到两个区块链。
[0038] 步骤S5:A区块链记帐服务器验证交易A或B的签名后达成共识后写入A区块链最新区块,将用户A公钥地址上的币(如100个)扣除,在A区块链上纪录“支付给B区块链公钥地址”,这里仅是记录,标记为不能再花费的币。
[0039] 步骤S6:B区块链上的相当多台记账服务器访问A区块链上的历史纪录,若发现确实有对应的跨链交易信息,已标记为不能再花费的币(如100个),B区块链上相当多台记账服务器达成共识后,同意在B区块链用户公钥地址上增加币(如100个)。
[0040] 步骤S7:用户将A区块链上的币转移到B区块链上后,就可以直接向在B区块链上的商家(如公交公司)或其他个人支付币。
[0041] 步骤S8:商家(如公交公司)或其他个人也可以重复S1至S7步骤,将币从B区块链跨链支付到A区块链。
[0042] 与现有技术相比,本发明的有益效果是本发明的区块链的数据对比及共识方法,使数据对比需要传送的信息大幅度减少,非常方便地找出遗漏的数据,并能定位请求下载交易数据,灵活的共识方案,可大幅度地缩短各服务器达成共识的时间,跨链交易设计使区块链上的数字货币和数字资产可以真正的跨链转移,就像现金的转移一样,不需要转移中介,有利于区块链在不用领域和地域发挥更大的作用,交易数据可按不重复编号分段校验、打包、存储,可使数据存储采用更多的方案来实现,区块链的发展不会受制于服务器的性能和容量。附图说明
[0043]图1是说明如何利用不重复编号查补遗漏数据;
图2是说明如何产生不重复编号;
图3是说明利用布隆过滤器可以检查数据的遗漏情况,可以通过变换随机数一段时间
内生成的哈希值使其在布隆过滤器中不重复;
图4是说明跨链交易是如何实现的;
图5是说明如何设计类梅克尔树;
图6是说明如何通过类梅克尔树来同步异常数据;
图7是说明如何选举共识服务器来达成共识,形成新的区块。

具体实施方式

[0044] 实施例1,参照附图2:本例说明如何产生不重复编号。
[0045] 这里假设分0、1、2、3、4、5、6、7、8、9、a、b、c、d、e、f(16进制)号前置节点给用户取号。
[0046] 2号节点除了第一位必须是2以外,还规定第二位和第三位不能重复,即16*16=256,即规定每个区块的时候这个节点只能发最多256个不同编号的交易号。
[0047] 用户可以规定发出去的几笔交易都是钱包的第4笔交易,系统约定每次只能是一笔交易生效,不用担心多付问题。
[0048]如用户挑选2号节点发送交易,就生成一批交易的哈希值,把第一位是2的几笔交易发
到2号节点,2027—,2245—,2246—,2231—,经2号节点判断,2027、2245、2231已经被其他用户挑选,这里2246是空缺的,前置云节点就把2246—这笔交易发送给记帐服务器了,其他交易删除。
[0049] 附加区块高度的使记帐服务器可以判断交易数据是本区块期间发出的还是前面区块发出(但还没有写入区块链的交易)。
[0050] 比如现在新的区块是 9891,在前置云节点用户的交易数据获得一个附加的区块高度,据此可以放到本区块的本节点的布隆过滤器或类梅克尔树来对比,但小于区块9891标记如区块9890、9889的交易数据(但还没有写入区块链的交易),需要单独放到一组合中与其他记帐服务器去对比,这样可以确保最新区块交易数据在对比过程中不会有编号碰撞的情况。
[0051] 实施例2,参照图3:本例说明利用布隆过滤器可以检查数据的遗漏情况,可以通过变换随机数一段时间内
生成的哈希值使其在布隆过滤器中不重复,可以使数据从A服务器传输到B服务器后前后比较的误判率降为0(假设数据仅会遗漏,不会有新的数据出现)。
[0052]步骤S1:这里要从A服务器要传送共6个哈希值到B服务器,设布隆过滤组位数为16位。
[0053] 步骤S2:通过变换随机数生成的哈希值使其在A服务器上的布隆过滤器中不会重复,每次在布隆过滤器上添加哈希值时,在二进制位数组上至少有一个位置的1是和这个添加的哈希值唯一对应的,h1、h2、h3、h4、h5、h6共6个哈希值对应不同的位,都是唯一映射的。
[0054] 步骤S3:服务器B把收到的全部哈希值都添加到布隆过滤器(空的和A服务器上一样),比较A和B两个填上哈希值后的布隆过滤器是否一致,比较结果B上缺少2和d位,把缺的编号发送给A服务器请求下载。
[0055] 步骤S4:重复步骤S3,直到B服务器上的布隆过滤器和A服务器一致为止。
[0056]实施例3,参照图1:
本例说明如何利用不重复编号查补遗漏数据。
[0057] 利用不重复编号对比数据缺失,这里预估新区块交易笔数在6笔,设置总编号量为2的4次方,以交易哈希值的前两位表示。
[0058] 这里共有16个编号(0至15)可以选,建立一个16位的全部是“0”的字符串StringA16,在前置节点A服务器选出不重复编号后,把编号和字符串位置一一对应起来,将相应的位置的0字符串用1替换,16位字符串位置编号从左到右为0至15。这里字符串0、4、7、a、d、f位的字符为“1”。
[0059] 服务器B也和A服务器一样建立一个全是0的16位字符串StringB16,服务器收到A服务器传过来的交易数据后,把相应的不重复编号与字符串对应的位置的0用1替换,这里字符串0、7、a、f位的字符为“1”。
[0060] B服务器把StringB16发送到A服务器与StringA16进行对比,找出不同的字符的位置4、d,这位置编号就是交易的不重复编号4、d,将这些编号的相应数据发送到B服务器即补全了所B服务器所缺的数据实施例4,参照图5、6:
本例说明如何设计类梅克尔树,并如何同步异常数据。
[0061] 类梅克尔树数据存储用一个数组表示,0至14存储下层2个哈希值的串联后再哈希的哈希值,15开始到30存储按顺序的交易不重复编号,在类梅克尔数存储数组下标和不重复编号他们的差是15,没有对应的信息的叶子节点默认为哈希空值。
[0062] A服务器的类梅克尔树自下而上逐层两两串联计算哈希值,如15和16的哈希值串联后哈希的哈希值存在7,3和4的哈希值串联后哈希的哈希值存在1,直到算出根节点的根哈希值。
[0063] B服务器收到A的数据后,如同A一样建立类梅克尔树,并一直计算出根节点的根哈希值。
[0064] 这个类默克尔树的建立方式和普通的默克尔树是不一样的,最大的优势是即使哈希值的数量不一样,也不会改变各哈希值在类梅克尔树中的相应的位置,所有的哈希值都是能对号入座的,同一不重复编号的哈希值在不同的服务器上的类梅克尔树上的位置都是一样的。
[0065]这里比较A、B两颗类梅克尔树的根哈希值,不一样,比较其子节点,1节点不一致,2节点一致,比较1节点的子节点,3一致,4不一致,比较4节点的子节点,9一致,10不一致,比较10节点下的子节点,21一致,22不一致,22节点对应的不重复编号是7,向A服务器请求下载不重复编号7的哈希值。
现在从下往上计算哈希值,把新请求来的不重复编号7的哈希值放到22,把21和22哈希值串联后哈希获得哈希值放入10,把9和10串联合并后哈希的好希值放入4,把3和4串联合并后哈希的好希值放入1,把1和2串联合并后哈希的好希值放入0,对比A和B服务器两颗类梅克尔树的更哈希值为一致,则两边的数据完全一致。
[0066] 实施例5,参照图7:本例说明如何选举共识服务器来达成共识,形成新的区块。
[0067] 选举若干台共识记账服务器提供共识服务,将这几台服务器所有交易的类默克尔树根进行对比,类默克尔树根哈希值一样的最多的服务器生成的区块作为最新的区块,若默克尔树根哈希值都不一样,就随机选一台,其他记帐服务期对比类默克尔树根哈希值,若一样就作为新的区块,若不一样,就比较类默克尔树,下载不同的交易数据,形成一样的新区块,或直接下载新的区块,最后也可以去掉类默克尔树最下层哈希值为空值的节点,重新生成容量更小的区块。
[0068]实施例6,参照图4:
本例说明跨链交易是如何实现的,本区块链的交易可以形成共识,跨区块链也可以形
成共识,通过区块链的投票权系统或区块链最高权限的CA管理中心可以授权跨区块链传递数字货币或数字资产,甚至可以在两条或多条区块链之间交易,这有利于区块链的行业分工或地域分工,如产权登记、信息存证、电子商务、政务系统、物流、物联网、供应链、交易所、银行清算系统、行业、企业(采购、销售、报销)、央行、交通运输、公用事业支付、医疗系统(方便公费医疗管理)、零钱包(可以将频繁的小额交易独立开来)等,跨链交易的步骤如下:
步骤S1:相应的区块链监管部门互相授权两条(如A和B)或多条链可以跨区块链交易,即允许一条区块链上的数字货币或数字资产可以转移到另一条区块链上。
[0069] 步骤S2:用户在A或B区块链上都开立合法公钥地址帐户(如通过区块链上CA认证中心认证通过),为安全期间,最好让CA中心将需要跨链交易的本人在不同链上的公钥地址都进行关联签名认证,证明两个不同链上的公钥地址是同一人拥有,并用CA中心所拥有的权限将相关CA证书分别写入A和B区块链。CA中心可以给用户一个随机数签名,只要能用用户公钥解开,就说明用户是该公钥的拥有者,同时可以通过声音、视频或身份证等信息确认用户的真实身份。
[0070] 步骤S3:交易内容为,用户要将A区块链上的币(如100个)转移到B区块链上,用户将交易内容用A、B区块链上对应的私钥分别签名或依次签名。
[0071] 步骤S4:用户将签名和相应的公钥发送到自己公钥地址帐户所在的区块链,也可以同时发送到交易对手的区块链,或将共同的签名发到两个区块链。
[0072] 步骤S5:A区块链记帐服务器验证交易A或B的签名后达成共识后写入A区块链最新区块,将用户A公钥地址上的币(如100个)扣除,在A区块链上纪录“支付给B区块链公钥地址”,这里仅是记录,标记为不能再花费的币。
[0073] 步骤S6:B区块链上的相当多台记账服务器访问A区块链上的历史纪录,若发现确实有对应的跨链交易信息,已标记为不能再花费的币(如100个),B区块链上相当多台记账服务器达成共识后,同意在B区块链用户公钥地址上增加币(如100个)。
[0074] 步骤S7:用户将A区块链上的币转移到B区块链上后,就可以直接向在B区块链上的商家(如公交公司)或其他个人支付币。
[0075] 步骤S8:商家(如公交公司)或其他个人也可以重复S1至S7步骤,将币从B区块链跨链支付到A区块链。
高效检索全球专利

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

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

申请试用

分析报告

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

申请试用

QQ群二维码
意见反馈