一种基于区块链的交易方法及系统与流程

文档序号:16267685发布日期:2018-12-14 22:01阅读:274来源:国知局
一种基于区块链的交易方法及系统与流程

本发明涉及区块链技术领域,尤其涉及一种基于区块链的交易方法及系统。

背景技术

随着2009年比特币的出现,区块链技术也随之发展。区块链技术,又称为“分布式账本技术”,是一种去中心化、集体维护分布式账本的技术方案,其本质是由多个节点集体参与的分布式数据库系统。区块链不是一种单一的技术,而是多种技术整合的结果,利用区块链技术维护一个可靠的、难以篡改的账本记录,可以降低信任的风险,并能有效的降低众参与方协作的维护成本。在区块链实际应用中,每个用户会产生一对非对称密钥对,用于区块链上的交易签名,其对应公钥的hash值作为其交易账户的身份标识。考虑到安全性、效率等多种因素,区块链非对称加密算法一般选用ecc(椭圆曲线)算法,其算法的安全性取决于椭圆曲线离散对数问题(ecdlp)的难解性。

当区块链的账户中数字货币或者其他金融货币的价值越来越高,账户的安全性也随之成为焦点。区块链的私钥是唯一证明用户身份的数据,用户的核心资产如比特币也由且仅由私钥控制,如果用户钱包私钥丢失或者设备损毁,而且不能恢复私钥,则会致使用户的账户无法使用,账户中的数字货币或者数字资产无法提取的问题。



技术实现要素:

为解决现有技术中的技术问题,本发明实施例提供了一种基于区块链的交易方法及系统,可建立冷钱包、热钱包以及用户钱包的关联关系,便于恢复运营商热钱包密钥因子以及用户钱包密钥因子,从而避免由于设备损毁造成运营商、用户钱包中数字资金的损失。

一方面,本发明实施例提供了一种基于区块链的交易方法,其特征在于包括:

生成运营商冷钱包密钥因子,其中所述运营商冷钱包密钥因子用于生成运营商冷钱包公私密钥对;

根据所述运营商冷钱包密钥因子以及运营商信息生成运营商热钱包密钥因子,其中所述运营商热钱包密钥因子用于生成运营商热钱包公私密钥对;

根据所述运营商热钱包密钥因子以及用户信息生成用户钱包密钥因子,利用所述用户钱包密钥因子生成用户钱包公私密钥对。

根据本发明实施例方法,还包括,通过运营商热钱包与多个用户钱包进行数字资金交易,当所述运营商热钱包中的数字资金超过第一门限值时,利用所述运营商热钱包私钥将所述运营商热钱包中的数字资金归集到运营商冷钱包中。

根据本发明实施例方法,还包括,当所述运营商热钱包中的数字资金低于第二门限值时,利用所述运营商冷钱包私钥将所述运营商冷钱包中的数字资金转账到运营商热钱包中。

根据本发明实施例方法,在生成运营商冷钱包密钥因子中进一步包括,将所述运营商冷钱包密钥因子存储于第一存储介质。

根据本发明实施例方法,将所述运营商冷钱包密钥因子存储于第一存储介质中进一步包括,将所述运营商冷钱包密钥因子拆分为多个部分,分散保存于多个所述第一存储介质中,当需要恢复所述运营商冷钱包密钥因子时,利用数量大于第一密钥门限值的所述第一存储介质中存储的部分运营商冷钱包密钥因子,恢复所述运营商冷钱包密钥因子。

根据本发明实施例方法,在根据所述运营商冷钱包密钥因子以及运营商信息生成运营商热钱包密钥因子中进一步包括,将所述运营商热钱包密钥因子存储于第二存储介质。

根据本发明实施例方法,根据所述运营商冷钱包密钥因子以及运营商信息生成运营商热钱包密钥因子中进一步包括,将所述运营商冷钱包密钥因子与所述运营商信息进行hkdf_sha256运算后,派生得到所述运营商热钱包密钥因子。

根据本发明实施例方法,根据所述运营商热钱包密钥因子以及用户信息生成用户钱包密钥因子进一步包括,将所述运营商热钱包密钥因子与所述用户信息进行hkdf_sha256运算后,派生得到所述用户钱包密钥因子。

根据本发明实施例方法,所述用户钱包密钥因子、用户钱包私钥保存于运营商热钱包加密机的计算机中。

另一方面,本发明实施例还提供了一种基于区块链的交易系统,其特征在于包括:

运营商冷钱包加密机,用于生成运营商冷钱包密钥因子,其中所述运营商冷钱包密钥因子用于生成运营商冷钱包公私密钥对;

运营商热钱包加密机,用于根据所述运营商冷钱包密钥因子以及运营商信息生成运营商热钱包密钥因子,其中所述运营商热钱包密钥因子用于生成运营商热钱包公私密钥对;

所述运营商热钱包加密机还用于根据所述运营商热钱包密钥因子以及用户信息生成用户钱包密钥因子,利用所述用户钱包密钥因子生成用户钱包公私密钥对。

根据本发明实施例所述的系统,还包括交易业务装置,用于通过运营商热钱包与多个用户钱包进行数字资金交易;

还包括交易维护装置,用于当所述运营商热钱包中的数字资金超过第一门限值时,利用所述运营商热钱包加密机中生成的运营商热钱包私钥将所述运营商热钱包中的数字资金归集到所述运营商冷钱包中。

根据本发明实施例所述的系统,所述交易维护装置还用于,当所述运营商热钱包中的数字资金低于第二门限值时,利用所述运营商冷钱包加密机中生成的运营商冷钱包私钥将所述运营商冷钱包中的数字资金转账到运营商热钱包中。

