一种基于数字货币的电子交易方法及系统与流程

文档序号:11143932阅读:408来源:国知局
一种基于数字货币的电子交易方法及系统与制造工艺

本发明涉及数字货币领域,尤其涉及一种基于数字货币的电子交易方法及系统。



背景技术:

现有的数字货币交易中,收款方将支付地址发给付款方,付款方根据支付地址将数字货币转给收款方,由于付款方没有足够的信息验证收款方的身份,收款方的身份很有可能被中间人劫持和伪造,数字货币很有可能被盗取;在收款方和付款方进行信息传递过程中通常只是简单的支付地址,传输过程中所述传输的信息都是明文,容易导致在传输过程中信息外泄;收款方与付款方进行的交易中没有支付证明,产生纠纷时无法追究;基于数字货币的特性,付款方须将交易信息广播到数字货币网络,交易信息在数字货币网络中经过多次确认之后,收款方才能确认完成交易或确认交易失败,在数字货币网络对交易信息的确认过程中,用户需要等待很长时间,导致基于数字货币的电子交易的效率低、用户体验差。



技术实现要素:

本发明为解决上述现有技术中存在的技术问题提供一种基于数字货币的电子交易方法及系统。

本发明提供的一种基于数字货币的电子交易方法,包括以下步骤:

步骤S1:数字货币钱包接收来自电商服务器的支付请求包,所述支付请求包中包括支付请求信息和所述电商服务器使用自身保存的私钥对所述支付请求信息的签名信息,所述支付请求信息中包括电商证书、交易金额和电商公钥地址;

步骤S2:所述数字货币钱包从所述支付请求包的所述支付请求信息中获取所述电商证书和所述签名信息,使用所述电商证书对所述签名信息进行验证,验证通过则执行步骤S3,验证未通过则拒绝交易;

步骤S3:所述数字货币钱包获取具有与所述交易金额等额货币值的交易数据、与所述交易数据对应的交易标识以及与所述交易数据对应的自身保存的数字货币私钥,并从所述支付请求包的所述支付请求信息中获取所述电商公钥地址,使用所述数字货币私钥对所述交易数据和所述电商公钥地址进行签名,得到签名结果;根据所述签名结果、所述交易标识和与所述数字货币私钥对应的数字货币公钥组织交易信息,并根据所述交易信息组织支付包;

步骤S4:所述数字货币钱包将所述交易信息广播到数字货币网络,并将所述支付包发送给所述电商服务器;

步骤S5:所述电商服务器接收来自所述数字货币钱包的所述支付包,使用所述支付包中的所述数字货币公钥对所述签名结果进行验证,验证通过则执行步骤S6;验证未通过则结束交易;

步骤S6:所述电商服务器从所述支付包中获取所述交易标识,根据所述交易标识从所述数字货币网络中找到所述交易信息,判断在预设时间内是否从所述数字货币网络中查找到大于或等于预设次数的对所述交易信息的验证通过信息,是则完成交易,否则结束交易。

本发明提供的一种基于数字货币的电子交易的系统,包括数字货币钱包和电商服务器;

所述数字货币钱包包括:

保存模块,用于保存数字货币私钥;

第一接收模块,用于接收来自所述电商服务器的支付请求包,所述支付请求包中包括支付请求信息和所述电商服务器使用自身保存的私钥对所述支付请求信息的签名信息,所述支付请求信息中包括电商证书、交易金额和电商公钥地址;

第一获取模块,用于从所述第一接收模块接收的所述支付请求包的所述支付请求信息中获取所述电商证书和所述签名信息;

第一验证模块,用于使用所述第一获取模块获取的所述电商证书对所述第一获取模块获取的所述签名信息进行验证;

交易拒绝模块,用于当所述第一验证模块对所述签名信息验证未通过时,拒绝交易;

第二获取模块,用于当所述第一验证模块对所述签名信息验证通过时,获取具有与所述第一接收模块接收的所述支付请求包中的所述交易金额等额货币值的交易数据、与所述交易数据对应的交易标识以及与所述交易数据对应的所述保存模块保存的所述数字货币私钥;

第三获取模块,用于当所述第一验证模块对所述签名信息验证通过时,从所述第一接收模块接收的所述支付请求包的所述支付请求信息中获取所述电商公钥地址;

第一签名模块,用于使用所述第二获取模块获取的所述数字货币私钥对所述第二获取模块获取的所述交易数据和所述第三获取模块获取的所述电商公钥地址进行签名,得到签名结果;

第一组织模块,用于根据所述第一签名模块得到的所述签名结果、所述第二获取模块获取的所述交易标识和与所述第二获取模块获取的所述数字货币私钥对应的数字货币公钥组织交易信息;

第二组织模块,用于根据所述第一组织模块组织的所述交易信息组织支付包;

广播模块,用于将所述第一组织模块组织的所述交易信息广播到数字货币网络;

第一发送模块,用于将所述第二组织模块组织的所述支付包发送给所述电商服务器;

所述电商服务器包括:

第二接收模块,用于接收来自所述数字货币钱包的所述支付包;

第二验证模块,用于使用所述第二接收模块接收的所述支付包中的所述数字货币公钥对所述第二接收模块接收的所述支付包中的所述签名结果进行验证;

第四获取模块,用于当所述第二验证模块的验证结果为验证通过时,从所述第二接收模块接收的所述支付包中获取所述交易标识,根据所述交易标识从所述数字货币网络中找到所述交易信息;

判断模块,用于判断在预设时间内是否从所述数字货币网络中查找到大于或等于预设次数的对所述第四获取模块找到的所述交易信息的验证通过信息;

完成交易模块,用于当所述判断模块判断结果为是时,完成交易;

交易结束模块,用于当所述第二验证模块的验证结果为验证未通过时,结束交易;用于当所述判断模块判断结果为否时,结束交易。

本发明与现有技术相比的有益效果是:数字货币钱包从支付请求信息中获取电商证书,使用电商证书对支付请包中的签名信息进行验证,验证通过时才组织交易信息,验证未通过则拒绝交易,从而提供了安全的支付证明,可以防止支付请求信息中的电商公钥地址在传给付款方时被恶意的中间人篡改,保证电商公钥地址不被中间人劫持和伪造,同时当交易双方产生纠纷时,签名信息可以当做支付证明防止对方耍赖;电商服务器接收到支付包时,对支付包中的签名结果进行验证,电商服务器根据验证结果就知道交易结果为成功或失败,不用等待预设时间后根据从数字货币网络中查找到的对交易信息的验证通过信息的次数确认交易是成功还是失败,从而有效提高了数字货币电子交易的效率。

