一种基于区块链的数据转移方法、装置及设备与流程

文档序号:21087238发布日期:2020-06-12 16:58阅读:211来源:国知局
一种基于区块链的数据转移方法、装置及设备与流程

本申请涉及区块链技术领域,尤其是一种基于区块链的数据转移方法、装置及设备。



背景技术:

现在互联网技术飞速发展,每时每刻都存在着数据转移,比如说游戏玩家甲和游戏玩家乙约定在电子游戏中互换装备,甲给乙一个a装备,乙给甲一个b特效,这就是将a装备的数据从甲的账户转移到乙的账户,将b特效的数据从乙的账户转移到甲的账户的过程;又比如说,丙和丁在一个漂书活动中达成交换书籍的共识,丙给丁一本电子书c,丁给丙一本电子书d,数据转移的过程就是将c书的数据从丙的账户转移至丁的账户中,d书的数据从丁的账户转移至丙的账户中等等。然而在现有技术中进行的数据转移,比如甲给了乙装备a,乙却把特效b用掉了或者实际上乙没有特效b,只是乙为了获取甲的装备捏造的数据,那甲换不来特效b,而损失了装备a;同样的,丙给丁转移了电子书c,但丁实际上也没有电子书d。现有的方案导致数据转移不够可靠。



技术实现要素:

本申请提供了一种基于区块链的数据转移方法,通过约束方对第一交易方和第二交易方之间的交易事件进行约束,并且将约束文件信息上传至区块链网络中,在预设时间内所述交易事件没有完成,调用智能合约根据所述约束文件信息从约束方的账户将第一预设数据转移量转移至所述第二交易方的账户,提高了数据转移的效率,并且保证了交易事件中数据转移的可靠性。

一方面,本申请实施例提供了一种基于区块链的数据转移方法,所述方法包括:

业务服务节点接收第一节点发送的约束文件信息,所述约束文件信息为根据第一交易方和第二交易方之间发生的交易事件而确定的,所述约束文件信息包括第一数字签名、第二数字签名、第三数字签名、所述交易事件的标识、预设时间、第一预设数据转移量、所述第二交易方的账户信息以及约束方的账户信息;

所述业务服务节点将所述约束文件信息、所述第一交易方的标识、所述第二交易方的标识以及所述约束方的标识发送至共识节点,以使所述共识节点分别根据所述第一交易方的标识、所述第二交易方的标识以及所述约束方的标识在区块链网络中查找所述第一交易方、所述第二交易方和所述约束方的公钥,对所述约束文件信息进行验签,若验签成功,则所述共识节点返回共识确认消息;

所述业务服务节点在接收到所述共识节点返回的共识确认消息满足预设的共识策略的情况下,根据所述约束文件信息生成约束智能合约,并将所述约束智能合约上传至所述区块链网络中;

若所述约束智能合约在所述预设时间内,在所述区块链网络中没有查找到所述交易事件对应的交易完成事件的区块,则从所述约束方的账户中将所述第一预设数据转移量转移至所述第二交易方的账户中。

在一种可能的实现方式中,所述将所述约束智能合约上传至所述区块链网络中之后包括:

所述业务服务节点接收第二节点发送的交易完成事件信息,所述交易完成事件信息包括至少两个数字签名;

所述业务服务节点将所述交易完成事件信息、所述第一交易方的标识和所述第二交易方的标识发送至共识节点,以使所述共识节点根据所述第一交易方的标识和所述第二交易方的标识在所述区块链网络中查找所述第一交易方的公钥和所述第二交易方的公钥,对所述交易完成事件进行验签,分别得到第一校验码和第二校验码;所述共识节点对所述交易完成事件信息进行哈希运算,得到第三校验码;若所述第一校验码、所述第二校验码和所述第三校验码相同,所述共识节点返回共识确认消息;

在所述业务服务节点接收到所述共识节点返回的共识确认消息满足预设的共识策略的情况下,根据所述交易完成事件信息生成所述交易事件对应的交易完成事件的区块,并将所述交易完成事件的区块上传至所述区块链网络中。

在一种可能的实施例中,所述约束文件信息还包括所述交易事件中的交易对象;

所述从所述约束方的账户中将所述第一预设数据转移量转移至所述第二交易方的账户中之后包括:

所述约束智能合约将所述交易对象的状态标记为锁定状态。

进一步的,所述方法还包括:

若所述业务服务节点检测到所述第一交易方将第二预设数据转移量转移至所述约束方的账户后,调用所述约束智能合约将所述交易对象的状态从锁定状态修改为未锁定状态。

可选的,所述业务服务节点接收第一节点发送的约束文件信息之前包括:

所述业务服务节点接收第三节点提交的交易事件提交请求,所述交易事件提交请求携带所述交易事件的标识、所述第一交易方的标识、所述第二交易方的标识、至少两个数字签名、交易对象以及交易数据转移量;

所述业务服务节点将所述交易事件提交请求发送至共识节点,以使所述共识节点根据所述第一交易方的标识和所述第二交易方的标识,在所述区块链网络中查找所述第一交易方的公钥和所述第二交易方的公钥,对所述交易事件提交请求进行验签,得到第四校验码和第五校验码;所述共识节点对所述交易事件提交请求进行哈希运算,得到第六校验码;若所述第四校验码、第五校验码和所述第六校验码相同,所述共识节点返回共识确认消息;

在所述业务服务节点接收到所述共识节点返回的共识确认消息满足预设的共识策略的情况下,根据所述交易事件提交请求生成待加入区块,并将所述待加入区块上传至所述区块链网络中。

在一种可能的实施例中,所述方法还包括:

若所述约束智能合约在所述预设的时间内,在所述区块链网络中检测到所述交易事件对应的交易完成事件的区块,将所述交易完成事件保存在所述约束智能合约中,并将所述约束智能合约的状态标记为已完成状态。

可选的,所述对所述约束文件信息进行验签包括:

所述共识节点根据所述第一交易方、所述第二交易方和所述约束方的公钥对所述约束文件信息进行解密,分别得到第七校验码、第八校验码和第九校验码;所述共识节点对所述约束文件信息进行哈希运算,得到第十校验码;若所述第七校验码、所述第八校验码、所述第九校验码和所述第十校验码相同,则确认对所述约束文件信息验签成功。

一方面,本申请实施例还提供了一种基于区块链的数据转移装置,所述装置包括:

接收模块,用于接收第一节点发送的约束文件信息,所述约束文件信息为根据第一交易方和第二交易方之间发生的交易事件而确定的,所述约束文件信息包括第一数字签名、第二数字签名、第三数字签名、所述交易事件的标识、预设时间、第一预设数据转移量、所述第二交易方的账户信息以及约束方的账户信息;

发送模块,用于将所述约束文件信息、所述第一交易方的标识、所述第二交易方的标识以及所述约束方的标识发送至共识节点,以使所述共识节点分别根据所述第一交易方的标识、所述第二交易方的标识以及所述约束方的标识在区块链网络中查找所述第一交易方、所述第二交易方和所述约束方的公钥,对所述约束文件信息进行验签,若验签成功,则所述共识节点返回共识确认消息;

生成模块,用于接收到所述共识节点返回的共识确认消息满足预设的共识策略的情况下,根据所述约束文件信息生成约束智能合约;

所述发送模块,还用于将所述约束智能合约上传至所述区块链网络中;

转移模块,用于在所述预设时间内,在所述区块链网络中没有查找到所述交易事件对应的交易完成事件的区块,则从所述约束方的账户中将所述第一预设数据转移量转移至所述第二交易方的账户中。

一方面,本申请实施例提供了一种基于区块链的数据转移设备,所述设备包括收发器、处理器和存储器,其中所述处理器用于执行所述存储器中存储的计算机程序,实现上面所述任意一种可能的实施例。

一方面,本申请还提供了一种计算机可读存储介质,所述可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上面各方面所述的方法。

本申请实施例中业务服务节点接收第一节点发送的约束文件信息,所述约束文件信息为根据第一交易方和第二交易方之间发生的交易事件而确定的,所述约束文件信息包括第一数字签名、第二数字签名、第三数字签名、所述交易事件的标识、预设时间、第一预设数据转移量、所述第二交易方的账户信息以及约束方的账户信息;所述业务服务节点将所述约束文件信息、所述第一交易方的标识、所述第二交易方的标识以及所述约束方的标识发送至共识节点,以使所述共识节点分别根据所述第一交易方的标识、所述第二交易方的标识以及所述约束方的标识在区块链网络中查找所述第一交易方、所述第二交易方和所述约束方的公钥,对所述约束文件信息进行验签,若验签成功,则所述共识节点返回共识确认消息;所述业务服务节点在接收到所述共识节点返回的共识确认消息满足预设的共识策略的情况下,根据所述约束文件信息生成约束智能合约,并将所述约束智能合约上传至所述区块链网络中;若所述约束智能合约在所述预设时间内,在所述区块链网络中没有查找到所述交易事件对应的交易完成事件的区块,则从所述约束方的账户中将所述第一预设数据转移量转移至所述第二交易方的账户中。本申请通过约束方对第一交易方和第二交易方之间的交易事件进行约束,并且将所述约束文件信息上传至区块链网络中,在预设时间内所述交易事件没有完成,调用智能合约根据所述约束文件信息从约束方的账户将第一预设数据转移量转移至所述第二交易方的账户,实施本申请,可以提高数据转移的效率,并且保证了交易事件中数据转移的可靠性。

附图说明

图1为本申请实施例提供的一种基于区块链的数据转移的方法流程示意图;

图2为本申请实施例提供的一种基于区块链的数据转移的方法的应用场景图;

图3为本申请实施例提供的一种基于区块链的数据转移的系统的结构框图;

图4为本申请实施例提供的一种基于区块链的数据转移的装置的结构框图;

图5为本申请实施例提供的一种基于区块链的数据转移的设备的结构框图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

下面结合附图来对本申请的技术方案的实施作进一步的详细描述。

参见图1,图1为本申请实施例提供的一种基于区块链的数据转移的方法流程示意图。如图1所示,本实施例具体执行步骤如下:

s100、业务服务节点接收第一节点发送的约束文件信息,所述约束文件信息包括第一数字签名、第二数字签名、第三数字签名、交易事件的标识、预设时间、第一预设数据转移量、所述第二交易方的账户信息以及约束方的账户信息。具体的,所述业务服务节点可以是区块链网络中的任意一个节点。

下面对所述交易事件进行说明。在一种可能的实现方式中,所述业务服务节点接收第一节点发送的约束文件信息之前包括:所述业务服务节点接收第三节点提交的交易事件提交请求,所述交易事件提交请求携带所述交易事件的标识、所述第一交易方的标识、所述第二交易方的标识、至少两个数字签名、交易对象以及交易数据转移量。具体的,所述交易事件包括第一交易方和第二交易方,所述第三节点可以是所述第一交易方的终端设备或所述第二交易方的终端设备,也可以是所述第一交易方和所述第二交易方通过其他终端设备向所述业务服务节点发送所述交易事件提交请求。可选的,所述交易数据转移量不小于所述第一预设数据转移量。所述交易事件可以理解成所述第一交易方和所述第二交易方之间约定进行的数据转移,举例来说,第一交易方甲和第二交易方乙之间进行货货交易,比如甲先给乙一本电子书c,乙在2020年1月20日之前给甲一本电子书d,所述交易事件提交请求中的交易对象指的是先兑现的对象,在这里是电子书c,而交易事件提交请求中的数据转移量指的是后兑现的对象,在这里是电子书d,进一步的,针对当甲向乙发送电子书c,乙接收电子书c之后并承诺2020年1月20日之前给甲一本电子书d的这个交易事件生成一段代码,所述交易事件提交请求是将生成的代码段进行提交,在代码中将电子书c定义为交易对象,将电子书d定义为数据转移量,所述交易事件的标识可以是代码段的函数命名或者将代码段封装成一个模块的模块命名等。可以理解的是;货也可以是一种虚拟货物,比如在电子游戏中,游戏玩家甲向乙提出用a装备与乙的b特效进行交换的请求,乙接受了这个请求,然后收下了甲的a装备,所述交易事件提交请求中的对象指的是提出申请的对象,在这里是a装备,而所述交易事件提交请求中的数据转移量指的是接收申请的对象,在这里是b特效,进一步的,针对游戏玩家甲向乙提出用a装备与乙的b特效进行交换的请求,乙接受了请求的这个交易事件生成一个另一段代码,所述交易事件提交请求是将生成的代码段进行提交,在代码中将a装备定义为交易对象,将b特效定义为数据转移量,同理的,所述交易事件的标识可以是代码段的函数命名或者将代码段封装成一个模块的模块命名等。又例如第一交易方和第二交易方之间进行钱货交易,比如甲用10万块钱向乙购买一套房子,约定在2020年1月20日把钱给乙,所述交易事件提交请求中的对象指的是房子,所述交易事件提交请求中的交易数据转移量是10万块钱,进一步的,甲乙交易双方可以针对交易事件签署一份合同,所述交易事件的标识可以是合同编号,并且这份合同包括甲乙双方的数字签名、交易对象房子、交易数据转移量10万块钱。

所述业务服务节点将所述交易事件提交请求发送至共识节点,以使所述共识节点根据所述第一交易方的标识和所述第二交易方的标识,在所述区块链网络中查找所述第一交易方的公钥和所述第二交易方的公钥,对所述交易事件提交请求中的至少两个数字签名进行验签,得到第四校验码和第五校验码;所述共识节点对所述交易事件提交请求进行哈希运算,得到第六校验码;若所述第四校验码、第五校验码和所述第六校验码相同,所述共识节点返回共识确认消息。具体的,所述共识确认消息可以认为是确认所述交易事件提交请求中携带的至少两个数字签名是所述第一交易方和所述第二交易方的数字签名。在所述业务服务节点接收到所述共识节点返回的共识确认消息满足预设的共识策略的情况下,根据所述交易事件提交请求生成待加入区块,并将所述待加入区块上传至区块链中。示例性的,所述区块链网络中包括多个共识节点,所述多个共识节点可以包括第二业务服务节点、第三业务服务节点和/或第三业务服务节点等等。所述预设的共识策略可以为返回共识确认消息的共识节点数量不小于第一预设数量。所述第一预设数量可以为60、70或90等,示例性的,所述区块链网络中包括100个共识节点,所述第一预设数量为90,当返回共识确认消息的共识节点不小于90个,所述业务服务节点判断所述共识节点返回的共识确认消息满足预设的共识策略。又例如,所述区块链网络中包括多个共识节点,所述预设的共识策略为返回共识确认消息的共识节点占所述区块链网络中所有节点的比例大于第一预设比例阈值。所述第一预设比例阈值可以为50%、60%或70%等,示例性的,所述区块链网络中包括1000个共识节点,所述第一预设比例阈值为50%,当返回共识确认消息的共识节点超过500个,所述第一业务服务节点判断所述共识节点返回的共识确认消息满足预设的共识策略,可以将所述交易事件提交请求的区块上传至所述区块链网络中。

s101、所述业务服务节点将所述约束文件信息、第一交易方的标识、第二交易方的标识以及约束方的标识发送至共识节点,以使所述共识节点分别根据所述第一交易方的标识、所述第二交易方的标识以及所述约束方的标识在区块链网络中查找所述第一交易方、所述第二交易方和所述约束方的公钥,对所述约束文件信息进行验签,若验签成功,则所述共识节点返回共识确认消息。具体的,所述共识节点根据所述第一交易方、所述第二交易方和所述约束方的公钥对所述约束文件信息进行解密,分别得到第七校验码、第八校验码和第九校验码;所述共识节点对所述约束文件信息进行哈希运算,得到第十校验码;若所述第七校验码、所述第八校验码、所述第九校验码和所述第十校验码相同,则确认对所述约束文件信息验签成功。

s102、在所述业务服务节点接收到所述共识节点返回的共识确认消息满足预设的共识策略的情况下,根据所述约束文件信息生成约束智能合约,并将约束智能合约上传至所述区块链网络中。具体的,在经过步骤s101后,所述业务服务节点判断所述共识节点返回的共识确认消息是否满足预设的共识策略,例如所述预设的共识策略可以为返回共识确认消息的共识节点数量不小于第二预设数量。所述区块链网络中包括多个共识节点,所述多个共识节点可以包括第一共识节点和第二共识节点等,所述多个共识节点还可以包括第二业务服务节点、第三业务服务节点和/或第三业务服务节点等等。示例性的,所述区块链网络中包括100个共识节点,所述第二预设数量可以为50、60或65等,若所述第二预设数量为60,当返回共识确认消息的共识节点不小于60个,所述业务服务节点判断所述共识节点返回的共识确认消息满足预设的共识策略。又例如,所述预设的共识策略为返回共识确认消息的共识节点占所述区块链网络中所有节点的比例大于第二预设比例阈值。所述区块链网络中包括多个共识节点,示例性的,所述区块链网络中包括1000个共识节点,所述第二预设比例阈值可以为50%、60%或65%等,若所述第二预设比例阈值为60%,当返回共识确认消息的共识节点超过600个,所述业务服务节点判断所述共识节点返回的共识确认消息满足预设的共识策略。若所述业务服务节点判断所述共识节点返回的共识确认消息满足预设的共识策略,进一步的,所述业务服务节点还可以根据所述第一交易方的标识在所述区块链网络中查找所述第一交易方在预设时间段内的数据转移量,若在预设时间段内转入所述第一交易方的账户的数据转移量大于第三预设数据转移量,则触发智能合约将所述约束文件信息中包括的第一数字签名、第二数字签名、第三数字签名、所述交易事件的标识、预设时间、第一预设数据转移量、所述第二交易方的账户信息以及约束方的账户信息进行提取,填充至所述智能合约,生成所述约束智能合约,并将所述约束智能合约上传至所述区块链网络中。

s103、若所述约束智能合约在预设时间内,在区块链网络中没有查找到所述交易事件对应的交易完成事件的区块,则从所述约束方的账户中将第一预设数据转移量转移至所述第二交易方的账户中。