根据本发明实施例所述的系统,还包括冷钱包密钥拆分程序,运行于所述运营商冷钱包加密机,用于将所述运营商冷钱包密钥因子拆分为多个部分,分散保存于多个所述第一存储介质中,当需要恢复所述运营商冷钱包密钥因子时,利用数量大于第一密钥门限值的所述第一存储介质中存储的部分运营商冷钱包密钥因子,恢复所述运营商冷钱包密钥因子。

根据本发明实施例所述的系统,所述运营商冷钱包加密机包括具有ic芯片的智能卡,将所述运营商冷钱包密钥因子存储于所述具有ic芯片的智能卡。

根据本发明实施例所述的系统,还包括热钱包密钥拆分程序,运行于所述运营商热钱包加密机,用于将所述运营商热钱包密钥因子拆分为多个部分,分散保存于多个所述第二存储介质中,当需要恢复所述运营商热钱包密钥因子时,利用数量大于第二密钥门限值的所述第二存储介质中存储的部分运营商热钱包密钥因子,恢复所述运营商热钱包密钥因子。

根据本发明实施例所述的系统,所述运营商热钱包加密机包括具有ic芯片的智能卡,将所述运营商热钱包密钥因子存储于所述具有ic芯片的智能卡。

根据本发明实施例所述的系统,所述用户钱包密钥因子、用户钱包私钥保存于运营商热钱包加密机的计算机中。

另一方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机指令,该计算机指令被处理器执行时实现以下步骤:生成运营商冷钱包密钥因子,其中所述运营商冷钱包密钥因子用于生成运营商冷钱包公私密钥对;

根据所述运营商冷钱包密钥因子以及运营商信息生成运营商热钱包密钥因子,其中所述运营商热钱包密钥因子用于生成运营商热钱包公私密钥对;

根据所述运营商热钱包密钥因子以及用户信息生成用户钱包密钥因子,利用所述用户钱包密钥因子生成用户钱包公私密钥对。

利用本发明实施例的方法及系统,可以解决区块链网络中相关账户公私密钥没有相关性,当某个密钥(特别是私钥)丢失或者设备损毁造成账户数字资金受损的问题,可以实现当运营商热钱包私钥或者用户钱包私钥丢失或者设备损毁,可以通过运营商冷钱包密钥因子恢复运营商热钱包私钥或者用户钱包私钥等交易关键信息,避免用户数字资金损失。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例一种基于区块链的交易方法流程示意图;

图2所示为本发明实施例一种基于区块链的交易系统的结构示意图;

图3所示为本发明实施例一种基于区块链的交易系统中用户充值数据流图;

图4所示为本发明实施例一种基于区块链的交易系统中用户提现数据流图;

图5所示为本发明实施例一种恢复用户钱包私钥的流程图。

具体实施方式

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

图1为本发明实施例一种基于区块链的交易方法流程示意图,本实施例中的方法应用于运营商平台与多个用户之间的数字资金交易,运营商平台通过热钱包与多个用户之间进行数字资金交易,当运营商热钱包中的数字资金达到某个门限值时,将会将运营商热钱包中的数字资金归集到运营商冷钱包中。每一笔数字资金交易所需的私钥(包括运营商冷钱包的私钥、运营商热钱包的私钥、用户的私钥)都是由冷钱包私钥以及运营商或者用户信息派生而成,因此当用户钱包私钥或者运营商热钱包私钥丢失或者设备损毁,可以由冷钱包私钥以及运营商信息或者用户信息派生而成。本实施例方法具体包括:

步骤101,生成运营商冷钱包密钥因子,其中所述运营商冷钱包密钥因子用于生成运营商冷钱包公私密钥对;

步骤102,根据所述运营商冷钱包密钥因子以及运营商信息生成运营商热钱包密钥因子,其中所述运营商热钱包密钥因子用于生成运营商热钱包公私密钥对;

步骤103,根据所述运营商热钱包密钥因子以及用户信息生成用户钱包密钥因子,利用所述用户钱包密钥因子生成用户钱包公私密钥对。

作为本申请的一个实施例,还包括,通过所述运营商热钱包与多个用户钱包进行数字资金交易,当所述运营商热钱包中的数字资金超过第一门限值时,利用所述运营商热钱包私钥将所述运营商热钱包中的数字资金归集到所述运营商冷钱包中。

其中,运营商可以为电商平台或交易所,电商平台或交易所与用户进行充币提币过程中,会发生交易数据,在本申请实施例中交易数据都为数字资金的交易数据,例如比特币、莱特币、以太坊币等数字货币,运营商的热钱包归集多个用户钱包的数字资金,当达到一定数额后(例如100万数字资金)转账到运营商冷钱包中,从而保证数字资金的安全。其中热钱包是指某个区块链账户,该账户运行于与网络连接的计算机上,该账户可以随时通过区块链网络与其他账户进行数字资金的交易,该账户的钱包即为热钱包;冷钱包是指某个区块链账户,运行该账户的计算机与互联网断网(或者置于安全可信的局域网中),所述计算机例如包括台式计算机、服务器、笔记本电脑、平板电脑、智能手机或者ic芯片,在本发明申请的实施例中,智能卡的ic芯片可以进行根据运营商冷钱包密钥因子生成运营商冷钱包私钥,以及公钥和冷钱包地址,需要进行冷钱包转账交易时,可以由ic芯片实时生成运营商冷钱包私钥以进行数字资金的交易。

作为本申请的一个实施例,还包括,当所述运营商热钱包中的数字资金低于第二门限值时,利用所述运营商冷钱包私钥将所述运营商冷钱包中的数字资金转账到运营商热钱包中。

其中,当用户钱包与运营商热钱包之间的电子交易较多,运营商热钱包中的数字资金不足以应对用户钱包的提现请求,则需要从运营商冷钱包中转入一定量的数字资金,例如第二门限值为10万时,当运营商热钱包中的数字资金低于10万时,则生成转账请求,发送给运营商冷钱包的托管方,请求将运营商冷钱包中的数字资金转入运营商热钱包。这个请求可以以手机信息或者电子邮件的方式发送给托管方,若托管方为多个用户分别持有一部分的运营商冷钱包密钥因子,则每一个用户都会接收到该请求,并当一定数量的用户共同将存储有部分运营商冷钱包密钥因子的智能卡插入同一台计算机中,才能恢复出完整的运营商冷钱包密钥因子,该运营商冷钱包密钥因子用于生成运营商冷钱包私钥,利用该私钥签名转账交易,完成冷钱包到热钱包的数字资金转账。当然,在完成转账交易后,需要在区块链网络中进行广播达成共识后更新区块链账簿,其中可能还涉及挖矿的报酬等常规技术,在本申请中不再赘述。

作为本申请的一个实施例,在生成运营商冷钱包密钥因子中进一步包括,将所述运营商冷钱包密钥因子存储于第一存储介质。

作为本申请的一个实施例,在根据所述运营商冷钱包密钥因子以及运营商信息生成运营商热钱包密钥因子中进一步包括,将所述运营商热钱包密钥因子存储于第二存储介质。

其中,可以将运营商冷钱包密钥因子存储于第一存储介质并将运营商热钱包密钥因子存储于运营商热钱包加密机(联网的计算机)中,或者还可以将运营商冷钱包密钥因子存储于第一存储介质并将运营商热钱包密钥因子存储于第二存储介质。第一存储介质和第二存储介质包括带有ic芯片的智能卡,该带有ic芯片的智能卡为一种具有数据处理和存储功能的智能卡,其通过ic芯片进行数据处理,通过内部的非易失性存储器例如rom进行数据存储,其中的数据存储区域采用了适当的加密或者保密措施。

作为本申请的一个实施例,将所述运营商冷钱包密钥因子存储于第一存储介质中进一步包括,将所述运营商冷钱包密钥因子拆分为多个部分,分散保存于多个所述第一存储介质中,当需要恢复所述运营商冷钱包密钥因子时,利用数量大于第一密钥门限值的所述第一存储介质中存储的部分运营商冷钱包密钥因子,恢复所述运营商冷钱包密钥因子。

作为本申请的一个实施例,将所述运营商热钱包密钥因子存储于第二存储介质进一步包括,将所述运营商热钱包密钥因子拆分为多个部分,分散保存于多个所述第二存储介质中,当需要恢复所述运营商热钱包密钥因子时,利用数量大于第二密钥门限值的所述第二存储介质中存储的部分运营商热钱包密钥因子,恢复所述运营商热钱包密钥因子。

其中,可以采用shamirsecretsharing(夏米尔密钥分享)算法将所述运营商冷钱包密钥因子拆分为多个,例如拆分为5份,每一份部分运营商冷钱包密钥因子存储于一个智能卡中,当需要恢复运营商冷钱包密钥因子时,利用shamirsecretsharing算法将大于密钥门限数量(例如3份)的部分运营商冷钱包密钥因子恢复成运营商冷钱包密钥因子,即设定shamirsecretsharing算法的参数为(3,5),拆分运营商冷钱包密钥因子为5份,通过其中的任意3份或以上就可以恢复完整的运营商冷钱包密钥因子;对于运营商热钱包密钥因子也可以采用类似上述冷钱包密钥因子的方式进行拆分和恢复。其中,shamirsecretsharing算法可以运行于计算机中,或者运行于具有ic芯片的智能卡中。

作为本申请的一个实施例,根据所述运营商冷钱包密钥因子以及运营商信息生成运营商热钱包密钥因子中进一步包括,将所述运营商冷钱包密钥因子与所述运营商信息结合后进行哈希运算,得到所述运营商热钱包密钥因子。

其中,所述运营商冷钱包密钥因子可以为256bit的随机数,可以由智能卡硬件生成的随机数字符串,运营商信息可以包括运营商id或者名称,将该信息转换为字符串,与所述随机数相结合,例如可以为加法或者为二进制的与、或操作等,对结合后的字符串进行哈希运算,形成的运营商热钱包密钥因子同样为256bit的字符串。根据区块链的通常算法,利用随机数生成私钥,以及根据私钥生成公钥和相应的账户地址,就构成了完整的区块链网络中的账户信息,通过上述的运营商热钱包密钥因子可以生成运营商热钱包私钥、公钥以及运营商热钱包地址,通过上述运营商冷钱包密钥因子可以生成运营商冷钱包私钥、公钥以及运营商冷钱包地址,通过相同的密钥因子以及相同的算法,可以得到相同的私钥、公钥以及钱包地址。

作为本申请的一个实施例,根据所述运营商热钱包密钥因子以及用户信息生成用户钱包密钥因子进一步包括,将所述运营商热钱包密钥因子与所述用户信息结合后进行哈希运算,得到所述用户钱包密钥因子。

作为本申请的一个实施例,所述用户钱包密钥因子、用户钱包私钥保存于运营商热钱包加密机的计算机中。

