CN117220898A - 一种基于区块链的数据处理方法、设备以及可读存储介质 - Google Patents

一种基于区块链的数据处理方法、设备以及可读存储介质 Download PDF

Info

Publication number
CN117220898A
CN117220898A CN202310719045.3A CN202310719045A CN117220898A CN 117220898 A CN117220898 A CN 117220898A CN 202310719045 A CN202310719045 A CN 202310719045A CN 117220898 A CN117220898 A CN 117220898A
Authority
CN
China
Prior art keywords
component
key
private key
blockchain
service
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.)
Pending
Application number
CN202310719045.3A
Other languages
English (en)
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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202310719045.3A priority Critical patent/CN117220898A/zh
Publication of CN117220898A publication Critical patent/CN117220898A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

本申请实施例公开了一种基于区块链的数据处理方法、设备以及可读存储介质,该方法包括:在普通执行环境中,获取区块链地址创建请求;通过秘钥生成接口,将区块链地址创建请求传递至阈值签名组件;秘钥管理组件以及阈值签名组件均处于可信执行环境;在阈值签名组件中,与A个终端设备分别协商区块链地址创建任务,得到服务私钥片段;服务私钥片段用于与由A个终端设备分别生成的终端私钥片段,生成A个终端设备均共享的区块链地址;对服务私钥片段进行加密处理,得到存储于秘钥管理组件的加密服务私钥片段。采用本申请,可以提高服务私钥片段的安全性以及全局私钥的安全性。本申请实施例可应用于云技术、人工智能、智慧交通、辅助驾驶等各种场景。

Description

