一种基于区块链的资金交易方法及装置与流程

文档序号:17069483发布日期:2019-03-08 23:11阅读:227来源:国知局
一种基于区块链的资金交易方法及装置与流程

本发明涉及互联网应用技术领域,特别是涉及一种基于区块链的资金交易方法及装置。



背景技术:

近年来,随着贷款业务的高速发展,贷款风险管控的问题变得越来越严峻。例如,恶意用户可能从每个金融机构都贷一定额度的金额,并且在每家金融机构(或银行)申请贷款时,隐藏其以往的未还款的贷款数额。这样的话,该恶意用户可能会贷出大量贷款,并且此贷款数量可能会大大超出其偿还能力。如果这种行为不能被有效控制,那么这种恶意超额贷款的行为将会对金融系统造成巨大伤害。

目前,金融机构可以采用一种简单的方法来防止这类行为,那就是:每个金融机构向其他金融机构共享每个用户的贷款信息。但是,这种方法有两个重要的缺点:一方面,银行将用户的贷款信息暴露给其他人,这是对用户隐私的侵犯;另一方面,金融机构将其自身的业务信息暴露给其他机构,这是对机构自身隐私的侵犯。

显然,在现有的金融机构采用的防止用户恶意超额贷款行为的方法中,缺乏保护用户和金融机构隐私的措施,不能保证一个用户的贷款总额小于某个限制。



技术实现要素:

本发明实施例的目的在于提供一种基于区块链的资金交易方法,以避免用户的交易总额超过用户的预设的可交易金额的范围。

具体技术方案如下:

第一方面,提供了一种基于区块链的资金交易方法,所述方法应用于区块链中的服务器,所述服务器中存储有各账户标识对应的历史交易记录,所述历史交易记录中包括随机承诺和范围证明、账户标识和交易类型标识,所述方法包括:

接收客户端发送的本次交易信息,所述本次交易信息中包括交易金额、账户标识和交易类型标识、所述交易金额对应的第一随机承诺和第一范围证明、所述账户标识的当前的剩余可交易金额对应的第二随机承诺和第二范围证明、所述账户标识的第三随机承诺和所述第三随机承诺对应的知识证明;

从所述历史交易记录中获取所述账户标识对应的上一次交易记录;

根据预设的验证算法,确定所述交易金额对应的第一随机承诺和第一范围证明、所述账户标识的当前的剩余可交易金额对应的第二随机承诺和第二范围证明、以及所述账户标识的第三随机承诺和所述第三随机承诺对应的知识证明是否有效;

若所述第一随机承诺、所述第一范围证明、所述第二随机承诺、所述第二范围证明、所述第三随机承诺和所述第三随机承诺对应的知识证明有效,则根据所述本次交易信息进行本次交易处理。

进一步的,所述在接收客户端发送的本次交易信息的步骤之前,还可以包括:

接收客户端发送的账户创建请求信息;其中,所述账户创建请求信息中包括用户标识;

在预设的账户信息表中,查找是否包含所述用户标识对应的账户标识;

若所述账户信息表中不包含所述用户标识对应的账户标识,则在接收客户端发送的第四随机承诺对应的知识证明时,根据预设的知识证明验证算法,验证所述第四随机承诺对应的知识证明是否有效;

若所述第四随机承诺对应的知识证明有效,则创建所述用户标识对应的账户标识和交易总金额。

第二方面,提供了一种基于区块链的资金交易方法,所述方法应用于客户端,所述方法包括:

获取用户输入的交易申请信息,所述交易申请信息包括账户标识、交易类型标识和交易金额;

根据所述交易金额,确定所述交易金额对应的第一随机承诺和第一范围证明;

确定所述账户标识的当前的剩余可交易金额,以及所述账户标识的剩余可交易金额对应的第二随机承诺和第二范围证明;

根据所述交易金额对应的第一随机承诺和预设的知识证明生成算法,确定所述账户标识的第三随机承诺和所述第三随机承诺对应的知识证明;

将所述交易申请信息、交易金额对应的第一随机承诺和第一范围证明、所述账户标识的剩余可交易金额对应的第二随机承诺和第二范围证明、所述账户标识的第三随机承诺和所述第三随机承诺对应的知识证明,组成本次交易信息;

将所述本次交易信息发送至区块链中的服务器,以使所述服务器根据预设的验证算法,验证所述本次交易信息是否正确,若正确,则进行本次交易处理。

进一步的,所述在获取用户输入的交易申请信息的步骤之前,可以包括:

向服务器发送账户创建请求信息;其中,所述账户创建请求信息中包括用户标识;

获取用户输入的随机数;

根据所述随机数和预设的随机承诺生成算法,确定第四随机承诺;

根据预设的知识证明生成算法,确定所述第四随机承诺对应的知识证明;

将所述第四随机承诺和第四随机承诺对应的知识证明发送至所述服务器。

第三方面,提供了一种基于区块链的资金交易装置,所述装置应用于区块链中的服务器,所述服务器中存储有各账户标识对应的历史交易记录,所述历史交易记录中包括随机承诺和范围证明、账户标识和交易类型标识,所述装置包括:

接收模块,用于接收客户端发送的本次交易信息,所述本次交易信息中包括交易金额、账户标识和交易类型标识、所述交易金额对应的第一随机承诺和第一范围证明、所述账户标识的当前的剩余可交易金额对应的第二随机承诺和第二范围证明、所述账户标识的第三随机承诺和所述第三随机承诺对应的知识证明;

获取模块,用于从所述历史交易记录中获取所述账户标识对应的上一次交易记录;

确定模块,用于根据预设的验证算法,确定所述交易金额对应的第一随机承诺和第一范围证明、所述账户标识的当前的剩余可交易金额对应的第二随机承诺和第二范围证明、以及所述账户标识的第三随机承诺和所述第三随机承诺对应的知识证明是否有效;

本次交易处理模块,用于若所述第一随机承诺、所述第一范围证明、所述第二随机承诺、所述第二范围证明、所述第三随机承诺和所述第三随机承诺对应的知识证明有效,则根据所述本次交易信息进行本次交易处理。

进一步的,所述装置还可以包括:

账户创建请求信息接收模块,用于接收客户端发送的账户创建请求信息;其中,所述账户创建请求信息中包括用户标识;

查找模块,用于在预设的账户信息表中,查找是否包含所述用户标识对应的账户标识;

