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 提出的区块链结构,使用陷门单向函数提出了可修改的区块链.在超过阈值数的节点
         同意时,可对失效或错误的上链交易数据进行合法修改,具体阈值设定会在下文给出分析.修改前后,区块链接
         结构不变,也不影响区块其他数据的使用和验证.而且由于阈值的设定,所有修改操作将代表系统意志,不合法
         的恶意修改无法完成.本节首先给出可修改的区块链结构,然后对修改原理及安全性进行分析.
   241   242   243   244   245   246   247   248   249   250   251