掌桥专利:专业的专利平台
掌桥专利
首页

基于栅式数据结构的区块链构建方法

文献发布时间:2024-04-18 19:53:33


基于栅式数据结构的区块链构建方法

技术领域

本发明涉及信息存储技术领域,尤其涉及一种基于栅式数据结构的区块链构建方法。

背景技术

随着区块链应用逐渐扩展,人们意识到不同行业对区块链的需求存在差异,而传统的通用型区块链架构往往难以满足所有特定应用的要求。一方面来讲,不同行业的应用对区块链性能和扩展性的需求各不相同,其依托区块链技术达到不同的目的,从而产生了定制化的区块链;而从另一方面看,隐私化的重要性在区块链技术中逐渐被重视,包括个人隐私、商业机密等具体问题,隐私的防护已经变为区块链技术中很大程度上需求的技术。

为了支撑更复杂的应用场景,区块链的多元化、定制化结构的归化愈发重要,即找到这些服务于不同应用场景的区块链结构的共性,提供一种可拓展的区块链结构,使区块链更便捷地应用于实际场景。

然而,现有的区块链结构对于区块链的模式化的实现研究较少,使得区块链的设计过程更为复杂,对区块链的广泛应用产生一定阻碍。同时,区块链的隐私性设计往往较为复杂,在具体的应用场景套用时可靠性较差、安全性较低,难以满足要求。

发明内容

为了解决现有技术中存在的上述问题,本案目的在于提出一种基于栅式数据结构的区块链构建方法,以获得能够服务不同场景的区块链模板。通过对上链信息进行加密存储并进行密钥分割成片段存储,以保证数据可靠性和隐私信息的安全性;通过使存储加密信息的区块和存储密钥片段信息的区块形成栅式结构,有利于区块链的拓展性。通过改进共识机制,提高区块链信息上链效率。通过控制能够解密的最少主体数,可调控信息上链速度,而通过进一步改进共识机制,可提高区块链信息上链效率。为实现上述目的,本案的技术方案如下。

第一方面,本案提出一种基于栅式数据结构的区块链构建方法,所述方法将数据链作为公链,将密钥链作为私有链,使密钥链与主体一一对应,当一个新的主体加入区块链时,为其建立一条密钥链;当一个信息上链时,将上链信息利用密钥加密后上传到数据链区块,并进行密钥分割,将密钥片段分配给主体,主体将分配结果存储于自己的密钥链中,存储加密信息的区块和存储密钥片段信息的区块形成栅式结构。

在上述技术方案的一种实施方式中,加密方法如下:

t=Floor[1000(cosαx-Floor[cosαx])]

x′=x+y

式中:

x表示待加密信息的数字化结果,Floor[x]表示不大于x的最大整数,t表示密钥,α预设的非2π倍数的常数,x′为加密信息。

在上述技术方案的一种实施方式中,密钥分割步骤包括:

将密钥分成

在上述技术方案的一种实施方式中,将密钥片段分配给主体,主体将分配结果存储于自己的密钥链中,具体实现步骤包括:

定义分配矩阵U

假设第i种选择方法选择的数为C

如果U

当主体得到分配给各自的密钥片段时,添加一个区块至自己的密钥链,从而使密钥片段存储在密钥链中的区块高度与该密钥加密的原始信息存储在数据链中区块高度相同。

在上述技术方案的一种实施方式中,根据区块链出块速度需求设置能够解密的最少主体数。

在上述技术方案的一种实施方式中,所述方法在信息下链时,具有调用权限的主体根据其要调用信息在数据链的区块高度,向各主体要求提供所记录的主链上该区块的信息与密钥链上相应区块高度的密钥片段信息,以还原密钥;

利用还原的密钥,对各主体提供的所记录的信息进行解密,获得相应的解密结果,当某一解密结果加密后与解密前信息相同时,则认为该解密结果可信。

在上述技术方案的一种实施方式中,所述方法在获得可信解密结果后,进行共识。

在上述技术方案的一种实施方式中,所述方法预先存储调用权限的认证私钥,持有私钥的主体具有调用权限。

在上述技术方案的一种实施方式中,拥有调用权限的主体不限于区块链的参与主体。

第二方面,本案提出一种基于栅式数据结构的区块链装置,其特征在于:所述装置包括存储介质和处理器,存储介质存储有能够被处理器加载并执行上述任一种方法的计算机程序。

第三方面,本案提出一种基于栅式数据结构的区块链,所述区块链包括作为公链的数据链、作为私有链的密钥链;其中:密钥链与主体一一对应,当一个新的主体加入区块链时,为其建立一条密钥链;当一个信息上链时,将上链信息利用密钥加密后上传到数据链区块,并进行密钥分割,将密钥片段分配给主体,主体将分配结果存储于自己的密钥链中,存储加密信息的区块和存储密钥片段信息的区块形成栅式结构。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1、一种实施方式中的可拓展栅栏式区块链结构示意图;

图2、一种实施方式中的所使用的密钥分配方法示意图,附图中“空”表示在本发明所涉及的密钥分配方法中该主体未能获取对应密钥片段;

图3、一种实施方式中链上存储信息情况与信息调用的实现过程示意图。

具体实施方式

针对现有技术缺少通用的区块链,且区块链的隐私性设计复杂,在具体的应用场景套用时可靠性较差、安全性较低的问题,本案提出一种基于栅式数据结构的区块链构建方法,所述方法将数据链作为公链,将密钥链作为私有链,使密钥链与主体一一对应,当一个新的主体加入区块链时,为其建立一条密钥链;当一个信息上链时,在上链信息利用密钥加密后上传到数据链的区块的同时,进行密钥分割,将每个密钥片段分配至选择的密钥链并存储于对应区块高度的区块中,存储加密信息的区块和存储密钥片段信息的区块形成栅式结构,有利于区块链的拓展,从而获得具有通用性的区块链,可应用于不同场景。

下面将结合附图,对本案技术方案如何实施进行清楚、完整地描述,显然,所描述的实施方式仅仅是本案的一部分实施方式,而不是全部的实施方式。基于本案中的实施方式,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施方式,都属于本申请保护的范围。

参见图1,本案中的区块链设计方面分为对数据层、网络层和共识层的设计。其中,数据层设计指区块链的数据结构和数据存储,网络层设计指信息上链和信息下链实现,共识层设计指参与区块链的主体实现存储信息的一致性,避免区块链上内容遭到篡改。

(一)数据层

从图1数据层中区块链结构可以看出,该区块链结构与以往的单链结构不同,本案构建的区块链呈“n+1”栅式结构,“n”是密钥链的数目,“1”是数据链的数目。在该结构中,数据链是一条公链,密钥链为私链。

在一种实施方式中,采用下述步骤构建区块链:

(1)建立一条数据链。

(2)当一个新的主体加入区块链时,为该主体赋予虚拟地址或其它标识,建立一条对应的密钥链。

当n个主体参与区块链时,编号1,2,...,n,每个主体被赋予唯一的虚拟地址或其它标识。相应地,建立了n条密钥链,密钥链的编号为1,2,...,n,每条密钥支链对应相应编号的主体。

数据链为公有链,每个主体都应当有一份备份,而密钥链应当为私有链,仅由对应主体掌握,其他主体不应当有其备份。

数据链上的区块包含有效信息为加密后的原始信息,该对原始信息的加密通过密钥实现,该密钥即密钥链上的区块应包含的有效信息。

此外,数据链上的区块上的信息还包括:数据链上的区块的其它基本信息,比如时间戳、Hash值、父Hash值和区块高度,在部分特殊场景可以进行拓展。密钥链上的区块上的信息还包括所处私钥链的编号,以及区块在私钥链上的其他基本信息块。

(3)当一个信息需要上链时,根据上链信息生成一个密钥,将需上链的信息进行加密。为数据链生成一个标准的待填区块,内容包括区块信息和存储信息。区块信息一般包括区块Hash值、区块父Hash值、区块高度、时间戳等确定区块本身的信息,而存储信息指区块的实际内容。在待填区块中,存储信息补充为加密后的需上链信息,将该区块添加至数据链。

将密钥分割成若干片段,将这些片段通过密钥分配方法以预设的方式分配给各主体。主体得到分配给各自的密钥片段时,添加一个区块至自己的密钥链。所添加区块中储存信息补充为各主体获得的密钥分配结果。