其中,运营商热钱包加密机根据所述运营商热钱包密钥因子以及用户信息生成用户钱包密钥因子,利用所述用户钱包密钥因子生成用户钱包公私密钥对,该用户钱包密钥因子以及私钥并不发送给用户,而保留在运营商热钱包加密机的计算机中(如果运营商热钱包加密机为智能卡时,也可以保留在与所述智能卡连接的计算机中),根据电商平台的交易数据操作用户钱包中的数字资金与运营商热钱包进行转账交易,用户只需要如同常规电子商务消费操作一样进行消费即可,由运营商根据消费记录以及用户钱包的私钥完成用户钱包中数字资金到运营商热钱包的转移,亦或者是利用运营商热钱包私钥进行运营商热钱包到用户钱包的退款等操作,该用户不持有用户钱包私钥,不能操作用户钱包,用户只能操作其在运营商的电商平台注册的用户账户的资金,由运营商热钱包加密机管理用户钱包的私钥,由用户管理电商平台该用户的用户账户中的资金,进行用户账户充值或者消费时向用户反映的都是用户账户中的资金变化,真实的用户钱包中的数字资金都已经转到运营商热钱包中。

通过上述实施例中的方法,可以解决区块链网络中相关账户公私密钥没有相关性,当某个密钥(特别是私钥)丢失或者设备损毁造成账户数字资金受损的问题,可以实现当运营商热钱包私钥或者用户钱包私钥丢失或者设备损毁,可以通过运营商冷钱包密钥因子恢复运营商热钱包私钥或者用户钱包私钥等交易关键信息,避免用户数字资金损失;通过设置运营商冷热钱包,将冷钱包的计算机脱网,当热钱包中的数字资金超过一定量时,就会自动归集到冷钱包中,保证了运营商数字资金的安全;当采用分散智能卡存储部分运营商冷钱包密钥因子,或者通过分散智能卡存储部分运营商热钱包密钥因子时,可以实现区块链账户密钥的安全性,只有持有大于某个门限值数量的部分密钥因子才能得到完整的密钥因子,从而才能生成钱包私钥。

如图2所示为本发明实施例一种基于区块链的交易系统的结构示意图,在本实施例中运营商冷钱包加密机与网络隔离等安全环境中,运营商热钱包加密机、用户终端与网络连接,具体包括:

运营商冷钱包加密机201,用于生成运营商冷钱包密钥因子,其中所述运营商冷钱包密钥因子用于生成运营商冷钱包公私密钥对;

运营商热钱包加密机202,用于根据所述运营商冷钱包密钥因子以及运营商信息生成运营商热钱包密钥因子,其中所述运营商热钱包密钥因子用于生成运营商热钱包公私密钥对;

所述运营商热钱包加密机还用于根据所述运营商热钱包密钥因子以及用户信息生成用户钱包密钥因子,利用所述用户钱包密钥因子生成用户钱包公私密钥对。

作为本申请的一个实施例,还包括交易业务装置,用于通过所述运营商热钱包与多个用户钱包进行数字资金交易;

还包括交易维护装置,用于当所述运营商热钱包中的数字资金超过第一门限值时,利用所述运营商热钱包加密机中生成的运营商热钱包私钥将所述运营商热钱包中的数字资金归集到所述运营商冷钱包中。

作为本申请的一个实施例,所述交易维护装置还用于,当所述运营商热钱包中的数字资金低于第二门限值时,利用所述运营商冷钱包加密机中生成的运营商冷钱包私钥将所述运营商冷钱包中的数字资金转账到运营商热钱包中。

作为本申请的一个实施例,还包括冷钱包密钥拆分程序,运行于所述运营商冷钱包加密机,用于将所述运营商冷钱包密钥因子拆分为多个部分,分散保存于多个所述第一存储介质中,当需要恢复所述运营商冷钱包密钥因子时,利用数量大于第一密钥门限值的所述第一存储介质中存储的部分运营商冷钱包密钥因子,恢复所述运营商冷钱包密钥因子。

其中,所述冷钱包密钥拆分程序运行于所述具有ic芯片的智能卡中,所述具有ic芯片的智能卡通过usb接口插接到与网络断开连接的计算机中,运行上述冷钱包密钥因子生成冷钱包私钥、公钥、冷钱包地址等算法,并通过冷钱包密钥拆分程序将冷钱包密钥因子分别存储于多个具有ic芯片的智能卡中。

作为本申请的一个实施例,所述运营商冷钱包加密机包括具有ic芯片的智能卡,将所述运营商冷钱包密钥因子存储于所述具有ic芯片的智能卡。

作为本申请的一个实施例,还包括热钱包密钥拆分程序,运行于所述运营商热钱包加密机,用于将所述运营商热钱包密钥因子拆分为多个部分,分散保存于多个所述第二存储介质中,当需要恢复所述运营商热钱包密钥因子时,利用数量大于第二密钥门限值的所述第二存储介质中存储的部分运营商热钱包密钥因子,恢复所述运营商热钱包密钥因子。

作为本申请的一个实施例,所述运营商热钱包加密机包括具有ic芯片的智能卡,将所述运营商热钱包密钥因子存储于所述具有ic芯片的智能卡。

作为本申请的一个实施例,所述用户钱包密钥因子、用户钱包私钥保存于运营商热钱包加密机的计算机中。