具体的,在步骤s102所述将所述约束智能合约上传至所述区块链网络中之后:所述业务服务节点接收第二节点发送的交易完成事件信息,所述交易完成事件信息包括至少两个数字签名;所述业务服务节点将所述交易完成事件信息、所述第一交易方的标识和所述第二交易方的标识发送至共识节点,所述共识节点根据所述第一交易方的标识和所述第二交易方的标识在所述区块链网络中查找所述第一交易方的公钥和所述第二交易方的公钥,对所述交易完成事件进行验签,分别得到第一校验码和第二校验码;所述共识节点对所述交易完成事件信息进行哈希运算,得到第三校验码;若所述第一校验码、所述第二校验码和所述第三校验码相同,所述共识节点返回共识确认消息;在所述业务服务节点接收到所述共识节点返回的共识确认消息满足预设的共识策略的情况下,根据所述交易完成事件信息生成所述交易事件对应的交易完成事件的区块,并将所述交易完成事件的区块上传至所述区块链网络中。这里对所述交易完成事件中的至少两个签名进行验签,以验证所述至少两个数字签名是所述第一交易方和所述第二交易方的数字签名,从而保证所述交易完成事件的真实性。所述共识策略可以为返回共识确认消息的共识节点数量不小于第三预设数量,所述区块链网络中包括多个共识节点,所述多个共识节点可以包括第一共识节点和第二共识节点等,所述多个共识节点还可以包括第二业务服务节点、第三业务服务节点和/或第三业务服务节点等等。示例性的,所述区块链网络中包括100个共识节点,所述第三预设数量可以为55、65或75等,若所述第三预设数量为65,当返回共识确认消息的共识节点不小于65个,所述业务服务节点判断所述共识节点返回的共识确认消息满足预设的共识策略。所述预设的共识策略也可以是返回共识确认消息的共识节点占所述区块链网络中所有节点的比例大于第三预设比例阈值。所述区块链网络中包括多个共识节点,示例性的,所述区块链网络中包括1000个共识节点,所述第三预设比例阈值可以为55%、65%或75%等,若所述第三预设比例阈值为65%,当返回共识确认消息的共识节点超过650个,所述业务服务节点判断所述共识节点返回的共识确认消息满足预设的共识策略。

若所述智能合约没有在预设的时间内在所述区块链网络中没有查找到所述交易事件对应的交易完成事件的区块,比如所述预设时间为2010年1月20日,在所述预设时间内,所述第一交易方和所述第二交易方还是没有完成交易,即所述交易完成事件的区块没有在所述区块链中,所述约束智能合约自动从所述约束方的账户中将所述第一预设数据转移量转移至所述第二交易方的账户中。例如,所述第一预设数据转移量为10万块钱,所述约束方的账户是“123456”,所述第二交易方的账户是“456789”,则所述约束智能合约从账户“123456”中转移10万块钱至账户“4567899”中;又例如,所述第一预设数据转移量是电子书d,所述约束方的账户是“aaa”,所述第二交易方的账户是“bbb”,则所述约束智能合约从账户“aaa”中向账户“bbb”转移电子书d;又例如,所述第一预设数据转移量是特效b,所述约束方的账户是“a12”,所述第二交易方的账户是“a13”,则所述约束智能合约从账户“a12”中向账户“a13”转移特效b等等。

进一步的,所述约束文件信息中还包括所述交易事件中的交易对象;经过步骤s103从所述约束方的账户中将所述第一预设数据转移量转移至所述第二交易方的账户中之后,所述约束智能合约将交易对象的状态标记为锁定状态。具体的,以所述第一交易方甲用a装备与所述第二交易方乙交换b特效的交易事件为例,交易对象是特效b,若所述第二交易方在预设的时间内没有向所述第一交易方发送b特效,所述约束智能自动从所述约束方的账户将b特效转移向所述第二交易方的账户后,将乙的b特效进行锁定,当b特效处于锁定状态时,所述第二交易方乙不能使用b特效。

更进一步的,若所述业务服务节点检测到所述第一交易方将第二预设数据转移量转移至所述约束方的账户后,调用所述约束智能合约将所述交易对象的状态从锁定状态修改为未锁定状态。具体的,若所述第二交易方向所述约束方转移所述第二预设数据,例如b特效和/或5个经验积分,所述约束智能合约将所述交易对象进行解锁,所述乙的b特效处于未锁定状态,所述第二交易方乙可以重新使用b特效。

在一种可能的实施例中,若所述约束智能合约在所述预设的时间内,在所述区块链网络中检测到所述交易事件对应的交易完成事件的区块,将所述交易完成事件保存在所述约束智能合约中,并将所述约束智能合约的状态标记为已完成状态。具体的,所述步骤s103中所述约束智能合约在所述预设时间内在所述区块链网络中没有检测到所述交易完成事件的区块,则自动地从所述约束方的账户向所述第二交易方转移第一预设数据转移量,若所述约束智能合约可以在所述预设时间内在所述区块链查找到所述交易完成事件的区块,代表所述第一交易方和所述第二交易方之间的交易已完成,所述约束智能合约不用自动执行了,将所述约束智能合约标记为已完成状态,可以理解为是不再执行从所述约束方的账户向所述第二交易方的账户转移所述第一预设转移数据的代码段。

