Page 210 - 《软件学报》2020年第12期
P. 210
3876 Journal of Software 软件学报 Vol.31, No.12, December 2020
方任何一方都可发起后续的合约管理过程(更新、追加、删除过程),在此不妨设 A 为发起方,B 为确认方.具体的
追加(或更新)流程在区块链网络内形成的合约更新过程交易单链接示意图如图 6 所示(省略了交换过程被正常
终止的展示).
交易单T a 交易单T b 交易单T c
Out
初始化存证数据 Out In A方的数字签名 Out In A方的数字签名 B方的地址
+ B方的地址 + A方的地址 + Out
A方的数字签名 B方的数字签名 B方的数字签名 A方的地址
交易单T d 交易单T e 交易单T f
Out
In 存证数据更新值 Out B方的地址 In A方的数字签名 Out A方的地址 In A方的数字签名 A方的地址
+ + + Out
A方的数字签名 B方的数字签名 B方的数字签名 B方的地址
Fig.6 When the contents of the contract are added, signature transfer process between A and B
图 6 合约内容追加时的 A,B 双方签名确认过程
经过以上的过程,实现了 A 和 B 双方对合约 m 的追加内容 m′的数字签名和追加过程的数字签名,保证了合
约追加内容 m′的可信性、不可抵赖性和追加过程的可信性、不可抵赖性;同时,通过区块链网络的的共识记账
过程和验证过程,保证了数据的完整性、不可篡改性和可靠性.
上述合约的更新交换过程,在合约更新交换未完成时,同样允许任何一方终止合约更新的交换过程,其终止
方式和终止交易单与公平合约的创建过程完全一致,在此不再赘述.
3.3 多方公平交换协议的推广
以上的讨论中,只涉及 A 和 B 两方进行合约的公平交换过程,可以将以上的实现过程推广到 N 方之间,即:
将以上的 3 次交易单链接过程推广为 N+1 次交易单链接过程,每个链接的交易单是 N 方之一进行数字签名确
认过程,新链接的交易单的输出地址指向 N 方中剩下所有未签名确认的参与方,剩下所有未签名确认的每个参
与方,通过竞争在交易单链条末尾链接自己的签名确认交易单,区块链网络的共识机制会保证对这些竞争的交
易单其中之一(同时,在某个交易单链条末尾竞争签名的交易单在同一时间是相互矛盾的,只能有一个交易单被
成功记入当前新生成的区块中)进行记账,未被成功记账的参与者会选择在新的交易单链条末尾竞争记账,直到
N 方中的所有参与者都将自己签名确认的交易单链接到本次合约的交易单链条中,合约签署的发起方最后会
链接一个指向 N 方所有地址的交易单在此交易链条的末尾作为截止,以便 N 方中任何一方都可发起合约内容
的追加、更新和删除请求.区块链网络的共识协议避免了签名交易单链条的分叉,最终保证了只有唯一的一个
签名顺序会被记入全网一致的区块链数据结构中,如图 7 所示(省略了交换过程被正常终止的展示).
A
A B C D A B
C
D
包含合约内容的转发交易单
区块 区块 区块 区块 区块 区块 区块
N-3 N-2 N-1 N M M+1 M+2
Fig.7 Unique signature order between N parties is recorded in the blockchain data structure
图 7 N 方之间的唯一签名顺序记入区块链数据结构