一种基于多人链下通道的区块链交易方法及系统技术方案

技术编号:28747962 阅读:21 留言:0更新日期:2021-06-06 19:07
本发明专利技术提出一种基于多人链下通道的区块链交易方法及系统,整个系统状态更新以轮为最小单位,每一轮为节点间一次完整的交易过程,在多轮之间插入检查点,检查点与前一个检查点之间的多轮组成整个系统的同步周期。每轮结束时需要完成轮共识,每个周期结束时完成检查点共识。轮共识阶段由领导者发送结果,其他节点自愿验证,辅以监察服务,为下线节点提供服务;检查点共识进行所有节点在线的两阶段共识,支持通道节点的动态加入与退出。这样既能加速共识的过程,提升系统通量,降低作恶被延迟发现、过多交易被撤销的风险,也能保证节点的灵活性和系统的安全性。和系统的安全性。和系统的安全性。

【技术实现步骤摘要】
一种基于多人链下通道的区块链交易方法及系统


[0001]本专利技术涉及区块链的扩展性研究
,并特别涉及一种区块链多人链下通道方法及系统。

技术介绍

[0002]区块链以其分布式、公开透明、安全等特性使得人们可以在互联网上方便快捷、低成本地进行价值交换,是实现价值互联网的基石。区块链技术在产生之初,只是针对小范围技术社区内的验证和使用需求,区块链协议的简单和健壮性是区块链技术的最初设计前提,因此并没有考虑向更广范围的、高并发的互联网应用推广。区块链网络中的节点采用统一的共识过程,实现了区块链安全性、去中心化的特性,但全网节点复制共享的全局账本数据,并将包含事务数据的区块数据在全网进行洪泛式传播,收到区块的每个共识节点需要验证并存储所有的数据,这样的机制造成了区块链性能受阻。因此,提升区块链的性能依旧有很大的探索空间。
[0003]区块链的低通量(以“系统每秒钟处理的交易数量”衡量区块链的通量,即Transaction per second,下文以TPS指代)直接限制了其在实际生活中的应用场景。在比特币网络中,由于全网采用统一的共识过程,假设节点的平均网络带宽为10Mbit/s,那么每个节点的每秒可以接收的事务数量上限是1000。假设每个节点对每笔事务的验证时间大约5ms,每个节点每秒处理的事务理论数量上限为200。那么受同步机制和机器处理性能的影响,每个区块链网络节点每秒能接收到并验证的事务数量上限只是200左右。实际运行过程中,比特币平均每秒处理3.5笔交易,以太坊平均每秒处理15笔交易,就算性能更高的联盟链,在生产场景下的平均TPS也是千级别。随着比特币、以太坊等代表性公链系统的交易量飙升,链上交易拥堵日益显现,比特币,以太坊的未确认交易数能达到15万笔左右。拥堵使得区块链网络内的交易费变得昂贵,拥堵严重时甚至会使交易执行失败。
[0004]而在金融领域中,现阶段支付宝,微信平均每秒处理交易千笔,峰值时达到了几十万笔;普通的信用卡公司,支付卡VISA可以每秒处理近万笔事务,并且事务的确认时间只需几秒钟。由此可见,区块链系统的通量和实际应用与日常使用的中心化交易解决方案依旧有很大的差距,因此,提高区块链通量已经成为当今区块链应用的迫切需求。
[0005]目前,国内外的研究中,提高区块链通量的方案主要分为链上扩容和链下扩容两种。
[0006]链上(on

chain)扩容是指通过优化、改进区块链的基本协议提升可扩展性,其包含的方案也比较多样,主要体现在三个层面:网络层、共识层和数据层。比如共识层中选择更快的共识算法;数据层中增加区块大小或者降低交易包的规模;网络层中提出了分片协议,区块链可以并行的处理交易,进而提升区块链性能。但在区块链技术的基础架构和协议框架下,通过优化其协议内置的参数(出块间隔、区块大小)和运行环境参数(挖矿节点的GPU、内存、硬盘、网络带宽)等,其预期的优化效果上限可以预估且无法达到传统中心化技术的通量水平,即链上扩容大多效果有限,而且扩容升级过程会造成硬分叉,分片虽然可以
显著提高吞吐量,但是会降低主链安全性,且协议十分复杂,目前还不完备。试图在公链系统上实现底层协议的大幅更替,将面临技术和社区的双重压力。
[0007]链下(off

chain)扩容则不改变区块链基本协议和原有信任假设,通过将一些操作放于链外以提升主链吞吐量,为区块链提供横向的扩展能力。链下扩容方案主要包括链外通道和侧链方案,侧链是指与主链平行的链,这些链可以有自己的共识机制,不需要和主链的共识机制相同,侧链并不是完全独立的,最终还是依赖主链做最终的结算,不具备即时终结性,且其关注的核心问题是业务场景跨链,并没有给通量需求带来技术进步。而链下通道具备即时终结性和交易隐私性,可以最小化链上操作,因此作为一种很有前景的链下扩容方案受到广泛关注。状态通道作为一种主流的链下扩容协议,可以支持不同种类的应用。具体来说,应用的参与者在链上锁定状态,参与者在链下局部共识,共识完成即可认为状态被确认。当要退出应用时,在链上清算状态。支付通道属于状态通道在支付领域内的具体应用,只完成资产转移的支付操作,实现速度更快、费用更低的交易。
[0008]根据支付通道内支持的可锁定资金人数,可以将通道类型划分为双人通道和多人通道。
[0009]双人通道是指通道的参与方是两个用户,当发送方和接收方分别在链上锁定资金后,这笔钱就固定在双方这个通道上,两方在通道内任意交易,局部对账本进行更新共识即可,天然的没有双花问题。比较具有代表性的是基于UTXO模型的闪电网络和基于账户模型的雷电网络。对于双人通道中非直接相连节点间进行交易时,一种方式是发送方和接收方在链上锁定资金,新建通道,两方进行任意多笔交易。如果每两方都需要上链建立一条通道,那么与链上的交互多,系统整体开销较大,无法达到链下扩容的目的。另一种方式是在支付通道网络中寻路,通过其他中间节点路由交易,一跳一跳的支付,完成一笔交易。这种方式受网络拓扑,寻路算法,路径上资金容量的影响比较大,当网络联通度较低时,跨通道交易的路由路径比较长,会导致交易成功率降低,还存在通道阻塞,通道失衡等问题。
[0010]多人通道在一般意义上就是允许多个人参加到同一个通道中,交易在通道内的任意两方间进行,但是账本更新要在通道内全局进行,需要得到通道内所有节点的认可,一份资金能用于和多人交易,使得通道在资金使用上更灵活,同时带来了双花问题。多人通道中,同一个通道内的所有节点间都可以直接进行交易,节点通过一笔链上交易加入多人通道,则相当于建立了n条单向连接,相比于双人通道的一笔链上交易建立一条单向连接,网络连通度上有n倍的提升,减少跨通道交易的同时,可缓解双人通道内存在的问题,因此多人通道是提升区块链系统通量的有效手段。
[0011]目前多人通道有多种构建模式,实质上都是在解决如何让多个人能互相更方便的转账,而不是像双人通道一样,将交易对象约束为某个特定的对等方。
[0012]一种是多人虚拟通道,作为一种伪多人通道,这种方案在双人通道的基础上做延伸,应用虚拟通道机制,构建多人的通道,本质还是双人通道,因为链上进行资金锁定时,还是双人的通道,资金绑定在特定链路上。具体来说:多人虚拟通道中包括两种类型的通道,一种是在链上锁定资金后构成的通道,叫做账本通道(前文中称为通道),另一种是基于已存的账本通道建立的虚拟通道。比如A,B和C三个节点由账本通道直接相连,当需要A和C直接交易时,为了减少链上的开销,不是直接建立A到C的账本通道,而是在A与B和B与C的通道内预留一部分资金,让B作为不可信第三方,建立一条A与C的虚拟通道,中间节点B只在虚拟
通道建立和撤销的时候参与共识,交易可以直接在A与C之间发生。多人虚拟通道意味着参与同一个多方通道的节点在一条直接相连的路径上,这条路径对底部的具体通道类型是无感知的,即可以是虚拟通道和账本通道的组合。这种方案应用虚拟通道,对原有的链下通道网络进行了扩展,提供了一种建立多方通道的选择,但是存在问题很明本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于多人链下通道的区块链交易方法,其特征在于,包括:步骤1、用户节点向该区块链发起一笔打开链下通道的交易请求,该区块链根据该交易请求开启链下通道,该用户节点作为领导者加入该链下通道,负责维护链下账本状态,且多个用户节点通过该链下通道的通道标识符加入该链下通道,初始化轮数为0;步骤2、判断当前轮数是否小于预设值,若是,则执行步骤3,否则执行步骤4;步骤3、在预设时间内,该链下通道内用户节点间发起链下交易,领导者根据该链下交易的发送方签名和接收方签名,对该链下交易进行确认签名,并将该链下交易记入链下账本,将该确认签名返回该发送方和该接收方,达到该预设时间后,领导者向该链下通道内所有用户节点广播链下账本状态更新,轮数加1,再次执行该步骤2;步骤4、领导者将包含链下账本状态的检查点共识消息发送给通道内所有用户节点,通道内用户节点通过确认该检查点共识消息,实现通道内所有用户节点对该链下账本的状态达成一致性视图,轮数置零,再此执行该步骤2。2.如权利要求1所述的基于多人链下通道的区块链交易方法,其特征在于,该步骤1中该用户节点作为领导者加入该链下通道,具体包括:用户节点在该区块链上的账户资金减value_A,用户节点在该链下通道中的账户资金加value_A,合约为该交易请求返回唯一的通道标识符;该步骤1中多个用户节点通过该链下通道的通道标识符加入该链下通道,具体包括:待加入的用户节点发起一笔加入该链下通道的交易,包括要加入的通道标识符,并锁定待加入的用户节点的资金,并对链下账本状态进行更新,由默克尔化的线段树来表示账户的余额以及账户对应的交易信息,账户的余额通过线段的划分存储在账户树中;每个账户对应的交易信息存储在交易树中,其中支出交易由默克尔树来表示,收入交易由默克尔化的线段树表示,该链下通道中用户节点与待加入的用户节点同步链下账本状态。3.如权利要求2所述的基于多人链下通道的区块链交易方法,其特征在于,该步骤2包括:领导者检查该链下交易发送方的交易序号是否是连续递增,余额是否充足;检查通过后对交易签名,发送签名至发送方和接收方,并更新链下账本状态:在接收方账户的入交易树中新增一个叶子节点,以记录该链下交易的信息,重新构建交易的默克尔树;发送方账户的出交易树中新增叶子节点,重新构造默克尔化的交易线段树。4.如权利要求1所述的基于多人链下通道的区块链交易方法,其特征在于,该步骤3包括:若链下通道内用户节点在规定时间内没有收到账本状态更新,则向领导者发送请求,并再次等待;若等待后发送方依旧没有收到接收方的回复,则向区块链提交请求,要求领导者向链上提交当前轮的账本状态更新;若领导者没有在规定时间内向链上提交当前轮的账本状态更新,发起请求的用户节点在链上提交最近的检查点共识消息,并请求惩罚领导者,实现对领导者节点的资金罚没,链上重新划分资金分配。5.如权利要求1所述的基于多人链下通道的区块链交易方法,其特征在于,该步骤4包括:领导者向该链下通道内所有用户节点广播检查点共识消息,包括领导者签名的账本状
态更新,加入和退出节点的请求,和竞选领导者的请求;所有用户节点对该共识消息进行验证通过后,所有用户节点向领导者发送签名,并在本地记录最新的共识消息;当领导者接收到当前通道内所有用户节点的签名,构造所有用户节点签名的聚合签名消息,发送给通道内所有用户节点,则共识完成,所有用户节点都对最新的链下账本状态达成了一致性视图。6.如权利要求1所述的基于多人链下通道的区块链交易方法,其特征在于,该步骤3还包括:该链下通道内所有用户节点在本地计算候选节点的重要性评分,以该重要性评分作为权重,采用加密抽签的方式对领导者进行更新。7.如权利要求1所述的基于多人链下通道的区块链交易方法,其特征在于,还包括:区块链中监察服务节点调用监察服务智能合约,锁定一笔资金作为保证金,对外提供服务;该链下通道内用户节点作为委托节点与监察服务节点使用哈希时间锁机制建立委托关系,并该委托节点在执行步骤4之前离线;当该链下通道内发生争议,通过发起状态更新挑战向链上提交链下账本状态,该监察服务节点判断提交至链上的链下账本状态中对委托节点的余额划分是否正确,若正确则保存最新的链下账本状态,否则向链上提交错误挑战,维护委托节点的利益后保存最新的链下账本状态;委托节点上线,同步最新的链下账本状态,判断委托节点的资金分配在链上是否发生变化,若是,则构造追责事务,以建立委托关系时的链下账本状态和当前链下账本状态作为凭证,调用监察服...

【专利技术属性】
技术研发人员:孙毅裴奇贾林鹏蒋硕轩薛靖雯于雷
申请(专利权)人:中国科学院计算技术研究所
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1