CN111325628A - 一种基于区块链的多方支付通道交易方法 - Google Patents
一种基于区块链的多方支付通道交易方法 Download PDFInfo
- Publication number
- CN111325628A CN111325628A CN202010217087.3A CN202010217087A CN111325628A CN 111325628 A CN111325628 A CN 111325628A CN 202010217087 A CN202010217087 A CN 202010217087A CN 111325628 A CN111325628 A CN 111325628A
- Authority
- CN
- China
- Prior art keywords
- channel
- party
- transaction
- payment
- party payment
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/08—Payment architectures
- G06Q20/085—Payment architectures involving remote charge determination or related payment systems
Landscapes
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- Physics & Mathematics (AREA)
- Strategic Management (AREA)
- Theoretical Computer Science (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Technology Law (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本发明公开了一种基于区块链的多方支付通道交易方法,在以太坊上部署智能合约,根据双方支付通道的余额和平衡状态选择通道并构建多方支付通道,将多方交易转换成多个直接连接的双方支付通道上的交易,通过通道状态更新的方式完成多方交易。这种方法在区块链的链下支付网络中进行,支持原子性的多方交易,不仅能降低交易延迟、提升交易吞吐量,还能支持任意多的用户加入到多方支付通道中,可以支持多人在线应用,大大扩展了支付通道的应用场景。
Description
技术领域
本发明属于区块链技术领域和支付通道技术领域,尤其涉及基于区块链的多方支付通道交易方法。
背景技术
自2008年日本学者中本聪提出比特币的概念以来,区块链技术在加密货币等领域迅速发展。区块链是一种分布式账本的技术,网络中每个节点都记录一份账本,账本中存储着前后相连的区块,每个区块包含了一批交易的信息。区块链网络具有去中心化、开放性、不可篡改等优点,但是其缺点在于吞吐量极低、交易延迟时间长。以比特币和以太坊为代表的区块链网络中,每个节点都需要保存所有交易信息,一笔交易需要等待“挖矿”节点完成一次“挖矿”后才能被打包进一个区块,并且所有节点之间需要达成共识,以上原因导致每笔交易的确认时间较长,且交易的吞吐量极低。比特币网络的吞吐量大约在7TPS(TransactionPer Second),以太坊的吞吐量大约在10-20TPS。因此,如果要将区块链技术应用于大规模商业系统中,需要大幅度提升其吞吐量、降低交易延迟时间。
为了提升区块链网络的吞吐量、降低交易延迟,近几年国内外学者进行了一系列的研究,包括侧链(Sidechain)、支付通道网络(PaymentChannelNetwork)、分片(Sharding)等多个方向。其中,支付通道网络被认为是最具有前景的链下交易技术。支付通道网络在区块链网络之上构建了一个二层网络,通道双方分别抵押一定额度的加密货币到链下,将区块链上的交易转移至链下,用户在链下交易,省去了区块打包、交易验证、节点共识等耗时的流程,能极大的提升支付网络的吞吐量,降低交易延迟。但是目前关于区块链支付通道网络的研究还处于初步阶段,现有的技术还存在一定的缺陷,比如有些支付通道仅支持双方的交易,无法在其基础上构建多方在线应用(如多人在线游戏、拍卖系统等),又如很多支付通道网络采用星型网络架构来创建多方支付通道,导致网络中心化程度高,需要第三方提供交易服务,且通道余额容易被耗尽,导致通道不平衡,因此能支撑的交易量有限。
因此,针对现有的区块链支付通道中存在的问题,我们设计一种基于区块链的多方支付通道,选择网络中通道余额充足且平衡状态较好的通道来建立多方支付通道,支持多用户之间进行多方交易,从而支持多人在线应用的构建,在提升交易吞吐量、降低交易延迟的同时,将支付通道应用到多种多样的场景中。
发明内容
本发明针对现有技术的不足,提供一种基于区块链的多方支付通道交易方法。
本发明的技术方案为一种基于区块链的多方支付通道交易方法,其特征在于,包含以下步骤:
步骤1,基于以太坊部署智能合约,定义智能合约,具体包括:
定义n个以太坊用户为P={P1,P2,…,Pn},任意两个用户Pi(1≤i≤n)和Pj(1≤j≤n)创建双方支付通道时,调用智能合约提供的双方支付通道创建接口,分别抵押相同额度的以太币到智能合约上,生成一个Pi和Pj之间的双方支付通道实例,该实例包含通道标识符、通道中两个用户的以太坊账户地址、通道中两个用户的余额、通道版本号、通道是否加入多方等信息;
智能合约能够实时更新双方支付通道的状态,调用智能合约提供的双方支付通道更新接口的用户需要提供的信息包括:通道标识符、通道中两个用户新的余额分布、新的通道版本号以及两个用户的签名,智能合约验证通道标识符、版本号、用户的签名是否正确,若正确则根据用户提供的信息进行更新,否则不更新通道状态;
智能合约能够在任意定义时间关闭双方支付通道,调用智能合约提供的双方支付通道关闭接口的用户需要提供的信息包括:通道标识符、版本号和两个用户的签名,智能合约验证通道标识符、版本号、用户的签名是否正确,若正确则执行关闭通道的程序,包括:关闭该双方支付通道、删除该双方支付通道的实例、根据通道的余额分布将余额退回到两个用户的以太坊账户上,若验证失败则不关闭该通道;
智能合约还包括多方支付通道创建接口、多方支付通道更新接口、多方支付通道关闭接口,具体包括:多方支付通道创建接口接收用户请求,基于通道状态构建多方支付通道;方支付通道更新接口根据已构建的多方支付通道和多方交易内容,完成多方支付通道的状态更新;多方支付通道关闭接口接收用户关闭多方通道的请求,删除多方支付通道实例;
智能合约能够被任意的以太坊用户调用,任意用户可以与其他用户创建多个双方支付通道和多方支付通道,所有已经创建的支付通道,构成了一个支付通道网络;
步骤2,基于通道状态构建多方支付通道;根据支付通道网络中双方支付通道的通道状态为每个通道计算权重,通道状态包括通道中的用户余额、用户余额总量所占的比例、通道的余额平衡程度,根据通道的权重使用最小生成树算法计算出网络中的最小生成树,该生成树中的通道被选择用于建立多方支付通道;
步骤3,基于多方支付通道进行交易;基于智能合约和多方支付通道开发任意多人在线应用,当应用状态更新时(如一轮游戏结束),产生一笔新的多方交易,需要进行结算;根据多方交易内容,将交易中的每个双方交易转化成多个直接连接的双方支付通道上的交易,通过更新多方支付通道的状态的方式完成多方交易;若多方交易过程中某次状态更新失败,则回滚本轮已更新的通道状态,保证多方交易的原子性;
步骤4,关闭多方支付通道;当通道超过过期时间或者应用程序生命周期结束时,关闭多方支付通道;按照最后一次交易后的余额分布,将各节点在通道中剩余的余额返还给各节点,并删除智能合约中的多方支付通道实例。
在上述一种基于区块链的多方支付通道交易方法,步骤2包括三个阶段:
申请创建通道阶段;定义节点为P={P1,P2,…,Pn}中的一个以太坊用户,任何一个节点都有权申请与其他任意个节点建立多方支付通道;发起申请的节点需要调用智能合约的多方支付通道创建接口,向智能合约发送请求信息,该请求信息包括多方支付通道的所有参与节点、通道过期时间、发起申请的节点的签名;智能合约接收到申请后,验证申请者的签名成功后,向其他参与多方支付通道的节点发送创建多方支付通道的请求信息,其他节点将返回该请求信息并附上自身的签名回复给智能合约,合约收到所有节点的回复并验证签名后开始创建多方支付通道,若验证失败则不建立多方支付通道;
通道选择阶段;计算每条通道的权重,采用最小生成树算法计算出当前网络的最小生成树,该生成树中的所有边即所选通道;通道权重的计算方式为:
Wij=k1*(1-Distij)+k2*Balij (3)
其中,i、j、k(1≤i,j,k≤n)表示节点标识符,每个节点标识符代表一个支付通道网络中的节点,节点即P={P1,P2,…,Pn}中的一个以太坊用户,Bij表示通道从i到j方向上的余额,表示节点i、j共同的邻居节点,邻居节点即与i和j都建立了双方支付通道的节点,Distij是一种通道状态,表示通道ij的余额总量所占的比例,根据公式(1)计算Distij,Balij是一种通道状态,表示通道ij的余额平衡程度,根据公式(2)计算Balij;k1和k2表示两种通道状态所占的比例,k1≥0,k2≥0且k1+k2=1,默认值设置为k1=k2=0.5;Wij表示通道ij的权重,根据公式(3)计算Wij;
通道建立阶段;根据通道选择阶段选择的通道,智能合约在已经选择的通道内计算出任意两个节点之间的路径,并生成一个新的多方支付通道实例,实例包含了如下信息:多方支付通道标识符、多方支付通道中所有节点的标识符、多方支付通道中所有双方支付通道的标识符、多方支付通道中每个双方支付通道的余额分布、任意节点之间的路径、多方交易序列号、多方支付通道过期时间。
在上述一种基于区块链的多方支付通道交易方法,所述步骤3的具体过程如下:
交易产生阶段;基于步骤2构建的多方支付通道,应用软件能够在多方支付通道实例中进行交易;每当基于多方支付通道的应用完成一轮操作过后,产生一笔多方交易,多方交易的属性包括:多方交易标识符、多方支付通道标识符、双方交易集合,双方交易集合中包含了多个双方交易,其中每个交易的属性包括:双方交易标识符、交易付款方、交易收款方、交易金额;
交易执行阶段;用户通过调用智能合约的多方支付通道更新接口进行交易,智能合约通过更新通道状态的方式来实现多方交易;对于交易产生阶段中生成的多方交易,其中包含了一个双方交易集合;定义该集合中的每一笔交易包括:
支付方式一:若付款方和收款方有直接连接的支付通道,则直接支付;
支付方式二:若付款方和收款方无直接连接的支付通道,则需要通过通道中间节点的通道进行转发;
定义将支付方式一和支付方式二的双方交易转化成多个直接连接的双方支付通道上的交易,具体执行如下:定义双方交易集合中的k笔交易Ti(pi1,pin,tokeni)={pi1,pin,tokeni,(pi1,pi2…,pin)},其中i=[1,2…,k],pi1表示第i笔交易的付款方标识符,pin表示第i笔交易的收款方标识符,tokeni表示第i笔交易的付款金额(即以太币数量),(pi1,pi2…,pin)表示第i笔交易付款的路径上的n个节点的标识符,
步骤1、根据多方实例中任意节点之间的路径,将Ti分解成n-1个直接连接的支付通道上的交易集合
步骤2,将转换后的k笔交易累加,转换成每个直连通道上的交易,即若一个直连通道在多个双方交易中使用,则累加多个双方交易中的交易金额,在一次状态更新中完成多个交易;对于集合T′中的每笔交易,由付款方向收款方发出交易请求信息并附上签名,该请求信息内容包括了付款方标识符、收款方标识符、更新后的余额分配、当前的多方交易序列号,收款方验证成功后将该消息返回给付款方并附上自身签名,状态更新完成,付款方向智能合约发送状态更新完成的消息并附上付款方和收款方的签名;智能合约验证所有交易成功后,完成一次多方交易,多方交易序列号加一;如果交易过程中某次状态更新失败,如付款方余额不足,或者签名验证错误,则本轮多方交易失败,将通道状态回滚至上一轮的最新状态。
本发明的优点在于:本发明是第一个通过智能合约建立多方支付通道的交易方法,该方法选择通道余额充足且通道平衡状态较好的双方支付通道,在多个区块链节点之间建立多对多的多方支付通道,并将多方交易转换成多个直接连接的双方支付通道上的交易,通过状态更新的方法完成交易。支持任意多个节点的上层应用,使得支付通道的应用场景更多样化。并且所有交易在链下支付网络中进行,保证交易的吞吐量足够、交易延迟小。
附图说明
图1是本发明实施的系统框架图。
图2是本发明实施的多方交易方法的流程图。
图3是本发明实施的多方交易实例。
具体实施方式
本发明主要基于区块链技术,在区块链链下支付网络上构建多方支付通道。本发明构建的多方支付通道具有较大的余额和较好的平衡性,并且支持多人在线应用,大大扩展了区块链支付网络的应用场景。下面将对本发明实施例中的技术方案进行清完整的描述
步骤1,基于以太坊部署智能合约。
在以太坊上部署定义智能合约,具体包括:
定义n个以太坊用户为P={P1,P2,…,Pn},任意两个用户Pi(1≤i≤n)和Pj(1≤j≤n)创建双方支付通道时,调用智能合约提供的双方支付通道创建接口,分别抵押相同额度的以太币到智能合约上,生成一个Pi和Pj之间的双方支付通道实例,该实例包含通道标识符、通道中两个用户的以太坊账户地址、通道中两个用户的余额、通道版本号、通道是否加入多方等信息。
智能合约能够实时更新双方支付通道的状态,调用智能合约提供的双方支付通道更新接口的用户需要提供的信息包括:通道标识符、通道中两个用户新的余额分布、新的通道版本号以及两个用户的签名,智能合约验证通道标识符、版本号、用户的签名是否正确,若正确则根据用户提供的信息进行更新,否则不更新通道状态。
智能合约能够在任意定义时间关闭双方支付通道,调用智能合约提供的双方支付通道关闭接口的用户需要提供的信息包括:通道标识符、版本号和两个用户的签名,智能合约验证通道标识符、版本号、用户的签名是否正确,若正确则执行关闭通道的程序,包括:关闭该双方支付通道、删除该双方支付通道的实例、根据通道的余额分布将余额退回到两个用户的以太坊账户上,若验证失败则不关闭该通道。
智能合约还包括多方支付通道创建接口、多方支付通道更新接口、多方支付通道关闭接口,具体包括:多方支付通道创建接口接收用户请求,基于通道状态构建多方支付通道;方支付通道更新接口根据已构建的多方支付通道和多方交易内容,完成多方支付通道的状态更新;多方支付通道关闭接口接收用户关闭多方通道的请求,删除多方支付通道实例。
智能合约能够被任意的以太坊用户调用,任意用户可以与其他用户创建多个双方支付通道和多方支付通道,所有已经创建的支付通道,构成了一个支付通道网络。
本实施例中,共有A、B、C、D、E五个以太坊用户参与一个多人在线的剪刀石头布游戏,每轮游戏结束时,失败方向胜利方转账一个以太币。该步骤首先将该游戏的智能合约部署到以太坊中,然后进入步骤2。
步骤2,基于通道状态构建多方支付通道。
本发明中任意节点可向智能合约申请建立多方支付通道,经过申请创建通道、通道选择、通道建立完成多方支付通道的建立,并通知所有参与节点。本方法的总体架构如图1所示,图中实线双箭头表示被选中的通道,虚线双箭头表示未被选中的通道,由实线双箭头组成的网络即多方支付通道。
本实施例中,由节点A向智能合约发出建立多方支付通道的请求信息,该请求可记为QA={"create channel A、B、C、D、E for 10hours",sA},其中的字符串表示请求内容,sA表示用户A对该字符串内容的签名。智能合约收到请求并验证A的签名后,将该请求发送给节点B、C、D、E,B、C、D、E返回原消息内容并附上自身的签名表示同意创建该多方支付通道,比如B返回的消息为RB={"create channel A、B、C、D、E for 10hours",sB}。收到所有节点的回复后,智能合约按照上述计算通道权重和最小生成树的方法选择通道,生成多方支付通道实例,若在指定时间内没有收到所有节点回复和同意建立多方支付通道的签名,则通道建立失败。该实例可记为MPC={id,users,channels,balances,paths,seq,expire},其中MPC表示多方支付通道实例,id表示通道的唯一标识符,users表示多方支付通道的所有用户节点标识符,channels表示该多方支付通道包含的所有双方支付通道的标识符,balances表示该多方支付通道包含的所有双方支付通道的余额分布,paths表示所有节点间的路径,seq表示多方交易的序列号,从0开始每完成一次多方交易就加一,expire表示过期时间,在本实施例中为10小时。建立完成后智能合约通知A、B、C、D、E五个节点成功建立多方支付通道的消息,该消息记为
Succsc={"create channel A、B、C、D、E for 10hours",sA,sB,sC,sD,sE,MPC},其中Succsc表示智能合约返回的成功建立的消息,sA、sB、sC、sD、sE为各节点的签名,MPC是生成的多方支付通道实例。
步骤3,基于多方支付通道进行交易。
本发明的多方支付通道基于智能合约,用来支持用智能合约编写的多方在线应用。当应用状态更新时(如一轮游戏结束),产生一笔新的多方交易,需要进行结算。根据多方交易内容,将交易中的每个双方交易转化成多个直接连接的双方支付通道上的交易,通过更新多方支付通道的状态的方式完成多方交易。若多方交易过程中某次状态更新失败,则回滚本轮已更新的通道状态,保证多方交易的原子性。
本实施例中,A、B、C、D、E五个用户节点参与剪刀石头布游戏,其初始状态如图3的(a)所示,每个通道双方都有5个以太币的余额。经过一轮游戏后,用户D获胜,其他四个用户每人向D转账一个以太币,因此生成一笔五个用户间的多方交易,可以记为T={(A,D,1),(B,D,1),(C,D,1),(E,D,1)}。由于AD之间无直接连接的通道,因此将交易(A,D,1)分解成两笔交易:T(A,D,1)={T(A,B,1),T(B,D,1)},同理,T(B,D,1)={T(B,D,1)},T(C,D,1)={T(C,B,1),T(B,D,1)},T(E,D,1)={T(E,C,1),T(C,B,1),T(B,D,1)},分解完成后将多笔交易累加,得到最终的交易为T′={(A,B,1),(B,D,4),(C,B,2),(E,C,1)}。对于T′中的每笔交易,由付款方向收款方发起交易请求,如交易(B,D,4)中B向D发送更新通道状态的请求支付信息,该信息可记为PB={"update channel BDto[B:1,D:9]",seq=0,sB},其中[B:1,D:9]表示将原通道的余额调整为B有1个以太币,D有9个以太币,相当于B向D转账4个以太币,seq=0表示当前的多方交易序列号为0,sB表示B的签名,D收到请求信息后验证B的签名,若验证成功则返回该请求给B并附上D的签名,B验证D的签名成功后向智能合约发送交易成功的消息并附上B和D的签名,完成一次通道余额更新,该消息可记为SPB={"update channelBDto[B:1,D:9]",seq=0,sB,sD}。交易完成后的通道状态如图3的(b)所示,多方交易序列号加一,实例MPC中seq=1。一轮游戏结算完成后,开启第二轮游戏,第二轮游戏中用户C获胜,因此其他四个用户每人向C转账一个以太币,多方交易序列号加一,实例MPC中seq=2,交易后的通道状态如图3中的(c)所示。按照图2中的步骤,若要开启下一轮游戏,则重复上述步骤。
步骤4,关闭多方支付通道。
当通道超过过期时间或者应用生命周期结束时,关闭多方支付通道。按照最后一次交易后的余额分布,分配各节点和通道的余额,删除智能合约中创建的多方支付通道实例。
本实施例中,A、B、C、D、E五个用户节点的游戏结束,由节点A向智能合约发出关闭多方支付通道的请求信息,该信息记为QA={"close channel id",sA},其中id表示多方支付通道实例中的通道唯一标识符,智能合约验证A的签名后向其他四个用户节点发送该请求,收到所有节点的回复后,按照最新的通道余额状态分配各节点的余额,删除上述步骤2中创建的MPC实例。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何属于本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
Claims (3)
1.一种基于区块链的多方支付通道交易方法,其特征在于,包含以下步骤:
步骤1,基于以太坊部署智能合约,定义智能合约,具体包括:
定义n个以太坊用户为P={P1,P2,…,Pn},任意两个用户Pi(1≤i≤n)和Pj(1≤j≤n)创建双方支付通道时,调用智能合约提供的双方支付通道创建接口,分别抵押相同额度的以太币到智能合约上,生成一个Pi和Pj之间的双方支付通道实例,该实例包含通道标识符、通道中两个用户的以太坊账户地址、通道中两个用户的余额、通道版本号、通道是否加入多方等信息;
智能合约能够实时更新双方支付通道的状态,调用智能合约提供的双方支付通道更新接口的用户需要提供的信息包括:通道标识符、通道中两个用户新的余额分布、新的通道版本号以及两个用户的签名,智能合约验证通道标识符、版本号、用户的签名是否正确,若正确则根据用户提供的信息进行更新,否则不更新通道状态;
智能合约能够在任意定义时间关闭双方支付通道,调用智能合约提供的双方支付通道关闭接口的用户需要提供的信息包括:通道标识符、版本号和两个用户的签名,智能合约验证通道标识符、版本号、用户的签名是否正确,若正确则执行关闭通道的程序,包括:关闭该双方支付通道、删除该双方支付通道的实例、根据通道的余额分布将余额退回到两个用户的以太坊账户上,若验证失败则不关闭该通道;
智能合约还包括多方支付通道创建接口、多方支付通道更新接口、多方支付通道关闭接口,具体包括:多方支付通道创建接口接收用户请求,基于通道状态构建多方支付通道;方支付通道更新接口根据已构建的多方支付通道和多方交易内容,完成多方支付通道的状态更新;多方支付通道关闭接口接收用户关闭多方通道的请求,删除多方支付通道实例;
智能合约能够被任意的以太坊用户调用,任意用户可以与其他用户创建多个双方支付通道和多方支付通道,所有已经创建的支付通道,构成了一个支付通道网络;
步骤2,基于通道状态构建多方支付通道;根据支付通道网络中双方支付通道的通道状态为每个通道计算权重,通道状态包括通道中的用户余额、用户余额总量所占的比例、通道的余额平衡程度,根据通道的权重使用最小生成树算法计算出网络中的最小生成树,该生成树中的通道被选择用于建立多方支付通道;
步骤3,基于多方支付通道进行交易;基于智能合约和多方支付通道开发任意多人在线应用,当应用状态更新时(如一轮游戏结束),产生一笔新的多方交易,需要进行结算;根据多方交易内容,将交易中的每个双方交易转化成多个直接连接的双方支付通道上的交易,通过更新多方支付通道的状态的方式完成多方交易;若多方交易过程中某次状态更新失败,则回滚本轮已更新的通道状态,保证多方交易的原子性;
步骤4,关闭多方支付通道;当通道超过过期时间或者应用程序生命周期结束时,关闭多方支付通道;按照最后一次交易后的余额分布,将各节点在通道中剩余的余额返还给各节点,并删除智能合约中的多方支付通道实例。
2.根据权利要求书1所述一种基于区块链的多方支付通道交易方法,其特征在于,步骤2包括三个阶段:
申请创建通道阶段;定义节点为P={P1,P2,…,Pn}中的一个以太坊用户,任何一个节点都有权申请与其他任意个节点建立多方支付通道;发起申请的节点需要调用智能合约的多方支付通道创建接口,向智能合约发送请求信息,该请求信息包括多方支付通道的所有参与节点、通道过期时间、发起申请的节点的签名;智能合约接收到申请后,验证申请者的签名成功后,向其他参与多方支付通道的节点发送创建多方支付通道的请求信息,其他节点将返回该请求信息并附上自身的签名回复给智能合约,合约收到所有节点的回复并验证签名后开始创建多方支付通道,若验证失败则不建立多方支付通道;
通道选择阶段;计算每条通道的权重,采用最小生成树算法计算出当前网络的最小生成树,该生成树中的所有边即所选通道;通道权重的计算方式为:
Wij=k1*(1-Distij)+k2*Balij (3)
其中,i、j、k(1≤i,j,k≤n)表示节点标识符,每个节点标识符代表一个支付通道网络中的节点,节点即P={P1,P2,…,Pn}中的一个以太坊用户,Bij表示通道从i到j方向上的余额,表示节点i、j共同的邻居节点,邻居节点即与i和j都建立了双方支付通道的节点,Distij是一种通道状态,表示通道ij的余额总量所占的比例,根据公式(1)计算Distij,Balij是一种通道状态,表示通道ij的余额平衡程度,根据公式(2)计算Balij;k1和k2表示两种通道状态所占的比例,k1≥0,k2≥0且k1+k2=1,默认值设置为k1=k2=0.5;Wij表示通道ij的权重,根据公式(3)计算Wij;
通道建立阶段;根据通道选择阶段选择的通道,智能合约在已经选择的通道内计算出任意两个节点之间的路径,并生成一个新的多方支付通道实例,实例包含了如下信息:多方支付通道标识符、多方支付通道中所有节点的标识符、多方支付通道中所有双方支付通道的标识符、多方支付通道中每个双方支付通道的余额分布、任意节点之间的路径、多方交易序列号、多方支付通道过期时间。
3.根据权利要求书2所述一种基于区块链的多方支付通道交易方法,其特征在于,所述步骤3的具体过程如下:
交易产生阶段;基于步骤2构建的多方支付通道,应用软件能够在多方支付通道实例中进行交易;每当基于多方支付通道的应用完成一轮操作过后,产生一笔多方交易,多方交易的属性包括:多方交易标识符、多方支付通道标识符、双方交易集合,双方交易集合中包含了多个双方交易,其中每个交易的属性包括:双方交易标识符、交易付款方、交易收款方、交易金额;
交易执行阶段;用户通过调用智能合约的多方支付通道更新接口进行交易,智能合约通过更新通道状态的方式来实现多方交易;对于交易产生阶段中生成的多方交易,其中包含了一个双方交易集合;定义该集合中的每一笔交易包括:
支付方式一:若付款方和收款方有直接连接的支付通道,则直接支付;
支付方式二:若付款方和收款方无直接连接的支付通道,则需要通过通道中间节点的通道进行转发;
定义将支付方式一和支付方式二的双方交易转化成多个直接连接的双方支付通道上的交易,具体执行如下:定义双方交易集合中的k笔交易Ti(pi1,pin,tokeni)={pi1,pin,tokeni,(pi1,pi2…,pin)},其中i=[1,2…,k],pi1表示第i笔交易的付款方标识符,pin表示第i笔交易的收款方标识符,tokeni表示第i笔交易的付款金额(即以太币数量),(pi1,pi2…,pin)表示第i笔交易付款的路径上的n个节点的标识符,
步骤1、根据多方实例中任意节点之间的路径,将Ti分解成n-1个直接连接的支付通道上的交易集合
步骤2,将转换后的k笔交易累加,转换成每个直连通道上的交易,即若一个直连通道在多个双方交易中使用,则累加多个双方交易中的交易金额,在一次状态更新中完成多个交易;对于集合T′中的每笔交易,由付款方向收款方发出交易请求信息并附上签名,该请求信息内容包括了付款方标识符、收款方标识符、更新后的余额分配、当前的多方交易序列号,收款方验证成功后将该消息返回给付款方并附上自身签名,状态更新完成,付款方向智能合约发送状态更新完成的消息并附上付款方和收款方的签名;智能合约验证所有交易成功后,完成一次多方交易,多方交易序列号加一;如果交易过程中某次状态更新失败,如付款方余额不足,或者签名验证错误,则本轮多方交易失败,将通道状态回滚至上一轮的最新状态。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010217087.3A CN111325628B (zh) | 2020-03-25 | 2020-03-25 | 一种基于区块链的多方支付通道交易方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010217087.3A CN111325628B (zh) | 2020-03-25 | 2020-03-25 | 一种基于区块链的多方支付通道交易方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111325628A true CN111325628A (zh) | 2020-06-23 |
CN111325628B CN111325628B (zh) | 2022-05-13 |
Family
ID=71173614
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010217087.3A Active CN111325628B (zh) | 2020-03-25 | 2020-03-25 | 一种基于区块链的多方支付通道交易方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111325628B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112488682A (zh) * | 2020-12-08 | 2021-03-12 | 深圳前海微众银行股份有限公司 | 一种区块链的三方转账方法及装置 |
WO2022067894A1 (zh) * | 2020-10-01 | 2022-04-07 | 香港数拟经济技术有限公司 | 基于区块链去中心化点对点支付通道交易方法及系统 |
CN114827002A (zh) * | 2022-03-17 | 2022-07-29 | 西安电子科技大学 | 多域网络安全路径计算方法、系统、设备、介质及终端 |
WO2024110166A1 (en) * | 2022-11-23 | 2024-05-30 | Nchain Licensing Ag | Payment channel aggregator |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108694573A (zh) * | 2017-04-11 | 2018-10-23 | 杭州呯嘭智能技术有限公司 | 动态网络衡算的深度支付分账方法及系统 |
US20190018887A1 (en) * | 2017-04-12 | 2019-01-17 | Vijay K. Madisetti | Method and System for Tuning Blockchain Scalability, Decentralization, and Security for Fast and Low-Cost Payment and Transaction Processing |
CN109345714A (zh) * | 2018-08-31 | 2019-02-15 | 华北电力大学(保定) | 一种充电桩与电动汽车的充电网络操作方法 |
US20190095879A1 (en) * | 2017-09-26 | 2019-03-28 | Cornell University | Blockchain payment channels with trusted execution environments |
CN109583868A (zh) * | 2018-10-17 | 2019-04-05 | 北京瑞卓喜投科技发展有限公司 | 支付状态通道网络及其构建方法和系统、高频交易系统 |
US20190139037A1 (en) * | 2017-11-07 | 2019-05-09 | Ramy Abdelmageed Ebrahim Khalil | System and method for scaling blockchain networks with secure off-chain payment hubs |
CN110223055A (zh) * | 2019-05-05 | 2019-09-10 | 中山大学 | 一种区块链支付通道网络的路径选择方法 |
CN110751468A (zh) * | 2019-09-24 | 2020-02-04 | 上海交通大学 | 用于区块链扩展的多向状态通道方法、系统及介质 |
CN110751469A (zh) * | 2019-10-25 | 2020-02-04 | 浙江工商大学 | 一种基于智能合约的加密货币多通道支付方法 |
CN110852485A (zh) * | 2019-10-15 | 2020-02-28 | 中山大学 | 一种区块链支付通道网络的交易路径短路方法 |
-
2020
- 2020-03-25 CN CN202010217087.3A patent/CN111325628B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108694573A (zh) * | 2017-04-11 | 2018-10-23 | 杭州呯嘭智能技术有限公司 | 动态网络衡算的深度支付分账方法及系统 |
US20190018887A1 (en) * | 2017-04-12 | 2019-01-17 | Vijay K. Madisetti | Method and System for Tuning Blockchain Scalability, Decentralization, and Security for Fast and Low-Cost Payment and Transaction Processing |
US20190095879A1 (en) * | 2017-09-26 | 2019-03-28 | Cornell University | Blockchain payment channels with trusted execution environments |
US20190139037A1 (en) * | 2017-11-07 | 2019-05-09 | Ramy Abdelmageed Ebrahim Khalil | System and method for scaling blockchain networks with secure off-chain payment hubs |
CN109345714A (zh) * | 2018-08-31 | 2019-02-15 | 华北电力大学(保定) | 一种充电桩与电动汽车的充电网络操作方法 |
CN109583868A (zh) * | 2018-10-17 | 2019-04-05 | 北京瑞卓喜投科技发展有限公司 | 支付状态通道网络及其构建方法和系统、高频交易系统 |
CN110223055A (zh) * | 2019-05-05 | 2019-09-10 | 中山大学 | 一种区块链支付通道网络的路径选择方法 |
CN110751468A (zh) * | 2019-09-24 | 2020-02-04 | 上海交通大学 | 用于区块链扩展的多向状态通道方法、系统及介质 |
CN110852485A (zh) * | 2019-10-15 | 2020-02-28 | 中山大学 | 一种区块链支付通道网络的交易路径短路方法 |
CN110751469A (zh) * | 2019-10-25 | 2020-02-04 | 浙江工商大学 | 一种基于智能合约的加密货币多通道支付方法 |
Non-Patent Citations (4)
Title |
---|
PRIHODKO P: "Flare: An Approach to Routing", 《HTTPS://BITFURY.COM/CONTENT/DOWNLOADS/WHITEPAPER-FLARE-AN-APPROACH-TO-ROUTING-IN-LIGHTNING-NETWORK-7-7-2016.PDF》 * |
ROHRER E: "Towards a concurret and distributed route selection for payment channel networks", 《DATA PRIVACY MANAGEMENT CRYPTOCUR AND BLOCKCHAIN TECHNOLOGY》 * |
ROOS S: "Settling Payments Fast and Private: Efficient", 《ARVIV PREPRINT》 * |
潘晨等: "区块链可扩展性研究:问题与方法", 《计算机研究与发展》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022067894A1 (zh) * | 2020-10-01 | 2022-04-07 | 香港数拟经济技术有限公司 | 基于区块链去中心化点对点支付通道交易方法及系统 |
CN112488682A (zh) * | 2020-12-08 | 2021-03-12 | 深圳前海微众银行股份有限公司 | 一种区块链的三方转账方法及装置 |
CN112488682B (zh) * | 2020-12-08 | 2021-08-31 | 深圳前海微众银行股份有限公司 | 一种区块链的三方转账方法及装置 |
CN114827002A (zh) * | 2022-03-17 | 2022-07-29 | 西安电子科技大学 | 多域网络安全路径计算方法、系统、设备、介质及终端 |
CN114827002B (zh) * | 2022-03-17 | 2023-04-07 | 西安电子科技大学 | 多域网络安全路径计算方法、系统、设备、介质及终端 |
WO2024110166A1 (en) * | 2022-11-23 | 2024-05-30 | Nchain Licensing Ag | Payment channel aggregator |
Also Published As
Publication number | Publication date |
---|---|
CN111325628B (zh) | 2022-05-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111325628B (zh) | 一种基于区块链的多方支付通道交易方法 | |
Wang et al. | Monoxide: Scale out blockchains with asynchronous consensus zones | |
Göbel et al. | Increased block size and Bitcoin blockchain dynamics | |
EP3754578B1 (en) | Blockchain-based settlement method, blockchain node and client | |
CN109829718B (zh) | 一种基于存储应用场景的区块链多层级构架及其运行方法 | |
CN112907252B (zh) | 一种基于多人链下通道的区块链交易方法及系统 | |
CN107358420A (zh) | 用于实现热点账户的区块链系统以及实现热点账户的方法 | |
WO2020059865A1 (ja) | 決済システム、決済方法、利用者装置、決済プログラム | |
CN108776929A (zh) | 基于区块链数据库的账单处理方法、系统和可读存储介质 | |
CN109146484A (zh) | 基于区块链的共识验证方法、挖矿机及区块链系统 | |
CN107239940A (zh) | 基于区块链系统的网络交易方法及装置 | |
CN108959621A (zh) | 一种区块链网络的实现方法、装置、设备及存储介质 | |
CN110751468A (zh) | 用于区块链扩展的多向状态通道方法、系统及介质 | |
CN113268776A (zh) | 基于区块链的模型联合训练方法及装置 | |
CN109087111A (zh) | 基于区块链的共识验证方法、挖矿机及区块链系统 | |
CN109242299A (zh) | 分布式挖矿方法、挖矿机及区块链系统 | |
CN112651724A (zh) | 跨链交互方法、装置和系统 | |
CN111640017A (zh) | 一种应用于联盟链跨链转账的交易正确性验证方法及装置 | |
CN109583868A (zh) | 支付状态通道网络及其构建方法和系统、高频交易系统 | |
CN113407977B (zh) | 基于聚合签名的跨链扩展方法及系统 | |
CN110378690A (zh) | 匿名安全支付通道方法及装置 | |
CN109087105A (zh) | 用于挖矿的哈希搜索方法、挖矿机及区块链系统 | |
CN112884470B (zh) | 基于区块链联盟链的跨境汇款信息处理方法及装置 | |
CN107169868A (zh) | 一种针对债权债务的货币杠杆支付方法及系统 | |
CN113763163B (zh) | 一种区块链支付通道网络交易手续费分配方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |