迟占博 张 勖 李 婧 邵苏杰 王东滨
1(北京邮电大学网络教育学院 北京 100876) 2(北京邮电大学网络空间安全学院 北京 100876) 3(可信分布式计算与服务教育部重点实验室(北京邮电大学) 北京 100876) 4(北京同邦卓益科技有限公司 北京 100176) 5(北京邮电大学计算机学院(国家示范性软件学院) 北京 100876)
第1代区块链系统是以2008年中本聪提出的“比特币白皮书”[1]为代表,在该系统中仅仅探讨共识问题和交易信息的不可篡改性,没有出现智能合约的概念.以太坊的出现标志着第2代区块链系统的诞生,它由Buterin[2]在2014年以白皮书形式发布,现已成为主流区块链应用平台.以太坊中有账户的概念,相较于比特币系统,更符合传统交易系统设计的思想,并且以太坊系统上可以实现智能合约[3]的功能.
区块链交易系统需求第1个特性就是交易完备性.交易完备性就是不论系统是如何执行的,最后的结果必须保证交易正确且一致,不会因为交易结果的次序不同而出现不同的结果.交易完备性还包括记录不能被篡改、参与者有合理的权限、不能读取没有权限的数据.
交易完备性[4]和监管性已成为下一代区块链系统的重要指标.没有交易完备性的链只能作存证,而不能交易.在金融交易领域使用这样的链就有引发系统性风险的可能,危害巨大.
在可信交易区块链系统中,为支持交易完备性,需解决的关键问题包括:1)一个完整的应用层商业交易,根据业务的复杂度和流程,需要多次区块链共识层事务处理支撑,如何保证应用层交易完备性,对智能合约设计方法提出了挑战;2)交易回滚机制设计,尤其是支付类应用,必须保证参与方的资产安全;3)共识和账本一致性同步机制.
1997年,Ketchpel等人[5]提出了一种完全分布式的电子商务交易完备性算法.该算法在2个示例中运行,分别是交易可行和交易不可行,并被证明是健全和完备的.2020年,Singh等人[6]针对区块链协议复杂和扩展难等问题,提出用形式化方法解决智能合约中的此类问题,并进行综述.2021年,Guo等人[7]提出基于联盟链的数字资产版权确认和交易可信机制.针对利用区块链技术解决传统中心化数字资产交易平台存在的交易效率低、数字资产版权和交易隐私难以保护等问题,版权确认过程中的用户隐私保护问题,以及资产确认和交易过程中的安全和可信问题,结合数字水印技术和同态加密技术解决了在链上嵌入数字水印过程的用户数据隐私保护问题,结合智能合约技术解决了在确认链和交易过程中的数字资产安全性和可信性问题.基于上述方法可实现现代服务业中数字资产交易中的版权确认和隐私保护,涉及的数字资产包括数字知识版权、数字权益、数字收入权和各种数字货币等.2018年,Mavridou等人[8]提出了FSolidM框架,该框架允许开发人员将智能合约定义为有限状态机(finite state machine, FSM).FSolidM提供了1个易于使用的图形编辑器(用于指定FSM)、1个用于创建以太坊智能合约的代码生成器,以及1组开发人员可以添加到FSM中以增强安全性和功能性的插件.2019年,Suvorov等人[9]通过使用FSM建模展示如何将FSM综合应用于自动智能合约生成,对应的智能合约包含1组公式线性时态逻辑,结合相应规范,通过测试场景为该智能合约合成一个FSM模型.该模型用于生成可执行的代码,这些代码直接运行在区块链系统中.2021年陈晋川等人[10]将智能合约问题转换成合约状态迁移图上的博弈策略选择问题,提出了基于纳什均衡理论的合约缺陷自动检测方法.为了提高检测效率,提出了针对合约状态变迁图和博弈策略选择的一系列化简方法,实现了一个智能合约建模、分析和部署工具.2021年郭婧等人[11]提出了一种区块链中交易表示模型,以提高交易的处理速度以及可扩展性.文中首先构建形式化的区块链状态机,并从中提取交易事件.其次,从时间性上,对交易事件的偏序性进行研究,划定了交易事件之间的先后关系;在交互性上,对交易事件进行细致分类,利用偏序性将交易事件之间连接起来,连接过程中将交易事件的交互信息考虑在内.最后,将交易事件之间的关系分配到账户上.该模型可以维护一个全局或局部有序的非线性账本,同时提高了交易并行处理、交易确立的速度.
可信交易完备性的核心是交易性.交易性是指同样输入得出同样的结果,一致性+交易排序才叫做交易性.交易的排序是不论系统如何运行,永远得到一样的结果.例如,在执行上可以作任何优化(例如并行处理、分片等),但最后的结果是一致的,而最初的交易排序决定金融交易最后的结果.
区块链技术中交易对应于事务(transaction),是指区块链上的一次原子性账本数据状态变更及其过程和结果记录.本文把此类基础交易定义为“原子交易”.但是,这个基础定义还不能满足支撑现代服务业中各类应用的可信交易区块链平台需求.主要体现在存证类(含确权)和支付类应用,2类交易不完备或监管不充分所引发的系统性金融风险等级是完全不同的.
3) 4套11 kV主DP中压配电板,最高工作电压12 kV,额定电压11 kV、汇流排的额定电流1 095 A,额定短路分断电流22 kA。
这些都需要在区块链设计中进行多维度的优化.在可信维度方面,本文利用区块链的可追溯、防篡改特点,确保交易过程中的安全性;利用身份验证控制恶意节点的攻击,保护用户的可信.在交易完备性维度方面,设计了应用层交易与区块链底层交易的对应模式,加入回滚机制保证交易方的数字资产安全,并设计了共识和账本一致性同步机制.
2.2.1 对应模式设计
应用层交易通过智能合约进行定义,在智能合约中嵌入类似FSM的检验条款,利用流程建模工具生成FSM的数据文件支撑每次交易验证.
智能合约是执行合同条款的计算机事务协议.用户向区块链系统发起交易请求信息会导致状态的改变,这种状态的改变包括账户余额的改变和合约各方状态的改变.因此可以用一个合约自动状态机表示智能合约,合约自动状态机M*可以用一个五元组表示:
M*=(Q,Σ,δ*,s*,F*),
部署在区块链上的智能合约和针对智能合约发起的各个交易都是可以追踪并且不可篡改的,因此智能合约部署到区块链之后将无法对智能合约的交易信息进行变更,如果发现交易存在错误或者合约出现漏洞,只能进行交易的回滚来保证交易的正确进行,确保交易的完备性.
智能合约通常包括合约签约双方和合约条款,作为两方之间的合约,这种智能合约是共识层交易的合约,合约双方为合约的甲方和乙方.但是从现代服务业的业务出发,具体应用所要定义的智能合约如果都分解为两方交易,显然不能满足实际需求.因此,本文将应用层合约扩展至多方,对应模式问题就是建立应用层交易和共识层原子交易的对应关系,具体方法是:1)在智能合约中设计与业务对应的FSM;2)业务处理流程形式化描述.
应用层交易核心操作包括发起、接收、停止和完成交易.如图1所示,应用层发起一个交易后,“验证交易是否异常”分为3种情况:1)发起方交易条件满足时,合约涉及的应用层各方设置时间戳并触发共识原子交易条件,按相应FSM执行合约;如果交易条件不满足或者超时,则确认交易异常,状态发生改变的相关方进行状态回滚,其余合约方不变,并且交易结束.2)执行FSM的合约各方检验合约条件满足并且没有超时,合约各方确定原子交易,并发起原子交易和共识,更新FSM状态和账本;如果原子交易条件不满足或者交易超时,则原子交易失败,相应合约方进行状态回滚并且交易结束.3)执行完成应用层智能合约预设的业务流程,如果所有条件都满足并且没有超时,合约各方确认应用层交易完成并退出;如果交易失败,合约各方进行状态回滚并且结束本次应用层交易.
图1 对应模式交易流程设计
2.2.2 回滚机制
传统的区块链交易平台由共识层完成交易,对出现的交易错误回滚是不允许的.本文提出的交易完备性模式采用交易和共识分离思想,这里的交易不是共识层的事务处理,而是应用层的多方商业交易,交易的确认和失败由应用层判断和决策.如果没完成或出现问题,可以设计有效的回滚机制解决该问题.
交易进行回滚的条件包括:
1)系统规定交易的最大时间为tmax,整个交易的时间为t,当t>tmax,交易流程超时,交易进行回滚;
2)共识层的各个交易方未达成共识时,交易进行回滚;
3)合约条款不满足时,交易发生错误,交易进行回滚.
具体的回滚机制可以根据应用需求,在智能合约中完成.其核心是回滚应用层的交易记录,而不是区块链共识层的中间共识结果.
2.2.3 共识和账本一致性同步机制
开源项目BFT-smart共识机制为基于BFT的状态机复制算法提供了一套改进的解决方案,实现了类似于PBFT的共识协议,且在无故障执行时具有更高的性能,在拜占庭副本进行任意错误行为时能保证整体共识的正确性.如图2所示,BFT-smart共识经过8个步骤:1)广播.多个客户端向所有共识节点发起广播.2)提议.通过Leader节点向其他节点发出提议(待排序消息).3)回执.收到提议后向其他节点发送写消息.4)预算.收到2f+1个写消息后进行写账本预处理.5)接收.至少2f+1个节点预处理结果一致,向其他节点广播“接收提议”的消息.6)裁决.收到至少2f+1个节点的“接收提议”消息,则正式裁定此提议生效.7)提交.将此提议写账本.8)响应.将提议执行结果反馈给其对应的共识客户端.
图2 改进的BFT-smart共识机制
为实现共识和账本一致性同步机制,本文在BFT-smart共识过程的第1阶段提议广播后,通过增加账本一致性校验方法设计,增强交易处理可信实现的保障.另外,“账本一致性”也能保证成员更新的结果和账本同步,将共识参与节点的网络拓扑信息同步保存至区块链上.
账本中数据同步是在共识机制中实现的,主要分为共识节点启动与运行过程中2种场景出现区块落后情况下的数据同步过程,分别如图3、图4所示.
图3 共识节点启动时的状态机复制过程
图4 共识节点运行中的状态机复制过程
资产证券化ABS是一种新型融资工具,将企业缺乏流动性但预期能产生稳定现金流的资产进行真实出售、通过设立资产池隔离风险,并通过机构性重组方式,将其变为可在金融市场上流通的证券,实现企业的融资需求.我国ABS业务以2005年国务院批准人民银行牵头开展信贷ABS试点为起点,2015年开始市场参与,主体不断丰富,产品不断多元化,基础资产类型进一步扩展,产品发行总量迅速增加,市场整体进入高速发展阶段.国内主要有信贷ABS、企业ABS、资产支持票据、项目资产支持计划等产品模式.
在ABS业务中,用户涉及资产方、托管行、计划管理人、律师事务所、评级机构、会计师事务所和政府指定监管机构.ABS的业务流程通常包括准备阶段、执行阶段、发行阶段、存续期管理阶段.
ABS业务是一个复杂、链路很长的业务,参与方可多达10余个,发起人和借款人可以看作区块链应用层的交易初始者和目标者,而其他参与方可以看作交易中间人.在保证中间参与方的交易完备性的情况下,将共识层的交易与应用层的交易相结合,设计并且实现ABS业务场景下具备交易完备性的智能合约,如图5所示.
图5 ABS业务场景下的交易完备性
当发起人发起一笔交易时,把交易请求发送到共识层,由多阶段、不同组合的共识层节点按FSM触发完成相应共识,并且打包交易信息发送给应用层的借款人,借款人确定无误后给予响应.
如图6所示,满足监管要求的ABS业务交易流程如下:
基于周期性和匹配条件,利用初始扰动ΔXi和冲击瞬间的转移条件,将任意两个相邻碰撞之间n-1运动的扰动解写为:
图6 ABS业务交易流程
1)准备阶段.原始权益人发起一笔交易,区块链系统共识层的多家资产评估机构进行信用评估,多家资产评估机构和多家监管机构达成共识后,将共识信息保存在中介服务机构,中介服务机构对原始权益人进行增信措施.主要从共识、节点数量、节点类型、交易流程、交易记录设计支持增信措施的智能合约.
2)执行阶段.作为共识层参与方的管理人节点负责设立和管理SPV节点.监管机构和中介服务机构对新设立的SPV节点进行投票以判断合法性.只要发现管理人设立新的SPV,监管机构和中介服务机构就会验证注册节点的合法性,从而有效减少恶意创建攻击.托管行在SPV上进行登记、交易,并且将交易信息登记到审计机构中.审计机构可以通过智能合约查看交易信息,对于部分符合权限的信息,审计机构可以更改其他节点对这些信息的访问权限,实现审计机构对交易信息的访问控制权.
3)发行阶段.共识层的SPV进行证券发售,应用层的投资者进行购买,监管机构对交易行为进行实时监管.
在ABS业务中,根据准备阶段、执行阶段、发行阶段的节点数量和交易流程等信息设计智能合约,保证了交易有序进行,满足可信交易完备性中的交易性.在共识层的审计机构中可以查询到各个节点的交易信息,监管机构全程监管每笔交易,共识层存在多节点保证其交易性和监管性.每个阶段的交易存在节点进行交易信息的记录,在交易发生错误时应用层完成回滚.“交易性+回滚机制+实时监管”的模式设计是具备完备性的,在执行不同阶段的智能合约时,每次交易的变化可以定义成有限状态机,并且验证交易的安全性.
本文提出的基于区块链的可信交易完备性模式设计包括应用层交易与区块链原子交易对应模式、回滚机制、共识账本一致性同步机制的设计.依托区块链自身安全特性和身份验证功能,能够为可信交易这种高隐私性、强监管的应用提供一种可监管的区块链可信交易模式,以满足用户交易的安全需求.
致谢感谢蔡维德教授对本文的悉心指导.