Page 207 - 《软件学报》2020年第12期
P. 207
于雷 等:FCSP-Blockchain:基于区块链技术的公平合约交换协议的实现 3873
Fig.3 Signature exchange process of the contract in the consensus protocol witness
图 3 共识协议见证链上合约的签名交换过程
链上交易单链接的签名和验证基于非对称密钥机制,其签名过程为:在交易单的前置交易信息 in→
scriptSig→sig 属性中,记录本方私钥对前置交易单 hash 值的签名;在 in→scriptSig→pubKey 属性中,记录本方数
字证书的公钥原值;在交易单的输出属性 out→address 中,记录本交易单的输出指向地址的 hash 值.在交易单链
条的合法性验证过程为:验证本交易单的 in→scriptSig→pubKey 的 hash 值与前置交易单的 out→address 中记录
的输出指向地址的 hash 值相等;验证使用本交易单的 in→scriptSig→pubKey 解密本交易单的 in→scriptSig→sig
值,其值与 in→prev_out→hash 中记录的前置交易单 hash 值相等.交易单链接的合法性验证由参与共识协议的任
意节点都可完成,交易单链接的验证在栈数据结构中完成,具体流程如图 4 所示.
经过以上的验证过程,在全网共识协议的协同下,可以确认以下信息.
1. A 确实向 B 发起了一次合约交换请求,以 A 的私钥数字签名作为防抵赖依据;
2. B 确实收到了该合约交换请求,以 B 的数字签名作为 B 对合约的签署确认和防抵赖依据;
3. 合约交换签名被全网的共识节点验证和确认,被记入全局一致的区块链数据结构,以防止单方藏匿和
篡改.
具体的交易单数据结构和实现流程如下节所述.