一种基于区块链的数据处理方法、设备以及可读存储介质
技术领域
本申请涉及互联网技术领域,尤其涉及一种基于区块链的数据处理方法、设备以及可读存储介质。
背景技术
区块链技术由于其去中心化以及无法篡改的特性,可以有效保障链上数据的真实性以及安全性,故随着网络技术的快速发展以及企业对数据安全的重视,区块链得到了极大的重视和应用。
现有技术通常是采用公钥基础设施(Public Key Infrastructure,PKI)体系进行数据签名,即每个业务设备自己生成公私钥对,私钥自己保护,公钥对外公开。当发起业务消息并需要保障业务消息的合法性时,业务设备会附上自己的私钥签名结果。由于每个业务设备对应的公私钥对仅与自身相关联,所以不法分子可以较容易地利用该业务设备的设备信息或业务对象信息获取到私钥。明显地,现有技术中私钥的安全性不高。
发明内容
本申请实施例提供一种基于区块链的数据处理方法、设备以及可读存储介质,可以提高服务私钥片段的安全性以及全局私钥的安全性。
本申请实施例一方面提供了一种基于区块链的数据处理方法,该方法由业务服务器执行,方法包括:
在普通执行环境中,获取A个终端设备均同意的区块链地址创建请求;A为大于1的正整数;
根据区块链地址创建请求,调用秘钥管理组件的秘钥生成接口,通过秘钥生成接口,将区块链地址创建请求传递至阈值签名组件;秘钥管理组件以及阈值签名组件均处于可信执行环境;
在阈值签名组件中,根据区块链地址创建请求,与A个终端设备分别协商区块链地址创建任务,得到服务私钥片段;服务私钥片段用于与由A个终端设备分别生成的终端私钥片段,共同生成A个终端设备均共享的区块链地址;
对服务私钥片段进行加密处理,得到加密服务私钥片段;加密服务私钥片段以及区块链地址关联存储于秘钥管理组件。
本申请实施例一方面提供了一种基于区块链的数据处理装置,该装置运行于业务服务器,装置包括:
第一获取模块,用于在普通执行环境中,获取A个终端设备均同意的区块链地址创建请求;A为大于1的正整数;
第一调用模块,用于根据区块链地址创建请求,调用秘钥管理组件的秘钥生成接口,通过秘钥生成接口,将区块链地址创建请求传递至阈值签名组件;秘钥管理组件以及阈值签名组件均处于可信执行环境;
第一协商模块,用于在阈值签名组件中,根据区块链地址创建请求,与A个终端设备分别协商区块链地址创建任务,得到服务私钥片段;服务私钥片段用于与由A个终端设备分别生成的终端私钥片段,共同生成A个终端设备均共享的区块链地址;
秘钥加密模块,用于对服务私钥片段进行加密处理,得到加密服务私钥片段;加密服务私钥片段以及区块链地址关联存储于秘钥管理组件。
其中,第一获取模块,包括:
第一获取单元,用于通过处于普通执行环境的网关组件,获取第一终端设备发送的区块链地址创建请求;第一终端设备属于A个终端设备;
第一验证单元,用于在网关组件中,对第一终端设备的登录状态进行验证,得到第一验证结果,根据第一验证结果,将区块链地址创建请求同步至处于普通执行环境的资源集成组件;
第二验证单元,用于在资源集成组件中,对区块链地址创建请求进行验证,得到第二验证结果,根据第二验证结果,将区块链地址创建请求转发至第二终端设备;第二终端设备包括A个终端设备中除了第一终端设备之外的终端设备;
第一确定单元,用于若第二终端设备同意区块链地址创建请求,则确定A个终端设备均同意区块链地址创建请求。
其中,第一验证单元,包括:
第一返回子单元,用于若第一验证结果指示第一终端设备处于异常登录状态,则通过网关组件,返回登录异常信息至第一终端设备;
请求同步子单元,用于若第一验证结果指示第一终端设备处于正常登录状态,则通过网关组件,将区块链地址创建请求同步至处于普通执行环境的资源集成组件。
其中,第二验证单元,包括:
第一获取子单元,用于获取区块链地址创建请求中的区块链标识,获取第一终端设备所登陆的业务账号;区块链标识用于表征第一终端设备对应的设备对象所选择的区块链;
第二返回子单元,用于若业务账号针对区块链不具有申请权限,则通过网关组件,返回申请异常信息至第一终端设备;申请异常信息用于指示第二验证结果为验证失败结果;
第二获取子单元,用于若业务账号针对区块链具有申请权限,则获取区块链地址创建请求中的协商参数;协商参数包括参与区块链地址创建任务的秘钥生成设备的数量A+1;秘钥生成设备包括业务服务器;
第一确定子单元,用于确定登录有业务账号的终端设备的设备数量,若设备数量小于A,则通过网关组件,返回登录提示信息至第一终端设备,以使设备对象在第二终端设备上登录业务账号;第二终端设备的数量为A-1;
第二确定子单元,用于若在登录有效期内,第二终端设备登录业务账号,则将验证成功结果确定为第二验证结果。
其中,第二验证单元,包括:
第三返回子单元,用于若第二验证结果为验证失败结果,则通过网关组件,返回请求异常信息至第一终端设备;
请求转发子单元,用于若第二验证结果为验证成功结果,则通过网关组件,将区块链地址创建请求转发至第二终端设备。
其中,第一获取模块,还包括:
第一同步单元,用于通过资源集成组件,将区块链地址创建请求同步至处于普通执行环境的对象组件;
第二获取单元,用于在对象组件中,获取区块链地址创建请求中的对象标识、区块链标识以及秘钥标识;对象标识用于表征A个终端设备分别登录的业务账号;区块链标识用于表征第一终端设备对应的设备对象所选择的区块链;
第一存储单元,用于将对象标识、区块链标识以及秘钥标识关联存储于对象组件对应的第一数据库。
其中,第一调用模块,包括:
请求传递单元,用于通过秘钥生成接口,将区块链地址创建请求传递至秘钥管理组件;
第二同步单元,用于通过秘钥管理组件,将区块链地址创建请求同步至阈值签名组件。
其中,私钥加密模块,包括:
第三获取单元,用于生成服务私钥片段对应的服务公钥片段,获取阈值签名组件的组件公钥;
私钥加密单元,用于通过组件公钥对服务私钥片段进行加密处理,得到加密服务私钥片段,通过阈值签名组件,将服务公钥片段以及加密服务私钥片段均同步至秘钥管理组件;
第四获取单元,用于在秘钥管理组件中,获取A个终端设备分别生成的终端公钥片段,对A个终端公钥片段以及服务公钥片段进行求和处理,得到全局公钥;
第二存储单元,用于将加密服务私钥片段以及全局公钥关联存储于秘钥管理组件对应的第二数据库;
第三同步单元,用于生成全局公钥对应的区块链地址,通过秘钥管理组件,将区块链地址以及全局公钥均同步至处于普通执行环境的对象组件;
第三存储单元,用于在对象组件中,将区块链地址、全局公钥以及区块链地址创建请求中的秘钥标识关联存储于对象组件对应的第一数据库;秘钥标识用于唯一标识区块链地址以及全局公钥。
其中,基于区块链的数据处理装置,还包括:
第二获取模块,用于在普通执行环境中,获取第三终端设备发送的消息签名请求;第三终端设备属于A个终端设备;
第二调用模块,用于根据消息签名请求,调用秘钥生成接口,通过秘钥生成接口,将消息签名请求传递至秘钥管理组件;
请求同步模块,用于在秘钥管理组件中,对消息签名请求进行验证,得到第三验证结果,若第三验证结果为验证成功结果,则通过秘钥管理组件,将消息签名请求同步至阈值签名组件;
第二协商模块,用于在阈值签名组件中,根据消息签名请求,获取服务私钥片段,通过服务私钥片段,与第三终端设备协商消息签名任务,得到签名结果。
其中,请求同步模块,包括:
第五获取单元,用于获取消息签名请求中的资源转出地址,若资源转出地址与区块链地址不同,则返回地址异常信息至第三终端设备;地址异常信息用于指示第三验证结果为验证失败结果;
第二确定单元,用于若资源转出地址与区块链地址相同,则获取消息签名请求中的签名协议,若签名协议具有合法性,则将验证成功结果确定为第三验证结果。
其中,基于区块链的数据处理装置,还包括:
第三获取模块,用于获取消息签名请求中的秘钥标识,在处于普通执行环境的对象组件对应的第一数据库中,获取与秘钥标识关联存储的全局公钥;
第四获取模块,用于通过对象组件,将全局公钥传递至秘钥管理组件,在秘钥管理组件对应的第二数据库中,获取与全局公钥关联存储的加密服务私钥片段;
则请求同步模块,具体用于通过秘钥管理组件,将消息签名请求以及加密服务私钥片段均同步至阈值签名组件;
则第二协商模块,具体用于根据消息签名请求,获取阈值签名组件的组件私钥,通过组件私钥,对加密服务私钥片段进行解密处理,得到服务私钥片段。
本申请一方面提供了一种计算机设备,包括:处理器、存储器、网络接口;
上述处理器与上述存储器、上述网络接口相连,其中,上述网络接口用于提供数据通信功能,上述存储器用于存储计算机程序,上述处理器用于调用上述计算机程序,以使得计算机设备执行本申请实施例中的方法。
本申请实施例一方面提供了一种计算机可读存储介质,上述计算机可读存储介质中存储有计算机程序,上述计算机程序适于由处理器加载并执行本申请实施例中的方法。
本申请实施例一方面提供了一种计算机程序产品,该计算机程序产品包括计算机程序,该计算机程序存储在计算机可读存储介质中;计算机设备的处理器从计算机可读存储介质读取该计算机程序,处理器执行该计算机程序,使得该计算机设备执行本申请实施例中的方法。
在本申请实施例中,业务服务器在普通执行环境中,可以获取A个终端设备均同意的区块链地址创建请求,其中,A为大于1的正整数;进一步,根据区块链地址创建请求,可以调用秘钥管理组件的秘钥生成接口,通过秘钥生成接口,业务服务器可以将区块链地址创建请求传递至阈值签名组件;其中,秘钥管理组件以及阈值签名组件均处于可信执行环境;进一步,在阈值签名组件中,根据区块链地址创建请求,业务服务器可以与A个终端设备分别协商区块链地址创建任务,得到服务私钥片段;服务私钥片段用于与由A个终端设备分别生成的终端私钥片段,共同生成A个终端设备均共享的区块链地址;进一步,业务服务器对服务私钥片段进行加密处理,可以得到加密服务私钥片段;加密服务私钥片段以及区块链地址关联存储于秘钥管理组件。上述可知,业务服务器包括普通执行环境以及可信执行环境,且用于生成区块链地址的服务私钥片段是在可信执行环境中所生成的,且存储于可信执行环境,故可以提高服务私钥片段的安全性;此外,本申请实施例中的服务私钥片段为业务服务器独立拥有的私钥片段,同样地,终端私钥片段也为终端设备独立拥有的私钥片段,故业务服务器无法通过服务私钥片段,生成区块链地址对应的全局私钥,同样地,任意一个终端设备无法通过自己持有的终端私钥片段,生成区块链地址对应的全局私钥,因此,采用本申请,可以降低仅由一方保管全局私钥所造成的私钥泄露风险,故可以提高全局私钥的安全性。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种系统架构示意图;
图2是本申请实施例提供的一种基于区块链的数据处理方法的流程示意图一;
图3是本申请实施例提供的一种基于区块链的数据处理的场景示意图一;
图4是本申请实施例提供的一种基于区块链的数据处理的场景示意图二;
图5是本申请实施例提供的一种基于区块链的数据处理方法的流程示意图二;
图6是本申请实施例提供的一种业务服务器的结构示意图;
图7是本申请实施例提供的一种基于区块链的数据处理方法的流程示意图三;
图8是本申请实施例提供的一种基于区块链的数据处理的场景示意图三;
图9是本申请实施例提供的一种基于区块链的数据处理装置的结构示意图;
图10是本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为了便于理解,首先对部分名词进行以下简单解释:
1、区块链:狭义上,区块链是一种以区块为基本单位的链式数据结构,区块中利用数字摘要对之前获取的交易历史进行校验,适合分布式记账场景下防篡改和可扩展性的需求;广义上,区块链还指代区块链结构实现的分布式记账技术,包括分布式共识、隐私与安全保护、点对点通信技术、网络协议、智能合约等。区块链的目标是实现一个分布的数据记录账本,此账本只允许添加,不允许删除。账本底层的基本结构是一个线性的链表。链表由一个个“区块”串联组成,后继区块中记录前继区块的哈希(Hash)值,每个区块(以及区块中的交易)是否合法,可通过计算哈希值的方式进行快速检验。若网络中的节点提议添加一个新的区块,必须经过共识机制对区块达成共识确认。
2、区块链节点:区块链网络将节点区分为共识节点(也可以称作核心节点)以及同步节点(可以包括数据节点以及轻节点)。其中,共识节点负责区块链全网的共识业务;同步节点负责同步共识节点的账本信息,即同步最新的区块数据。无论是共识节点还是同步节点,其内部构造都包括网络通信组件,因为区块链网络本质是一个点对点(Peer to Peer,P2P)网络,需通过P2P组件与区块链网络中的其他节点进行通信。区块链网络中的资源和服务都分散在各个节点上,信息的传输和服务的实现都直接在节点之间进行,无需中间环节或中心化的服务器(第三方)介入。
3、公钥(public key)与私钥(private key):公钥与私钥是通过一种算法得到的一个密钥对,公钥是密钥对中公开的部分,私钥则是非公开的部分。公钥通常用于加密数据、验证数字签名等。通过这种算法能够确保得到的密钥对是唯一的,使用这种密钥对的时候,如果用其中一个密钥加密一段数据,必须用另一个密钥解密,例如,用公钥加密数据就必须用私钥解密,如果用私钥加密也必须用公钥解密,否则解密将不会成功。
4、非对称签名:签名算法包括两个密钥,公开密钥(简称公钥,public key)和私有密钥(简称私钥,private key)。公钥与私钥是一对,如果用私钥对数据进行签名,只有用对应的公钥才能验签。因为签名过程和验签过程分别使用两个不同的密钥,所以这种算法称作非对称签名。非对称签名实现机密信息交换的基本过程可以是:甲方生成一对密钥并将公钥公开,甲方需要向其他角色(乙方)发送消息时,使用自己的私钥对机密消息进行签名后再发送给乙方;乙方再用甲方的公钥对签名后的消息进行验签。
5、可信执行环境:是基于硬件保护数据和算法的一项技术,又称为TrustedExecution Environments(简称TEE),是一个处理器&内存的隔离环境,只有中央处理器(Central Processing Unit,简称CPU)可以访问运行在加密内存里的程序,其它层(硬件、内核、其它应用程序)对TEE的访问,都被CPU阻拦。
请参见图1,图1是本申请实施例提供的一种系统架构示意图。如图1所示,该系统架构可以包括业务服务器101、终端设备集群以及区块链网络。
其中,区块链网络可以包括区块链节点集群10,区块链节点集群10可以包括一个或多个区块链节点,本申请实施例不对区块链节点集群10中的区块链节点的数量进行限制。如图1所示,区块链节点集群10可以包括区块链节点10a、区块链节点10b、区块链节点10c以及区块链节点10d。可以理解的是,每个区块链节点在进行正常工作时,可以接收到链外设备(例如本申请实施例中的业务服务器101以及终端设备集群中的终端设备)发送的待上链数据,并基于接收到的待上链数据生成区块,然后对区块进行上链处理。可以理解的是,在本申请的具体实施方式中,涉及到用户信息(例如区块链地址创建请求)等相关的数据,当本申请实施例运用到具体产品或技术中时,需要获得用户许可或者同意,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
为了保证各个区块链节点之间的数据互通,每个区块链节点之间可以存在数据连接,例如区块链节点10a与区块链节点10c之间存在数据连接,区块链节点10a与区块链节点10d之间存在数据连接,区块链节点10b与区块链节点10c之间存在数据连接等等。可以理解的是,区块链节点之间可以通过上述数据连接进行数据或者区块传输。上述区块链节点之间的数据连接可以基于节点标识,对于区块链网络中的每个区块链节点,均具有与其对应的节点标识,而且上述每个区块链节点均可以存储与自身有相连关系的其他区块链节点的节点标识,以便后续根据其他区块链节点的节点标识,将获取到的数据或生成的区块广播至其他区块链节点,例如区块链节点10a可以维护一个节点标识列表,该节点标识列表保存着其他区块链节点的节点名称和节点标识,如表1所示。
表1
节点名称 节点标识
区块链节点10b AAAAA
区块链节点10c BBBBB
区块链节点10d CCCCC
其中,节点标识可为网络之间互联的协议(Internet Protocol,IP)地址,以及其他任意一种能够用于标识区块链网络中节点的信息,表1中仅以IP地址为例进行说明。
假设区块链节点10a的节点标识为FFFFFF,则区块链节点10a可以通过节点标识CCCCC,向区块链节点10d发送交易数据,且区块链节点10d通过节点标识FFFFFF,可以确定该交易数据是区块链节点10a所发送的;同理,区块链节点10d可以通过节点标识BBBBBB,向区块链节点10c发送待共识区块,且区块链节点10c通过节点标识CCCCCC,可以确定该待共识区块是区块链节点10d所发送的,其他节点之间的数据传输亦如此,故不再一一进行赘述。
可以理解的是,上述的数据连接不限定连接方式,可以通过有线通信方式进行直接或间接地连接,也可以通过无线通信方式进行直接或间接地连接,还可以通过其他连接方式,本申请在此不做限制。
其中,可以理解的是,如图1所示的区块链节点10a、区块链节点10b、区块链节点10c以及区块链节点10d等,可以分别与需要接入区块链网络中的相应角色(即相应业务场景下的实体对象)之间存在一一对应关系。这里的业务场景具体可以包含电子票据场景、资源发行场景、资源转移场景、支付场景等。此时,相应业务场景下的业务数据信息具体可以包含电子票据场景下的电子票据信息、资源发行场景下的资源发行信息、资源转移场景下的资源转移信息、支付场景下的资产流转记录等,这里将不对相应的业务场景下的业务数据信息具体内容进行一一列举。
可以理解的是,终端设备集群可以包括一个或多个终端设备,本申请实施例不对终端设备集群中的终端设备的数量进行限制。如图1所示,终端设备集群可以包括终端设备100a、终端设备100b、终端设备100c、…、终端设备100d。其中,终端设备集群之间可以存在网络连接,例如终端设备100a与终端设备100b之间存在网络连接。同时,终端设备集群中的任一终端设备可以与业务服务器101存在网络连接,例如终端设备100d与业务服务器101之间存在网络连接。同时,终端设备集群中的任一终端设备可以与区块链网络存在网络连接,例如终端设备100b与区块链网络中的区块链节点10c之间存在网络连接。其中,上述网络连接不限定连接方式,可以通过有线网络方式进行直接或间接地连接,也可以通过无线网络方式进行直接或间接地连接,还可以通过其它方式,本申请在此不做限制。
应当理解,如图1所示的终端设备集群中的每个终端设备,均可以安装有应用客户端,当该应用客户端运行于各终端设备中时,可以分别与上述图1所示的业务服务器101之间进行数据交互,即上述的网络连接;也可以与上述图1所示的区块链网络进行数据交互。其中,该应用客户端可以为视频应用、数字资源应用、办公软件应用、导航应用、购物应用、金融理财应用、商务应用、浏览器等具有区块链地址生成功能的应用客户端。其中,该应用客户端可以为独立的客户端,也可以为集成在某客户端(例如,教育客户端以及多媒体客户端等)中的嵌入式子客户端,在此不做限定。
以数字资源应用为例,业务服务器101可以为包括数字资源应用对应的后台服务器、数据处理服务器等多个服务器的集合。因此,每个终端设备均可以通过该数字资源应用对应的应用客户端,与业务服务器101进行数据传输,如每个终端设备均可以通过数字资源应用的应用客户端,将区块链地址创建请求上传至业务服务器101,进而业务服务器101可以将该区块链地址创建请求下发给其它终端设备或传送至区块链网络。
业务服务器101可以为上述终端设备集群中的终端设备所安装的应用客户端对应的后台服务器。可以理解的是,上述系统可以包括一个或者多个业务服务器,这里将不对业务服务器的数量进行限制。如图1所示的业务服务器101可以与区块链网络进行网络连接,以便于能够通过与区块链网络之间的网络连接进行数据交互。
本申请实施例中的第一终端设备以及A-1个第二终端设备均安装有具有共同协商创建区块链地址的功能的应用客户端,此处以数字资源应用为例进行描述。当获取到区块链地址创建指令时,第一终端设备(例如图1中的终端设备100a)可以通过数字资源应用,向业务服务器101发送区块链地址创建请求。业务服务器101包括普通执行环境以及可信执行环境,在普通执行环境中,业务服务器101获取第一终端设备发送的区块链地址创建请求。区块链地址创建请求包括用于指示参与区块链地址创建任务的第二终端设备的设备信息。该设备信息包括但不限于第一终端设备在数字资源应用中所登录的业务账号,即第一终端设备在数字资源应用中所登录的业务账号,与第二终端设备(例如图1中的终端设备100b)在数字资源应用中所登录的业务账号相同。具体场景可以为业务对象(例如用户)在手机所安装的数字资源应用中登录业务账号,然后又在电脑所安装的数字资源应用中登录同一个业务账号。本申请实施例不对指示第二终端设备的方式进行限定,即不对设备信息的具体内容进行限定,可以根据实际应用场景进行设定。
若同意区块链地址创建请求,则业务服务器101可以向A-1个第二终端设备转发区块链地址创建请求,本申请实施例不对A的取值进行限定,即不对第二终端设备的数量进行限定,为了便于理解以及叙述,此处将A示例为2,即以一个第二终端设备示例叙述。可以理解的是,若A为大于2的正整数,那么业务服务器101与多个第二终端设备之间的数据传输,与下文描述的内容相同。若第二终端设备针对区块链地址创建请求返回同意信息,则业务服务器101可以确定2个终端设备(即第一终端设备以及第二终端设备)均同意区块链地址创建请求。此时,共有3个设备同意创建一个新的区块链地址,3个设备分别为第一终端设备、业务服务器101以及第二终端设备。
进一步,根据区块链地址创建请求,业务服务器101可以调用秘钥管理组件的秘钥生成接口,通过秘钥生成接口,将区块链地址创建请求传递至阈值签名组件;秘钥管理组件以及阈值签名组件均处于可信执行环境;在阈值签名组件中,根据区块链地址创建请求,业务服务器101可以与2个终端设备分别协商区块链地址创建任务,得到服务私钥片段;服务私钥片段用于与由2个终端设备分别生成的终端私钥片段,共同生成2个终端设备均共享的区块链地址;进一步,在阈值签名组件中,业务服务器101对服务私钥片段进行加密处理,得到加密服务私钥片段;加密服务私钥片段以及区块链地址关联存储于秘钥管理组件。明显地,业务服务器101是在普通执行环境中获取区块链地址创建请求,但区块链地址创建的实现是在可信执行环境中,且服务私钥片段在可信执行环境中生成以及存储,故可以提高服务私钥片段的安全性。
上述可知,区块链地址的创建有3方参与,最后得到2个终端设备(即第一终端设备以及第二终端设备)共享的区块链地址,即第一终端设备可以在数字资源应用中显示区块链地址上的数字资源,也可以在数字资源应用中对区块链地址上的数字资源进行转移操作。同理,第二终端设备可以在数字资源应用中显示区块链地址上的数字资源,也可以在数字资源应用中对区块链地址上的数字资源进行转移操作。
本申请实施例提供的方法可以由计算机设备执行,计算机设备包括但不限于终端设备或业务服务器。业务服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云数据库、云服务、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。终端设备包括但不限于手机、电脑、智能语音交互设备、智能家电、车载终端、飞行器等。
进一步地,请参见图2,图2是本申请实施例提供的一种基于区块链的数据处理方法的流程示意图一。本申请实施例可应用于各种场景,包括但不限于云技术、人工智能、智慧交通、辅助驾驶等。本申请实施例可适用于对签名私钥有保护需求的电子商务、物联网、云计算系统等;也适用于采用多方协同生成签名的场景。这里将不对具体的业务场景进行一一列举。该数据处理方法可以由业务服务器执行,业务服务器可以为上述图1所述的系统架构中的业务服务器101。如图2所示,该数据处理方法至少可以包括以下步骤S101-步骤S104。
步骤S101,在普通执行环境中,获取A个终端设备均同意的区块链地址创建请求;A为大于1的正整数。
具体的,本申请提供一种2—n的椭圆曲线数字签名算法(Elliptic CurveDigital Signature Algorithm,简称ECDSA),其中,n(等同于A+1)表示持有秘钥分片(也称私钥片段)的参与方数量,n为大于或等于3的正整数,2表示参与签名的参与方数量。为了便于叙述,全文以n等于4(即A=3)示例,此时有4个参与方各自持有相互独立的私钥片段,且4个参与方中的任意2个参与方可以参与消息签名。
4个参与方可以包括终端设备以及业务服务器。其中,业务服务器所持有的私钥片段的数量(本申请默认一个业务服务器保存一个私钥片段)小于签名参与数量。可以理解的是,若存在2个业务服务器分别持有私钥片段,那么2个业务服务器可以在不经过业务对象的授权下,对区块链地址上的数据以及数字资源进行处理,此时,会降低区块链地址的安全性。一种可行的实施方式如下:1个参与方对应第一终端设备,2个参与方对应第二终端设备,1个参与方对应业务服务器,例如第一终端设备为图1中的终端设备100a,第二终端设备为图1中的终端设备100b。具体地,第一个参与方可以为业务服务器101,第二个参与方为终端设备100a中的独立的客户端1,第三个参与方为终端设备100b中的客户端2,第四个参与方为终端设备100b中的独立的客户端3。可以理解的是,3个客户端为同一个应用,例如数字资源应用,业务服务器101为数字资源应用对应的后台服务器。在4个参与方位于两个终端设备以及一个业务服务器的场景下,通过本申请实施例,业务服务器101可以存储有1个私钥片段(本申请称为服务私钥片段),终端设备100a可以存储有1个私钥片段(本申请称为终端私钥片段),终端设备100b可以存储有2个相互独立的私钥片段。
另一种可行的实施方式如下:4个参与方对应4个互不不同的设备,即1个参与方对应第一终端设备,2个参与方分别对应不同的第二终端设备,还有1个参与方对应业务服务器。例如第一终端设备为图1中的终端设备100a,一个第二终端设备为图1中的终端设备100b,另一个第二终端设备为图1中的终端设备100c。具体地,第一个参与方为终端设备100a中的独立的客户端1,第二个参与方为终端设备100b中的独立的客户端2,第三个参与方为终端设备100c中的独立的客户端3,第四个参与方为业务服务器101,同理,3个客户端为同一个应用。在4个参与方位于4个不同设备的场景下,通过本申请实施例,每个设备分别存储有1个私钥片段。可以理解的是,4个私钥片段存储于4个不同的设备时,其安全性更高,因为可以避免一个终端设备丢失或被非法分子窃取数据时,剩余3个私钥片段也丢失或被窃取,即剩余3个私钥片段处于安全状态,此时,可以通过剩余的3个私钥片段保障业务账号上的数据以及数字资源的安全性。
上述可知,本申请提出一种基于多方计算(Multi-Party Computation,简称MPC)生成私钥片段以及私钥片段签名的方法,其中,MPC是指多个持有各自私有数据(例如本申请中的私钥片段)的参与方,共同执行一个计算逻辑(例如下文描述的私钥生成(KeyGen)算法,以及签名(Sign)算法),并获得计算结果,但计算过程中,参与的每一方均不会泄漏各自数据的计算。
在本申请实施例中,MPC是多方在不知道其它方的输入下的情况下,共同计算一个函数,即ECDSA签名的MPC算法,秘钥生成时,多方在不知道其它方的秘密份额的情况下,共同做ECDSA的签名计算,ECDSA的签名即是多方共同计算的函数。
业务对象(例如用户)具有通过数字资源应用(可以为独立的数字资源应用,也可以为数字资源子客户端,或浏览器数字资源插件),管理区块链上的数字资产(数字资源)的需求,故需要创建一份链上可用的秘钥对和区块链地址,也可以称作区块链标识或区块链账号。其中,数字资源客户端(即数字资源应用)可以实现资源管理业务功能,并基于该资源管理业务功能实现与去中心化应用客户端之间的通信连接。数字资源客户端是一种用于负责管理、存储数字资源的工具,例如可基于数字资源客户端向其它区块链地址转移数字资源,又例如,可基于数字资源客户端接收其它区块链地址所转入的数字资源。
该数字资源客户端可以是硬件设备,也可以为软件程序。本申请中,业务对象的数字资源客户端可与去中心化应用客户端之间建立通信连接,以实现业务对象的授权登录等相关操作。可以理解的是,随着各类去中心化应用(Decentralized application,简称Dapp)在区块链上广泛部署,业务对象在区块链上的活动增加,一般业务对象在使用去中心化应用时,可使用区块链密钥管理工具,即数字资源客户端(也可称为去中心化客户端)进行登录,该区块链密钥管理工具中的地址对应于区块链上的一个链上对象,去中心化应用能够通过一些接口从密钥管理工具获取到该对象地址,解决了Dapp后台无法信任该去中心化应用登录时所使用的对象地址的问题。
请一并参见图3,图3是本申请实施例提供的一种基于区块链的数据处理的场景示意图一。图3示例A=3,即图3示例终端设备的数量为3个,3个终端设备分别为终端设备100a、终端设备100b以及终端设备100c。本申请实施例暂不描述3个终端设备均同意区块链地址创建请求的过程,请参见下文图5所对应的实施例中的描述。
如图3所示,业务服务器101在普通执行环境20a中获取到第一终端设备(例如图3中的终端设备100a)发送的区块链地址创建请求20c,即图3所示例的“请求在区块链a上为账号AAA创建地址”,明显地,第一终端设备对应的业务对象想要在区块链a上,为数字资源应用中所登录的账号AAA创建一个新的区块链地址。2个第二终端设备(即图3中的终端设备100b以及终端设备100c)均同意区块链地址创建请求20c。
步骤S102,根据区块链地址创建请求,调用秘钥管理组件的秘钥生成接口,通过秘钥生成接口,将区块链地址创建请求传递至阈值签名组件;秘钥管理组件以及阈值签名组件均处于可信执行环境。
具体的,通过秘钥生成接口,将区块链地址创建请求传递至秘钥管理组件;通过秘钥管理组件,将区块链地址创建请求同步至阈值签名组件。
业务服务器101是在普通执行环境20a中获取的区块链地址创建请求20c,根据区块链地址创建请求20c,可以调用处于可信执行环境20d中的秘钥管理组件20d的秘钥生成接口20b,通过秘钥生成接口20b,业务服务器101可以将处于普通执行环境20a中的区块链地址创建请求20c传递至秘钥管理组件20e。进一步,通过秘钥管理组件20e,业务服务器101将区块链地址创建请求20c同步至处于可信执行环境20d的阈值签名组件20f。
步骤S103,在阈值签名组件中,根据区块链地址创建请求,与A个终端设备分别协商区块链地址创建任务,得到服务私钥片段;服务私钥片段用于与由A个终端设备分别生成的终端私钥片段,共同生成A个终端设备均共享的区块链地址。
具体的,由步骤S101可知,本申请实施例提出一种资产半托管的后台服务实现方案,可以对MPC数字资源应用的私钥片段提供半托管能力,部分私钥片段(本申请称为服务私钥片段)托管在业务服务器端,部分私钥分片(本申请称为终端私钥片段)由终端设备持有,是一种非完全的去中心化资产托管方案。
在阈值签名组件中,根据区块链地址创建请求,业务服务器可以与A个终端设备(例如图3示例3个终端设备)分别协商区块链地址创建任务。需要强调的是,业务服务器与终端设备之间的数据(例如下文的第一秘密份额以及第二秘密份额)传输,是先传输到普通执行环境,然后通过秘钥管理组件的秘钥生成接口,传递至处于可信执行环境中的秘钥管理组件,若涉及到安全处理操作(例如本申请实施例的私钥片段生成以及下文提及的消息签名),则通过秘钥管理组件,将需要进行安全操作的数据同步至阈值签名组件,在阈值签名组件中对数据进行安全操作。
本申请实施例主要描述业务服务器的内部结构以及内部数据处理过程,故下文简单描述服务私钥片段的具体生成过程。为了便于叙述以及理解,将n示例为4,即A=3,且四个持有秘钥片段的设备互为不同的设备,例如图3中的四个设备,即终端设备100a、终端设备100b、终端设备100c以及业务服务器101c。四个设备参与ECDSA签名的MPC算法,协同生成4个私钥片段,分别为一个服务私钥片段,三个终端私钥片段。通过协商,四个设备(即终端设备100a、终端设备100b、终端设备100c以及业务服务器101c)分别在本地产生一个随机数,例如业务服务器101c生成随机数u1,终端设备100a生成随机数u2,终端设备100b生成随机数u3,终端设备100c生成随机数u4,该4个随机数均不对外公布。其中,上述的4个随机数之和可以作为全局私钥,即随机数u1+随机数u2+随机数u3+随机数u4作为全局私钥,但实际上,全局私钥不会生成,因为每个参与方(即每个设备)仅持有自己生成的随机数,不对外公布自己持有的随机数,也不知道其它方所持有的随机数。
为了实现阈值的能力,业务服务器101借助秘密分享算法,例如门限密钥共享(shamir)算法,随机生成一个阶数满足条件的多项式y,多项式y在平面直角坐标系(x-y轴)x=0处与y轴的交点即是秘密随机数(即上述的随机数u1)。上文已表述,参与签名的参与方为2,即通过2个私钥片段(可以是两个终端私钥片段,也可以是一个终端私钥片段以及一个服务私钥片段)进行签名,此时多项式y的阶数为2-1,即阶数等于1。故业务服务器101可以随机生成一个一阶多项式y=a1x+u1,其中,a1为一个常数,明显地,当x=0时,y=u1。由于一阶多项式y=a1x+u1用于生成分享至3个终端设备的第一秘密份额,故本申请将其称为分享多项式。
进一步,业务服务器101获取4个参与设备分别对应的设备索引,例如业务服务器101的设备索引为设备索引1,终端设备100a的设备索引为设备索引2,终端设备100b的设备索引为设备索引3,终端设备100c的设备索引为设备索引4,故业务服务器101可以将设备索引1的数值映射为1,将设备索引2的数值映射为2,将设备索引3的数值映射为3,将设备索引4的数值映射为4。进一步,业务服务器101通过MPC秘钥分享算法,例如Feldman-VerifiableSecret Sharing(简称Feldman-VSS),将u1分为4份秘密份额,即4个第一秘密份额。具体地,业务服务器101将1输入至多项式y=a1x+u1,得到自己保留的第一秘密份额B1,第一秘密份额B1等于u11=a1+u1;将2输入至多项式y=a1x+u1,得到发送给终端设备100a的第一秘密份额B2,第一秘密份额B2等于u12=2a1+u1;业务服务器101将3输入至多项式y=a1x+u1,得到发送给终端设备100b的第一秘密份额B3,第一秘密份额B3等于u13=3a1+u1;将4输入至多项式y=a1x+u1,得到发送给终端设备100c的第一秘密份额B4,第一秘密份额B4等于u14=4a1+u1
其中,每个终端设备对自己持有的秘密份额的处理,等同于业务服务器101对自己持有的秘密份额的处理,下面以终端设备100a对自己持有的秘密份额的处理为例进行叙述,终端设备100b以及终端设备100c的处理请参见业务服务器101的处理以及终端设备100a的处理。
终端设备100a借助秘密分享算法,随机生成一个阶数满足条件的多项式y,多项式y在平面直角坐标系(x-y轴)x=0处与y轴的交点即是秘密随机数(即上述的随机数u2)。同样地,终端设备100a随机生成的多项式y的阶数为1,即终端设备100a可以随机生成一个一阶多项式y=a2x+u2,其中,a2为一个常数,明显地,当x=0时,y=u2。由于一阶多项式y=a2x+u2用于生成分享至业务服务器101以及2个终端设备的第二秘密份额,故本申请将其称为分享多项式。
进一步,终端设备100a获取4个参与设备分别对应的设备索引,例如上述的设备索引1、设备索引2、设备索引3以及设备索引4,同样地,终端设备100a将设备索引1的数值映射为1,将设备索引2的数值映射为2,将设备索引3的数值映射为3,将设备索引4的数值映射为4。进一步,终端设备100a通过MPC秘钥分享算法,将u2分为4份秘密份额,即4个第二秘密份额。具体地,终端设备100a将1输入至多项式y=a2x+u2,发送给业务服务器101的第二秘密份额C1,第二秘密份额C1等于u21=a2+u2;将2输入至多项式y=a2x+u2,得到自己保留的第二秘密份额C2,第二秘密份额C2等于u22=2a2+u2;终端设备100a将3输入至多项式y=a2x+u2,得到发送给终端设备100b的第二秘密份额C3,第二秘密份额C3等于u23=3a2+u2;将4输入至多项式y=a2x+u2,得到发送给终端设备100c的第二秘密份额C4,第二秘密份额C4等于u24=4a2+u2
按照上述处理,业务服务器101可以获取到自己生成的第一秘密份额B1,终端设备100a发送的第二秘密份额C1,终端设备100b发送的第二秘密份额以及终端设备100c发送的第二秘密份额,将上述的4个秘密份额进行求和处理,业务服务器101可以得到服务私钥片段。同样地,每个终端设备均可以获取到4个秘密份额,分别为业务服务器101发送的第一秘密份额,自己生成的第二秘密份额,以及剩余两个终端设备分别生成的第二秘密份额,每个终端设备将获取到的4个秘密份额进行求和处理,则可以得到自己持有的终端私钥片段。
其中,第一秘密份额B2,第一秘密份额B3,第一秘密份额B4均是在可信执行环境中生成,故先传递至普通执行环境,然后在普通执行环境中,分别广播至对应的终端设备。同样地,业务服务器101在普通执行环境中获取3个终端设备分别发送的第二秘密份额,通过普通执行环境,传递至可信执行环境,在可信执行环境中,结合自己生成的第一秘密份额,生成服务私钥片段。
步骤S104,对服务私钥片段进行加密处理,得到加密服务私钥片段;加密服务私钥片段以及区块链地址关联存储于秘钥管理组件。
具体的,生成服务私钥片段对应的服务公钥片段,获取阈值签名组件的组件公钥;通过组件公钥对服务私钥片段进行加密处理,得到加密服务私钥片段,通过阈值签名组件,将服务公钥片段以及加密服务私钥片段均同步至秘钥管理组件;在秘钥管理组件中,获取A个终端设备分别生成的终端公钥片段,对A个终端公钥片段以及服务公钥片段进行求和处理,得到全局公钥;将加密服务私钥片段以及全局公钥关联存储于秘钥管理组件对应的第二数据库;生成全局公钥对应的区块链地址,通过秘钥管理组件,将区块链地址以及全局公钥均同步至处于普通执行环境的对象组件;在对象组件中,将区块链地址、全局公钥以及区块链地址创建请求中的秘钥标识关联存储于对象组件对应的第一数据库;秘钥标识用于唯一标识区块链地址以及全局公钥。
请一并参见图4,图4是本申请实施例提供的一种基于区块链的数据处理的场景示意图二。如图4所示,业务服务器在处于可信执行环境20d的阈值签名组件20f中生成服务私钥片段201g,获取参与秘钥生成的n个设备协商好的椭圆曲线的基点G,对服务私钥片段201g以及椭圆曲线的基点G进行乘积处理,业务服务器可以得到服务私钥片段201g对应的服务公钥片段202g。进一步,业务服务器获取阈值签名组件20f的组件公钥20h,通过组件公钥20h对服务私钥片段201g进行加密处理,得到加密服务私钥片段。可以理解的是,阈值签名组件20f的组件私钥以及组件公钥20h均不对外开发,仅阈值签名组件20f内部应用。
请再参见图4,通过阈值签名组件20f,业务服务器将服务公钥片段202g以及加密服务私钥片段均同步至处于可信执行环境中的秘钥管理组件20e。在秘钥管理组件20e中,业务服务器获取A个终端设备分别生成的终端公钥片段,结合上文图3的示例,图4示例A等于3,即3个终端公钥片段,结合图3以及图4,3个终端公钥片段分别为由终端设备100a生成的终端公钥片段101a,由终端设备100b生成的终端公钥片段101b,由终端设备100c生成的终端公钥片段101c。进一步,业务服务器对3个终端公钥片段以及服务公钥片段202g进行求和处理,得到全局公钥20i;将加密服务私钥片段以及全局公钥20i关联存储于秘钥管理组件20e对应的第二数据库,如图4所示例的数据库201e。进一步,业务服务器对全局公钥20i进行单向加密处理,得到全局公钥20i对应的区块链地址,也即服务私钥片段201g以及3个终端私钥片段分别对应的区块链地址。
请再参见图4,通过秘钥管理组件20e的秘钥生成接口20b,业务服务器将区块链地址以及全局公钥20i均同步至处于普通执行环境20a的对象组件。在对象组件中,业务服务器将区块链地址、全局公钥20i以及区块链地址创建请求中的秘钥标识20j关联存储于对象组件对应的第一数据库,如图4中所示例的数据库20k;秘钥标识20j用于唯一标识区块链地址以及全局公钥20i,图4以示例ZZZZZZ秘钥标识20j。
本申请可适用于任意分片数字资源应用,帮助业务对象安全保管私钥分片,提升私钥的安全性,进而可以保护业务对象的链上资产。
上述可知,业务服务器包括普通执行环境以及可信执行环境,且用于生成区块链地址的服务私钥片段是在可信执行环境中所生成的,且存储于可信执行环境,故可以提高服务私钥片段的安全性;此外,本申请实施例中的服务私钥片段为业务服务器独立拥有的私钥片段,同样地,终端私钥片段也为终端设备独立拥有的私钥片段,故业务服务器无法通过服务私钥片段,生成区块链地址对应的全局私钥,同样地,任意一个终端设备无法通过自己持有的终端私钥片段,生成区块链地址对应的全局私钥,因此,采用本申请,可以降低仅由一方保管全局私钥所造成的私钥泄露风险,故可以提高全局私钥的安全性。
进一步地,请参见图5,图5是本申请实施例提供的一种数据处理方法的流程示意图二。该方法可以由业务服务器(例如,上述图1所示的业务服务器100)执行,也可以由终端设备(例如,上述图1所示的终端设备100a)执行,还可以由业务服务器和终端设备交互执行。为便于理解,本申请实施例以该方法由业务服务器执行为例进行说明。如图5所示,该方法至少可以包括以下步骤S201-步骤S207。
步骤S201,通过处于普通执行环境的网关组件,获取第一终端设备发送的区块链地址创建请求;第一终端设备属于A个终端设备;A为大于1的正整数。
具体的,本申请实施例描述业务服务器如何帮助业务对象实现安全的私钥分片(即私钥片段)托管,在硬件层面,使用多云端部署/隔离的安全沙箱环境/密码机/TEE等方式,在软件层面,通过安全的MPC阈值签名算法&加密可靠通信&服务部署分层&减小服务攻击面等方式,在产品层面,通过在资源数字应用进行身份认证绑定&Know Your Customer(一种实名认证机制,简称KYC)等方式。
本申请实施例实现一种支持MPC阈值签名的秘钥管理服务,秘钥管理服务内嵌了MPC阈值签名算法、MPC的状态机管理、MPC的通信方法、秘钥分片的安全存储,整体保证MPC私钥分片的有效性和安全性。秘钥管理服务在隔离的网络安全域内,通过上层的对象服务(即对象组件)、交易服务(交易组件)和更上层的资源服务(即资源集成组件),最终提供对接客户端的接口。请一并参见图6,图6是本申请实施例提供的一种业务服务器的结构示意图。如图6所示,业务服务器包括网关组件(也称网关服务),网关服务负责登录态鉴权,是与外界交互的第一组件,即接收外界的数据或向外界发送数据均先经过网关服务。业务服务器中的资源集成服务(也称资源集成组件)用于业务逻辑检查以及对象权限管理。业务服务器中的对象服务(也称对象组件)用于业务对象注册、登录、支付密码管理、区块链地址列表管理。业务服务器中的交易服务(也称交易组件)用于管理交易状态,记录待签名交易的哈希值和状态,同步交易在链上的共识状态,即检测区块链地址在区块链上的交易,交易在链上共识成功后,及时更新交易表里的交易状态,业务对象可在数字资源应用中看到交易最新的上链状态,以及区块链地址的当前资产等。业务服务器中的链服务(也称链组件)用于管理区块链标识和属性。签名服务(也称签名组件)用于负责交易的签名。实名服务(也称实名组件)用于记录业务对象的实名信息。节点服务(也称节点组件)用于记录区块链上的区块链节点的节点标识以及节点状态。上述8个组件均处于普通执行环境。
业务服务器中的秘钥管理服务(也称秘钥管理组件)以及阈值签名服务(也称阈值签名组件)均处于可信执行环境。其中,在秘钥协商生成时,秘钥管理组件负责秘钥的访问控制、权限管理、消息路由等,阈值签名组件集成了MPC阈值签名算法和MPC状态机管理,阈值签名组件可以使用TEE的指令集扩展(Software Guard Extensions,简称SGX)的安全计算能力,MPC的计算逻辑在TEE内执行,执行过程不可见。在消息签名时,秘钥管理组件进行权限判断、协议判断、请求路由等,阈值签名组件负责签名过程的算法管理和状态管理,在TEE使用服务私钥分片执行消息签名,计算过程不可见。上述可知,服务私钥分片在TEE内生成以及保存,签名时,在TEE内执行签名。服务秘钥分片从始至终对操作系统、系统软件、操作人员、管理人员均不可见,实现秘钥分片的安全托管。
步骤S202,在网关组件中,对第一终端设备的登录状态进行验证,得到第一验证结果,根据第一验证结果,将区块链地址创建请求同步至处于普通执行环境的资源集成组件。
具体的,若第一验证结果指示第一终端设备处于异常登录状态,则通过网关组件,返回登录异常信息至第一终端设备;若第一验证结果指示第一终端设备处于正常登录状态,则通过网关组件,将区块链地址创建请求同步至处于普通执行环境的资源集成组件。
步骤S203,在资源集成组件中,对区块链地址创建请求进行验证,得到第二验证结果,根据第二验证结果,将区块链地址创建请求转发至第二终端设备;第二终端设备包括A个终端设备中除了第一终端设备之外的终端设备。
具体的,获取区块链地址创建请求中的区块链标识,获取第一终端设备所登陆的业务账号;区块链标识用于表征第一终端设备对应的设备对象所选择的区块链;若业务账号针对区块链不具有申请权限,则通过网关组件,返回申请异常信息至第一终端设备;申请异常信息用于指示第二验证结果为验证失败结果;若业务账号针对区块链具有申请权限,则获取区块链地址创建请求中的协商参数;协商参数包括参与区块链地址创建任务的秘钥生成设备的数量A+1;秘钥生成设备包括业务服务器;确定登录有业务账号的终端设备的设备数量,若设备数量小于A,则通过网关组件,返回登录提示信息至第一终端设备,以使设备对象在第二终端设备上登录业务账号;第二终端设备的数量为A-1;若在登录有效期内,第二终端设备登录业务账号,则将验证成功结果确定为第二验证结果。
具体的,若第二验证结果为验证失败结果,则通过网关组件,返回请求异常信息至第一终端设备;若第二验证结果为验证成功结果,则通过网关组件,将区块链地址创建请求转发至第二终端设备。
具体的,通过资源集成组件,将区块链地址创建请求同步至处于普通执行环境的对象组件;在对象组件中,获取区块链地址创建请求中的对象标识、区块链标识以及秘钥标识;对象标识用于表征A个终端设备分别登录的业务账号;区块链标识用于表征第一终端设备对应的设备对象所选择的区块链;将对象标识、区块链标识以及秘钥标识关联存储于对象组件对应的第一数据库。
步骤S204,若第二终端设备同意区块链地址创建请求,则确定A个终端设备均同意区块链地址创建请求。
步骤S205,根据区块链地址创建请求,调用秘钥管理组件的秘钥生成接口,通过秘钥生成接口,将区块链地址创建请求传递至阈值签名组件;秘钥管理组件以及阈值签名组件均处于可信执行环境。
步骤S206,在阈值签名组件中,根据区块链地址创建请求,与A个终端设备分别协商区块链地址创建任务,得到服务私钥片段;服务私钥片段用于与由A个终端设备分别生成的终端私钥片段,共同生成A个终端设备均共享的区块链地址。
步骤S207,对服务私钥片段进行加密处理,得到加密服务私钥片段;加密服务私钥片段以及区块链地址关联存储于秘钥管理组件。
其中,步骤S205-步骤S207的具体实现过程,请参见上文图2所对应的实施例中的步骤S102-步骤S104中的描述,此处不进行赘述。
上述可知,业务服务器包括普通执行环境以及可信执行环境,且用于生成区块链地址的服务私钥片段是在可信执行环境中所生成的,且存储于可信执行环境,故可以提高服务私钥片段的安全性;此外,本申请实施例中的服务私钥片段为业务服务器独立拥有的私钥片段,同样地,终端私钥片段也为终端设备独立拥有的私钥片段,故业务服务器无法通过服务私钥片段,生成区块链地址对应的全局私钥,同样地,任意一个终端设备无法通过自己持有的终端私钥片段,生成区块链地址对应的全局私钥,因此,采用本申请,可以降低仅由一方保管全局私钥所造成的私钥泄露风险,故可以提高全局私钥的安全性。
进一步地,请参见图7,图7是本申请实施例提供的一种数据处理方法的流程示意图三。该数据处理方法可以由业务服务器(例如,上述图1所示的业务服务器100)执行,也可以由终端设备(例如,上述图1所示的终端设备100a)执行,还可以由业务服务器和终端设备交互执行。为便于理解,本申请实施例以该方法由业务服务器执行为例进行说明。如图7所示,该数据处理方法至少可以包括以下步骤S301-步骤S308。
步骤S301,在普通执行环境中,获取A个终端设备均同意的区块链地址创建请求;A为大于1的正整数。
步骤S302,根据区块链地址创建请求,调用秘钥管理组件的秘钥生成接口,通过秘钥生成接口,将区块链地址创建请求传递至阈值签名组件;秘钥管理组件以及阈值签名组件均处于可信执行环境。
步骤S303,在阈值签名组件中,根据区块链地址创建请求,与A个终端设备分别协商区块链地址创建任务,得到服务私钥片段;服务私钥片段用于与由A个终端设备分别生成的终端私钥片段,共同生成A个终端设备均共享的区块链地址。
步骤S304,对服务私钥片段进行加密处理,得到加密服务私钥片段;加密服务私钥片段以及区块链地址关联存储于秘钥管理组件。
其中,步骤S301-步骤S304的具体实现过程,请参见上文图2所对应的实施例中的步骤S101-步骤S104中的描述,此处不进行赘述。
步骤S305,在普通执行环境中,获取第三终端设备发送的消息签名请求;第三终端设备属于A个终端设备。
具体的,本申请在产品侧可以提供一种n分片的MPC数字资源应用,数字资源应用以应用(Application,简称APP)/浏览器插件/分布式应用(Decentralized Application,简称DAPP)等方式提供,数字资源客户端与服务器端交互,业务对象可登录数字资源应用、进行身份认证、设置支付密码、绑定对象识别等操作,业务对象可在数字资源应用内生成一个或多个链上地址(即区块链地址),以及其对应的秘钥对,私钥以分片的形式保存在客户端和服务器端,服务器端帮助业务对象托管一个或多个私钥分片(若为3分片,则服务器端托管一个私钥分片)。
数字资源应用主要为业务对象提供生成链上地址和消息签名两个能力。区块链地址的生成过程请参见上文图2所对应的实施例中的描述。
其中,第三终端设备为A个终端设备中的任意一个终端设备,业务对象需要签名消息时,当需要签名的消息为资源交易时,先在数字资源应用中选择交易对应的区块链标识和资源转出地址,输入交易内容(包括资源转入地址、资源转移值、合约地址等),数字资源客户端和服务器端分别使用各自保存的私钥片段联合生成交易对应的签名,最后第三终端设备将交易和签名发送到区块链上以执行交易。
步骤S306,根据消息签名请求,调用秘钥生成接口,通过秘钥生成接口,将消息签名请求传递至秘钥管理组件。
具体的,获取消息签名请求中的秘钥标识,在处于普通执行环境的对象组件对应的第一数据库中,获取与秘钥标识关联存储的全局公钥;通过对象组件,将全局公钥传递至秘钥管理组件,在秘钥管理组件对应的第二数据库中,获取与全局公钥关联存储的加密服务私钥片段。
业务对象通过第三终端设备提交消息签名请求后,通过网关组件,业务服务器获取到消息签名请求,在网关组件中,对第三终端设备的登录态进行鉴权,然后资源集成组件对消息签名请求中的消息进行业务逻辑检查,业务逻辑无误后,通过资源集成组件,将消息签名请求同步至签名组件,签名组件调用秘钥管理组件的秘钥生成接口,通过秘钥生成接口,将消息签名请求转发到秘钥管理组件。
步骤S307,在秘钥管理组件中,对消息签名请求进行验证,得到第三验证结果,若第三验证结果为验证成功结果,则通过秘钥管理组件,将消息签名请求同步至阈值签名组件。
具体的,获取消息签名请求中的资源转出地址,若资源转出地址与区块链地址不同,则返回地址异常信息至第三终端设备;地址异常信息用于指示第三验证结果为验证失败结果;若资源转出地址与区块链地址相同,则获取消息签名请求中的签名协议,若签名协议具有合法性,则将验证成功结果确定为第三验证结果。
具体的,通过秘钥管理组件,将消息签名请求以及加密服务私钥片段均同步至阈值签名组件。
本申请为服务器端的服务私钥分片的安全托管提供了一个完善的解决方案,可以避免服务私钥分片的泄露、丢失、越权等非法访问,进一步提升MPC半托管数字资源应用的安全性和可用性。后台服务的层层鉴权和访问控制的限制,避免了服务私钥分片的越权访问,并利用TEE的可信计算能力,保证服务私钥分片不会泄露、被非法窃取等。
步骤S308,在阈值签名组件中,根据消息签名请求,获取服务私钥片段,通过服务私钥片段,与第三终端设备协商消息签名任务,得到签名结果。
具体的,根据消息签名请求,获取阈值签名组件的组件私钥,通过组件私钥,对加密服务私钥片段进行解密处理,得到服务私钥片段。
上述可知,本申请将MPC的阈值签名能力进行了安全封装,终端侧的请求经过多层鉴权和访问控制机制,才可转发到内部的秘钥管理组件,秘钥管理组件将MPC的协商和计算过程委托给MPC阈值签名组件,阈值管理组件使用TEE安全托管服务私钥分片,秘钥生成和签名的计算过程均在TEE内执行,外部(操作系统、软件、开发人员、管理人员)均无法窥探到服务私钥分片。
在本申请实施例中,签名业务消息时,任意2个参与方(即持有私钥片段的设备)参与签名的协商,可以理解的是,两个终端设备参与签名的协商的数据处理方式,与一个终端设备以及业务服务器参与签名的协商的数据处理方式相同。下面将描述业务服务器与第三终端设备协商消息签名任务的详细过程。
在本申请实施例中,第三终端设备作为发起消息签名方,业务服务器作为响应消息签名方。请一并参见图8,图8是本申请实施例提供的一种基于区块链的数据处理的场景示意图三。当获取到针对业务消息80b的签名指令时,第三终端设备80a可以生成用于同态加解密的非对称秘钥对,如图8中所示例的同态私钥801c以及同态公钥802c。进一步,第三终端设备80a获取椭圆曲线的基点G,生成随机数k1,对随机数k1以及椭圆曲线的基点G进行乘积运算,得到随机数R1,随机数k1不对外公开,将随机数R1对外公开,可以理解的是,业务服务器80f从随机数R1无法反推出随机数k1。第三终端设备80a获取第三终端设备80a的设备索引(如图8中的第一设备索引),以及业务服务器80f的设备索引(如图8中的第二设备索引)。
进一步,第三终端设备80a生成与第一设备索引以及第二设备索引相关联的第一拉格朗日插值系数,对第一拉格朗日插值系数以及自己持有的终端私钥片段801d进行乘积运算,得到第一待加密值801e;通过同态公钥802c,第三终端设备80a对第一待加密值801e进行加密处理,得到第一同态加密值802e。进一步,第三终端设备80a将随机数R1、第一同态加密值802e、同态公钥802c、椭圆曲线的基点G以及业务消息80b,发送至持有服务私钥片段802d的业务服务器80f。
在本申请实施例中,业务服务器80f是作为响应消息签名方的。业务服务器80f会获取到第三终端设备80a发送的随机数R1、第一同态加密值802e、同态公钥802c、椭圆曲线的基点G以及业务消息80b。与第三终端设备80a相同,业务服务器80f先生成随机数k2,对随机数k2以及椭圆曲线的基点G进行乘积运算,得到随机数R2,同样地,随机数k2不对外公开,将随机数R2对外公开,可以理解的是,第三终端设备80a从随机数R2无法反推出随机数k2。
进一步,业务服务器80f对随机数k2以及第三终端设备80a发送的随机数R1进行乘积运算,得到椭圆曲线点R,可以通过如下公式(1)表示该过程。
R=R1*k2=(k1*G)*k2=(Rx,Ry) (1)
其中,公式(1)中的随机数R1是随机数k1与基点G的乘积;Rx是椭圆曲线点R在椭圆曲线x轴的值,Ry是椭圆曲线点R在椭圆曲线y轴的值。
进一步,业务服务器80f将Rx确定为业务随机数r,对业务随机数r以及随机数k2的倒数进行乘积运算,得到随机数乘积值。与第三终端设备80a相同,业务服务器80f获取第三终端设备80a的第一设备索引,以及业务服务器80f的第二设备索引,生成与第一设备索引以及第二设备索引相关联的第一拉格朗日插值系数,对第一拉格朗日插值系数以及服务私钥片段802d进行乘积运算,得到第二待加密值。进一步,通过同态公钥802c,业务服务器80f对第二待加密值进行加密处理,得到第二同态加密值。
进一步,业务服务器80f对第三终端设备80a发送的业务消息80b进行哈希运算,得到业务消息80b对应的消息哈希。通过同态公钥802c,业务服务器80f对消息哈希进行加密处理,得到加密消息哈希。业务服务器80f对第二同态加密值、第一同态加密值802e、加密消息哈希以及随机数乘积值进行乘积运算,得到待取模乘积值。业务服务器80f获取基点G的阶n,对待取模乘积值以及基点G的阶n进行取模运算,将得到的余数确定为加密局部签名。
业务服务器80f将加密局部签名以及随机数R2发送至第三终端设备80a。第三终端设备80a对自己生成的随机数k1以及业务服务器80f发送的随机数R2进行乘积运算,得到椭圆曲线点R,可以通过如下公式(2)表示该过程。
R=R2*k1=(k2*G)*k1=(Rx,Ry) (2)
其中,公式(2)中的随机数R2是业务服务器80f生成的随机数k2与基点G的乘积,明显地,通过公式(2)与上文的公式(1),在不将自己所生成的数据(包括第三终端设备80a生成的随机数k1以及业务服务器80f生成的随机数k2)发送至对方的情况下,可以生成同一个数值,即椭圆曲线点R。故第三终端设备80a也可以获取业务随机数r,即椭圆曲线点R在椭圆曲线x轴的值Rx
第三终端设备80a通过同态私钥601c,对加密局部签名进行解密处理,得到局部签名,进一步,第三终端设备80a对自己生成的随机数k1的倒数以及局部签名进行乘积运算,得到业务消息80b的消息签名。第三终端设备80a将业务随机数r以及消息签名,确定为图8所示例的业务消息60b的签名结果。
需要强调的是,业务服务器与第三终端设备之间的数据(例如上文描述的消息签名请求)传输,是先传输到普通执行环境,然后通过秘钥管理组件的秘钥生成接口,传递至处于可信执行环境中的秘钥管理组件,通过秘钥管理组件,将需要进行安全操作的数据同步至阈值签名组件,在阈值签名组件中对数据进行安全操作。返回数据(例如上述的加密局部签名以及随机数R2)时,先将数据从阈值签名组件同步至秘钥管理组件,然后将数据通过秘钥生成接口从秘钥管理组件传递至普通执行环境,然后发送给第三终端设备。
上述可知,业务服务器包括普通执行环境以及可信执行环境,且用于生成区块链地址的服务私钥片段是在可信执行环境中所生成的,且存储于可信执行环境,故可以提高服务私钥片段的安全性;此外,本申请实施例中的服务私钥片段为业务服务器独立拥有的私钥片段,同样地,终端私钥片段也为终端设备独立拥有的私钥片段,故业务服务器无法通过服务私钥片段,生成区块链地址对应的全局私钥,同样地,任意一个终端设备无法通过自己持有的终端私钥片段,生成区块链地址对应的全局私钥,因此,采用本申请,可以降低仅由一方保管全局私钥所造成的私钥泄露风险,故可以提高全局私钥的安全性。
进一步地,请参见图9,图9是本申请实施例提供的一种基于区块链的数据处理装置的结构示意图。如图9所示,基于区块链的数据处理装置1可以运行于业务服务器。上述基于区块链的数据处理装置1可以是运行于计算机设备中的一个计算机程序(包括程序代码),例如该数据处理装置为一个应用软件;该数据处理装置可以用于执行本申请实施例提供的方法中的相应步骤。如图9所示,该基于区块链的数据处理装置1可以包括:第一获取模块11、第一调用模块12、第一协商模块13以及秘钥加密模块14。
第一获取模块11,用于在普通执行环境中,获取A个终端设备均同意的区块链地址创建请求;A为大于1的正整数;
第一调用模块12,用于根据区块链地址创建请求,调用秘钥管理组件的秘钥生成接口,通过秘钥生成接口,将区块链地址创建请求传递至阈值签名组件;秘钥管理组件以及阈值签名组件均处于可信执行环境;
第一协商模块13,用于在阈值签名组件中,根据区块链地址创建请求,与A个终端设备分别协商区块链地址创建任务,得到服务私钥片段;服务私钥片段用于与由A个终端设备分别生成的终端私钥片段,共同生成A个终端设备均共享的区块链地址;
秘钥加密模块14,用于对服务私钥片段进行加密处理,得到加密服务私钥片段;加密服务私钥片段以及区块链地址关联存储于秘钥管理组件。
其中,第一获取模块11、第一调用模块12、第一协商模块13以及秘钥加密模块14的具体功能实现方式,可以参见上述图2对应实施例中的步骤S101-步骤S104,这里不再进行赘述。
再请参见图9,第一获取模块11可以包括:第一获取单元111、第一验证单元112、第二验证单元113以及第一确定单元114。
第一获取单元111,用于通过处于普通执行环境的网关组件,获取第一终端设备发送的区块链地址创建请求;第一终端设备属于A个终端设备;
第一验证单元112,用于在网关组件中,对第一终端设备的登录状态进行验证,得到第一验证结果,根据第一验证结果,将区块链地址创建请求同步至处于普通执行环境的资源集成组件;
第二验证单元113,用于在资源集成组件中,对区块链地址创建请求进行验证,得到第二验证结果,根据第二验证结果,将区块链地址创建请求转发至第二终端设备;第二终端设备包括A个终端设备中除了第一终端设备之外的终端设备;
第一确定单元114,用于若第二终端设备同意区块链地址创建请求,则确定A个终端设备均同意区块链地址创建请求。
其中,第一获取单元111、第一验证单元112、第二验证单元113以及第一确定单元114的具体功能实现方式,可以参见上述图5对应实施例中的步骤S201-步骤S204,这里不再进行赘述。
再请参见图9,第一验证单元112可以包括:第一返回子单元1121以及请求同步子单元1122。
第一返回子单元1121,用于若第一验证结果指示第一终端设备处于异常登录状态,则通过网关组件,返回登录异常信息至第一终端设备;
请求同步子单元1122,用于若第一验证结果指示第一终端设备处于正常登录状态,则通过网关组件,将区块链地址创建请求同步至处于普通执行环境的资源集成组件。
其中,第一返回子单元1121以及请求同步子单元1122的具体功能实现方式,可以参见上述图5对应实施例中的步骤S202,这里不再进行赘述。
再请参见图9,第二验证单元113可以包括:第一获取子单元1131、第二返回子单元1132、第二获取子单元1133、第一确定子单元1134以及第二确定子单元1135。
第一获取子单元1131,用于获取区块链地址创建请求中的区块链标识,获取第一终端设备所登陆的业务账号;区块链标识用于表征第一终端设备对应的设备对象所选择的区块链;
第二返回子单元1132,用于若业务账号针对区块链不具有申请权限,则通过网关组件,返回申请异常信息至第一终端设备;申请异常信息用于指示第二验证结果为验证失败结果;
第二获取子单元1133,用于若业务账号针对区块链具有申请权限,则获取区块链地址创建请求中的协商参数;协商参数包括参与区块链地址创建任务的秘钥生成设备的数量A+1;秘钥生成设备包括业务服务器;
第一确定子单元1134,用于确定登录有业务账号的终端设备的设备数量,若设备数量小于A,则通过网关组件,返回登录提示信息至第一终端设备,以使设备对象在第二终端设备上登录业务账号;第二终端设备的数量为A-1;
第二确定子单元1135,用于若在登录有效期内,第二终端设备登录业务账号,则将验证成功结果确定为第二验证结果。
其中,第一获取子单元1131、第二返回子单元1132、第二获取子单元1133、第一确定子单元1134以及第二确定子单元1135的具体功能实现方式,可以参见上述图5对应实施例中的步骤S203,这里不再进行赘述。
再请参见图9,第二验证单元113可以包括:第三返回子单元1136以及请求转发子单元1137。
第三返回子单元1136,用于若第二验证结果为验证失败结果,则通过网关组件,返回请求异常信息至第一终端设备;
请求转发子单元1137,用于若第二验证结果为验证成功结果,则通过网关组件,将区块链地址创建请求转发至第二终端设备。
其中,第三返回子单元1136以及请求转发子单元1137的具体功能实现方式,可以参见上述图5对应实施例中的步骤S203,这里不再进行赘述。
再请参见图9,第一获取模块11还可以包括:第一同步单元115、第二获取单元116以及第一存储单元117。
第一同步单元115,用于通过资源集成组件,将区块链地址创建请求同步至处于普通执行环境的对象组件;
第二获取单元116,用于在对象组件中,获取区块链地址创建请求中的对象标识、区块链标识以及秘钥标识;对象标识用于表征A个终端设备分别登录的业务账号;区块链标识用于表征第一终端设备对应的设备对象所选择的区块链;
第一存储单元117,用于将对象标识、区块链标识以及秘钥标识关联存储于对象组件对应的第一数据库。
其中,第一同步单元115、第二获取单元116以及第一存储单元117的具体功能实现方式,可以参见上述图5对应实施例中的步骤S204,这里不再进行赘述。
再请参见图9,第一调用模块12可以包括:请求传递单元121以及第二同步单元122。
请求传递单元121,用于通过秘钥生成接口,将区块链地址创建请求传递至秘钥管理组件;
第二同步单元122,用于通过秘钥管理组件,将区块链地址创建请求同步至阈值签名组件。
其中,请求传递单元121以及第二同步单元122的具体功能实现方式,可以参见上述图2对应实施例中的步骤S102,这里不再进行赘述。
再请参见图9,私钥加密模块14可以包括:第三获取单元141、私钥加密单元142、第四获取单元143、第二存储单元144、第三同步单元145以及第三存储单元146。
第三获取单元141,用于生成服务私钥片段对应的服务公钥片段,获取阈值签名组件的组件公钥;
私钥加密单元142,用于通过组件公钥对服务私钥片段进行加密处理,得到加密服务私钥片段,通过阈值签名组件,将服务公钥片段以及加密服务私钥片段均同步至秘钥管理组件;
第四获取单元143,用于在秘钥管理组件中,获取A个终端设备分别生成的终端公钥片段,对A个终端公钥片段以及服务公钥片段进行求和处理,得到全局公钥;
第二存储单元144,用于将加密服务私钥片段以及全局公钥关联存储于秘钥管理组件对应的第二数据库;
第三同步单元145,用于生成全局公钥对应的区块链地址,通过秘钥管理组件,将区块链地址以及全局公钥均同步至处于普通执行环境的对象组件;
第三存储单元146,用于在对象组件中,将区块链地址、全局公钥以及区块链地址创建请求中的秘钥标识关联存储于对象组件对应的第一数据库;秘钥标识用于唯一标识区块链地址以及全局公钥。
其中,第三获取单元141、私钥加密单元142、第四获取单元143、第二存储单元144、第三同步单元145以及第三存储单元146的具体功能实现方式,可以参见上述图2对应实施例中的步骤S104,这里不再进行赘述。
再请参见图9,基于区块链的数据处理装置1还可以包括:第二获取模块15、第二调用模块16、请求同步模块17以及第二协商模块18。
第二获取模块15,用于在普通执行环境中,获取第三终端设备发送的消息签名请求;第三终端设备属于A个终端设备;
第二调用模块16,用于根据消息签名请求,调用秘钥生成接口,通过秘钥生成接口,将消息签名请求传递至秘钥管理组件;
请求同步模块17,用于在秘钥管理组件中,对消息签名请求进行验证,得到第三验证结果,若第三验证结果为验证成功结果,则通过秘钥管理组件,将消息签名请求同步至阈值签名组件;
第二协商模块18,用于在阈值签名组件中,根据消息签名请求,获取服务私钥片段,通过服务私钥片段,与第三终端设备协商消息签名任务,得到签名结果。
其中,第二获取模块15、第二调用模块16、请求同步模块17以及第二协商模块18的具体功能实现方式,可以参见上述图7对应实施例中的步骤S305-步骤S308,这里不再进行赘述。
再请参见图9,请求同步模块17可以包括:第五获取单元171以及第二确定单元172。
第五获取单元171,用于获取消息签名请求中的资源转出地址,若资源转出地址与区块链地址不同,则返回地址异常信息至第三终端设备;地址异常信息用于指示第三验证结果为验证失败结果;
第二确定单元172,用于若资源转出地址与区块链地址相同,则获取消息签名请求中的签名协议,若签名协议具有合法性,则将验证成功结果确定为第三验证结果。
其中,第五获取单元171以及第二确定单元172的具体功能实现方式,可以参见上述图7对应实施例中的步骤S307,这里不再进行赘述。
再请参见图9,基于区块链的数据处理装置1还可以包括:第三获取模块19以及第四获取模块20。
第三获取模块19,用于获取消息签名请求中的秘钥标识,在处于普通执行环境的对象组件对应的第一数据库中,获取与秘钥标识关联存储的全局公钥;
第四获取模块20,用于通过对象组件,将全局公钥传递至秘钥管理组件,在秘钥管理组件对应的第二数据库中,获取与全局公钥关联存储的加密服务私钥片段;
则请求同步模块17,具体用于通过秘钥管理组件,将消息签名请求以及加密服务私钥片段均同步至阈值签名组件;
则第二协商模块18,具体用于根据消息签名请求,获取阈值签名组件的组件私钥,通过组件私钥,对加密服务私钥片段进行解密处理,得到服务私钥片段。
其中,请求同步模块17、第二协商模块18、第三获取模块19以及第四获取模块20的具体功能实现方式,可以参见上述图7对应实施例中的步骤S306-步骤S308,这里不再进行赘述。
上述可知,业务服务器包括普通执行环境以及可信执行环境,且用于生成区块链地址的服务私钥片段是在可信执行环境中所生成的,且存储于可信执行环境,故可以提高服务私钥片段的安全性;此外,本申请实施例中的服务私钥片段为业务服务器独立拥有的私钥片段,同样地,终端私钥片段也为终端设备独立拥有的私钥片段,故业务服务器无法通过服务私钥片段,生成区块链地址对应的全局私钥,同样地,任意一个终端设备无法通过自己持有的终端私钥片段,生成区块链地址对应的全局私钥,因此,采用本申请,可以降低仅由一方保管全局私钥所造成的私钥泄露风险,故可以提高全局私钥的安全性。
进一步地,请参见图10,图10是本申请实施例提供的一种计算机设备的结构示意图。如图10所示,该计算机设备1000可以包括:至少一个处理器1001,例如CPU,至少一个网络接口1004,用户接口1003,存储器1005,至少一个通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。其中,在一些实施例中,用户接口1003可以包括显示屏(Display)、键盘(Keyboard),网络接口1004可选地可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器1005可选地还可以是至少一个位于远离前述处理器1001的存储装置。如图10所示,作为一种计算机存储介质的存储器1005可以包括操作系统、网络通信模块、用户接口模块以及设备控制应用程序。
在图10所示的计算机设备1000中,网络接口1004可提供网络通讯功能;而用户接口1003主要用于为用户提供输入的接口;而处理器1001可以用于调用存储器1005中存储的设备控制应用程序,以实现:
在普通执行环境中,获取A个终端设备均同意的区块链地址创建请求;A为大于1的正整数;
根据区块链地址创建请求,调用秘钥管理组件的秘钥生成接口,通过秘钥生成接口,将区块链地址创建请求传递至阈值签名组件;秘钥管理组件以及阈值签名组件均处于可信执行环境;
在阈值签名组件中,根据区块链地址创建请求,与A个终端设备分别协商区块链地址创建任务,得到服务私钥片段;服务私钥片段用于与由A个终端设备分别生成的终端私钥片段,共同生成A个终端设备均共享的区块链地址;
对服务私钥片段进行加密处理,得到加密服务私钥片段;加密服务私钥片段以及区块链地址关联存储于秘钥管理组件。
应当理解,本申请实施例中所描述的计算机设备1000可执行前文各实施例中对数据处理方法或装置的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行时实现前文各实施例中对数据处理方法或装置的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
上述计算机可读存储介质可以是前述任一实施例提供的数据处理装置或者上述计算机设备的内部存储单元,例如计算机设备的硬盘或内存。该计算机可读存储介质也可以是该计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘,智能存储卡(smart media card,SMC),安全数字(secure digital,SD)卡,闪存卡(flash card)等。进一步地,该计算机可读存储介质还可以既包括该计算机设备的内部存储单元也包括外部存储设备。该计算机可读存储介质用于存储该计算机程序以及该计算机设备所需的其他程序和数据。该计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。
本申请实施例还提供了一种计算机程序产品,该计算机程序产品包括计算机程序,该计算机程序存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机程序,处理器执行该计算机程序,使得该计算机设备可执行前文各实施例中对数据处理方法或装置的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
本申请实施例的说明书和权利要求书及附图中的术语“第一”、“第二”等是用于区别不同对象,而非用于描述特定顺序。此外,术语“包括”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、装置、产品或设备没有限定于已列出的步骤或模块,而是可选地还包括没有列出的步骤或模块,或可选地还包括对于这些过程、方法、装置、产品或设备固有的其他步骤单元。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。