其中,运营商热钱包加密机可能为计算机或者为具有ic芯片的智能卡,当为计算机时,具有可观的存储容量,可以用来存储多个用户钱包密钥因子和用户钱包私钥;当为具有ic芯片的智能卡时,由于其存储容量有限,可以在该具有ic芯片的智能卡上存储运营商热钱包密钥因子(数量有限),但是由该运营商热钱包密钥因子以及用户信息生成的用户钱包密钥因子,以及用户钱包公私密钥对,用户钱包地址等信息(用户数量很多)就无法存储于具有ic芯片的智能卡,可以将用户钱包密钥因子,以及用户钱包公私密钥对,用户钱包地址等信息存储于运营商热钱包加密机的计算机中,利用计算机中的海量存储空间存储上述信息;或者每次需要使用用户钱包密钥因子时,实时根据运营商热钱包密钥因子以及用户信息派生出所述用户钱包密钥因子。

通过上述本发明实施例的系统,可以解决区块链网络中相关账户公私密钥没有相关性,当某个密钥(特别是私钥)丢失或者设备损毁造成账户数字资金受损的问题,可以实现当运营商热钱包私钥或者用户钱包私钥丢失或者设备损毁,可以通过运营商冷钱包密钥因子恢复运营商热钱包私钥或者用户钱包私钥等交易关键信息,避免用户数字资金损失;通过设置运营商冷热钱包,将冷钱包的计算机脱网,当热钱包中的数字资金超过一定量时,就会自动归集到冷钱包中,保证了运营商数字资金的安全;当采用分散智能卡存储部分运营商冷钱包密钥因子,或者通过分散智能卡存储部分运营商热钱包密钥因子时,可以实现区块链账户密钥的安全性,只有持有大于某个门限值数量的部分密钥因子才能得到完整的密钥因子,从而才能生成钱包私钥。

如图3所示为本发明实施例一种基于区块链的交易系统中用户充值数据流图,在本实施例中用户通过用户终端向运营商热钱包加密机针对该用户设立的用户钱包中转入数字资金,同时交易业务装置生成的用户账户信息中也更新账户余额,用户终端与交易业务装置通信进行电子商务交易行为,交易业务装置记录与用户之间的交易数据以及用户账户信息,用户通过与交易业务装置进行电子商务交易行为,使得用户账户中的数字资金发生变化。通过运营商热钱包加密机输出的用户钱包私钥将用户钱包中的数字资金转入运营商热钱包中,用户账户信息不随着用户钱包中的数字资金变化。运营商冷钱包加密机根据一随机数生成运营商冷钱包加密因子,根据该运营商冷钱包加密因子生成运营商冷钱包公私密钥对,运营商热钱包加密机根据运营商冷钱包加密因子生成运营商热钱包加密因子,并根据该运营商热钱包加密因子可以生成运营商热钱包公私密钥对。具体包括:

步骤301,用户终端发起注册请求。

步骤302,交易业务装置反馈注册信息。

在本步骤中,交易业务装置建立用户账户信息数据库,该数据库中存储有用户账户信息,其中包括账户名称、密码、地址、联系电话等信息。向用户终端返回设立的用户账户信息,其中包括账户名称。

步骤303,用户终端发起向交易业务装置发起充值请求。

在本步骤中,用户终端向设立的用户账户充值100数字货币。

步骤304,交易业务装置向运营商热钱包加密机发起派生用户钱包地址的请求。

在本步骤中,交易业务装置向运营商热钱包加密机发送派生用户钱包地址的请求中还包括了用户的账户名称。

步骤305,运营商热钱包加密机根据运营商热钱包密钥因子以及账户名称生成针对该账户名称的用户钱包公私密钥对以及用户钱包地址。

在本步骤中,运营商热钱包加密机可为计算机,或者具有ic芯片的智能卡,根据热钱包密钥因子以及账户名称生成用户的密钥因子,例如将账户名称转换为字符串,将热钱包密钥因子的256bit的字符串与账户名称转换得到的字符串采用hkdf_sha256(hmac-basedkeyderivationfunction,hkdf)进行运算,得到针对该用户的用户钱包密钥因子,根据该用户钱包密钥因子生成用户钱包私钥以及公钥,根据用户钱包公钥生成用户钱包地址。

步骤306,向交易业务装置反馈用户钱包地址。

该用户钱包地址为区块链网络中的钱包地址。

步骤307,向用户终端返回用户钱包地址。

步骤308,用户终端向所述用户钱包地址充值,并将充值结果告知交易业务装置。

在本步骤中,用户通过用户终端从用户私有钱包向所述用户钱包地址转账100数字货币,并将充值结果告知交易业务装置。其中,用户私有钱包是属于用户个人的钱包,该用户私有钱包的私钥由用户自己保存,并不存储于运营商平台上。

步骤309,交易业务装置查询用户钱包是否有数字货币到账。

在本步骤中,由于用户钱包地址可知,则交易业务装置根据该用户钱包地址可以查询到该用户钱包中是否有相应的数字货币到账,在交易数据库中记录用户对用户钱包的充值数据。

在本步骤中还包括,交易业务装置根据用户钱包中的余额更新该用户账户信息或者交易数据库中的账户余额信息。

步骤310,交易业务装置生成转账交易,将用户钱包中的数字货币转账到运营商热钱包中。

在本步骤中,交易业务装置将用户钱包中的数字货币转移到运营商热钱包中,用户在运营商电商平台处的用户账户信息(或者用户与运营商电商平台的交易数据)与用户钱包相关联,也就是说用户向运营商热钱包加密机生成的用户钱包中充值100数字货币,该用户在运营商电商平台处生成的用户账户中也具有100数字货币(用户可见),当用户在运营商的电子商务平台上进行消费后,用户账户中的100数字货币开始变化(逐渐减少),但是用户钱包中的100数字货币已经事先全部转移到运营商热钱包中,交易业务装置根据用户对用户钱包充值的数据(本例中100数字货币)生成由用户钱包到运营商热钱包转账的交易数据。