本申请通过约束方对第一交易方和第二交易方之间的交易事件进行约束,并且将约束文件信息上传至区块链网络中,在预设时间内所述交易事件没有完成,调用智能合约根据所述约束文件信息从约束方的账户将第一预设数据转移量转移至所述第二交易方的账户,实施本申请,可以提高数据转移的效率,并且保证了交易事件中数据转移的可靠性。

下面结合附图对一种基于区块链的数据转移方法的应用场景进行示例性说明。

参见图2,图2为本申请实施例提供的一种基于区块链的数据转移的方法的应用场景图。如图2所示,第一交易方甲和第二交易方乙之间进行了交易事件:甲向乙发送a,乙向甲发送b;针对甲和乙之间的交易事件,通过第三节点21执行步骤s200向所述第一业务服务节点20发送交易事件提交请求,所述第三节点21可以是所述第一交易方甲的终端设备或所述第二交易方乙的终端设备,所述交易提交请求中携带所述交易事件标识“111”、第一交易方“甲”、第二交易方“乙”、交易对象a、交易数据转移量c1、数字签名1和数字签名2,以甲用10个q币向乙购买一套装备b为例,a代表装备b,交易数据转移量c1是10个q币。所述业务服务节点20在接收到所述第三节点21发送的交易事件提交请求后,所述业务服务节点20执行步骤s201将所述交易事件提交请求发送至共识节点,所述共识节点可以包括多个节点,例如第一共识节点24和/或第二共识节点25等等,所述共识节点根据所述交易事件提交请求进行验签,具体验签过程可以参考前文结合图1所描述的实施例,此处不作赘述。在所述共识节点验签成功后,向所述业务服务节点20返回共识确认消息。所述业务服务节点20在所述共识节点返回的共识确认消息满足预设的共识策略的情况下,例如所述共识策略可以为返回共识确认消息的共识节点数量不小于第四预设数量,所述共识策略也可以为返回共识确认消息的共识节点数量不小于第四预设比例阈值。由此,所述业务服务节点20确定所述交易事件提交请求中的数字签名1和数字签名2分别为所述第一交易方甲和所述第二交易方乙的数字签名,保证所述交易事件提交请求的真实性,所述业务服务节点20执行步骤s202将所述交易事件提交请求生成的待加入区块上传至所述区块链网络中。

第一节点22执行步骤s203向所述业务服务节点20发送约束文件信息,所述约束文件信息是根据所述交易事件确定的,可以是所述第一节点22在接收到第一交易方甲或第二交易方乙提交的约束申请请求后在所述区块链网络中查找所述交易事件,根据所述交易事件生成约束文件,约束文件信息包括交易事件标识“111”、预设时间2020年1月20日、第一预设数据转移量c2、第二交易方乙的账户“123456”、约束方的账户“456789”、数字签名3、数字签名4和数字签名5,示例性的,所述第一预设数据转移量c2可以与所述交易数据转移量c1相同,例如10个q币。所述业务服务节点20在接收到所述约束文件信息后执行步骤步骤s204向共识节点发送所述约束文件信息,所述共识节点可以包括多个节点,例如第一共识节点24和/或第二共识节点25等等,所述共识节点根据所述约束文件信息进行验签,具体验签过程可以参考前文结合图1所描述的实施例,此处不作赘述。在所述共识节点验签成功后,向所述业务服务节点20返回共识确认消息。所述业务服务节点20在所述共识节点返回的共识确认消息满足预设的共识策略的情况下,例如所述共识策略可以为返回共识确认消息的共识节点数量不小于第五预设数量,所述共识策略也可以为返回共识确认消息的共识节点数量不小于第五预设比例阈值。由此,所述业务服务节点20确认所述约束文件信息中的数字签名3、数字签名4和数字签名5分别为所述第一交易方甲、所述第二交易方乙和所述约束方的数字签名,保证了所述约束文件信息的真实性,所述业务服务节点20执行步骤s205生成约束智能合约,若第二节点23在预设时间之前执行步骤s206向所述业务服务节点20上传了交易完成事件,所述交易完成事件包括交易事件标识“111”、数字签名6和数字签名7,所述业务服务节点将所述交易完成事件上传至共识节点,所述共识节点可以包括多个节点,例如第一共识节点24和/或第二共识节点25等等,所述共识节点根据所述交易完成事件进行验签,具体验签过程可以参考前文结合图1所描述的实施例,此处不作赘述。在所述共识节点验签成功后,向所述业务服务节点20返回共识确认消息。所述业务服务节点20在所述共识节点返回的共识确认消息满足预设的共识策略的情况下,例如所述共识策略可以为返回共识确认消息的共识节点数量不小于第六预设数量,所述共识策略也可以为返回共识确认消息的共识节点数量不小于第六预设比例阈值。由此,所述业务服务节点确认所述交易完成事件中的数字签名6和数字签名7分别所述第一交易方甲和所述第二交易方乙的数字签名,保证了所述交易完成事件的真实性,所述业务服务节点20将所述交易完成事件对应的交易完成事件的区块上传至所述区块链网络中。则所述业务服务节点20在所述预设时间执行步骤s207在所述区块链网络中查找所述交易完成事件对应的区块时,可以查找到所述交易完成事件的区块,所述业务服务节点执行步骤s208a标记所述约束智能合约的状态为已完成状态。若所述第二节点23没有执行步骤s206,即没有在预设时间内向所述业务服务节点20上传所述交易完成事件,所述业务服务节点20在执行步骤s207时在所述区块链网络中查找不到所述交易完成事件对应的区块,所述业务服务节点调用所述约束智能合约执行步骤s208b,从约束方丙的账户“456789”将c2转移至所述第二交易方乙的账户“123456”中,示例性的,从账户“456789”将10个q币转移至账户“123456”中。进一步的,所述业务服务节点20可以继续执行步骤s209标记交易对象a为锁定状态,即将所述第二交易方乙发送给所述第二交易方的装备b进行锁定,代表所述第一交易方甲不可以使用装备b。若所述业务服务节点检测到第一交易方甲向约束方丙的账户“456789”转移了转移数据量c3,例如10个q币,所述业务服务节点20执行步骤s210标记交易对象a为未锁定状态,例如对甲的装备b进行解锁,所述第一交易方甲在所述交易对象处于未锁定状态时可以使用装备b。

