CN113393225B - 数字货币加密支付方法及系统 - Google Patents

数字货币加密支付方法及系统 Download PDF

Info

Publication number
CN113393225B
CN113393225B CN202110737703.2A CN202110737703A CN113393225B CN 113393225 B CN113393225 B CN 113393225B CN 202110737703 A CN202110737703 A CN 202110737703A CN 113393225 B CN113393225 B CN 113393225B
Authority
CN
China
Prior art keywords
transaction
client
public key
payment
digital currency
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
CN202110737703.2A
Other languages
English (en)
Other versions
CN113393225A (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.)
Hangzhou Lianwang Technology Co ltd
Original Assignee
Hangzhou Lianwang Technology Co ltd
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 Hangzhou Lianwang Technology Co ltd filed Critical Hangzhou Lianwang Technology Co ltd
Priority to CN202110737703.2A priority Critical patent/CN113393225B/zh
Publication of CN113393225A publication Critical patent/CN113393225A/zh
Application granted granted Critical
Publication of CN113393225B publication Critical patent/CN113393225B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/08Payment architectures
    • G06Q20/10Payment architectures specially adapted for electronic funds transfer [EFT] systems; specially adapted for home banking systems
    • 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/3821Electronic credentials
    • G06Q20/38215Use of certificates or encrypted proofs of transaction rights
    • 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/40Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
    • G06Q20/409Device specific authentication in transaction processing
    • G06Q20/4097Device specific authentication in transaction processing using mutual authentication between devices and transaction partners
    • G06Q20/40975Device specific authentication in transaction processing using mutual authentication between devices and transaction partners using encryption therefor

Abstract

本发明公开一种数字货币加密支付方法,包括以下步骤:关联用户客户端部署可信节点和验证节点,创建分布式数字货币账本,搭建SGX可信执行环境并形成区块链网络,响应第一客户端交易支付请求,可信节点创建交易请求事务,生成公开密钥,并对交易请求事务进行环签名;第二客户端关联验证节点验证环签名,获取交易请求事务,执行支付交易并将相应的支付交易事务传入公开密钥地址;可信节点解析支付交易事务并获取相应数字货币;利用该方法实现数字货币完全匿名的加密支付,真正解决数字货币流通过程中隐私保护和双花问题。

Description