在另一个实施例中,当用户与运营商电商平台进行电子交易时,交易业务装置维护一交易数据库,该数据库中存储有用户与该运营商电商平台的电子商务交易数据,例如用户a在某个时间购买了某个商品,付款5数字货币,用户a的用户账户余额为88数字货币,用户b在某个时间购买了某个商品,付款7个数字货币,账户b的用户账户余额为90数字货币等。生成的转账交易是指由交易业务装置根据用户账户中数字货币的变化,生成在用户钱包与运营商热钱包之间的转账交易,例如,用户a的用户账户由于消费了5数字货币,则生成一个由用户a的用户钱包向运营商热钱包转账5数字货币的交易数据。

步骤311,向运营商热钱包加密机发送利用用户钱包私钥对转账交易数据进行签名的请求。

在本步骤中,无论是用户向用户钱包充值,还是用户与运营商电商平台进行电子交易时产生的交易数据都需要使用用户钱包私钥对转账交易数据进行签名,才能完成将用户钱包中的数字货币转账到运营商热钱包。

步骤312,运营商热钱包加密机对交易数据进行签名,并反馈给交易业务装置。

在本步骤中,运营商热加密机可以为多个具有ic芯片的智能卡,所述智能卡插入计算机的usb接口中获得电能,每一个智能卡均可以根据内部存储的运营商热钱包密钥因子以及账户名称后派生出用户钱包密钥因子,并利用该用户钱包密钥因子生成用户钱包私钥;或者运营商热加密机可以为计算机,找到存储于计算机中的与账户名称相匹配的用户钱包私钥。利用该用户钱包私钥对交易数据进行签名,并反馈给交易业务装置。

步骤313,交易业务装置将签名后的交易数据在区块链网络中的进行广播,得到共识验证后更新区块链节点的账簿。

在本步骤中,所述共识验证就是根据区块链节点的签名(用户钱包私钥对转向给运营商热钱包的交易数据进行签名)对该区块链节点的身份和所述加密交易数据是否被篡改进行共识验证,交易业务装置(区块链节点)根据加密交易数据生成摘要,可以是加密交易数据的一部分(例如加密交易数据开始的5%),利用用户钱包私钥对该部分摘要进行签名,再将所述加密交易数据以及签名发送给其它区块链节点。在某个区块链节点接收到所述加密的交易数据以及签名后,使用用户钱包公钥对所述签名进行解密,得到加密交易数据的摘要,将解密后的摘要与接收到的加密交易数据相比较,若两者一致(例如加密交易数据开始的5%相同),则说明加密交易数据未被篡改,也就是共识验证通过,在区块链节点中通过共识验证后就会将所述加密交易数据存储入本地的区块链中。

在另一个实施例中,当用户与运营商电商平台进行电子交易产生的交易数据时,可以实时通过区块链网络广播并进行共识验证,以完成用户钱包的数字货币与运营商热钱包中的数字货币之间的转账;也可以通过记录用户与运营商电商平台进行电子交易产生的交易数据,修改电商平台中用户账户数据,在用户对用户钱包进行提现等操作时或者定时进行区块链网络广播并进行共识验证,以完成用户钱包的数字货币与运营商热钱包中的数字货币之间的转账。

步骤314,将充值成功的消息反馈给用户终端。

用户终端在查询运营商电商平台中该用户的账户余额时,根据用户交易数据库中记录的账户余额通知该用户在该运营商电商平台中的账户余额。

步骤315,交易维护装置轮询运营商热钱包中的数字货币是否超过门限值。

步骤316,当运营商热钱包中的数字货币超过门限值则,则生成由运营商热钱包到运营商冷钱包转账的交易数据。

在本步骤中,例如当运营商热钱包中的数字货币超过100万时,则将要把超过100万的部分转入运营商冷钱包,以增强数字货币的安全性。

步骤317,交易维护装置向运营商热钱包加密机发送交易数据签名的请求。

步骤318,运营商热钱包加密机利用运营商热钱包私钥对交易数据进行签名,反馈给交易维护装置。

在本步骤中,运营商热钱包加密机可以为智能卡,根据存储于智能卡中的运营商热钱包密钥因子生成运营商热钱包私钥,利用运营商热钱包私钥签名所述交易数据。其中,当运营商热钱包加密机为智能卡时,可以为多张智能卡,采用shamirsecretsharing算法将运营商热钱包密钥因子拆分为多个部分,每一张智能卡中存储有一部分运营商热钱包密钥因子,当需要使用运营商热钱包密钥因子时,需要智能卡的数量超过一门限值后,使用shamirsecretsharing算法恢复多张智能卡中的运营商热钱包密钥因子,也就是达到一定数量的部分运营商热钱包密钥因子才能恢复完整的运营商热钱包密钥因子。其中,多个智能卡之间可以采用布尔梅斯特-德梅特协议(burmester-desmedt)建立一个sessionkey,然后使用所述sessionkey建立智能卡之间通信的安全通道,获得各个智能卡中的部分运营商热钱包密钥因子,再由某个智能卡进行恢复计算,得到完整的运营商热钱包密钥因子,再由该智能卡根据运营商热钱包密钥因子生成运营商热钱包私钥,利用该运营商热钱包私钥对交易数据进行签名。