验证模块,用于若所述账户信息表中不包含所述用户标识对应的账户标识,则在接收客户端发送的第四随机承诺对应的知识证明时,根据预设的知识证明验证算法,验证所述第四随机承诺对应的知识证明是否有效;

创建模块,用于若所述第四随机承诺对应的知识证明有效,则创建所述用户标识对应的账户标识和交易总金额。

第四方面,提供了一种基于区块链的资金交易装置,所述装置应用于客户端,所述装置包括:

交易申请信息获取模块,用于获取用户输入的交易申请信息,所述交易申请信息包括账户标识、交易类型标识和交易金额;

第一确定模块,用于根据所述交易金额,确定所述交易金额对应的第一随机承诺和第一范围证明;

第二确定模块,用于确定所述账户标识的当前的剩余可交易金额,以及所述账户标识的剩余可交易金额对应的第二随机承诺和第二范围证明;

第三确定模块,用于根据所述交易金额对应的第一随机承诺和预设的知识证明生成算法,确定所述账户标识的第三随机承诺和所述第三随机承诺对应的知识证明;

本次交易信息组成模块,用于将所述交易申请信息、交易金额对应的第一随机承诺和第一范围证明、所述账户标识的剩余可交易金额对应的第二随机承诺和第二范围证明、所述账户标识的第三随机承诺和所述第三随机承诺对应的知识证明,组成本次交易信息;

本次交易信息验证模块,用于将所述本次交易信息发送至区块链中的服务器,以使所述服务器根据预设的验证算法,验证所述本次交易信息是否正确,若正确,则进行本次交易处理。

进一步的,所述装置还可以包括:

账户创建请求信息发送模块,用于向服务器发送账户创建请求信息;其中,所述账户创建请求信息中包括用户标识;

随机数获取模块,用于获取用户输入的随机数;

第四随机承诺确定模块,用于根据所述随机数和预设的随机承诺生成算法,确定第四随机承诺;

知识证明确定模块,用于根据预设的知识证明生成算法,确定所述第四随机承诺对应的知识证明;

发送模块,用于将所述第四随机承诺和第四随机承诺对应的知识证明发送至所述服务器。

第五方面,提供了一种服务器,所述服务器中存储有各账户标识对应的历史交易记录,历史交易记录中包括随机承诺和范围证明、账户标识和交易类型标识,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;

存储器,用于存放计算机程序;

处理器,用于执行存储器上所存放的程序时,实现以下方法步骤:

接收客户端发送的本次交易信息,所述本次交易信息中包括交易金额、账户标识和交易类型标识、所述交易金额对应的第一随机承诺和第一范围证明、所述账户标识的当前的剩余可交易金额对应的第二随机承诺和第二范围证明、所述账户标识的第三随机承诺和所述第三随机承诺对应的知识证明;

从所述历史交易记录中获取所述账户标识对应的上一次交易记录;

根据预设的验证算法,确定所述交易金额对应的第一随机承诺和第一范围证明、所述账户标识的当前的剩余可交易金额对应的第二随机承诺和第二范围证明、以及所述账户标识的第三随机承诺和所述第三随机承诺对应的知识证明是否有效;

若所述第一随机承诺、所述第一范围证明、所述第二随机承诺、所述第二范围证明、所述第三随机承诺和所述第三随机承诺对应的知识证明有效,则根据所述本次交易信息进行本次交易处理。

第六方面,提供了一种客户端,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;

存储器,用于存放计算机程序;

处理器,用于执行存储器上所存放的程序时,实现以下方法步骤:

获取用户输入的交易申请信息,所述交易申请信息包括账户标识、交易类型标识和交易金额;

根据所述交易金额,确定所述交易金额对应的第一随机承诺和第一范围证明;

确定所述账户标识的当前的剩余可交易金额,以及所述账户标识的剩余可交易金额对应的第二随机承诺和第二范围证明;

根据所述交易金额对应的第一随机承诺和预设的知识证明生成算法,确定所述账户标识的第三随机承诺和所述第三随机承诺对应的知识证明;

将所述交易申请信息、交易金额对应的第一随机承诺和第一范围证明、所述账户标识的剩余可交易金额对应的第二随机承诺和第二范围证明、所述账户标识的第三随机承诺和所述第三随机承诺对应的知识证明,组成本次交易信息;

将所述本次交易信息发送至区块链中的服务器,以使所述服务器根据预设的验证算法,验证所述本次交易信息是否正确,若正确,则进行本次交易处理。

本发明实施例提供了一种基于区块链的贷款方法及装置,区块链中的服务器接收客户端发送的本次交易信息,并从历史交易记录中获取账户标识对应的上一次交易信息;根据预设的验证算法,确定客户端发送的本次交易信息中的交易金额对应的第一随机承诺、第一范围证明、账户标识的当前的剩余可交易金额对应的第二随机承诺、第二范围证明、账户标识的第三随机承诺和第三随机承诺对应的知识证明是否有效;若所述第一随机承诺和所述第一随机承诺对应的第一范围证明和第二随机承诺、所述第二随机承诺对应的第二范围证明、账户标识的第三随机承诺和第三随机承诺对应的知识证明有效,则根据所述本次交易信息进行本次交易处理。由于本发明实施例中,将随机承诺和范围证明与区块链相结合,从而在保证用户交易金额保密性的同时,能够有效地防止恶意用户在多家金融机构中的恶意超额交易行为。

当然,实施本发明的任一产品或方法必不一定需要同时达到以上所述的所有优点。

附图说明

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

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

图2为本发明实施例提供的另一种基于区块链的资金交易方法的流程示意图;

图3为本发明实施例提供的一种基于区块链的资金交易装置的结构示意图;

图4为本发明实施例提供的另一种基于区块链的资金交易装置的结构示意图;

图5为本发明实施例提供的一种电子设备的结构示意图;

图6为本发明实施例提供的一种电子设备的结构示意图。

具体实施方式

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

本发明实施例提供的一种基于区块链的资金交易方法,该方法应用于区块链中的服务器,该服务器可以是区块链中的各金融机构设置的服务器。本发明实施例中提供的资金交易方法中的资金交易类型可以包括贷款交易和还款交易。而服务器中存储有各账户标识对应的历史交易记录。

其中,历史交易记录可以包括随机承诺和范围证明、账户标识和交易类型标识。交易类型标识为用于区别每个交易记录的类型,即该次交易是贷款交易,还是还款交易;若本次交易是贷款交易,交易类型标识可以为load(中文:负荷);若本次交易是还款交易,交易类型标识可以为repay(中文:偿还)。

由于随机承诺和范围证明是根据交易金额计算出的数据,而服务器中只存储有随机承诺和范围证明而未存储交易金额,因此,无法通过查看随机承诺而确定出该随机承诺对应的交易金额。也即,当区块链中的各服务器中只存储各账户标识的随机承诺和范围证明时,各服务器就实现了在隐藏保证用户交易金额保密性。

基于上述理论基础,在本发明实施例中,多家金融机构组建一个联盟,该联盟内的金融机构将用户的交易数据(比如贷款金额或还款金额等),以随机承诺的方式存储在区块链上。因为随机承诺是可以隐藏交易数据,所以,存储在区块链上的随机承诺,即实现了资源共享,也实现了隐藏随机承诺对应的交易数据。举例而言,当某个用户在联盟内的某个金融机构申请一笔贷款时,此机构可以利用区块链上该用户曾经的所有贷款数据(在该联盟内产生的所有贷款数据),判断“如果把这笔钱贷给这个用户,此用户的贷款总额是否超过其可以贷款的总额度”。如果该用户未通过此判断,则该金融机构将不会向该用户贷款,原因是“该用户在贷这笔钱之后,其所有贷款的总数量将超过其可以贷款的总额度”,从而避免了用户的贷款总额超过用户的最大贷款金额。

下面首先对本发明实施例提供的一种基于区块链的资金交易方法进行介绍,参见图1,该方法包括如下步骤:

s101:接收客户端发送的本次交易信息。

在实施时,区块链中的某个服务器为客户端的某个用户,创建一个唯一的账户标识,并将该账户标识存储在一个预设的账户信息表中。当客户端与区块链中的某个服务器进行资金交易时,客户端生成本次交易信息,并将该交易信息发送给与该客户端进行本次交易的服务器,该服务器在验证过本次交易信息中的随机承诺和范围证明之后,处理本次交易并提取本次交易信息中的部分信息,生成交易记录并存储起来;并且该服务器将该交易记录发送给区块链中的所有服务器;所以,区块链中的每个服务器都存储有相同的交易记录,而且,该交易记录是各个用户在联盟中与各个服务器进行的所有交易记录。

其中,账户标识是用于区别不同的用户,且与用户标识一一对应。账户标识可以是任何用于标识不同用户的标识信息,例如,账户id(identification,识别)、账户名称等,本发明中不做具体限定。

其中,本次交易信息中可以包括交易金额、账户标识、交易类型标识、该交易金额对应的第一随机承诺和第一范围证明、该账户标识的当前的剩余可交易金额对应的第二随机承诺和第二范围证明、该账户标识的第三随机承诺和第三随机承诺对应的知识证明。

可选的,在步骤s101服务器接收客户端发送的本次交易信息之前,服务器可以先接收客户端发送的账户创建请求信息;然后,在预设的账户信息表中,查找是否包含用户标识对应的账户标识;若账户信息表中不包含用户标识对应的账户标识,则服务器在接收客户端发送的第四随机承诺对应的知识证明时,根据预设的知识证明验证算法,验证第四随机承诺对应的知识证明是否有效;若第四随机承诺对应的知识证明有效,则创建用户标识对应的账户标识和交易总金额。

其中,账户创建请求信息中可以包括用户标识,用户标识为用于区别不同用户的标识信息,可以为用户id、用户名称等,这里不做限定。

在实施时,服务器在接收到客户端发送的本次交易信息时,服务器在预设的账号信息表中,查找是否存储有本次交易信息中的账户标识。若服务器中预设的账户信息表中存储有上述本次交易信息中的账户标识,说明本账户标识对应的用户标识不是第一次与金融机构进行资金交易,则执行步骤s102;若服务器中预设的账户信息表中未存储上述本次交易信息中的账户标识,说明该用户标识为第一次与金融机构进行资金交易,则服务器需要为该用户标识创建一个账户标识。

进一步的,服务器可以接收客户端发送的第四随机承诺和第四随机承诺对应的知识证明;并根据预设的知识证明验证算法,验证上述第四随机承诺对应的知识证明是否有效。若上述第四随机承诺对应的知识证明有效,则服务器为用户标识创建用户标识对应的账户,并设置该账户的账户标识和交易总金额。

在本发明实施例中,客户端可以根据用户输入的随机数k,计算r=kh;其中,点r的坐标为(x2,y2);令r=x2,如果r=0,则重新选择随机数k;根据预设的哈希函数,计算数值m的哈希值:z=hash(m);再计算s=k-1(z+r×sk),如果s=0,则重新选择随机数k。最后对计算结果s的取余数,得到s′,将{r,s′}确定为上述第四随机承诺对应的知识证明。

在本发明实施例中,可以采用如下知识证明验证算法,验证第四随机承诺对应的知识证明{r,s′},具体计算公式如下:

z=hash(m)

w=s′-1

(x1,y1)=z×w×h+r×w×pk

其中,m为客户端发送的哈希值,该哈希值可以是客户端根据预设的哈希函数,计算出的用户id对应的哈希值、业务序列号对应的哈希值或金融机构id等信息对应的哈希值中的一种或多种,r和s′为第四随机承诺对应的知识证明中的签名,pk为公钥,h的坐标为(x0,y0)。

如果(x1,y1)=0,则证明上述第四随机承诺对应的知识证明{r,s′}为无效;如果(x1,y1)≠0、且x1=r,则证明上述第四随机承诺对应的知识证明{r,s′}为有效。

本申请实施例中,服务器在验证上述第四随机承诺对应的知识证明为有效,并为用户标识创建对应的账户标识和交易总金额之后,服务器还可以根据创建的用户标识对应的交易总金额s,确定账户标识与本联盟中所有金融机构进行资金交易的总金额s对应的随机承诺。

其中,服务器中预设的随机承诺的计算公式为:

cm=n×g+k×h

cm为随机承诺,n为用户输入的交易金额,k为用户输入的随机数,h的坐标为(x0,y0)),g为坐标点(x01,y01)。

根据客户端发送的账户标识的第四随机承诺和服务器为该账户标识创建的交易总金额s可知,账户标识的交易总金额对应的随机承诺为:

其中,cm0为账户标识的可交易总金额对应的随机承诺,s为账户标识与本联盟中所有金融机构进行资金交易的总金额,g的坐标为(x01,y01),为第四随机承诺。

之后,服务器将该账户标识、该账户标识的可交易总金额、该账户标识的可交易总金额对应的随机承诺、可交易总金额的随机承诺对应的知识证明和交易类型标识存储在区块链中。当服务器将上述账户标识、账户标识的可交易总金额、账户标识的可交易总金额对应的随机承诺、第四随机承诺和第四随机承诺对应的知识证明和交易类型标识,发送给区块链中的其他服务器进行存储时,其他服务器,可以对上述信息中的可交易总金额的随机承诺对应的知识证明进行验证,具体验证方法如上述知识证明的验证描述过程。若验证通过,区块链中的其他服务器则存储上述账户标识、账户标识的可交易总金额、账户标识的可交易总金额对应的随机承诺、第四随机承诺和第四随机承诺对应的知识证明和交易类型标识;否则,区块链中的其他服务器则丢弃账户标识、账户标识的可交易总金额、账户标识的可交易总金额对应的随机承诺、第四随机承诺和第四随机承诺对应的知识证明和交易类型标识。

在本发明实施例中,所有的随机承诺对应的知识证明的验证过程都可以采用上述相同的验证算法。同理,本发明实施例只是提供了一种可选的知识证明的验证算法,其他任何可用于随机承诺对应的知识证明的验证算法都可以应用到本发明实施例中,这里不做具体限定。

s102:从历史交易记录中获取账户标识对应的上一次交易记录。

在实施中,服务器将区块链中的每次交易的交易信息都存储在区块链上,并将本次交易信息之前的所有交易信息称为历史交易记录;其中,历史交易记录中可以包括随机承诺和范围证明、账户标识和交易类型标识。

服务器在存储有历史交易记录的区块链中,获取与上述账户标识对应的上一次交易信息,通过读取该账户标识对应的上一次交易信息中记录的该账户标识对应的当前的剩余可交易金额对应的第二随机承诺,服务器根据预设的随机承诺交易金额查看方法,查看第二随机承诺中账户标识对应的当前的剩余可交易金额,将账户标识对应的当前的剩余可交易金额与该客户端发送的本次交易申请中账户标识本次申请的交易金额比较,如果客户端发送的本次交易申请中账户标识本次申请的交易金额大于和/或等于该账户标识对应的当前的剩余可交易金额,则服务器向客户端发送本次交易申请失败信息;如果客户端发送的本次交易申请中账户标识本次申请的交易金额小于该账户标识对应的当前的剩余可交易金额,服务器则执行步骤s104。

可选的,如果客户端发送的本次交易信息为某用户标识的第一次交易申请,那么,服务器查询到的该账户标识对应的上一次交易信息中的剩余可交易金额对应的承诺,正好也是该用户可交易总额度的承诺(建账时所得到的)。但如果后续客户端再次发送交易申请,当服务器查询该账户标识最近一次交易信息时,服务器查到的就会是当前的剩余可交易金额的随机承诺。

举例而言,服务器为账户标识为p的用户创建的交易总额度为s,该客户端第一次发送的交易申请信息中,该用户申请的贷款金额为n1,那么,当客户端第二次发送交易申请信息时,服务器获取到的该账户标识对应的上一次剩余可交易金额对应的承诺中,记录的该账户标识对应的当前剩余可贷款金额为s-n1;同理,如果该用户第二次申请的贷款金额为n2,则当客户端发送第三次交易申请信息时,服务器获取到的该账户标识对应的上一次剩余可交易金额对应的承诺中,记录的该账户标识对应的当前剩余可贷款金额为s-n1-n2,依次类推。可以理解的是,如果客户端发送的交易申请信息中,交易类型标识为repay,即还款交易,则服务器在执行完本次交易之后,该用户的剩余可交易金额对应的承诺中,记录的该账户标识对应的当前剩余可交易金额为s-n1+n2,其中,n2为客户端发送的本次交易信息中的还款金额。

s103:根据预设的验证算法,确定本次交易信息中交易金额对应的第一随机承诺和第一范围证明、以及账户标识的当前的剩余可交易金额对应的第二随机承诺和第二范围证明、以及账户标识的第三随机承诺和第三随机承诺对应的知识是否有效。

在实施中,范围证明是利用包含两个公钥的环签名的算法构成的,其是客户端为了证明客户端发送的随机承诺中的交易金额在某个范围之内,客户端为服务器提供的数据证据。

随机承诺对应的范围证明采用的验证,其实质是对构成范围证明的环签名的验证,具体的,验证构成范围证明的环签名的计算公式如下:

t0=c0×pk0+z0×h

t1=c1×pk1+z1×h

h=hash(pk0,pk1,t0,t1)

其中,pk0为用户的公钥,pk1和pk2为预设的其他用户的公钥,h的坐标为(x0,y0),z1和c1为用户输入的随机数,t0、t1、c0和z0为环签名中的参数。

如果计算结果h与客户端发送的范围证明中的参数c1的进行逐比特模2运算得到的值与客户端发送的环签名中的参数c0相等,则证明上述环签名有效,由于范围证明是由一系列的环签名构成的,所以,环签名有效则该环签名构成的范围证明也有效。其中,范围证明的计算过程将在后续描述中介绍。

可选的,在上述步骤,服务器根据预设的验证算法,确定本次交易信息中交易金额对应的第一随机承诺、第一范围证明和账户标识的当前的剩余可交易金额对应的第二随机承诺和第二范围证明、以及账户标识的第三随机承诺和第三随机承诺对应的知识有效之后,还可以判断如下公式是否成立:

gm1,1=gm0-gm1,0

其中,cm1,1为账户标识当前的剩余可交易金额对应的第二随机承诺,cm0为账户标识对应的总交易金额对应随机承诺和cm1,0为本次交易信息中交易金额对应的第一随机承诺,n1为本次交易信息中用户申请的交易金额,g的坐标为(x01,y01),为账户标识的第三随机承诺。

如果上述和cm1,1=cm0-cm1,0等式成立,则服务器执行步骤s104;如果上述等式和cm1,1=cm0-cm1,0等式不成立,则服务器向客户端发送本次交易申请失败信息。

s104:若第一随机承诺、第一范围证明、第二随机承诺和第二范围证明、第三随机承诺和第三随机承诺对应的知识证明有效,则根据本次交易信息进行本次交易处理。

在实施时,服务器在根据预设的验证算法,证明了上述第一随机承诺、第一范围证明、第二随机承诺、第二范围证明、第三随机承诺和第三随机承诺对应的知识证明有效之后,服务器根据本次交易信息中记录的交易类型标识,进行本次交易处理。

若本次交易信息中记录的交易类型标识为贷款标识(即load),则服务器将本次交易信息中用户申请贷款的金额发送给客户端。若本次交易信息中记录的交易类型标识为还款标识(即repay),则服务器接收客户端发送的本次交易信息中记录的还款金额。

进一步的,在服务器处理完上述交易之后,服务器还可以将客户端发送的本次交易信息中的交易金额对应的第一随机承诺和第一范围证明、账户标识当前的剩余可交易金额对应的第二随机承诺和第二随机承诺对应的第二范围证明、账户标识和交易类型标识,作为历史交易记录,存储在区块链中。

本发明实施例提供了一种贷款方法,区块链中的服务器接收客户端发送的本次交易信息,然后,从历史交易记录中获取账户标识对应的上一次交易信息;根据预设的验证算法,确定本次交易信息中交易金额对应的第一随机承诺、第一范围证明、账户标识的当前的剩余可交易金额对应的第二随机承诺、第二范围证明、账户标识的第三随机承诺和第三随机承诺对应的知识证明是否有效;若第一随机承诺和所述第一随机承诺对应的第一范围证明和第二随机承诺、第二随机承诺对应的第二范围证明、账户标识的第三随机承诺和第三随机承诺对应的知识证明有效,则根据本次交易信息进行本次交易处理。由于本发明实施例中,将随机承诺和范围证明与区块链相结合,从而在保证用户交易金额保密性的同时,能够有效地防止恶意用户在多家金融机构中的恶意超额交易行为。

参见图2,图2为本发明实施例的另一基于区块链的资金交易方法的流程示意图,该方法应用于客户端,包括如下步骤:

s201:获取用户输入的交易申请信息。

在实施时,客户端每次与区块链中的任何一个服务器进行资金交易时,都需要先向输入交易申请信息。其中,交易申请信息可以包括账户标识、交易类型标识和交易金额。同理,交易类型标识为用于区别本次交易为贷款交易,还是还款交易;若本次交易是贷款交易,交易类型标识可以为load;若本次交易是还款交易,交易类型标识可以为repay。

客户端在接收到用户输入的交易申请信息时,需要判断发送该交易申请信息的用户是否是第一次发送交易申请信息;若不是,则直接执行步骤s202;

客户端在接收到用户输入的交易申请信息时,需要判断发送该交易申请信息的用户是否是第一次发送交易申请信息;若不是,则直接执行步骤s202;可选的,若客户端判断发送该交易申请信息的用户是第一次发送交易申请信息,则客户端向服务器发送账户创建请求信息;其中,账户创建请求信息中包括用户标识;并客户端获取用户输入的随机数;根据用户输入的随机数和预设的随机承诺生成算法,确定第四随机承诺;根据预设的知识证明生成算法,确定第四随机承诺对应的知识证明;将第四随机承诺和第四随机承诺对应的知识证明发送至上述服务器。

在实施时,预设的随机承诺生成算法的计算公式,可以如下:

cm=n×g+k×h

其中,cm为随机承诺,k为用户输入的随机数,h的坐标为(x0,y0)。

由于本步骤中是用户第一次输入的交易申请信息时,为了在服务器设备中给该用户标识创建账户标识时,进行的第四随机承诺计算过程,所以,交易金额n的取值为零,则客户端得到的第四随机承诺为其中,

可选的,在本发明实施例中提供的随机承诺生成算法只是众多随机承诺生成算法中的一种,其他任何用于生成随机承诺的生成算法都可以应用于本发明实施例中,这里不做具体限定。

在实施时,客户端可以根据用户输入的随机数k,计算r=kh;其中,点r的坐标为(x2,y2);令r=x2,如果r=0,则重新选择随机数k;根据预设的哈希函数,计算数值m的哈希值:z=hash(m);再计算s=k-1(z+r×sk),如果s=0,则重新选择随机数k。最后对计算结果s的取余数,得到s′,将{r,s′}确定为上述第四随机承诺对应的知识证明。

s202:根据交易金额,确定交易金额对应的第一随机承诺和第一随机承诺对应的第一范围证明。

在实施时,由于范围证明是利用包含有两个公钥的环签名的算法构成的,因此,计算随机承诺对应的范围证明,就是计算环签名。

具体生成环签名的步骤如下:

用户拥有自己的公钥pk0和私钥sk0,以及一个其他人的公钥pk1。客户端可以根据用户输入的三个不同的随机数k1、k2和k3,和预设的公钥pk0,pk1和私钥sk0,可以得到t1=k1×pk1+k2×h和t0=k3×h;再根据预设的哈希函数,可以得到:

hash(pk0,pk1,t0,t1)

并通过hash(pk0,pk1,t0,t1)与k1进行逐比特模2加运算,得到:

和z0=k3-c0sk0

并将{pk0,pk1,c0,k1,z0,k2}称为一个以{pk0,pk1}为公钥的环签名。该环签名的有效性能够证明,签名者一定持有pk0,pk1中某个公钥对应的私钥,否则签名者无法生成有效的环签名。但验证者无法判断签名者持有的是pk0的私钥sk0,还是pk1的私钥sk1。签名者可以调整{pk0,pk1}中公钥的顺序,即用户也可以产生以{pk1,pk0}为公钥的环签名。但需要强调的是,如果公钥顺序为{pk1,pk0},那么在计算哈希值时,输入的顺序应该为hash(pk1,pk0,t1,t0),并且最终的环签名也应该为{pk1,pk0,k,c0,k2,z0}。

由于范围证明是利用包含两个公钥的环签名的算法构成的,其是客户端为了证明客户端发送的随机承诺中的交易金额在某个范围之内,客户端为服务器提供的数据证据。只要客户端可以生成上述环签名,且该环签名是有效的,则客户端就证明了随机承诺cm=n×g+k×h中的n属于(0,2d+1)。

生成n的范围证明的过程如下:

客户端将上述中的n转化为2进制形式,具体如下:

n=nd2d+nd-12d-1+…+n12+n0

其中,nm=0或1,m的取值为0,1,2,...,d。

客户端以{nm2m×g+km×h,nm2m×g+km×h-2m×g}作为环签名的公钥,以km为环签名的私钥,计算一个环签名σm。如果该环签名σm是有效的,其可以证明nm一定是0或1。

以此方法,客户端可以生成所有σd,σd-1,…,σ1,σ0。如果σd,σd-1,…,σ1,σ0都有效,则证明n属于(0,2d+1)。{σd,σd-1,...,σ1,σ0}就是n的范围证明。

m取值为1,2,…,d,具体生成σm的过程如下:

当nm=0时:

此时{nm2mg+kmh,nm2mg+kmh-2mg}={kmh,kmh-2mg},因为km是由用户在客户端输入的随机数和kmh是关于h的离散对数;因此,客户端生成的上述{nm2mg+kmh,nm2mg+kmh-2mg}为公钥的有效环签名。

当nm=1时:

此时{nm2mg+kmh,nm2mg+kmh-2mg}={nm2mg+kmh,kmh},因为km是由用户在客户端输入的随机数和kmh是关于h的离散对数;因此,客户端生成的上述{nm2mg+kmh,nm2mg+kmh-2mg}为公钥的有效环签名。

当nm≠1且nm≠0时:

此时公钥为{nm2mg+kmh,nm2mg+kmh-2mg},因为km是由用户在客户端输入的随机数和kmh是关于h的离散对数;因此,用户未在客户端中输入上述{nm2mg+kmh,nm2mg+kmh-2mg}中的任何一个公钥对应的私钥,所以客户端无法产生一个已{nm2mg+kmh,nm2mg+kmh-2mg}为公钥的环签名。

因此,只要客户端已{nm2mg+kmh,nm2mg+kmh-2mg}为公钥,产生一个环签名,且环签名是有效的,那么nm的取值为0或1,从而范围证明就证明了该范围证明对应的随机承诺中的某个数据是没有超出预设的范围。

关于该步骤中交易金额对应的第一随机承诺的具体实现以及相关解释内容可以参见上述步骤s101中随机承诺的计算过程,在此不做赘述。

s203:确定账户标识的当前的剩余可交易金额,以及账户标识的剩余可交易金额对应的第二随机承诺和第二范围证明。

在实施时,关于该步骤中剩余可交易金额对应的第二随机承诺和第二范围证明的具体实现以及相关解释内容可以参见上述步骤s101中随机承诺的计算过程和步骤s202中范围证明的计算过程,在此不做赘述。

s204:根据交易金额对应的第一随机承诺和预设的知识证明生成算法,确定账户标识的第三随机承诺和第三随机承诺对应的知识证明。

在实施时,在步骤s201中得到交易金额对应的第一随机承诺cm=n×g+k×h时,客户端将第一随机承诺中的kh称为账户标识的第三随机承诺;再通过步骤s101中随机承诺对应的知识证明的计算过程,可以得到第三随机承诺对应的知识证明。其中,账户标识的第三随机承诺对应的知识证明可以证明第三随机承诺确实是用户输入的交易金额n对应的随机承诺。

s205:将交易申请信息、交易金额对应的第一随机承诺和第一范围证明和账户标识的剩余可交易金额对应的第二随机承诺和第二范围证明、账户标识的第三随机承诺和所述第三随机承诺对应的知识证明,组成本次交易信息。

s206:将本次交易信息发送至区块链中的服务器,以使服务器根据预设的验证算法,验证本次交易信息是否正确,若正确,则进行本次交易处理。

在本发明实施例中,所有随机承诺对应的范围证明的验证过程都是应用相同的验证算法,相关解释内容可以参见上述图1所示的方法实施例,在此不做赘述。

本发明实施例提供了一种基于区块链的贷款方法,区块链中的服务器接收客户端发送的本次交易信息,然后,从历史交易记录中获取账户标识对应的上一次交易信息;根据预设的验证算法,确定本次交易信息中交易金额对应的第一随机承诺、第一范围证明、账户标识的当前的剩余可交易金额对应的第二随机承诺、第二范围证明、账户标识的第三随机承诺和第三随机承诺对应的知识证明是否有效;若第一随机承诺和所述第一随机承诺对应的第一范围证明和第二随机承诺、第二随机承诺对应的第二范围证明、账户标识的第三随机承诺和第三随机承诺对应的知识证明有效,则根据所述本次交易信息进行本次交易处理。由于本发明实施例中,将随机承诺和范围证明与区块链相结合,从而在保证用户交易金额保密性的同时,能够有效地防止恶意用户在多家金融机构中的恶意超额交易行为。

为了描述更加清楚,下面通过一个具体实施例对本发明实施例提供的一种基于区块链的资金交易方法进行详细说明。

假设用户标识为12的用户第一次向区块链中的金融机构b申请贷款;首先,金融机构b为用户12创建账户p,具体包括如下步骤:

步骤一:客户端向服务器b发送账户创建请求信息,其中,账户创建请求信息中包括用户标识12。

步骤二:用户12选择一个随机数k,根据客户端预设的随机承诺生成算法,确定出第四随机承诺。

步骤三:客户端根据预设的知识证明生成算法,确定第四随机承诺对应的知识证明。

步骤四:客户端将第四随机承诺和第四随机承诺对应的知识证明发送至服务器b;

当金融机构b(服务器b)接收到客户端发送的第四随机承诺和第四随机承诺对应的知识证明时,根据预设的知识证明验证算法,验证第四随机承诺对应的知识证明是否有效,若有效,则金融机构b为该用户标识12的用户创建账户标识p,并为该用户设置该用户在联盟中的所有金融机构的可贷款总金额s,计算该用户在联盟中的所有金融机构的可贷款总金额s对应的随机承诺;然后,金融机构b将该用户的账户标识、账户标识的可交易总金额、账户标识的可交易总金额对应的随机承诺、第四随机承诺和第四随机承诺对应的知识证明,存储在交易类型标识为贷款的区块链中。

然后,用户12输入第一次交易申请信息,其中,第一次交易申请信息包括账户标识p、交易类型标识load和交易金额n;客户端根据用户12输入的交易申请信息中的交易金额n,确定交易金额n对应的第一随机承诺和第一范围证明;客户端向金融机构b发送账户标识p的当前的剩余可交易金额获取信息,并接收金融机构b发送的账户标识p的当前的剩余可交易金额,并根据账户标识p的当前的剩余可交易金额,确定第二随机承诺和第二范围证明;根据第一次交易金额n1对应的第一随机承诺和预设的知识证明生成算法,确定账户标识p的第三随机承诺和第三随机承诺对应的知识证明;然后,客户端将交易申请信息、交易金额对应的第一随机承诺和第一范围证明、账户标识的剩余可交易金额对应的第二随机承诺和第二范围证明、账户标识的第三随机承诺和第三随机承诺对应的知识证明,组成本次交易信息;并将将本次交易信息发送至金融机构b。

