Page 246 - 《软件学报》2020年第12期
P. 246
3912 Journal of Software 软件学报 Vol.31, No.12, December 2020
共识机制要求矿工存储有向无环图顶点信息,若矿工空间足够,便可全部存储;反之,矿工只能存储部分顶
点标签值,未存储部分依靠后续计算得到,以时间换取空间.每次竞争时,系统随机要求矿工返回相关顶点标签
值,显然,存储空间越大,矿工结果返回效率越高,赢取记账权概率越高.挖矿的具体实现过程见文献[10].这便形
成了基于空间证明的共识机制.
6
4 5
1 2 3
Fig.2 Directed acyclic structure diagram
图 2 有向无环结构图
同时,POSpace 对挖矿算力要求下降,矿工在同一时间完成多个挖矿挑战变得容易.因此,如第 1.2 节所述,在
传统区块结构下,实行 POSpace 机制将使得 Grinding Blocks 攻击突出.为了对抗该攻击,SpaceMint 构建了全新
的区块链结构.
如图 3 所示,新型区块 i 包含 3 个部分:证明子块ϕ i 、签名子块σ i 和交易子块τ i .其中,证明子块ϕ i 和交易子块
τ i 相当于传统区块结构中的区块头和区块体,而新增的签名子块σ i 则用于打破区块头和区块体之间的链接,使
证明子块与交易子块不相连.因此,挖矿挑战与交易本身无关,矿工无法通过拆分交易以产生不同的挖矿挑战,
从而增加挖矿成功概率,防止了 Grinding Blocks 攻击对系统的伤害.3 个子块的具体内容如下.
(1) Hash 子块ϕ i =Hash(i,ζ ϕ ,(p ki ,γ i ,c i ,a i )),具体包含:当前区块序号 i、记账者对前一区块的 Hash 子块ϕ i−1 的
签名ζ ϕ 、记账者在竞争记账权时给出的承诺证明以及空间证明(p ki ,γ i ,c i ,a i );
(2) 签名子块σ i ={i,ζ τ ,ζ σ },具体包含:当前区块序号 i、记账者对当前区块的交易子块τ i 的签名ζ τ 、记账者
对前一区块的签名子块σ i−1 的签名ζ σ ;
(3) 交易子块τ i ={i,ctx},具体包含当前区块序号 i、交易信息列表 ctx.
上述区块结构在保证数据安全的前提下,打破了证明子块ϕ i 与交易子块τ i 的直接链接关系,能更好地对抗
“Grinding Blocks”攻击,也为可修改区块链提供了可能性.
Block i Block i+1 Block i+2
… Hash ϕ i Hash ϕ i+1 Hash ϕ i+2 …
The proof chain
… Sign σ i Sign σ i+1 Sign σ i+2 …
The signature chain
TRANS τ i TRANS τ i+1 TRANS τ i+2
Fig.3 Blockchain structure of SpaceMint
图 3 SpaceMint 区块链结构
2 可修改的区块链
我们基于 SpaceMint 提出的区块链结构,使用陷门单向函数提出了可修改的区块链.在超过阈值数的节点
同意时,可对失效或错误的上链交易数据进行合法修改,具体阈值设定会在下文给出分析.修改前后,区块链接
结构不变,也不影响区块其他数据的使用和验证.而且由于阈值的设定,所有修改操作将代表系统意志,不合法
的恶意修改无法完成.本节首先给出可修改的区块链结构,然后对修改原理及安全性进行分析.