数字货币加密支付方法及系统
技术领域
本发明属于区块链技术领域,具体涉及一种数字货币加密支付方法及系统。
背景技术
数字货币可以认为是一种基于节点网络和数字加密算法的虚拟货币。数字货币的核心特征主要体现了三个方面:①由于来自于某些开放的算法,数字货币没有发行主体,因此没有任何人或机构能够控制它的发行;②由于算法解的数量确定,所以数字货币的总量固定,这从根本上消除了虚拟货币滥发导致通货膨胀的可能;③由于交易过程需要网络中的各个节点的认可,因此数字货币的交易过程足够安全。
现阶段数字货币更像一种投资产品,因为缺乏强有力的担保机构维护其价格的稳定及安全性,其作为价值尺度的作用还未显现,无法真正充当支付手段。数字货币作为投资产品,其发展离不开交易平台、运营公司和投资者。目前交易平台起到交易代理的作用,部分则充当做市商,这些交易平台的盈利来源于投资者交易或提现时的手续费用和持有数字货币带来的溢价收入。
Ripple 协议最初是基于支付手段设计的,设计思路是基于熟人关系网和信任链。要使用 Ripple 网络进行汇款或借贷,前提是在网络中收款人与付款人必须是朋友( 互相建立了信任关系) ,或者有共同的朋友( 经过朋友的传递形成信任链) ,否则无法在该用户与其他用户之间建立信任链,转账无法进行。
随着数字货币越来越被熟知和使用,亟需一种可信安全的支付方法,在支付过程中既能实现高效便捷的交易支付,又可以保护用户隐私,防止双花。
发明内容
本发明基于上述背景和现有技术所存在的问题,拟设计一种数字货币加密支付方法,该方法利用物理保护结合密码学加密手段实现链上数字货币完全匿名交易。
一种数字货币加密支付方法,具体包括如下步骤:
关联用户客户端部署可信节点和验证节点,创建分布式数字货币账本,搭建SGX可信执行环境运行可信节点和验证节点,形成区块链网络;
其中,所述用户客户端包括第一客户端和第二客户端,所述第一客户端和第二客户端分别持有唯一密钥对和唯一密钥派生的公共密钥对;
根据用户数字货币业务需求,可选择性的创建公有链、联盟链或私有链,但该区块链具备分布式及去中心化的基本属性,在区块链上执行数字货币交易过程具有完全去中心化并且可追溯的特性。
可信节点和验证节点不同于链上共识节点和验证节点,它们是与客户端关联的进行自动处理客户端需求的节点服务器,可通过提前在可信节点和验证节点上部署相关操作的智能合约来实现对客户端的响应及执行。
用户客户端每个用户唯一私钥是两个不同的椭圆曲线密钥对,公共密钥是由唯一的私钥对派生出来的两个椭圆曲线公钥对。
响应第一客户端交易支付请求,可信节点在第一客户端生成随机数并基于第二客户端公共密钥对生成公开密钥,进一步将所述随机数衍生Diffie-Hellman参数计算第一客户端和第二客户端的共享密钥,由公开密钥和交易金额创建交易请求事务;
可信节点在第一客户端基于共享密钥对交易请求事务进行环签名;
第二客户端关联验证节点验证环签名,并利用共享密钥解密环签名,获取交易请求事务,执行支付交易并将相应的支付交易事务传入公开密钥地址;
第一客户端关联可信节点解析支付交易事务并获取相应数字货币。
第一客户端是数字货币交易请求发送方的集合,也就是数字货币交易请求用户可在第一客户端将交易请求数据输入上链,并在第一客户端生成其所属链上的公私钥对,其中交易请求包括且不限于包含数字货币属性、请求方账户、接收方账户、对应接收方的公钥及请求支付金额的信息。
同样,第二客户端是数字货币接收支付交易方的集合,也就是执行支付交易的接收方在第二客户端将其支付交易所需的数据信息输入上链,并生成其所属链上的公私钥对。
首先可信节点在链上生成公开密钥,同一接收人的传入交易被发送到公开密钥(而不是直接到唯一地址),只有接收人可以恢复来兑换请求支付的资金(使用其私钥)。收件人可以使用私钥签名来支付资金,将其所有权和实际支出保持匿名。
其次利用环签名对交易请求事务产生多个签名公钥,隐藏交易请求方公钥,而交易接收方可以利用真实公钥解密环签名。
进一步地,关联用户客户端部署可信节点和验证节点,创建分布式数字货币账本,搭建SGX可信执行环境运行可信节点和验证节点,形成区块链网络;其中,所述用户客户端包括第一客户端和第二客户端,所述第一客户端和第二客户端分别持有唯一密钥和唯一密钥派生的公共密钥,包括如下:
关联第一用户客户端部署可信节点,关联第二用户客户端部署验证节点,利用Kubernetes集群管理器管理所述可信节点和验证节点;其中所述第一客户端关联交易请求发送方,所述第二客户端关联接收交易请求进行交易支付方;
客户端和节点之间通过RPC远程调用连接,RPC主要依赖于客户端和节点服务端之间建立Socket链接进行关联通信。
在Kubernetes集群管理器管中可信节点和验证节点作为独立的Pod进行运行,用户客户端通过docker容器服务docker-registry类型中的secret与Kubernetes管理的节点关联。
基于用户客户端设置数字货币交易模型,创建由交易模型和Merkle 证明的元数据块组成的分布式数字货币账本。
Merkle 证明的元数据是基于交易事务进行哈希计算获得的Merkle树状结构,存储于区块体和区块头中,确保区块的一致性。
同时在可信节点和验证节点服务器中设置enclave容器,在所述容器中分配EPC物理内存,用于锁住在enclave容器中存储的数据结构,形成SGX 可信执行环境;
搭建SGX 可信执行环境还包括处理器、内存管理部件、BIOS、驱动程序组件协同完成;并通过将应用程序输入BIOS系统,并利用处理器将外部虚拟地址转换为物理地址进行访问SGX 可信执行环境。
其中所述第一客户端关联交易支付发送方,所述第二客户端关联接收交易请求进行交易支付方,发送方和接收方在初始注册上链时依次获取唯一的密钥对,并由密钥派生两个椭圆曲线公钥作为对应客户端的公共密钥对,所述公共密钥对包含在所属账户地址中在链上广播存储,私钥对各自保存;
所述数字货币交易模型是定义数字货币的交易输入和输出,链式记录交易支付过程。
进一步地,响应第一客户端交易支付请求,可信节点在第一客户端生成随机数并基于第二客户端公共密钥生成公开密钥,进一步将所述随机数衍生Diffie-Hellman参数计算第一客户端和第二客户端的共享密钥,由公开密钥和交易金额创建交易请求事务,具体如下:
响应第一客户端交易支付请求,可信节点在第一客户端生成随机数,并利用第二客户端公共密钥对与随机数通过CryptoNote算法计算获取公开密钥;
将随机数和随机数本原单位根作为Diffie-Hellman算法计算的公开参数,在第一客户端利用第一客户端私钥进行Diffie-Hellman计算共享密钥;在第二客户端利用第二客户端私钥进行Diffie-Hellman计算共享密钥;
将交易金额和公开密钥作为交易输出形成交易请求事务。
可信节点在第一客户端利用随机函数生成随机数,并选取接收方在第二客户端的公共密钥对和所述随机数以及随机数本原单位根进行Diffie-Hellman交换,获取共享密钥用于第二客户端解析交易事务,利用随机数与第二客户端的公共密钥对进行CryptoNote计算生成公开密钥,防止公开密钥被恶意追溯破解。
特别地,所述公开密钥为一次性使用密钥,当可信节点再次响应第一客户端交易支付请求时,重新生成公开密钥,针对不同的接收方,可生成不同的公开密钥,进而增加公开密钥的安全性。
进一步地,所述基于共享密钥对交易请求事务进行环签名,具体如下:
可信节点对交易请求事务做哈希运算,将获取的哈希值作为对称加密算法的对称密钥;
选取(n-1)个随机数依次经椭圆曲线加密算法计算生成对应的公钥数组;
定义环签名函数,所述函数以公钥数组和共享密钥作为变量,对称密钥作为参数,并选择一随机值,令环签名函数等于所述随机值,输入第一客户端私钥,计算输出等式成立的变量值;
所述计算的输入和输出形成请求交易事务的环签名,将所述环签名发送至验证节点;其中所述环签名包括公钥数组、共享密钥、随机值、随机数及第一客户端私钥。
环签名(ring signature)是一种数字签名方案,具有以下特性:
1)无条件匿名性。攻击者即使非法获取了所有可能签名者的私钥,他能确定出真正的签名者的概率不超过1/n,这里n 为环成员(可能签名者)的个数。
2)不可伪造性。外部攻击者在不知道任何成员私钥的情况下,即使能够从一个产生环签名的随机预言者那里得到任何消息m 的签名,他成功伪造一个合法签名的概率也是可以忽略的。
3)环签名具有良好的特性。可以实现签名者的无条件匿名;签名者可以自由指定自己的匿名范围;构成优美的环形逻辑结构;可以实现群签名的主要功能但无需可信第三方或群管理员等。
在这里采用环签名是可信节点在第一客户端对交易请求事务产生签名,可以通过一组公钥而不是唯一的公钥进行检查,而验证节点作为验证环签名的签名人在隐藏第一客户端公钥的情况下安全获取交易请求事务。
进一步地,所述第二客户端关联验证节点验证环签名,并利用共享密钥解密,获取交易请求事务,执行支付交易并将相应的支付交易事务加密传入公开密钥地址,具体如下:
验证节点公钥数组,对称密钥作为参数计算所述环签名函数输出值,并验证其结果是否等于所述随机值,若等于则验证通过;
同时在第二客户端利用Diffie-Hellman参数进行Diffie-Hellman计算获取共享密钥;
利用共享密钥解除环签名,获取请求交易事务,支付交易请求事务中的交易金额,并在交易模型中形成相应的支付交易事务;
利用共享密钥对支付交易事务签名加密并发送至公开密钥地址。
也就是利用相同的Diffie-Hellman参数和第二客户端公共密钥对生成共享密钥,由公开密钥经过单向的加密哈希算法生成公开密钥地址。
进一步地,所述第一客户端关联可信节点解析支付交易事务并获取相应数字货币,具体如下:
第一客户端关联可信节点利用公开密钥获取公开密钥地址,解析支付交易事务,并利用共享密钥解密支付交易事务获取其支付的数字货币并存入发送方账户中。
在这里第一客户端解密支付交易事务后可信节点发出转账交易,将公开密钥账户地址中的数字货币转入发送方账户中。
进一步地,还包括可信节点将交请求易事务进行哈希运算生成请求交易事务的Merkle 树证明元数据,存储在SGX可行执行环境;验证节点将支付交易事务进行哈希运算生成支付交易事务的Merkle 树证明元数据,存储在SGX可行执行环境中。
在链上执行交易的过程中所产生的交易数据实时存储在enclave容器中,在容器中分配EPC物理内存,用于锁住在enclave容器中存储的Merkle 树证明元数据,使外部访问无法进入。
一种数字货币加密支付系统,包括响应计算模块、环签名模块、解密获取模块及解析获取模块;
所述响应计算模块,用于响应第一客户端交易支付请求,可信节点生成随机数与公开密钥,将基于随机数衍生Diffie-Hellman参数计算第一客户端和第二客户端的共享密钥,并由公开密钥和交易金额创建交易请求事务,其中,所述公共密钥结合随机数生成公开密钥;
所述环签名模块中,可信节点基于共享密钥对交易请求事务进行环签名;
所述解密获取模块中,验证节点验证环签名并利用共享密钥对环签名进行解密,获取交易请求事务,执行支付交易并将相应的支付交易事务传入公开密钥地址,其中,验证节点和可信节点相互关联;
所述解析获取模块中,可信节点解析支付交易事务,获取相应数字货币。
进一步地,还包括关联创建模块,被设置为:
关联第一客户端部署可信节点,关联第二客户端部署验证节点,利用Kubernetes集群管理器管理所述可信节点和验证节点;
设置数字货币交易模型,创建由交易模型和Merkle 证明的元数据块组成的分布式数字货币账本,其中,可信节点和验证节点部署在SGX可信执行环境中。
在本发明设计数字货币交易支付的区块链网络,在SGX可信执行环境中执行交易过程,为数字货币交易提供机密性和完整性的执行环境;并生成公开密钥作为链上交易事务的流转媒介,杜绝直接使用用户账户,保护支付账户及支付金额信息,并使用环签名隐藏请求用户信息,实现链上数字货币完全匿名交易。
附图说明
图1为本发明数字货币加密支付整体流程图;
图2为加密支付区块链网络结构图;
图3为本发明SGX整体架构图;
图4为SGX的内存访问控制图;
图5为公开密钥生成流程图;
图6为本发明交易请求和支付流程图。
具体实施方式
为了清晰地阐述本发明,使本发明实施例的目的、技术方案和优点更加清楚,下面结合了本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,以令本领域技术人员参照说明书文字能够据以实施,其具体实现的交互过程可用常见的资产交易过程为例来描述,以方便本领域技术人员的理解。
实施例1:
一种数字货币加密支付方法,如图1所示为其整体流程图,具体包括如下步骤:
Step1:构建数字货币加密支付的区块链网络:
设置用户客户端,包括第一客户端和第二客户端,关联第一客户端部署可信节点,关联第二客户端部署验证节点,并依次为客户端创建关联的分布式账本;同时在节点服务器中搭建SGX可信执行环境运行可信节点和验证节点;
Step2:可信节点生成公开密钥并对交易请求事务进行环签名:
响应第一客户端交易支付请求,可信节点创建交易请求事务,利用第二客户端公钥和第一客户端生成的任意随机数计算生成公开密钥,并基于第一客户端公钥对交易请求事务进行环签名;
Step3:验证节点验证环签名获取交易事务并执行,将传入支付交易事务传入公开密钥地址;
Step4:第一客户端关联可信节点解析支付交易事务并获取相应数字货币。
加密支付流程具体细化如下:
在本实施例中,如图2所示为加密支付区块链结构图,在架构上,以Substate架构为基础构建区块链基础设施,采用WebAssembly虚拟机,提供HTTP和IPFS及websocket RPC服务,基于Prometheus实现对区块链区块高度,实现一键部署加密支付的区块链底层系统;
在该区块链体系中,应用层设置第一客户端和第二客户端,并依次关联部署可信节点和验证节点作为链上运行执行节点。并且利用Kubernetes集群管理区块链底层节点的运行,可信节点和验证节点以及区块链中性能节点(共识节点和记账节点)都作为一个独立的pod运行在Kubernetes集群中。
在该区块链结构中,基于用户客户端设置可供追溯的数字货币交易模型,包括交易输入和输出,在本实施例中可采用常用的UTXO交易模型,在区块链通信网络里,为每个用户客户端创建由交易模型和Merkle 证明的元数据块组成的分布式数字货币账本。其中第一客户端关联交易请求发送方,所述第二客户端关联接收交易请求进行交易支付方。
另外,在可信节点和验证节点服务器中设置enclave容器,在容器中分配EPC物理内存,用于锁住在enclave容器中存储的数据结构,为可信节点和验证节点形成SGX 可信执行环境;
SGX 可信执行环境在应用程序的地址空间中划分出一块被保护的区域, 为容器内的代码和数据提供机密性和完整性的保护, 免受拥有特殊权限的恶意软件的破坏。SGX整体架构如图3所示,SGX 可信执行环境的搭建需要处理器、内存管理部件、BIOS、驱动程序、运行时环境等软硬件协同完成。
在可信执行环境内分配一块被保护的物理内存区域EPC, 用来存放enclave和SGX数据结构,必须保证内存保护机制在物理上锁住EPC内存区域, 将外部的访问请求视为引用了不存在的内存, 使得外部的实体(直接存储器访问、图像引擎等)无法访问。对于使用MOV等指令访问enclave内部的页面的情况, 硬件将执行下列的检查:
(1) 处理器当前运行在enclave mode中;
(2) 访问地址在enclave地址空间;
(3) 物理地址在EPC内存中;
(4) EPCM(enclave page cache map)检查, 请求访问的页属于正在运行的enclave(只有enclave内的代码才能访问该enclave的内容)。
在SGX调用前, 必须处于保护模式, 且需要支持分页,SGX所提供的内存保护机制, 在保护模式所提供的段保护、页保护机制基础上进行进一步的内存保护, 访问地址由虚拟地址转换为物理地址进行访问,如图 4所示。enclave外部的应用程序不能访问enclave内存; enclave内部的代码在EPC范围内只能访问属于自己的内存区域, 不能访问别的enclave内存; 对于PRM以外的内存, 则按照系统中其他的保护机制进行访问。这样的内存保护机制, 防止了enclave内部运行的程序被其他恶意软件盗取隐私信息和篡改。
实施例2:
响应第一客户端交易支付请求,可信节点获取第二客户端公共密钥对并生成随机数,利用Diffie-Hellman计算共享密钥,进一步利用CryptoNote算法生成公开密钥,由共享密钥,公开密钥和交易金额创建交易请求事务;
其中公开密钥和交易金额作为交易输出,发送方关联第一客户端,接收方关联第二客户端,发送方和接收方在初始注册上链时依次获取其唯一的密钥对,并由密钥对派生出来的两个椭圆曲线公钥对作为对应客户端的公共密钥对。唯一密钥对自己保存,公共密钥对包含在所属账户地址中在链上广播存储。
在本实施例中假定发送方为Alice,接收方为Bob,其中,Alice的私钥是两个不同的椭圆曲线密钥对(m, n),公共密钥是由(a, b)派生出来的两个椭圆曲线公钥对(M,N);Bob私钥是两个不同的椭圆曲线密钥对(a, b),公共密钥是由(a, b)派生出来的两个椭圆曲线公钥对(A, B)。
如图5所示,其公开密钥生成如下:
Alice想向已经发布他的账户地址的Bob发送付款。Alice关联其可信节点打开链上Bob账户地址并获取Bob的公钥(A,B)。
Alice生成随机数r,并计算一次性公钥P = Hash(rA)G + B,G为随机数r的一个模r本原单位根(primitive root module p),所谓本原单位根就是指在模r乘法运算下,g的1次方,2次方……(r-1)次方这r-1个数互不相同,并且取遍1到r-1。
Alice使用P作为输出的公开密钥,并将值R =r|G作为Diffie-Hellman计算参数(作为Diffie-Hellman交换的一部分)包装到交易请求事务中。此时,针对不同的接收人的(Ai,Bi)产生不同的Pi,即使使用相同的r。公开密钥为一次性使用密钥,当可信节点再次响应第一客户端交易支付请求时,重新生成公开密钥。
其中,Diffie-Hellman算法计算共享密钥的过程如下:
对于Alice,利用其私钥m,m对外保密,计算Ka = G^m mod r,将Ka发送给Bob;
对于Bob,利用其私钥b,b对外保密,计算Kb = G^b mod r,将Kb发送给Alice;
在Alice方面,收到Bob送来的Kb后,计算出密钥为:key = Kb^m mod r = G^(b*m) mod r mod r;
对于Bob,收到Alice送来的Ka后,计算出密钥为:key = Ka ^ b mod r = G^(m*b)mod r mod r。
此时key为Alice和Bob的共享密钥。
如图6为交易请求支付流程图,可信节点基于Alice共享密钥生成的交易请求事务进行环签名,其中在下文中令P3为Alice和Bob的共享密钥:
首先定义以下函数,其中,
Figure 189251DEST_PATH_IMAGE001
为对称加密算法,k为其对应的对称密钥;
Figure 269203DEST_PATH_IMAGE002
其中,“⊕”为异或的数学符号,计算机符号为“xor”。其运算法则为:a⊕b = (¬a∧ b) ∨ (a ∧¬b)
如果a、b两个值不相同,则异或结果为1。如果a、b两个值相同,异或结果为0。
异或也叫半加运算,其运算法则相当于不带进位的二进制加法:二进制下用1表示真,0表示假,则异或的运算法则为:0⊕0=0,1⊕0=1,0⊕1=1,1⊕1=0(同为0,异为1),这些法则与加法是相同的,只是不带进位,所以异或常被认作不进位加法。
对于交易请求事务Tx,生成环签名:
令k=hash(Tx),k将作为
Figure 419561DEST_PATH_IMAGE001
的对称密钥;
选取随机数v,随机选取(n-1)个随机数
Figure 952174DEST_PATH_IMAGE003
,通过对称加密算法
Figure 478970DEST_PATH_IMAGE004
,得出相应的
Figure 210166DEST_PATH_IMAGE005
Figure 265846DEST_PATH_IMAGE006
,计算令等式成立的
Figure 285755DEST_PATH_IMAGE007
其中,y3是通过密钥P3加密得到,针对第一客户端持有P3对应的私钥,通过私钥解密
Figure 85084DEST_PATH_IMAGE008
,得到
Figure 670786DEST_PATH_IMAGE009
最后得出对Tx的环签名
Figure 164214DEST_PATH_IMAGE010
交易接收方Bob关联验证节点验证环签名获取交易请求事务:
通过公钥组合
Figure 202577DEST_PATH_IMAGE011
由对称加密算法
Figure 805596DEST_PATH_IMAGE004
相应地对
Figure 980226DEST_PATH_IMAGE012
进行加密得到
Figure 580971DEST_PATH_IMAGE013
通过块元数据获取对称密钥k=hash(Tx),验证等式
Figure 372210DEST_PATH_IMAGE006
是否成立;
若成立,则该环签名的交易请求事务为Alice发送,Bob利用其计算的共享密钥解密环签名,获取交易请求事务。
Bob用他的私钥(a,b)检查每个过程的交易,并计算P r = Hash(aR)G + B。如果Alice与Bob作为发送人和接收人的交易在其中,则aR = arG = rA和P r = P。
Bob可以恢复相应的一次性私钥:x = Hash(aR)+ b,因此P = xG。他可以随时通过与x签署交易来支出此输出。
Bob支付相应金额的数字货币,并在交易模型中形成相应的支付交易事务tx,并利用共享密钥key对tx进行加密,加密后发送至公开密钥P r关联的公开账户地址中;
Alice关联可信节点利用公开密钥P实时获取关联的账户地址,并利用共享密钥key解密支付交易事务tx,获取Bob支付的数字货币。
在验证支付的同时,可信节点将交请求易事务进行哈希运算生成请求交易事务的Merkle 树证明元数据,存储在SGX可行执行环境;验证节点将支付交易事务进行哈希运算生成支付交易事务的Merkle 树证明元数据,存储在SGX可行执行环境中,防止数据泄露。
实施例3:
一种数字货币加密支付系统,包括响应计算模块、环签名模块、解密获取模块及解析获取模块;
其中,响应计算模块,置于系统业务端,用于响应第一客户端交易支付请求,可信节点生成随机数与公开密钥,将基于随机数衍生Diffie-Hellman参数计算第一客户端和第二客户端的共享密钥,并由公开密钥和交易金额创建交易请求事务,其中,所述公共密钥结合随机数生成公开密钥;
继响应计算模块计算后,将生成的共享密钥输入环签名模块,在环签名模块中,可信节点基于共享密钥对交易请求事务进行环签名;
与环签名模块相对应,关联交易支付方,在解密获取模块中,验证节点验证环签名并利用共享密钥对环签名进行解密,获取交易请求事务,执行支付交易并将相应的支付交易事务传入公开密钥地址,其中,验证节点和可信节点相互关联;
在解析获取模块中,可信节点解析支付交易事务,获取相应数字货币。
本系统还包括关联创建模块,被设置为:
关联第一客户端部署可信节点,关联第二客户端部署验证节点,利用Kubernetes集群管理器管理所述可信节点和验证节点;其中第一客户端为交易请求方,第二客户端为交易支付方,关联创建模块创建客户端与节点之间的RPC远程调用连接通信,建立Socket链接进行关联通信。
设置数字货币交易模型,创建由交易模型和Merkle 证明的元数据块组成的分布式数字货币账本,其中,可信节点和验证节点部署在SGX可信执行环境中。
上述对实施例的描述是为便于本技术领域的普通技术人员能理解和应用本发明。熟悉本领域技术的人员显然可以容易地对上述实施例做出各种修改,并把在此说明的一般原理应用到其他实施例中而不必经过创造性的劳动。因此,本发明不限于上述实施例,本领域技术人员根据本发明的揭示,对于本发明做出的改进和修改都应该在本发明的保护范围之内。

