欢迎来到知嘟嘟! 联系电话:13095918853 卖家免费入驻,海量在线求购! 卖家免费入驻,海量在线求购!
知嘟嘟
我要发布
联系电话:13095918853
知嘟嘟经纪人
收藏
专利号: 2020108912839
申请人: 河南大学
专利类型:发明专利
专利状态:已下证
专利领域: 电通信技术
更新日期:2024-01-05
缴费截止日期: 暂无
价格&联系人
年费信息
委托购买

摘要:

权利要求书:

1.一种应用于区块链的数据编辑方法,其特征在于,包括以下步骤:A:构建记录验证树;

其中,记录验证树为一个二叉和三叉混合树,记录验证树共有n层,从第1层到第n-2层为结构树,每个结构树都是一颗三叉树,即每个节点有三个叶子节点,结构树的每个节点代表着阈值门;第n层和第n-1层为信息树,每个信息树都是一颗二叉树,即每个节点有两个叶子节点;n为正整数;

B:判断用户是执行记录删除操作还是记录修改操作,若执行记录删除操作,则进入步骤C;若执行记录修改操作,则进入步骤F;

C:设用户想要删除区块i″上的记录RL1;

首先,用户对记录RL1的哈希hash1=hash(RL1)进行签名Sign(hash1),并生成删除请求DelInfo′={address,del,Sign(hash1)},其中address为记录地址,del为删除标记,Sign()表示对任意字符进行签名计算,Sign(hash1)表示hash1的签名;

其次,用户将删除请求发送给利益相关方;

然后,利益相关方对删除请求的哈希hash2=hash(DelInfo′)进行签名并发送给签名收集方;

最后,签名收集方收集各方的签名并生成删除消息DelInfo={address,del,Sign(hash1),MuSign(hash2)},并将删除消息DelInfo广播到区块链网络中,其中MuSign(hash2)表示对删除请求hash2的多重签名;然后进入步骤D;

D:首先,所有节点对删除请求中的签名信息进行哈希,生成签名的哈希摘要hashsign=hash(Sign(hash1));

其次,将hashsign和其他记录的哈希集合hashlist一起代入记录验证树验证方法Verification()进行验证,并解出记录验证树保存的秘密值e(g,g)s,将其与验证参数哈希进行计算后再进行哈希计算得到秘密值哈希hash3=hash(e(g,g)s·VPHash);

然后进行如下验证:

1)将hash3与秘密值哈希SHash进行对比是否一致;

2)对多重签名进行验证是否合法;

如果这两项都通过验证则接受删除行为,否则不接受;

最后,将验证结果广播到区块链网络中;然后进入步骤E;

E:当删除消息被全网半数以上节点的验证通过后,将区块i″中的记录RL1从区块中删除,并将删除消息插入到请求列表中;

F:设用户想要修改区块i″上的记录RL1;

首先,用户对记录RL1的哈希hash1=hash(RL1)进行签名Sign(hash1),并对新记录RL′1进行哈希得到hash′1=hash(RL′1),同时对hash′1进行签名Sign(hash′1);

其次,用户生成修改请求ModifyInfo′={address,mod,Sign(hash1),hash′1,Sign(hash′1)},并将修改请求发送给利益相关方,其中address为记录地址,mod为修改标记,Sign()表示对任意字符进行签名计算,Sign(hash1)为hash1的签名,hash′1为RL′1的哈希,Sign(hash′1)为hash′1的签名;

然后利益相关方对修改请求的哈希hash2=hash(ModifyInfo′)进行签名并发送给签名收集方;

最后签名收集方收集各方签名并生成修改消息ModifyInfo={address,mod,Sign(hash1),hash′1,Sign(hash′1),MuSign(hash2)},并将重新生成的记录RL1′一起发送到区块链网络上,其中,MuSign(hash2)表示对修改请求hash2的多重签名;然后进入步骤G;

G:首先,所有节点对修改请求中的签名信息进行哈希,生成哈希摘要hashsign=hash(Sign(hash1));

其次,将hashsign和其他记录的哈希集合hashlist一起代入记录验证树Verification(),并解出记录验证树保存的秘密值e(g,g)s;

s

然后,将秘密值e(g,g) 与验证参数哈希进行计算后再进行哈希计算得到秘密值哈希hash3=hash(e(g,g)s·VPHash),并进行如下验证:

1)将hash3与秘密值哈希SHash进行对比是否一致;

2)对新生成的记录RL1′进行哈希计算,并将计算得出的记录RL1′的哈希值与修改消息中的哈希值hash′1进行对比是否一致;

3)对多重签名进行验证是否合法;

如果这三项均通过验证则接受修改行为,否则不接受;

最后,将验证结果广播到区块链网络中;然后进入步骤H;

H:当修改消息被全网半数以上节点的验证通过后,将区块中的记录RL1从区块中删除,将修改消息插入到请求列表中,将新记录插入新记录列表中。

