CN111429119B - 区块链技术用于数字货币的加密、支付、查询和提交方法 - Google Patents

区块链技术用于数字货币的加密、支付、查询和提交方法 Download PDF

Info

Publication number
CN111429119B
CN111429119B CN202010214598.XA CN202010214598A CN111429119B CN 111429119 B CN111429119 B CN 111429119B CN 202010214598 A CN202010214598 A CN 202010214598A CN 111429119 B CN111429119 B CN 111429119B
Authority
CN
China
Prior art keywords
node
random number
ciphertext
currency
payment
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202010214598.XA
Other languages
English (en)
Other versions
CN111429119A (zh
Inventor
王妮娜
钟林
高胜
马永彪
万兆泽
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Data Communication Science & Technology Research Institute
Original Assignee
Data Communication Science & Technology Research Institute
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Data Communication Science & Technology Research Institute filed Critical Data Communication Science & Technology Research Institute
Priority to CN202010214598.XA priority Critical patent/CN111429119B/zh
Publication of CN111429119A publication Critical patent/CN111429119A/zh
Application granted granted Critical
Publication of CN111429119B publication Critical patent/CN111429119B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/04Payment circuits
    • G06Q20/06Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
    • G06Q20/065Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3825Use of electronic signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3829Payment protocols; Details thereof insuring higher security of transaction involving key management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/3013Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters involving the discrete logarithm problem, e.g. ElGamal or Diffie-Hellman systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Strategic Management (AREA)
  • General Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • Physics & Mathematics (AREA)
  • Finance (AREA)
  • Computing Systems (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

本说明书涉及区块链技术用于数字货币的加密方法、加密支付方法、加密和查询方法以及加密和提交方法,其中数字货币的加密方法包括根据超级节点私钥的至少部分进行单向函数运算,生成秘密随机数;基于秘密随机数和一常规节点公钥的至少部分,采用基于离散对数困难问题的加密算法加密待发行的数字货币,得到货币发行密文;根据超级节点私钥的至少部分和货币发行密文生成货币发行签名;将货币发行密文和货币发行签名添加至货币发行报文,并广播货币发行报文至区块链系统。在采用本发明提供的数字货币的加密方法后,超级节点不需要存储秘密随机数或者数字货币信息明文,仅需要存储公开的区块链和保密存储的私钥,就能够查询已经加密的数字货币信息。

Description

区块链技术用于数字货币的加密、支付、查询和提交方法
技术领域
本发明涉及区块链技术领域,尤其涉及一种区块链技术用于数字货币的加密、支付、查询和提交方法。
背景技术
随着区块链相关技术的发展和成熟,目前的数字货币加密后缺乏相应的查询方法;另外,当前数字货币只能使用唯一的私钥才能使用,在私钥丢失的情况下,用户也就不能使用相应的数字货币;货币支付方在将数字货币支付给接收方法后,无法再次查验支付信息,不能实现信息回溯。
发明内容
一方面,本说明书提供一种区块链技术用于数字货币的加密方法,用于区块链系统的超级节点,其中数字货币的发行方为央行,所述方法包括:
根据所述超级节点私钥的至少部分进行单向函数运算,生成秘密随机数;
基于所述秘密随机数和一常规节点公钥的至少部分,采用基于离散对数困难问题的加密算法加密待发行的数字货币,得到货币发行密文;
根据所述超级节点私钥的至少部分和所述货币发行密文生成货币发行签名;
将所述货币发行密文和所述货币发行签名添加至货币发行报文,并广播所述货币发行报文至所述区块链系统;
其中:所述超级节点公钥的至少部分和私钥的至少部分具有离散对数关系,所述一常规节点的公钥的至少部分和私钥的至少部分具有离散对数关系。
可选地,根据所述超级节点私钥的至少部分进行单向函数运算,生成秘密随机数,包括:
根据所述超级节点的私钥的至少部分和一随机数,进行单向函数运算,生成所述秘密随机数。
另一方面,本说明书提供一种查询已加密数字货币信息的方法,用于区块链系统的超级节点,包括:
根据所述超级节点私钥的至少部分进行单向函数运算,生成秘密随机数;
基于所述秘密随机数和一常规节点公钥的至少部分,采用基于离散对数困难问题的查询算法处理货币发行密文,确定已向所述一常规节点发行的数字货币的信息;
其中:所述超级节点公钥的至少部分和私钥的至少部分具有离散对数关系,所述一常规节点的公钥的至少部分和私钥的至少部分具有离散对数关系;所述货币发行密文存储在区块链的一区块中。
可选地,根据所述超级节点私钥的至少部分进行单向函数运算,生成秘密随机数,包括:
根据所述超级节点私钥的至少部分和一随机数,进行单向函数运算,生成所述秘密随机数;所述一随机数为对与所述货币发行密文对应的随机数。
再一方面,本说明书提供一种数字货币的加密支付方法,用于区块链系统中债务节点,包括:
根据所述债务节点私钥的至少部分和超级节点公钥的至少部分,生成会话密钥;
根据所述会话密钥生成秘密随机数;
基于所述秘密随机数和债权节点公钥的至少部分,采用基于离散对数困难问题的加密算法加密待支付的数字货币,得到支付密文;
根据所述债务节点私钥的至少部分和所述支付密文生成支付签名;
将所述支付密文和所述支付签名添加至货币支付报文,并广播所述货币支付报文至所述区块链系统;
其中:所述超级节点公钥的至少部分和私钥的至少部分具有离散对数关系,所述债务节点的公钥的至少部分和私钥的至少部分具有离散对数关系,所述债权节点的公钥的至少部分和私钥的至少部分具有离散对数关系。
可选地,根据所述会话密钥生成秘密随机数,包括:根据所述会话密钥和一公开随机数生成所述秘密随机数;
将所述支付密文和所述支付签名添加至货币支付报文,包括:将所述支付密文、所述支付签名和所述公开随机数添加至所述货币支付报文。
再一方面,本说明书提供一种查阅已加密支付的数字货币信息的方法,用于区块链系统中的债务节点,包括:
根据所述债务节点私钥的至少部分和超级节点公钥的至少部分,生成会话密钥;
根据所述会话密钥生成秘密随机数;
基于所述秘密随机数和债权节点公钥的至少部分,采用基于离散对数困难问题的查询算法处理支付密文,确定已向所述债权节点支付的数字货币信息;
其中:所述超级节点公钥的至少部分和私钥的至少部分具有离散对数关系,所述债务节点的公钥的至少部分和私钥的至少部分具有离散对数关系,所述债权节点的公钥的至少部分和私钥的至少部分具有离散对数关系;所述支付密文存储在区块链的一区块中。
可选地根据所述会话密钥生成秘密随机数,包括:根据所述会话密钥和一公开随机数生成所述秘密随机数;所述公开随机数存储在所述区块中。
再一方面,本说明书提供一种数字货币的加密和查询方法,用于区块链系统中的超级节点,包括:
根据所述超级节点私钥的至少部分和债务节点公钥的至少部分,生成会话密钥;
根据所述会话密钥生成秘密随机数;
基于所述秘密随机数和债权节点公钥的至少部分,采用基于离散对数困难问题的查询算法处理支付密文,确定所述债务节点已向所述债权节点支付的数字货币的信息;
其中:所述超级节点公钥的至少部分和私钥的至少部分具有离散对数关系,所述债务节点的公钥的至少部分和私钥的至少部分具有离散对数关系,所述债权节点的公钥的至少部分和私钥的至少部分具有离散对数关系;所述支付密文存储在区块链的一区块中。
可选地,根据所述会话密钥生成秘密随机数,包括:
根据所述会话密钥和一公开随机数生成所述秘密随机数;所述公开随机数存储在所述区块中。
再一方面,本说明书提供一种数字货币的加密和提交方法,用于区块链系统中的常规节点,包括:
根据所述常规节点私钥的至少部分进行单向函数运算,生成秘密随机数;
基于所述秘密随机数和超级节点公钥的至少部分,采用基于离散对数困难问题的加密算法加密向所述超级节点报送的数字货币信息,得到提交密文;
根据所述常规节点私钥的至少部分和所述提交密文生成提交签名;
将所述提交密文和所述提交签名添加至提交报文,并广播所述提交报文至所述区块链系统;
其中:所述超级节点公钥的至少部分和私钥的至少部分具有离散对数关系,所述一常规节点的公钥的至少部分和私钥的至少部分具有离散对数关系。
可选地,根据所述常规节点私钥的至少部分进行单向函数运算,生成秘密随机数,包括:
根据所述常规节点私钥的至少部分和一公开随机数,进行单向函数运算,生成所述秘密随机数。
再一方面,本说明书提供.一种查阅已加密和提交的数字货币信息的方法,用于区块链系统中的常规节点,包括:
根据所述常规节点私钥的至少部分进行单向函数运算,生成秘密随机数;
基于所述秘密随机数和超级节点公钥的至少部分,采用基于离散对数困难问题的查询算法处理向提交密文,得到向所述超级节点报送的数字货币信息;
其中:所述常规节点公钥的至少部分和私钥的至少部分具有离散对数关系,所述超级节点的公钥的至少部分和私钥的至少部分具有离散对数关系;所述提交密文存储在区块链的一区块中。
可选地,根据所述常规节点私钥的至少部分进行单向函数运算,生成秘密随机数,包括:
根据所述常规节点私钥的至少部分和一公开随机数进行单向函数运算,生成所述秘密随机数。
本说明书提供的数字货币的加密方法,秘密随机数根据超级节点的私钥采用单向函数运算得到。因此,在已知私钥的前提下,超级节点可以通过单向函数运算得到秘密随机数,并利用秘密随机数和常规节点公钥实现对货币发行密文的查询。在采用本实施例提供的数字货币的加密方法后,超级节点不需要存储秘密随机数或者数字货币信息明文,仅需要存储公开的区块链和保密存储的私钥,就能够查询已经加密的数字货币信息。类似的,其他方法也可以采用对应节点的私钥生成秘密随机数,或者,采用对应节点的私钥和超级节点的公钥生成秘密随机数。
本发明中,上述各技术方案之间还可以相互组合,以实现更多的优选组合方案。本发明的其他特征和优点将在随后的说明书中阐述,并且,部分优点可从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过说明书以及附图中所特别指出的内容中来实现和获得。
附图说明
附图仅用于示出具体实施例的目的,而并不认为是对本发明的限制。
图1是实施例提供的区块链技术用于数字货币的加密方法的流程图;
图2是实施例提供的查询已加密数字货币信息的方法;
图3是实施例提供的数字货币的加密支付方法的流程图;
图4是实施例提供的查阅已加密支付的数字货币信息的方法的流程图;
图5是实施例提供的数字货币的加密和查询方法的流程图;
图6是实施例提供的数字货币加密和提交方法的流程图;
图7是实施例提供的查阅已加密和提交的数字货币信息的方法的流程图。
具体实施方式
下面结合附图来具体描述本发明的优选实施例,其中,附图构成本申请一部分,并与本发明的实施例一起用于阐释本发明的原理,并非用于限定本发明的范围。
应当注意的是,本说明书实施例中的各种方法均是在区块链系统中实现,并且各个实施例中的区块链系统均包括常规节点和超级节点。常规节点为区块链中具有一般功能的节点,超级节点为可以对常规节点发送的报文进行监管的节点,即能够解析常规节点报文中的密文的节点。
在一种应用中,区块链系统可以是以一核心企业构建的联盟链系统,对应的超级节点可以为联盟链系统的核心企业,常规节点可以是联盟链系统的其他参与企业。
在介绍实施例,首先简单介绍实施例的准备步骤。准备步骤包括系统共同参数生成步骤、各个节点的密钥生成步骤和区块链的加入步骤。
系统共同参数生成步骤:采用系统参数生成算法,以安全参数1λ为输入,输出一个循环群G,其中群的阶为p,生成元为g,系统公共参数为SP;系统公共参数SP的求算方法如公式SP=(G,p,g)←SysGen(1λ)。
密钥生成步骤:以前述系统共同参数生成步骤生成的系统公共参数SP为输入,确定各个节点的公钥。每个节点分别选择一个秘密随机数α作为自己的私钥,并利用自己的私钥计算对应的公钥。每个节点的公钥和私钥均具有离散对数关系,即各个参与方的公钥均根据公式gα←gα计算得到。
本实施例中,超级节点的私钥(Secrett Key,SK)和公钥(Public Key,PK)分别为SK1=α1,PK1=g1;对应前述超级节点的常规节点的私钥和公钥分别为SK2=α2,PK2=g2
根据常规节点在商业交易过程中类型的不同,常规节点又细分为债务节点和债权节点,债务节点为具有支付义务的节点,债权节点为应当获得支付权益的节点。债务节点的私钥和公钥分别采用SK21=α21,PK21=g21表示,债权节点的私钥和公钥分别采用SK22=α22,PK22=g22表示。
此外,区块链系统的管理方的私钥为和公钥分别为SK3=α3,PK3=g3;当然,实际应用中,区块链系统的管理方也可能为前述的超级节点(此时,区块链系统管理节点的私钥和公钥分别为SK1=α1,PK1=g1)。
区块链加入步骤:各个需要加入区块链系统的节点将其公钥提交给区块链的管理节点,区块链的管理节点运行签名算法Sign,以系统公共参数SP、私钥SK3和节点(超级节点或者常规节点)的公钥PKi为输入,采用签名验证算法输出身份证书Certi,即Certi←Sign(SP,SK3,PKi)。在一本实施例的一个具体应用中,签名验证算法如公式K0=gλmodp,SHA(gi,K0)=α3·K0+r0·s0mod(p-1)。
公式3中,λ为一随机数;采用公式3得到的节点i的身份证书为Certi=(K0,s0)。
对应的,各个节点在获得区块链管理节点发送的身份证书Certi后,以系统公共参数SP,节点i公钥PKi、身份证书Certi和区块链管理节点的公钥PK3为输入,采用验证算法Verify输出判断值,即Accept/Reject←Verify(SP,PK3,PKi,Certi)。如各个节点输出Accept,则接受身份,使得节点i加入区块链系统;若输出Reject,则拒绝节点i加入区块链系统。在本实施例的一个具体应用中,验证算法Verify如公式如果公式成立,则输出Accept;如果公式4不成立,则输出Reject。
图1是实施例提供的区块链技术用于数字货币的加密方法的流程图。此加密方法应用于区块链系统的超级节点。
区块链技术用于数字货币的加密,指的是超级节点确定分配给一常规节点的数字货币,将数字货币加密形成货币发行密文广播至区块链的过程,以及,区块链系统的各个节点通过共识算法实现信息确认,将货币发行密文存储在区块链中的过程。如图1所示,本实施例包括步骤S101-S104。
S101:根据超级节点的私钥进行单向函数运算,生成秘密随机数。
步骤S101中,超级节点根据自己的私钥SK1进行单向函数运算,生成秘密随机数r1。其中的单向函数运算可以为离散对数运算、或者哈希运算,也可以为其他类型的单向函数运算,只要保证可以根据私钥SK1生成唯一的秘密随机数r1,但是并不能通过秘密随机数r1,采用合理的算力计算得到私钥α1即可。
应当注意是,在单向函数运算为离散对数运算的情况下,离散对数运算生成的秘密随机数不能与超级节点的公钥相同(即在某些情况下,离散对数运算的底数应当与当前生成公钥时采用的底数g不同)。
S102:基于秘密随机数和一常规节点公钥,采用基于离散对数困难问题的加密算法加密待发行的数字货币,得到货币发行密文。
本说明书实施例具体应用中,数字货币发行密文采用C0表示,货币发行密文C0可以采用公式计算得到。在公式中,M0为待发行的数字货币。当然,步骤S102中还可以采用本领域采用的其他已有的基于离散对数困难问题的加密算法,具体地可以参见相关技术文献。
S103:根据超级节点私钥和货币发行密文生成货币发行签名。
如现有的区块链系统,超级节点在向区块链系统中的各个节点发送报文时,需要能够证明报文是否是真正的超级节点发送,因此需要相应的签名验证。同时,为了保证待发行数字货币的秘密性,需要对已经加密后的货币发行密文进行签名。本说明书实施例中,货币发行签名为σ1,σ1←Sign(SP,SK1,C0)。在一个具体应用中,σ1可以采用公式的算法得到获得。r3为一随机数,输出的货币发行签名为σ1=(K2,s2)。
S104:将货币发行密文和货币发行签名添加至货币发行报文,并广播货币发行报文至区块链系统。
在已经确定前述的货币发行密文C0和货币发行签名σ1后,超级节点将货币发行密文C0和货币发行签名σ1添加至货币发行报文C的一部分,采用区块链系统的P2P网络等广播区块链系统中的其他节点。
实际应用中,为了标识货币发行报文C,使得区块链系统中的各个节点确定货币发行报文C来自超级节点,货币发行报文C中可以包括超级节点的公钥PK1;为了使得各个节点确定待发行货币的接收方,货币发行报文中可以包括常规节点的公钥PK2
经过前述步骤S101-S104后,区块链系统中超级节点执行的数字货币的加密方法已经完成。前述步骤S101-S104的技术效果在后文表述。
在超级节点将货币发行报文C广播至区块链系统后,区块链系统中的各个节点(包括常规节点,也可以包括超级节点自己)接收到货币发行报文C后,首先采用验证算法Verify验证货币发行报文是否为超级节点发出,具体的是,各个节点以系统共同参数SP、货币发行量密文C0、货币发行签名σ1和超级节点公钥PK1为输入,采用验证算法判断输出值Accept或者Reject,Accept/Reject←Verify(SP,PK1,C01)。在本实施例一个具体应用中,验证算法如公式如果前述公式的成立则输为Accept,则区块链系统的各个节点执行共识算法,并在达成共识后,至少将货币发行报文C中的货币发行量密文保存至区块链的末端区块中,并实现全网区块链的同步。
相应的共识算法和实现全网区块链同步的技术内容并不是本说明书的发明点,相应内容可以参见现有技术文献,本说明书不展开表述。另外,以下实施例中涉及签名时采用的签名算法、验证算法与前述的签名算法和验证算法相同,下文中针对相应内容的签名和签名验证采用的具体算法可以参见前文对应的表述。
假设区块链网络完成了共识算法,将货币发行量密文保存到区块链的区块中。此时超级节点可以仅保存区块链,而丢弃本地存储的待发行的数字货币明文(应当注意,此时待发行的数字货币已经变为已经发行的数字货币),仅通过区块链数据就可以确定已经发行的数字货币信息。
图2是实施例提供的查询已加密数字货币信息的方法。此查阅方法应用于区块链系统的超级节点,用于超级节点根据区块链区块数据,确定已经向某一常规节点发行的数字货币的信息。如图2所示,查询方法包括步骤S201-S202。
S201:根据超级节点私钥进行单向函数运算,生成秘密随机数。
步骤S201和前述步骤S101的内容相同,此处不再复述。
S202:基于秘密随机数和常规节点的公钥,采用基于离散对数困难问题的查询算法处理货币发行密文,确定已向常规节点发行的数字货币的信息。
在进行步骤S202前,超级节点需要从区块链中获得对应的货币发行密文C0。实际应用中,超级节点可以通过自己的公钥PK1和常规节点的公钥PK2作为查询参数,确定区块链中包含货币发行密文的区块;随后再采用秘密随机数和常规节点的公钥PK2,实现对货币发行密文C0的解析,确定已向常规节点发行的数字货币的信息M0在本实施例一个具体应用中
应当注意是,步骤S202中采用的查询算法应当与步骤S102中采用的加密算法对应,以保证能够实现对货币发行明文的解析,获得相应的已经发行的货币信息M0
以下对现有技术中的加密方法做简单的介绍,以用于后续通过对比方式确定本实施例加密算法可以达到的技术效果。
在现有的数字货币的加密方法中,秘密随机数由超级节点随机生成,并在步骤S102中用于加密待发行的数字货币,得到货币发行密文。为了能够在发行数字货币后任一时刻确定已经发行的数字货币信息,超级节点只能有两个选择:(1)保存已经发行的数字货币的明文信息;(2)保存秘密随机数。在选择(1)的情况下,超级节点需要保证明文信息的安全性和保密性,在选择(2)的情况下,超级节点需要保证秘密随机数的安全性和保密性。而实现明文信息或者秘密随机数的保存均需要保证相应的保密成本,在发行的数字货币逐渐增加的情况下,保密成本也随之增加;另外,超级节点还需要保证私钥的安全性和保密性。
分析本实施例提供的数字货币的加密方法和查询已加密数字货币信息的方法可知,本实施例中,秘密随机数r1根据超级节点的私钥SK1采用单向函数运算得到。因此,在已知私钥SK1的前提下,超级节点可以通过单向函数运算得到秘密随机数r1,并利用秘密随机数r1和常规节点公钥PK2实现对货币发行密文的查询。在采用本实施例提供的数字货币的加密方法后,超级节点不需要存储秘密随机数r1或者数字货币信息明文,仅需要存储公开的区块链和保密存储的私钥SK1,就能够查询已加密的数字货币信息。
在前述实施例具体应用的基础上,步骤S101可以细化为步骤S1011:根据超级节点的私钥SK1和一随机数χ,进行单向函数运算,生成秘密随机数。例如,在一个具体应用中,可以将超级节点的私钥SK1和一随机数χ合成为一个数据段,采用哈希运算或者离散对数运算,得到一秘密随机数r1。实际应用中,通过设置随机数χ,可以形成不同的秘密随机数r1,继而使得超级节点在加密分发给不同常规节点发送的数字货币时,采用不同的秘密随机数r1。即通过引入随机数χ,可以增加恶意用户破解超级节点私钥的难度。实际应用中,前述的随机数χ可以存储在本地,也可以添加至货币发行报文C的一部分,上传至区块链网络,并最终存储在区块链的区块中。
应当注意是,在采用随机数χ的情况下,在一些采用离散随机数运算生成秘密随机数r1的实施例中,离散随机数预算的底数可以为g。此外,为了能够实现对货币发行密文的查阅,发送方应当在本地存储随机数χ,或者将随机数χ添加至货币发行报文的一部分广播至区块链系统,以使得随机数和货币发行密文在能够同时存储在区块链中。
与前述步骤S1011对应的,步骤S201可以细化为步骤S2011:根据超级节点私钥SK1和前述的公开随机数进行单向函数运算,生成秘密随机数。
为了使得常规节点能够核实超级节点向其分配的数字货币,在本实施例的一些应用中,超级节点还可以对待发行的数字货币进行签名;具体的,超级节点以可以采用签名算法,以自己的私钥SK1和待发行的数字货币为输入,生成发行货币签名σ0←Sign(SP,SK0,M0)。在本实施例一具体应用中,签名计算过程如公式K1=gηmodp,SHA(M0,K1)=α0·K1+r1·s1mod(p-1)。前述公式中,η为一随机数,输出签名为σ1=(K2,s2)
步骤S103中,前述的发行货币签名σ0添加至货币发行报文的一部分广播至区块链系统中,并在区块链共识认证后和货币发行密文一起存储在区块链中。
对应的,常规节点在接收到前述的货币发行报文后,可以通过对发行密文的解密确定超级节点向自己发行的数字货币,并采用超级节点的公钥PK1对发行货币签名σ0进行验证,再次确定超级节点向自己发行的数字货币是否为解密得到的数字货币,如前述解密和签名验证得到的数字货币相同,则常规节点确定超级节点向自己发行的数字货币是有效力的。通过采用前述的发行货币签名σ0,可以实现对发行数字货币的验证,避免因数据传输中或者特殊情况下解密异常造成的常规节点解密得到的数字货币与超级节点发行的数字货币不同的问题;当然,在超级节点查询已经发行数字货币时,超级节点也可以通过发行货币签名σ0验证已发行的数字货币信息。
在采用前述发行货币签名σ0情况下,如果超级节点还使用随机数χ生成秘密随机数,则随机数χ也可以作为待验证内容,与发行的数字货币一起作为输入(即公式7中的M0更换为χ|M0),采用公式7超级节点的公钥生成发行货币签名σ0
图3是实施例提供的数字货币的加密支付方法的流程图。数字货币的加密支付方法用于区块链系统中的债务节点,以实现债务节点向债权节点支付数字货币。如图3所示,本实施例提供的方法包括步骤S301-S305。
S301:根据债务节点的私钥和超级节点的公钥,生成会话密钥。
本实施例具体应用中,会话密钥采用r0表示。会话密钥r0为超级节点和债务节点根据自己的私钥和对方的公钥生成的一相同密钥。在本实施例的一具体应用中,会话密钥r0可以采用公式计算得到。根据前述可知,因为会话密钥r0中必然需要超级节点和债务节点中一方的私钥和另一方的公钥,所以除超级节点和债务节点的其他区块链节点,只有暴力破解方式确定超级节点的私钥或债务节点的私钥,才可能进一步地确定会话密钥r0
S302:根据会话密钥生成秘密随机数。
实际应用中,步骤S302可以有如下几种可能的实现方式。
第一种可能的实现方式:直接将会话密钥r0作为秘密随机数r1使用。可以想到,因为会话密钥r0至少根据超级节点和债务节点的一个私钥确定,所以会话密钥具有保密特性,所以可以直接采用会话密钥作为秘密随机数r1
第二种可能的实现方式:对会话密钥r0进行单行函数运算,生成秘密随机数r1。在一个实施例具体应用中,单向函数优选为哈希运算。实际应用中,为了尽可能增加暴力破解的复杂性,私钥和对应的公钥数据位数均较长;对应的根据发送方私钥和监管方公钥生成的秘密随机数r1会更长。根据哈希运算的特性可知,采用哈希运算处理会话密钥r0可以将一较长的数据转变为数据长度较短的、数据位数确定的数据段,而将此数据长度较短、数据位数确定的数据段作为秘密随机数r1用于后续处理,可以降低后续步骤的计算复杂度。
第三种可能的实现方式:根据会话密钥r0和一公开随机数γ组合生成秘密随机数r1。具体应用中,会话密钥γ可以和公开随机数γ直接拼接形成秘密随机数r1,也可以将拼接后的数据采用前述的单向函数运算得到秘密随机数r1
S303:基于秘密随机数和债权节点公钥,采用基于离散对数困难问题的加密算法加密待支付的数字货币,得到支付密文。
本实施例中,支付密文采用C1。步骤S303的操作内容步骤S102的操作步骤相同,仅是待加密对象由已发行的数字货币变成待支付的数字货币,加密用公钥采用了债权节点公钥PK22因此相应的内容可以参见步骤S102的描述,此处不再展开。在一个具体应用中,(在使用公开随机数的情况下,/>),其中M1为待支付的数字货币。
S304:根据债务节点的私钥和支付密文生成支付签名。
本实施例中,支付签名采用σ2表示。与步骤S103类似,步骤S304中的支付签名用于债务节点在向区块链系统中的各个节点发送报文时,向各个节点证明报文是否是真正的债务节点发送。同时,为了保证待支付货币的秘密性,需要对已经加密后的支付密文进行签名。步骤S304具体使用中采用的签名步骤与前述S103类似,具体可以参加步骤S103的描述在本说明书具体应用中,σ2=(K3,s3),其中,K3=gθmodp,SHA(C1,K3)=α21·K3+θ·s3mod(p-1),θ为秘密随机数
S305:将支付密文和支付签名添加至货币支付报文,并广播货币支付报文至区块链系统。
在确定支付密文C1和支付签名σ2后,债务节点将支付密文C1和支付签名σ2添加至货币支付报文的一部分,采用区块链系统的P2P网络广播至区块链的其他节点。实际应用中,为了标识货币支付报文,使得其他各个节点确定货币支付报文来自债务节点,货币支付报文应当包括债务节点的公钥PK21;为了使得相应的债权节点确定待支付货币的接收方,货币支付包括还应当包括债权节点的公钥PK22
如前文类似的表述,区块链系统的各个节点通过对支付签名的验证,以及执行共识算法后,即可以将支付密文和一些标识信息(诸如债务节点公钥、债权节点公钥)存储在区块链的区块中,并实现全网区块链的同步。
对应的前述的数字货币的加密支付方法,本实施例还提供对应的查阅已加密支付的数字货币信息的方法,查阅已经加密支付的数字货币信息的方法应用于区块链系统中的债务节点。
图4是实施例提供的查阅已加密支付的数字货币信息的方法的流程图。如图4所示,前述的查阅方法包括步骤S401-S403。
S401:根据债务节点的私钥和超级节点的公钥,生成会话密钥。
步骤S401的操作内容与步骤S301的操作内容相同,相应的内容请参见步骤S301的表述。
S402:根据会话密钥生成秘密随机数。
步骤S402的操作内容和步骤S302的操作内容相同,相应的内容参见步骤S302的表述。
S403:基于秘密随机数和债权节点的公钥,采用基于离散对数困难问题的查询算法处理支付密文,确定已向债权节点支付的数字货币信息。
在进行步骤S403前,债务节点需要从区块链中的区块中获得对应的支付密文C1。实际应用中,债务节点可以通过自己的公钥PK21和债权节点的公钥PK22作为查询参数,确定区块链中确定包含支付密文C1的区块。随后采用秘密随机数r1和债权节点的公钥PK22,实现对支付密文C1的解析,确定向债权节点支付的数字货币的信息;本实施例一个具体应用中,已经支付的数字货币信息
应当注意的是,步骤S403的查询算法应当与步骤S303采用的加密算法对应,以保证能够实现对支付密文的解析,以获得已经加密支付的数字货币信息。
对应的前述的数字货币的加密支付方法,本实施例还提供数字货币的加密和查询方法。图5是实施例提供的数字货币的加密和查询方法的流程图,如图5所示,包括步骤S501-S503。
S501:根据超级节点私钥和债务节点公钥,生成会话密钥。
步骤S501中,本实施例具体应用中,超级节点生成的会话密钥和债务节点生成的会话密钥相同,在本实施例的一具体应用中,会话密钥可以采用公式计算得到。
如前文所述,因为会话密钥r0中必然需要超级节点和债务节点之一的私钥和另一的公钥,所以除超级节点和债务节点的其他各方,仅能够通过暴力破解方式确定超级节点或者债务节点的私钥,才可能进一步地确定会话密钥r0
S502:根据会话密钥生成秘密随机数。
步骤S502的操作内容和步骤S302的操作内容相同,相应的内容参见步骤S302的表述。步骤S502生成的秘密随机数应当与前文中的S301中生成的秘密随机数相同,因此采用r1表示。
S503:基于秘密随机数和债权节点公钥,采用基于离散对数困难问题的查询算法处理支付密文,确定债务节点已向债权节点支付的数字货币的信息。
类似前述步骤S403,超级节点需要从区块链的区块中获得对应的支付密文C1。实际应用中,超级节点可以通过债务节点的公钥PK21和债权节点的公钥PK22作为查询参数,确定区块链中包含支付密文C1的区块。随后采用秘密随机数r1和债权节点的公钥PK22,实现对支付密文的解析,确定债务节点已经向债权节点支付的数字货币的信息。在本实施例一具体应用中,已经支付的数字货币信息
应当注意的是,步骤S303采用何种加密算法对支付的数字货币信息进行加密得到支付密文,步骤S503应当采用对应的查询方法处理支付密文。分析前述的步骤S301-S305、S401-S403和S501-S503的方法,因为债务节点和超级节点均可以通过自己的私钥、对方的公钥获得会话密钥r0,因此二者均可以通过会话密钥r0计算得到秘密随机数r1,并根据秘密随机数r1处理支付密文得到已经向债权节点支付的数字货币信息,即债务节点可以实现已经向债权节点支付的数字货币的查阅,超级节点可以实现债务节点向债权节点支付的数字货币的查阅。
并且,在前述查阅过程中,债务节点无需如现有技术存储秘密随机数r1,债务节点和超级节点均采用区块链中的支付密文,所以二者均无需采用其他方式存储支付密文;结合区块链的分布式存储的优点,前述方法可以较好地保证密文不被篡改。
本实施例还提供一种数字货币的加密和提交方法,数字货币的加密和提交方法用于区块链的常规节点,用于债务节点将数字货币信息提交给超级节点。
图6是实施例提供的数字货币的加密和提交方法的流程图。如图6所示,包括步骤S601-S604。
S601:根据常规节点的私钥进行单向函数运算,生成秘密随机数。
步骤S601和步骤S101的处理过程类似,只是将步骤S101中的超级节点私钥SK1更换为常规节点的私钥SK2。因此处理过程可以参见步骤S101,此处不再复述。此处,秘密随机数仍采用r1表示。
S602:基于秘密随机数和超级节点的公钥,采用基于离散对数困难问题的加密算法加密向超级节点报送的数字货币信息,得到提交密文。
步骤S602和步骤S102采用类似的处理方法,只是在此步骤中使用的公钥由一个常规节点的公钥更换为超级节点的公钥PK1,需要加密的对象有待发行的数字货币更换为常规节点需要向超级节点报送的数字货币信息。相应的操作过程可以参见步骤S102,此处不再复述。本实施例中,提交密文采用C2表示,在一个应用中,其中M2为向超级节点报送的数字货币信息。
S603:根据常规节点私钥和提交密文生成提交签名。
如现有的区块链系统,常规节点在向区块链系统中的各个节点发送报文时,需要能够证明报文是否是真正的超级节点发送,因此需要相应的签名验证。同时,为了保证数字货币信息的秘密性,需要对已经加密后的提交密文进行签名。步骤S603的操作与步骤S103类似,具体可以参见步骤S103。本实施例中,提交签名采用σ3表示,σ3=(K4,s4),K4=gυmodp,SHA(C2,K4)=αi·K4+υ·s4mod(p-1),υ为一随机数。
S604:将提交密文和提交签名添加至提交报文,并广播提交报文至区块链系统。
在已经确定前述的提交密文C2和提交签名σ3后,超级节点将提交密文和提交签名σ3添加至提交报文的一部分,采用区块链系统的P2P网络等广播区块链系统中的其他节点。实际应用中,为了标识提交报文,使得其他各个节点确定提交报文来自常规节点,提交报文中可以包括常规节点的公钥PK2;为了使得超级节点确定其为提交密文C2的接收方,提交报文C2中可以包括超级节点的公钥PK1
经过前述步骤S601-S604后,常规节点数字货币的加密和提交方法已经完成。随后,经过区块链系统各个节点的对提交报文的验证,以及共识机制,前述的提交报文和相应的标识信息被存储至区块链中。
对应的前述数字货币的加密和提交方法,本说明书实施例还提供一种查阅已加密和提交的数字货币信息的方法,此查阅方法应用于区块链的常规节点。图7是实施例提供的查阅已加密和提交的数字货币信息的方法的流程图。如图7所示,本实施例的步骤包括S701-S702。
S701:根据常规节点私钥进行单向函数运算,生成秘密随机数。
步骤S701与前述的步骤S601相同,因此处理过程可以参见步骤S601,此处不再复述。
S702:根据秘密随机数和超级节点的公钥,采用基于离散对数困难问题的查询算法处理提交密文,得到向超级节点报送的数字货币信息。
在进行步骤S702前,常规节点需要从区块链中的区块中获得对应的提交密文C2。实际应用中,常规节点可以通过自己的公钥PK2和超级节点的公钥PK1作为查询参数,在区块链的区块内容中确定包含提交的区块;随后再采用秘密随机数r1和超级节点的公钥PK1,实现对提交的解析,确定已向超级节点发送的数字货币的信息。应当注意是,步骤S702中采用的查询算法应当与步骤S602中采用的加密算法对应,以保证能够实现对货币发行明文的解析,获得相应的已经发行的货币信息;在本实施例一个应用中,
本实施例提供的数字货币加密和提交方法和查阅已加密和提交的数字货币信息的方法,常规节点根据自己的私钥采用单向函数运算得到秘密随机数r1,并利用秘密随机数r1和超级节点公钥实现对提交密文的处理;因此,常规节点不需要存储需要提交的数字货币的信息明文,也无需如现有技术存储秘密随机数,仅需要存储公开的区块链数据。
前文提及的各个方法中,超级节点和常规节点(包括债务节点和债权节点)在采用公钥和私钥进行对应的运算时,均采用了私钥和公钥的全部。
在本说明书的其他实施例中,在合理构建系统公共参数中的生成元的情况下,超级节点和常规节点在进行前文描述的方法时,也可以仅采用私钥的部分或者公钥的部分进行对应的运算,只要是各个节点采用的私钥和公钥具有离散对数关系即可。例如,在超级节点采用常规节点的部分公钥对发行的数字货币进行加密形成发行货币密文,对应的常规节点能够采用根据自己的部分私钥对发行货币密文进行查询,得到发行货币。
再如:在债务节点采用自己的部分私钥和超级节点的部分公钥生成会话密钥时,超级节点能够采用自己的部分私钥和对应债务节点的部分公钥生成相同的会话密钥;以及,债务节点采用债权节点的部分公钥和秘密随机数加密支付货币,形成支付密文后,债权节点能够根据自己的部分私钥查询支付密文,形成支付货币。
应当注意的时,前文提及的各种签名算法、验证算法、加密算法和查询算法均为本领域已有的技术手段,本领域技术人员可以通过查阅相关的技术文献确定前述内容。
除了提供前述的方法外,本说明书实施例还提供与前述方法对应的装置。因为装置和前述方法基于同样的发明构思,所以下文仅就装置的组成做介绍,其解决的技术问题和可以达到的技术效果可以参照前述方法实施例。
本说明书实施例提供一种区块链技术用于数字货币的加密方法。数字货币的加密装置应用于区块链节点的超级节点,其包括秘密随机数生成单元、发行密文生成单元、货币发行签名生成单元和广播单元。
秘密随机数生成单元用于根据超级节点私钥的至少部分进行单向函数运算,生成秘密随机数;
发行密文生成单元,用于基于秘密随机数和一常规节点公钥的至少部分,采用基于离散对数困难问题的加密算法加密待发行的数字货币,得到货币发行密文;
货币发行签名生成单元,用于根据超级节点私钥的至少部分和货币发行密文生成货币发行签名;
广播单元,用于将货币发行密文和货币发行签名添加至货币发行报文,并广播货币发行报文至区块链系统;
其中:超级节点公钥的至少部分和私钥的至少部分具有离散对数关系,一常规节点的公钥的至少部分和私钥的至少部分具有离散对数关系。
在本实施例的一个应用中,秘密随机数生成单元可以根据超级节点的私钥的至少部分和一随机数,进行单向函数运算,生成秘密随机数。
本说明书实施例提供一种查询已加密数字货币信息的装置,用于区块链系统的超级节点,包括秘密随机数生成单元和查阅单元。
秘密随机数生成单元,用于根据超级节点私钥的至少部分进行单向函数运算,生成秘密随机数;
查阅单元,用于基于秘密随机数和一常规节点公钥的至少部分,采用基于离散对数困难问题的查询算法处理货币发行密文,确定已向一常规节点发行的数字货币的信息;
其中:超级节点公钥的至少部分和私钥的至少部分具有离散对数关系,一常规节点的公钥的至少部分和私钥的至少部分具有离散对数关系;货币发行密文存储在区块链的一区块中。
本说明实施例提供一种数字货币的加密支付方法,用于区块链系统中债务节点,包括会话密钥生成单元,秘密随机数生成单元、支付密文生成单元、支付签名生成单元和广播单元。
会话密钥生成单元,用于根据债务节点私钥的至少部分和超级节点公钥的至少部分,生成会话密钥;
秘密随机数生成单元,用于根据会话密钥生成秘密随机数;
支付密文生成单元,用于基于秘密随机数和债权节点公钥的至少部分,采用基于离散对数困难问题的加密算法加密待支付的数字货币,得到支付密文;
支付签名生成单元,用于根据债务节点私钥的至少部分和支付密文生成支付签名;
广播单元,用于将支付密文和支付签名添加至货币支付报文,并广播货币支付报文至区块链系统;
其中:超级节点公钥的至少部分和私钥的至少部分具有离散对数关系,债务节点的公钥的至少部分和私钥的至少部分具有离散对数关系,债权节点的公钥的至少部分和私钥的至少部分具有离散对数关系。
在一个具体应用中,秘密随机数生成单元根据会话密钥和一公开随机数生成秘密随机数;对应的,广播单元将将支付密文、支付签名和公开随机数添加至货币支付报文。
本说明书提供一种查阅已加密数字货币信息的方法,用于区块链系统中的债务节点,包括会话密钥生成单元、秘密随机数生成单元和查阅单元。
会话密钥生成单元,用于根据债务节点私钥的至少部分和超级节点公钥的至少部分,生成会话密钥;
秘密随机数生成单元,用于根据会话密钥生成秘密随机数;
查阅单元,用于基于秘密随机数和债权节点公钥的至少部分,采用基于离散对数困难问题的查询算法处理支付密文,确定已向债权节点支付的数字货币信息;
其中:超级节点公钥的至少部分和私钥的至少部分具有离散对数关系,债务节点的公钥的至少部分和私钥的至少部分具有离散对数关系,债权节点的公钥的至少部分和私钥的至少部分具有离散对数关系;支付密文存储在区块链的一区块中。
本说明书实施例提供一种数字货币的加密和查询方法,用于区块链系统中的超级节点,包括会话密钥生成单元、秘密随机数生成单元和监管单元。
会话密钥生成单元,用于根据超级节点私钥的至少部分和债务节点公钥的至少部分,生成会话密钥;
秘密随机数生成单元,用于根据会话密钥生成秘密随机数;
监管单元,基于秘密随机数和债权节点公钥的至少部分,采用基于离散对数困难问题的查询算法处理支付密文,确定债务节点已向债权节点支付的数字货币的信息;
其中:超级节点公钥的至少部分和私钥的至少部分具有离散对数关系,债务节点的公钥的至少部分和私钥的至少部分具有离散对数关系,债权节点的公钥的至少部分和私钥的至少部分具有离散对数关系;支付密文存储在区块链的一区块中。
在一个应用中,秘密随机数生成单元根据会话密钥和一公开随机数生成秘密随机数;公开随机数存储在区块中。
本说明书提供一种数字货币的加密和提交方法,用于区块链系统中的常规节点,包括:秘密随机数生成单元,提交密文生成单元、提交签名生成单元和广播单元。
秘密随机数生成单元,根据常规节点私钥的至少部分进行单向函数运算,生成秘密随机数;
提交密文生成单元,基于秘密随机数和超级节点公钥的至少部分,采用基于离散对数困难问题的加密算法加密向超级节点报送的数字货币信息,得到提交密文;
提交签名生成单元,根据常规节点私钥的至少部分和提交密文生成提交签名;
广播单元,将提交密文和提交签名添加至提交报文,并广播提交报文至区块链系统;
其中:超级节点公钥的至少部分和私钥的至少部分具有离散对数关系,一常规节点的公钥的至少部分和私钥的至少部分具有离散对数关系。
在一个具体应用中,秘密随机数生成单元根据常规节点私钥的至少部分和一公开随机数,进行单向函数运算,生成秘密随机数。
本说明书实施例提供一种查阅已加密和提交的数字货币信息的方法,用于区块链系统中的常规节点,包括秘密随机数生成单元和查阅单元。
秘密随机书生成单元用于根据常规节点私钥的至少部分进行单向函数运算,生成秘密随机数;
查阅单元,基于秘密随机数和超级节点公钥的至少部分,采用基于离散对数困难问题的查询算法处理向提交密文,得到向超级节点报送的数字货币信息;
其中:常规节点公钥的至少部分和私钥的至少部分具有离散对数关系,超级节点的公钥的至少部分和私钥的至少部分具有离散对数关系;提交密文存储在区块链的一区块中。
在一个应用中,秘密随机数生成单元根据常规节点私钥的至少部分和一公开随机数进行单向函数运算,生成秘密随机数。除了提供前述的方法和装置外,本说明书实施例还提供一种计算机可读存储介质,存储介质存储有程序代码;程序代码在被处理器加载后可以执行如前的数字货币的加密方法、查询已加密数字货币信息的方法、数字货币的加密支付方法、查阅已加密支付数字货币信息的方法、数字货币的加密和查询方法、数字货币的加密和提交方法或者查阅已加密和提交的数字货币信息的方法。实际应用中,计算机可读存储介质为磁盘、光盘、只读存储记忆体或随机存储记忆体等。
本说明书实施例还提供一种电子设备。电子设备包括存储器和处理器。存储器存储有程序代码;程序代码在被处理器加载后可以执行如前的数字货币的加密方法、查询已加密数字货币信息的方法、数字货币的加密支付方法、查阅已加密支付数字货币信息的方法、数字货币的加密和查询方法、数字货币的加密和提交方法或者查阅已加密和提交的数字货币信息的方法。
此外,为了实现数据明文输入、私钥输入或者密文输入等功能,电子设备还可以包括输入部件;实际应用中,输入部件可以为鼠标、键盘、触摸屏等本领域技术人员已知的输入部件。
为了实现明文输出、公钥输出或者密文输出等功能,电子设备还可以包括输出部件;实际应用中,输出部件可以是诸如显示器、打印机、扬声器等本领域已知的输出部件。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。

Claims (10)

1.一种区块链技术用于数字货币的加密方法,用于区块链系统的超级节点,所述方法包括:
根据所述超级节点私钥的至少部分进行单向函数运算,生成秘密随机数;
基于所述秘密随机数和一常规节点公钥的至少部分,采用基于离散对数困难问题的加密算法加密待发行的数字货币,得到货币发行密文;
根据所述超级节点私钥的至少部分和所述货币发行密文生成货币发行签名;
将所述货币发行密文和所述货币发行签名添加至货币发行报文,并广播所述货币发行报文至所述区块链系统;
超级节点从区块链中获得对应的货币发行密文,基于所述秘密随机数和一常规节点公钥的至少部分,采用基于离散对数困难问题的查询算法处理所述货币发行密文,确定已向所述一常规节点发行的数字货币的信息;
其中:所述超级节点公钥的至少部分和私钥的至少部分具有离散对数关系,所述一常规节点的公钥的至少部分和私钥的至少部分具有离散对数关系;所述货币发行密文存储在区块链的一区块中。
2.根据权利要求1所述的方法,其中,根据所述超级节点私钥的至少部分进行单向函数运算,生成秘密随机数,包括:
根据所述超级节点的私钥的至少部分和一随机数,进行单向函数运算,生成所述秘密随机数。
3.一种数字货币的加密支付方法,用于区块链系统中债务节点,包括:
根据所述债务节点私钥的至少部分和超级节点公钥的至少部分,生成会话密钥;
根据所述会话密钥生成秘密随机数;
基于所述秘密随机数和债权节点公钥的至少部分,采用基于离散对数困难问题的加密算法加密待支付的数字货币,得到支付密文;
根据所述债务节点私钥的至少部分和所述支付密文生成支付签名;
将所述支付密文和所述支付签名添加至货币支付报文,并广播所述货币支付报文至所述区块链系统;
所述债务节点从区块链中获得对应的支付密文,基于所述秘密随机数和所述债权节点公钥的至少部分,采用基于离散对数困难问题的查询算法处理支付密文,确定已向所述债权节点支付的数字货币的信息;
其中:所述超级节点公钥的至少部分和私钥的至少部分具有离散对数关系,所述债务节点的公钥的至少部分和私钥的至少部分具有离散对数关系,所述债权节点的公钥的至少部分和私钥的至少部分具有离散对数关系;所述支付密文存储在区块链的一区块中。
4.根据权利要求3所述的方法,其中,
根据所述会话密钥生成秘密随机数,包括:根据所述会话密钥和一公开随机数生成所述秘密随机数;
将所述支付密文和所述支付签名添加至货币支付报文,包括:将所述支付密文、所述支付签名和所述公开随机数添加至所述货币支付报文。
5.一种数字货币的加密和查询方法,用于区块链系统中的超级节点,包括:
根据所述超级节点私钥的至少部分和债务节点公钥的至少部分,生成会话密钥;
根据所述会话密钥生成秘密随机数;
所述超级节点从区块链中获得对应的支付密文,基于所述秘密随机数和债权节点公钥的至少部分,采用基于离散对数困难问题的查询算法处理所述支付密文,确定所述债务节点已向所述债权节点支付的数字货币的信息;
其中:所述超级节点公钥的至少部分和私钥的至少部分具有离散对数关系,所述债务节点的公钥的至少部分和私钥的至少部分具有离散对数关系,所述债权节点的公钥的至少部分和私钥的至少部分具有离散对数关系;所述支付密文存储在区块链的一区块中。
6.根据权利要求5所述的方法,其中,根据所述会话密钥生成秘密随机数,包括:
根据所述会话密钥和一公开随机数生成所述秘密随机数;所述公开随机数存储在所述区块中。
7.一种数字货币的加密和提交方法,用于区块链系统中的常规节点,包括:
根据所述常规节点私钥的至少部分进行单向函数运算,生成秘密随机数;
基于所述秘密随机数和超级节点公钥的至少部分,采用基于离散对数困难问题的加密算法加密向所述超级节点报送的数字货币信息,得到提交密文;
根据所述常规节点私钥的至少部分和所述提交密文生成提交签名;
将所述提交密文和所述提交签名添加至提交报文,并广播所述提交报文至所述区块链系统;
所述常规节点从区块链中获得对应的提交密文,基于所述秘密随机数和超级节点公钥的至少部分,采用基于离散对数困难问题的查询算法处理向提交密文,得到向所述超级节点报送的数字货币信息;
其中:所述超级节点公钥的至少部分和私钥的至少部分具有离散对数关系,所述一常规节点的公钥的至少部分和私钥的至少部分具有离散对数关系;所述提交密文存储在区块链的一区块中。
8.根据权利要求7所述的方法,其中,根据所述常规节点私钥的至少部分进行单向函数运算,生成秘密随机数,包括:
根据所述常规节点私钥的至少部分和一公开随机数,进行单向函数运算,生成所述秘密随机数。
9.一种计算机可读存储介质,存储有程序代码,所述程序代码在被处理器加载后可执行如权利要求1-8任一项所述的方法。
10.一种电子设备,包括存储器和处理器;所述存储器存储有程序代码;
所述程序代码被所述处理器加载后,可执行如权利要求1-8任一项所述的方法。
CN202010214598.XA 2020-03-24 2020-03-24 区块链技术用于数字货币的加密、支付、查询和提交方法 Active CN111429119B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010214598.XA CN111429119B (zh) 2020-03-24 2020-03-24 区块链技术用于数字货币的加密、支付、查询和提交方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010214598.XA CN111429119B (zh) 2020-03-24 2020-03-24 区块链技术用于数字货币的加密、支付、查询和提交方法

Publications (2)

Publication Number Publication Date
CN111429119A CN111429119A (zh) 2020-07-17
CN111429119B true CN111429119B (zh) 2024-01-09

Family

ID=71549326

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010214598.XA Active CN111429119B (zh) 2020-03-24 2020-03-24 区块链技术用于数字货币的加密、支付、查询和提交方法

Country Status (1)

Country Link
CN (1) CN111429119B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101079701A (zh) * 2006-05-22 2007-11-28 北京华大信安科技有限公司 高安全性的椭圆曲线加解密方法和装置
CN108781161A (zh) * 2016-02-23 2018-11-09 区块链控股有限公司 用于控制和分发数字内容的区块链实现的方法
CN110163582A (zh) * 2018-01-23 2019-08-23 郭建峰 一种基于rsa加密的数字货币支付系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101079701A (zh) * 2006-05-22 2007-11-28 北京华大信安科技有限公司 高安全性的椭圆曲线加解密方法和装置
CN108781161A (zh) * 2016-02-23 2018-11-09 区块链控股有限公司 用于控制和分发数字内容的区块链实现的方法
CN110163582A (zh) * 2018-01-23 2019-08-23 郭建峰 一种基于rsa加密的数字货币支付系统

Also Published As

Publication number Publication date
CN111429119A (zh) 2020-07-17

Similar Documents

Publication Publication Date Title
US11349645B2 (en) Determining a common secret for the secure exchange of information and hierarchical, deterministic cryptographic keys
CN113014392B (zh) 基于区块链的数字证书管理方法及系统、设备、存储介质
RU2376651C2 (ru) Использование изогений для разработки криптосистем
CN110545279A (zh) 兼具隐私和监管功能的区块链交易方法、装置及系统
CN113162752B (zh) 基于混合同态加密的数据处理方法和装置
JP2011091868A (ja) 公開鍵を検証可能に生成する方法及び装置
KR101825320B1 (ko) 인증서 관리 방법
CN111162912B (zh) 一种适用于区块链的验证方法、装置及存储介质
CN115203749B (zh) 一种基于区块链的数据交易方法和系统
WO2021134897A1 (zh) 区块链供应链交易隐藏动态监管系统及方法
CN116830523A (zh) 阈值密钥交换
TW202318833A (zh) 臨界簽章方案
CN110992031A (zh) 数据处理方法及装置
CN111314059B (zh) 账户权限代理的处理方法、装置、设备及可读存储介质
CN114514550A (zh) 将请求分区成区块链的交易
CN110995443A (zh) 数据处理方法及装置
CN111429119B (zh) 区块链技术用于数字货币的加密、支付、查询和提交方法
JP2008506293A (ja) デジタル認証機能を提供する方法
CN112950356B (zh) 基于数字身份的个人贷款处理方法及系统、设备、介质
CN115051849A (zh) 一种数字化司法存证方法、存证装置及可读存储介质
CN117917041A (zh) 生成共享加密密钥
WO2023055371A1 (en) Replicated secret share generation for distributed symmetric cryptography
Barker et al. SP 800-56A. recommendation for pair-wise key establishment schemes using discrete logarithm cryptography (revised)
JP2009071412A (ja) 署名生成装置、署名検証装置、グループ管理装置、およびそれらのプログラム
CN117837127A (zh) 生成数字签名

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant