一种基于区块链技术的数字货币实现方法与流程

文档序号:23092892发布日期:2020-11-27 12:48阅读:218来源:国知局
一种基于区块链技术的数字货币实现方法与流程

技术领域:

本发明涉及数字货币及区块链应用安全领域。



背景技术:

在现有基于区块链技术的数字货币应用中,直接进行用户之间的“离线”、“事先”、“并行”交易,亦即:双离线交易或有中心交易,再将交易单发送给区块链社区,区块链各个节点端,同时对双方用户已经签名的交易单进行签验,验证的环节多,大约需4~5个环节,如:对交易单的签名的签验,验证交易双方用户钱包的资金流水是否正确,少数情况下,还要对交易单进行解密,造成区块链系统运行的效率相比较低,大多数区块链系统验证速度为:完成7笔/秒,造成数字货币交易速度较低,美国脸书公司的libra设计的交易速度为1000笔/秒,中国银行数字货币的交易速度设计为30万笔/秒,当然,若要大幅度提高交易速度,需更多增添区块链节点端的设备投入,但效果还是有限,数字货币交易系统的结构决定其性能,现有数字货币交易系统的速度,很难达到我国数字货币的设计标准,我国数字货币试点工程没有采用区块链技术,因此,必须改变数字货币交易系统和区块链设计结构,才能提高交易速度,另外,区块链存在较大安全隐患,如:比特币这个数字货币的区块链应用系统,每半年左右出现一次比特币被盗的事件,我国数字货币试点工程没有在手机端部署加密芯片硬件,也存在安全隐患,总之,现有的区块链技术和产品不能满足数字货币市场的需求。



技术实现要素:

一种基于区块链技术的数字货币实现方法,是采用有中心交易与无中心交易相结合的数字货币技术架构,针对点对点交易,采用私钥对交易单进行签名,采用“垂直认证”技术对交易单进行二次签名,通过公钥签验的交易单执行支付,针对有中心交易,采用“垂直认证”技术对交易单进行签名,通过验证中心签验的交易单执行支付,数字货币区块链各个节点端加密系统,分别采用“垂直认证”技术对交易单的签名进行签验,通过建立200座验证中心和400个分布式数字货币区块链社区,可保证整个数字货币交易系统的区块链运行效率达到约40万笔/秒,达到中国银行数字货币交易速度为30万笔/秒的设计标准,从而,建立一种安全高效的数字货币交易系统,其方法的技术特征在于:

在客户端部署加密系统,在加密芯片里写入用户的标识、对称算法、公钥算法、组合密钥生成算法、一组私钥、一组公钥、一组“密钥种子”表的元素,采用“垂直认证”技术建立签名协议,采用“垂直认证”技术建立的身份认证协议,在客户端安装一个子电子钱包,建立客户端公钥数据库,事先,在验证中心端加密芯片里,将对应标识i的“密钥种子”表i的元素密文解密,使用时间戳hip和随机数sip,生成一组存储密钥tkip,将用户标识i对应的公钥i加密成密文,将用户标识i、公钥i的密文、时间戳hip和随机数sip,存储在验证中心端基于标识i的公钥临时数据库记录里,共生成n条记录,由对应标识i的客户端,从验证中心端下载基于标识i的公钥临时数据库,并作为标识i的客户端公钥数据库存储在客户端,其中:客户端公钥数据库的记录可一次性从验证中心端下载,或者,根据用户的标识,从验证中心端有选择性的下载;

在数字货币交易系统中部署验证中心,在验证中心端部署加密硬件设备,建立验证中心端加密系统,在加密硬件的芯片里,写入对称算法、公钥算法、组合密钥生成算法,采用“垂直认证”技术建立签验协议,采用“垂直认证”技术建立身份认证协议,建立“密钥种子”数据库,建立公钥数据库,事先,用验证中心端加密芯片里的一组存储密钥kk,分别将全体用户标识i对应的“密钥种子”表i的元素加密成密文,存储在“密钥种子”数据库记录中,事先,在验证中心端加密芯片里,生成时间戳hi和随机数si,采用一套“密钥种子”表ll的元素,根据组合密钥生成算法,生成一组存储密钥ki,将用户标识i对应的公钥i加密成密文,存储在公钥数据库记录中,在验证中心的服务器里,为每个用户部署一个子电子钱包,其中:p=1~n,n≤60亿,n为全体数字货币用户总数,i=1~n,n≤60亿,n为全体数字货币用户总数,注:验证中心端没有写入摘要算法;

在数字货币交易系统建立区块链社区,区块链社区由j=10~1000个节点组成,每个节点由1~20个服务器和1~20个加密设备组成,并将验证中心通过网络与各个区块链社区相连;

在各个数字货币区块链节点端都部署加密硬件设备,建立节点端加密系统,在加密硬件的芯片里,写入对称算法、公钥算法、组合密钥生成算法,采用“垂直认证”技术建立签验协议,建立“密钥种子”数据库,事先,用节点端加密芯片里的一组存储密钥ckj,分别将全体用户对应的“密钥种子”表i元素加密成密文,存储在“密钥种子”数据库记录中,其中:j=10~1000,j为区块链社区节点的总和,i=1~n,n≤60亿,n为全体数字货币用户的总和,注:各个数字货币区块链节点端没有写入摘要算法;

数字货币交易系统的交易方式包括:1)线上交易指:有中心交易;2)双离线交易指:线下交易;3)点对点交易指:无中心交易;

验证中心的功能:

1)当交易双方用户通过验证中心进行交易时,验证中心端加密系统,采用“垂直认证”技术建立的签验协议,对交易单的签名进行签验,对通过签验的交易单执行支付;

2)当交易双方用户进行点对点交易时,验证中心端为交易双方用户提供可信公钥下载服务;

每个数字货币区块链社区的功能,是建立一个账本数据库,数字货币区块链的各个节点端加密系统,分别采用“垂直认证”技术对交易单的签名进行签验,数字货币交易系统,分别验证交易双方用户电子钱包的交易记录是否真实,可信,若都通过验证,则数字货币交易系统,将该交易单存储到账本数据库的记录中;

