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 次顺序签名的交易单被区块链网络记入区块链数据结构以