由于本次是用户第一次向金融机构b进行贷款申请,所以此时,账户标识p的当前的剩余可交易金额就是该用户在本联盟中所有金融机构中可贷款的总金额s,如果此次是用户第二次向金融机构b发送贷款申请,则金融机构b发送给客户端的该账户标识对应的上一次剩余可交易金额对应的承诺中,记录的该账户标识对应的当前剩余可贷款金额为s-n1;其中,n1为用户向金融机构b申请的贷款金额。

之后,金融机构b在接收到客户端发送的本次交易信息之后,从贷款区块链中获取到账户标识p对应的上一次交易信息,并根据预设的验证算法,验证上述第一随机承诺、第一范围证明、第二随机承诺、第二范围证明、第三随机承诺和第三随机承诺对应的知识证明是否有效;若第一随机承诺、第一范围证明、第二随机承诺、第二范围证明、第三随机承诺和第三随机承诺对应的知识证明都有效,则金融机构b将用户12申请的贷款金额,发送给客户端;服务器b将第一随机承诺和第一范围证明、账户标识p和交易类型标识load,组成历史交易记录,并将历史交易记录存储在服务器中的贷款区块链中。

可选的,当用户12在金融机构b申请了第一笔贷款之后,该用户则需要在金融机构b规定的时间内还款;假设用户12在第一次贷款之后,进行第一次还款,则用户12在向金融机构b进行还款的步骤如下:

步骤一:用户12在客户端中输入第一次交易申请信息,其中,第一次交易申请信息包括账户标识p、交易类型标识repay和还款金额n1;客户端根据用户12输入的交易申请信息中的还款金额n1,确定还款金额n1对应的第一随机承诺和第一范围证明;客户端向金融机构b发送账户标识p的当前的剩余可交易金额获取信息,并接收金融机构b发送的账户标识p的当前的剩余可交易金额,并根据账户标识p的当前的剩余可交易金额,确定第二随机承诺和第二范围证明;根据第一次还款金额n1对应的第一随机承诺和预设的知识证明生成算法,确定账户标识p的第三随机承诺和第三随机承诺对应的知识证明;然后,客户端将交易申请信息、交易金额对应的第一随机承诺和第一范围证明、账户标识的剩余可交易金额对应的第二随机承诺和第二范围证明、账户标识的第三随机承诺和第三随机承诺对应的知识证明,组成本次交易信息;并将将本次交易信息发送至金融机构b。

用户的每一次还款,可以弥补账户标识p的当前的剩余可交易金额,例如,假设账户标识p的当前的剩余可交易金额为s-n1;其中,n1为用户向金融机构b申请的贷款金额;当金融机构b在接收到客户端发送的本次交易信息之后,从贷款区块链中获取到账户标识p对应的上一次交易信息,并根据预设的验证算法,验证上述第一随机承诺、第一范围证明、第二随机承诺、第二范围证明、第三随机承诺和第三随机承诺对应的知识证明是否有效;若第一随机承诺、第一范围证明、第二随机承诺、第二范围证明、第三随机承诺和第三随机承诺对应的知识证明都有效,金融机构b接收客户端发送的还款金额n1;此时,在用户进行了第一次还款交易之后,用户在金额机构b的剩余可交易金额就变成了s-n1+n1;之后,服务器b将第一随机承诺和第一范围证明、账户标识p和交易类型标识repay,组成历史交易记录,并将历史交易记录存储在服务器中的还款区块链中。

本发明实施例提供了一种贷款方法,区块链中的服务器接收客户端发送的本次交易信息,然后,从历史交易记录中获取账户标识对应的上一次交易信息;根据预设的验证算法,确定本次交易信息中交易金额对应的第一随机承诺、第一范围证明、账户标识的当前的剩余可交易金额对应的第二随机承诺、第二范围证明、账户标识的第三随机承诺和第三随机承诺对应的知识证明是否有效;若所述第一随机承诺和所述第一随机承诺对应的第一范围证明和第二随机承诺、所述第二随机承诺对应的第二范围证明、账户标识的第三随机承诺和第三随机承诺对应的知识证明有效,则根据所述本次交易信息进行本次交易处理。由于本发明实施例中,将随机承诺和范围证明与区块链相结合,从而在保证用户交易金额保密性的同时,能够有效地防止恶意用户在多家金融机构中的恶意超额交易行为。

基于相同的技术构思,相应于图1所示方法实施例,本发明实施例还提供了一种基于区块链的资金交易装置,如图3所示,该装置应用于区块链中的服务器,服务器中存储有各账户标识对应的历史交易记录,历史交易记录中包括随机承诺和范围证明、账户标识和交易类型标识,该装置包括:

接收模块301,用于接收客户端发送的本次交易信息,本次交易信息中包括交易金额、账户标识和交易类型标识、交易金额对应的第一随机承诺和第一范围证明、账户标识的当前的剩余可交易金额对应的第二随机承诺和第二范围证明、账户标识的第三随机承诺和第三随机承诺对应的知识证明;

获取模块302,用于从历史交易记录中获取账户标识对应的上一次交易记录;

确定模块303,用于根据预设的验证算法,确定交易金额对应的第一随机承诺和第一范围证明、账户标识的当前的剩余可交易金额对应的第二随机承诺和第二范围证明、以及账户标识的第三随机承诺和第三随机承诺对应的知识证明是否有效;

本次交易处理模块304,用于若第一随机承诺、第一范围证明、第二随机承诺、第二范围证明、第三随机承诺和第三随机承诺对应的知识证明有效,则根据本次交易信息进行本次交易处理。

在本发明实施例中,上述装置还可以包括:

账户创建请求信息接收模块,用于接收客户端发送的账户创建请求信息;其中,账户创建请求信息中包括用户标识;

查找模块,用于在预设的账户信息表中,查找是否包含用户标识对应的账户标识;

验证模块,用于若账户信息表中不包含用户标识对应的账户标识,则在接收客户端发送的第四随机承诺对应的知识证明时,根据预设的知识证明验证算法,验证第四随机承诺对应的知识证明是否有效;

创建模块,用于若第四随机承诺对应的知识证明有效,则创建用户标识对应的账户标识和交易总金额。

基于相同的技术构思,相应于图2所示方法实施例,本发明实施例还提供了一种资金交易装置,如图4所示,该装置应用于客户端,该装置包括:

交易申请信息获取模块401,用于获取用户输入的交易申请信息,交易申请信息包括账户标识、交易类型标识和交易金额;

第一确定模块402,用于根据交易金额,确定交易金额对应的第一随机承诺和第一范围证明;

第二确定模块403,用于确定账户标识的当前的剩余可交易金额,以及账户标识的剩余可交易金额对应的第二随机承诺和第二范围证明;

第三确定模块404,用于根据交易金额对应的第一随机承诺和预设的知识证明生成算法,确定账户标识的第三随机承诺和第三随机承诺对应的知识证明;

本次交易信息组成模块405,用于将交易申请信息、交易金额对应的第一随机承诺和第一范围证明、账户标识的剩余可交易金额对应的第二随机承诺和第二范围证明、账户标识的第三随机承诺和第三随机承诺对应的知识证明,组成本次交易信息;

本次交易信息验证模块406,用于将本次交易信息发送至区块链中的服务器,以使服务器根据预设的验证算法,验证本次交易信息是否正确,若正确,则进行本次交易处理。

在本发明实施例中,上述装置还可以包括:

账户创建请求信息发送模块,用于向服务器发送账户创建请求信息;其中,账户创建请求信息中包括用户标识;

随机数获取模块,用于获取用户输入的随机数;

第四随机承诺确定模块,用于根据随机数和预设的随机承诺生成算法,确定第四随机承诺;

知识证明确定模块,用于根据预设的知识证明生成算法,确定第四随机承诺对应的知识证明;

发送模块,用于将第四随机承诺和第四随机承诺对应的知识证明发送至所述服务器。

本发明实施例提供了一种基于区块链的贷款装置,区块链中的服务器接收客户端发送的本次交易信息,并从历史交易记录中获取账户标识对应的上一次交易信息;根据预设的验证算法,确定客户端发送的本次交易信息中的交易金额对应的第一随机承诺、第一范围证明、账户标识的当前的剩余可交易金额对应的第二随机承诺、第二范围证明、账户标识的第三随机承诺和第三随机承诺对应的知识证明是否有效;若第一随机承诺和所述第一随机承诺对应的第一范围证明和第二随机承诺、第二随机承诺对应的第二范围证明、账户标识的第三随机承诺和第三随机承诺对应的知识证明有效,则根据本次交易信息进行本次交易处理。由于本发明实施例中,将随机承诺和范围证明与区块链相结合,从而在保证用户交易金额保密性的同时,能够有效地防止恶意用户在多家金融机构中的恶意超额交易行为。

本发明实施例还提供了一种服务器,服务器中存储有各账户标识对应的历史交易记录,历史交易记录中包括随机承诺和范围证明、账户标识和交易类型标识,如图5所示,包括处理器501、通信接口502、存储器503和通信总线504,其中,处理器501,通信接口502,存储器503通过通信总线504完成相互间的通信,

存储器503,用于存放计算机程序;

处理器501,用于执行存储器503上所存放的程序时,实现本发明实施例提供的一种资金交易方法。该方法包括:

接收客户端发送的本次交易信息,本次交易信息中包括交易金额、账户标识和交易类型标识、交易金额对应的第一随机承诺和第一范围证明、账户标识的当前的剩余可交易金额对应的第二随机承诺和第二范围证明、账户标识的第三随机承诺和所述第三随机承诺对应的知识证明;

从历史交易记录中获取账户标识对应的上一次交易记录;

根据预设的验证算法,确定交易金额对应的第一随机承诺和第一范围证明、账户标识的当前的剩余可交易金额对应的第二随机承诺和第二范围证明、以及账户标识的第三随机承诺和第三随机承诺对应的知识证明是否有效;

若第一随机承诺、第一范围证明、第二随机承诺、第二范围证明、第三随机承诺和第三随机承诺对应的知识证明有效,则根据本次交易信息进行本次交易处理。

关于该方法各个步骤的具体实现以及相关解释内容可以参见上述图1所示的方法实施例,在此不做赘述。

另外,处理器501执行存储器503上所存放的程序而实现的一种资金交易方法的其他实现方式,与前述方法实施例部分所提及的实现方式相同,这里也不再赘述。

本发明实施例还提供了一种客户端,如图6所示,包括处理器601、通信接口602、存储器603和通信总线604,其中,处理器601,通信接口602,存储器603通过通信总线604完成相互间的通信,

存储器603,用于存放计算机程序;

处理器601,用于执行存储器303上所存放的程序时,实现本发明实施例提供的一种资金交易方法。

具体的,上述一种基于区块链的资金交易方法,该方法应用于客户端,该方法包括:

获取用户输入的交易申请信息,交易申请信息包括账户标识、交易类型标识和交易金额;

根据交易金额,确定交易金额对应的第一随机承诺和第一范围证明;

确定账户标识的当前的剩余可交易金额,以及账户标识的剩余可交易金额对应的第二随机承诺和第二范围证明;

根据交易金额对应的第一随机承诺和预设的知识证明生成算法,确定账户标识的第三随机承诺和第三随机承诺对应的知识证明;

将交易申请信息、交易金额对应的第一随机承诺和第一范围证明、账户标识的剩余可交易金额对应的第二随机承诺和第二范围证明、账户标识的第三随机承诺和第三随机承诺对应的知识证明,组成本次交易信息;

将本次交易信息发送至区块链中的服务器,以使服务器根据预设的验证算法,验证本次交易信息是否正确,若正确,则进行本次交易处理。

关于该方法各个步骤的具体实现以及相关解释内容可以参见上述图2所示的方法实施例,在此不做赘述。

另外,处理器601执行存储器603上所存放的程序而实现的一种资金交易方法的其他实现方式,与前述方法实施例部分所提及的实现方式相同,这里也不再赘述。

上述电子设备提到的通信总线可以是外设部件互连标准(peripheralcomponentinterconnect,pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,eisa)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

通信接口用于上述电子设备与其他设备之间的通信。

存储器可以包括随机存取存储器(randomaccessmemory,ram),也可以包括非易失性存储器(non-volatilememory,nvm),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。

上述的处理器可以是通用处理器,包括中央处理器(centralprocessingunit,cpu)、网络处理器(networkprocessor,np)等;还可以是数字信号处理器(digitalsignalprocessing,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的基于区块链的资金交易方法。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solidstatedisk(ssd))等。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备以及计算机可读存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

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