“垂直认证”技术的定义:密钥集中生成,集中灌装,集中分发和集中销毁;“垂直认证”技术的特征是,采用对称算法建立认证、签名和加密协议,采用组合密钥生成算法,来解决对称算法的密钥交换、更新和管理难题;

组合密钥密钥生成算法,是由一组时间戳和随机数组成的选取参数,来对一组“密钥种子”表的元素进行选取,将选出的y个元素,合成一组加密密钥、解密密钥、认证密钥、存储密钥、签名密钥或签验密钥,其中:y=16或32;

数字货币交易系统为用户的子电子钱包设置口令认证功能,在客户端用户可通过口令认证,登录客户端用户的子电子钱包,只能浏览记录,不能修改交易记录;

数字货币交易系统在客户端,为每个用户的电子钱包设置身份认证按钮,通过调用客户端基于“垂直认证”技术的身份认证协议,可登录进入自己的电子钱包,只能浏览电子钱包的交易记录,不能修改交易记录;

常见的共识算法包括:信用共识poc、或者委托权益共识dpos、或者权益共识pos,为保证数字货币的安全、高效、去中心化、稳定的区块链共识算法,本发明选择信用共识poc;

根据信用共识poc算法,记账者将在t=60秒~600秒内,将通过签验和验证的所有交易单作为一个区块进行记账,区块链系统采用哈希函数sm3算法,将各个区块连接在一起建立区块链;

当用户a和用户b处于线上即:有中心交易时,用户a客户端和用户b客户端加密系统,分别根据各自的“密钥种子”表的元素,产生一组签名密钥,分别对交易单进行签名,验证中心端加密系统,调用对应用户a和用户b对应的“密钥种子”表的元素密文,在加密芯片里解密,再分别产生一组签验密钥,对交易单的签名进行签验,若签验通过,则数字货币交易系统,将交易单的资金额,从用户a的电子钱包转入用户b的电子钱包里,同时,将该交易单作为一条记录,分别存储到用户a的电子钱包和用户b的电子钱包里,从而,完成用户a与用户b之间的线上即:有中心交易过程;

当用户a和用户b处于双离线即:线下交易时,用户a客户端加密系统,用采用私钥对交易单进行签名,并根据用户a端加密芯片里的“密钥种子”表的元素,产生一组签名密钥,对交易单进行二次签名,用户b客户端加密系统,采用私钥对交易单进行签名,并根据用户b端加密芯片里的“密钥种子”表的元素,产生一组签名密钥,对交易单进行二次签名,通过交易双方用户客户端二维码,或者手机的nfc功能,来进行双方公钥、交易单和交易单签名的数据交换,用户b客户端加密系统,采用用户a的公钥对交易单用户a的私钥签名进行签验,用户a客户端加密系统,采用用户b的公钥对交易单用户b的私钥签名进行签验,数字货币交易系统,将都通过签验的交易单中对应的资金额,从用户a的电子钱包转入用户b的电子钱包里,同时,将该交易单作为一条记录,分别存储到用户a的电子钱包和用户b的电子钱包里,从而,完成用户a与用户b之间的双离线即:线下交易过程;

当用户a和用户b处于点对点即:无中心交易时,用户a和用户b的客户端加密系统,分别采用各自的私钥对交易单进行签名,并根据各自客户端加密芯片里的“密钥种子”表的元素,分别产生一组签名密钥,对交易单分别进行二次签名,用户b客户端加密系统,在客户端,根据对方用户a的标识,在客户端公钥数据库中,取出对应用户a的公钥,对交易单用户a的私钥签名进行签验,用户a客户端加密系统,在客户端,根据对方用户b的标识,在客户端公钥数据库中,取出对应用户b的公钥,对交易单用户b的私钥签名进行签验,数字货币交易系统,将都通过签验的交易单执行支付,从而,完成用户a与用户b之间的无中心交易过程;

用户a和用户b之间,在各自的客户端公钥数据库中,根据对方用户的标识,取出对应的公钥,来实现用户a与用户b之间的公钥交换过程,安全等级较高,可保证用户的公钥真实,可信;

若建立数字货币的区块链,数字货币交易系统,将由用户a和用户b分别都进行二次签名的交易单,发送到数字货币区块链社区,数字货币区块链各个节点端加密系统,分别采用“垂直认证”技术的签验协议,对该交易单的签名进行签验,若都通过签验,则数字货币交易系统,再验证各个节点端用户a电子钱包与用户数字b钱包里,是否存储了与该交易单相同的一条记录,且用户a电子钱包已交易款,用户b电子钱包已收到款是否相同,若验证都通过,则将该交易单分别存储到每个节点端的交易数据库里,作为区块链中一个区块的一条记录,其中:1≤a≤n,1≤b≤n,a≠b,n≤60亿,n为全体数字货币用户总数;

根据信用共识poc算法,记账者将在t=60~600时间内,将通过签验和验证的所有交易单作为一个区块进行记账,区块链系统采用哈希函数sm3算法,将各个区块连接在一起建立区块链;

总之,在客户端、验证中心端和区块链节点端,都部署加密芯片,建立“芯片级”签名协议和签验协议,由组合密钥生成算法,保证“垂直认证”技术的各种密钥实时生成,一次一变,事先,将全体用户对应的两两不同的“密钥种子”表i元素,加密成密文存储在验证中心端的“密钥种子”数据库中,并将全体用户对应的公钥也加密成密文,存储在验证中心端的公钥数据库中,同时,将全体用户对应的两两不同的“密钥种子”表i元素,加密成密文存储在各个节点端的“密钥种子”数据库中,保证全体用户对应的公钥和“密钥种子”表i元素存储和传输安全,可提高基于区块链技术数字货币交易系统的安全等级,j=10~1000,j为区块链社区节点的总和,i=1~n,n≤60亿,n为全体数字货币用户总数;

采用公钥算法建立数字货币的点对点即:无中心交易协议,来提高无中心交易的效率和便捷性,采用“垂直认证”技术,来提高区块链节点端的交易单并发签验的速度,保证数字货币交易系统区块链的运行效率,且整个过程由软件和硬件结合方式实现,具体方法如下:

1、用户的手机或平板机统称用户的客户端,在客户端嵌入智能卡,如:sim卡、sd卡、tf卡,或内置智能卡,在智能卡芯片里建立客户端加密系统,在加密芯片里,写入对称算法、公钥算法、摘要算法、组合密钥生成算法、一组私钥i、一组公钥i、用户标识i、一组“密钥种子”表i的元素,其中:客户端的“密钥种子”表i的元素,两两不同,i=1~n,n≤60亿,n为全体数字货币用户总数。

2、在数字货币交易系统中部署验证中心,在验证中心端部署加密硬件设备,建立验证中心端加密系统,在加密硬件设备的加密芯片里,写入对称算法、公钥算法、组合密钥生成算法、一组存储密钥kk、一套“密钥种子”表ll元素,建立“密钥种子”数据库,将全体用户的标识i和“密钥种子”表i的元素密文,一并存储在验证中心端的“密钥种子”数据库中,建立公钥数据库,将全体用户的标识i、公钥i的密文,以及一组时间戳hi和随机数si,一并存储在验证中心端的公钥数据库中,注:验证中心端没有写入摘要算法;

事先,用验证中心端的存储密钥kk,分别加密全体用户对应的“密钥种子”表i元素,存储在“密钥种子”数据库记录中,事先,产生一组时间戳hi和随机数si,由验证中心端一套“密钥种子”表ll元素,根据组合密钥生成算法,生成存储密钥ki,将用户标识i对应的公钥i加密成密文,存储在公钥数据库记录中,其中:j=10~1000,j为数字货币区块链社区节点的总和,i=1~n,n≤60亿,n为全体数字货币用户总数。

3、在各个数字货币区块链节点端都部署加密硬件设备,建立节点端加密系统,在加密硬件的芯片里,写入对称算法、组合密钥生成算法、存储密钥ckj,采用“垂直认证”技术建立签验协议,建立“密钥种子”数据库,事先,用节点端加密芯片里的一组存储密钥ckj,分别将全体用户的“密钥种子”表i元素加密成密文,存储在“密钥种子”数据库记录中,其中:j=10~1000,j为数字货币区块链社区节点的总和,i=1~n,n≤60亿,n为全体数字货币用户总数,注:各个数字货币区块链节点端没有写入摘要算法。

4、数字货币交易系统的交易方式包括:1)双离线交易指:线下交易;2)线上交易指:有中心交易;3)点对点交易指:无中心交易。

5、数字货币交易过程包括:商品报价、商品询价、交易单确认即:交易单签名、交易单的签验,以及交易单金额的支付。

6、交易单主要内容包括:形成交易单的时间戳、付款方用户的电子钱包号、收款方用户的电子钱包号、付款方用户的姓名、收款方用户的姓名、购物名称、单价、付款金额和留言。

7、用户的标识,由一组数字、或数字和英文字母组成,用户的电子钱包号由用户的公钥经过编码变换后生成,或者由一组数字组成,用户的电子钱包号两两不同,用户的标识也两两不同,每个用户的标识,对应一组电子钱包号、一套“密钥种子”表的元素和一组公钥。

8、对称算法,如:sm1、sm4、祖冲之、aes、rc6,公钥算法,如:sm2、sm9、ecc、rsa,摘要算法,如:sm3、sha-2。

9、时间戳由年、月、日、时、分和秒,共14位数字组成,如:2020-06-28-19-01-55,可取部分时间戳,年、月、日和时,如:2020-06-28-19,若取时间戳为:14位数字组成,即:“年”由4位数字组成即:xxx0年~xxx9年,即:“年”取0~9,“月”由2位数字组成即:“月”取01~12,“日”由2位数字组成即:“日”取01~31,“时”由2位数字组成即:“时”取01~24,“分”由2位数字组成即:“分”取01~60,“秒”由2位数字组成即:“秒”取01~60,如:2020-06-28-19-01-55,表示2020年06月28日19点1分55秒;

随机数由y=16,或32位,二进制数组成,当y=16时,每位随机数为4比特二进制数,即:每位随机数占4比特,16位随机数共占64比特,每位随机数的二进制数据的数值为0~15,如:0011,1010,0000,......,1111,0110,则其二进制数据的数值为:3,10,0,......,15,6;

当y=32时,则每位随机数占5比特,32位随机数共占160比特,每位随机数的二进制数的数值为:0~31,如:00110,10100,00000,......,11111,01100,则其二进制数据的数值为:6,20,0,......,31,12。

10、对称算法使用sm1、sm4、rc5、3des、或aes算法,密钥长度为128、210、或256比特,或者根据对称算法的密钥长度要求,对密钥长度进行定义;

摘要算法使用sm3算法、sha-2算法,摘要信息的长度为256比特,若使用的摘要算法其摘要信息的长度相对较短,则会降低签名系统的安全等级,须保证摘要算法为256比特。

11、由密码管理单位,负责用户密钥的生成、灌装、分发和销毁;

密钥集中生成,由密码管理单位,使用加密设备的cpu芯片里随机数发生器,产生一组随机数,将该组随机数作为一组存储密钥kk或ckj,其中:j=10~1000,j为数字货币区块链社区节点的总和;

由密码管理单位,使用加密设备的cpu芯片里随机数发生器,产生一组f2字节随机数,将该组随机数作为一组“密钥种子”,若取时间戳为:10位,即:年、月、日和时,则:取f2=1424或1680字节,将f2字节的随机数组成,一套w×y的“密钥种子”表d,

其中:表d的元素为duv,u=0~w-1,v=0~y-1,duv占0.5字节,或1字节,w=89,或105,y=16,或32;

12、组合密钥密钥生成算法,是通过一组时间戳和随机数组成的选取参数,来对一组“密钥种子”表的元素进行选取,用时间戳对“密钥种子”表的“行”元素进行选取,选出y行y列的“密钥种子”表的子表,再根据随机数,对y行y列的“密钥种子”表的“列”元素进行选取,选出y个元素,并合成一组加密密钥、解密密钥、存储密钥、认证密钥、签名密钥和签验密钥,其中:y=16或32;

组合密钥密钥生成算法的具体实现方法如下:

以表d为例,来说明组合密钥密钥生成算法的具体实现方法,当选择表d元素为89行16列元素时,即:89×16=1424个元素,每个元素占1字节,共占1424字节,当选择表d元素为105行32列元素时,即:105×32=3360个元素,每个元素占,0.5字节,共占1680字节;

(1)用时间戳的“年”对应表d中的第1~10行,共10行,“月”对应表d中的第11~22行,共12行,“日”对应表d中的第23~53行,共31行,“时”对应表d中的第54~77行,共24行,当选择表d元素为89行16列元素时,表d还有12行元素不对应时间戳;当选择表d元素为105行32列元素时,表d还有28行元素不对应时间戳;

根据时间戳从表d的元素中先选出4行,其方法是:从表d的第1~10行共10行中取1行即:用时间戳“年”数字中个位数的数值,作为取表d中“年”对应的行数,如:时间戳为:2013xxxxxx,则:取表d中的第4行,从表d的第11~22行共12行中取1行即:用时间戳“月”数字的数值,作为取表d中“月”对应的“行”,如:时间戳为:20xx11xxxx,则:取表d中的第21行,从表d的第23~53行共31行中取1行即:用时间戳“日”数字的数值,作为取表d中“日”对应的“行”,如:时间戳为:20xxxx30xx,则:取表d中的第52行,从表d的第54~77行共24行中取1行即:用时间戳“时”数字的数值,作为取表d中“时”对应的“行”,如:时间戳为:20xxxxxx21,则:取表d中的第74行,再将表d的第78行~第w行共w-78+1行选出,共选出y行,其中:y=16或32行,组成:y×y表d的子表d1,

其中:表d1的元素为:dvv,v=0~y-1,dvv占0.5或1字节,y=16或32;表d1中第5行~第y行的元素与表d的第78行~第w行的元素完全相同;

(2)设:随机数为:q1,q2,......,qy,对应的数值分别为:l1,l2,......,ly,当y=16时,16位随机数对应的数值为:0~15之间,用:l1,l2,......,l16,对表d1的列进行选取,即:用第1位随机数q1的数值l1,来选取表d1第1行的第l1+1列的元素,用第2位随机数q2的数值l2,来选取表d1第2行的第l2+1列的元素,......,用第16位随机数q16的数值l16,来选取表d1第16行的第l16+1列的元素,共选出16个元素;

当y=32时,32位随机数的数值为:0~31,用:l1,l2,......,l32,对表d1的列进行选取,即:用第1位随机数q1的数值l1,来选取表d1第1行的第l1+1列的元素,用第2位随机数q2的数值l2,来选取表d1第2行的第l2+1列的元素,......,用第32位随机数q32的数值l32,来选取表d1第32行的第l32+1列的元素,共选出32个元素;

由于,国家规定对称算法的密钥长度为128比特,则从表d中选出的y组元素合并成一组密钥,若表d的元素为:8比特,y=16,则从表d中选出的16组元素合并成的密钥为128比特,若表d的元素为:4比特,y=32,则从表d中选出的32组元素合并成的密钥也为128比特,设:加密密钥、解密密钥、存储密钥、认证密钥、签名密钥和签验密钥都为128比特。

13、根据组合密钥密钥生成算法,能实时产生密钥,一次一变,若时间戳取10位,即:年、月、日和时,“密钥种子”表为89×16,随机数取16位二进制数,其中:每位随机数占4比特,共16种变化,则密钥的变化量为:264/小时;若时间戳取10位即:年、月、日和时,“密钥种子”表为105×32,随机数取32位二进制数,其中:每位随机数占5比特,共32种变化,则密钥的变化量为:2160/小时。

14、验证中心端“密钥种子”数据库建立过程,在验证中心端加密芯片里,调用随机数发生器,1)产生第一组随机数,作为用户标识1对应的一套“密钥种子”表1元素,2)产生第二组随机数,作为用户标识2对应的一套“密钥种子”表2元素,......,n)产生第n组随机数,作为用户标识n对应的一套“密钥种子”表n元素,其中:每套“密钥种子”表的元素占2.6~3.3字节;

验证中心端加密系统,在加密芯片里用存储密钥kk,将用户标识1对应的一套“密钥种子”表1元素加密成密文,用存储密钥kk,将用户标识2对应的一套“密钥种子”表2元素加密成密文,......,用存储密钥kk,将用户标识n对应的一套“密钥种子”表n元素加密成密文,将用户标识1、“密钥种子”表1元素密文,存储到“密钥种子”数据库的第1条记录,将用户标识2、“密钥种子”表2元素密文,存储到“密钥种子”数据库的第2条记录,......,将用户标识n、“密钥种子”表n元素密文,存储到“密钥种子”数据库的第n条记录,其中:“密钥种子”数据库有2个字段,即:用户标识i和“密钥种子”表i元素密文,i=1~n,n≤60亿,n为全体数字货币用户总数。

15、数字货币区块链各个节点端“密钥种子”数据库建立过程,数字货币区块链各个节点端加密系统,在加密芯片里用存储密钥ckj,将用户标识1对应的一套“密钥种子”表1元素加密成密文,用存储密钥ckj,将用户标识2对应的一套“密钥种子”表2元素加密成密文,......,用存储密钥ckj将用户标识n对应的一套“密钥种子”表n元素加密成密文,将用户标识1、“密钥种子”表1元素密文,存储到“密钥种子”数据库的第1条记录,将用户标识2、“密钥种子”表2元素密文,存储到“密钥种子”数据库的第2条记录,......,将用户标识n、“密钥种子”表n元素密文,存储到“密钥种子”数据库的第n条记录,其中:“密钥种子”数据库有2个字段,即:用户标识和“密钥种子”表的元素密文,j=10~1000,j为数字货币区块链社区节点的总数,i=1~n,n≤60亿,n为全体数字货币用户总数。

16、验证中心端公钥数据库建立过程,在验证中心端,1)产生一组时间戳h1和随机数s1,由“密钥种子”表ll元素,根据组合密钥生成算法,在加密芯片里,生成一组存储密钥k1,将用户标识1对应的公钥1加密成密文,2)产生一组时间戳h2和随机数s2,由“密钥种子”表ll元素,根据组合密钥生成算法,在加密芯片里,生成一组存储密钥k2,将用户标识2对应的公钥2加密成密文,......,n)产生一组时间戳hn和随机数sn,由“密钥种子”表ll元素,根据组合密钥生成算法,在加密芯片里,生成一组存储密钥kn,将用户标识n对应的公钥n加密成密文;

将用户标识1、公钥1密文、时间戳h1和随机数s1,存储到公钥数据库的第1条记录里,将用户标识2、公钥2密文、时间戳h2和随机数s2,存储到公钥数据库的第2条记录里,......,将用户标识n、公钥n密文、时间戳hn和随机数sn,存储到公钥数据库的第n条记录里,其中:公钥数据库共3个字段,分别存储用户标识、公钥的密文、时间戳和随机数,i=1~n,n≤60亿,n为全体数字货币用户总数。

17、用户的客户端公钥数据库建立过程,验证中心端实时建立基于标识i的公钥临时数据库;

首先,在验证中心端加密芯片里,根据“密钥种子”表ll元素,时间戳hi和随机数si,生成存储密钥ki,将对应标识i的公钥i密文解密,采用存储密钥kk,将对应标识i的“密钥种子”表i元素密文解密,使用时间戳hip和随机数sip,生成一组存储密钥tkip,将用户标识i对应的公钥i加密成密文,将用户标识i、公钥i的密文、时间戳hip和随机数sip,存储在验证中心端基于标识i的公钥临时数据库记录里,共建立n个公钥临时数据库,每个公钥临时数据库共有n条记录,其中:p=1~n,n≤60亿,n为全体数字货币用户总数,i=1~n,n≤60亿,n为全体数字货币用户总数,时间戳hip=hi,随机数sip=si;

标识i的客户端,从验证中心端下载基于标识i的公钥临时数据库,并作为标识i客户端公钥数据库;

验证中心端,根据数字货币的用户总数增添变化,实时产生基于标识i的公钥临时数据库,并及时发送给客户端提示指令:更新公钥数据库,一旦对应标识i客户端从验证中心端下载完成公钥数据库的更新,则验证中心端立即清除该基于标识i的公钥临时数据库;

用户标识i的客户端,向验证中心端下载部分用户的公钥密文过程,首先,用户标识i的客户端,向验证中心端发送标识p1、标识p2、......、标识pr,验证中心端在基于标识i的公钥临时数据库里,将对应标识p1、标识p2、......、标识pr的记录,下载到标识i的客户端,作为标识i客户端公钥数据库中的记录,其中:p1=1~n,p2=1~n,......,pr=1~n,c≠d,pc≠pd,1≤c≤r,1≤d≤r,pc≠i,pd≠i,r<n。

18、当用户a和用户b处于线上即:有中心交易时,用户a与用户b之间的有中心交易协议,

设:付款方为用户a,收款方为用户b,

方法一:用户a客户端加密系统,由摘要算法对交易单进行摘要,得到摘要信息m1即:验证码m1,产生一组时间戳a1和随机数a1,由“密钥种子”表a元素,根据组合密钥生成算法,在加密芯片里,产生一组签名密钥ak1,采用签名密钥ak1加密m1和交易单,得到用户a对交易单的签名即:签名码1,且得到交易单的密文,将用户a的标识、交易单的验证码m1、交易单的签名即:签名码1、交易单密文、时间戳a1和随机数a1,一并发送给验证中心端;

用户b客户端加密系统,由摘要算法对交易单进行摘要,得到摘要信息m1即:验证码m1,产生一组时间戳b1和随机数b1,由“密钥种子”表b元素,根据组合密钥生成算法,在加密芯片里,产生一组签名密钥bk1,采用签名密钥bk1加密m1和交易单,得到签名码2即:用户b对交易单的签名,且得到交易单的密文,将用户b的标识、交易单的验证码m1、交易单的签名即:签名码2、时间戳b1和随机数b1,一并发送给验证中心端;

验证中心端加密系统,在“密钥种子”数据库中,分别调用对应用户a和用户b对应的“密钥种子”表a元素的密文,以及“密钥种子”表b元素的密文,在验证中心端加密芯片里,用存储密钥kk,将对应用户a的“密钥种子”表a元素密文解密,并将对应用户b的“密钥种子”表b元素密文解密,由用户a的“密钥种子”表a元素、时间戳a1和随机数a1,根据组合密钥生成算法,生成签验密钥ak2,对交易单用户a的签名进行签验,并对交易单密文进行解密,即:用签验密钥ak2,解密签名码1和交易单的密文,得到验证码m2和交易单的明文,由用户b的“密钥种子”表b元素,时间戳b1和随机数b1,根据组合密钥生成算法,生成签验密钥bk2,对交易单用户b的签名进行签验,即:用签验密钥ak2,解密签名码2,得到验证码m3,通过对比m1和m2是否相同,来判别用户a对交易单的签名是否可信,完整,通过对比m1和m3是否相同,来判别用户b对交易单的签名是否可信,完整,若m1≠m2,或m1≠m3,则签验未通过,交易失败,若m1=m2,且m1=m3,则签验都通过,数字货币交易系统,将交易单中的金额,从用户a的电子钱包转入用户b的电子钱包里,同时,将该交易单作为一条记录,分别存储到用户a的电子钱包和用户b的电子钱包里,从而,完成用户a与用户b之间的有中心交易过程,其中:1≤a≤n,1≤b≤n,a≠b,n≤60亿,n为全体数字货币用户总数;

方法二:用户a客户端加密系统,向数字货币交易系统发出交易请求,数字货币交易系统,产生一组时间戳a1和随机数a1,并发送给用户a客户端,在用户a客户端加密芯片里,由“密钥种子”表a元素,时间戳a1和随机数a1,根据组合密钥生成算法,产生一组签名密钥ak1,由摘要算法对交易单进行摘要,得到摘要信息m1即:验证码m1,采用签名密钥ak1加密m1和交易单,得到签名码1和交易单的密文,将用户a的标识、验证码m1、交易单的签名即:签名码1、交易单密文、时间戳a1和随机数a1,一并发送给验证中心端;

验证中心端加密系统,在“密钥种子”数据库中,根据用户a的标识,调用对应用户a的“密钥种子”表a元素的密文,在验证中心端加密芯片里,用存储密钥kk将对应用户a的“密钥种子”a表元素的密文解密,由用户a的“密钥种子”表a元素,时间戳a1和随机数a1,根据组合密钥生成算法,生成签验密钥ak2,用签验密钥ak2解密用户a对交易单的签名和交易单的密文,即:解密签名码1和交易单的密文,得到验证码m2和交易单的明文,通过对比m1和m2是否相同,来判别用户a对交易单的签名是否可信,完整,若m1=m2,则签验通过,数字货币交易系统,根据交易单中收款人为用户b,将交易单的资金额,从用户a的电子钱包转入用户b的电子钱包里,同时,将该交易单作为一条记录,分别存储到用户a的电子钱包和用户b的电子钱包里,从而,完成用户a与用户b之间的有中心交易过程,其中:1≤a≤n,1≤b≤n,a≠b,n≤60亿,n为全体数字货币用户总数;

有中心交易,是通过验证中心端加密系统,对交易单的用户签名进行签验,验证中心端没有部署摘要算法,也没有部署签名协议,签验过程在验证中心端也并没有调用摘要算法,是通过客户端传输来的验证码m1和签名码1,在验证中心端解密签名码1得到验证码m2,通过对比m1和m2是否相同,来判断客户端用户的签名是否可信,完整,可防止不法分子在验证中心端进行伪签名,同时,可提高验证中心端并发签验的效率。

19、当用户a和用户b处于双离线即:线下交易时,用户a与用户b之间的双离线交易协议,

设:付款方为用户a,收款方为用户b,

用户a客户端加密系统,调用摘要算法对交易单进行摘要,得到摘要信息m1即:验证码m1,采用用户a的私钥加密m1得到签名码1,即:采用用户a的私钥对交易单进行签名,再产生一组时间戳a1和随机数a1,由“密钥种子”表a元素,根据组合密钥生成算法,产生一组签名密钥ak1,用户a采用签名密钥ak1加密m1,得到签名码2,即:用户a对交易单进行二次签名;

用户a通过手机端二维码,或者手机的nfc功能,将用户a的公钥、交易单、验证码m1和签名码1,即:用户a用私钥对交易单的签名,一并传输给用户b手机端;

用户b客户端加密系统,调用摘要算法对交易单进行摘要,得到摘要信息m1即:验证码m1,采用用户b的私钥加密m1,得到签名码3,即:采用用户b的私钥对交易单进行签名,再产生一组时间戳b1和随机数b1,由“密钥种子”表b元素,根据组合密钥生成算法,产生一组签名密钥bk1,用户b采用签名密钥bk1加密m1,得到得到签名码4,即:用户b对交易单进行二次签名,

用户b通过手机端二维码,或者手机的nfc功能,将用户b的公钥、交易单、验证码m1和验证码3即:用户b用私钥对交易单的签名,一并传输给用户a手机端;

用户b客户端加密系统,采用用户a的公钥对交易单用户a的私钥签名进行签验,即:采用用户a的公钥,解密签名码1得到验证码m2,通过对比m1和m2是否相同,来判断用户a用私钥的签名是否可信,完整;

用户a客户端加密系统,采用用户b的公钥对交易单用户b的私钥签名进行签验,即:采用用户b的公钥,解密签名码3得到验证码m3,通过对比m1和m3是否相同,来判断用户b用私钥的签名是否可信,完整;

若m1≠m2,或m1≠m3,则签验未通过,交易失败,若m1=m2,且m1=m3,则签验都通过,交易双方用户在各自的客户端,分别对比两端的交易单是否相同,若都相同,数字货币交易系统,将通过签验的交易单中对应的资金额,转入用户b的电子钱包里,同时,将该交易单作为一条记录,分别存储到用户a的电子钱包和用户b的电子钱包里,从而,完成用户a与用户b之间的双离线即:线下交易过程;

其中:用户a和用户b在各自的客户端,分别采用各自的私钥对交易单进行签名,是实现用户a与用户b之间处于双离线时,进行相互签验并执行交易单的支付;

用户a和用户b在各自的客户端,分别由组合密钥生成算法,产生各自的一组签名密钥ak1和bk1,分别对交易单进行签名,是为建立数字货币区块链时,各个节点端加密系统,可实现对交易单的签名进行并发快速签验。

20、当用户a和用户b处于点对点即:无中心交易时,用户a与用户b之间的无中心交易协议,

设:付款方为用户a,收款方为用户b,用户a客户端加密系统,在加密芯片里,调用摘要算法对交易单进行摘要,得到摘要信息m1即:验证码m1,采用私钥加密m1得到签名码1,即:用户a用私钥对交易单的签名,再产生一组时间戳a1和随机数a1,由“密钥种子”表a元素,根据组合密钥生成算法,产生一组签名密钥ak1,加密m1得到签名码2,即:用户a用签名密钥ak1对交易单的二次签名;

用户b客户端加密系统,在加密芯片里,调用摘要算法对交易单进行摘要,得到摘要信息m1即:验证码m1,采用私钥加密m1得到签名码3,即:用户b用私钥对交易单的签名,再产生一组时间戳b1和随机数b1,由“密钥种子”表b元素,根据组合密钥生成算法,产生一组签名密钥bk1,加密m1得到签名码4,即:用户b用签名密钥bk1对交易单的二次签名;

用户a客户端加密系统,将用户a的标识、交易单、验证码m1和签名码1即:用户a采用私钥对交易单的签名,一并发送给用户b客户端;

用户b客户端加密系统,将用户b的标识、交易单、验证码m1和签名码3即:用户b采用私钥对交易单的签名,一并发送给用户a客户端;

用户b客户端加密系统,根据标识a取出对应记录中的公钥a的密文,以及时间戳hba和随机数sba,由客户端加密芯片里的“密钥种子”表b元素,根据组合密钥生成算法,产生存储密钥tkba,解密公钥a的密文得到明文;

用户a客户端加密系统,根据标识b取出对应记录中的公钥b的密文,以及时间戳hab和随机数sab,由客户端加密芯片里的“密钥种子”表a元素,根据组合密钥生成算法,产生存储密钥tkab,解密公钥b的密文得到明文;

用户b客户端加密系统,采用用户a的公钥a,解密签名码1即:用户a用私钥对交易单的签名,得到验证码m2,通过对比m1和m2是否相同,来对用户a的私钥签名进行签验,若m1=m2,则用户a用私钥对交易单的签名通过签验;

用户a客户端加密系统,采用用户b的公钥b,解密签名码3即:用户b用私钥对交易单的签名,得到验证码m3,通过对比m1和m3是否相同,来对用户b的私钥签名进行签验,若m1=m3,则用户b用私钥对交易单的签名通过签验;

若m1=m2,且m1=m3,则签验都通过,交易双方用户在各自的客户端,分别对比两端的交易单是否相同,若都相同,数字货币交易系统,将都通过签验的交易单中对应的资金额,转入用户b的电子钱包里,同时,将该交易单作为一条记录,分别存储到用户a的电子钱包和用户b的电子钱包里,从而,完成用户a与用户b之间的点对点即:无中心交易过程;

各个用户的客户端,事先从验证中心端,以密文方式直接下载用户的公钥,并将用户的公钥密文存储到手机端,当交易双方用户之间进行点对点交易时,双方可直接在自己的客户端调用对方的可信公钥,不需要进行公钥交换,可有效提高点对点交易的安全等级,同时,提高点对点交易的速度。

21、交易双方对交易单进行二次签名的过程,以及区块链的各个节点端,分别采用“垂直认证”技术对交易单的签名进行签验协议,同时,建立数字货币区块链的过程,

设:付款方为用户a,收款方为用户b,

1)交易双方对交易单进行二次签名的协议,

用户a客户端加密系统,采用私钥对交易单进行签名,再产生一组时间戳b1和随机数b1,由“密钥种子”表a元素,根据组合密钥生成算法,在加密芯片里,产生一组签名密钥ak1,调用摘要算法对交易单进行摘要,得到摘要信息m1即:验证码m1,用签名密钥ak1加密验证码m1和交易单,得到签名码1即:用户a对交易单的签名,并得到交易单的密文;

用户b客户端加密系统,采用私钥对交易单进行签名,再产生一组时间戳b1和随机数b1,由“密钥种子”表b元素,根据组合密钥生成算法,在加密芯片里,产生一组签名密钥bk1,调用摘要算法对交易单进行摘要,得到摘要信息m1即:验证码m1,用签名密钥bk1加密验证码m1,得到签名码2即:用户b对交易单的签名;

2)区块链各个节点端加密系统,分别采用“垂直认证”技术对交易单的签名进行签验协议,同时,建立数字货币区块链的过程,

用户a和用户b对交易单进行二次签名,且完成了交易单的支付后,数字货币交易系统,将用户a的标识、用户b的标识、交易单的密文、验证码m1、签名码1即:用户a对交易单的签名,签名码2即:用户b对交易单的签名,时间戳a1和随机数a1,时间戳b1和时间戳b1,一并发送到区块链社区;

区块链各个节点端加密系统,调用对应用户a的“密钥种子”表a元素密文和对应用户b的“密钥种子”表b元素密文,在节点端加密芯片里,用存储密钥ckj分别解密;

由“密钥种子”表a元素,时间戳a1和随机数a1,根据组合密钥生成算法,产生一组签验密钥ak2,解密签名码1和交易单的密文,得到验证码m2,并得到交易单的明文,若m1=m2,则用户a对交易单的签名通过签验;

由“密钥种子”表b元素,时间戳b1和随机数b1,根据组合密钥生成算法,产生一组签验密钥bk2,解密签名码2,得到验证码m3,若m1=m3,则用户b对交易单的签名通过签验;

若对用户a和用户b的签验都通过,则数字货币交易系统,验证用户a电子钱包与用户b钱包里,是否存储了与该交易单相同的一条记录,且用户a钱包已支付款,与用户b钱包已收到款是否相同,若验证都通过,则将该交易单分别存储到每个节点端的交易数据库里,作为区块链中一个区块的一条记录,其中:j=10~1000,j为区块链社区节点的总和;

根据信用共识poc算法,记账者将在t时间内,将通过签验和验证的所有交易单作为一个区块进行记账,区块链系统采用哈希函数sm3算法,将各个区块连接在一起建立区块链,形成一个账本数据库,从而,完成数字货币区块链建立的过程;

区块链的各个节点端加密系统,采用“垂直认证”技术建立的签验协议,对交易单采用“垂直认证”技术的签名进行签验,可发挥对称算法的加/解密速度快的优势,对称算法的签验速度对比公钥算法快100倍以上,这种将公钥算法并发签验,转成采用对称算法的并发签验的区块链系统,可大大提高建立区块链的效率,减少设备投入。

22、用户通过身份认证后,登录自己电子钱包,采用“垂直认证”技术建立的身份认证协议如下:

用户a手机端发送认证请求给数字货币系统,数字货币系统返回一组时间戳a2,客户端加密系统,在加密芯片里,生成一组随机数a2,调用摘要算法,对时间戳和随机数进行摘要,得到摘要信息n1即:验证码n1,由“密钥种子”表a的元素,时间戳a2和随机数a2,根据组合密钥生成算法,生成认证密钥lk1,用lk1加密验证码n1得到验证码n1的密文即:签名码,将用户a的标识、验证码n1、签名码、时间戳a2和随机数a2,一并发送给数字货币系统,再转发给验证中心端;

验证中心端加密系统,根据用户a的标识,从“密钥种子”数据库里,取出对应的“密钥种子”表a元素密文,在加密芯片里,用存储密钥kk解密“密钥种子”表a元素密文,由时间戳a2和随机数a2,根据组合密钥生成算法,生成认证密钥lk2,用lk2解密签名码,得到验证码n2,对比n1和n2是否相同,来判断用户a的身份是否可信,若n1≠n2,则用户a的身份为假,若n1=n2,则用户a的身份可信,真实,用户a登录自己的电子钱包。

23、在全国范围内,建立z=400个分布式数字货币区块链社区,并建立e=z/2=200座验证中心,将z个数字货币区块链社区,分别与数字货币数据结算中心连接,各个区块链的账本数据库,实时传输到数字货币交易系统的结算中心,同时,e=z/2=200座验证中心也分别与z个分布式区块链社区连接;

当用户a和用户b处于有中心交易时,首先,用户a和用户b,在各自的客户端加密芯片里,分别采用“垂直认证”技术建立的签名协议,对交易单进行签名,验证中心端加密系统,采用“垂直认证”技术对交易单的签名进行签验;

数字货币交易系统,根据省、市地区分布进行任务分配,将交易双方用户签名的交易单,发送给对应地区的验证中心,对应地区的验证中心端加密系统,采用“垂直认证”技术建立的签验协议,对交易单的签名进行签验,若交易单通过签验,则交易单执行支付,并将交易双方用户分别签名的交易单,根据省、市地区分布,发送给对应的数字货币区块链社区,再由该数字货币区块链的各个节点端加密系统,分别采用“垂直认证”技术建立的签验协议,对该交易单分别进行签验;

当用户a和用户b处于无中心交易时,首先,用户a和用户b,在各自的客户端加密芯片里,分别采用各自的私钥,对交易单进行签名,并采用“垂直认证”技术建立的签名协议,分别对交易单进行二次签名;

用户a客户端加密系统,采用用户b的公钥,对用户b私钥签名的交易单进行签验,用户b客户端加密系统,采用用户a的公钥,对用户a私钥签名的交易单进行签验,若都通过签验,则交易单执行支付,并将交易双方用户分别二次签名的交易单,根据省、市地区分布,发送给对应的数字货币区块链社区,再由该数字货币区块链的各个节点端加密系统,分别采用“垂直认证”技术建立的签验协议,对该交易单分别进行签验;

若数字货币区块链的各个节点端对交易单的验证都通过,则将该交易单分别存储到每个节点端的交易数据库里,作为区块链中一个区块的一条记录;

根据信用共识poc算法,记账者将在t=60~600秒时间内,将通过签验和验证的所有交易单作为一个区块进行记账,区块链系统采用哈希函数sm3算法,将各个区块连接在一起建立区块链;

将z个区块链的数据发送给数字货币交易系统的结算中心,实现数字货币的实时结算和数据统计;

当交易双方用户采用有中心交易时,数字货币交易系统将交易单的并发签验任务,分配到e=200个验证中心去完成,且对称算法加/解密速度比公钥算法,在计算机内存里快100倍,在芯片里快1000倍,从而,大大提高验证中心端交易单并发签验速度,可保证1秒钟内,每座验证中心可并发签验2000次,e=200座验证中心,可保证交易双方用户可同时完成约40万笔/秒交易;

采用当交易双方用户采用无中心交易方式,亦即:用户两两之间采用的是直接交易,可保证交易过程不受中心的制约,保证交易双方用户可同时完成超过40万笔/秒交易;

总之,采用有中心交易或无中心交易时,都可以满足中国数字货币交易速度为30笔/秒的设计标准;

在数字货币区块链的各个节点端,采用“垂直认证”技术建立的签验协议,可保证区块链各个节点端的运行效率达到1000笔/秒,通过建立400个分布式区块链社区,可保证整个数字货币的区块链系统运行速度,合计达到40万笔/秒,因此,采用“垂直认证”技术建立400个数字货币区块链社区,也可满足中国数字货币建立区块链处理速度达30笔/秒的设计需求。

附图说明:

图1:数字货币交易系统,通过建立e座验证中心和z个区块链社区,保证交易速度和建立区块链速度都达到40万笔/秒的实施过程,

具体实施方式:

以下结合附图说明,通过建立e=200座验证中心和z=400个区块链社区,保证数字货币交易速度和区块链的建立速度都达到40万笔/秒的实现步骤:

图1:说明数字货币交易系统,通过建立e=200座验证中心和z=400个区块链社区,保证交易速度和区块链的建立速度都达到40万笔/秒,满足中国数字货币交易速度为30笔/秒设计标准的实施步骤:

首先,在数字货币交易系统,建立e=200座验证中心,建立数字货币区块链社区400个,当交易双方用户处于有中心交易时,数字货币交易系统,将交易双方用户采用“垂直认证”技术签名的交易单,根据建立200座验证中心的省、市地区分布,将验证任务分配给对应地区的验证中心,对应地区的验证中心端加密系统,采用“垂直认证”技术建立的签验协议,对交易单的签名进行签验,若通过签验的交易单,数字货币交易系统对交易单执行支付;

采用“垂直认证”技术建立的签验协议,可充分发挥对称算法加/解密速度快的优势,可保证有中心交易的速度达到2000笔/秒左右,200座验证中心,共计并发签验且支付速度可达到40万笔/秒,满足中国数字货币交易速度为30笔/秒的设计标准;

当交易双方用户处于无中心交易时,交易双方用户分别采用对方的公钥,对交易单对方私钥签名进行签验,若通过签验的交易单,则数字货币交易系统对交易单执行支付;

交易双方用户采用点对点交易方式,即:交易双方用户之间进行两两相互签验并交易,用户之间并发签验和交易过程都不受中心的制约,可保证交易双方用户可同时完成超过40万笔/秒交易,也可满足中国数字货币交易速度为30笔/秒的设计标准;

数字货币交易系统,将交易双方用户分别进行二次签名的交易单,根据z=400个数字货币区块链社区的省、市地区分布,发送给对应的数字货币区块链社区;

在数字货币区块链的各个节点端加密系统,采用“垂直认证”技术建立的签验协议,分别对该交易单进行签验,可充分发挥对称算法加/解密速度快的优势,保证在数字货币区块链的各个节点端加密系统,并发签验速度达到1000笔/秒左右,z=400个数字货币区块链社区,共计并发签验速度可达到40万笔/秒,满足中国数字货币交易速度为30笔/秒的设计标准;

数字货币的各个区块链社区,根据各个节点端加密系统,对交易单进行签验的结果,建立各个区块链的账本数据库,并将z个区块链的数据实时发送给数字货币交易系统的结算中心,实现数字货币的实时结算和数据统计。

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