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

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

         身签名的一方会被惩罚,失去对应的比特币.此方案是基于区块链技术首次尝试实现 FCSP,此方案的缺点也是
         明显的,此方法依赖比特币一类的公有链数字货币,并且当对赌的数字货币的价值低于公平协议包含的价值时,
         此方案将会失效.
             文献[25]利用以太坊区块链的智能合约实现了公平合约交换协议的部分第三方功能,其实现的基本方法
         是:将待签协议以交易单的形式发布在以太坊的区块链网络内,等待对手方的签名确认或由己方签名废弃.此方
         法的缺陷是在公有链的线上环境暴露了合约内容,这在真实的商业场景是不能接受的;其实现的交换协议只适
         用于两方,不能推广到多方的合约场景;并且只适用于交换“利益”,不能适用交换“责任”.
             文献[26]在比特币网络上实现了公平交换混合器(fair-exchange mixer),通过公平交换混合器实现比特币与
         “收据”之间的公平交换.但是交换过程效率低下,通常需要几个小时完成,这不适用于在线合约交换的应用场景.
         文献[27,28]也使用公平交换混合器作为中介机构,保证发送双方匿名发送比特币.公平交换混合器是无法窃取
         中间资金的,与文献[26]相比,在效率上做了优化.同样,这 3 个方案都是建立在比特币网络之上的有“中心”机构
         公平交换,并且只能适用于交换“利益”,即以比特币(转账比特币是不包含责任的)为交换媒介.
             文献[29]使用比特币网络实现了数字货币与线上数据之间的公平交换,大概过程分为 3 个步骤.
             1)   数据证明:数据卖方 S 将售卖数据分成多份,S 产生非对称密钥对{PK,SK},用公钥 PK 分别将拆分为多
                 份的数据加密传递给买方 B,同时将 PK 传递给 B,B 随机将部分数据分片要求 S 提供解密证据,证明数
                 据的正确性,S 将 B 提供的部分数据用 SK 解密之后返回给 B,B 可以验证解密数据的正确性,并可证明
                 解密数据与原加密数据一致;
             2)   签名承诺:B 提交一个当前消息给 S,请求 S 用 SK 进行签名,S 将签名之后的数据返回给 B,B 用 PK(上
                 一步骤得到)可以验证 SK 的正确性;
             3)   私钥交换:B 在比特币网络创建一个私钥锁定交易(private key locked transaction)Tx 1 用于执行原子性
                 的私钥交换,在该交易中提交购买数据所需的比特币,Tx 1 被记入新区块并经过确认后,S 看到了 Tx 1 之
                 后,使用自己的私钥 SK 和 Tx 1 构建新的交易 Tx 2 ,将 Tx 1 的比特币转账进入 S 的新公钥地址,Tx 2 被广播
                 到网络之后,B 即可获得 SK 的信息,使用 SK 解密购买的数据.
             通过以上过程,实现了 B 和 S 之间的公平交换.此方法需要区块链内的智能合约脚本支持私钥锁定交易,适
         用于比特币及其他线上数据之间的公平交换,且 B 和 S 之间交易的数据需要能被分片验证正确性(例如利用视
         频片段或图像片段验证完整数据的正确性).目前,该方法基于比特币区块链实现,依赖比特币的脚本语言.此方
         法只适用于交换“利益”的场景,不适用于交换“责任”的场景,不能适用于公平交换合约(合约中既包含双方的
         “利益”,也规定了双方的“责任”)的场景.即:当“责任”数据交换成功之后,当责任事件发生后,某一方为逃避责任,
         可以通过藏匿自身收到的数据,声明没有收到过对手方发送的“责任”,此时,基于公平原则,对手方收到的数据也
         不能在声明权利(因为比特币网络是完全匿名的,无法证明对手方发送了自身签名的数据),从而造成了交换“责
         任”的失效.

         3    基于区块链技术的线上公平合约交换

             公平合约线上交换过程,在无中心的情景下,其关键问题是无法确定交换截止时,最后一方是否收到对方的
         数字签名,这造成了“事后抵赖”的逃避“合约责任”的问题.引入区块链的去中心化群体共识见证协议,避免了合
         约交换方的事后抵赖行为.线上合约的交换过程可划分为多个状态,从初始状态转换为多方签署成功(或失败)
         的状态由各方的数字签名触发,合同签署状态迁移映射为区块链的链式事务状态迁移的数据结构.将各个阶段
         的、有各方签名确认的状态转换经过区块链内的群体共识验证,固化为链上的历史事务交易链,同时解决了对
         TTP 的依赖及事后抵赖行为,依据重新设计的链上协议流程,解决合约交换过程及交换结果的公平性(见下文).
             目前,学术界和工业界还未出现基于区块链技术体系的公平合约(合约中包括利益、也包括责任划分)交换
         协议实现.区块链核心协议中实现了在不信任的网络节点之间建立“去中心的”信任,但是这种信任是百分之百
         单向的、不公平的.以比特币支付为例,A 向 B 支付了一笔比特币后,B 可以信任 A 的支付行为,但是 A 仍然无法
   199   200   201   202   203   204   205   206   207   208   209