Page 247 - 《软件学报》2020年第12期
P. 247

任艳丽  等:可修改的区块链方案                                                                 3913


         2.1   可修改的区块链结构
             基于 SpaceMint 的区块结构,我们提出可修改的区块链方案.如图 4 所示,其本质是重构签名子块σ i ,在记账
         者对交易的签名ζ τ 中加入机动因子 G i ,将σ i 变更为σ i,G ,而证明子块ϕ i 与交易子块τ i 保持不变.
             图 5 对 SpaceMint 区块与可修改区块结构进行对比.原始签名子块σ i ={i,ζ τ ,ζ σ },其内容分别为当前区块序号
         i、记账者对当前区块的交易子块τ i 的签名ζ τ 和记账者对前一区块的签名子块σ i−1 的签名ζ σ .

                            Block i          Block i+1        Block i+2
                   …        Hash ϕ i         Hash ϕ i+1       Hash ϕ i+2   …
                                                                         The proof chain
                   …      REVI-Sign σ i,G  REVI-Sign σ i+1,G    REVI-Sign σ i+2,G  …
                                                                         The signature chain


                           TRANS τ i         TRANS τ i+1     TRANS τ i+2

                                       Fig.4   Revisable blockchain structure
                                          图 4   可修改的区块链结构

                                 Block i                  Block i+1
                                 Hash ϕ i                 Hash ϕ i
                                              i                        i

                                 Sign σ i     ζ τ       REVI-Sign σ i,G   ζ Hash(τ)⊕G

                                              ζ σ                      ζ σ
                                TRANS τ i                         TRANS τ i

                       Fig.5    Structure comparison of SpaceMint blockchain and revisable blockchain
                                   图 5   SpaceMint 区块与可修改区块结构对比

             在可修改区块结构中,签名子块的内容变更为σ i,G ={i,ζ Hash(τ)⊕G ,ζ σ },其内容分别为:当前区块序号 i、记账者
         对交易子块τ i 的哈希值与机动因子 G i 异或结果的签名ζ Hash(τ)⊕G 和记账者对前一区块签名子块σ i−1,G 的签名ζ σ .
             我们称 G i 为签名子块σ i,G 对应的机动因子,由陷门单向函数构成,具体如下:
                                        1
                                    :
                                  GG  ( ,x x 2 ,...,x Q ) =  g  1 ( ) ||x 1  g  2 ( ) ||...||x 2  g  (x Q ) .
                                   i  i  i  i  i   i P  i  i P  i  i P Q  i
         其中,Q=N×阈值比例,N 为系统总节点数,阈值比例设置将在第 2.2 节进行说明.另外, g                       ( j = 1,2,..., )Q 表示基于
                                                                              i P  j
                                                                                            j
               j
         矿工 P 的陷门单向映射, P       j ( j = 1,2,..., )Q 为区块 i 挖矿排名前 Q 位的各个矿工, x j ( j = 1,2,..., )Q 为矿工 P 的专
              i               i                                           i                 i
         属随机数,初始化时由系统分配,作为公开参数被各节点记录在本地空间.超过阈值(N×阈值比例)节点同意时,随
         机数才能被修改.
             SpaceMint 区块链系统使用签名子块承诺交易合法性,交易信息作为签名消息,与签名子块一一对应,交易
         信息改变,签名子块随之改变,区块的前后链接便被打破,因此交易数据无法修改.而本文提出的可修改区块链,
         在记账者对交易信息τ的签名中引入机动因子 G,签名消息变为 Hash(τ)⊕G,即使交易改变,亦可重构机动因子得
         到 G′,保证签名消息与签名结果不变,实现除交易子块外,其余区块数据,即签名子块、证明子块和前后区块的所
         有信息均不变.在改变交易数据时,保证区块链结构完好,实现区块交易数据可修改.
             在图 6 中,τ和τ′、MT_Root τ 和 MT _Root′ 、ζ τ 和 ζ ′ 、σ和σ′、G 和 G′、ζ Hash(τ)⊕G 和 ζ ′ Hash () Gτ ⊕  以及σ i,G 和 σ′ 依
                                                  τ
                                           τ
                                                                                             , iG
         次代表区块 i 交易修改前后的交易信息、交易信息的 Merkle Tree 根、记账者对交易信息的签名、传统签名子
         块信息、可修改区块链的机动因子、记账者关于交易信息哈希值与机动因子异或结果的签名以及可修改区块
   242   243   244   245   246   247   248   249   250   251   252