附图说明

图1所示为本发明实施例1中一种基于数字货币的电子交易方法流程图;

图2所述为本发明实施例2中一种基于数字货币的电子交易方法流程图;

图3所示为本发明实施例3中一种基于数字货币的电子交易的系统模块组成框图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。

实施例1

本发明提供一种基于数字货币的电子交易方法,如图1所示,该方法具体包括:

步骤S1:数字货币钱包接收来自电商服务器的支付请求包,支付请求包中包括支付请求信息和电商服务器使用自身保存的私钥对支付请求信息的签名信息,支付请求信息中包括电商证书、交易金额和电商公钥地址;

步骤S2:数字货币钱包从支付请求包的支付请求信息中获取电商证书和签名信息,使用电商证书对签名信息进行验证,验证通过则执行步骤S3,验证未通过则拒绝交易;

步骤S3:数字货币钱包获取具有与交易金额等额货币值的交易数据、与交易数据对应的交易标识以及与交易数据对应的自身保存的数字货币私钥,并从支付请求包的支付请求信息中获取电商公钥地址,使用数字货币私钥对交易数据和电商公钥地址进行签名,得到签名结果;根据签名结果、交易标识和与数字货币私钥对应的数字货币公钥组织交易信息,并根据交易信息组织支付包;

步骤S4:数字货币钱包将交易信息广播到数字货币网络,并将支付包发送给电商服务器;

步骤S5:电商服务器接收来自数字货币钱包的支付包,使用支付包中的数字货币公钥对签名结果进行验证,验证通过则执行步骤S6;验证未通过则结束交易;

步骤S6:电商服务器从支付包中获取交易标识,根据交易标识从数字货币网络中找到交易信息,判断在预设时间内是否从数字货币网络中查找到大于或等于预设次数的对交易信息的验证通过信息,是则完成交易,否则结束交易。

可选地,本实施例上述方法中,支付请求信息中还包括电商证书的证书链信息;

相应地,步骤S2之前,还包括:

数字货币钱包从支付请求包的支付请求信息中获取电商证书的证书链信息,使用电商证书的证书链信息验证电商证书是否有效,是则执行步骤S2;否则拒绝交易。

可选地,本实施例上述方法中,上述步骤S1之前,还包括:

步骤S01:电商服务器接收来自数字货币钱包的交易请求,获取与交易请求对应的交易金额,根据交易金额、自身保存的电商公钥地址和自身保存的电商证书组织支付请求信息;

步骤S02:电商服务器使用自身保存的私钥对支付请求信息进行签名,生成签名信息,并根据签名信息和支付请求信息组织支付请求包,将支付请求包发送给数字货币钱包。

具体地,上述步骤S02中,电商服务器使用自身保存的私钥对支付请求信息进行签名,生成所述签名信息,具体为:电商服务器对支付请求信息根据预设算法进行运算得到第一运算结果,使用自身保存的私钥对第一运算结果进行签名,生成第一签名值;签名信息中包括第一运算结果和第一签名值;

相应地,上述步骤S2中,数字货币钱包使用电商证书对签名信息进行验证,具体为:数字货币钱包使用电商证书中的公钥对第一签名值进行解密得到解密数据,对支付请求信息根据预设算法进行运算得到第二运算结果,判断解密数据是否与第二运算结果相同,是则验证通过,否则验证未通过。

具体地,上述步骤S01中,电商服务器根据交易金额、电商公钥地址和电商证书组织支付请求信息,具体包括:

步骤d11:电商服务器将交易金额和电商公钥地址填到电商的输出列表中;

步骤d12:电商服务器根据电商的输出列表和电商证书组织支付请求信息;

相应地,上述步骤S1中,交易金额和电商公钥地址具体为包括交易金额和电商公钥地址的电商的输出列表。

进一步地,上述步骤S01中,电商服务器根据交易金额信息、电商公钥地址和电商证书组织支付请求之前,还包括:电商服务器生成上述电商公钥地址。

进一步地,上述步骤S02中,电商服务器使用自身保存的私钥对支付请求信息进行签名之前,还包括:电商服务器生成传输地址;

相应地,支付请求信息中还包括传输地址;

上述步骤S02中,电商服务器将支付请求包发送给数字货币钱包,具体为:电商服务器通过传输地址将支付请求包发送给数字货币钱包;

上述步骤S4中,数字货币钱包将支付包发送给电商服务器,具体为:数字货币钱包从支付请求包中获取传输地址,通过传输地址将支付包发送给电商服务器。

具体地,本实施例中上述传输地址具体为基于SSL加密的传输地址。

可选地,本实施例上述方法中,上述支付包中还包括退款地址;

相应地,上述步骤S3中,数字货币钱包根据交易信息组织支付包,具体为:数字货币钱包根据退款地址和交易信息组织支付包。

进一步地,上述数字货币钱包根据退款地址和交易信息组织支付包之前,还包括:数字货币钱包生成上述退款地址。

可选地,本实施例上述方法中,上述支付请求信息中还包括电商的电子证书信息;

相应地,上述步骤S3之前,还包括:数字货币钱包显示电商的电子证书信息,接收到用户输入的确认信息时,执行步骤S3;接收到用户输入的取消信息,或接收超时信息时,结束交易。

可选地,本实施例上述方法中,上述步骤S3中,数字货币钱包使用数字货币私钥对交易数据和电商公钥地址进行签名,得到签名结果,具体为:数字货币钱包对交易数据和电商公钥地址根据预设算法进行运算,得到第三运算结果,使用数字货币私钥对第三运算结果进行签名得到签名值,上述签名结果中包括第三运算结果和签名值;

相应地,上述步骤S5中,电商服务器使用数字货币公钥对签名结果进行验证,具体为:电商服务器根据交易标识找到交易数据,对交易数据和电商公钥地址根据预设算法进行运算生成第四运算结果;使用交易信息中的数字货币公钥对签名值进行验签得到验签数据,判断验签数据是否与第四运算结果相等,是则验证通过,否则验证未通过。