当运营商热钱包加密机为计算机时,可以根据类似智能卡的方法得到运营商热钱包私钥,或者还可以直接从存储运营商热钱包私钥、公钥、热钱包地址的数据库中读取所述运营商热钱包私钥,用于对交易数据进行签名。

步骤319,交易维护装置将签名后的交易数据在区块链网络中的进行广播,得到共识验证后更新区块链节点的账簿。

在本步骤中,通过将运营商热钱包向运营商冷钱包转账交易数据进行签名,并广播得到共识,完后区块链的转账操作,而运营商冷钱包加密机或者说运营商冷钱包的密钥因子脱网储存于智能卡中,而运营商冷钱包私钥、公钥都需要根据该运营商冷钱包密钥因子实时生成,因此运营商冷钱包相对于热钱包更加安全,大量的数字货币存储于该冷钱包中安全性得到的提高。

如图4所示为本发明实施例一种基于区块链的交易系统中用户提现数据流图,在本实施例中用户通过用户终端向交易业务装置发出提现请求,运营商平台通过热钱包(若不足还需要从冷钱包)中向用户私有钱包转账。其中,运营商冷钱包密钥因子分散的保存于多张智能卡中,当多余门限值个数的智能卡才能恢复完整的运营商冷钱包密钥因子,从而才能得到运营商冷钱包私钥用于转账,运营商热钱包密钥因子在本利中存储于运营商热钱包加密机(计算机)中,利用该运营商热钱包密钥因子可以得到运营商热钱包私钥用于转账,本实施例方法具体包括:

步骤401,用户发起提现申请。

在本步骤中,提现申请是指用户需要将运营商电商平台给该用户设立的用户钱包中的数字货币转账到用户私有钱包中,该用户只有用户私有钱包私钥,运营商电商平台给该用户设立的用户钱包的私钥保存在运营商热钱包加密机中。用户发起提现申请中包括用户账户名称、密码等信息,还包括用户私有钱包的地址。

步骤402,交易业务装置验证用户账户。

在本步骤中,用户账户信息保存于交易业务装置,交易业务装置根据账户信息验证提现申请中的信息是否一致,例如验证账户名称与密码是否正确,账户信息中保存的账户名称与用户私有钱包地址之间的匹配关系是否正确,提现的金额是否小于用户账户中的余额,通过验证后进入下一步,否则向用户报错。

步骤403,交易业务装置向交易维护装置发送转账请求。

在本步骤中,转账请求是指由运营商热钱包向用户私有钱包中进行转账,其中包括有用户私有钱包地址、转账金额等信息。

步骤404,交易维护装置检查运营商热钱包中的余额是否大于预定门限值。

在本步骤中,若运营商热钱包中的余额大于预定门限值,则跳转至步骤409,否则进入步骤405,进入运营商冷钱包到运营商热钱包转账步骤,此步骤中多个用户可能同时发起提现请求,如果运营商热钱包中的余额不能应对大量的提现请求,则需要从冷钱包中转入数字货币。

步骤405,交易维护装置向运营商冷钱包加密机发送转账请求。

在本步骤中,由于运营商冷钱包加密机为多个智能卡,不能独立接收交易维护装置的转账请求,因此交易维护装置可以通过预存的多个智能卡持有者的联系方式,分别向多个智能卡持有者发送短信息或者电子邮件或者拨打语音电话等多种方式进行通知,通知智能卡的持有者需要进行运营商冷钱包到运营商热钱包转账操作。

步骤406,运营商冷钱包加密机对转账交易进行签名。

在本步骤中,运营商冷钱包加密机为多个智能卡,所述多个智能卡插入一台脱网计算机的usb接口中,使得多个智能卡可以相互通信,转账交易可以通过usb存储设备导入到计算机中,或者可以在该计算机中人工输入。当超过门限数量的智能卡持有者到场(例如总共有5个智能卡分别保管运营商冷钱包密钥因子,门限例如为3,当有3个及3个以上智能卡同时在场,就可以恢复出完整的运营商冷钱包密钥因子),将持有的多个智能卡插入脱网的计算机(或者处于安全环境)中后,采用布尔梅斯特-德梅特协议(burmester-desmedt)建立一个sessionkey,然后使用所述sessionkey建立智能卡之间通信的安全通道,获得各个智能卡中的部分运营商冷钱包密钥因子,再由某个智能卡进行恢复计算(采用与拆分运营商冷钱包密钥因子相同的拆分算法,例如shamirsecretsharing算法进行恢复计算),得到完整的运营商冷钱包密钥因子,再由该智能卡根据运营商冷钱包密钥因子生成运营商冷钱包私钥,利用该运营商冷钱包私钥对转账交易进行签名。

步骤407,将签名后的转账交易传送给交易维护装置。

在本步骤中,可以在插接有运营商冷钱包加密机的计算机上,将签名后的转账交易刻录到光盘,或者存储于usb存储设备中,将该记录有签名的转账交易传送给交易维护装置。

步骤408,交易维护装置将签名后的转账交易在区块链网络中的进行广播,得到共识验证后更新区块链节点的账簿。

至此,完成了运营商冷钱包到运营商热钱包的转账操作,运营商热钱包中的数字货币足够多,以至于能够顺利完成用户的提现申请。

步骤409,交易维护装置生成运营商热钱包到用户私有钱包的转账交易。

步骤410,交易维护装置向运营商热钱包加密机发送对运营商热钱包到用户私有钱包转账交易签名的请求。

步骤411,运营商热钱包加密机对转账交易进行签名后,返回给所述交易维护装置。

