CN114329550A - 区块链链下交易方法、装置、设备及存储介质 - Google Patents
区块链链下交易方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN114329550A CN114329550A CN202111625837.1A CN202111625837A CN114329550A CN 114329550 A CN114329550 A CN 114329550A CN 202111625837 A CN202111625837 A CN 202111625837A CN 114329550 A CN114329550 A CN 114329550A
- Authority
- CN
- China
- Prior art keywords
- transaction
- node
- user
- consensus
- user node
- 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.)
- Pending
Links
Images
Landscapes
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本发明公开了一种区块链链下交易方法、装置、设备及存储介质,属于区块链技术领域。该方法包括:在接收到用户节点发送的交易请求之后,向所述共识节点组广播所述交易请求,以使当前共识节点领导者的第一安全飞地接收到所述交易请求后,根据所述交易请求生成新区块,并将所述新区块同步至所有所述共识节点;更新所述用户节点对应的账户信息,并将交易结果反馈至所述用户节点,完成链下交易。本发明在加密货币区块链链下的共识节点中进行区块链链下交易,利用共识节点中安全飞地提供的可信执行环境,将共识节点中的运行程序与外部环境隔离,在安全飞地中进行交易信息的处理和收发,保证了链下交易的安全性。
Description
技术领域
本发明涉及区块链技术领域,尤其涉及一种区块链链下交易方法、装置、设备及存储介质。
背景技术
相关技术中,要求交易双方能够持续监视区块链,及时发现过期交易等异常信息来确保交易的安全性。
但是,由于由于目前绝大多数物联网设备的低存储能力和低联网能力,其难以及时发现异常信息,并且也难以及时进行反制,故难以保证区块链链下交易的安全性。
发明内容
本发明的主要目的在于提供一种区块链链下交易方法、装置、设备及存储介质,旨在解决现有技术中难以保证区块链链下交易的安全性的技术问题。
根据本发明的第一方面,提供了一种区块链链下交易方法,用于链下服务区块链中的共识节点组中的任一共识节点的安全飞地,所述安全飞地具有每个用户节点在外部加密货币区块链中的账户信息;所述方法包括:
在接收到用户节点发送的交易请求之后,向所述共识节点组广播所述交易请求,以使当前共识节点领导者的第一安全飞地接收到所述交易请求后,根据所述交易请求生成新区块,并将所述新区块同步至所有所述共识节点;
更新所述用户节点对应的账户信息,并将交易结果反馈至所述用户节点,完成链下交易。
可选地,所述向所述共识节点组广播所述交易请求之前,所述方法还包括:
对所述交易请求进行验证;
若所述交易请求通过验证,则调用所述交易请求包含的智能合约,执行所述智能合约声明的交易数据处理逻辑,获得所述交易请求的数据信息;
所述向所述共识节点组广播所述交易请求,包括:
向所述共识节点组广播所述交易请求和所述数据信息。
可选地,所述在接收到用户节点发送的交易请求之后,向所述共识节点组广播所述交易请求之前,所述方法还包括:
在接收到所述用户节点发送的注款请求之后,生成所述用户节点对应的外部加密货币区块链地址;
将所述外部加密货币区块链地址发送至所述用户节点,以使用户将所述外部加密货币区块链地址作为账户地址进行注款,并生成对应的注款记录;
向所述共识节点组广播所述注款记录,以使所述当前共识节点领导者将所述注款记录作为新区块添加至链下服务区块链中。
可选地,所述在接收到所述用户节点发送的注款请求之后,生成一个外部区块链地址之前,所述方法还包括:
在接收到所述用户节点发送的注册请求之后,根据所述注册请求,获得对应的注册信息;所述注册信息包括对应用户节点账户信息的公私钥对以及安全飞地签名;
对所述注册信息进行验证,若所述公私钥对没有与其他用户节点的账户信息的公私钥对重复,且所述安全飞地签名正确,则生成对应的注册记录;
向所述共识节点组广播所述注册记录,以使所述当前共识节点领导者将所述注册记录作为新区块添加至所述链下服务区块链中。
可选地,所述向所述共识节点组广播所述注款记录,以使所述当前共识节点领导者将所述注款记录作为新区块添加至链下服务区块链中之后,所述方法还包括:
读取所述链下服务区块链中的注款记录;
根据所述注款记录更新对应账户的账户余额;
若所述账户余额达到预设余额阈值,则将对应账户注册至紧急结算平台;
若接收到对应用户节点发送的紧急结算请求,则启动所述紧急结算平台以使用户通过所述紧急结算平台将资金转出。
可选地,所述在接收到用户节点发送的交易请求之后,向所述共识节点组广播所述交易请求,包括:
使用对称密钥将所述交易请求进行加密,得到加密交易信息;所述对称密钥由所述当前共识节点领导者生成;
向所述共识节点组广播所述加密交易信息。
可选地,所述共识节点服务于对应的交易通道,所述利用所述安全飞地更新所述用户节点对应的账户信息,并将交易结果反馈至所述用户节点,完成链下交易之后,所述方法还包括:
在接收到付款方用户节点发送的结算请求之后,根据所述结算请求确定对应的交易信息、收款方用户节点和至少一个交易通道;
通过至少一个所述交易通道,将所述资金额度发送给所述收款方用户节点,以使所述收款方用户节点根据所述交易信息更新收款方账户的账户余额,并反馈交易确认信息;
通过至少一个所述交易通道,将所述交易确认信息发送给所述付款方用户节点,以使所述付款方用户节点根据所述交易确认信息和所述交易信息更新付款方账户的账户余额。
根据本发明的第二方面,提供了一种区块链链下交易装置,所述装置包括:
请求接收模块,用于在接收到用户节点发送的交易请求之后,向所述共识节点组广播所述交易请求,以使当前共识节点领导者的第一安全飞地接收到所述交易请求后,根据所述交易请求生成新区块,并将所述新区块同步至所有所述共识节点;
交易完成模块,用于利用所述安全飞地更新所述用户节点对应的账户信息,并将交易结果反馈至所述用户节点,完成链下交易。
根据本发明的第三方面,提供了一种区块链链下交易设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的区块链链下交易程序,所述区块链链下交易程序被所述处理器执行时实现第一方面的实现方式中的任一种可能的实现方式中所述的各个步骤。
根据本发明的第四方面,提供了一种计算机可读存储介质,其上存储有区块链链下交易程序,所述区块链链下交易程序被处理器执行时实现第一方面的实现方式中的任一种可能的实现方式中所述的各个步骤。
本发明实施例提出一种区块链链下交易方法、装置、设备及存储介质,通过区块链链下交易设备在接收到用户节点发送的交易请求之后,向所述共识节点组广播所述交易请求,以使当前共识节点领导者的第一安全飞地接收到所述交易请求后,根据所述交易请求生成新区块,并将所述新区块同步至所有所述共识节点;更新所述用户节点对应的账户信息,并将交易结果反馈至所述用户节点,完成链下交易。
本发明在需要在加密货币区块链之外进行交易时,通过外部的共识节点完成交易执行,该共识节点利用可信硬件技术,提供了一种基于处理器硬件的可信执行环境,即安全飞地,利用该安全飞地进行交易。本发明区别于现有技术中难以保证区块链链下交易的安全性的情况,在加密货币区块链链下的共识节点中进行区块链链下交易,利用共识节点中安全飞地提供的可信执行环境,将共识节点中的运行程序与外部环境隔离,在安全飞地中进行交易信息的处理和收发,保证了链下交易的安全性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例方案涉及的硬件运行环境的区块链链下交易设备的结构示意图;
图2为本发明区块链链下交易方法的第一实施例的流程示意图;
图3为本发明图2中S201的步骤之前的流程示意图;
图4为本发明图2中S201的步骤之前的流程示意图;
图5为本发明图4中S401的步骤之前的流程示意图;
图6为本发明图4中S403的步骤之后的流程示意图;
图7为本发明图2中S201的步骤的细化流程示意图;
图8为本发明图2中S202的步骤之后的流程示意图;
图9为本发明实施例涉及的区块链链下交易装置的功能模块示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例的主要解决方案是:在接收到用户节点发送的交易请求之后,向所述共识节点组广播所述交易请求,以使当前共识节点领导者的第一安全飞地接收到所述交易请求后,根据所述交易请求生成新区块,并将所述新区块同步至所有所述共识节点;更新所述用户节点对应的账户信息,并将交易结果反馈至所述用户节点,完成链下交易。
相关技术中,要求交易双方能够持续监视区块链,及时发现过期交易等异常信息来确保交易的安全性。但是,由于由于目前绝大多数物联网设备的低存储能力和低联网能力,其难以及时发现异常信息,并且也难以及时进行反制,故难以保证区块链链下交易的安全性。
本发明提供一种解决方案,该方案用于区块链链下交易设备,在需要在加密货币区块链之外进行交易时,通过外部的共识节点完成交易执行,该共识节点利用可信硬件技术,提供了一种基于处理器硬件的可信执行环境,即安全飞地,利用该安全飞地进行交易。本发明区别于现有技术中难以保证区块链链下交易的安全性的情况,在加密货币区块链链下的共识节点中进行区块链链下交易,利用共识节点中安全飞地提供的可信执行环境,将共识节点中的运行程序与外部环境隔离,在安全飞地中进行交易信息的处理和收发,保证了链下交易的安全性。
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例的说明书和权利要求书中的“第一”、“第二”用于区别类似的对象,而不必用于描述特定的顺序或者先后次序,应该理解这样的数据在适当的情况下可以互换,以便这里描述的实施例能够以除了这里图示或者描述的那些以外的顺序实施。
参照图1,图1为本发明实施例方案涉及的硬件运行环境的区块链链下交易设备的结构示意图。
如图1所示,该区块链链下交易设备可以包括:处理器1001,例如中央处理器(Central Processing Unit,CPU),通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如无线保真(WIreless-FIdelity,WI-FI)接口)。存储器1005可以是高速的随机存取存储器(RandomAccess Memory,RAM),也可以是稳定的非易失性存储器(Non-Volatile Memory,NVM),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的结构并不构成对区块链链下交易设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种存储介质的存储器1005中可以包括操作系统、请求接收模块、交易完成模块以及区块链链下交易程序。
在图1所示的区块链链下交易设备中,网络接口1004主要用于与网络服务器进行数据通信;用户接口1003主要用于与用户进行数据交互;本发明区块链链下交易设备中的处理器1001、存储器1005可以设置在区块链链下交易设备中,区块链链下交易设备通过处理器1001调用存储器1005中存储的区块链链下交易程序,并执行本发明实施例提供的区块链链下交易方法。
基于上述硬件结构但不限于上述硬件结构,本发明提供一种区块链链下交易方法第一实施例。参照图2,图2为本发明区块链链下交易方法第一实施例的流程示意图。
本实施例中,该方法包括:
步骤S201,在接收到用户节点发送的交易请求之后,向所述共识节点组广播所述交易请求,以使当前共识节点领导者的第一安全飞地接收到所述交易请求后,根据所述交易请求生成新区块,并将所述新区块同步至所有所述共识节点;
在本实施例中,执行主体为用于链下服务区块链中的共识节点组中的任一共识节点的安全飞地,当用户需要进行交易时,该用户可以通过其对应的用户节点生成一个交易请求,并将该交易请求通过安全信道发送给任意一个或多个共识节点安全飞地。该交易请求至少包含交易发送方id(sender Pk_c),交易接收方id(receiver Pk_c),交易次数序列号sender nonce,和交易发送方签名Sk_c(sender Pk_c,receiver Pk_c,nonce)。其中,交易次数序列号标识了这是发送方进行的第几笔链下交易,其作用是防止恶意的共识节点通过重放用户交易而使用户蒙受损失。需要补充的是,若该交易请求调用了智能合约,则其中还包含有对应的智能合约信息。
而当任一共识节点接收到该交易请求后,其将该交易请求向所有共识节点安全飞地广播,而在当前共识节点领导者的第一安全飞地接收到该交易请求后,将根据该交易请求生成用户操作日志中的新区块,并使用改进的RAFT算法将该新区块同步至所有共识节点,同时更新用户操作日志。
针对RAFT算法容错能力较弱的问题,本实施例中使用了由Intel服务平台提供的SGX可信递增计数器来避免恶意的共识节点执行拜占庭行为(即节点只能停止响应,不能做出错误相应)。每当RAFT算法中担任领导者的共识节点安全飞地生成一个新区块时,它将首先从交易池中选择预定数量的交易并排定顺序,再将不可回滚的递增计数加1,最后读取已经加1的递增计数,并将读取结果嵌入区块头中。共识节点安全飞地间的用户操作日志区块头包含区块高度,区块交易哈希以及上述可信单调计数。由于共识节点均使用SGX运行共识算法,因此恶意的共识节点执行拜占庭行为的唯一方法是通过回滚SGX的方式制造2个区块高度相同,但包含不同交易的区块。然而由于可信计数的存在,假设恶意领导者节点安全飞地组装第一个区块时嵌入了单独计数counter,则当它回滚SGX并组装第二个同高度区块时,只能向第二个区块中嵌入counter+1。其他共识节点安全飞地在收到区块后,即可通过判断单调计数是否连续来检测领导者节点是否进行了恶意回滚。当一个共识节点安全飞地失去领导者的地位时,它会将计数器清零,新的领导者将重新生成新的单调计数器,并重新开始上述流程。并且,基于这样的机制,目前SGX单调计数器的计数上限可以支持本发明中的领导者节点约1-2天的递增操作。每1-2天更换一次领导者在操作上是容易实现的,因此本发明并不会像一些其他使用SGX单调计数器的方案一样存在计数耗尽的问题。
最后需要说明的是,本实施例中共识节点组有基于SGX技术的第三方构成,SGX提供了一种基于处理器硬件的可信执行环境,将可信硬件中应用程序执行的环境与外部环境隔离,即可形成安全飞地,从而保证后续操作的安全性;而用户节点可以为物联网设备等用户终端设备;智能合约可以理解为一些合同条款,当某预设条件触发时,则自动执行对应的操作;Raft是一种共识算法,确保集群中的每个节点都同意一系列相同的状态转换;SGX是一种可信硬件技术,可提供可信执行环境。另外,共识节点领导者,即领导者节点通过随机数生成算法,在所有共识节点中随机选出。
在一具体实施方式中,参照图7,图7为本发明图2中S201的步骤的细化流程示意图,所述在接收到用户节点发送的交易请求之后,向所述共识节点组广播所述交易请求,包括:
步骤A10,使用对称密钥将所述交易请求进行加密,得到加密交易信息;
在接收到交易请求之后,对应的共识节点安全飞地将使用对称密钥对该交易请求进行加密,得到加密交易信息。其中,该对称密钥在当前共识节点领导者的安全飞地内部随机生成,再通过安全信道加密传输给所有其他共识节点安全飞地。
步骤A20,向所述共识节点组广播所述加密交易信息。
在得到前述加密交易信息后,再向其他共识节点广播该加密交易信息,从而保证信息传输时的安全性。具体的,共识节点在接收到一条新的交易信息后,会首先检查交易是否已经在交易池中,再通过比对交易次数序列号检查交易是否已经被纳入用户操作日志,最后将尚未记入用户操作日志且与交易池中交易不重复的新交易写入交易池。其中,交易池中存储有各项在先交易,并可用于存储新交易。
步骤S202,更新所述用户节点对应的账户信息,并将交易结果反馈至所述用户节点,完成链下交易。
当一个共识节点安全飞地接收到领导者节点发来的新区块时,它将先使用对称密钥解密区块,再检验(1)区块头中哈希的正确性,(2)单调递增计数的连续性。如果新区块能够通过验证,则将区块高度通过与用户节点间的安全信道发送给各轻节点,将完整加密区块同步给存储节点,并开始按顺序检验交易是否合法,并顺序更新用户账户余额和用户交易次数序列号,从而完成链下交易更新。一则交易被视为合法当且仅当(1)用户的账户余额足以支撑这则交易,(2)交易所调用的合约,读写集与共识节点本地数据库中的记录不冲突。共识节点安全飞地验证交易后,将交易执行结果用安全飞地的私钥签名,并发送给与交易相关的用户。交易执行结果包括完整的交易内容,和用于标识交易是否为有效交易的标识信息。其中,存储节点为维护通道内所有参与者当前余额的用户节点,轻节点为只存储链下交易区块高度的用户节点,用户可根据自身需求进行选择。
本实施例中,在加密货币区块链链下的共识节点中进行区块链链下交易,利用共识节点中安全飞地提供的可信执行环境,将共识节点中的运行程序与外部环境隔离,在安全飞地中进行交易信息的处理和收发,保证了链下交易的安全性;并且利用改进的RAFT算法防止恶意节点的影响,通过对称密钥防止对信息进行加密,并通过验证确保各项信息的准确性和合法性,都进一步保证了链下交易的安全性。
进一步的,参照图3,图3为本发明图2中S201的步骤之前的流程示意图,所述向所述共识节点组广播所述交易请求之前,所述方法还包括:
步骤S301,对所述交易请求进行验证;
在接收到前述交易请求后,对应的共识节点安全飞地会首先验证(1)交易请求中签名的正确性,(2)交易请求中交易次数序列号的合法性。对于通过验证的交易请求,共识节点安全飞地会将签名从交易请求中移除,将其转变为一个去签名的链下交易。移除签名的原因在于后续的操作不再需要验证签名的正确性,从而大幅加速交易验证速度。
步骤S302,若所述交易请求通过验证,则调用所述交易请求包含的智能合约,执行所述智能合约声明的交易数据处理逻辑,获得所述交易请求的数据信息。
如果交易请求中包含智能合约,共识节点安全飞地会根据本地数据库中的合约参数模拟执行合约调用流程,获得合约调用的结果,生成对应读写集,并将读写集和模拟执行结果写入交易中。由于在本实施例中,合约调用的预执行由安全飞地完成,因此任何一个共识节点安全飞地都足以为合约执行结果的有效性进行背书。并且采用“先执行,后排序”的合约调用方法,一次智能合约状态转移只需一个共识节点安全飞地执行,从而大大提高了合约执行的效率。
最后,再将交易请求、合约执行结果以及读写集一起进行广播。其中,读写集包括了与该交易请求相关的数据信息。
本实施例中,一方面,通过对交易请求进行验证,从而保证了交易请求的正确性和合法性;另一方面,通过将签名从交易请求中移除避免了后续重复验证,从而加快了后续的验证速度;除此之外,还能高效的执行交易请求中包含的智能合约,从而保证了交易的顺利执行。
进一步的,参照图4,图4为本发明图2中S201的步骤之前的流程示意图,在接收到用户节点发送的交易请求之后,向所述共识节点组广播所述交易请求之前,所述方法还包括:
步骤S401,在接收到所述用户节点发送的注款请求之后,生成所述用户节点对应的外部加密货币区块链地址;
不难理解,每个用户节点对应的账户要有足够的资金才能顺利完成交易,故在进行交易之前,用户还要先向账户中进行注款。
当用户需要注入资金时,他首先通过对应的用户节点向共识节点安全飞地发送注款请求。当接收到该注款请求后,共识节点安全飞地生成一个外部区块链地址和其对应私钥,并将外部区块链地址、对应的私钥和用户身份标识信息使用对称密钥进行加密。
步骤S402,将所述外部加密货币区块链地址发送至所述用户节点,以使用户将所述外部加密货币区块链地址作为账户地址进行注款,并生成对应的注款记录;
将上述得到的外部区块链地址发送至对应的用户节点,用户即可使用此地址进行注款,同时根据上述加密后的外部区块链地址、对应的私钥和用户身份标识信息生成注款记录。
步骤S403,向所述共识节点组广播所述注款记录,以使所述当前共识节点领导者将所述注款记录作为新区块添加至链下服务区块链中。
将上述注款记录广播至所有共识节点,当前共识节点领导者在得到该注款记录后,将根据该注款记录生成新区块,并计入用户操作日志。而所有共识节点都可以独立验证该记录,并根据该记录更新对应用户的账户余额。
在本实施例中,通过共识节点的安全飞地来生成注款地址等信息,并完成注款记录的生成和收发,最后更新账户完成注款,利用安全飞地的可信执行环境保障了注款的安全性。
进一步的,参照图5,图5为本发明图4中S401的步骤之前的流程示意图,所述在接收到所述用户节点发送的注款请求之后,生成一个外部区块链地址之前,所述方法还包括:
步骤S501,在接收到所述用户节点发送的注册请求之后,根据所述注册请求,获得对应的注册信息;
不难理解,不管是要进行上述注款操作还是交易操作,首先需要有一个自己的账户,故在注款之前,用户首先需要进行注册。
具体的,当用户需要注册时,首先通过用户节点创建一对用于标识身份和建立安全信道的公私钥对(Pk_c,Sk_c),以及一对用于紧急结算的公私钥对(Pk_e,Sk_e),再将Pk_c,Pk_e,紧急结算地址以及一个安全飞地使用Sk_e签名的投票平台元数据通过安全飞地发送给任意一个共识节点安全飞地作为注册请求。而共识节点接收到注册请求后即可获得这些注册信息。
步骤S502,对所述注册信息进行验证,若所述公私钥对没有与其他用户节点的账户信息的公私钥对重复,且所述安全飞地签名正确,则生成对应的注册记录;
在得到上述注册信息后,对应的共识节点安全飞地验证(1)Pk_c与Pk_e是否与其他已注册账户重复,(2)投票平台元数据及用户紧急结算安全飞地的签名是否正确。如果用户的注册申请通过安全飞地的验证,安全飞地就生成一个会被写入用户操作日志上的注册记录,包含Pk_c和Pk_e,其中Pk_c会被所有共识节点安全飞地用作用户的账户标识符,而Pk_e则会在用户紧急结算时供用户的紧急结算安全飞地读取,以验证对应账户是否具备紧急结算资格,紧急结算地址则记录紧急结算交易的输出地址。
步骤S503,向所述共识节点组广播所述注册记录,以使所述当前共识节点领导者将所述注册记录作为新区块添加至所述链下服务区块链中。
随后这个共识节点安全飞地将通过安全信道向其他共识节点安全飞地广播这则注册记录。而当前共识节点领导者在得到这则记录后,会据此生成新区块并写入用户操作日志中,并将该新区块广播至所有共识节点,所有读取到新区块的共识节点都将把Pk_c,Pk_e纳入维护于安全飞地内部的用户账户集合中,并将账户余额设为0。
最终,接收用户注册请求的共识节点安全飞地会负责将注册成功的消息发送给用户。但此时,这个用户账户余额仍是0,因而他并无紧急结算的需求,进而不需要使用紧急结算安全飞地进行任何操作,暂时无需在紧急结算平台上注册。
本实施例中,用户在进行注册后,对应的共识节点会对相关的注册信息进行验证,通过验证后再完成注册记录的收发,并对应生成新区快,并更新用户操作日志,保证了新注册的信息的正确性且不会与其他账户信息重复,确保后续操作的顺利进行,并且利用安全飞地的可信执行环境保障了注册信息不被泄露,保证了安全性。
进一步的,参照图6,图6为本发明图4中S403的步骤之后的流程示意图,所述向所述共识节点组广播所述注款记录,以使所述当前共识节点领导者将所述注款记录作为新区块添加至链下服务区块链中之后,所述方法还包括:
步骤S601,读取所述链下服务区块链中的注款记录;
步骤S602,根据所述注款记录更新对应账户的账户余额;
注款记录中包含了对应用户的以及注入的资金量,根据账户信息即可确定对应的账户,然后再根据注入的资金量即可对该账户的账户余额进行更新。
步骤S603,若所述账户余额达到预设余额阈值,则将对应账户注册至紧急结算平台;
当某一账户的余额第一次达到一个预定义的阈值时(可以通过注资交易或其他参与者转账),用户可以使用自己的紧急结算安全飞地与共识节点安全飞地进行交互,通过安全信道获得并存储用于加密用户操作日志的对称密钥。阈值的设定用于避免攻击者通过创建大量低余额账户而对投票平台实施女巫攻击。与此同时,共识节点中的领导者节点将负责在用户余额超过阈值时,将用户紧急结算安全飞地的公钥Pk_e注册至紧急结算投票平台,以及在用户余额不高于阈值时,将用户公钥从紧急结算平台上删除。
步骤S604,若接收到对应用户节点发送的紧急结算请求,则启动所述紧急结算平台以使用户通过所述紧急结算平台将资金转出。
如果用户持续一段时间无法从任何共识节点安全飞地处获得用户操作日志更新的消息,则其有理由怀疑共识节点已经不再能提供可靠服务,因此他需要开始执行紧急结算操作。首先,用户通过对应的用户节点启动自己的紧急结算安全飞地,并让紧急结算安全飞地同步全部的用户操作日志,恢复通道最新的账户状态集和所有由共识节点控制的外部区块链地址对应的私钥。如果用户节点是存储节点,则可以直接令紧急结算安全飞地读入加密的区块;如果用户节点是轻节点,则需要从存储节点处获得完整的用户操作日志。
在使用紧急结算安全飞地恢复了最新的用户账户集后,用户就可以使用紧急结算飞地根据其读取的最终区块高度在投票平台上就通道最终状态投票。投票信息使用用户紧急结算安全飞地的私钥Pk_e签名,包含安全飞地读取的通道用户操作日志最终高度。如果超过半数以上的用户使用各自得安全飞地就同一区块高度投票,则任何人都可以调用合约函数,将投票平台的状态由不满足(invalid)改为争议(dispute),修改通道最终区块高度参数,并开启一段预定义的争议期。由于超过半数共识节点失效是小概率事件,因此争议期可以设为一个较长的时间区间(如2周)以减少用户的监视开销,而不会对用户的正常使用造成影响。值得注意的是,在争议期开启之前(即通道状态为invalid时),用户必须使用自己的紧急结算安全飞地对投票进行签名才算作有效投票。
若在争议期内没有用户对通道最终状态提出质疑,则任何用户都可以调用合约函数,将投票平台状态修改为valid。若有用户提交了一个更高的区块高度对通道最终状态进行质疑,则投票平台状态变回invalid,通道最终高度也随之更改。只有当投票平台状态是valid时,用户才能将valid状态的证据,连同通道最终区块高度参数输入紧急结算投票平台,以生成紧急结算交易。确认投票平台状态是valid后,用户紧急结算安全飞地随即生成紧急结算交易,将用户应得的资金从共识节点安全飞地控制的地址转入用户的自己的地址中,并将余额退回共识节点安全飞地控制的,用户紧急结算飞地拥有其私钥的安全地址中。
和已有的同类链外支付方案(如Plasma)相比,本发明在共识节点失效后的紧急结算环节,为用户提供了最终安全性,即用户并不需要在一个指定的时间内上链紧急结算交易才能取回资金,紧急结算交易可以在任何时刻生成。
值得注意的是,紧急结算交易输入的选择由通道最终状态与用户紧急结算地址确定性计算获得,以避免用户通过回滚自己的紧急结算安全飞地制造多笔紧急结算交易。基于确定性算法,即使用户回滚了自己的紧急结算安全飞地,他也只能获得完全一致的紧急结算交易。如这则交易与另一个用户的紧急结算交易冲突,则用户可将冲突交易已经在外部区块链上被确认的证据输入紧急结算安全飞地,紧急结算安全飞地验证后重新生成紧急结算交易,新的紧急结算交易同样由确定性算法生成,恶意用户无法通过重放破坏紧急结算流程的安全性。
然而,这样的设计仍存在一种安全漏洞,当大部分用户合谋就一个非最新状态达成一致时,剩下小部分用户可能会蒙受损失。为规避这种安全漏洞,当投票平台处于争议期时,用户可以在未读取全部用户操作日志的情况下,直接将有包含共识节点安全飞地签名的区块高度发送至投票平台,用作对投票平台状态的质证。举例来说,假设大半参与者使用安全飞地对通道最终区块高度为n的状态进行投票,然而有用户收到过来自共识节点安全飞地发来的,显示区块高度为n’(n’>n)的通道更新消息,则他可以直接将包含共识节点安全飞地私钥签名(这个签名在任何安全飞地构建的安全信道中都包含)的区块高度n’通过合约函数dispute()提交给投票平台。由于n’>n,因此投票平台会将状态参数更改回invalid,并将通道最终高度修改为n’。基于这样的机制,理性的存储节点为了取回自己应得的通道份额,只会广播完整的用户操作日志,上述安全漏洞得到了有效解决。
需要补充的是,若为正常结算,当用户希望从通道中取出一定数量的加密货币,或是清空账户时,其可以通过安全信道向共识节点安全飞地发送一个结算地址,由共识节点安全飞地生成结算交易并提交至外部区块链上。为确保多个用户同时提出结算请求时结算交易间不发生冲突,领导者节点安全飞地会负责处理用户的结算请求。因此当一个非领导者共识节点接收到用户结算请求时,它会将消息转发给当前共识节点领导者,即领导者节点。领导者节点顺序地为结算请求生成结算交易,将加密货币支付给用户的结算地址,再将结算交易记录在用户操作日志上。所有共识节点在验证到新区块中的结算交易记录时,会核验用户余额是否足够支付结算交易,如果足够则扣除对应余额,并将结算交易广播至外部区块链。如果用户希望清空账户,或是将余额减少至规定阈值以下,则领导者节点在用户操作日志新区块验证到这则消息的同时,还负责在紧急结算投票平台上删除对应用户的公钥,代表此用户不再参与紧急结算投票。
在本实施例中,即使共识节点组不能正常工作,用户也可以在任何时刻通过紧急结算平台进行紧急结算,从而进一步保证了用户资金的安全;并且,通过对投票平台进行相应设计,保证了投票平台的安全性和公平性,避免大部分用户合谋而导致小部分用户承受损失。
进一步的,参照图8,图8为本发明图2中S202的步骤之后的流程示意图,所述共识节点服务于对应的交易通道,所述利用所述安全飞地更新所述用户节点对应的账户信息,并将交易结果反馈至所述用户节点,完成链下交易之后,所述方法还包括:
步骤S801,在接收到付款方用户节点发送的结算请求之后,根据所述结算请求确定对应的交易信息、收款方用户节点和至少一个交易通道;
为进一步增加交易吞吐量,并减轻当通道内共识节点安全飞地的任务负荷,本实施例中将通道分割为多个相对独立的子通道,每个通道都由相互独立的共识节点集提供服务,并维护独立的用户操作日志。并且本实施例提出了跨通道合作结算和单通道独立结算两种跨通道交易结算策略,当所有通道均正常运作时,各共识节点安全飞地可以通过跨通道合作结算周期性地通过净额结算将所有跨通道交易一次性结算,而所有通道均保留使用单通道独立结算的权利,确保即使除自己以外的所有通道均不再合作时,通道仍能将所有跨通道交易在外部区块链上结算。
即(1)当所有通道都正常运行时,所有跨通道交易相关通道每隔固定时间或有通道即将耗尽通道余额时进行跨通道合作结算,(2)每个通道都保留了单独结算所有和本通道相关的跨通道交易的能力,虽然单通道独立结算会耗费更多时间和交易费。
步骤S802,通过至少一个所述交易通道,将所述资金额度发送给所述收款方用户节点,以使所述收款方用户节点根据所述交易信息更新收款方账户的账户余额,并反馈交易确认信息;
付款人所在通道的共识节点安全飞地将跨通道交易已经上链的证据广播给收款方通道的共识节点,由于在本发明中共识节点使用安全飞地提供服务,因此交易上链证据可以是付款方共识节点安全飞地通过安全信道发送的交易完整内容。在收到来自付款方共识节点安全飞地的跨通道交易上链证据后,收款方共识节点安全飞地也将此交易在自己的用户操作日志上同步,待交易上链后,向付款方共识节点回复此交易已在收款方用户操作日志上同步的消息,并将收款方的余额增加对应额度。
步骤S803,通过至少一个所述交易通道,将所述交易确认信息发送给所述付款方用户节点,以使所述付款方用户节点根据所述交易确认信息和所述交易信息更新付款方账户的账户余额。
当确认交易已在收款方用户操作日志上同步后,付款方共识节点安全飞地在用户操作日志上记录交易已确认的消息,并将对应的资金从付款方账户余额中移除。并且,所有读取此消息的共识节点安全飞地也将对应的资金从付款方账户余额中移除。
需要强调的是,在实际应用中,可能出现以下情况:一个通道内的共识节点可以合谋,只公布有效交易链的一部分,再快速地将有效交易链末尾的输出花费掉,就可以使其他通道共识节点持有的有效交易链失效。
为解决这一问题,本实施例中要求若一个通道执行单通道独立结算,其有效交易链末尾发送回通道的资金,只有经过一个预定义的时间(如1-2天)后才能花费。这样的时间限制可以通过在硬编码到共识节点安全飞地程序代码中来实现,由于安全飞地只能被回滚,而无法前滚,因此这样的时间间隔是安全的。并且为了尽可能减少用户监视区块链的需求,本实施例为紧急结算投票平台状态参数增加了一个额外的状态netting。netting状态需要通道内超过半数共识节点安全飞地就同一区块高度投票后,调用合约函数start_netting()来启动。而与紧急结算机制相似,共识节点安全飞地只会在接收了投票平台已处于netting状态的证据后才会公布末端加锁的有效交易链。这样用户只需监视固定的投票平台即可获知是否有通道准备进行单通道独立结算,从而减少了对区块链的监视需求。
本实施例中,通过将交易通道分割为多个相对独立的子通道,增加了交易的吞吐量,减轻了通道内共识节点的任务负荷,可灵活选择单通道结算或跨通道结算;并且,通过对紧急结算投票平台进行相应实设计,在保证交易安全的基础上减轻了用户的监视需要。
基于同一发明构思,本发明实施例还提供一种区块链链下交易装置,参照图9所示,包括:
请求接收模块,用于在接收到用户节点发送的交易请求之后,向所述共识节点组广播所述交易请求,以使当前共识节点领导者的第一安全飞地接收到所述交易请求后,根据所述交易请求生成新区块,并将所述新区块同步至所有所述共识节点;
交易完成模块,用于利用所述安全飞地更新所述用户节点对应的账户信息,并将交易结果反馈至所述用户节点,完成链下交易。
作为一种可选的实施例,区块链链下交易装置还可包括:
注款记录模块,用于向所述共识节点组广播所述注款记录,以使所述当前共识节点领导者将所述注款记录作为新区块添加至链下服务区块链中。
作为一种可选的实施例,区块链链下交易装置还可包括:
注册记录模块,用于向所述共识节点组广播所述注册记录,以使所述当前共识节点领导者将所述注册记录作为新区块添加至所述链下服务区块链中。
需要说明的是,由于本实施例的装置所执行的步骤与前述方法实施例的步骤相同,其具体的实施方式以及可以达到的技术效果都可参照前述实施例,这里不再赘述。
此外,在一实施例中,本申请还提供一种计算机存储介质,所述计算机存储介质上存储有计算机程序,所述计算机程序被处理器运行时实现前述方法实施例中方法的步骤。
在一些实施例中,计算机可读存储介质可以是FRAM、ROM、PROM、EPROM、EEPROM、闪存、磁表面存储器、光盘、或CD-ROM等存储器;也可以是包括上述存储器之一或任意组合的各种设备。计算机可以是包括智能终端和服务器在内的各种计算设备。
在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
作为示例,可执行指令可以但不一定对应于文件系统中的文件,可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(HTML,Hyper Text MarkupLanguage)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。
作为示例,可执行指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种区块链链下交易方法,其特征在于,用于链下服务区块链中的共识节点组中的任一共识节点的安全飞地,所述安全飞地具有每个用户节点在外部加密货币区块链中的账户信息;
所述方法包括:
在接收到用户节点发送的交易请求之后,向所述共识节点组广播所述交易请求,以使当前共识节点领导者的第一安全飞地接收到所述交易请求后,根据所述交易请求生成新区块,并将所述新区块同步至所有所述共识节点;
更新所述用户节点对应的账户信息,并将交易结果反馈至所述用户节点,完成链下交易。
2.根据权利要求1所述的方法,其特征在于,所述向所述共识节点组广播所述交易请求之前,所述方法还包括:
对所述交易请求进行验证;
若所述交易请求通过验证,则调用所述交易请求包含的智能合约,执行所述智能合约声明的交易数据处理逻辑,获得所述交易请求的数据信息;
所述向所述共识节点组广播所述交易请求,包括:
向所述共识节点组广播所述交易请求和所述数据信息。
3.根据权利要求1所述的方法,其特征在于,所述在接收到用户节点发送的交易请求之后,向所述共识节点组广播所述交易请求之前,所述方法还包括:
在接收到所述用户节点发送的注款请求之后,生成所述用户节点对应的外部加密货币区块链地址;
将所述外部加密货币区块链地址发送至所述用户节点,以使用户将所述外部加密货币区块链地址作为账户地址进行注款,并生成对应的注款记录;
向所述共识节点组广播所述注款记录,以使所述当前共识节点领导者将所述注款记录作为新区块添加至链下服务区块链中。
4.根据权利要求3所述的方法,其特征在于,所述在接收到所述用户节点发送的注款请求之后,生成一个外部区块链地址之前,所述方法还包括:
在接收到所述用户节点发送的注册请求之后,根据所述注册请求,获得对应的注册信息;所述注册信息包括对应用户节点账户信息的公私钥对以及安全飞地签名;
对所述注册信息进行验证,若所述公私钥对没有与其他用户节点的账户信息的公私钥对重复,且所述安全飞地签名正确,则生成对应的注册记录;
向所述共识节点组广播所述注册记录,以使所述当前共识节点领导者将所述注册记录作为新区块添加至所述链下服务区块链中。
5.根据权利要求3所述的方法,其特征在于,所述向所述共识节点组广播所述注款记录,以使所述当前共识节点领导者将所述注款记录作为新区块添加至链下服务区块链中之后,所述方法还包括:
读取所述链下服务区块链中的注款记录;
根据所述注款记录更新对应账户的账户余额;
若所述账户余额达到预设余额阈值,则将对应账户注册至紧急结算平台;
若接收到对应用户节点发送的紧急结算请求,则启动所述紧急结算平台以使用户通过所述紧急结算平台将资金转出。
6.根据权利要求1所述的方法,其特征在于,所述在接收到用户节点发送的交易请求之后,向所述共识节点组广播所述交易请求,包括:
使用对称密钥将所述交易请求进行加密,得到加密交易信息;所述对称密钥由所述当前共识节点领导者生成;
向所述共识节点组广播所述加密交易信息。
7.根据权利要求1所述的方法,其特征在于,所述共识节点服务于对应的交易通道,所述利用所述安全飞地更新所述用户节点对应的账户信息,并将交易结果反馈至所述用户节点,完成链下交易之后,所述方法还包括:
在接收到付款方用户节点发送的结算请求之后,根据所述结算请求确定对应的交易信息、收款方用户节点和至少一个交易通道;
通过至少一个所述交易通道,将所述资金额度发送给所述收款方用户节点,以使所述收款方用户节点根据所述交易信息更新收款方账户的账户余额,并反馈交易确认信息;
通过至少一个所述交易通道,将所述交易确认信息发送给所述付款方用户节点,以使所述付款方用户节点根据所述交易确认信息和所述交易信息更新付款方账户的账户余额。
8.一种区块链链下交易装置,其特征在于,所述装置包括:
请求接收模块,用于在接收到用户节点发送的交易请求之后,向所述共识节点组广播所述交易请求,以使当前共识节点领导者的第一安全飞地接收到所述交易请求后,根据所述交易请求生成新区块,并将所述新区块同步至所有所述共识节点;
交易完成模块,用于利用所述安全飞地更新所述用户节点对应的账户信息,并将交易结果反馈至所述用户节点,完成链下交易。
9.一种区块链链下交易设备,其特征在于,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的区块链链下交易程序,所述区块链链下交易程序被所述处理器执行时实现如权利要求1至7中任一项所述的区块链链下交易方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有区块链链下交易程序,所述区块链链下交易程序被处理器执行时实现如权利要求1至7中任一项所述的区块链链下交易方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111625837.1A CN114329550A (zh) | 2021-12-27 | 2021-12-27 | 区块链链下交易方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111625837.1A CN114329550A (zh) | 2021-12-27 | 2021-12-27 | 区块链链下交易方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114329550A true CN114329550A (zh) | 2022-04-12 |
Family
ID=81015690
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111625837.1A Pending CN114329550A (zh) | 2021-12-27 | 2021-12-27 | 区块链链下交易方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114329550A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114978547A (zh) * | 2022-05-23 | 2022-08-30 | 杨永红 | 一种基于区块链网络的链下交易方法、装置及设备 |
CN118096148A (zh) * | 2024-04-28 | 2024-05-28 | 杭州高新区(滨江)区块链与数据安全研究院 | 基于中心化链下组件的跨链方法、系统、设备和存储介质 |
-
2021
- 2021-12-27 CN CN202111625837.1A patent/CN114329550A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114978547A (zh) * | 2022-05-23 | 2022-08-30 | 杨永红 | 一种基于区块链网络的链下交易方法、装置及设备 |
CN114978547B (zh) * | 2022-05-23 | 2023-11-24 | 丰猫网络技术(深圳)有限公司 | 一种基于区块链网络的链下交易方法、装置及设备 |
CN118096148A (zh) * | 2024-04-28 | 2024-05-28 | 杭州高新区(滨江)区块链与数据安全研究院 | 基于中心化链下组件的跨链方法、系统、设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111681003B (zh) | 资源跨链转移方法、装置、计算机设备以及存储介质 | |
Androulaki et al. | Hyperledger fabric: a distributed operating system for permissioned blockchains | |
EP3613189B1 (en) | Secure blockchain-based consensus | |
US11893583B2 (en) | Settlement system, settlement method, user device, and settlement program | |
CN110443614B (zh) | 节点设备删除方法、装置、计算机设备及存储介质 | |
US11928222B2 (en) | Distributed ledger network implementing a synchronous trust consensus model | |
CN110569251A (zh) | 一种数据处理方法、相关设备及计算机可读存储介质 | |
CN114329550A (zh) | 区块链链下交易方法、装置、设备及存储介质 | |
CN111275438B (zh) | 区块链网络的共识方法、装置、设备和存储介质 | |
CN111292174A (zh) | 一种纳税信息处理方法、装置及计算机可读存储介质 | |
CN111899019A (zh) | 一种黑名单多方交叉验证和共享的方法及系统 | |
CN110992178A (zh) | 区块链节点的验证方法、装置、计算机设备及存储介质 | |
US11403281B2 (en) | Parallel blockchain processing | |
CN112448946A (zh) | 基于区块链的日志审计方法及装置 | |
CN114154969B (zh) | 一种基于区块链的大型交易和结算方法 | |
CN115701078B (zh) | 跨链交易处理方法、装置、电子设备以及存储介质 | |
Quamara et al. | An in-depth security and performance investigation in hyperledger fabric-configured distributed computing systems | |
CN112788555B (zh) | 跨运营商话费转移结算方法、装置及计算设备 | |
CN113225191B (zh) | 共识节点的生成方法、装置、存储介质及处理器 | |
CN112926981B (zh) | 用于区块链的交易信息处理方法、装置、介质及电子设备 | |
CN117917681A (zh) | 基于多区块链的资产转移方法、装置、设备、介质及产品 | |
CN114650289B (zh) | 用于区块链共识的方法及装置 | |
CN116186786A (zh) | 基于区块链的业务处理方法、装置、电子设备和可读介质 | |
CN117061538A (zh) | 一种基于区块链网络的共识处理方法及相关装置 | |
CN116186749A (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 |