可选地,本实施例上述方法中,上述步骤S3中,数字货币钱包获取具有与交易金额等额货币值的交易数据、与交易数据对应的交易标识以及与交易数据对应的自身保存的数字货币私钥,具体为:数字货币钱包找到具有大于或等于交易金额货币值的数字货币公钥地址,获取数字货币公钥地址对应的具有与交易金额等额货币值的交易标识,根据交易标识找到交易数据,并根据数字货币公钥地址找到对应的数字货币公钥,根据数字货币公钥找到自身保存的数字货币私钥。

可选地,本实施例上述方法中,上述步骤S6中电商服务器判断在预设时间内是否从数字货币网络中查找到大于或等于预设次数的对交易信息的验证通过信息,具体为:电商服务器判断在预设时间内是否从数字货币网络的区块链数据中查找到大于或等于预设次数的与交易信息对应的交易记录,是则完成交易,否则结束交易;数字货币网络每次对交易信息验证通过之后都将交易信息记录在区块链数据中。

本发明与现有技术相比的有益效果是:数字货币钱包从支付请求信息中获取电商证书,使用电商证书对支付请包中的签名信息进行验证,验证通过时才组织交易信息,验证未通过则拒绝交易,从而提供了安全的支付证明,可以防止支付请求信息中的电商公钥地址在传给付款方时被恶意的中间人篡改,保证电商公钥地址不被中间人劫持和伪造,同时当交易双方产生纠纷时,签名信息可以当做支付证明防止对方耍赖;电商服务器接收到支付包时,对支付包中的签名结果进行验证,电商服务器根据验证结果就知道交易结果为成功或失败,不用等待预设时间后根据从数字货币网络中查找到的对交易信息的验证通过信息的次数确认交易是成功还是失败,从而有效提高了数字货币电子交易的效率。电商服务器和数字货币钱包之间的信息传输不再是一串不可靠的支付地址,而是数字货币钱包生成的数字货币钱包和电商服务器可以识别的传输地址,保证在信息传递过程中不会外泄;数字货币钱包发送给电商服务器的支付包中包括退款地址,当因为某些原因电商服务器需要给消费者退款时,电商不用很繁琐的联系消费者获取退款地址,提高了退款效率。

实施例2

本发明提供一种基于数字货币的电子交易方法,如图2所示,该方法具体包括:

步骤10:数字货币钱包向电商服务器发送交易请求。

本实施例中的一个实例为:当消费者用户通过数字货币钱包在电商服务器上选购完商品,进入电商服务器的结算页面,并点击“支付”按钮之后,数字货币钱包向电商服务器发送交易请求。

步骤11:电商服务器接收到交易请求,获取与交易请求对应的交易金额,生成传输地址和电商公钥地址。

具体地,电商服务器接收到交易请求之后,获取到与交易请求对应的商品的交易金额,例如,商品的交易金额为80satoshis(satoshis为数字货币的最小单位)。

具体地,电商服务器生成的传输地址具体为基于SSL加密的传输地址。本实施例中,SSL加密的传输地址为以https开头的传输地址,使用SSL加密的传输地址传输信息,可以保证所传输的信息不会外泄,与明文传输地址相比加密的传输地址安全性较高。

具体地,电商服务器生成电商公钥地址,具体为:电商服务器生成电商密钥对,根据电商密钥对中的电商公钥生成电商公钥地址。其中,电商密钥对包括电商公钥和电商私钥。

本实施例中,数字货币可以为比特币、莱特币、狗狗币、瑞波币、Lisk数字货币、以太坊、以太币中的一种。

步骤12:电商服务器根据交易金额、传输地址、电商公钥地址、自身保存的电商证书组织支付请求信息。

具体地,步骤12具体包括:

步骤d11:电商服务器将交易金额和电商公钥地址填到电商的输出列表中;

具体地,步骤d11具体为:电商服务器按照数字货币交易规则将交易金额和电商公钥地址填到电商的输出列表中。

按照数字货币交易规则,电商的输出列表中为一个输出或多个输出,当电商的输出列表中有一个输出时,会生成一个电商公钥和一个电商私钥,并根据电商公钥生成电商公钥地址;当电商的输出列表中有多个输出时,会生成对应的多个电商公钥和多个对应的电商私钥,并根据多个电商公钥生成多个对应的电商公钥地址。其中,电商公钥、电商私钥和电商公钥地址都是一一对应关系。

例如,当输出列表只有一个输出时,步骤d11具体为:电商服务器生成一对电商密钥对,根据电商密钥对中的电商公钥生成电商公钥地址,将电商公钥地址和交易金额填到电商的输出列表中。

步骤d12:电商服务器根据电商的输出列表、电商证书组织支付请求信息。

步骤13:电商服务器使用自身保存的私钥对支付请求信息进行签名,生成签名信息,根据签名信息和支付请求信息组织支付请求包,将支付请求包通过传输地址发送给数字货币钱包。

具体地,电商服务器使用自身保存的私钥对支付请求信息进行签名,具体为:电商服务器对支付请求信息根据预设算法进行运算得到第一运算结果,使用自身保存的私钥对第一运算结果进行签名,生成第一签名值;签名信息中包括第一运算结果和第一签名值;

进一步具体地,电商服务器对支付请求信息根据预设算法进行运算生成第一运算结果,对第一运算结果进行Base58编码,使用自身保存的私钥对编码后的第一运算结果签名,生成第一签名值。

例如,预设算法为预设的哈希算法,生成的第一运算结果为第一哈希值,电商服务器对支付请求信息做哈希运算生成第一哈希值,对第一哈希值进行Base58编码如下:

77 47 5d c2 4a 69 9f b2 f7 81 c2 ae 3b 73 03 a6 3d ac a2 5f c1 6a e9 b5 f5 48 82 47 eb 86 fc 40;

本实施中,电商服务器自身保存的私钥与自身保存的电商证书中的公钥相对应。

本实施例步骤13中,电商服务器将支付请求包通过传输地址发送给数字货币钱包,与现有技术中基于数字货币的电子交易中通常通过未加密网络(例如WiFi、蓝牙、NFC、条形码)传输交易数据相比,可以保证所传输的信息不会外泄,从而提高交易的安全性。

步骤14:数字货币钱包接收支付请求包,根据支付请求包中的电商证书验证支付请求包中的签名信息是否合法,是则执行步骤15,否则拒绝交易。

具体地,步骤14具体为:数字货币钱包使用支付请求包中电商证书中的公钥对支付请求包中的第一签名值进行解密得到解密数据,对支付请求包中支付请求信息根据预设算法进行运算,生成第二运算结果,判断解密数据是否与第二运算结果相同,是则验证通过;否则验证未通过。

进一步地,数字货币钱包对支付请求包中支付请求信息根据预设算法进行运算,生成第二运算结果之后,还包括:数字货币钱包对第二运算结果进行Base58编码。本实施例中,步骤14中的预设算法是与步骤13中的预设算法相同,例如,是相同的预设的哈希算法。

例如,数字货币钱包使用电商证书中公钥对支付请求包中的第一签名值进行解密得到的解密数据数据如下:77 47 5d c2 4a 69 9f b2 f7 81 c2 ae 3b 73 03 a6 3d ac a2 5f c1 6a e9 b5 f5 48 82 47 eb 86 fc 40;

数字货币钱包对第二运算结果进行编码得到的数据如下:77 47 5d c2 4a 69 9f b2 f7 81 c2 ae 3b 73 03 a6 3d ac a2 5f c1 6a e9 b5 f5 48 82 47 eb 86 fc 40;

比较可以得出:解密数据与编码后的第二运算结果相同,则验证通过。

可选地,上述步骤12中电商服务器组织的支付请求信息中还包括电商证书的证书链信息;

相应地,步骤14之前还包括:

步骤14-01:数字货币钱包使用支付请求包中电商证书的证书链信息验证支付请求包中的电商证书是否有效,是则执行步骤14;否则拒绝交易;

本实施例中上述步骤14-01具体为:数字货币钱包使用电商证书的证书链信息中对电商证书进行验证,当证书链信息中的所有证书都通过了对应的母证书的验证时,电商证书有效;否则电商证书无效,拒绝交易。

电商证书的证书链信息中有一个根证书,根证书可以作为母证书签发子证书,子证书还可以作为母证书继续签发子证书,以此类推,形成一个证书链。上述步骤104-01中,电商证书通过与其对应的母证书的验证,电商证书的母证书作为子证书通过与其对应的母证书的验证,以此类推,在证书链上的每个子证书都通过对应的母证书的验证,顺着证书链信息验证到根证书,所有验证都通过时,才可以证明电商证书是合法有效的。根证书只有电商服务器中有,其他恶意程序无法获取。

进一步地,上述步骤12中电商服务器组织的支付请求信息中还包括公钥体系基础类型;

相应地,上述步骤14-01之前还包括:

步骤14-00:数字货币钱包验证支付请求包中的公钥体系基础类型是否为“none”,是则拒绝交易;否则执行步骤14-01;

可选地,上述步骤14-01之前,还包括:数字货币钱包判断接收的支付请求包的大小是否超过预设范围,是则拒绝交易;否则执行步骤14-01;

例如,数字货币钱包判断支付请求包的大小是否大于50000字节,是则超过预设范围,否则没有超过预设范围。

支付请求包超过50000字节时,数字货币钱包拒绝接收,从而有效防止接收恶意数据包,避免因接收恶意数据而导致的系统崩溃。

可选地,上述电商服务器组织的支付请求信息中还包括网络类型;

相应地,上述步骤14之前还包括:数字货币钱包判断支付请求包中的网络类型是否为“main”或“test”,是则执行步骤14,否则拒绝交易。其中“main”为数字货币网络,“test”为数字货币测试网络。

本实施例中,数字货币网络为比特币网络、莱特币网络、狗狗币网络、瑞波币网络、Lisk数字货币网络、以太坊网络、以太币网络中的一种。

步骤15:数字货币钱包获取具有与支付请求包中交易金额等额货币值的交易数据、与交易数据对应的交易标识、与交易数据对应的自身保存的数字货币私钥,从支付请求包中获取电商公钥地址,使用数字货币私钥对交易数据和电商公钥地址进行签名,得到签名结果,根据签名结果、交易标识和与数字货币私钥对应的数字货币公钥组织交易信息,根据交易信息组织支付包,将交易信息广播到数字货币网络,将支付包发送给电商服务器。

可选地,上述步骤12中电商服务器组织的支付请求信息中还包括电商服务器自身保存的电商的电子证书信息;

相应地,步骤15之前还包括:数字货币钱包显示支付请求包中电商的电子证书信息,当接收到用户输入的确认信息时,执行步骤15;当接收到用户输入的取消信息,或接收到超时信息时,结束交易。

具体地,数字货币钱包显示电商的电子证书信息时,用户根据显示的电子证书信息判断电商服务器的身份是否合法,当用户确认身份合法时,点击确认按键之后,数字货币钱包接收到用户输入的确认信息;当用户确认身份不合法时,点击取消按键之后,数字货币钱包接收到用户输入的取消信息,当超过预设时间之后用户没有点击确认按键或取消按键,数字货币钱包接收到超时信息。本实施例中,数字货币钱包显示的电商的电子证书信息可以包括电商名称以及电商的电子证书是否合法等信息。

进一步地,上述步骤12中电商服务器组织的支付请求信息中还包括显示提示信息。显示提示信息是电商设定的可以在数字货币钱包显示的信息,例如,显示提示信息中可以包括交易金额信息、商品名称等信息。相应地,步骤15中数字货币钱包接收到用户输入的确认信息、取消信息,或超时信息之前还包括:数字货币钱包根据支付请求信息中的显示提示信息显示相应信息。例如,数字货币钱包根据显示提示信息显示交易金额、商品名称等信息。用户可以根据数字货币钱包显示的显示提示信息和电商的电子证书选择点击取消按键或点击确认按键。

可选地,步骤12中,电商服务器组织的支付请求信息中还包括组织支付请求信息的时间和支付请求信息的有效时间;

相应地,步骤15中,在数字货币钱包组织交易信息之前,还包括:数字货币钱包根据支付请求包中组织支付请求信息的时间和支付请求信息的有效时间判断系统当前时间是否超时,是则拒绝交易,否则组织交易信息。

例如,组织支付请求的时间是2016年1月1日8:00,支付请求信息的有效时间是20分钟,如果当前系统时间为2016年1月1日8:20之后则已经超时,如果当前系统时间为2016年1月1日10:20之前则未超时。

在步骤15中,当支付请求包中网络类型为“main”时,数字货币钱包将交易信息广播到数字货币网络;当支付请求包中网络类型为“test”(测试网)时,数字货币钱包将交易信息广播到数字货币网络的测试网络和/或数字货币网络。

具体地,步骤15中,数字货币钱包获取具有与支付包中交易金额等额货币值的交易数据、与交易数据对应的交易标识、与交易数据对应的自身保存的数字货币私钥,具体为:数字货币钱包找到具有大于或等于交易金额货币值的数字货币公钥地址,获取数字货币公钥地址对应的具有与交易金额等额货币值的交易标识,根据交易标识找到交易数据,并根据数字货币公钥地址找到对应的数字货币公钥,根据数字货币公钥找到自身保存的数字货币私钥。

本实施例中,数字货币钱包中具有一个或多个数字货币公钥地址,每个数字货币公钥地址中具有一定额度的数字货币。每个数字货币公钥地址对应有一个或多个交易标识,每个交易标识与一笔交易数据对应,每笔交易数据中具有一定额度的数字货币。

上述数字货币钱包找到具有大于或等于交易金额货币值的数字货币公钥地址,具体为:数字货币钱包选择一个数字货币额度大于或等于交易金额额度的数字货币公钥地址;或者选择多个数字货币公钥地址,多个数字货币公钥地址的数字货币值之和大于或等于交易金额。

上述数字货币钱包获取数字货币公钥地址对应的具有与交易金额等额货币值的交易标识,根据交易标识找到交易数据具体为:当数字货币钱包获取的一个或多个交易标识所对应的交易数据中的数字货币值等于交易金额时,数字货币钱包找到一个或多个交易标识所对应的交易数据;当数字货币钱包获取的一个或多个交易标识所对应的交易数据中的数字货币值大于交易金额时,数字货币钱包找到一个或多个交易标识所对应的交易数据,并根据一个或多个交易标识所对应的交易数据中的数字货币和交易金额计算找零数字货币,获取找零数字货币公钥地址,将找零数字货币填到找零数字货币公钥地址中。

相应地,步骤15中数字货币钱包使用数字货币私钥对交易数据和电商公钥地址进行签名,得到签名结果,具体为:

当数字货币钱包获取的一个或多个交易标识所对应的交易数据中的数字货币值等于交易金额时,数字货币钱包使用与数字货币公钥对应的数字货币私钥对找到的一个或多个交易标识所对应的交易数据、电商公钥地址进行签名,得到签名结果;如果有多个数字货币公钥地址时,对应有多个数字货币公钥,则需要使用对应的数字货币私钥对对应的交易数据、电商公钥地址进行签名,例如,当数字货币钱包获取数字货币公钥地址1和数字货币公钥地址2时,获取的与数字货币公钥地址1对应的交易标识包括交易标识11和交易标识12,获取的与数字货币公钥地址2对应的交易标识为交易标识2,则数字货币钱包需要使用与数字货币公钥地址1对应的数字货币私钥1对交易数据11(与交易标识11对应的交易数据)、交易数据12(与交易标识12对应的交易数据)、电商地址进行签名得到签名结果1,使用与数字货币公钥地址2对应的数字货币私钥2对交易数据2(与交易标识2对应的交易数据)、电商地址进行签名得到签名结果2。

当数字货币钱包获取的一个或多个交易标识所对应的交易数据中的数字货币值大于交易金额时,数字货币钱包使用数字货币私钥对找到的一个或多个交易标识所对应的交易数据、填充有找零数字货币的找零数字货币公钥地址、电商公钥地址进行签名,得到签名结果。

本实施例中,上述数字货币钱包获取找零数字货币公钥地址,具体为:数字货币钱包获取自身保存的可用于收款的数字货币公钥地址,将获取的可用于收款的数字货币公钥地址作为找零数字货币公钥地址;或者数字货币钱包生成找零数字货币公钥地址。

具体地,数字货币钱包生成找零数字货币公钥地址,具体为:数字货币钱包生成找零数字货币密钥对,根据找零数字货币密钥对中的找零数字货币公钥生成找零数字货币公钥地址。找零数字货币密钥对包括找零数字货币私钥和找零数字货币公钥,找零数字货币公钥、找零数字货币私钥和找零数字货币公钥地址是一一对应关系。

进一步具体地,上述步骤15中数字货币钱包使用数字货币私钥对交易数据和电商公钥地址进行签名,得到签名结果,具体为:数字货币钱包对交易数据和电商公钥地址根据预设算法进行运算,得到第三运算结果,使用数字货币私钥对第三运算结果进行签名得到签名值,签名结果中包括第三运算结果和签名值;

或者,数字货币钱包数字货币钱包对交易数据、填充有找零数字货币的找零数字货币公钥地址、电商公钥地址根据预设算法进行运算,得到第三运算结果,使用数字货币私钥对第三运算结果进行签名得到签名值,签名结果中包括第三运算结果和签名值。本实施例中,预设算法为预设的哈希算法。

可选地,本实施例中,上述第三运算结果可以作为本次交易的交易标识,电商服务器需要花费这笔交易的数字货币时,可以根据电商公钥地址找到本次交易的交易标识。

步骤16:电商服务器对支付包中的签名结果进行验证,验证通过则执行步骤17,验证未通过则结束。

步骤16具体为:电商服务器根据交易信息中的交易标识找到交易数据,对交易数据和电商公钥地址根据预设算法进行运算生成第四运算结果;使用交易信息中的数字货币公钥对签名值进行验签得到验签数据,判断验签数据是否与第四运算结果相等,是则验证通过,否则验证未通过。

步骤16中的交易信息中包括多个交易标识时,每个交易标识对应有一个交易数据、一个数字货币公钥,根据多个交易标识找到多个交易数据,则使用与交易标识对应数字货币公钥对交易数据进行验签。

当多个交易标识对应的数字货币公钥为同一个数字货币公钥时,则签名结果中包括一个签名值,上述电商服务器对交易数据和电商公钥地址根据预设算法进行运算生成第四运算结果,使用交易信息中的数字货币公钥对签名值进行验签得到验签数据,具体为:电商服务器对多个交易标识对应的多笔交易数据和电商公钥地址根据预设算法进行运算生成第四运算结果,使用交易信息中的数字货币公钥对签名值进行验签得到验签数据。

当多个交易标识对应的数字货币公钥为不同的数字货币公钥时,则签名结果中包括与数字货币公钥对应的签名值,上述电商服务器对交易数据和电商公钥地址根据预设算法进行运算生成第四运算结果,使用交易信息中的数字货币公钥对签名值进行验签得到验签数据,具体为:电商服务器对与交易信息中与每个数字货币公钥对应的一个或多个交易标识所对应的一笔或多笔交易数据和电商公钥地址根据预设算法进行运算生成多个与数字货币公钥对应的第四运算结果,并使用交易信息中对应的数字货币公钥对与数字货币公钥对应的签名值进行验签得到验签数据。

例如,数字货币公钥1对应的交易标识为交易标识1和交易标识2,数字货币公钥2对应的交易标识为交易标识3,则电商服务器对交易数据和电商公钥地址根据预设算法进行运算生成第四运算结果,使用交易信息中的数字货币公钥对签名值进行验签得到验签数据,具体为:电商服务器对交易数据1(与交易标识1对应的交易数据)、交易数据2(与交易标识2对应的交易数据)和电商公钥地址根据预设算法进行运算生成第四运算结果1,电商服务器对交易数据3(与交易标识3对应的交易数据)和电商公钥地址根据预设算法进行运算生成第四运算结果2,使用交易信息中的数字货币公钥1对签名值1(与数字货币公钥1对应的签名值)进行验签得到验签数据1,使用交易信息中的数字货币公钥2对签名值2(与数字货币公钥2对应的签名值)进行验签得到验签数据2,判断验签数据1是否与第四运算结果1相等,并且判断验签数据2是否与第四运算结果2相等,均为是则验证通过,否则验证未通过。

本实施例中,电商服务器根据对支付包中签名结果的验证可以很快确认交易是成功或失败,提高了电子交易的效率。当交易成功时,电商用户可以从电商服务器中查找到验证通过的信息,直接发货,无需等待预设时间从数字货币网络查找预设次数的对交易信息的验证通过信息。

可选地,本实施例中,步骤16中验证通过时,电商服务器显示验证通过的信息;验证未通过时,电商服务器显示验证未通过信息,并结束交易。

当电商服务器验证签名结果通过时,在执行步骤17之前,电商服务器跳转页面,不需要用户继续等待数字货币网络对交易信息确认通过之后才跳转页面,操作方便。并且当电商服务器验证通过时,电商可以直接发货,不用等待预设时间之后数字货币网络对交易信息确认之后再发货,有效提高电子交易的效率。

当电商服务器验证签名结果未通过时,直接结束交易,并且可以显示结束交易的信息,用户无需等待数字货币网络在预设时间内确认交易信息的结果为失败才结束交易,从而可以尽快知晓交易结果,提高交易效率,为用户节省时间。

可选地,步骤16之前还包括:电商服务器判断支付包的大小是否超过预设范围,是则结束交易,否则执行步骤16。

可选地,步骤16之后、步骤17之前还包括:电商服务器判断支付包的大小是否超过预设范围,是则结束交易,否则执行步骤17。

例如,当电商服务器判断支付包的大小超过50000字节时,则电商服务器结束交易。

支付包超过50000字节时,电商服务器拒绝接收,从而有效防止接收恶意数据包,避免因接收恶意数据而导致的系统崩溃。

可选地,步骤16之后、步骤17之前还包括:电商服务器判断支付包的格式是否正确,是则执行步骤17,否则结束交易。

可选地,步骤16之前还包括:电商服务器判断支付包的格式是否正确,是则执行步骤16,否则结束。

步骤17:电商服务器从支付包中获取交易标识,根据交易标识从数字货币网络中找到交易信息,判断在预设时间内是否从数字货币网络中查找到大于或等于预设次数的对交易信息的验证通过信息,是则完成交易,否则结束交易。例如,预设时间为1小时,预设次数为6次。

具体地,电商服务器判断在预设时间内是否从数字货币网络中查找到大于或等于预设次数的对交易信息的验证通过信息,具体为:电商服务器判断在预设时间内是否从数字货币网络的区块链数据中查找到大于或等于预设次数的与交易信息对应的交易记录,是则完成交易,否则结束交易;数字货币网络每次对交易信息验证通过之后都将交易信息记录在区块链数据中。

优选地,本实施例中,当交易信息中包括多笔交易数据时,电商服务器根据每一个交易标识从数字货币网络中查找到对应交易数据,均在预设时间内从数字货币网络中查找到大于或等于预设次数的验证通过信息,才完成交易。

可选地,步骤16之后、完成交易之前还包括:

步骤18:电商服务器从数字货币网络中获取交易状态,根据交易状态生成支付状态,根据支付包进行拷贝得到支付包的拷贝信息,根据支付包的拷贝信息和支付状态组织支付应答包,并将支付应答包发送给数字货币钱包。具体地,支付状态为完成交易或正在验证。

步骤19:数字货币钱包判断支付应答包是否符合要求,是则执行步骤20;否则拒绝接收支付应答包,结束交易。

具体地,数字货币钱包判断支付应答包的大小是否符合要求,是则执行步骤20,否则拒绝接收支付应答包。例如,数字货币钱包判断支付应答包的大小是否大于或等于60000字节,是则拒绝接收支付应答包,结束交易;否则执行步骤20。

支付应答包超过60000字节时,数字货币钱包拒绝接收,从而有效防止接收恶意数据包,避免因接收恶意数据而导致的系统崩溃。

步骤20:数字货币钱包根据支付应答包中的支付状态显示支付状态的信息。

例如,支付应答包中的支付状态为“正在验证”,数字货币钱包显示“正在验证”的支付状态的信息。

可选地,本实施例上述步骤12中,还包括:电商服务器生成电商标识,支付请求信息中还包括电商标识。每次交易生成的电商标识都不同。

相应地,上述步骤15中,还包括:数字货币钱包从支付请求包的支付请求信息中获取电商标识,组织的支付包中还包括电商标识;

