基于委员会的区块链跨链资产转移方法、区块链信息终端
技术领域
本发明属于区块链间的互通信、互操作技术领域,尤其涉及一种基于委员会的区块链跨链资产转移方法、区块链信息终端。
背景技术
自2009年中本聪提出比特币的概念后,其背后的区块链技术日益受到重视。如今各种区块链系统繁多,著名的有比特币、以太坊、Fabric等,未闻其名的更是数不胜数。在不同的区块链系统间进行互操作、互通信,实现区块链间的资产转移等需求已经变得十分迫切。目前,在跨链技术上有三种主流技术,分别是公证人机制、中继/侧链技术、哈希时间锁。
1、公证人机制
中心化或多重签名的见证人模式,见证人是链A的合法用户,负责监听链B的事件和状态,进而操作链A。本质特点是完全不用关注所跨链的结构和共识特性等。代表项目有:Ripple,BTS,Cybex。其最大的缺点就是由于存在公证人,所以中心化太严重,这样会存在攻击漏洞,一旦攻击者攻破了公证人的账号,则交易造假就会发生。而且中心化太严重更是违背了区块链去中心化的设立理念,回到了传统的一个数据中心的时候。
2、中继/侧链技术
侧链是指以锚定原链上的代币为基础的新型区块链,如果链X能够验证来自链Y的数据,则称链X为链Y的侧链。侧链支持SPV(Simple Payment Verificaiton),能够验证块上Header、merkle tree的信息。中继技术是将原有链上的代币转入类似多重签名控制的原链地址中,对其进行暂时锁定,在中继链上的交易结果将由这些签名人投票决定其是否生效。然而这种技术存在一个严重的缺陷,就是在交易确认的时候,必须完全相信侧链上的成员或中继成员,进一步的使其安全性受到了挑战。代表项目有:RSK,BTC Relay,Polkadot,Cosmos。
3、哈希时间锁
代表项目有:Lighting network。核心理论是在链AB间设定相互操作的触发器,通常是个待披露明文的随机数的hash值。本质特点是HTLC(Hashed TimeLock Contract),是通过锁定一段时间猜hash原值(preimage)兑换支付(redeem)的机制。哈希锁定起源于闪电网络的HTLC(Hashed Time Lock Contract),如今也使用较为广泛,但由于它自能实现资产的互换而不能实现资产的转移,这样会许多的限制,试想,如果只有在一方有人民币,一方有美元的情况下才能进行资产互换的交易,而不能在只有人民币的情况下兑换美元,那将有多大的限制。其不能实现资产交易的原因,主要是他的互锁机制,他要求在资产交易前,双方协商,将发起方资产锁定,只与接受方交易,这期间不能单方面产生资产。
综上所述,现有技术存在的问题是:有些跨链技术存在中心化太严重的问题;有些只能实现资产的互换而不能实现资产的转移,有些安全性存在问题,过度信任处理跨链交易的节点等。
解决上述技术问题的难度:
跨链技术的实现,要解决两个主要的问题:如何保证原链上的资产总数在跨链时不变,即保持交易的原子性;如何用分布式的方法验证另一条链上的交易,保证处理跨链交易的节点的可信度,防止双花问题。要对上述三种技术进行改进或者突破,难点在于要在区块链的安全性、可扩展性、去中心三者之间找到一个最佳平衡点。
解决上述技术问题的意义:
目前每一个区块链网络都是一个相对独立的网络,数据信息不能做到互通互联,存在信息孤岛的问题。不同的区块链网络之间协作的难度大,这极大地限制了区块链应用的发展。解决跨链难题,可以实现链与链之间生态的多样性,扩展区块链的应用领域。像早期因路由器的出现而将局域网组成互联网一样,让彼此间可以通信,组成互信互操作的价值网络。
发明内容
针对现有技术存在的问题,本发明提供了一种基于委员会的区块链跨链资产转移方法、区块链信息终端。
本发明是这样实现的,一种基于委员会的区块链跨链资产转移方法,所述基于委员会的区块链跨链资产转移方法包括:
首先通过运行脚本协议,为所有活跃节点分配ID,并使用蓄水池抽样算法在每条链上等概率的抽取节点,形成大小为的确认委员会C;
然后在每个交易周期内,发生跨链交易时,链与链之间通过各自的委员会交互,先根据各自的节点数确定交易资产兑换比例;
最后委员会通过锁定或解锁资产以完成跨链交易;每过一个周期,确认委员会重新抽取;委员会内的区块只有经过6个区块的竞争期才被推送到主链上。
进一步,所述基于委员会的区块链跨链资产转移方法具体包括:
第一步,用户资产转移到其他主链上,请求进入交易缓冲列表,其他链的资产要转移到本链时,请求进入交易请求列表;
第二步,确认委员会每t时间向主链发起请求,t<<T;产生资产;
第三步,各链委员会间遵循跨链资产转移协议,进行资产的跨链转移;
第四步,交易生成的区块经历6个区块的竞争期后,和主链同步。
进一步,所述委员会将交易打包成块后,需要主链的确认,委员会内的区块添加到主链上的区块中;具体包括:
步骤一,当链上的节点用户向确认委员会发起资产转移请求,请求转移其资产到其他链时,确认委员会将请求加入交易缓冲列表中;同时,确认委员会也和其他链上的委员会时刻保持通信,维护一个交易请求列表,用于接受其他链的用户转移到本链上的交易请求;
步骤二,每过一段时间t,委员会和其他链上的委员会进行时间Δ同步,根据交易请求列表中要求转移的资产数,生成对应的资产Xall,生成资产规则如下:委员会运行PBFT协议,领导节点向全链广播,如果得到2/3的节点的承认,则系统赋予委员会权限生成相应的资产,该资产在一个空节点上产生,到时间t后,节点的可用资产总是零;这笔资产的产生将会记录到其主链上;
步骤三,确认委员会生成对应的资产后,和其他链上的确认委员会进行跨链交易;跨链交易遵循跨链资产转移协议,设定超时时间Δ,超过时间,交易将回滚;
步骤四,所有跨链产生的交易由确认委员会打包成区块,由区块形成的链相对独立于主链,为备份链;如果交易tx包含在区块BX中,称为tx∈BX,当Bx后面又产生6个区块,则将这个BX推到主链上,主链上的节点在添加区块后,发送签名到委员会;委员会收到2/3个签名的时候,表明区块在主链上添加成功;否则,委员会向全链广播区块推送失败的消息,并重新推送。
进一步,所述基于委员会的区块链跨链资产转移方法的确认委员会C选取和他的周期轮换方法包括:
步骤一,委员会成员c的大小的确认规则是,取节点总数的个节点;第一个周期开始前,运行一个comment election协议脚本,给所有节点分发ID编号,使用蓄水池抽样算法等概率抽取个节点;抽取的节点间相互通信组成确认委员会,委员会内有一个空节点,用作转移资产的中间节点,委员会C中节点总个数是
步骤二,在一个周期T结束前,空节点资产清零,确认委员会生成当前委员会内的节点活跃列表,给全链上的每个活跃列表发送唯一连续的ID编号;
步骤三,周期抽取节点时,随机剔除节点使当前节点数为c+1-k个;然后在主链上用同样的抽样算法抽取k个节点,组成新的委员会;k个节点需要同步以前的委员会的链上内容;
步骤四,委员会内节点相互同步信息,进入下一个跨链交易周期。
本发明的另一目的在于提供一种应用所述基于委员会的区块链跨链资产转移方法的区块链通信控制系统。
本发明的另一目的在于提供一种应用所述基于委员会的区块链跨链资产转移方法的区块链操作控制系统。
本发明的另一目的在于提供一种应用所述基于委员会的区块链跨链资产转移方法的区块链信息终端。
综上所述,本发明的优点及积极效果为:本发明针对目前跨链技术的不足,在保证交易的安全性的前提下,使跨链交易处理速度更快,去中心化程度更高,降低实现难度,支持跨链的资产转移并实现多链的互操作功能。本发明通过从主链上抽样出一个“确认委员会”进行交易的确认,并周期轮换;基于委员会的跨链交易确认机制,其中,委员会权限依赖于主链,委员会共识独立于主链。具体对比,如表1所示:
表1.区块链跨链技术优缺点对比
与现有技术的对比,相比于公证人机制,本发明去中心化程度更高;相比于侧链技术,本发明完全信任处理跨链交易的节点,安全性更高;相比于哈希锁,本发明支持跨链资产转移。
与现有技术相比,本发明的有益效果是:
1)更便捷的实现区块链间的互操作,一条链可以通过抽样出的委员会读取到另一条链的状态信息,实现数据资源的共享;
2)实现区块链间的资产转移,可以一对一、一对多,多对多的进行资产转移,实现区块链间的价值网络,如A链与B链跨链交互;A链与B、C、D链跨链交互;A、B、C、D链相互跨链交互等;当两条链交互时,即,A链与B链交互,如A、B、C、D链相互跨链交互,则每条链的委员会各自维护自己的“交易缓冲列表”和“交易请求列表”,如A链向其他链的所有跨链请求交易CA→*都将被加入到A链的“交易缓冲列表”中,其中,A链向C链的跨链请求也被C链的“交易请求列表”所记录,以供C链生成对应的资产。同理,其他链向A链的交易请求,被A链记录到自己的“交易请求列表”中。总的来说,当多条链交互时,每条链维护自己的列表,即自己委员会的“交易缓冲列表”和“交易请求列表”。当本链的节点提出跨链请求时,将交易加入委员会的“交易缓冲列表”中。而后委员会间通信,根据通信结果,将那些资产转移到自己链的交易,加入到自己委员会的“交易请求列表”中。而后,跟说明书中所述一样,根据“交易请求列表”中的信息生成对应的资产,实现跨链交易。多条链交互的具体分步骤来说,就是:步骤1:A链维护自己的“交易缓冲列表”和“交易请求列表”,将本节点提出的跨链交易请求加入到自己的“交易缓冲列表”,将来自其他节点的跨链请求加入到自己的“交易请求列表”中。步骤2:各自的委员会相互通信,如A链的委员会和其他委员会通信,根据自己的“交易缓冲列表”和对应的委员会通信,对应的“委员会”将A链中那些涉及到自己的交易添加到自己“委员会”的“交易请求列表”中。如A向C链跨链请求,记为CA→CC,则这个请求会被加入到A链的“交易缓冲列表”中,经过委员会通信后,会被加入到C链的“交易请求列表”中。步骤3:其他链的委员会执行一样的操作。
3)使用蓄水池抽样方法和周期轮换机制保证委员会选举的公平性,委员会使用签名和PBFT共识算法保证资产转移的安全性和原子性。
附图说明
图1是本发明实施例提供的基于委员会的区块链跨链资产转移方法流程图。
图2是本发明实施例提供的资产转移的流程图。
图3是本发明实施例提供的两条链交互情况示意图。
图4是本发明实施例提供的跨链资产转移流程图。
图5是本发明实施例提供的多链交互时,委员会间如何通信的示意图。
图6是本发明实施例提供的周期轮换实例示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
针对目前在跨链技术存在中心化太严重;主链不知道侧链的存在,而侧链必须要知道主链的存在;双链也不知道中继的存在,而中继必须要知道两条链;自能实现资产的互换而不能实现资产的转移的不足。本发明提供基于委员会的跨链机制,通过抽样算法在每条链上抽样形成一个“确认委员会C”,每次发生跨链交易的时候,通过这个委员会锁定/解锁交易,完成数字资产的转移。其中,各“委员会”确认交易时使用相同的共识机制,委员会间运行的共识是一样的,委员会共识与主链共识无必然关系。
下面结合附图对本发明的应用原理作详细的描述。
如图1所示,本发明实施例提供的基于委员会的区块链跨链资产转移方法包括以下步骤:
S101:用户资产转移到其他主链上,请求进入交易缓冲列表其他链的资产要转移到本链时,请求进入交易请求列表;
S102:确认委员会每t(t<<T)时间向主链发起请求,产生一定的资产;
S103:各链委员会间遵循跨链资产转移协议,进行资产的跨链转移;
S104:交易生成的区块经历6个区块的竞争期后,和主链同步。
如图2所示,本发明实施例提供的周期轮换和委员会选取方法包括:
S201:comment election协议脚本,产生大小为c+1的确认委员会;
S202:周期(T)结束时,空节点资产清零,委员会生成节点活跃列表,分发ID给个节点;
S203:抽取K个节点,补全委员会,进入下一个跨链交易周期。
本发明实施例提供的对资产的确认其实就是共识的过程。在没有跨链前,一条单链中对资产交易的确认,是全链运行一个共识(如POW、POS等),将一组交易打包成一个块,并添加到全链的最后。本发明的共识机制为了适应跨链,有所改变。委员会间使用的共识一样,且独立于各自主链的共识机制。委员会将交易打包成块后,还需要主链的确认,把委员会内的区块添加到主链上的区块中。具体方案为:
步骤一:当链上的节点用户向“确认委员会”发起资产转移请求,请求转移其资产到其他链时,“确认委员会”将该请求加入“交易缓冲列表”中。同时,“确认委员会”也和其他链上的委员会时刻保持通信,维护一个“交易请求列表”,用于负责接受其他链的用户转移到本链上的交易请求。
步骤二:每过一段时间t(t<<T),委员会就和其他链上的委员会进行时间Δ同步,根据“交易请求列表”中要求转移的资产数,生成对应的资产Xall,生成资产规则如下:委员会运行PBFT协议,领导节点向全链广播,如果得到2/3的节点的承认(节点的签名),则系统赋予委员会权限生成相应的资产,该资产在一个空节点上产生,到时间t后,该节点的可用资产总是零(要么被转出到其他节点,要不资产被永久锁定)。这笔资产的产生将会记录到其主链上。
步骤三:“确认委员会”生成对应的资产后,和其他链上的“确认委员会”进行跨链交易。跨链交易遵循跨链资产转移协议,设定一个超时时间Δ,超过这个时间,交易将回滚,以保证交易的原子性。
其中,委员会间跨链资产的兑换规则如下所示:认为一条链上的人数越多,这条链就越有价值。委员会维护一张表,即,“当前活跃节点列表”,记录当前区块链上,当前周期T内的活跃节点的数量,两条链的节点数量的反比,即是资产兑换比例。例如,A链有10000个节点,B链上有6000个节点,则A:B=3:5。
步骤四:所有跨链产生的交易都由“确认委员会”打包成区块,由这些区块形成的链相对独立于主链,可以称为“备份链”。如果交易tx包含在区块Bx中,称为tx∈Bx,当Bx后面又产生了6个区块,则将这个BX推到主链上,主链上的节点在添加区块后,发送签名到委员会。委员会收到2/3个签名的时候,表明区块在主链上添加成功。否则,委员会向全链广播区块推送失败的消息,并重新推送。
在多条链时,原理相似,委员会间两两通信,各自维护自己的“交易缓冲列表”和“交易请求列表”。
本发明提供区块链的“确认委员会C”选取和他的周期轮换方案:
步骤一:委员会初始化。委员会成员c的大小的确认规则是,取节点总数的个节点。第一个周期开始前,运行一个comment election协议脚本(该协议脚本只运行一次),给所有节点分发ID编号,使用蓄水池抽样算法等概率抽取个节点。(注:蓄水池抽样算法的功能是可以在不知道节点数n有多大的情况下等概率的抽取出m个节点),抽取的节点间相互通信组成“确认委员会”。委员会内有一个空节点,用作转移资产的中间节点,所以“委员会C”中节点总个数是
步骤二:在一个周期T结束前,空节点资产清零,“确认委员会”生成当前委员会内的节点活跃列表,给全链上的每个活跃列表发送唯一连续的ID编号。
步骤三:周期抽取节点时,随机剔除节点使当前节点数为c+1-k个。而后在主链上用同样的抽样算法抽取k个节点,组成新的委员会。这k个节点需要同步以前的委员会的链上内容。
步骤四:委员会内节点相互同步信息,进入下一个跨链交易周期。
下面结合附图对本发明的应用原理作进一步的描述。
实施例1
本发明实施例假设每个用户在不同的区块链上都有账号。即,Alice在A链和B链上都有账号。需要保证的是资产交易的原子性、两条链上的相对总资产不变。
假设现在有两条链A,B,并且已经按照委员会抽取规则,生成了各自的“确认委员会”。Alice在A链上有1BTC的资产,想将这1BTC资产转移到B链上,换成20ETH(A:B=1:20),如图2所示。资产模型为UTXO。
当用户Alice在A链下发起请求,要将其资产转移到B链上,他将经历以下步骤(如图3所示):
1、Alice在A链下,向其“确认委员会”CA发起资产转移请求,要把资产Xa(1BTC)转移到B链,(发送的请求为Tx,请求中包含资产数Xa、Alice在B链下的账号);
2、CA收到请求后,将交易Tx加入到“交易缓冲列表中”,解析到该向B链路由,于是CA向CB发起资产转移请求;CB收到请求后,将交易Tx的请求Tx加入到“交易请求列表”。等待同步时间t;
3、之后,CB运行PBFT协议,向主链请求生成Xa的等价资产(20ETH)。有2/3个节点同意后,CB的空节点产生对应的资产X′a(Unspent),解锁脚本为SB。CB向CA请求“锁定证明”,要等待CA的“锁定证明”才把解锁脚本发给同时设定一个时间Δ,超过Δ后,将资产X′a标记为已花费(Spent);
4、CA向Alice索要Xa的解锁脚本SA;
5、CA收到Alice的解锁脚本后,运行PBFT协议,将资产Tx锁定(标记为已花费Spent),并由群签名生成一个“锁定证明”,CA将“锁定证明”发送给CB。同时设定Δ/2,等待CB的“转账证明”,超过Δ/2的时间后,交易结束,运行共识将Alice的资产解锁,标记为(Unspent);
6、CB收到“锁定证明”后,运行协议,将解锁脚本SB发送给同时由群签名生成一个“转账证明”,发送给CA。
自此,单笔交易流程结束。等待6个区块的竞争期后,委员会将会把包含这笔交易的区块推送上链,收到主链上节点总数2/3的签名时,表明区块在主链上添加成功,否则重发。
实施例2
多条链交互的时候,原理如实施例1一样。如图5所示,现有A、B、C、D四条链要交互,A要与B、C、D跨链,B要与D跨链。则通信方式如下:
委员会CA分别与CB、CC、CD通信,并在委员会内有相对应的“交易缓冲列表CA→*”和“交易请求列表*→CA”。同理,委员会CB、CC、CD内也有对应的列表。委员会CB与CD通信,在委员会内也有相对应的“交易缓冲列表CB→CD”和“交易请求列表CD→CB”,相应的,CD内也有对应的列表。
之后,每两个委员会间如实施例1中描述的一样通信。以此,完成四条链的跨链资产交换。
实施例3
周期轮换和委员会的选取:
在每条链上,使用蓄水池算法,等概率的抽取c个节点,并和1个空节点组成大小为c+1的“确认委员会”。每过T时间,“确认委员会”重新抽取一次,称为一个抽取周期。这样做事为了防止恶意节点控制“确认委员会”。
具体规则如图下:在一开始,形成第一个委员会的时候,执行蓄水池等概率抽样算法抽取c个节点,加上空节点,形成“确认委员会”。此步骤执行一次,此后在每个周期结束快要结束时,“确认委员会”生成当前主链的节点活跃列表,而后随机剔除节点使当前节点数为c+1-k个。而后在主链上用同样的抽样算法抽取k个节点,组成新的委员会。这k个节点需要同步以前的委员会的链上内容。
实例如图6所示:
假设在A链下有100个节点,等概率抽取了10个节点(c=9,k=4),记为A1-A10。当周期T快结束时,委员会生成一个列表,这时发现A9节点失效,则生成列表;
{A1,A2……A8,A10};
之后随机剔除节点,使当前节点为6(c+1-k=10-4)个,假设随机剔除节点A10,A2,A5。则列表里有:
{A1,A3,A4,A6,A7A8,};
从主链上再随机抽取4个节点,记为A′2,A′5,A′9,A′10,这4个节点同步以前的区块内容,和以前的节点一起组成新的委员会。如此循环。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。