Claims (15)

1.一种基于区块链的数据处理方法,其特征在于,所述方法由业务服务器执行,所述方法包括:
在普通执行环境中,获取A个终端设备均同意的区块链地址创建请求;A为大于1的正整数;
根据所述区块链地址创建请求,调用秘钥管理组件的秘钥生成接口,通过所述秘钥生成接口,将所述区块链地址创建请求传递至阈值签名组件;所述秘钥管理组件以及所述阈值签名组件均处于可信执行环境;
在所述阈值签名组件中,根据所述区块链地址创建请求,与所述A个终端设备分别协商区块链地址创建任务,得到服务私钥片段;所述服务私钥片段用于与由A个终端设备分别生成的终端私钥片段,共同生成所述A个终端设备均共享的区块链地址;
对所述服务私钥片段进行加密处理,得到加密服务私钥片段;所述加密服务私钥片段以及所述区块链地址关联存储于所述秘钥管理组件。
2.根据权利要求1所述的方法,其特征在于,所述在普通执行环境中,获取A个终端设备均同意的区块链地址创建请求,包括:
通过处于普通执行环境的网关组件,获取第一终端设备发送的区块链地址创建请求;所述第一终端设备属于所述A个终端设备;
在所述网关组件中,对所述第一终端设备的登录状态进行验证,得到第一验证结果,根据所述第一验证结果,将所述区块链地址创建请求同步至处于所述普通执行环境的资源集成组件;
在所述资源集成组件中,对所述区块链地址创建请求进行验证,得到第二验证结果,根据所述第二验证结果,将所述区块链地址创建请求转发至第二终端设备;所述第二终端设备包括所述A个终端设备中除了所述第一终端设备之外的终端设备;
若所述第二终端设备同意所述区块链地址创建请求,则确定所述A个终端设备均同意所述区块链地址创建请求。
3.根据权利要求2所述的方法,其特征在于,所述根据所述第一验证结果,将所述区块链地址创建请求同步至处于所述普通执行环境的资源集成组件,包括:
若所述第一验证结果指示所述第一终端设备处于异常登录状态,则通过所述网关组件,返回登录异常信息至所述第一终端设备;
若所述第一验证结果指示所述第一终端设备处于正常登录状态,则通过所述网关组件,将所述区块链地址创建请求同步至处于所述普通执行环境的资源集成组件。
4.根据权利要求2所述的方法,其特征在于,所述对所述区块链地址创建请求进行验证,得到第二验证结果,包括:
获取所述区块链地址创建请求中的区块链标识,获取所述第一终端设备所登陆的业务账号;所述区块链标识用于表征所述第一终端设备对应的设备对象所选择的区块链;
若所述业务账号针对所述区块链不具有申请权限,则通过所述网关组件,返回申请异常信息至所述第一终端设备;所述申请异常信息用于指示第二验证结果为验证失败结果;
若所述业务账号针对所述区块链具有申请权限,则获取所述区块链地址创建请求中的协商参数;所述协商参数包括参与所述区块链地址创建任务的秘钥生成设备的数量A+1;所述秘钥生成设备包括所述业务服务器;
确定登录有所述业务账号的终端设备的设备数量,若所述设备数量小于A,则通过所述网关组件,返回登录提示信息至所述第一终端设备,以使所述设备对象在所述第二终端设备上登录所述业务账号;所述第二终端设备的数量为A-1;
若在登录有效期内,所述第二终端设备登录所述业务账号,则将验证成功结果确定为所述第二验证结果。
5.根据权利要求2所述的方法,其特征在于,所述根据所述第二验证结果,将所述区块链地址创建请求转发至第二终端设备,包括:
若所述第二验证结果为验证失败结果,则通过所述网关组件,返回请求异常信息至所述第一终端设备;
若所述第二验证结果为验证成功结果,则通过所述网关组件,将所述区块链地址创建请求转发至第二终端设备。
6.根据权利要求2所述的方法,其特征在于,还包括:
通过所述资源集成组件,将所述区块链地址创建请求同步至处于所述普通执行环境的对象组件;
在所述对象组件中,获取所述区块链地址创建请求中的对象标识、区块链标识以及秘钥标识;所述对象标识用于表征所述A个终端设备分别登录的业务账号;所述区块链标识用于表征所述第一终端设备对应的设备对象所选择的区块链;
将所述对象标识、所述区块链标识以及所述秘钥标识关联存储于所述对象组件对应的第一数据库。
7.根据权利要求1所述的方法,其特征在于,所述通过所述秘钥生成接口,将所述区块链地址创建请求传递至阈值签名组件,包括:
通过所述秘钥生成接口,将所述区块链地址创建请求传递至所述秘钥管理组件;
通过所述秘钥管理组件,将所述区块链地址创建请求同步至所述阈值签名组件。
8.根据权利要求1所述的方法,其特征在于,所述对所述服务私钥片段进行加密处理,得到加密服务私钥片段,包括:
生成所述服务私钥片段对应的服务公钥片段,获取所述阈值签名组件的组件公钥;
通过所述组件公钥对所述服务私钥片段进行加密处理,得到加密服务私钥片段,通过所述阈值签名组件,将所述服务公钥片段以及所述加密服务私钥片段均同步至所述秘钥管理组件;
在所述秘钥管理组件中,获取所述A个终端设备分别生成的终端公钥片段,对A个终端公钥片段以及所述服务公钥片段进行求和处理,得到全局公钥;
将所述加密服务私钥片段以及所述全局公钥关联存储于所述秘钥管理组件对应的第二数据库;
生成所述全局公钥对应的区块链地址,通过所述秘钥管理组件,将所述区块链地址以及所述全局公钥均同步至处于所述普通执行环境的对象组件;
在所述对象组件中,将所述区块链地址、所述全局公钥以及所述区块链地址创建请求中的秘钥标识关联存储于所述对象组件对应的第一数据库;所述秘钥标识用于唯一标识所述区块链地址以及所述全局公钥。
9.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述普通执行环境中,获取第三终端设备发送的消息签名请求;所述第三终端设备属于所述A个终端设备;
根据所述消息签名请求,调用所述秘钥生成接口,通过所述秘钥生成接口,将所述消息签名请求传递至所述秘钥管理组件;
在所述秘钥管理组件中,对所述消息签名请求进行验证,得到第三验证结果,若所述第三验证结果为验证成功结果,则通过所述秘钥管理组件,将所述消息签名请求同步至所述阈值签名组件;
在所述阈值签名组件中,根据所述消息签名请求,获取所述服务私钥片段,通过所述服务私钥片段,与所述第三终端设备协商消息签名任务,得到签名结果。
10.根据权利要求9所述的方法,其特征在于,所述对所述消息签名请求进行验证,得到第三验证结果,包括:
获取所述消息签名请求中的资源转出地址,若所述资源转出地址与所述区块链地址不同,则返回地址异常信息至所述第三终端设备;所述地址异常信息用于指示所述第三验证结果为验证失败结果;
若所述资源转出地址与所述区块链地址相同,则获取所述消息签名请求中的签名协议,若所述签名协议具有合法性,则将验证成功结果确定为所述第三验证结果。
11.根据权利要求9所述的方法,其特征在于,所述方法还包括:
获取所述消息签名请求中的秘钥标识,在处于所述普通执行环境的对象组件对应的第一数据库中,获取与所述秘钥标识关联存储的全局公钥;
通过所述对象组件,将所述全局公钥传递至所述秘钥管理组件,在所述秘钥管理组件对应的第二数据库中,获取与所述全局公钥关联存储的加密服务私钥片段;
则所述通过所述秘钥管理组件,将所述消息签名请求同步至所述阈值签名组件,包括:
通过所述秘钥管理组件,将所述消息签名请求以及所述加密服务私钥片段均同步至所述阈值签名组件;
则所述根据所述消息签名请求,获取所述服务私钥片段,包括:
根据所述消息签名请求,获取所述阈值签名组件的组件私钥,通过所述组件私钥,对所述加密服务私钥片段进行解密处理,得到所述服务私钥片段。
12.一种基于区块链的数据处理装置,其特征在于,所述装置运行于业务服务器,所述装置包括:
第一获取模块,用于在普通执行环境中,获取A个终端设备均同意的区块链地址创建请求;A为大于1的正整数;
第一调用模块,用于根据所述区块链地址创建请求,调用秘钥管理组件的秘钥生成接口,通过所述秘钥生成接口,将所述区块链地址创建请求传递至阈值签名组件;所述秘钥管理组件以及所述阈值签名组件均处于可信执行环境;
第一协商模块,用于在所述阈值签名组件中,根据所述区块链地址创建请求,与所述A个终端设备分别协商区块链地址创建任务,得到服务私钥片段;所述服务私钥片段用于与由A个终端设备分别生成的终端私钥片段,共同生成所述A个终端设备均共享的区块链地址;
秘钥加密模块,用于对所述服务私钥片段进行加密处理,得到加密服务私钥片段;所述加密服务私钥片段以及所述区块链地址关联存储于所述秘钥管理组件。
13.一种计算机设备,其特征在于,包括:处理器、存储器以及网络接口;
所述处理器与所述存储器、所述网络接口相连,其中,所述网络接口用于提供数据通信功能,所述存储器用于存储计算机程序,所述处理器用于调用所述计算机程序,以使得所述计算机设备执行权利要求1至11任一项所述的方法。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,所述计算机程序适于由处理器加载并执行,以使得具有所述处理器的计算机设备执行权利要求1-11任一项所述的方法。
15.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机程序,所述计算机程序存储在计算机可读存储介质中,所述计算机程序适于由处理器读取并执行,以使得具有所述处理器的计算机设备执行权利要求1-11任一项所述的方法。
CN202310719045.3A 2023-06-16 2023-06-16 一种基于区块链的数据处理方法、设备以及可读存储介质 Pending CN117220898A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310719045.3A CN117220898A (zh) 2023-06-16 2023-06-16 一种基于区块链的数据处理方法、设备以及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310719045.3A CN117220898A (zh) 2023-06-16 2023-06-16 一种基于区块链的数据处理方法、设备以及可读存储介质

