Policy-based Chameleon Hash for Blockchain Rewriting with Black-box Accountability (基于策略的变色龙哈希和具有黑盒问责的区块链重写)
这篇文章是ACSAC20上的一篇区块链相关论文,并且友好的在文中附上了源码链接,供大家进行实验仿真,还是不错的,且论文写的也非常好,比较适合阅读。以下是我个人在读后记录的笔记和个人的理解,理解还有许多不足,建议还是看原文!
文章目录预览
一、背景与贡献预备知识
1.1 写作背景
文章开篇,国际惯例。首先介绍区块链相关背景,然后引出了重写区块链的必要性,并指出目前主要为两种类型的区块链重写(若对背景不是很了解的可以结合related work一起看):
- 1)区块级重写:直接用变色龙哈希替换传统区块Merkle树根节点的哈希值。
- 2)交易级重写:发生在特定区块中的交易上。Derler等人介绍了基于策略变色龙哈希(PCH)的区块链重写,它包括以下特性。首先,PCH支持交易级重写。其次,PCH通过使用基于属性加密ABE实现了细粒度的区块链重写,具体来说,访问策略被嵌入到交易和具有PCH陷门的交易修改者中,若其对应的PCH陷门的属性满足嵌入式访问策略则可以修改交易。
动机:基于PCH的区块链重写会有安全问题,例如交易修改者可能滥用重写特权,并在不被识别的情况下恶意重写区块链。交易修改者可以否认他对交易的恶意重写,因为其他具有不同PCH陷门的交易修改者可能满足交易中嵌入的相同访问策略。这种安全威胁存在的原因是因为加密原语ABE有一个固有的属性:匿名。
另外,问责制是区块链重写的关键。
1.2 主要过程和贡献
本文引入基于策略的变色龙哈希和黑盒问责(PCHBA),用于确保区块链重写、实现匿名和问责,若对修改后的交易无争议,则交易修改者仍然是匿名的。主要过程如下:
- (1)上传过程:Owner上传可变交易,并输出一个基于策略的变色龙哈希值,该哈希值包括一个密文和一个签名。在此过程中,owner加密一个临时陷门,并附上签名,它还可以限制指定方可以解密这个临时陷门。(为了在基于策略的变色龙哈希中生成签名,所有者使用ta的签名密钥和签名将临时陷门随机化)
- (2)修改过程:若Modifier同时拥有AA所给的变色龙密钥和解密获得的PCH中的临时陷门,则才允许修改者重写可变交易。它还可以使用自身的签名密钥和签名随机化相同的临时陷门,以此来链接消息-签名对,从而实现可靠性。
- (3)黑盒问责过程:
- 第一步,找到链接的交易(给定一组交易,公众与相同临时陷门相关联,所以他们可以链接相应的消息签名对,从而将交易链接到其修改后的版本);
- 第二步,找到被指定的修改者(给定一个访问黑盒,ABET的黑盒可追溯性,公众都可以通过访问黑盒交互获得一组被指定的修改者);
- 第三步,将修改的交易链接到可靠的修改者(由于PCHBA的匿名性确保了可变交易不会透露修改者身份信息,只有AA可以使用其主密钥将修改的交易链接到可靠的修改者)。
黑盒问责两层含义:
- 1)任何公共用户都可以识别一组被指定的交易修改者,其PCH陷门被用于生成访问设备/黑盒。该访问黑盒包括不同交易修改者的各种改写权限;
- 2)在对修改后的交易发生争议的情况下,属性授权机构(AA)可以将修改后的交易与负责的交易修改者联系起来(即一对一映射)。
主要贡献:
- 1)通用框架:介绍了第一个PCHBA(具有黑盒问责的基于策略的变色龙哈希)的通用框架用于区块链的重写,它不允许交易修改者拒绝对该修改者所修改的任何交易进行恶意重写。
- 2)实例化:给出了一个PCHBA实例,并通过实施和评价验证其实用性。
二、 预备知识
2.1 ABET、CHET、PCH和ABE名词解释:
- (1)基于属性加密的黑盒可追溯(ABET):由基于密文策略的属性加密(CP-ABE)方案和匿名层次结构的基于身份加密(HIBE)方案构造了ABET方案。
- 1)主密钥对结合CP-ABE和HIBE的密钥对;
- 2)解密密钥与HIBE身份层次结构中深度 i i i 处的一组属性和身份相关联,密文与深度 j j j 处的一个访问策略和另一个身份相关联;
- 3)若属性集满足访问策略且 j ≤ i j\leq i j≤i,则进行解密。深度 i i i 比 j j j 更接近根节点,也确保黑盒的可追溯性。
- 为了构造真实的ABET,依赖方案[9]中的CP-ABE和方案[14]中的HIBE,并用非对称配对 e : G × H → G T e: \mathbb{G} \times \mathbb{H}\to \mathbb{G}_T e:G×H→GT将ABET扩展到一个匿名版本。基本思想为:修改者的解密密钥中基于身份的元素属于G组,密文中基于身份的元素属于H组(若主密钥未知,密文可以隐藏修改者身份)。
- 并提出了一种新的复合假设,证明了ABET的语义安全性:决策线性指数(DLE),它是基于标准的决策线性(DLIN)[9]和双线性Diffie-hellman指数(BDHE)[14]。
- 并提出了一个新的假设,证明了ABET的密文匿名性:扩展的决策性Diffier-hellman(eDDH),它在非对称环境下扩展了标准的DDH。
- (2)带有临时陷门的变色龙哈希(CHET)
- (3)基于策略的变色龙哈希(PCH)
- (4)基于属性加密(ABE)
2.2 双线性映射
令 ( g , h ) (g,h) (g,h)表示两个群生成器,给定安全参数 λ \lambda λ作为输入,输出群 G , H \mathbb{G},\mathbb{H} G,H。我们定义 ( g , h ) (g,h) (g,h)的输出为 ( q , G , H , G T , e ) (q,\mathbb{G},\mathbb{H},\mathbb{G}_T, e) (q,G,H,GT,e),其中 q q q是一个素数, G , H \mathbb{G},\mathbb{H} G,H和 G T \mathbb{G}_T GT是阶为 q q q的循环群,双线性映射 e : G × H → G T e:\mathbb{G}\times\mathbb{H}\to \mathbb{G}_T e:G×H→GT满足:
- 1)双线性: ∀ g , h ∈ G \forall g,h\in G ∀g,h∈G和 a , b ∈ Z q a,b\in \mathbb{Z}_q a,b∈Zq,我们有 e ( g a , h b ) = e ( g , h ) a b e(g^a,h^b)=e(g,h)^{ab} e(ga,hb)=e(g,h)ab。
- 2)非退化性:在 G T \mathbb{G}_T GT中, ∃ g ∈ G \exists g\in \mathbb{G} ∃g∈G使得 e ( g , h ) e(g,h) e(g,h)具有 q q q阶。我们假设群操作 G , H \mathbb{G},\mathbb{H} G,H和 G T \mathbb{G}_T GT和双线性映射 e e e关于 λ \lambda λ在多项式时间上是可计算的。将 G 和 H \mathbb{G}和\mathbb{H} G和H视为源群, G T \mathbb{G}_T GT作为目标群。
定义决策线性指数(DLE):给定群生成器 g ∈ G g \in \mathbb{G} g∈G和 h ∈ H h \in \mathbb{H} h∈H,定义以下分布是可忽略的。(见原文公式)
定义扩展的决策性Diffier-hellman(eDDH):给定群生成器 g ∈ G g \in \mathbb{G} g∈G和 h ∈ H h \in \mathbb{H} h∈H,定义以下分布是可忽略的。(见原文公式)
2.3 基于属性密文策略的具有黑盒可追溯的加密技术
单调跨度程序(MSP)(重点理解MSP):一个具有秘密领域的秘密共享方案 ∏ \prod ∏ 实现了访问结构 Λ \Lambda Λ,被称为在 Z q \mathbb{Z}_q Zq上是线性的。如果满足以下两个条件:
- 1)秘密 s ∈ Z q s\in \mathbb{Z}_q s∈Zq对每个属性的份额构成了 Z q \mathbb{Z}_q Zq上的一个向量;
- 2)对每个访问结构 Λ \Lambda Λ都存在一个矩阵M有 n 1 n_1 n1行和 n 2 n_2 n2列称为 ∏ \prod ∏的共享生成矩阵。对于 u = 1 , . . . , n 1 u=1,...,n_1 u=1,...,n1,本文从属性域 U \mathbb{U} U中的属性 π ( u ) \pi(u) π(u)定义一个函数 π \pi π标记M的行 u u u。考虑列向量 v ˉ = ( s , r 2 , . . . , r n 2 ) T \bar{v} = (s,r_2,...,r_{n_2})^T vˉ=(s,r2,...,rn2)T,其中 s ∈ Z q s\in \mathbb{Z}_q s∈Zq是共享的秘密,而 r 2 , . . . , r n 2 ∈ Z q r_2,...,r_{n_2}\in \mathbb{Z}_q r2,...,rn2∈Zq是随机选取的。后面还有一段,这里就不再赘述(首先自己不是很理解,其次码公式挺花时间的😂)
密文策略的ABET:由以下算法构成 A B E T = ( S e t u p , K e y G e n , E n c , D e c , T r a c e ) ABET = (Setup, KeyGen, Enc, Dec, Trace) ABET=(Setup,KeyGen,Enc,Dec,Trace)假设索引(或标识)空间为 { 1 , . . . , k } \{1,...,k\} { 1,...,k},其中 k k k表示系统中的用户总数。
- 1) S e t u p ( 1 λ ) → ( m s k , m p k ) Setup(1^{\lambda})\to (msk, mpk) Setup(1λ)→(msk,mpk)
- 2) K e y G e n ( m s k , δ ) → s s k i KeyGen(msk, \delta)\to ssk_i KeyGen(msk,δ)→sski: δ \delta δ表示用户的属性集, s s k i ssk_i sski表示解密密钥。
- 3) E n c ( m p k , m , Λ , j ) → C Enc(mpk, m, \Lambda, j)\to C Enc(mpk,m,Λ,j)→C: m m m表示消息, Λ \Lambda Λ表示访问结构, j ∈ { 1 , k + 1 } j\in \{1,k+1\} j∈{ 1,k+1}表示索引, C C C表示密文,其包含了 Λ \Lambda Λ。
- 4) D e c ( m p k , C , s s k i ) → m Dec(mpk, C, ssk_i)\to m Dec(mpk,C,sski)→m:且 1 = Λ ( δ ) Λ ( j ≤ i ) 1 =\Lambda(\delta) \Lambda (j\leq i) 1=Λ(δ)Λ(j≤i)成立。
- 5) T r a c e ( m p k , D , ϵ ) → K T Trace(mpk, \mathbb{D}, \epsilon)\to \mathbb{K}_T Trace(mpk,D,ϵ)→KT: D \mathbb{D} D表示一个与属性集 δ D \delta_\mathbb{D} δD相关联的密钥解密设备, ϵ > 0 \epsilon>0 ϵ>0表示与 λ \lambda λ相关的多项式参数, K T \mathbb{K}_T KT表示指定用户的解密密钥索引集合。
2.4 数字签名
一个数字签名方案 ∑ \sum ∑包括 ( S e t u p , K e y G e n , S i g n , V e r i f y ) (Setup, KeyGen, Sign, Verify) (Setup,KeyGen,Sign,Verify)四个算法构成。
- 1)简单的密钥生成。 S e t u p ( 1 λ ) → p p Setup(1^\lambda )\to pp Setup(1λ)→pp、 K e y G e n ( p p ) → ( s k , v k ) KeyGen(pp)\to (sk, vk) KeyGen(pp)→(sk,vk),其中 v k vk vk是通过确定性算法由 s k sk sk生成的, K e y G e n ′ ( p p , s k ) → v k KeyGen'(pp,sk)\to vk KeyGen′(pp,sk)→vk。
- 2)线性的密钥。 K e y G e n ′ ( p p , s k + Δ ( s k ) ) = M v k ( p p , K e y G e n ′ ( p p , s k ) , Δ ( s k ) ) KeyGen'(pp, sk+\Delta(sk)) = M_{vk}(pp, KeyGen'(pp,sk), \Delta(sk)) KeyGen′(pp,sk+Δ(sk))=Mvk(pp,KeyGen′(pp,sk),Δ(sk)),其中 M v k M_{vk} Mvk表示由 p p pp pp的确定性算法, v k vk vk表示验证密钥, Δ ( s k ) \Delta(sk) Δ(sk)表示一个位移值作为输入,输出一个位移验证密钥 v k ′ vk' vk′。 Δ \Delta Δ表示两个密钥之间的差值或位移。
- 3)线性的签名。两个相同的分布 { Sign ( p p , s k + Δ ( s k ) , m ) → σ ′ } \{\operatorname{Sign}(p p, s k+\Delta(s k), m)\to \sigma'\} { Sign(pp,sk+Δ(sk),m)→σ′} 和 { σ ′ ← M Σ ( p p , v k , m , σ , Δ ( s k ) ) } \left\{\sigma^{\prime} \leftarrow M_{\Sigma}(p p, v k, m, \sigma, \Delta(s k))\right\}