Claims (10)

1.一种数字货币加密支付方法,其特征在于,包括以下步骤:
关联用户客户端部署可信节点和验证节点,创建分布式数字货币账本,搭建SGX可信执行环境运行可信节点和验证节点,形成区块链网络;
其中,所述用户客户端包括第一客户端和第二客户端,所述第一客户端和第二客户端分别持有唯一密钥对和唯一密钥派生的公共密钥对;
响应第一客户端交易支付请求,可信节点在第一客户端生成随机数并基于第二客户端公共密钥对生成公开密钥,进一步将所述随机数衍生Diffie-Hellman参数计算第一客户端和第二客户端的共享密钥,由公开密钥和交易金额创建交易请求事务;
可信节点在第一客户端基于共享密钥对交易请求事务进行环签名;
第二客户端关联验证节点验证环签名,并利用共享密钥解密环签名,获取交易请求事务,执行支付交易并将相应的支付交易事务传入公开密钥地址;
第一客户端关联可信节点解析支付交易事务并获取相应数字货币。
2.根据权利要求1所述的数字货币加密支付方法,其特征在于,还包括以下步骤:
关联第一客户端部署可信节点,关联第二客户端部署验证节点,利用Kubernetes集群管理器管理所述可信节点和验证节点;
设置数字货币交易模型,创建由交易模型和Merkle 证明的元数据块组成的分布式数字货币账本,其中,可信节点和验证节点部署在SGX可信执行环境中。
3.根据权利要求1所述的数字货币加密支付方法,其特征在于,响应第一客户端交易支付请求,可信节点生成随机数与公开密钥,将所述随机数衍生Diffie-Hellman参数计算第一客户端和第二客户端的共享密钥,由公开密钥和交易金额创建交易请求事务,具体如下:
响应第一客户端交易支付请求,可信节点基于链上随机函数生成随机数,并利用第二客户端公共密钥对与随机数通过CryptoNote算法计算获取公开密钥;
将随机数和随机数本原单位根作为Diffie-Hellman算法计算的公开参数,在第一客户端利用第一客户端唯一密钥对进行Diffie-Hellman计算共享密钥;在第二客户端利用第二客户端唯一密钥对进行Diffie-Hellman计算共享密钥,其中,所述第一客户端和第二客户端分别持有唯一密钥对和唯一密钥对派生的公共密钥对,所述唯一密钥对作为客户端私钥通过椭圆曲线算法派生公共密钥对;
将交易金额和公开密钥作为交易输出形成交易请求事务。
4.根据权利要求3所述的数字货币加密支付方法,其特征在于,所述公开密钥为一次性使用密钥,当可信节点再次响应第一客户端交易支付请求时则重新生成公开密钥,且不同第二客户端生成的公开密钥不同。
5.根据权利要求1所述的数字货币加密支付方法,其特征在于,所述基于共享密钥对交易请求事务进行环签名,具体如下:
可信节点对交易请求事务做哈希运算,将获取的哈希值作为对称加密算法的对称密钥;
选取n-1个随机数依次经椭圆曲线加密算法计算生成对应的公钥数组;
定义环签名函数,所述函数以公钥数组和共享密钥作为变量,对称密钥作为参数,并选择一随机值,令环签名函数等于所述随机值,输入第一客户端私钥,计算输出等式成立的变量值;
所述计算的输入和输出形成请求交易事务的环签名,将所述环签名发送至验证节点;其中所述环签名包括公钥数组、共享密钥、随机值、随机数及第一客户端私钥。
6.根据权利要求5所述的数字货币加密支付方法,其特征在于,所述第二客户端关联验证节点验证环签名,并利用共享密钥解密环签名,获取交易请求事务,执行支付交易并将相应的支付交易事务加密传入公开密钥地址,具体如下:
验证节点公钥数组,对称密钥作为参数计算所述环签名函数输出值,并验证其结果是否等于所述随机值,若等于则验证通过;
同时在第二客户端利用Diffie-Hellman参数进行Diffie-Hellman计算获取共享密钥;
利用共享密钥解除环签名,获取请求交易事务,支付交易请求事务中的交易金额,并在交易模型中形成相应的支付交易事务;
利用共享密钥对支付交易事务签名加密并发送至公开密钥地址。
7.根据权利要求1所述的数字货币加密支付方法,其特征在于,所述第一客户端关联可信节点解析支付交易事务并获取相应数字货币,具体如下:
第一客户端关联可信节点利用公开密钥获取公开密钥地址,解析支付交易事务,并利用共享密钥解密支付交易事务获取其支付的数字货币并存入发送方账户中。
8.根据权利要求1所述的数字货币加密支付方法,其特征在于,还包括可信节点将交请求易事务进行哈希运算生成请求交易事务的Merkle 树证明元数据,存储在SGX可行执行环境;验证节点将支付交易事务进行哈希运算生成支付交易事务的Merkle 树证明元数据,存储在SGX可行执行环境中。
9.一种数字货币加密支付系统,其特征在于,包括响应计算模块、环签名模块、解密获取模块及解析获取模块;
所述响应计算模块,关联用户客户端部署可信节点和验证节点,创建分布式数字货币账本,搭建SGX可信执行环境运行可信节点和验证节点,形成区块链网络;
其中,所述用户客户端包括第一客户端和第二客户端,所述第一客户端和第二客户端分别持有唯一密钥对和唯一密钥派生的公共密钥对;
响应第一客户端交易支付请求,可信节点在第一客户端生成随机数并基于第二客户端公共密钥对生成公开密钥,进一步将所述随机数衍生Diffie-Hellman参数计算第一客户端和第二客户端的共享密钥,由公开密钥和交易金额创建交易请求事务;
所述环签名模块中,可信节点在第一客户端基于共享密钥对交易请求事务进行环签名;
所述解密获取模块中,第二客户端关联验证节点验证环签名,并利用共享密钥解密环签名,获取交易请求事务,执行支付交易并将相应的支付交易事务传入公开密钥地址;
所述解析获取模块被设置为:第一客户端关联可信节点解析支付交易事务并获取相应数字货币。
10.根据权利要求9所述的数字货币加密支付系统,其特征在于,还包括关联创建模块,被设置为:
关联第一客户端部署可信节点,关联第二客户端部署验证节点,利用Kubernetes集群管理器管理所述可信节点和验证节点;
设置数字货币交易模型,创建由交易模型和Merkle 证明的元数据块组成的分布式数字货币账本,其中,可信节点和验证节点部署在SGX可信执行环境中。
CN202110737703.2A 2021-06-30 2021-06-30 数字货币加密支付方法及系统 Active CN113393225B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110737703.2A CN113393225B (zh) 2021-06-30 2021-06-30 数字货币加密支付方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110737703.2A CN113393225B (zh) 2021-06-30 2021-06-30 数字货币加密支付方法及系统

