[发明专利]一种基于区块链的多方支付通道交易方法有效
申请号: | 202010217087.3 | 申请日: | 2020-03-25 |
公开(公告)号: | CN111325628B | 公开(公告)日: | 2022-05-13 |
发明(设计)人: | 陈艳姣;李旭贤 | 申请(专利权)人: | 武汉大学 |
主分类号: | G06Q40/04 | 分类号: | G06Q40/04;G06Q20/08 |
代理公司: | 武汉科皓知识产权代理事务所(特殊普通合伙) 42222 | 代理人: | 鲁力 |
地址: | 430072 湖*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 区块 多方 支付 通道 交易 方法 | ||
1.一种基于区块链的多方支付通道交易方法,其特征在于,包含以下步骤:
步骤1,基于以太坊部署智能合约,定义智能合约,具体包括:
定义n个以太坊用户为P={P1,P2,…,Pn},任意两个用户Pi(1≤i≤n)和Pj(1≤j≤n)创建双方支付通道时,调用智能合约提供的双方支付通道创建接口,分别抵押相同额度的以太币到智能合约上,生成一个Pi和Pj之间的双方支付通道实例,该实例包含通道标识符、通道中两个用户的以太坊账户地址、通道中两个用户的余额、通道版本号、通道是否加入多方信息;
智能合约能够实时更新双方支付通道的状态,调用智能合约提供的双方支付通道更新接口的用户需要提供的信息包括:通道标识符、通道中两个用户新的余额分布、新的通道版本号以及两个用户的签名,智能合约验证通道标识符、版本号、用户的签名是否正确,若正确则根据用户提供的信息进行更新,否则不更新通道状态;
智能合约能够在任意定义时间关闭双方支付通道,调用智能合约提供的双方支付通道关闭接口的用户需要提供的信息包括:通道标识符、版本号和两个用户的签名,智能合约验证通道标识符、版本号、用户的签名是否正确,若正确则执行关闭通道的程序,包括:关闭该双方支付通道、删除该双方支付通道的实例、根据通道的余额分布将余额退回到两个用户的以太坊账户上,若验证失败则不关闭该通道;
智能合约还包括多方支付通道创建接口、多方支付通道更新接口、多方支付通道关闭接口,具体包括:多方支付通道创建接口接收用户请求,基于通道状态构建多方支付通道;方支付通道更新接口根据已构建的多方支付通道和多方交易内容,完成多方支付通道的状态更新;多方支付通道关闭接口接收用户关闭多方通道的请求,删除多方支付通道实例;
智能合约能够被任意的以太坊用户调用,任意用户可以与其他用户创建多个双方支付通道和多方支付通道,所有已经创建的支付通道,构成了一个支付通道网络;
步骤2,基于通道状态构建多方支付通道;根据支付通道网络中双方支付通道的通道状态为每个通道计算权重,通道状态包括通道中的用户余额、用户余额总量所占的比例、通道的余额平衡程度,根据通道的权重使用最小生成树算法计算出网络中的最小生成树,该生成树中的通道被选择用于建立多方支付通道,步骤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,基于多方支付通道进行交易;基于智能合约和多方支付通道开发任意多人在线应用,当应用状态更新时,产生一笔新的多方交易,需要进行结算;根据多方交易内容,将交易中的每个双方交易转化成多个直接连接的双方支付通道上的交易,通过更新多方支付通道的状态的方式完成多方交易;若多方交易过程中某次状态更新失败,则回滚本轮已更新的通道状态,保证多方交易的原子性;
步骤4,关闭多方支付通道;当通道超过过期时间或者应用程序生命周期结束时,关闭多方支付通道;按照最后一次交易后的余额分布,将各节点在通道中剩余的余额返还给各节点,并删除智能合约中的多方支付通道实例。
2.根据权利要求书1 所述一种基于区块链的多方支付通道交易方法,其特征在于,所述步骤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′中的每笔交易,由付款方向收款方发出交易请求信息并附上签名,该请求信息内容包括了付款方标识符、收款方标识符、更新后的余额分配、当前的多方交易序列号,收款方验证成功后将该消息返回给付款方并附上自身签名,状态更新完成,付款方向智能合约发送状态更新完成的消息并附上付款方和收款方的签名;智能合约验证所有交易成功后,完成一次多方交易,多方交易序列号加一;如果交易过程中某次状态更新失败,如付款方余额不足,或者签名验证错误,则本轮多方交易失败,将通道状态回滚至上一轮的最新状态。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武汉大学,未经武汉大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010217087.3/1.html,转载请声明来源钻瓜专利网。