一种跨链交易的区块链互联网模型的核心算法的制作方法

文档序号:12306595阅读:417来源:国知局
一种跨链交易的区块链互联网模型的核心算法的制作方法与工艺

本发明涉及针对金融体系的区块链互联网技术领域,特别是采用分布式的区块链互联网结构。



背景技术:

区块链((blockchain,bc)是分布式数据库系统,也可理解为由多个节点共同维护的分布式账簿技术(distributedledgertechnology,dlt),其特点是不易篡改、很难伪造、可追溯。区块链互联网(internetofblockchians)是一种基于区块链搭建的价值网络,须具有高性能,安全性,隐私性,可扩展性,互通性,可更改性,容错性,可管理性及完备性。

现有的区块链互联网,如宇宙网(cosmos),多为中心化的结构,其中间链是一个中心机构,于是中间链的计算及通讯链易成为区块链互联网的瓶颈。另外,其每一条链都需要维持自己的一致性,而中间链也需要动态维持与每一条参与链之间的一致性,进而一条跨链交易需要多条参与链与中间链共同维持,使得区块链的运行速度减慢。



技术实现要素:

为了克服上述现有的应用于金融系统的链网(如cosmos等)效率较慢的问题,本发明提供了一种跨链交易的区块链互联网模型的核心算法,可以实现并行运算,提高系统的运行效率与交易速度,同时保证系统一致性。

本发明所采用的技术方案是一种跨链交易的区块链互联网模型的核心算法,其特征在于该模型如图1所示,包含以下组成部分:

(1)参与链(participantblockchain,ppc),代表一个或多个金融机构或金融单位,可包含由一至多个节点;

(2)中间链(inter-chainblockchain,icc),代表一个中间机构,其本身也是一个金融机构,也可以起到ccp(centralcounterparty,中央对手方)的作用,中间链与参与链有两个至多个公共节点,中间链利用公共节点与参与链进行交易;

(3)每两条参与链之间可连有一条或多条中间链,每条中间链可连接两条至多条参与链,并由中间链完成两条或多条参与链之间的交易,其包含两种交易模式,以适用于不同的需求(即时完成交易,或非实时但高效交易):

(3a)实时交易(real-timetransaction):两条至多条参与链可通过一条中间链进行实时交易,中间链即时的执行每一条交易;

(3b)多边净额结算(multilateralnetting):每条中间链在每个结算周期结束时进行多边净额结算,一起处理多笔待定交易(tentativetransaction),起到ccp的作用,减少交易次数,提高交易效率;

(4)若干多个金融机构以参与链与中间链的形式构成了一个分布式网络,每条链维护自己的一致性,链与链之间的一致性不需要中央组织来管理,得以并行运行,提高交易效率与网络运行速度;新的金融单位可随时容易的加入或离开网络,具有可扩展性,支持大规模网络与高交易量。

优选的,对于组成部分(1),该链网包含若干多参与链,每一条参与链代表一个或多个金融单位,可包含若干多节点,每一个节点储存了该金融单位的全部信息;参与链的全部或部分节点具有投票权(全部节点及部分节点可参与投票这两种情况均适用于本专利),各个节点之间采用并发拜占庭容错协议(cbft,concurrentbyzantinefaulttolerance)、或实用拜占庭容错协议(pbft,practicalbyzantinefaulttolerance)、或其它拜占庭(byzantine)共识协议、或数据库事物性一致性的算法(如使用数据库事物性一致性的算法,则不能查证说谎的节点,以至于是一个弱化的一致性算法),来保证各个节点之间信息的一致性与难窜改性,保证了每条参与链自身的一致性。

优选的,对于组成部分(2),该链网包含若干多中间链,每一条中间链代表一个中间机构,其本身也是一个金融机构,也可以起到ccp(centralcounterparty,中央对手方)的作用,中间链与参与链有两个至多个公共节点,其示意图见图2与图3。中间链包含多个节点,其全部或部分节点具有投票权(全部节点及部分节点可参与投票这两种情况均适用于本专利)。各个节点之间采用拜占庭容错协议(或弱化的数据库事物协议)来保证各个节点之间信息的一致性与难窜改性。

优选的,中间链利用公共节点与参与链进行交易。如果该中间链上的某一个节点为n条链的公共节点,如图5及图7所示,则该节点的存储空间分为n+1个部分,分别为a1,a2,…,an,负责存储第n条链的信息,以及一个c(connection,连接)部分,负责将信息从ai部分传递给aj部分(i,j=1,2,…,n),如图4、图6及图8所示。下面均以两条链的公共节点为例阐述该模型的核心算法,如图4所示,每个公共节点的存储空间分为l(left,左),r(right,右),c(connection,连接)三部分。l部分存储该公共节点左侧链的信息,r部分存储该公共节点节点右侧链的信息。l部分与r部分的内容不可以直接进行沟通,需要通过c部分进行信息从l部分传送到r部分,或者从r部分传送至l部分的信息传递。

优选的,对于组成部分(3),在该链网中,每两条参与链之间可连有一条至多条中间链,每条中间链间可连接两条至多条参与链,并由中间链完成两条或多条参与链之间的交易,该链网可以实现两种不同的交易模式,以满足即时完成交易,及非实时但高效交易这两种不同的需求:

(1)实时交易:两条至多条参与链可通过一条中间链进行实时交易,中间链即时的执行每一条交易,实现实时清结算;

(2)多边净额结算:每条中间链在每个结算周期(一小时或一天等)结束时进行多边净额结算,一起处理多笔待定交易(tentativetransaction),减少清结算的次数,提高交易效率,因为一次清结算可以解决大批的交易,但是这种方法无法实现实时清结算。

优选的,对于(1)实时交易,此种交易模式的核心过程如图9与图13所示。该交易模式包含以下过程(以下为步骤的高阶层描述,详细描述见《说明书》中《具体实施方式》中的算法描述与伪代码),其流程如图10与图14所示。

(1)参与链1(ppc1)向中间链1(icc1)发起交易;

下面的过程(2)分为两种模式:

模式(i),见图9:

(2)中间链1(icc1)向参与链2(ppc2)发送交易请求;

若过程(1)的交易发起成功,过程(2)执行完毕后,将该交易状态标记为待定(tentative);

模式(ii),见图13:

下面过程(2a)与过程(2b)同时执行;

(2a)中间链1(icc1)向参与链1(ppc1)返回该交易请求成功与否的信息;

(2b)中间链1(icc1)向参与链2(ppc2)发送交易请求;

若过程(1)的交易发起成功,过程(2a)与过程(2b)执行完毕后,将该交易状态标记为待定(tentative);

上述模式(ii)中执行完毕(2a)后,参与链1(ppc1)即可进行其它操作,实现无阻塞的运行。

(3)参与链2(ppc2)向中间链1(icc1)发送该交易请求是否成功被参与链2(ppc2)接受的消息,如果是,向中间链1(icc1)发送该参与链2(ppc2)能够接受该交易的证明;

下面过程(4a)与过程(4b)同时执行;

(4a)中间链1(icc1)向参与链1(ppc1)告知该交易满足执行条件,可以执行;

(4b)中间链1(icc1)向参与链2(ppc2)告知该交易满足执行条件,可以执行;

两条参与链收到中间链1(icc1)的消息后,立即执行该中间链1(icc1)与参与链1(ppc1)及该中间链1(icc1)与参与链2(ppc2)的待定交易,直至全部执行成功为止,即完成交易(commit)。

优选的,对于第(2)种交易模式,多边净额结算,此种交易模式的核心过程如图11与图15所示。该交易模式包含以下过程(以下为步骤的高阶层描述,详细描述见《说明书》中《具体实施方式》中的算法描述与伪代码),其流程如图12与图16所示。

(1)参与链1(ppc1)向中间链1(icc1)发起交易;

下面的过程(2)分为两种模式:

模式(i),见图11:

(2)中间链1(icc1)向参与链2(ppc2)发送交易请求;

若过程(1)的交易发起成功,过程(2)执行完毕后,将该交易状态标记为预待定(pre-tentative);

模式(ii),见图15:

下面过程(2a)与过程(2b)同时执行;

(2a)中间链1(icc1)向参与链1(ppc1)返回该交易请求成功与否的信息;

(2b)中间链1(icc1)向参与链2(ppc2)发送交易请求;

若过程(1)的交易发起成功,过程(2a)与过程(2b)执行完毕后,将该交易状态标记为预待定(pre-tentative);

上述模式(ii)中执行完毕(2a)后,参与链1(ppc1)即可进行其它操作,实现无阻塞的运行。

(3)参与链2(ppc2)向中间链1(icc1)发送该交易请求是否成功被参与链2(ppc2)接受的消息,如果是,向中间链1(icc1)发送该参与链2(ppc2)能够接受该交易的证明;

若该请求被成功接受,将该交易状态标记为待定(tentative);

下面过程(4a)与过程(4b)同时执行;

(4a)中间链1(icc1)向参与链1(ppc1)告知该交易满足执行条件,可以执行;

(4b)中间链1(icc1)向参与链2(ppc2)告知该交易满足执行条件,可以执行;

该交易等待该结算周期结束时,执行过程(5);

(5)此时该结算周期结束,停止所有的即将开始或正在初始化的交易及待定交易,完成正在执行的交易,并由中间链1(icc1)对所有该结算周期之内的被标记为待定(tentative)的交易进行多边净额结算,进入完成交易(commit)阶段。

优选的,当一条链向另一条链传递信息时,其传递模式为散装传递,如图17及图18所示,一条链的每一个节点分别向另一条链的每一个节点传递信息,以防止某个或某几个节点作弊而影响整个传输过程的正确性。当参与链1(ppc1)向中间链1(icc1)发送请求时,若参与链1(ppc1)共有m个节点,分别为p1,p2,…,pm,tbc1共有n个节点,分别为t1,t2,…,tn,则由pi(i=1,2,…,n)分别向t1,t2,…,tn发送请求,所有节点总共发送m*n次请求。例如,如图17所示,当参与链1(ppc1)向中间链1(icc1)发送请求时,节点1与节点2分别向中间链1(icc1)的每一个节点发送请求信息;又例如,当参与链2(ppc2)向中间链1(icc1)发送请求时,节点3与节点4分别向中间链1(icc1)的每一个节点发送请求信息。

优选的,以下为对两条参与链,参与链1(ppc1)与参与链2(ppc2)通过中间链进行交易,对于过程(1)至(4)的每一个步骤的简要描述,详细描述见《说明书》中《具体实施方式》中的算法描述与伪代码。

(1)参与链1(ppc1)向中间链1(icc1)发起交易:

(1.1)参与链1(ppc1)(金融机构)发起交易:参与链经过内部的投票(cbft或pbft等拜占庭容错共识协议或数据库事物协议)决定是否发起交易,若是,参与链1(ppc1)对该交易信息进行加密认证(使用数字签名等),参与链1(ppc1)通过共识,其与中间链1(icc1)的公共节点(在例图9中为节点1与节点2)的l部分获得了该参与链1(ppc1)的全部信息。随后,l部分通过c部分将与本次交易有关的内容以及参与链1(ppc1)的所有节点的数字签名等供验证的信息传给r部分。r部分再将这些进行了加密认证的交易信息广播(broadcast)给中间链1(icc1)的每一个节点,如图17所示;若否,向参与链1(ppc1)返回错误信息,并将该过程标记为失败(failure);

(1.2)中间链1(icc1)验证信息:中间链(icc1)收到这些交易信息后,对交易信息进行验证(使用数字签名等),若验证成功,则各个节点对该交易进行投票与建块,并将该交易为待定(pending)状态;若验证失败,则返回错误信息,并将前面步骤均标记为失败(failure)。

下面的过程(2)分为两种模式:

模式(i):

(2)中间链1(icc1)向参与链2(ppc2)发送交易请求:

(2.1)中间链(icc1)传递交易:中间链(icc1)经过内部的投票(cbft或pbft等拜占庭容错共识协议或数据库事物协议)决定是否向参与链2(ppc2)传递交易,若是,则中间链(icc1)对该交易进行加密认证(使用数字签名等),中间链1(icc1)通过共识,其与参与链2(ppc2)的公共节点(在例图9中为节点3与节点4)的l部分获得了该中间链1(icc1)的全部信息。随后,l部分通过c部分将与本次交易有关的内容以及中间链1(icc1)的所有节点的数字签名等供验证的信息传给r部分。r部分再将这些进行了加密认证的交易信息广播(broadcast)参与链2(icc2)的每一个节点,如图18所示;若否,则返回错误信息,并将前面步骤均标记为失败(failure);

(2.2)参与链2(ppc2)验证信息:参与链2(ppc2)对收到的该请求的交易进行验证(使用数字签名等),若验证通过,则参与链2(ppc2)则进行内部投票决定是否接受该交易;若验证失败,则返回失败信息,并将前面步骤均标记为失败(failure)。

模式(ii):

(2a)中间链1(icc1)向参与链1(ppc1)返回待定交易成功与否的信息:

当该参与链1(ppc1)收到了该中间链1(icc1)的验证成功及该交易被标记为待定(pending)的信息,该参与链无需继续等待,可去进行其他交易。

(2b)该过程同模式(i)的过程(2)。

(3)参与链2(ppc2)向中间链1(icc1)发送该交易请求是否成功被参与链2(ppc2)接受的消息,如果是,向中间链1(icc1)发送该参与链2(ppc2)能够接受该交易的证明:

(3.1)若参与链2(ppc2)投票成功,同意接受该交易,则向中间链1(icc1)返回成功信息,并进行(3.2);否则,则向中间链1(icc1)返回失败信息,并将前面步骤均标记为失败(failure);

(3.2)参与链2(ppc2)向中间链1(icc1)发送该参与链2(ppc2)能够接受该交易的证明,例如参与链2(ppc2)有足量相关资源以完成此交易,并中间链1(icc1)与参与链2(ppc2)的交易设为待定(pending)状态。

(4)中间链验证参与链2(ppc2)返回的信息,并决定该交易是否满足执行条件,若是,则进行(4a)与(4b);若否,则进行投票决定是否取消待定交易,并将前面步骤均标记为失败(failure)。

(4a)中间链1(icc1)向参与链1(ppc1)告知该交易满足执行条件,可以执行;

(4b)中间链1(icc1)向参与链2(ppc2)告知该交易满足执行条件,可以执行。

为了改进现有的针对金融系统设计的链网结果无法并行操作、效率慢的问题,目前设计的分布式的新型链网结构模型,具有如下优点:

(1)支持并行操作:该模型由于是一个完全分布式的架构,所有的链在这个模型上都可以并行运行,提高整个金融系统的运行速度:由于不同的参与链可以与不同的中间链进行交易,而由不同的参与链处理的交易可以同时进行,无需每笔交易都通过一个总的中央机构,各个中间机构的交易量和负载量都大大减轻,并可以进行并行操作,进而提高了交易的效率,增快了交易的速度。

(2)多边净额结算:两个或多条参与链通过一条中间链进行交易时,中间链对多个交易进行相互冲抵轧差,减少了结算的处理量,也减轻了大型交易的难度,提高了交易的速度,提升了市场效率。

(3)可扩展性:任意数量的金融机构与中间机构可以随时容易的加入该链网结构,并通过tbc将即将加入的新的金融单位与已有的中间机构连接起来,这使得该链网可以扩张并适应大型网络及高交易量。

(4)支持监管:难以篡改的账本记录,记录了真实的交易过程,方便政府部门监管查账。

(5)保证了链网的基本原则,包括:(a)高性能,完全分布式结构支持每个中间机构并行运行,提高网络的交易效率;(b)数据可靠性(难以篡改性、安全性),各个节点采用拜占庭容错协议来保证各个节点的一致性和难以篡改性;(c)保护隐私,各个链内部的信息无法被外部获取;(f)可扩展性,任何金融机构可以随时容易的加入该链网,并由于并行运算,增加新的金融机构不会造成通讯阻塞;(e)完备性,每条链都可以追踪其完备性,一旦一个节点作弊,其完备性将降低,并可以被追踪和查看。

根据下文结合附图对本发明的具体实施方案的详细描述,本领域技术人员将会更加明了本发明的上述以及其它目的、优化和特征。

附图说明

后文将参照附图以示例性而非限制性的方式详细描述本发明的一些具体实施例。附图中相同的附图标记标示了相同或类似的部件或部分。本领域技术人员应该理解,这些附图未必是按比例绘制的。本发明的目标及特征考虑到如下结合附图的描述将更加明显。附图中:

图1是根据本发明优先实施例的一种跨链交易的区块链互联网模型(金丝猴模型)的整体示意图;

图2是根据本发明优先实施例的中间链(icc)与参与链(ppc)可能有两个公共节点的示意图;

图3是根据本发明优先实施例的中间链(icc)与参与链(ppc)可能有三个公共节点的示意图;

图4是根据本发明优先实施例的链接两个链的公共节点的结构示意图;

图5是根据本发明优先实施例的一个中间链(icc)通过公共节点链接三个参与链(ppc)的示意图;

图6是根据本发明优先实施例的链接三个链的公共节点的结构示意图;

图7是根据本发明优先实施例的一个中间链(icc)通过公共节点链接四个参与链(ppc)的示意图;

图8是根据本发明优先实施例的链接四个链的公共节点的结构示意图;

图9是根据本发明优先实施例的模式(i)的实时交易过程的示意图(ppc为参与链,icc为中间链);

图10是根据本发明优先实施例的模式(i)实时交易各个过程的流程图;

图11是根据本发明优先实施例的模式(i)的采用多方净额结算的交易过程的示意图(ppc为参与链,icc为中间链);

图12是根据本发明优先实施例的模式(i)的采用多方净额结算的交易过程的流程图;

图13是根据本发明优先实施例的模式(ii)的实时交易过程的示意图(ppc为参与链,icc为中间链);

图14是根据本发明优先实施例的模式(ii)实时交易各个过程的流程图;

图15是根据本发明优先实施例的模式(ii)的采用多方净额结算的交易过程的示意图(ppc为参与链,icc为中间链);

图16是根据本发明优先实施例的模式(ii)的采用多方净额结算的交易过程的流程图;

图17是根据本发明优先实施例的过程1中公共节点向中间链(icc)发送信息的示意图(ppc为参与链);

图18是根据本发明优先实施例的模式(i)的过程2(或模式(ii)的过程2b)中公共节点向发送参与链2(ppc2)发送信息的示意图(ppc为参与链,icc为中间链)。

具体实施方式

为了更好的理解本发明实施例提供的技术方案,也更好的与本发明实施例的技术方案进行对比,下面首先通过算法和伪代码结合附图对本发明进一步说明。

该种无需等待的跨链交易的区块链互联网模型(金丝猴模型)的具体实施方式主要包括以下三部分:

(1)整个网络从零开始搭建;

(2)交易:一条参与链通过一条中间链与另一条参与链进行交易;

(3)新链加入网络。

对于(1)整个网络从零开始搭建,其输入包括若干多条中间链(inter-chainblockchain,伪代码中由icc表示),若干多条参与链(participantblockchain,伪代码中由ppc表示),以及各条参与链与中间链之间是否应相连的关系,具体过程如下。

(1)对于所以将要加入该网络的链,将所有的参与链放入一条参与链集合,将所有的中间链放入一条中间链集合;

(2)对于中间链集合中的每一条中间链,以及参与链集合中的每两条参与链,利用已知的该网络的即将达成的链与链间的关系,判断:如果该中间链将要与此两条参与链连接,则该中间链与此两条参与链分别建立连接;否则,继续考虑其它链。

该过程的主要算法以伪代码的形式展示如下,记为算法0,建立网络。

以下伪代码中的“consensusprotocol”(共识协议)表示“cbftorpbftorotherbyzantineconsensusprotocolordatabaseconsistency”。

对于(2)交易:一条参与链通过一条中间链与另一条参与链进行交易,示意图可见图2。其输入包括中间链1(icc1)、参与链1(ppc1)与参与链2(ppc2)。参与链1(ppc1)负责发起交易,并由中间链1进行交易,由参与链2(ppc2)负责接收该交易。例如,参与链1(ppc1)向参与链2(ppc2)进行美元兑换黄金的交易,参与链1(ppc1)发起提供美元并换取黄金的交易,提供特定数目的金额,由中间链1执行交易过程,由参与链2(ppc2)负责接收这笔美元并提供黄金。

对于每一次交易,包含了实时交易与多边净额结算两种情况,其具体交易过程如下。

(1)参与链1(ppc1)通过对其内部的各个节点进行投票(使用cbft、或pbft、或其它的拜占庭共识协议、或数据库事物协议)来决定是否发起此交易,如果投票成功,则进入第(2)步;如果投票失败,则返回错误信息;

(2)调用算法2,参与链1(ppc1)向中间链1(icc1)发送交易请求(利用参与链1(ppc1)与中间链1(icc1)的公共节点),即为过程(1);

(3)调用算法3,由中间链1(icc1)对该交易请求进行验证(利用电子签名等),如果验证成功,则进入第(4)部;如果验证失败,则向参与链1(ppc1)返回错误信息;

(4)中间链1对其内部各个节点进行投票(使用cbft、或pbft、或其它的拜占庭共识协议、或数据库事物协议)来决定是否可以执行该交易,如果投票成功,则进入第(5)步;如果投票失败,则向参与链1(ppc1)返回投票失败的信息,并将之前所有的步骤标记为“失败”;

(5)将参与链1(ppc1)与中间链1(icc1)之间的交易状态设为“待定”(pending);

(6)如果需要实时交易,则将该交易状态标记为“待定”(tentative);如果需要多边净额结算,则将该交易状态标记为“预待定”(pre-tentative);

(7)若为模式(i),则调用算法4,中心链1(icc1)开始准备发起向参与链2(ppc2)的交易请求,即为过程(2);如果过程(2)返回中心链1(icc1)对参与链2(ppc2)的交易请求成功,则进入第(8)步,否则,将之前所有的步骤标记为“失败”,并调用算法7,由中间链1(icc1)与参与链1(ppc1)及参与链2(ppc2)进行共识,决定是否取消中间链1(icc1)与参与链1(ppc1)的待定交易,并返回错误信息;若为模式(ii),则调用算法2,中间链1(icc1)告知参与链1(ppc1)目前的交易状态,即为过程(2a),并同时进行模式(i)中的过程2;

(8)调用算法2,参与链2(ppc2)向中间链1(icc1)告知当前参与链2(ppc2)是否同意该交易,如果同意则向中间链1(icc1)发送参与链2(ppc2)证明能够进行该交易的信息,以供中间链1(icc1)验证,即为过程(3);

(9)中间链1(icc1)对该信息进行验证,如果验证通过,则进入第(10)步,否则将之前所有步骤标记为“失败”,并调用算法7,由中间链1(icc1)与参与链1(ppc1)及参与链2(ppc2)进行共识,决定是否取消中间链1(icc1)与参与链1(ppc1)的待定交易,并返回错误信息;

(10)将中间链1(icc1)与参与链2(ppc2)之间的交易状态标记为待定(pending),并调用算法2,由中间链1(icc1)向参与链1(ppc1)即参与链2(ppc2)告知该交易满足交易条件,可以执行,即为过程(4a)和过程(4b);

(11)若在一定时间(time1)内,参与链1(ppc1)未能收到交易可以执行的通知,则中间链(icc1)与参与链1(ppc1)及参与链2(ppc2)进行共识,决定是否取消该交易,如果是,则进入第(12)步,否则进入第(13)步;

(12)将之前所有的步骤标记为“失败”,并取消中间链(icc1)与参与链1(ppc1)的待定交易,及取消中间链(icc1)与参与链2(ppc2)的待定交易,随后中间链1(icc1)再次与参与链1(ppc1)及参与链2(ppc2)进行共识,并返回失败信息;

(13)如果需要实时交易,则调用算法5来执行实时交易;如果需要多边净额结算,则将该交易状态标记为“待定”(tentative),并调用算法6来进行多边净额结算(在算法6中,需首先等待至该结算周期结束)。

对于算法1中所调用的算法2,从一条链传递信息至另一条链,其输入包括一条发送信息的链与一条接受信息的链。其具体过程如下。

(1)将此两条链的公共节点放入一个集合中;

(2)对于该集合中的每一个节点,该节点向接受信息的链发送所需要信息。

该过程的主要算法以伪代码的形式展示如下,记为算法2,从一条链传递信息至另一条链。

对于算法1中所调用的算法3,用数字签名验证交易信息,其输入包括请求者、验证者与请求的交易。其具体过程如下。

(1)验证者使用数字签名对请求者进行验证,如果验证成功,则进入第(2)步;如果验证失败,则返回向请求者返回验证失败的信息;

(2)验证者检查请求者是否具有相关的资源以进行其请求的交易,如果有,则进入第(3)步;否则,向请求者返回没有相关资源的失败信息;

(3)验证者检查请求者是否有足够量的资源或余额已完成该请求的交易,如果有,则返回验证成功的信息;否则,向请求者返回资源不足的失败信息。

该过程的主要算法以伪代码的形式展示如下,记为算法3,用数字签名验证交易信息。

对于算法1中所调用的算法4:中心链1(icc1)开始准备向参与链2(ppc2)发起交易请求,其输入包括中间链1(icc1)和参与链2(ppc2)。其具体过程如下。

(1)中间链1对其各个节点进行投票(使用cbft、或pbft、或其它的拜占庭共识协议、或数据库事物协议),来决定是否执行其与参与链2(ppc2)的交易,如果投票成功,则进入第(2)步;如果投票失败,则返回失败信息;

(2)调用算法2,中间链1(icc1)向参与链2(ppc2)发送交易请求,即为过程(2b);

(3)调用算法3,由参与链2(ppc2)对该交易请求进行验证(利用电子签名等),如果验证成功,则进入第(4)步;如果验证失败,则返回错误信息,并将之前所有的步骤标记为“失败”;

(4)参与链2(ppc2)对其内部各个节点进行投票(使用cbft、或pbft、或其它的拜占庭共识协议、或数据库事物协议)来决定是否接受该交易,如果投票成功,则返回成功信息;如果投票失败,则返回投票失败的信息,并将之前所有的步骤标记为“失败”。

该过程的主要算法以伪代码的形式展示如下,记为算法4,中心链1开始向参与链2发起的交易请求。

对于算法1中所调用的算法5,中间链执行实时交易,当参与链1(ppc1)与参与链2(ppc2)收到中间链发送的确认该交易可以发生的信息后,即完成过程(4a)与(4b)后,中间链与参与链1(ppc1)以及中间链与参与链2(ppc2)的被标记为待定(pending)的交易在该过程中立即执行,达到完成交易(commit)。其具体过程如下。

(1)执行中间链与参与链1(ppc1)以及中间链与参与链2(ppc2)的被标记为待定(pending)的交易,直到该参与链1(ppc1)对参与链2(ppc2)的交易成功完成。

(2)调用算法2,中间链告知参与链1(ppc1)与参与链2(ppc2)交易完成。

该过程的主要算法以伪代码的形式展示如下,记为算法5,中间链执行实时交易。

对于算法1中所调用的算法6,中间链进行多边净额结算,当中间链完成一定时间量(一个结算周期:一小时、一天、或一周等)的交易记账(各条参与链在该时间量内的的交易记于该中间链中),中间链进行多边净额结算。其具体过程如下。

当一个结算周期结束,则中间链进行下面的操作;

(1)停止初始化或开始任何新的交易,并完成所有正在进行的交易或待定(tentative)交易;

(2)中间链找出所有在前一个结算周期中与该中间链进行试图交易的参与链,并将这些参与链放入一个集合中;

(3)中间链找出所有在前一个结算周期中的交易记录;

(4)对于每一条参与链,中间链对其在上一个结算周期中的所有交易的应付与应收资金或资源进行冲抵轧差,并根据轧差所得的净值向该参与链进行交收。

(5)核实该多方净值结算结果是否正确:判断在进行冲抵轧差之后,该结算周期内通过该中间链进行交易的所有的参与链的交易进出的总和是否为0,如为0,则认为正确,如果不为0,则错误;

(6)如果正确,则中间链根据结算结果向各条参与链执行最终交易;若不正确,则重新进行多方净值结算或进行人工核查。

该过程的主要算法以伪代码的形式展示如下,记为算法6,中间链进行多边净额结算。

对于算法1中所调用的算法7,取消中间链(icc)与参与链1(ppc1)之间的待定交易,每次进行取消操作之前都需要由中间链与所有参与到本次交易的参与链进行共识,来决定是否取消该待定交易。如果取消了该待定交易,中间链需要再一次进行共识来告知所有参与到本次交易的参与链。其具体过程如下。

(1)中间链(icc)与参与链1(ppc1)及参与链2(ppc2)进行共识,以决定是否取消参与链1(ppc1)与中间链(icc)之间的待定(pending)交易;

(2)如果是,则将该待定交易取消,并且中间链(icc)与参与链1(ppc1)及参与链2(ppc2)进行共识,以告知该待定交易已被取消。

该过程的主要算法以伪代码的形式展示如下,记为算法7,取消中间链与参与链1(ppc1)之间的待定交易。

对于(3)新链加入网络,分为两种情况:(a)新的参与链加入网络;(b)新的中间链加入网络。下面对两种情况分别进行讨论。

对于情况(a),新的参与链加入网络,其输入为将要加入该网络的新的参与链,以及该网络(包括该网络中的其它参与链与中间链)。当一个新的参与链将要加入网络,该参与链自己可能产生一个或多条中间链,并且这些新产生的中间链与在该网络中已经存在的其它参与链项链,同时,该参与链也可能与其它在该网络中已经存在的中间链相连;该参与链也可能并不自己产生中间链,那么该参与链必须链接一个或多个已经存在的中间链。其具体的过程如下。

(1)在该参与链需要自己产生新的中间链的情况下,执行以下过程,直到该参与链不再需要自己产生新的中间链为止:

(a)该参与链产生一个新的中间链;

(b)通过调用算法10,此中间链与该参与链相连;

(c)找出所有其他的需要与此中间链相连的已经存在的参加链(每一条中间链需要连接两个及以上参与链),并放入一个其它参与链集合中;

(d)对于所得的其它参与链集合中的每一条参与链,通过调用算法10,将这条参与链与此中间链相连;

随后,执行:

(2)判断该参与链是否需要与该网络中已经存在的中间链相连,如果是,则进入第(3)步;

(3)找出所有需要该参与链需要与之进行交易的其他参与链,并找出所有与这些参与链相连的中间链;

(4)在保证所有在上一步中被找出的参与链都被包括的情况下,从上一部找出的所有中间链中找出一条中间链子集,这是由于每一条参与链可以与多条中间链相连,所以可以找出一条中间链自己来保证所有的需要的参与链都与这些中间链相连;

(5)对于中间链子集中的每一条中间链,通过调用算法10来将该参与链与这条中间链相连。

该过程的主要算法以伪代码的形式展示如下,记为算法8,新的参与链加入网络。

对于情况(b),新的中间链加入网络,其输入为将要加入该网络的新的中间链,以及该网络(包括该网络中的其它参与链与中间链)。其具体的过程如下。

(1)找到需要与该即将加入的新中间链相连的所有的网络中已经存在的参与链;

(2)如果没有或只有一条参与链将要与该中间链相连,则向该中间链返回错误信息,这是因为每条中间链需要与两条及以上条参与链相连;如果有两条或以上条参与链将要与该中间链相连,则进入第(3)步;

(3)将这些将要与该中间链相连的参与链放入一个集合中,通过调用算法10,将该集合中的每一条参与链与该中间链相连。

该过程的主要算法以伪代码的形式展示如下,记为算法9,新的中间链加入网络。

对于算法8与算法9中所调用的算法10:一条参与链与一条中间链相连接,其输入包括一条参与链和一条中间链。其具体过程如下。

(1)该参与链通过对其内部的各个节点进行投票(使用cbft、或pbft、或其它的拜占庭共识协议、或数据库事物协议)来决定是否与该中间链相连,如果投票成功,则进入第(2)步;如果投票失败,则返回错误信息;

(2)该参与链向该中间链发送验证信息(如数字签名等);

(3)该中间链验证收到的该验证信息(利用数字签名等),如果验证成功,则进入第(4)步,否则,返回错误信息;

(4)该中间链通过对其内部的各个节点进行投票(使用cbft、或pbft、或其它的拜占庭共识协议、或数据库事物协议)来决定是否与该参与链相连,如果同意,则进入第(5)步,否则,返回错误信息;

(5)决定所需要的公共节点的数量,并从该参与链与该中间链的所有节点中选出这些数量的公共节点;

(6)在选出的这些节点中,将属于中间链的放入一个中间链公共节点集合中,将属于参与链的放入另一个参与链公共节点集合中;

(7)对于中间链公共节点集合中的每一个节点,将该节点与参与链的每一个节点相连;对于参与链公共节点集合中的每一个节点,将该节点与中间链的每一个节点相连。

该过程的主要算法以伪代码的形式展示如下,记为算法10,一条参与链与一条中间链相连接。

虽然本发明已经参考特定的说明性实施例进行了描述,但是不会受到这些实施例的限定而仅仅受到附加权利要求的限定。本领域技术人员应当理解可以在不偏离本发明的保护范围和精神的情况下对本发明的实施例能够进行改动和修改。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1