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

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


         3.3   区块数据的修改
             本节对上链交易数据的修改操作进行模拟.如图 10 所示,区块 72 上有一条交易:
                    “(payment,C012AE53,(950D6388,91,6073925CD72FCF79208A…),(D8353289,330))”.
             假设后续有节点发现,曾经由于恶意节点发起双花攻击,区块 71~73 等所在的当前主链被另一条侧链颠覆,
         使系统在认可该笔交易后,又认可与该交易输入账户相同、输出账户不同的另一笔等额交易,使输入账户实现
         双花.为弥补该攻击造成的后果,可认为原本流入公钥为 D8353289 的受益方的金额又再次流向了另一个账户,
         也即该笔交易中受益方的实际收益并非 330,而是 0,该条上链交易数据需要修改.节点于 2019 年 3 月 13 日向全
         网广播一条交易修改请求:
           ReviseTx={72,double spending,(payment,C012AE53,(950D6388,91,6073925CD72FCF79208A…),(D8353289,
                    330)),(payment,C012AE53,(950D6388,91,6073925CD72FCF79208A…),(D8353289,0))}.
             对应的矿工 10,9,8,5,7,4,3,2 收到该请求后,将对其合法性进行认证.发现合法,便根据 ReviseTx 和原始交易
         子块τ 72 生成新交易子块τ′ .
                             72
                                                   (τ
             进一步,根据 Hash   (τ  72 ) ⊕  G 72 (x 1 72 ,x 2 72 ,...,x 8 72 ) =  Hash ′ 72 ) ⊕  G 72 (x′  72 1  ,x′  72 2  ,...,x′  72 8  ) 求得 G 72 (x′  72 1  ,x′  72 2  ,...,x′  72 8  ) .然后,8 名
         矿工使用各自私钥,做 ECC-200 解密计算:
                                          x′  j  D  ECC (g′ =  )( j =  1,2,...,8) .
                                           72  P 72 j  P 72 j
             从而得到新的专属随机数: x′        1  ,x′  2 ,...,x′  8  .
                                   72  72  72
             其中,
                         τ′ 1 =DC93EB15EBE13BBBDA05FFD86464ED11A126FA3286615B6052.
                          P 72
             矿工 10 利用私钥:973DBCD86EDE25F932599C1B79BC0953,对其进行 ECC-200 解密,求得:
                          1
                         x′ =5E0A3313E4FB185A377A6A00AE95C4EB4DD27CD498D9DE7F4A.
                         72
             编程运行如图 11 所示.













                   (a) Public parameters in ECC-200                                       (b)  x′
                                                                          1
                                                                          72
                                         Fig.11   Parameters calculation
                                              图 11   参数获取

             x′  72 2 ,...,x′  72 8  求解同理,矿工随后在全网更新随机数.由陷门单向函数性质可知,同时拥有 8 名矿工的私钥才可
         完成.最后,8 名矿工将区块 72 的交易子块由τ 72 变更为τ′ ,并生成相应的修改记录,作为一条溯源交易信息放入
                                                     72
         交易池,以供后续矿工打包上链,该交易消息为
              ctx=(revise,531694D0,20190313,72,double spending,(15347EFD0B…,204D562128…,19A87E1029…,
                  3959191C54…,2F75D24A42…,411BE1FE2D…,3651CB06D6…,2515C96F5…),(5E0A3313E4…,
                  CE441CDD19…,C9E73B440E…,1F8B5086DF…,971E915B1A…,B3C28D3E58…,F2648076ED…,
                  D569C22260…),(payment,C012AE53,(950D6388,91,6073925CD72FCF79208A…),(D8353289,330)),
                  (payment,C012AE53,(950D6388,91,6073925CD72FCF79208A…),(D8353289,0))).
   248   249   250   251   252   253   254   255   256   257   258