在本案的区块链设计中,数据链每添加一个区块,各密钥链相应添加一个区块,这些新添加的区块有着相同的区块高度,即:每条密钥链上的区块与数据链上的区块一一对应;并且与该密钥片段所属密钥对应的加密信息在数据链上区块的区块高度相同。这将有利于在调用过程中便捷地获取密钥。

在这种方式下构建的区块链是一种多链,存储加密信息的区块和存储密钥信息的区块形成栅式结构,这种结构不仅有利于区块链的拓展,而且使区块链具有通用性,便于应用于不同场景,而且这种结构可以保证区块链多参与账本的特性不被篡改,在应用于具体场景时保留了保证链上信息可靠性和有效性的优势。

为了辅助上述栅式结构中数据管理,数据层在实施时还包括用于记录静态信息的数据库,用于存储各主体的实际信息及与编号的对应关系,各区块链的地址等。此外,数据库还用于管理链上信息调用权限,即存储调用权限的认证私钥,持有私钥的主体视为有调用权限。对数据库中的信息设置单独的接口,在正常情况下只能与此区块链结构的网络层进行对接,使网络层能够获取主体的实体与编号的对应关系,以及链上信息调用权限的确认,从而保证用户非动态信息的私密性。为了区块链的安全性,调用权限也可进一步改进为动态分发验证,即调用信息的主体发送调用权限验证请求,由监管主体生成调用权限验证响应携带token返回给该主体,主体通过有效token获得调用权限。

(二)网络层

在网络层提供了信息上链和信息下链(调用)的方法。

(1)信息上链

信息上链过程是指对信息进行加密,并将加密结果上传到区块链,并保留加密所使用的密钥的过程,分为信息加密上链过程和密钥分割上链过程两部分。

(1.1)信息加密上链

考虑原始信息、链上加密信息和密钥三个部分。分析当链上对密钥和加密信息的存证不完全可信的情况下,也就是少量主体的存证中篡改了密钥或加密信息,抑或两者均被篡改。因而设计一种可验证的加密方法,即密钥可以通过原始信息确定,而原始信息却不能或不易由密钥或加密信息推得。

根据描述,设计一种能够实现上述目标的对由待加密信息生成密钥方法的限制,包括:

(1.1.1)密钥由加密信息少量生成,尽可能唯一生成,这是保证核验的可靠性;

(1.1.2)某一密钥不应当只能由特定加密信息生成,即在该密钥的生成方法中,密钥应当可以对应由多个不同加密信息生成,这是为了防止由密钥逆推原始数据,应当说明的是,能够对应生成同一密钥的原始信息的数量不宜过多,这同样是保证核验的可靠性;

(1.1.3)加密信息不应当能够由密钥简单推断,原始信息也不应当能够由加密信息简单推断。

示例性地,加密方法可使用可验证的对称加密方法。根据所述的限制,一种可行的加密方法如下式:

y=Floor[1000(cosαx-Floor[cosαx])]

x′=x+t

其中,需保证待加密信息可以被数字化,且x表示待加密信息的数字化结果,Floor[x]表示不大于x的最大整数,y表示密钥,α预设的非2π倍数的常数,x′为加密信息。

根据三角函数的性质不难验证该方法满足上述条件,且上述加密方法适用于部分允许信息存在少量误差或允许信息存在周期性误差的情况。

(1.2)密钥分割上链

对于密钥分割上链过程,设计一种密钥片段分配方法。将密钥按照方法分割为若干片段,分配并发送至各个主体。各主体将所收到的密钥上至密钥链存储。根据上述过程,该密钥片段分配方法应当具有的特征包括:(1.2.1)该分割方法具有可逆性,即当所有密钥片段已知时,密钥可以根据该方法被还原;(1.2.2)根据对称加密的特点,无论密钥片段以何种形式被分配,单个主体无法获得完整密钥,否则无法保证链上信息隐私性;(1.2.3)不同的分配方法决定了该区块链的可拓展性,根据具体应用场景决定具体分配方式。

为更好说明密钥片段分配方法对区块链的功能的拓展性作用,本发明提供的一种密钥片段分配方法的示例。由于区块链的应用场景通常涉及到一个实体控制多个参与区块链的主体的情况,例如同一名用户注册多个账号等,该方法实现抗共谋效果,即密钥可以被大多数主体一起还原而不能被少数主体还原。此外,该方法的区块链出块速度可控,具体地,通过调整能够解密的最少主体数m,可调整区块链的信息上链速度。m在增大过程中,信息上链速度越慢,当m增大至

具体地:将密钥分成

如果U

不难判断,此时t个片段各自被发送给r个主体,其所对应的r个主体各自不完全相同,且包含任意r个主体的组合。因此可以证明,任意少于m个主体试图破解密钥时,一定可以找到r个不会帮助它们破解密钥的主体,且会发现至少存在一个密钥片段被发送给了这r个主体,因而密钥无法被破解。

密钥片段在分配后,主体添加一个区块至自己的密钥链,新添加的区块和使用密钥片段所属密钥加密的信息在数据链的区块高度相同。通过这种添加数据链区块和密钥链区块的方式,能够有利于在调用过程中便捷地获取密钥。

(2)信息下链

对于调用过程,首先验证其调用权限。示例性地,采用预设方法,在数据库中存储调用权限的认证私钥,持有私钥的的主体视为有调用权限。需注意的是,该拥有调用权限的主体不限于区块链的n个主体,以有利于对区块链进行监管。

接下来,确定所调用信息在数据链的区块高度,然后各主体要求提供所记录的主链上该区块的信息与密钥链上相应区块高度的密钥片段信息,需注意各主体对于数据链上的信息和各密钥片段的信息不一定相同,对其分别记录。对于各密钥片段的信息,取所有被提供的该片段的信息出现频次最高的一组,由于假设中只有少量主体可能篡改或拒绝提供数据,因而认为该数据可信。依据各密钥片段还原密钥,从而还原加密前的原始信息。同理,该信息可能存在错误信息,对其分别进行验证,以确定正确的原始信息,验证方法即处理由下文所述共识机制确定。

(三)共识层

对于传统区块链的,通常是指对区块链共识机制的封装。一般来说,它的作用是解决区块链主体之间的信任问题,保证多个主体之间分布式记录的一致性,防止数据被篡改。然而,由于共识需要所有主体都同意,以PoW共识机制(这是区块链领域广泛使用的共识机制)为例,它需要反复计算哈希值并驱动计数器Nonce增加,实际使用中效率较为低下。

为此本案基于数据解密方法设计一种异步共识机制。该机制的实现原理是不选择在区块上链过程中保证数据的真实性,而是在有原始数据需求的解密过程中检验数据的真实性。它可以在一定程度上取代传统区块链在上链中进行共识的共识机制(下文中简称传统共识机制)的功能,在保证计算效率的同时最大限度地减少传统共识机制的缺失在区块链中的影响。

所述异步共识机制的主要实现方法如下:

根据加密方法,对区块链的不同主体所记录的不同链上信息进行解密,对解密结果分别进行检验,即将解密结果分别进行加密与解密前信息进行对比,并根据所述的该加密的特性,在某一解密结果加密后与解密前信息相同时,认为该解密结果可信,从而达到共识的作用。

对于该异步共识机制的对传统共识机制的替代效应,主要分析如下:

1)传统共识机制起到防止恶意篡改的作用,而该共识机制起到验证各主体所记录链上信息合法性的作用。通过验证解密结果,使对链上加密数据和密钥的篡改无效化,从而避免用户篡改区块链,保证链上数据的可靠性。

2)该异步共识机制起到同步区块和抗合谋欺诈的作用,维护链上数据的合法性。通过上述合法性证明的机制,确定链上信息并再次进行同步,它可以防止对信息进行区块上链过程中的进行上链操作的主体对链的欺诈,也可以防止大量主体合谋进行欺诈。

同时,与传统共识机制相比,该方法具有明显的优势。一是效率上的优势。传统区块链操作的效率严重依赖于共识机制,操作次数通常与当前链长和参与区块链主体数量成正比。由于一条区块链可能有数千个参与主体,链上数据块中记录的信息被验证次数至少为与参与主体数n的平方相同的数量级,导致效率极慢。当传统共识机制被替换时,算法可以通过调整加密算法来控制一个区块上链所需计算次数,从而控制区块输出速度,而共识机制则被安排在了解密过程中。由于该共识机制异步的特性,其共识过程并不影响上链的速度。例如在在本发明所提供的密钥片段分配方法中,这是通过在加密过程中控制所选主体的预设数m来实现的。二是与共识机制相比,解密算法提高了原始数据的保密性。通过对原始数据进行加密,保证了少数总线无法解密原始数据,只有参与解密的总线数量达到加密预设值m时,才能对区块链化后的数据进行解密,实现了区块链安全机制的反合谋破解,从而取代了通用识别机制在安全验证中的作用。

(四)区块链工作原理示例

下述实例上链过程以更清晰解释上述区块链工作原理,依旧使用上述实施方式中的密钥分割方式。

假设所述的区块链结构中共有5个主体,且现在我们限制当调用链上数据的操作有任意3个主体同意时可以进行,并假设现在待上链信息为x=36.3,而解密数据允许存在少量误差。使用上述加密方法并令常数,不难算出密钥y=170,且经过计算,满足的待加密信息均有上述密钥计算值。从而加密结果x’=x+y=206.3。将x’作为加密后的信息打包成区块,添加至数据主链。

根据条件,n=5,m=3,从而r=3。因而将密钥分为10段,这里将y转化为二进制数y=0101010100,并按位分割为10段。根据分配方法,列出分配矩阵,并根据分配矩阵得出分配结果,即各主体所掌握的密钥片段,如附图2所示,其中矩阵S代表分配结果矩阵的取值表,该矩阵同样为t行n列,图中“空”表示在本发明所涉及的密钥分配方法中该主体未能获取对应密钥片段。

再分析数据的调用过程,不妨假设密钥在链上的存储情况如图3所示,其他情况与此结果一致,不做分析。如图3所示,当选择5个主体中的3个(编号分别为1,2,3的主体)时,密钥可以被完整还原。由于该密钥的还原需要所有片段,而如图3所示,当仅选择2个主体(编号为1,2的主体)时,仍有未知的密钥片段,密钥无法被完整还原,这达到所述效果。

最后分析数据的共识过程。根据数据调用过程,密钥的还原值为170,并根据假设,大多数主体不会篡改链上数据,即至少一个主体所保存的链上数据值为206.3,从而还原原始信息为36.3。检验该原始信息与可能存在的由于某主体篡改所记录的链上信息产生的其它原始信息。由于加密方法固定且已知,验证,即x=36.3为可信结果,并再次进行共识,即所有链上记录数据不为206.3的主体修改对应区块。

从该分析不难看出,当区块链中的主体数n较少时,密钥较容易被破解,因而该加密方法的缺陷在于仅适用于参与区块链的主体数较多的情况。在一仿真实验中,当n>=30时,100000次也未能被成功破解。

综上,本案具有以下技术效果:

(1)通过构建数据链为公链,为各个主体建立对应的密钥链为私链,采取信息加密上链和密钥上链,保证数据可靠性和隐私信息的安全性;

(2)存储加密信息的区块和存储密钥信息的区块的区块高度相同,易于获取密钥,且形成栅式数据结构,易于拓展,从而使得区块链具有通用性,以应用于不同场景;

(3)通过控制解密的最少主体数,控制信息上链速度;

(4)通过在获得可信解密结果后进行共识,替代传统区块链在上链过程中共识机制,不仅避免区块链内容篡改,而且保证计算效率。

根据上述记载的区块链构建的方法,可知基于栅式数据结构的区块链,具体包括作为公链的数据链、作为私有链的密钥链;其中:密钥链与主体一一对应,当一个新的主体加入区块链时,为其建立一条密钥链;当一个信息上链时,将上链信息利用密钥加密后上传到数据链区块,并进行密钥分割,将密钥片段分配给主体,主体将分配结果存储于自己的密钥链中,存储加密信息的区块和存储密钥片段信息的区块形成栅式结构。

通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本公开可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用CPU、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本公开而言更多情况下,软件程序实现是更佳的实施方式。

尽管以上结合附图对本发明的实施方案进行了描述,但本发明并不局限于上述的具体实施方案和应用领域,上述的具体实施方案仅仅是示意性的、指导性的,而不是限制性的。本领域的普通技术人员在本说明书的启示下和在不脱离本发明权利要求所保护的范围的情况下,还可以做出很多种的形式,这些均属于本发明保护之列。

相关技术
  • 一种车辆顶盖防弹组件和具有其的车辆
  • 一种新型防弹材料及防弹衣
  • 一种新型防弹材料及防弹衣
  • 一种防弹车门总成及防弹车辆
  • 一种防弹车门及防弹车辆
技术分类

06120116339106