Publications (2)

Publication Number Publication Date
CN113393225A CN113393225A (zh) 2021-09-14
CN113393225B true CN113393225B (zh) 2022-10-28

Family

ID=77624710

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110737703.2A Active CN113393225B (zh) 2021-06-30 2021-06-30 数字货币加密支付方法及系统

Country Status (1)

Country Link
CN (1) CN113393225B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114090962B (zh) * 2022-01-24 2022-05-13 湖北长江传媒数字出版有限公司 一种基于大数据的智能出版系统及方法
CN115021946B (zh) * 2022-08-09 2022-10-21 西南石油大学 一种基于环签名的去中心化混币方法
CN116757698A (zh) * 2023-04-20 2023-09-15 广东盛迪嘉电子商务股份有限公司 一种用于完善支付安全性能的加密方法及系统

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3725029B1 (en) * 2017-12-15 2023-07-12 nChain Licensing AG Computer-implemented systems and methods for authorising blockchain transactions with low-entropy passwords
GB201806112D0 (en) * 2018-04-13 2018-05-30 Nchain Holdings Ltd Computer-implemented system and method
CN109067547A (zh) * 2018-09-21 2018-12-21 北京计算机技术及应用研究所 一种基于一次性环签名的区块链隐私保护方法
JP6865850B2 (ja) * 2019-03-29 2021-04-28 アドバンスド ニュー テクノロジーズ カンパニー リミテッド 高度に利用可能な信頼できる実行環境を使用してブロックチェーンネットワークに対するアクセスデータを取得すること
CN111400743B (zh) * 2020-04-07 2023-08-15 百度国际科技(深圳)有限公司 基于区块链网络的事务处理方法、装置、电子设备和介质
CN111798224A (zh) * 2020-06-03 2020-10-20 杭州云象网络技术有限公司 一种基于sgx的数字货币支付方法

Also Published As

Publication number Publication date
CN113393225A (zh) 2021-09-14

Similar Documents

Publication Publication Date Title
JP6724249B2 (ja) 情報保護用のシステム及び方法
JP6714156B2 (ja) 情報保護のためのシステム及び方法
CN110147994B (zh) 一种基于同态加密的区块链的即时执行方法
JP6908700B2 (ja) 情報保護のためのシステム及び方法
WO2021114819A1 (zh) 生成和执行智能合约交易的方法及装置
CN113393225B (zh) 数字货币加密支付方法及系统
JP2022003536A (ja) デジタルコンテンツの制御及び配信のためのブロックチェーンにより実施される方法
Ullah et al. Towards blockchain-based secure storage and trusted data sharing scheme for IoT environment
US20170344983A1 (en) BIXCoin: A Secure Peer-to-Peer Payment System Based on the Public Payments Ledger
CN111431713B (zh) 一种私钥存储方法、装置和相关设备
JP2020502857A (ja) 情報保護用のシステム及び方法
KR20180116278A (ko) 안전한 정보 교환과 계층 구조적이고 결정론적인 암호키를 위한 공통 비밀 결정
CN110599342B (zh) 基于区块链的身份信息的授权方法及装置
US20160241392A1 (en) Method for enhancing security in distributed systems
CN115296838B (zh) 基于区块链的数据共享方法、系统及存储介质
CN110830244A (zh) 基于身份秘密共享和联盟链的抗量子计算车联网方法及系统
Wang et al. Decentralized data outsourcing auditing protocol based on blockchain
CN111738857B (zh) 应用于区块链的隐匿支付证明的生成与验证方法及装置
CN114866323B (zh) 一种用户可控的隐私数据授权共享系统及方法
JP2001134534A (ja) 認証代行方法、認証代行サービスシステム、認証代行サーバ装置及びクライアント装置
CN115913513B (zh) 支持隐私保护的分布式可信数据交易方法、系统及装置
CN110519045B (zh) 基于群组非对称密钥池的抗量子计算联盟链交易方法、系统
CN111585756B (zh) 一种适用于多副本-多云情形下的无证书云审计方法
Espel et al. Proposal for protocol on a quorum blockchain with zero knowledge
CN113990399A (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