0%

ZZL22

赵晓琦,张正昊,李勇.可编辑且可追责的区块链方案[J].信息安全学报,2022,7(5):19-28

方案构造

概述

存在Leader将陷门作为秘密,进行可验证的秘密分享,附带证明。

链中用户对编辑请求进行投票,利用公钥和Leader的随机数进行哈希并排序选择具有编辑权的用户。

用户向leader发送密钥并附带证明,编辑者收到t个份额后恢复密钥并进行编辑。

用户可对编辑后的区块进行验证,对相关方追责。

秘密分享阶段

  • Share:Dealer计算
    • 计算$Y_i=(y_i)^{f(i)},i\in [n],C_j=g^{a_j},j\in\{0,t-1\}$
      • 这里为什么不能用g,用公钥类似于公钥加密
    • 承诺$c=H(g^{f(i)},y^{f(i)}_i,g^{w_i},y^{w_i}_i)$
    • 应答$r_i\equiv w_i-f(i)c \bmod q$
    • 证明$\pi=(c,r_1,\dots,r_n)$
    • 广播$(Y_1,\dots,Y_n,C_0,\dots,C_{t-1},\pi)$
  • Verify:用户计算

    • $g^{w_i}\mathop{=}\limits^{?}g^{r_i}(\prod_{j=0}^{t-1} (C_j)^{i^j})^c$
    • $y_i^{w_i}\mathop{=}\limits^{?}y_i^{r_i}(\prod_{j=0}^{t-1} (C_j)^{i^j})^c$
  • Dec:用户计算

    • 计算$s_i=Y_i^{x_i^{-1}},c_2=H(h^{t_i}|s_i^{t_i})$
    • 证明$\pi_i=(c_2,t_i-x_ic_2)$(用于对编辑的追责,可能使用虚假的公钥)

投票阶段

用户对编辑请求投票,需要保证修改的不是金融数据,同意则生成一个随机数加密发给Leader

寻找编辑者阶段

$hash_i=H(upk_i,r_{sum})$,用户计算并广播$hash_i$,其中$r_{sum}$相当于是参与者都提供了部分随机性,排序后选择最小的公钥对应的编辑者即可

编辑阶段

恢复秘密生成新的随机数即可

验证追责阶段

  • 检查$r_{sum}$正确性
  • 判断编辑权用户的公钥是不是最小的哈希值的输入
    • 还要考虑Leader的公钥与随机数的哈希值是否小于最小哈希,如果不满足说明Dealer可能作恶
  • 计算变色龙哈希值成立
  • 验证子密钥是否正确,即$\pi_i$

追责性

定义:编辑后的内容广播到区块链中,用户可验证是否可被接受,出现错误时可以向相关责任方进行追责

分别考虑验证追责阶段的四个条件:

  • Leader可能更改随机数的和来内定编辑者,计算和可以追责到leader
  • 如果用户的公钥不是最小哈希值,可以追责到编辑者
  • 如果哈希值不同,用户发送的子密钥正确,追责编辑者
  • 子密钥错误,追责子密钥拥有者

如果编辑发布后经公共验证不被接受,追责所有相关者

目的&收获

  • 了解可追责的定义,学习可追责的方案设计思路,追责部分详细分析如何追责的思路和方法
  • 寻找编辑者阶段的设计,每个人生成随机数,Dealer求和再下发和,将随机数的和以及公钥作为哈希输入,对结果排序