Publications (1)

Publication Number Publication Date
CN117220898A true CN117220898A (zh) 2023-12-12

Family

ID=89035883

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310719045.3A Pending CN117220898A (zh) 2023-06-16 2023-06-16 一种基于区块链的数据处理方法、设备以及可读存储介质

Country Status (1)

Country Link
CN (1) CN117220898A (zh)

Similar Documents

Publication Publication Date Title
US10917246B2 (en) System and method for blockchain-based cross-entity authentication
US10756885B2 (en) System and method for blockchain-based cross entity authentication
US10824701B2 (en) System and method for mapping decentralized identifiers to real-world entities
EP3788522B1 (en) System and method for mapping decentralized identifiers to real-world entities
US20150381580A1 (en) System and method to use a cloud-based platform supported by an api to authenticate remote users and to provide pki- and pmi- based distributed locking of content and distributed unlocking of protected content
US9100171B1 (en) Computer-implemented forum for enabling secure exchange of information
US20040255137A1 (en) Defending the name space
Panda et al. A blockchain based decentralized authentication framework for resource constrained iot devices
Karbasi et al. A post-quantum end-to-end encryption over smart contract-based blockchain for defeating man-in-the-middle and interception attacks
US11792186B2 (en) Secure peer-to-peer based communication sessions via network operating system in secure data network
Chang et al. A practical secure and efficient enterprise digital rights management mechanism suitable for mobile environment
Kim et al. Can we create a cross-domain federated identity for the industrial Internet of Things without Google?
JP2020092287A (ja) 通信装置、通信方法、および通信プログラム
CN117220898A (zh) 一种基于区块链的数据处理方法、设备以及可读存储介质
CN113328860A (zh) 一种基于区块链的用户隐私数据安全提供方法
Singh et al. Security issues occur in Cloud Computing and there Solutions
CN114005190B (zh) 用于课堂考勤系统的人脸识别方法
CN117195310B (zh) 基于隐私计算的异构平台、方法、设备以及存储介质
CN117220881A (zh) 一种基于区块链的数据处理方法、设备以及可读存储介质
CN117235789A (zh) 一种基于tee的隐私计算方法和系统
CN117220849A (zh) 一种基于区块链的数据处理方法、设备以及可读存储介质
Rahman Resource Sharing using Permissioned Blockchain: The Case of Smart Neighborhood
CN117454402A (zh) 一种基于多重授权可编辑区块链的数据共享系统与方法
CN117714171A (zh) 一种用于视联网的域内通信方法、装置、设备及介质
CN115829560A (zh) 数字藏品鉴权方法、装置、计算机设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication