【技术实现步骤摘要】
生成区块状态承诺的方法
[0001]本申请涉及区块链安全
,具体涉及一种生成区块状态承诺和证明及验证区块状态证明的方法。
技术介绍
[0002]区块链的状态验证方式可分为全节点验证和轻节点验证两类。前者通过在本地保存所有区块数据,能够通过按照区块高度验证区块合法性,按照区块内的签名交易顺序逐条执行签名交易,自行生成和验证账本状态;而对于本地无区块和账本数据的轻节点,由于不具备执行签名交易所需要的状态数据,只能依靠全节点生成的证明数据验证指定状态在指定的区块高度下的存在性。
[0003]目前最具代表性的状态验证方法是以太坊主链所采用的基于全局状态的梅克尔证明。该方法在每个区块的区块头中包含了区块内签名交易执行完毕,当前全局状态的梅克尔树根(即全局状态的存在性承诺),全节点向轻节点公示区块头、并出具指定状态名的状态值、状态的梅克尔路径,轻节点通过自行验证区块合法性、计算并比对梅克尔树根,可以验证在该区块高度上指定的状态是否存在。该方法面临“状态数据膨胀”难题。
[0004]“状态数据膨胀”指的是因为用户及合约的不断增加,以及合约执行中写入的状态键
‑
值对增加,在全节点处保存的状态数据会越来越多,从而使得全局状态树的规模不断扩大,一方面会导致状态树树根的计算量持续增加,另一方面会导致作为状态证明的梅克尔路径的数据长度持续增长,以太坊为此提出两种解决方案:
[0005]一、状态到期:状态证明沿用目前的梅克尔帕特里夏树(Merkle Patricia Tree,简称MPT树)方式 ...
【技术保护点】
【技术特征摘要】
1.一种生成区块状态承诺的方法,其特征在于,包括:每次在区块中写入状态时,记录写入状态的版本;将所述写入状态的状态名和所述版本输入全局过滤器,得到过滤器结果,并在所述区块中记录所述过滤器结果作为不存在性承诺;对所述区块所有写入状态的状态名和复合状态值进行计算,将计算结果作为存在性承诺;在区块中记录所述存在性承诺;其中,所述区块包含全部区块的所有非过期写入状态的不存在性承诺。2.根据权利要求1所述的方法,其特征在于,所述在所述区块中记录所述过滤器结果作为不存在性承诺,包括:获取所述区块的写入状态集合;根据写入状态的版本命名规则和上一版本,获取写入状态的当前版本;对写入状态的状态名和当前版本进行编码,生成复合状态名;将每个写入状态的所述复合状态名输入全局过滤器,进行过滤器计算,得到过滤器结果,作为不存在性承诺;依据当前区块高度,对输入的复合状态名建立区块高度
‑
复合状态名索引。3.根据权利要求2所述的方法,其特征在于,还包括:操作1:根据所述状态的当前版本和所述版本命名规则,获取状态的下一版本;操作2:根据写入状态的状态名和下一版本进行编码,生成下一版本的复合状态名;操作3:对所述下一版本的复合状态名进行独立过滤器计算,将计算结果与所述不存在性承诺进行比对,判断下一版本的复合状态名是否已存在;操作4:如果是,写入状态的当前版本切换到下一版本;重复操作1
‑
4,直至获得所述区块的所有写入状态的当前版本;将每个写入状态当前版本的复合状态名输入到全局过滤器计算,得到过滤器结果,作为不存在性承诺。4.根据权利要求3所述的方法,其特征在于,还包括:从全局过滤器删除写入状态的最后写入版本的复合状态名,更新区块高度
‑
复合状态名索引;如果写入状态的版本是初始版本,或者写入的状态是过期状态,将全局过滤器的元素总数加1;如果全局过滤器的元素总数超出预设上限,按照区块高度
‑
复合状态名索引,从全局过滤器中删除1个最早写入的复合状态名,并更新区块高度
‑
复合状态名索引;如果删除之后该区块高度对应的状态列表不为空,记录该状态所在的区块高度为过期区块高度,否则增加区块高度,直到找到一个对应的状态列表不为空的区块高度,记录该区块高度为过期区块高度。5.根据权利要求4所述的方法,其特征在于,所述独立过滤器和所述全局过滤器包括:支持元素移除的布谷鸟过滤器。6.根据权利要求1所述的方法,其特征在于,所述在区块中记录所述存在性承诺,包括:获取所述区块的写入状态集合;
针对所述区块每个写入状态,对写入状态的原始值、状态的当前版本、所在区块高度进行编码,生成复合状态值;对所述区块所有写入状态,将状态名和复合状态值作为键值对写入区块链的状态数据库;对所述区块所有写入状态,依据状态名和复合状态值建立状态树,并计算状态树树根作为所有写入状态的存在性承诺。7.根据权利要求6所述的方法,其特征在于,所述建立状态树包括:通过梅克尔树或沃克尔树计算得到状态树。8.根据权利要求1所述的方法,其特征在于,所述存在性承诺采用梅克尔树根或沃克尔树根表示。9.一种区块链的节点,其特征在于,包括:记录单元,每次在区块中写入状态时,记录该状态的版本;不存在性承诺生成单元,将所述写入状态的状态名和所述版本输入全局过滤器,得到过滤器结果,并在所述区块中记录所...
【专利技术属性】
技术研发人员:陈胜,蒋步云,
申请(专利权)人:北京连琪科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。