本发明涉及区块链与数字货币技术领域,特别涉及一种可追踪的基于区块链的数字货币交易系统。
背景技术:
近年来,信息化技术、移动互联网技术和云计算技术的创新发展,正在深刻改变着人们的支付手段。以比特币为代表的基于区块链的数字货币的诞生与流通更是标志着以信息产生与流动为特征的互联网络加速迈入以价值产生与转移为特征的价值互联网新时代。具有去中心、不可伪造等特征的数字货币可以消除传统货币设计印制和押运存储的成本,减少跨地域、跨机构的资金流通障碍,提升交易活动的便利性和透明度,是适应现代化和网络化需求的货币形态。区块链是随着比特币等数字加密货币的日益普及而逐渐兴起的一种去中心化基础架构,全网认证的独特工作机制使得其在分布式系统和p2p节点中具备防欺骗、防双重支付的特点,从而保证数字货币系统的安全与稳定。经过几年的发展和改进,区块链逐渐成为了一种新型的分布式、去中心化、去信任化的技术方案。
数字货币的产生和区块链的创新发展,给社会生产带来变革的同时,也对交易系统中的信息安全和个人隐私保护提出了更高的要求。目前比特币等数字货币系统仅能提供较弱的假名方式的隐私保护。此外,现有数字货币交易系统的设计绕开了任何现行组织或机构的监管。由于监管机制的缺失,使得没有任何机构或组织为其做信用背书,容易导致出现过高的币值波动,并滋生利用比特币等数字货币偷税漏税、勒索洗钱等违法犯罪。如何提供交易者的隐私保护,如何执行注册机构的高效监管,如何平衡交易系统中的隐私保护与安全监管等等方面都面临着亟需解决的问题与挑战。
技术实现要素:
本发明旨在至少在一定程度上解决相关技术中的技术问题之一。
为此,本发明的目的在于提出一种可追踪的基于区块链的数字货币交易系统。
为达到上述目的,本发明提出了可追踪的基于区块链的数字货币交易系统,包括:证书申请模块,用于创建数字货币交易系统的系统参数,并根据所述系统参数分别生成证书认证机构的公私钥和交易发送节点的公私钥,并根据所述证书认证机构的公私钥生成追踪参数;证书发布模块,用于根据所述证书认证机构的私钥对所述交易发送节点的公钥进行签名生成证书,并将所述证书和所述追踪参数添加到证书库中;证书随机化模块,用于所述交易发送节点对所述证书进行签名验证,并在确认所述证书有效后,所述交易发送节点对所述证书和所述终端设备的公钥进行随机化,并将随机化后的证书发送给数字货币交易模块;数字货币交易模块,用于所述交易发送节点发起对交易接收节点的交易,生成交易单,矿工节点收集所述交易单,并且所述矿工节点之间基于pow共识机制达成共识生成新区块,以区块链形式完成交易;以及用户身份追踪模块,用于从所述证书库中获取所述追踪参数,并根据随机化后的所述终端设备的公钥对所述终端设备进行追踪以实现对用户身份进行追踪。
本发明实施例的可追踪的基于区块链的数字货币交易系统,通过结合现有公钥基础设施pki体系架构和比特币等数字货币交易系统,使得系统具备良好的跨平台特性,增强了系统的可扩展性,并保障了终端设备的匿名性和可追踪性。
另外,根据本发明上述实施例的可追踪的基于区块链的数字货币交易系统还可以具有以下附加的技术特征:
进一步地,在本发明的一个实施例中,所述证书申请模块和所述证书随机化模块的操作由用户端完成,所述证书发布模块和所述用户身份追踪模块的操作由所述证书认证机构完成,所述数字货币交易模块的操作由所述交易发送节点、所述矿工节点与所述交易接收节点完成。
进一步地,在本发明的一个实施例中,所述交易发送节点为数字货币交易的发起方,所述交易接收节点为所述数字货币交易的接收方。
进一步地,在本发明的一个实施例中,所述证书申请模块具体用于:在数字货币交易系统中创建所述证书认证机构和所述交易发送节点的系统参数;所述证书认证机构利用所述证书认证机构对应的系统参数生成公私钥对,保存私钥,公布公钥;所述交易发送节点利用所述交易发送节点对应的系统参数生成公私钥对,保存私钥,发送公钥和追踪参数给所述证书认证机构。
进一步地,在本发明的一个实施例中,所述证书发布模块具体用于:接收所述证书申请模块中的所述交易发送节点的公钥,所述证书认证机构利用所述证书认证机构对应的的私钥对所述交易发送节点的公钥进行签名生成证书,并将所述证书发送给所述交易发送节点;所述证书认证机构在证书登记机构对所述交易发送节点进行登记注册,并将所述交易发送节点的证书和所述追踪参数添加到证书库中。
进一步地,在本发明的一个实施例中,所述证书随机化模块具体用于:所述交易发送节点接收到证书后,对所述证书进行签名验证;所述交易发送节点对验证通过的证书和公钥进行随机化;利用零知识证明技术证明将随机化证书的有效性,并将所述随机化后的证书发送至数字货币交易模块。
可选地,在本发明的一个实施例中,若所述交易发送节点接收到的证书验证通过,则所述交易发送节点输出1,接收证书;若所述交易发送节点接收到的证书验证未通过,则所述交易发送节点输出0,并返回警告信息给所述证书认证机构。
进一步地,在本发明的一个实施例中,所述数字货币交易模块具体用于:所述交易发送节点生成所述交易接收节点的包含所述随机化证书的交易单,并发送给所述矿工节点;所述矿工节点接收到所述交易单后,对所述随机化后的证书和所述交易单进行有效性验证;所述矿工节点之间基于pow共识机制达成共识生成新区块,并以区块链形式对所述交易单进行记录,完成交易。
进一步地,在本发明的一个实施例中,所述用户身份追踪模块具体用于:所述证书认证机构接收到用户身份追踪请求后,所述证书认证机构调取证书库中所有终端设备注册时的追踪参数;所述证书认证机构根据所述随机化证书后的公钥和相关参数对用户身份进行追踪。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1是本发明一个实施例的可追踪的基于区块链的数字货币交易系统结构示意图;
图2是本发明一个实施例的可追踪的基于区块链的数字货币交易系统框架图;
图3是本发明一个实施例的可追踪的基于区块链的数字货币交易系统总流程图;
图4是本发明一个实施例的可追踪的基于区块链的数字货币交易系统的证书申请模块、证书发布模块和证书随机化模块程示意图;
图5是本发明一个实施例的可追踪的基于区块链的数字货币交易系统的数字货币交易模块示意图;
图6是本发明一个实施例的可追踪的基于区块链的数字货币交易系统的用户身份追踪模块示意图。
具体实施方式
下面详细描述本发明的实施例,实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
下面参照附图描述根据本发明实施例提出的可追踪的基于区块链的数字货币交易系统。
图1是本发明一个实施例的可追踪的基于区块链的数字货币交易系统结构示意图。
如图1所示,该可追踪的基于区块链的数字货币交易系统10包括:证书申请模块100、证书发布模块200、证书随机化模块300、数字货币交易模块400和用户身份追踪模块500。
需要说明的是,本发明实施例的数字货币交易系统包括:证书认证机构ca(certificateauthority)、交易发送节点、矿工节点和交易接收节点四大实体。其中,证书认证机构ca(certificateauthority)是证书的签发和追踪机构,它是pki系统的核心;交易发送节点是数字货币交易系统的发送者,也是pki证书的使用者;交易接收节点是数字货币交易系统的接收者;矿工节点是交易发送用户的随机化证书的验证者。
其中,证书申请模块100用于创建数字货币交易系统的系统参数,并根据系统参数分别生成证书认证机构的公私钥和交易发送节点的公私钥,并根据证书认证机构的公私钥生成追踪参数。
进一步地,在本发明的一个实施例中,证书申请模块100具体用于:在数字货币交易系统中创建证书认证机构和交易发送节点的系统参数;证书认证机构利用证书认证机构对应的系统参数生成公私钥对,保存私钥,公布公钥;交易发送节点利用交易发送节点对应的系统参数生成公私钥对,保存私钥,发送公钥和追踪参数给证书认证机构。
换句话说,证书申请模块100的执行过程为:
步骤1:ca机构和交易发送节点创建相应的系统参数;
步骤2:ca机构利用系统参数生成自己的公私钥对,保存私钥,公布公钥;
步骤3:交易发送节点利用系统参数生成自己的公私钥对,保存私钥,发送公钥和追踪参数给ca机构。
需要说明的是,证书申请模块100和证书随机化模块300的操作由用户端完成,证书发布模块200和用户身份追踪模块500的操作由证书认证机构完成,数字货币交易模块400的操作由交易发送节点、矿工节点与交易接收节点完成。
证书发布模块200用于根据证书认证机构的私钥对交易发送节点的公钥进行签名生成证书,并将证书和追踪参数添加到证书库中。
进一步地,在本发明的一个实施例中,证书发布模块200具体用于:接收证书申请模块中的交易发送节点的公钥,证书认证机构利用证书认证机构对应的的私钥对交易发送节点的公钥进行签名生成证书,并将证书发送给交易发送节点;证书认证机构在证书登记机构对交易发送节点进行登记注册,并将交易发送节点的证书和追踪参数添加到证书库中。
简单来讲,证书发布模块200的执行过程为:
步骤1:接收到交易发送节点的公钥后,ca机构利用自己的私钥对用户公钥进行签名生成证书,并将证书发送给用户;
步骤2:ca机构同时对交易发送节点进行登记注册,并将用户证书和追踪参数添加到证书库中。
证书随机化模块300用于交易发送节点对证书进行签名验证,并在确认证书有效后,交易发送节点对证书和终端设备的公钥进行随机化,并将随机化后的证书发送给数字货币交易模块。
进一步地,在本发明的一个实施例中,证书随机化模块300具体用于:交易发送节点接收到证书后,对证书进行签名验证;交易发送节点对验证通过的证书和公钥进行随机化;利用零知识证明技术证明将随机化证书的有效性,并将随机化后的证书发送至数字货币交易模块400。
其中,若交易发送节点接收到的证书验证通过,则交易发送节点输出1,接收证书;若交易发送节点接收到的证书验证未通过,则交易发送节点输出0,并返回警告信息给证书认证机构。
换言之,证书随机化模块的执行过程为:
步骤1:接收到证书后,交易发送节点对证书进行签名验证。若证书通过验证,输出1,接受该证书。否则用户输出0,并返回警示信息⊥给ca机构;
步骤2:用户对验证通过的证书和公钥进行随机化;
步骤3:用户利用零知识证明技术证明进行了有效的随机化(即用户持有与证书主体的公钥对应的私钥)。
数字货币交易模块400用于交易发送节点发起对交易接收节点的交易,生成交易单,矿工节点收集交易单,并且矿工节点之间基于pow共识机制达成共识生成新区块,以区块链形式完成交易。
进一步地,在本发明的一个实施例中,数字货币交易模块400具体用于:交易发送节点生成交易接收节点的包含随机化证书的交易单,并发送给矿工节点;矿工节点接收到交易单后,对随机化后的证书和交易单进行有效性验证;矿工节点之间基于pow共识机制达成共识生成新区块,并以区块链形式对交易单进行记录,完成交易。
具体地,数字货币交易模块400的执行过程为:
步骤1:交易发送节点生成对交易接收节点的包含随机化证书的交易单;
步骤2:矿工收集到交易单后,对交易单和随机化证书进行有效性验证;
步骤3:矿工之间基于pow共识机制达成共识生成新区块,并最终形成区块链形式将交易单进行记录,完成交易。
用户身份追踪模块500用于从证书库中获取追踪参数,并根据随机化后的终端设备的公钥对终端设备进行追踪以实现对用户身份进行追踪。
也就是说,证书认证机构接收到用户身份追踪请求后,证书认证机构调取证书库中所有终端设备注册时的追踪参数;证书认证机构根据随机化证书后的公钥和相关参数对用户身份进行追踪。
需要说明的是,在本发明的实施例中,证书的格式满足x509.v3规范且具有可随机性,交易发送节点具有身份可追踪性。
下面结合如图2-6所示的具体示例对本发明实施例的可追踪的基于区块链的数字货币交易系统进行完整的描述。
如图2所示,在本发明的具体示例包括:证书认证机构ca、交易发送用户、交易接收用户和矿工。需要说明的是,具体示例中提及的交易发送用户和用户即为上述提及的交易发送节点,交易接收用户即为上述提及的交易接收节点,矿工即为上述提及的矿工节点。
其中,在本具体示例中,ca服务器和数据库服务器的型号均为戴尔optiplex3046minitower,交易发送用户和交易接收用户终端的主机型号为联想thinkcentree74stower并安装比特币钱包bitcoincore用于数字货币交易,购买f2pool矿池软件用于矿工挖矿,网络环境为校园级网络环境。
如图3和4所示,在证书申请模块100中ca机构和交易发送用户需要创建相应公共参数生成各自的公私钥对,用户需要填写个人证书申请表,其中用户公钥为确认用户身份的主要字段,其他标识符为可选项。email地址为生成证书后传递证书时使用,必须输入有效的地址,否则申请不成功。具体包括以下步骤:
步骤1:ca机构和交易发送用户创建相应的系统参数。
令g1,g2和gt是三个p阶循环群(p为素数),e:g1×g2→gt是第3种类型的双线性对,即g1≠g2,g1与g2之间不存在任何有效同态映射。定义
步骤2:ca机构利用系统参数pp生成自己的公私钥对(cpk,csk),保存私钥csk,公布公钥cpk。
ca机构随机选取
步骤3:交易发送用户利用系统参数pp生成自己的公私钥对(upk,usk),保存私钥usk,发送公钥upk给ca机构。同时根据ca机构的公钥cpk生成追踪模块所需参数。
用户随机选取g←g1,α←zp,生成私钥为usk=α,公钥为
如图3和4所示,在证书发布模块200中接收到用户公钥和相关参数后,ca机构利用自己的私钥对用户公钥进行签名生成证书并发送给交易发送用户,同时对证书用户进行登记注册,最后将用户证书和追踪参数添加到证书库中。具体包括以下步骤:
步骤1:接收到用户公钥upk后,ca机构利用自己的私钥对用户公钥进行签名生成证书cert,并将证书cert发送给用户。
接收到用户公钥upk=(x,y)后,ca机构随机选取r←zp,计算upkr=(x,y)r=(gr,gαr),生成签名σ=(gr,grx·gαr·y)=(gr,gr(x+yα))=(σ1,σ2)。ca机构将签名σ=(σ1,σ2)作为证书cert发送给用户。
步骤2:ca机构同时对证书用户进行登记注册,并将用户证书cert和追踪参数t添加到证书库中。
如图3和4所示,在证书随机化模块300中交易发送用户首先验证证书的有效性。若证书通过验证,用户对该证书和公钥进行随机化并证明进行了有效的随机化操作。若证书未通过验证,则返回警示信息⊥给ca机构。具体包括以下步骤:
步骤1:接收到证书cert后,用户对证书进行签名验证,验证证书的有效性。
接收到证书cert=σ=(σ1,σ2),首先验证是否有
步骤2:若证书通过验证,用户对验证通过的证书和公钥进行随机化。
用户随机选取u←zp,计算g1=gu,
用户随机选取v←zp,计算
步骤3:用户利用零知识证明技术证明进行了有效的随机化(即用户持有与证书主体的公钥对应的私钥)。
用户为了证明自己确实利用正确私钥进行了有效随机化操作,首先计算
如图3和5所示,在数字货币交易模块400中交易发送用户生成对交易接收用户的交易单,该交易单不仅包含普通交易单中要求的输入输出地址和发送者签名,还包括随机化后的证书和证明参数。基于现有比特币等数字货币系统,矿池中的矿工收集交易单,对交易单和随机化证书进行有效性验证。矿工之间基于pow共识机制达成共识生成新区块,并最终形成区块链形式记录交易单,完成交易。
具体包括以下步骤:
步骤1:交易发送用户生成对交易接收用户的包含随机化证书的交易单。
交易发送用户发起对交易接收用户的交易,生成交易单。交易单包括发送者的签名验证公钥,接收者公钥,交易金额,发送者对交易单的签名和发送者的随机化公钥和证书。此处签名算法采用ecdsa签名,具体的ecdsa签名如下:
设ecdsa签名算法系统参数为(fq,e,g,n,a,b,h),其中fq是有限域,e是fq上的椭圆曲线,g是e上的一个基点,g的阶为n(n为素数),a,b是椭圆曲线e的系数,h是单向安全的hash函数。设交易发送用户的签名密钥对为(upkt,uskt)=(q,d),其中q=dg,待签名交易信息为m。
选取一个随机数k,1≤k≤n-1,计算k·g=(x1,y1),r=x1modn,e=h(m),s=k-1(e+dr),生成交易发送用户对交易单信息m的签名σt=(r,s)。
步骤2:矿工收集到交易单后,对交易单和随机化证书进行有效性验证。
(1)交易单签名验证过程:矿工收集到交易单后,获得签名σt=(r,s),计算e=h(m),w=s-1modn;计算u1=ewmodn,u2=rwmodn,u1g+u2q=(x0,y0);计算v=x0modn;若v=r,则签名通过验证,否则验证失败。
(2)随机化证书验证过程:接收到证书cert″=(cert′,σ3,σ4)=(σ′1,σ′2,σ3,σ4),首先验证是否有
若交易发送用户的签名和随机化证书通过验证,则接受该交易单。否则不对此交易单进行记录。
可以看出,若用户对原始证书进行了正确随机化,该随机化后的证书仍为有效证书。因为,若
步骤3:矿工之间基于pow共识机制达成共识生成新区块,并最终形成区块链形式将交易单进行记录,完成交易。
区块链的pow共识机制中,数据块中存在关键数据项——随机数nonce。矿工通过收集并验证个个交易单来不断尝试寻找这个随机数,即,挖矿=hashpuzzles:h(nonce||prev_block||tx||tx||...||tx)<bits。每10分钟内,只有成功挖到矿的矿工获得一次记账权利,生成新区块并向其他节点同步新增账本信息。6个新区块生成后,原始交易就被确认为完成。
如图3和6所示,在用户身份追踪模块500接收到用户身份追踪请求后,ca机构调取证书库中所有交易发送用户注册时的追踪参数,并根据用户随机化后的公钥和相关参数对用户身份进行追踪。具体包括以下步骤:
步骤1:接收到用户身份追踪请求后,ca机构调取证书库中的所有交易发送用户注册时的追踪参数
步骤2:ca机构根据用户随机化后的公钥upk′=(g1,x1)和追踪参数列表
可以看出,ca机构肯定能够利用证书库中的追踪参数流表
根据本发明实施例提出的可追踪的基于区块链的数字货币交易系统,通过结合现有公钥基础设施pki体系架构和比特币等数字货币交易系统,使得系统具备良好的跨平台特性,增强了系统的可扩展性,并保障了终端设备的匿名性和可追踪性。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
在本发明中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系,除非另有明确的限定。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
在本发明中,除非另有明确的规定和限定,第一特征在第二特征“上”或“下”可以是第一和第二特征直接接触,或第一和第二特征通过中间媒介间接接触。而且,第一特征在第二特征“之上”、“上方”和“上面”可是第一特征在第二特征正上方或斜上方,或仅仅表示第一特征水平高度高于第二特征。第一特征在第二特征“之下”、“下方”和“下面”可以是第一特征在第二特征正下方或斜下方,或仅仅表示第一特征水平高度小于第二特征。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。