上述步骤15之后、上述步骤16之前,还包括:电商服务器判断是否保存有与支付包中的电商标识对应的电商标识,是则执行步骤16,否则结束。

例如,电商服务器接收的支付包中电商标识为1,判断自身保存的电商标识包括1时,执行步骤16,否则结束。

可选地,上述步骤15中,数字货币钱包组织的支付包中还包括退款地址;

相应地,上述步骤15中,数字货币钱包根据交易信息组织支付包,具体为:数字货币钱包根据退款地址和交易信息组织支付包。

进一步地,上述数字货币钱包根据退款地址和交易信息组织支付包之前,还包括:数字货币钱包生成退款地址。

具体地,数字货币钱包生成退款地址,具体为:数字货币钱包生成退款数字货币密钥对,根据退款数字货币密钥对中的退款数字货币公钥生成退款数字货币公钥地址,将退款数字货币公钥地址作为退款地址。

数字货币钱包生成退款地址,发送给电商服务器的支付包中包括退款地址,当因为某些原因电商服务器需要给消费者退款时,电商不用很繁琐的联系消费者获取退款地址,提高了退款效率。

本发明与现有技术相比的有益效果是:数字货币钱包从支付请求信息中获取电商证书,使用电商证书对支付请包中的签名信息进行验证,验证通过时才组织交易信息,验证未通过则拒绝交易,从而提供了安全的支付证明,可以防止支付请求信息中的电商公钥地址在传给付款方时被恶意的中间人篡改,保证电商公钥地址不被中间人劫持和伪造,同时当交易双方产生纠纷时,签名信息可以当做支付证明防止对方耍赖;电商服务器接收到支付包时,对支付包中的签名结果进行验证,电商服务器根据验证结果就知道交易结果为成功或失败,不用等待预设时间后根据从数字货币网络中查找到的对交易信息的验证通过信息的次数确认交易是成功还是失败,从而有效提高了数字货币电子交易的效率。

本发明的有益效果还包括:电商服务器和数字货币钱包之间的信息传输不再是一串不可靠的支付地址,而是数字货币钱包生成的数字货币钱包和电商服务器可以识别的传输地址,保证在信息传递过程中不会外泄;数字货币钱包发送给电商服务器的支付包中包括退款地址,当因为某些原因电商服务器需要给消费者退款时,电商不用很繁琐的联系消费者获取退款地址,提高了退款效率。

实施例3

本发明提供一种基于数字货币的电子交易的系统,如图3所示,包括数字货币钱包1和电商服务器2;

其中,数字货币钱包1包括:

保存模块101,用于保存数字货币私钥;

第一接收模块102,用于接收来自电商服务器2的支付请求包,支付请求包中包括支付请求信息和电商服务器2使用自身保存的私钥对支付请求信息的签名信息,支付请求信息中包括电商证书、交易金额和电商公钥地址;

第一获取模块103,用于从第一接收模块102接收的支付请求包的支付请求信息中获取电商证书和签名信息;

第一验证模块104,用于使用第一获取模块103获取的电商证书对第一获取模块103获取的签名信息进行验证;

交易拒绝模块105,用于当第一验证模块104对签名信息验证未通过时,拒绝交易;

第二获取模块106,用于当第一验证模块104对签名信息验证通过时,获取具有与第一接收模块102接收的支付请求包中的交易金额等额货币值的交易数据、与交易数据对应的交易标识以及与交易数据对应的保存模块101保存的数字货币私钥;

第三获取模块107,用于当第一验证模块104对签名信息验证通过时,从第一接收模块102接收的支付请求包的支付请求信息中获取电商公钥地址;

第一签名模块108,用于使用第二获取模块106获取的数字货币私钥对第二获取模块106获取的交易数据和第三获取模块107获取的电商公钥地址进行签名,得到签名结果;

第一组织模块109,用于根据第一签名模块108得到的签名结果、第二获取模块106获取的交易标识和与第二获取模块106获取的数字货币私钥对应的数字货币公钥组织交易信息;

第二组织模块110,用于根据第一组织模块109组织的交易信息组织支付包;

广播模块111,用于将第一组织模块109组织的交易信息广播到数字货币网络;

第一发送模块112,用于将第二组织模块110组织的支付包发送给电商服务器2;

电商服务器2包括:

第二接收模块201,用于接收来自数字货币钱包1的支付包;

第二验证模块202,用于使用第二接收模块201接收的支付包中的数字货币公钥对第二接收模块201接收的支付包中的签名结果进行验证;

第四获取模块203,用于当第二验证模块202的验证结果为验证通过时,从第二接收模块201接收的支付包中获取交易标识,根据交易标识从数字货币网络中找到交易信息;

判断模块204,用于判断在预设时间内是否从数字货币网络中查找到大于或等于预设次数的对第四获取模块203找到的交易信息的验证通过信息;

完成交易模块205,用于当判断模块204判断结果为是时,完成交易;

交易结束模块206,用于当第二验证模块202的验证结果为验证未通过时,结束交易;用于当判断模块204判断结果为否时,结束交易。

可选地,本实施例上述系统中的数字货币钱包1还包括第三验证模块,用于从第一接收模块102接收的支付包的支付请求信息中获取电商证书的证书链信息,使用电商证书的证书链信息验证第一获取模块103获取的电商证书是否有效;

相应地,上述第一接收模块102接收的支付包的支付请求信息中还包括电商证书的证书链信息;

上述第一验证模块104,具体用于当第三验证模块验证电商证书有效时,使用第一获取模块103获取的电商证书对第一获取模块103获取的签名信息进行验证;

上述交易拒绝模块105,还用于当第三验证模块验证第一获取模块103获取的电商证书无效时,拒绝交易。

可选地,本实施例上述系统中的电商服务器2还包括:

第三接收模块,用于接收来自数字货币钱包1的交易请求,获取与交易请求对应的交易金额;

第一存储模块,用于保存电商证书和私钥;

第二存储模块,用于保存电商公钥地址;

第三组织模块,用于根据第三接收模块获取的交易金额、第二存储模块保存的电商公钥地址和第一存储模块保存的电商证书组织支付请求信息;

第二签名模块,用于使用第一存储模块保存的私钥对第三组织模块组织的支付请求信息进行签名,生成签名信息;

第四组织模块,用于根据第二签名模块生成的签名信息和第三组织模块组织的支付请求信息组织支付请求包;

