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

3874                                Journal of Software  软件学报 Vol.31, No.12, December 2020





























                      Fig.4    Transaction legality verification based on asymmetric encryption algorithm
                                   图 4   基于非对称密钥的交易合法性验证过程
         3.2.2    双方公平合约的创建及确认
             1)   首先由 A 发起合约 m 的签署确认的初始化过程:A 将包含 m 的初始化信息形成交易单数据结构 T a ,
                 其核心交易内容为事先商定的合约内容 hash 摘要 H(m),并且附带 A 的数字签名;A 将交易单信息 T a
                 广播到区块链网络,表示 A 已经确认签名确认了 m,且等待 B 的签名确认(或等待 A 链接终止交易单);
             2)   区块链网络的共识节点接收到该交易单信息后,共识判断该交易单为 A 发起的合约签署初始化过程,
                 因此不需对交易单的来源项进行验证,经过区块链网络的共识过程和共识验证,将本交易单写入区块
                 链的历史区块中;
             3)   B 客户端通过区块链历史数据,发现有指向自己公钥地址的待确认合约签署请求,B 通过查询获得 A
                 提交的交易单数据 T a ,通过该交易单构造新的交易单数据结构 T b ,其链接的前置交易单为 T a ,T b ,并且
                 在 T b 中附带 B 的数字签名;B 将 T b 交易单广播到区块链网络,表示 A 对合约 m 的签名已经被 B 确认,
                 并且 B 也对合约 m 进行了签名;
             4)   区块链网络共识节点接收到该交易单,共识节点验证该交易单的合法性(验证 B 的公钥地址与前置交
                 易单的输出公钥地址是否匹配、验证 B 的数字签名与公钥地址是否匹配).验证通过后,经过区块链网
                 络的共识过程和验证过程,将该交易单写入区块链网络的历史区块中;
             5)   A 客户端通过区块链历史数据,发现有指向自己公钥地址的待确认合约签署请求,A 查询获得 B 提交
                 的交易单数据,通过该交易单构造新的 A 最终确认交易单数据结构 T c ,其链接的前置交易单为 T b ,并附
                 带 A 的数字签名;A 将交易单信息 T c 广播到区块链网络;
             6)   区块链网络的共识节点接收到 T c 交易单信息后,共识节点验证该交易单的合法性(验证 A 的公钥地址
                 与前置交易单的输出公钥地址是否匹配、验证 A 的数字签名与公钥地址是否匹配).验证通过后,经过
                 区块链网络的共识过程和验证过程,将该交易单写入区块链网络的历史区块中.
             经过以上的过程,确认了两项内容:(1) A 和 B 双方对合约内容 m 的数字签名;(2) A 和 B 对合约的顺序数字
         签名确认;(3)  A 和 B 都已经“获知”对方完成了合约签名.这个过程保证了合约内容的可信性、不可抵赖性和合
         约签署过程的可信性、不可抵赖性(不可藏匿);当 3 次顺序签名的交易单被区块链网络记入区块链数据结构以
   203   204   205   206   207   208   209   210   211   212   213