下面结合附图对本申请实施例提供的一种基于区块链的数据转移系统,参见图3,图3为本申请实施例提供的一种基于区块链的数据转移的系统的结构框图。如图3所示,基于区块链的数据转移系统30包括:业务服务节点300、第一节点301、第一共识节点302、第二共识节点303、第二节点304和第三节点305等,其中:

所述业务服务节点300可以是服务器,也可以是其他具有接收和发送功能的终端设备,所述业务服务节点300用于接收信息和请求,例如所述业务服务节点300用于接收约束文件信息、交易完成事件信息和交易事件提交请求;所述业务服务节点300还用于发送信息和请求,例如所述业务服务节点300还用于将接收到的信息和请求发送至共识节点,所述共识节点可以包括有多个,例如第一共识节点302和第二共识节点303,用于对所述业务服务节点300提交的请求数据进行共识确认,在共识确认后向所述业务服务节点300返回共识确认的消息,所述共识节点还可以包括多个共识节点,此处只作示例性说明。所述第一节点301可以是所述第一交易方或所述第二交易方的终端设备,所述第一节点301用于向所述业务服务节点300发送约束文件信息;所述第二节点304也可以是所述第一交易方或所述第二交易方的终端设备,所述第二节点304用于向所述业务服务节点300发送交易完成事件信息;所述第三节点305可以是所述第一交易方、第二交易方或约束方的终端设备,所述第三节点305用于向所述业务服务节点300提交交易事件提交请求。所述第一节点301、所述第二节点304和所述第三节点305可以是同一个终端设备,所述业务服务节点300、第一节点301、第一共识节点302、第二共识节点303、第二节点304和第三节点305均为区块链网络中的节点。

本申请实施例还提供了一种基于区块链的数据转移装置,参见图4,图4为本申请实施例提供的一种基于区块链的数据转移的装置的结构框图。如图4所示,基于区块链的数据转移装置40包括:

接收模块400,用于接收第一节点发送的约束文件信息,所述约束文件信息为根据第一交易方和第二交易方之间发生的交易事件而确定的,所述约束文件信息包括第一数字签名、第二数字签名、第三数字签名、所述交易事件的标识、预设时间、第一预设数据转移量、所述第二交易方的账户信息以及约束方的账户信息;

发送模块401,用于将所述约束文件信息、所述第一交易方的标识、所述第二交易方的标识以及所述约束方的标识发送至共识节点,以使所述共识节点分别根据所述第一交易方的标识、所述第二交易方的标识以及所述约束方的标识在区块链网络中查找所述第一交易方、所述第二交易方和所述约束方的公钥,对所述约束文件信息进行验签;所述共识节点根据所述第一交易方、所述第二交易方和所述约束方的公钥对所述约束文件信息进行解密,分别得到第七校验码、第八校验码和第九校验码;所述共识节点对所述约束文件信息进行哈希运算,得到第十校验码;若所述第七校验码、所述第八校验码、所述第九校验码和所述第十校验码相同,则确认对所述约束文件信息验签成功;若验签成功,则所述共识节点返回共识确认消息;

生成模块402,用于接收到所述共识节点返回的共识确认消息满足预设的共识策略的情况下,根据所述约束文件信息生成约束智能合约;

所述发送模块401,还用于将所述约束智能合约上传至所述区块链网络中;