2.根据权利要求1所述的应用于区块链的数据编辑方法,其特征在于,所述的步骤A包括以下步骤:A1:初始化步骤:由授权中心进行初始化,选择一个生成元为g的q阶双线性群 然后生成系统安全参数SP:其中, 是素数阶双线性群,g为生成元,q为双线性群 的阶数,e(g,g)为双线性计算公式;

A2:生成步骤:Generate(SP,RL),Generate(SP,RL)表示记录验证树的生成,RL表示记录集合,生成步骤由区块链节点运行;

首先,区块链节点根据记录集合RL和构造规则构造记录验证树

其次,为记录验证树 的每一个节点 选择一个 次多项式 其中,代表记录验证树的节点, 为节点 的子节点数的阈值, 为节点 对应的多项式;

再次,随机选择秘密参数 作为记录验证树 保存的秘密值,并将秘密参数s保存在记录验证树 的根节点R中 ;然后令qR (0)= s,对于其他节点 ,令其中,qR(0)=s表示根节点R对应的多项式在自变量为0时的因变量为s, 表示模为素数q的有限整数域, 表示节点 的父节点, 表示节点 的索引;

最后,设Y是记录验证树 的所有叶子节点的记录集合,计算验证树参数VP、验证参数哈希VPHash和秘密值哈希SHash:VPHash=hash(VP)                        (3)SHash=hash(VPHash·e(g,g)s)            (4)其中,为记录验证树的叶子节点且 和 为计算验证树参数VP的组成参数,表示记录 对应的多项式的自变量为0时对应因变量的值,哈希函数H()表示将任意二进制字符映射到双线性群 表示叶子节点y相关联记录的哈希摘要, 表示将哈希摘要 映射到双线性群 表示对于任

意属于属性集Y的属性 均可以计算得到参数 和 用于生成验证树参数VP,hash()是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数;

区块链节点将验证树参数VP、验证参数哈希VPHash、秘密值哈希SHash、记录集合RL和其他区块信息一起打包生成区块,并向全网广播,区块得到确认后存储到区块链上,其他区块信息包括时间戳、父区块哈希和版本号;

A3:验证步骤;Verification(RL,VP),Verification(RL,VP)表示记录验证树对记录的验证;验证步骤由区块链节点运行;以区块的记录集合RL和验证树参数VP作为输入,并输出验证结果;

在验证过程中:

首先,由验证系统执行解密 表示解密记录验

证树以获取根节点保存的秘密值A;

其次,从记录验证树 的叶子节点开始计算节点保存的值,并使用递归计算上一层节点的值,通过逐层计算直至解出根节点R保存的秘密值;

然后,计算记录验证树的根节点R的秘密值A:

其中,qR(0)表示根节点对应的多项式的自变量为0时的因变量的值,z表示当前节点的子节点;

最后,将新计算得出的秘密值哈希Shash′=hash(A·VPHash),对比Shash′是否和原始的秘密值哈希Shash一致,如果一致,说明记录真实有效,如果不一致说明区块记录被篡改。

3.根据权利要求2所述的应用于区块链的数据编辑方法,其特征在于:所述的步骤A1中,e(g,g)为双线性计算公式,满足下述性质:(1)双线性,对于 均存在

(2)非退化性, 使 成立, 代表 群的单位元;

(3)可计算性,存在有效的算法对 计算

其中, 和 是素数阶双线性群, 表示模为素数q的有限整数域,整数a属于 用于双线性计算中的指数,整数b属于 用于双线性计算中的指数,属于 用于双线性计算中的底数,β属于 用于双线性计算中的底数。

4.根据权利要求2所述的应用于区块链的数据编辑方法,其特征在于:所述的步骤A3中,在计算根节点R的秘密值的过程中:对于叶子节点来说,令t为节点 对应的记录值,

如果 则

如果t∈RL,则

其中,t为节点 对应的记录值, 表示记录 对应的多项式的自变量为0时对应因变量的值,⊥表示“无效输入”,哈希函数H(t)表示将节点 对应的记录值t映射到双线性群对于非叶子节点来说,进行从下到上逐层解密操作;对于所有属于节点 的子节点z,调用DecryptNode(VP,z)并输出子节点z对应的秘密值Fz;Sx表示一个由 个Fz≠⊥节点z组成的集合;其中, 为节点 的子节点数的阈值,z表示节点x的子节点,Fz表示节点z对应的秘密值;

如果不存在这样的集合,函数返回⊥,如果存在这样的集合,则根据拉格朗日插值法计算:其中, 表示节点 对应的秘密值, 表示节点 所有子节点的集合,i′表示节点z的索引, 表示节点 对应子节点z索引组成的集合,qz(0)表示节点z对应的多项式的自变量为0时对应因变量的值, 表示索引为i′且集合为 时对应的拉格朗日插值法的插值基函数,parent(z)表示节点z的父节点,index(z)表示节点z的索引,qparent(z)(index(z))表示节点z的父节点对应的多项式在自变量为节点z的索引时的因变量的值, 表示节点 对应的多项式的自变量为i′时对应因变量的值。