第二发送模块,用于将第四组织模块组织的支付请求包发送给数字货币钱包1。

具体地,上述第二签名模块,具体用于对第三组织模块组织的支付请求信息根据预设算法进行运算得到第一运算结果,使用第一存储模块保存的私钥对第一运算结果进行签名,生成第一签名值;签名信息中包括第一运算结果和第一签名值;

相应地,上述第一获取模块103获取的签名信息中包括第一运算结果和第一签名值;

上述第一验证模块104,具体用于使用第一获取模块103获取的电商证书中的公钥对第一获取模块103获取的第一签名值进行解密得到解密数据,对第一接收模块102接收的支付包中的支付请求信息根据预设算法进行运算得到第二运算结果,判断解密数据是否与第二运算结果相同,是则验证通过,否则验证未通过。

具体地,上述第三组织模块,具体用于将第三接收模块获取的交易金额和第二存储模块保存的电商公钥地址填到电商的输出列表中,根据电商的输出列表和第一存储模块保存的电商证书组织支付请求信息;

相应地,上述第一接收模块102接收的支付包中的交易金额和电商公钥地址具体为包括交易金额和电商公钥地址的电商的输出列表。

进一步地,上述电商服务器2在包括第三接收模块、第一存储模块、第二存储模块、第三组织模块、第二签名模块、第四组织模块和第二发送模块的基础上还包括:

第一生成模块,用于生成电商公钥地址;

相应地,上述第二存储模块,具体用于保存第一生成模块生成的电商公钥地址。

进一步地,上述电商服务器2在包括第三接收模块、第一存储模块、第二存储模块、第三组织模块、第二签名模块、第四组织模块和第二发送模块的基础上还包括:

第二生成模块,用于生成传输地址;

相应地,上述第三组织模块组织的支付请求信息中还包括第二生成模块生成的传输地址;

上述第二发送模块,具体用于通过第二生成模块生成的传输地址将第四组织模块组织的支付请求包发送给数字货币钱包1;

上述第一发送模块112,具体用于从第一接收模块102接收的支付请求包中获取传输地址,通过传输地址将支付包发送给电商服务器2。

具体地,上述第二生成模块生成的传输地址具体为基于SSL加密的传输地址。

可选地,本实施例上述系统中的数字货币钱包1还包括第三存储模块,用于保存退款地址;

相应地,上述第二组织模块110,具体用于根据第三存储模块保存的退款地址和第一组织模块109组织的交易信息组织支付包。

进一步地,上述数字货币钱包1在包括第三存储模块的基础上还包括:

第三生成模块,用于生成退款地址;

相应地,上述第三存储模块,具体用于保存第三生成模块生成的退款地址。

可选地,本实施例上述系统中,第一接收模块102接收的支付请求包中的支付请求信息中还包括电商的电子证书信息;

相应地,本实施例上述系统中的数字货币钱包1还包括:

显示模块,用于显示电商的电子证书信息;

信息接收模块,用于当显示模块显示电商的电子证书信息时,接收用户输入的确认信息,或接收用户输入的取消信息,或接收超时信息;

上述交易拒绝模块105,还用于上述信息接收模块接收到用户输入的取消信息,或者接收到超时信息时,结束交易;

第二获取模块106,具体用于当第一验证模块104对签名信息的验证结果为验证通过时,并且信息接收模块接收到用户输入的确认消息时,获取具有与交易金额等额货币值的交易数据、与交易数据对应的交易标识以及与交易数据对应的保存模块101保存的数字货币私钥。

可选地,本实施例上述系统中的第一签名模块108,具体用于对第二获取模块106获取的交易数据和第三获取模块107获取的电商公钥地址根据预设算法进行运算,得到第三运算结果,使用第二获取模块106获取的数字货币私钥对第三运算结果进行签名得到签名值,签名结果中包括第三运算结果和签名值;

相应地,上述第二验证模块202,具体用于根据第二接收模块201接收的支付包中的交易标识找到交易数据,对交易数据和第二接收模块201接收的支付包中的电商公钥地址根据预设算法进行运算生成第四运算结果;使用第二接收模块201接收的支付包中的交易信息中的数字货币公钥对签名值进行验签得到验签数据,判断验签数据是否与第四运算结果相等,是则验证通过,否则验证未通过。

可选地,本实施例上述系统中的第二获取模块106,具体用于当第一验证模块104对签名信息验证通过时,找到具有大于或等于第一接收模块102接收的支付请求包中的交易金额货币值的数字货币公钥地址,获取数字货币公钥地址对应的具有与交易金额等额货币值的交易标识,根据交易标识找到交易数据,并根据数字货币公钥地址找到对应的数字货币公钥,根据数字货币公钥找到保存模块101保存的数字货币私钥。

可选地,本实施例上述系统中的判断模块204,具体用于判断在预设时间内是否从数字货币网络的区块链数据中查找到大于或等于预设次数的与第四获取模块203找到的交易信息对应的交易记录;数字货币网络每次对交易信息验证通过之后都将交易信息记录在区块链数据中。

本发明与现有技术相比的有益效果是:数字货币钱包从支付请求信息中获取电商证书,使用电商证书对支付请包中的签名信息进行验证,验证通过时才组织交易信息,验证未通过则拒绝交易,从而提供了安全的支付证明,可以防止电商公钥地址在传给付款方时被恶意的中间人篡改,保证电商公钥地址不被中间人劫持和伪造,同时当交易双方产生纠纷时,签名信息可以当做支付证明防止对方耍赖;电商服务器接收到支付包时,对支付包中的签名结果进行验证,电商服务器根据验证结果就知道交易结果为成功或失败,不用等待预设时间后根据从数字货币网络中查找到的对交易信息的验证通过信息的次数确认交易是成功还是失败,从而有效提高了数字货币电子交易的效率。电商服务器和数字货币钱包之间的信息传输不再是一串不可靠的支付地址,而是数字货币钱包生成的数字货币钱包和电商服务器可以识别的传输地址,保证在信息传递过程中不会外泄;数字货币钱包发送给电商服务器的支付包中包括退款地址,当因为某些原因电商服务器需要给消费者退款时,电商不用很繁琐的联系消费者获取退款地址,提高了退款效率。

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

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