转移模块403,用于在所述预设时间内,在所述区块链网络中没有查找到所述交易事件对应的交易完成事件的区块,则从所述约束方的账户中将所述第一预设数据转移量转移至所述第二交易方的账户中。

在一种可能的实现方式中,所述接收模块400,还用于所述业务服务节点接收第二节点发送的交易完成事件信息,所述交易完成事件信息包括至少两个数字签名;

所述发送模块401,将所述交易完成事件信息、所述第一交易方的标识和所述第二交易方的标识发送至共识节点,以使所述共识节点根据所述第一交易方的标识和所述第二交易方的标识在所述区块链网络中查找所述第一交易方的公钥和所述第二交易方的公钥,对所述交易完成事件进行验签,分别得到第一校验码和第二校验码;所述共识节点对所述交易完成事件信息进行哈希运算,得到第三校验码;若所述第一校验码、所述第二校验码和所述第三校验码相同,所述共识节点返回共识确认消息;

在所述接收模块400接收到所述共识节点返回的共识确认消息满足预设的共识策略的情况下,所述生成模块402还用于根据所述交易完成事件信息生成所述交易事件对应的交易完成事件的区块,所述发送模块401还用于将所述交易完成事件的区块上传至区块链网络中。

在一种可能的实施例中,所述基于区块链的数据转移装置40还包括标记模块404,所述约束文件信息中还包括所述交易事件中的交易对象;

所述标记模块404用于在所述转移模块403从所述约束方的账户中将所述第一预设数据转移量转移至所述第二交易方的账户中之后,将所述交易对象的状态标记为锁定状态。

进一步的,所述基于区块链的数据转移装置40还包括检测模块405,所述检测模块405用于检测所述第一交易方是否将第二预设数据转移量转移至所述约束方的账户,所述标记模块404还用于在所述检测模块405检测到所述第一交易方将第二预设数据转移量转移至所述约束方的账户后,将所述交易对象的状态从锁定状态修改为未锁定状态。

可选的,所述接收模块400,还用于接收第三节点提交的交易事件提交请求,所述交易事件提交请求携带所述交易事件的标识、所述第一交易方的标识、所述第二交易方的标识、至少两个数字签名、交易对象以及交易数据转移量;所述交易数据转移量不小于所述第一预设数据转移量;

所述发送模块401,还用于将所述交易事件提交请求发送至共识节点,以使所述共识节点根据所述第一交易方的标识和所述第二交易方的标识,在所述区块链网络中查找所述第一交易方的公钥和所述第二交易方的公钥,对所述交易事件提交请求中的至少两个数字签名进行验签,得到第四校验码和第五校验码;所述共识节点对所述交易事件提交请求进行哈希运算,得到第六校验码;若所述第四校验码、第五校验码和所述第六校验码相同,所述共识节点返回共识确认消息;

在所述接收模块400接收到所述共识节点返回的共识确认消息满足预设的共识策略的情况下,所述生成模块402根据所述交易事件提交请求生成待加入区块,所述发送模块401将所述待加入区块上传至区块链中。

在一种可能的实施例中,若所述检测模块405在所述预设的时间内,在所述区块链网络中检测到所述交易事件对应的交易完成事件的区块,所述标记模块404将所述交易完成事件保存在所述约束智能合约中,并将所述约束智能合约的状态标记为已完成状态。

参见图5,图5为本申请实施例提供的一种基于区块链的数据转移的设备的结构框图。如图5所示,的数据转移设备50包括收发器500、处理器501以及存储器502,其中:

所述收发器500用于接收约束文件信息、交易完成事件信息、交易事件提交请求以及共识节点返回的共识确认消息,所述处理器500可以是中央处理单元(centralprocessingunit,cpu),该处理器还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

所述存储器502中存储有指令,可以理解的是,所述存储器502中存储有所述合作项目数据。示例性的,所述存储器502可以包括只读存储器和随机存取存储器,并向处理器501和收发器500提供指令和数据。存储器502的一部分还可以包括非易失性随机存取存储器。例如,存储器502还可以存储设备类型的信息

所述处理器501,用于执行所述存储器中存储的计算机程序,实现前文所述的任意一种可能的实施例。

具体实现中,上述业务申请设备可通过其内置的各个功能模块执行如上述图1到图3中各个步骤所提供的实现方式,具体可参见上述图1到图3中各个步骤所提供的实现方式,在此不再赘述。

本申请提供了一种计算机可读存储介质,所述可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行前文所述的任意一种可能的实施例。

需要说明的是,上述术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性。

在本申请所提供的几个实施例中,应该理解到,所揭露的方法、装置以及系统,可以通过其它的方式实现。以上所描述的实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。

上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。

另外,在本发明各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。

本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

或者,本发明上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

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