Page 205 - 《软件学报》2020年第12期
P. 205
于雷 等:FCSP-Blockchain:基于区块链技术的公平合约交换协议的实现 3871
信任 B,这是因为区块链共识协议只是确认了单向支付的“利益”行为,并没有确认接受支付的一方该有的责任.
基于此,本文将区块链的核心协议进行了改造,将链上的交易内容转换为双方(或多方)之间的合约内容.合约中
明确了双方(或多方)的“利益与责任”,当合约的链上签署交换过程结束后,即可通过链内的共识验证确认了一
方接收了另一方的利益,同时也接收了责任,即建立 A 和 B 之间的双向信任关系.即区块链加公平合约,不仅实现
了“利益与责任”的线上公平交换,同时实现了区块链上的双向(或多向)信任关系(如图 1 所示).
A已签署 签署
A发起
B已拒绝 成功/失败
A签名 B在A签名后 B发回给A
拒绝签名
A已获知
A已签署 A,B已签署 B签署
B在A签名后 B发回给A
签名
数据结构映射
交易单1 交易单2 交易单3
Out In A方的数字签名 Out In A方的数字签名
初始化合约数据 B方的地址 + A方的地址 +
+ B方的数字签名 B方的数字签名
A方的数字签名
区块头 区块头 区块头 区块头 区块头 区块头
时间戳 时间戳 时间戳 时间戳 时间戳 时间戳
...
交易1 交易1 交易1 交易1 交易1 交易1
交易2 交易2 交易2 交易2 交易2 交易2
... ... ... ... ... ...
第1块 第2块 第 3块 第 N-2块 第 N-1块 第 N块
Fig.1 State transition of the online contract signing process is mapped to
the growth of the chain state of the blockchain
图 1 线上合约签署过程的状态迁移映射为区块链的链条状态的增长
3.1 合约目标
首先,将交易类型的区块链网络交易的内容从“数字”货币转变为待双方(或多方,本文以下以两方 A 和 B 的
形式讨论,最后给出多方的推广方法)签署合约内容 m 的哈希摘要 H(m),在双方 A 和 B 的交易过程中,完成交易
双方对 H(m)的顺序 3 轮签名.假设 A 和 B 的签名分别为 Ra(H(m))和 Rb(H(m)),由于签名的交易数据广播到网络
内,经过全网共识记账之后,链入全局一致的区块链数据结构中,这保证了签名在双方传递的过程及各自的签名
过程是无法抵赖、无法藏匿的.为了达到 FCSP 的公平性,需要确保双方都能获得对方的签名合约,只需在协议
中规定:顺序的 3 次签名交易 Ra(H(m)),Rb(Ra(H(m)))和 Ra(Rb(Ra(H(m))))都被记账,才使双方最终确认合约生效
(Ra 和 Rb 的签名没有严格的起始顺序要求,只需相互间隔即可),除此之外的情况,都认为合约是无效的.在顺序
签名过程未完成时,任何一方都可在当前签名链条的末尾链接一个“合约废止”签名,使得当前公平合约交换过
程正常终止.此种方法源于无 TTP 时顺序数字签名的“递归质疑公平性” [11] .在区块链的技术体系下,任何一方的
签名都会被广播到全网,通过全网的共识、记账、验证过程,将签名顺序记入共享区块链账本,这保证了任何一
方都无法通过藏匿最后一次获得的签名数据而逃避合约规定的责任,因为签名顺序是公开记录在共享区块链