在本步骤中,运营商热钱包加密机可以如同上述运营商冷钱包加密机一样为多个智能卡,也可以为一台计算机,在本实施例中为计算机,通过在计算机中存储的运营商热钱包私钥对所述转账交易进行签名。

步骤412,交易维护装置将签名后的转账交易在区块链网络中的进行广播,得到共识验证后更新区块链节点的账簿。

至此,完成了由运营商热钱包到用户私有钱包之间的转账交易,完成了用户提现的操作。

步骤413,交易维护装置将转账结果反馈给交易业务装置。

步骤414,交易业务装置向用户终端反馈提现操作完成的提示。

在本步骤中,交易业务装置在反馈提现操作完成后,还需要对该交易业务装置存储的账户信息以及交易数据库进行更新,例如用户提现操作将其事先转入运营商电商平台的100数字货币全都转出到用户私有钱包,则在交易数据库中需要做相应的数据更新,该用户的账户

如图5所示为本发明实施例一种恢复用户钱包私钥的流程图,在本实施例中运营商热钱包加密机出现设备损毁,其中存储的用户钱包私钥丢失,运营商热钱包私钥也丢失,建立新的运营商热钱包加密机后,需要恢复用户钱包私钥以及运营商热钱包私钥,具体包括:

步骤501,运营商热钱包加密机向运营商冷钱包加密机发送恢复密钥请求。

在本步骤中,运营商热钱包加密机向多个智能卡持有者发送恢复密钥请求,该恢复密钥请求中包括用户信息,用于恢复用户钱包私钥。

步骤502,运营商冷钱包加密机恢复运营商冷钱包密钥因子。

运营商冷钱包加密机为多个智能卡,当符合门限要求数量的智能卡插接入同一台计算机中后,恢复完整的运营商冷钱包密钥因子。

步骤503,运营商冷钱包加密机根据运营商冷钱包密钥因子以及运营商信息生成运营商热钱包密钥因子。

在本步骤中,例如可以通过hkdf_sha256(hmac_based_key_derivation_function,hkdf)算法根据运营商冷钱包密钥因子以及运营商信息生成运营商热钱包密钥因子,运营商热钱包密钥因子=hkdf_sha256(运营商冷钱包密钥因子,casalt,运营商信息,2048),其中,casalt可以通过对特定的字符串进行哈希运算得到固定字符串,用于增强运营商热钱包密钥因子的强度,运营商信息例如可以包括运营商id,2048表示运营商热钱包密钥因子长度为2048比特。

hkdf_sha256通过对运营商冷钱包密钥因子和其它运算参数(包括casalt,运营商信息,2048等)分别进行sha256哈希运算,将其中一个哈希结果作为数据,另一个哈希结果作为密钥,进行加密运算,得到的加密运算结果即为运营商热钱包密钥因子。

在本步骤计算中所使用的参数,例如casalt、运营商信息等与第一次通过运营商冷钱包密钥因子生成运营商热钱包密钥因子时所使用的参数相同,并且采用相同的算法,因此也可以获得相同的结果,即可以通过相同的运营商冷钱包密钥因子以及运营商信息派生得到与前一次相同的运营商热钱包密钥因子。

上述的处理步骤适用于通过运营商热钱包密钥因子以及用户信息利用hkdf_sha256算法得到用户钱包密钥因子的过程。

步骤504,运营商冷钱包加密机根据所述运营商热钱包密钥因子生成运营商热钱包私钥。

步骤505,运营商冷钱包加密机根据运营商热钱包密钥因子以及用户信息生成用户钱包密钥因子。

本步骤可以参考上述步骤503中的方法。

步骤506,运营商冷钱包加密机根据用户钱包密钥因子生成用户钱包私钥。

通过上述本申请实施例中的方法及系统,可以解决区块链网络中相关账户公私密钥没有相关性,当某个密钥(特别是私钥)丢失或者设备损毁造成账户数字资金受损的问题,可以实现当运营商热钱包私钥或者用户钱包私钥丢失或者设备损毁,可以通过运营商冷钱包密钥因子恢复运营商热钱包私钥或者用户钱包私钥等交易关键信息,避免用户数字资金损失;通过设置运营商冷热钱包,将冷钱包的计算机脱网,当热钱包中的数字资金超过一定量时,就会自动归集到冷钱包中,保证了运营商数字资金的安全;当采用分散智能卡存储部分运营商冷钱包密钥因子,或者通过分散智能卡存储部分运营商热钱包密钥因子时,可以实现区块链账户密钥的安全性,只有持有大于某个门限值数量的部分密钥因子才能得到完整的密钥因子,从而才能生成钱包私钥。

本发明实施例还提供一种计算机可读存储介质,其上存储有计算机指令,该计算机指令被处理器执行时实现以下步骤:生成运营商冷钱包密钥因子,其中所述运营商冷钱包密钥因子用于生成运营商冷钱包公私密钥对;

根据所述运营商冷钱包密钥因子以及运营商信息生成运营商热钱包密钥因子,其中所述运营商热钱包密钥因子用于生成运营商热钱包公私密钥对;

根据所述运营商热钱包密钥因子以及用户信息生成用户钱包密钥因子,利用所述用户钱包密钥因子生成用户钱包公私密钥对。

其中所述处理器可以为计算机中的处理器,也可以为智能卡中的处理器。

本发明实施例还提供一种计算机可读指令,其中在当电子设备中执行所述指令时,其中的程序使得电子设备执行如图1所示的确定处理器操作的方法。

应理解,在本发明的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。

还应理解,在本发明实施例中,术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系。例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

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

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

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

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

本发明中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

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