一种账户数据处理方法、装置、设备及存储介质与流程

文档序号:21698989发布日期:2020-07-31 22:56阅读:197来源:国知局
一种账户数据处理方法、装置、设备及存储介质与流程

本申请涉及区块链技术领域,尤其涉及一种账户数据处理方法、装置、设备及存储介质。



背景技术:

目前,在区块链系统中进行资产转移时,会采用存储在用户终端中的真实账户进行资产转移,比如,在区块链中的用户终端a与用户终端b进行资产转移时,用户终端a可以根据自己的真实账户信息(例如,交易账户1)向用户终端b的真实账户信息(例如,交易账户2)发送某类资产信息(例如,电子票据xx等),即当用户终端a与用户终端b在完成资产交易之后,会在链上直接公开包含真实账户信息的交易记录,进而存在将用户的真实账户信息直接暴露在区块链上的风险,进而降低了用户账户信息的安全性。

申请内容

本申请实施例提供一种账户数据处理方法、装置、设备及存储介质,可以确保用户的真实账户信息的安全性。

本申请实施例一方面提供一种账户数据处理方法,该方法由部署有可信执行环境的中心节点执行,包括:

获取第一用户终端所发送的业务处理请求;业务处理请求携带第一用户终端对应的第一用户的用户公钥;用户公钥用于指示中心节点生成第一用户的第一原始账户;

在确定业务处理请求为合法请求时,基于用户公钥生成第一用户的第一原始账户,将第一原始账户写入可信执行环境;

调用可信执行环境中的可信应用程序,生成第一原始账户对应的密钥对;密钥对中包含k个子密钥对;k为正整数;k个子密钥对中的每个子密钥对均包含为第一原始账户所配置的子公钥;

基于k个子密钥对中的子公钥生成与第一原始账户相关联的k个匿名账户,建立第一原始账户与k个匿名账户之间的映射哈希值;

在将每个匿名账户和每个匿名账户对应的映射哈希值写入中心节点所属的区块链时,将每个匿名账户返回给第一用户终端,以使第一用户终端基于每个匿名账户执行目标业务。

本申请实施例一方面提供一种账户数据处理方法,该方法由第一用户终端执行,包括:

向部署有可信执行环境的中心节点发送业务处理请求;业务处理请求携带第一用户终端对应的第一用户的用户公钥;用户公钥用于指示中心节点生成第一用户的第一原始账户;

接收中心节点所返回的k个匿名账户;k为正整数;k个匿名账户是由中心节点基于第一原始账户对应的k个子密钥对中的子公钥所生成的;k个子密钥对是由中心节点调用可信执行环境中的可信应用程序所生成的。

本申请实施例一方面提供一种账户数据处理装置,该装置运行于部署有可信执行环境的中心节点,包括:

获取模块,用于获取第一用户终端所发送的业务处理请求;业务处理请求携带第一用户终端对应的第一用户的用户公钥;用户公钥用于指示中心节点生成第一用户的第一原始账户;

生成模块,用于在确定业务处理请求为合法请求时,基于用户公钥生成第一用户的第一原始账户,将第一原始账户写入可信执行环境;

调用模块,用于调用可信执行环境中的可信应用程序,生成第一原始账户对应的密钥对;密钥对中包含k个子密钥对;k为正整数;k个子密钥对中的每个子密钥对均包含为第一原始账户所配置的子公钥;

建立模块,用于基于k个子密钥对中的子公钥生成与第一原始账户相关联的k个匿名账户,建立第一原始账户与k个匿名账户之间的映射哈希值;

返回模块,用于在将每个匿名账户和每个匿名账户对应的映射哈希值写入中心节点所属的区块链时,将每个匿名账户返回给第一用户终端,以使第一用户终端基于每个匿名账户执行目标业务。

其中,业务处理请求中包含与第一用户终端相关联的注册业务数据信息和用户签名信息;用户签名信息为第一用户终端通过第一用户的用户私钥对注册业务数据信息进行签名后所得到的;

该装置还包括:

验签模块,用于基于用户公钥对用户签名信息进行验签,得到验签结果;

第一确定模块,用于在验签结果指示验证成功时,确定第一用户为合法用户,且将第一用户所发起的业务处理请求确定为合法请求;

第二确定模块,用于在验签结果指示验证失败时,确定第一用户为非法用户,且将第一用户所发起的业务处理请求确定为非法请求。

其中,该生成模块包括:

第一哈希计算单元,用于在确定业务处理请求为合法请求时,通过第一哈希规则和第二哈希规则对用户公钥进行哈希计算,得到用户公钥对应的公钥哈希值;

第二哈希计算单元,用于将一个字节的地址版本号作为公钥哈希值的头部,得到第一拼接字符串,对第一拼接字符串进行哈希计算,得到第一拼接字符串对应的待处理哈希值,从待处理哈希值中获取公钥哈希值的校验值;

编码单元,用于将校验值作为第一拼接字符串的尾部,得到第二拼接字符串,对第二拼接字符串进行编码处理,将编码处理后所得到的编码字符串作为第一用户的第一原始账户,将第一原始账户写入可信执行环境。

其中,该调用模块包括:

调用单元,用于调用可信执行环境中的可信应用程序,获取可信应用程序中的私钥生成规则,根据私钥生成规则生成与第一原始账户相关联的k个子私钥;

生成单元,用于通过可信应用程序中的哈希加密规则,生成与k个子私钥分别对应的子公钥;一个子私钥对应一个子公钥,且一个子私钥与一个子公钥用于构建一个子密钥对;

第一确定单元,用于根据k个子私钥以及k个子私钥分别对应的子公钥,确定第一原始账户对应的k个子密钥对,将k个子密钥对作为第一原始账户对应的密钥对。

其中,该建立模块包括:

第一获取单元,用于从k个子密钥对中获取子密钥对mi;i为小于或者等于k的正整数;子密钥对mi中包含子公钥yi和子私钥xi;子公钥yi是由子私钥xi经过可信应用程序中的哈希加密规则所得到的;子私钥xi是由可信应用程序中的私钥生成规则所得到的;

第二确定单元,用于对子密钥对mi中的子公钥yi进行哈希计算,得到子公钥yi对应的子公钥哈希值,获取与子公钥哈希值相关联的地址字符串和校验字符串,基于地址字符串,子公钥哈希值以及校验字符串,确定子密钥对mi对应的匿名账户;

加密单元,用于在得到k个子密钥对中的每个子密钥对的匿名账户时,在可信执行环境中,通过与可信执行环境相关联的可信密钥对中的可信公钥,对所述第一原始账户进行加密处理,得到加密处理后的账户加密信息;

建立单元,用于建立账户加密信息和k个匿名账户之间的哈希映射关系表,根据哈希映射关系表中的k个哈希映射关系,确定第一原始账户与k个匿名账户之间的映射哈希值;一个哈希映射关系用于确定一个映射哈希值。

其中,该装置还包括:

打包处理模块,用于将k个匿名账户中的每个匿名账户以及每个匿名账户对应的映射哈希值进行打包处理,得到待写入中心节点所属的区块链的待验证区块;

广播模块,用于将待验证区块广播至区块链上的共识节点,以使共识节点对获取到的待验证区块进行共识,得到共识结果;共识节点和中心节点均为区块链上的区块链节点;

写入模块,用于若在共识节点所返回的共识结果中存在超过1/2的共识结果指示共识成功,则确定区块链上的区块链节点达成共识,将待验证区块作为目标区块写入区块链。

其中,k个匿名账户中包含第一匿名账户,第一匿名账户用于指示第一用户终端执行向第二匿名账户对应的第二用户终端进行资产转移的目标业务;

该装置还包括:

请求接收模块,用于接收第一用户终端基于第一匿名账户所发送的资产转移请求;资产转移请求中携带目标业务对应的资产信息、资产信息对应的资产签名信息以及与第一匿名账户相关联的目标映射哈希值;资产签名信息是由第一用户终端通过第一匿名账户的子私钥对资产信息进行签名后所得到的;

查找模块,用于在通过第一匿名账户的子私钥对应的子公钥对资产签名信息进行成功验签后,在哈希映射关系表中查找与目标映射哈希值和第一匿名账户相关联的目标哈希映射关系,基于目标哈希映射关系确定第一原始账户对应的账户加密信息;目标哈希映射关系为哈希映射关系表中的一个哈希映射关系;

解密模块,用于基于可信密钥对中的可信私钥,对账户加密信息进行解密处理,得到第一用户终端对应的第一原始账户;

转移模块,用于从第一原始账户中获取资产信息,将资产信息通过第一匿名账户转移至第二用户终端,以使第二用户终端通过中心节点将资产信息存储至与第二匿名账户相关联的第二原始账户。

其中,资产信息包含用于进行资产转移的资产量;

该转移模块包括:

第二获取单元,用于在检测到第一原始账户中存在目标业务对应的资产信息时,从第一原始账户中获取资产信息中的资产量,将资产量写入第一匿名账户;

锁定单元,用于根据第二匿名账户的匿名子公钥对资产量进行锁定,将锁定后的资产量通过第一匿名账户发送至第二匿名账户,以使第二匿名账户对应的第二用户终端基于匿名子公钥对应的匿名子私钥解锁得到资产量。

其中,该转移模块还包括:

写入单元,用于根据第二匿名账户和第二匿名账户对应的第二原始账户之间的关联关系,将资产量写入到可信执行环境中的第二用户对应的第二原始账户;第二用户为第二用户终端的用户;第二原始账户为可信执行环境的用户集中所存在的第二用户的原始账户;关联关系是由第二匿名账户和第二原始账户的加密数据信息之间的映射哈希值所确定的。

本申请一方面提供了一种计算机设备,包括:处理器、存储器、网络接口;

该处理器与存储器、网络接口相连,其中,网络接口用于提供数据通信功能,该存储器用于存储计算机程序,该处理器用于调用该计算机程序,以执行本申请实施例中上述一方面中的方法。

本申请一方面提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序包括程序指令,该程序指令当被处理器执行时,执行本申请实施例中上述一方面中的方法。

本申请实施例一方面提供一种账户数据处理装置,该装置运行于第一用户终端,包括:

发送模块,用于向部署有可信执行环境的中心节点发送业务处理请求;业务处理请求携带第一用户终端对应的第一用户的用户公钥;用户公钥用于指示中心节点生成第一用户的第一原始账户;

接收模块,用于接收中心节点所返回的k个匿名账户;k为正整数;k个匿名账户是由中心节点基于第一原始账户对应的k个子密钥对中的子公钥所生成的;k个子密钥对是由中心节点调用可信执行环境中的可信应用程序所生成的。

其中,发送模块包括:

签名单元,用于基于第一用户终端对应的第一用户的用户私钥,对与第一用户终端相关联的注册业务数据信息进行签名,得到用户签名信息;

请求生成单元,用于基于用户签名信息、注册业务数据信息以及用户私钥对应的用户公钥,生成用于向部署有可信执行环境的中心节点发送的业务处理请求;业务处理请求用于指示中心节点基于业务处理请求所携带的用户公钥对用户签名信息进行签名验证。

本申请一方面提供了一种计算机设备,包括:处理器、存储器、网络接口;

该处理器与存储器、网络接口相连,其中,网络接口用于提供数据通信功能,该存储器用于存储计算机程序,该处理器用于调用该计算机程序,以执行本申请实施例中上述一方面中的方法。

本申请一方面提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序包括程序指令,该程序指令当被处理器执行时,执行本申请实施例中上述一方面中的方法。

在本申请实施例中,部署有可信执行环境的中心节点可以用于存储与第一用户终端的第一原始账户,即在通过第一用户终端对应的第一用户的用户公钥生成第一用户的第一原始账户(这里指第一用户的真实账户信息)时,可以将该第一用户的第一原始账户写入可信执行环境中进行存储。进一步的,中心节点可以调用部署在该可信执行环境中的可信应用程序,衍生得到与第一原始账户相关联的k个匿名账户,进而可以建立该第一原始账户与每个匿名账户之间的映射哈希值,这里的映射哈希值可以用于反映第一原始账户与匿名账户之间的哈希映射关系。进一步的,可以理解的是,中心节点在将k个匿名账户中的每个匿名账户与每个匿名账户对应的映射哈希值成功写入区块链之后,可以确保由该第一原始账户所衍生出的多个匿名账户的有效性,进而可以将这些匿名账户返回给第一用户终端,以使第一用户终端可以通过k个匿名账户中的任意一个匿名账户与其他用户终端(比如,第二用户终端)执行目标业务(例如,执行资产转移业务)之后,确保在区块链上公开是这些匿名账户(即衍生出的虚拟账户信息),而并非是该第一用户的真实账户信息,这样可以确保用户的真实账户信息的安全性。可以理解的是,由于该第一原始账户被存储在该可信执行环境的可信内存中,外部用户甚至第一用户自己无法获知该第一原始账户的真实信息,这样,在第一用户终端与前述第二用户终端之间执行资产转移业务(即目标业务)时,会减少该第一用户的第一原始账户被泄露的风险,进而提高用户的真实账户信息的安全性。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本申请实施例提供的一种区块链网络结构的示意图;

图2是本申请实施例提供的一种进行数据交互的场景示意图;

图3是本申请实施例提供的一种账户数据处理方法的流程示意图;

图4是本申请实施例提供的一种验证业务处理请求合法性的场景示意图;

图5是本申请实施例提供的一种生成原始账户的场景示意图;

图6a是本申请实施例提供的一种通过校验服务器校验中心节点中的可信执行环境的场景示意图;

图6b是本申请实施例提供的一种生成匿名账户的场景示意图;

图7是本申请实施例提供的一种上链的场景示意图;

图8是本申请实施例提供的一种账户数据处理方法的流程示意图;

图9是本申请实施例提供的一种执行目标业务的场景示意图;

图10是本申请实施例提供的一种生成资产转移请求的场景示意图;

图11是本申请实施例提供的一种账户数据处理装置的结构示意图;

图12是本申请实施例提供的一种计算机设备的示意图;

图13是本申请实施例提供的一种账户数据处理装置的结构示意图;

图14是本申请实施例提供的一种计算机设备的示意图;

图15是本申请实施例提供的一种账户数据处理系统的结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

请参见图1,是本申请实施例提供的一种区块链网络结构的示意图。如图1所示的区块链网络结构可以应用于区块链系统,该区块链系统可以是由多个节点通过网络通信的形式连接形成的分布式系统。其中,该区块链系统可以包含但不限于联盟链所对应的区块链系统。如图1所示,该区块链系统可以包括多个节点,多个节点具体可以包括节点10a、节点10b、节点10c、…、节点10n。如图1所示的用户终端集群可以包括多个用户终端,如图1所示,多个用户终端具体可以包括用户终端100a、用户终端100b、用户终端100c、…、用户终端100n。

应当理解,本申请实施例可以将部署有可信执行环境的区块链节点称之为中心节点,这里的中心节点可以为接入该区块链网络中的任意形式的计算机设备,如服务器、用户终端等,这里将不对部署有可信执行环境的中心节点的具体形式进行限定。为便于理解,本申请实施例可以在图1所示的区块链系统中选择一个节点作为该区块链网络中的中心节点。例如,本申请实施例可以将区块链系统中的节点10a作为中心节点。节点10a可以与用户终端集群中的每个用户终端进行业务数据交互。

可选的,该区块链系统中可以包含一个中心节点集群,该中心节点集群中的中心节点之间还可以共享与上述节点10a相关联的用户终端的用户的原始账户。可以理解的是,这些中心节点之间之所以能够对原始账户进行共享,是因为这些中心节点中均部署有相同的可信执行环境,这样,一个中心节点中的可信执行环境可以与另一中心节点中的可信执行环境进行加密数据传输,进而可以确保存储在这些可信执行环境中的原始账户的安全性。

可以理解的是,节点10a(即中心节点)可以用于生成账户、管理账户以及根据账户进行交易等。这里的账户可以包含原始账户和匿名账户。其中,这里的原始账户可以为该中心节点的可信执行环境中所存储的每个用户终端的用户的真实账户信息;这里的匿名账户可以为该中心节点内所部署的可信执行环境中的可信应用程序,针对原始账户所衍生得到的k个虚拟账户信息,这里的k可以为正整数。

如上述图1所示,该节点10a可以与用户终端集群中的每个用户终端进行业务数据交互。其中,该用户终端集群中的每个用户终端均可以包括:智能手机、平板电脑、桌上型电脑等智能终端。可以理解的是,本申请实施例可以在图1所示的用户终端集群的多个用户终端中选择一个用户终端作为与该中心节点(例如,节点10a)相关联的目标用户终端。例如,本申请实施例中,可以将用户终端集群中的用户终端100a称之为目标用户终端,并可以将请求与该中心节点进行数据交互的目标用户终端统称为第一用户终端。本申请实施例可以将该第一用户终端对应的用户称之为第一用户。本申请实施例可以将用户终端集群中的另一用户终端(例如,用户终端100b)作为与该中心节点相关联的第二用户终端,并可以将该第二用户终端对应的用户称之为第二用户。

其中,在该区块链系统中的其他节点在进行正常工作时,均可以获取由该中心节点发布到区块链上的用户终端的匿名账户以及匿名账户对应的映射哈希值,即该区块链系统中的这些节点之间可以用于维护同一区块链,该区块链的共享账本上可以记录有接入该区块链系统的所有用户的匿名账户。其中,为便于进行区别,本申请实施例可以将区块链上所公开的第一用户的匿名账户统称为第一匿名账户,并将该区块链上所公开的第二用户的匿名账户统称为第二匿名账户。例如,当该区块链系统中的节点10a需要将生成的第一匿名账户以及第一匿名账户对应的映射哈希值写入区块链之前,可以通过该区块链系统中的其他节点(例如,共识节点),根据共识算法对获取到的第一匿名账户和第一匿名账户对应的映射哈希值进行共识,从而可以在共识成功的情况下,将由节点10a所生成的第一匿名账户和第一匿名账户对应的映射哈希值写入该区块链,进而可以确保参与共同维护该区块链的这些节点上所存储的数据(这里指匿名账户以及匿名账户对应的映射哈希值)的一致性。

应当理解,这里的可信执行环境(trustedexecutionenvironment,简称tee)被部署在上述中心节点(例如,节点10a)的主处理器上的一个安全区域,该可信执行环境可以保证加载到该环境内部的代码和数据的安全性、机密性以及完整性。该中心节点中的tee可以用于在设备的内存中提供一个隔离的执行环境,以确保存储在该tee的每个用户的原始账户(即真实账户信息)的安全性。可以理解的是,中心节点的tee可以由sgx(intelsoftwareguardextension,一种硬件的可执行环境)所保护的,图1所示的区块链网络对应的区块链(例如,联盟链)上的节点可以借助于sgx的验证功能,验证硬件签名的有效性(比如,可以通过发起交易的匿名账户的子公钥对交易进行验证),以确保对应的匿名账户的合法性和完整性。

其中,本申请实施例可以将写入至可信执行环境的可信内存中的具有衍生匿名账户功能的应用程序称之为可信应用程序。该可信应用程序中可以包含多个子程序,每个子程序可以对应一个账户数据处理规则;这里的账户数据处理规则具体可以包含私钥生成规则、哈希加密规则以及账户生成规则。其中,私钥生成规则可以用于生成与第一原始账户相关联的子私钥,哈希加密规则可以用于生成子私钥对应的子公钥,账户生成规则可以用于生成由原始账户所衍生的多个匿名账户。

应当理解,部署有可信执行环境的节点10a可以获取用户终端100a所发送的业务请求,进而可以验证该业务请求的合法性。其中,本申请实施例可以将用于生成第一用户终端(例如,用户终端100a)对应的用户(即第一用户)的匿名账户的业务请求称之为业务处理请求。该业务处理请求中可以携带用户终端100a对应的用户(例如,用户1)的用户公钥,该用户公钥可以用于指示节点10a生成用户1的原始账户。其中,本申请实施例可以将第一用户终端对应的第一用户的原始账户称之为第一原始账户。

在节点10a确定该业务处理请求为合法请求时,节点10a可以基于用户1的用户公钥,生成用户1的第一原始账户(例如,账户a),进而可以将第一原始账户写入可信执行环境中的用户集中,以确保第一原始账户的安全性。其中,可信执行环境中的用户集可以用于存储与中心节点相关联的用户终端对应的用户的原始账户。例如,与中心节点具有网络连接关系的用户终端可以为多个(以3为例),具体可以包括用户终端100a,用户终端100b以及用户终端100c。此时,中心节点的可信执行环境中的用户集可以包括用户终端100a对应的用户1的原始账户(账户a),用户终端100b对应的用户2的原始账户(账户b)以及用户终端100c对应的用户3的原始账户(账户c)。

进一步地,节点10a可以调用可信执行环境中的可信应用程序,生成与第一原始账户对应的密钥对。其中,密钥对中可以包含k个子密钥对;k可以为正整数;k个子密钥对中的每个子密钥对均可以包含为第一原始账户所配置的子公钥以及该子公钥对应的子私钥。

应当理解,节点10a可以基于k个子密钥对中的子公钥,生成与第一原始账户相关联的k个匿名账户。例如,账户a1,…,账户ak。进一步地,节点10a可以建立第一原始账户与k个匿名账户之间的映射哈希值,进而可以将k个匿名账户中的每个匿名账户和每个匿名账户对应的映射哈希值写入中心节点所属的区块链(例如,图1所示的区块链网络中的区块链)。此时,节点10a可以将k个匿名账户直接返回给用户终端100a,以使用户终端100a可以基于每个匿名账户执行目标业务。

其中,该目标业务可以为资产转移业务,该资产转移业务对应的资产信息可以为金融场景下的虚拟资产(例如,比特币、以太币等),还可以为游戏场景下的游戏资产(例如,游戏币、游戏钻石等),也可以为电子票据处理场景下的票据资产(例如,电子票据xx)等。可选的,该目标业务也可以为通讯业务,例如,电话、短信、邮件等。该通讯业务对应的资产信息可以为短信编辑的内容信息,也可以为邮件编辑的内容信息等。其中,目标业务还可以为其他形式的业务,在此不做限定。

由此可见,本申请实施例可以将每个用户终端对应的用户的原始账户写入中心节点的可信执行环境中,并可以基于用户的匿名账户执行目标业务。由于在中心节点的可信执行环境中,需要中心节点的处理器(cpu)指令才能操作,从而提高了原始账户的安全性,减小用户的隐私信息被泄露的风险。

为便于理解,进一步地,请参见图2,是本申请实施例提供的一种进行数据交互的场景示意图。本申请实施例中的中心节点210可以为上述图1所示的区块链网络中的中心节点,该中心节点上可以部署有可信执行环境,例如,图1所示的节点10a。本申请实施例中的用户终端200可以为上述图1所示的用户终端集群中的任意一个用户终端,例如,用户终端100a。

其中,本申请实施例可以将用户终端200(即第一用户终端)对应的用户(例如,用户1)可以称之为第一用户。如图2所示,用户终端200可以基于用户1的用户私钥,对与用户终端200相关联的注册业务数据信息进行签名,得到签名后的签名信息。其中,本申请实施例可以将用户终端基于用户私钥,对所提交的注册业务数据信息进行签名后所得到的签名信息称之为用户签名信息。本申请实施例可以将用户终端对应的用户在注册时所提交的数据信息称之为注册业务数据信息。例如,该注册业务数据信息可以包括用户1的基本信息(例如,用户1的用户名,用户1的企业名,用户1的企业经营范围,用户1的用户公钥等)。

进一步地,用户终端200可以基于用户签名信息,注册业务数据信息以及用户私钥对应的用户公钥,生成向中心节点210发送的业务处理请求。此时,中心节点210可以基于业务处理请求中所携带的用户公钥,对用户签名信息进行验证,得到验签结果。在验签结果指示验证成功时,中心节点210可以将用户1确定为合法用户,同时可以将用户1所发起的业务处理请求确定为合法请求。在验签结果指示验证失败时,中心节点210可以将用户1确定为非法用户,同时可以将用户1所发起的业务处理请求确定为非法请求。

可以理解的是,在中心节点210确定该业务处理请求为合法请求时,中心节点210可以基于用户公钥,生成用户1的原始账户(即第一原始账户,例如,账户a),并将该原始账户存储至可信执行环境中的用户集。进一步地,中心节点210可以调用可信执行环境中所存储的可信应用程序,生成账户a对应的密钥对mi。其中,密钥对中可以包含k个子密钥对,例如,子密钥对m1、…、子密钥对mk。k可以为正整数。可以理解的是,一个子密钥对mi中可以包含一个子公钥yi以及该子公钥yi对应的子私钥xi。其中,i可以为小于或者等于k的正整数。例如,子密钥对m1中可以包含一个子公钥y1,以及该子公钥y1对应的子私钥x1。应当理解,中心节点210可以基于k个子密钥对中的子公钥,生成与账户a相关联的k个匿名账户。例如,账户a1,…,账户ak。

进一步地,中心节点210在可信执行环境中,通过与可信执行环境相关联的可信密钥对中的可信公钥,对账户a进行加密处理,得到加密处理后的账户加密信息1。其中,可信密钥对由可信执行环境进行初始化所得到的,可信密钥对可以包含可信公钥以及可信私钥。其中,可信私钥是内置到硬件中进行保护的。此时,中心节点210可以建立账户a对应的账户加密信息1,以及k个匿名账户之间的哈希映射关系,进而可以通过这些哈希映射关系建立原始账户与匿名账户之间的哈希映射关系表。其中,中心节点210对账户加密信息1以及k个匿名账户中的每个匿名账户进行哈希计算后所得到的哈希值,可以作为每个匿名账户对应的映射哈希值。

此时,中心节点210可以将k个匿名账户中的每个匿名账户以及每个匿名账户对应的映射哈希值进行打包处理,从而可以得到待写入中心节点所属的区块链(例如,图1所示的区块链网络对应的区块链)的待验证区块。进一步地,中心节点210可以将待验证区块广播至区块链上的共识节点,以使共识节点对获取到的待验证区块进行共识,得到共识结果。在共识节点所返回的共识结果中存在超过1/2的共识结果指示共识成功时,中心节点210可以确定区块链上的区块链节点达成共识。此时,中心节点210可以将待验证区块作为目标区块写入区块链。

在中心节点210将每个匿名账户以及每个匿名账户对应的映射哈希值写入中心节点210所属区块链时,中心节点210可以将每个匿名账户作为业务处理请求对应的业务处理结果返回给用户终端200,以使用户终端200可以基于每个匿名账户执行目标业务。

其中,部署有可信执行环境的中心节点基于用户终端的原始账户,衍生出用于进行目标业务的匿名账户的具体实现方式可以参见下述图3-图10所对应的实施例。

进一步地,请参见图3,是本申请实施例提供的一种账户数据处理方法的流程示意图。该方法可以由部署有可信执行环境的中心节点执行,具体可以参见下述步骤s101-步骤s105的描述。如图3所示,该方法可以包括:

步骤s101,获取第一用户终端所发送的业务处理请求。

应当理解,部署有可信执行环境的中心节点在执行步骤s101之前,与中心节点具有网络连接关系的第一用户终端,可以基于第一用户终端对应的第一用户的用户私钥,对与第一用户终端相关联的注册业务数据信息进行签名,从而可以得到用户签名信息。进一步地,第一用户终端可以基于用户签名信息、注册业务数据信息以及用户私钥对应的用户公钥,生成业务处理请求。进一步地,第一用户终端可以将该业务处理请求发送至中心节点,此时,中心节点可以获取该业务处理请求。其中,业务处理请求可以用于指示中心节点基于业务处理请求所携带的用户公钥,对用户签名信息进行签名验证。用户公钥可以用于指示中心节点生成第一用户的第一原始账户。

其中,本申请实施例中的中心节点可以上述图2所对应实施例中的中心节点210,该中心节点210可以为上述图1所对应实施例中的区块链网络中的中心节点,例如,节点10a。本申请实施例中的第一用户终端可以为上述图2所对应实施例中的用户终端200,该用户终端200可以为上述图1所对应实施例中的用户终端集群中的任意一个用户终端,例如,用户终端100a。

为便于理解,进一步地,请参见图4,是本申请实施例提供一种验证业务处理请求合法性的场景示意图。如图4所示,用户终端400可以为上述图1所对应实施例中的用户终端集群中的任意一个用户终端,例如,用户终端100a。中心节点410可以为上述图1所对应实施例中的区块链网络中的中心节点,例如,节点10a。该中心节点上部署有可信执行环境。该可信执行环境中具有衍生匿名账户功能的可信应用程序。

如图4所示,用户终端400(即第一用户终端)可以基于用户终端400对应的用户1(即第一用户的用户私钥),对与用户终端400相关联的注册业务数据信息进行签名,从而可以得到用户签名信息。其中,该注册业务数据信息可以包括用户1的基本信息(例如,用户1的用户名,用户1的企业名,用户1的企业经营范围,用户1的用户公钥等)。其中,可以理解的是,该用户终端400可以对该注册业务数据信息进行哈希计算,从而可以得到注册业务数据信息的摘要信息h,并基于用户终端400的用户私钥对该摘要信息h进行数字签名,得到用户签名信息。其中,该用户签名信息包括该数字签名和该注册业务数据信息。

进一步地,用户终端400可以基于用户签名信息、注册业务数据信息以及用户私钥对应的用户公钥,生成用于向中心节点410发送的业务处理请求,以使中心节点410可以基于业务处理请求所携带的用户1的用户公钥,对用户签名信息验签,从而可以得到验签结果。其中,可以理解的是,中心节点410可以基于用户1的用户公钥对该数字签名进行验签,得到注册业务数据信息的摘要信息h,并利用与该用户终端400相同的哈希算法对该注册业务数据信息进行哈希计算,从而可以得到该注册业务数据信息的摘要信息h。进一步地,中心节点410可以将验签后所得到的摘要信息h与进行哈希计算得到的摘要信息h进行比对,得到验签结果。

若该摘要信息h与摘要信息h不相同,则可以理解为中心节点410所得到的验签结果指示验签失败,此时,中心节点410可以将用户1确定为非法用户,同时可以将用户1所发起的业务处理请求确定为非法请求。若该摘要信息h与摘要信息h相同,则可以理解为中心节点410所得到的验签结果指示验签成功,此时,中心节点410可以将用户1确定为合法用户,同时可以将用户1所发起的业务处理请求确定为合法请求。

步骤s102,在确定业务处理请求为合法请求时,基于用户公钥生成第一用户的第一原始账户,将第一原始账户写入可信执行环境。

具体地,在确定业务处理请求为合法请求时,中心节点可以通过第一哈希规则和第二哈希规则对用户公钥进行哈希计算,得到用户公钥对应的公钥哈希值;进一步地,中心节点可以将一个字节的地址版本号作为公钥哈希值的头部,得到第一拼接字符串,进而可以对第一拼接字符串进行哈希计算,得到第一拼接字符串对应的待处理哈希值。此时,中心节点可以从待处理哈希值中获取公钥哈希值的校验值,并将校验值作为第一拼接字符串的尾部,得到第二拼接字符串。进一步地,中心节点可以对第二拼接字符串进行编码处理,将编码处理后所得到的编码字符串作为第一用户的第一原始账户,并将第一原始账户写入可信执行环境中的用户集。

为便于理解,进一步地,请参见图5,是本申请实施例提供的一种生成原始账户的场景示意图。如图5所示,本申请实施例中的用户公钥可以为上述图4所对应实施例中的用户终端400对应的用户1的用户公钥。本申请实施例中的中心节点可以为上述图4所对应实施例中的部署有可信执行环境的中心节点410。

如图5所示,中心节点410在确定用户终端400所发送的业务处理请求为合法请求时,可以基于用户公钥生成用户1的原始账户(如图5所示的账户a)。应当理解,中心节点410可以通过第一哈希规则以及第二哈希规则对业务处理请求中所携带的用户公钥进行哈希计算,从而可以得到用户公钥所对应的公钥哈希值。其中,第一哈希规则与第二哈希规则可以为不同的哈希规则。

可以理解的是,哈希规则也就是单向散列算法,又称hash函数(杂凑函数,或者杂凑算法),就是把任意输入消息字符串变成固定长的输出串的一种函数,这个输出串称为该消息的杂凑值,一般用于产生消息摘要,密钥加密等。具体是指对输入消息进行计算后,输出固定长度数值的算法,输出数值也称为“散列值”或消息摘要,其长度通常在128~256位之间。

例如,第一哈希规则可以为shas256算法(一种哈希函数),第二哈希规则可以为ripemd160算法(另一种哈希函数)。其中,对于任意长度的消息,sha256算法的哈希输出值是16进制的字符串,由于16进制字符串,每两个字符占一个字节,一个字节等于8bit,所以使用sha256杂凑函数得到的是一个256bit的值。此外,ripemd160算法的哈希输出值一般是16进制的字符串。由于16进制字符串,每两个字符占一个字节,一个字节等于8bit,所以使用ripemd160加密函数所得到的是一个160bit的值。

进一步地,中心节点可以将一个字节的地址版本号作为图5所示的公钥哈希值的头部,从而可以得到拼接字符串1。其中,本申请实施例可以将拼接字符串1称之为第一拼接字符串。例如,若中心节点所属的区块链网络为比特币网络,则这一个字节可以为“0”,即0x00。此时,中心节点可以将0x00与公钥哈希值进行拼接,得到图5所示的拼接字符串1。

此时,中心节点可以对拼接字符串1进行哈希计算,从而可以得到拼接字符串1对应的哈希值。其中,本申请实施例可以将第一拼接字符串(如图5所示的拼接字符串1)对应的哈希值称之为待处理哈希值。比如,中心节点在对拼接字符串1进行哈希计算时,可以通过shas256算法对拼接字符串1进行两次计算,得到待处理哈希值。这里对哈希计算所采用的哈希函数以及所采用的计算次数不做限定。

进一步地,中心节点可以从待处理哈希值中获取公钥哈希值的校验值。例如,中心节点可以将待处理哈希值的前4个字节作为公钥哈希值的校验值。可以理解的是,中心节点可以将校验值作为拼接字符串1的尾部,得到拼接字符串2。其中,本申请实施例可以将拼接字符串2称之为第二拼接字符串。进一步地,中心节点可以对拼接字符串2进行编码处理,将编码处理后所得到的编码字符串作为第一用户(图4所示的用户1)的第一原始账户(例如,账户a),比如,1a1zp1ep5qgefi2dmptftl5slmv7divfna,进而中心节点可以将账户a写入可信执行环境中的用户集。

步骤s103,调用可信执行环境中的可信应用程序,生成第一原始账户对应的密钥对。

具体地,中心节点可以调用可信执行环境中的可信应用程序,进而可以获取可信应用程序中的私钥生成规则,根据私钥生成规则,生成与第一原始账户相关联的k个子私钥。进一步地,中心节点可以通过可信应用程序中的哈希加密规则,生成与k个子私钥分别对应的子公钥。其中,一个子私钥可以对应一个子公钥,且一个子私钥与一个子公钥可以用于构建一个子密钥对。应当理解,中心节点可以根据k个子私钥以及k个子私钥分别对应的子公钥,确定第一原始账户对应的k个子密钥对,进而可以将k个子密钥对作为第一原始账户对应的密钥对。

为便于理解,进一步地,请参见图6a,是本申请实施例提供的一种通过校验服务器校验中心节点中的可信执行环境的场景示意图。如图6a所示,本申请实施例中的中心节点60可以为部署有可信执行环境的中心节点,例如,图1所示的节点10a。可信执行环境中所运行的可信应用程序可以为具有衍生匿名账户功能的应用程序。

应当理解,本申请实施例在将可信应用程序部署在可信执行环境中时,可以通过校验服务器为待部署的可信应用程序签名并颁发具有唯一性的证书信息,该证书信息可以存储至与校验服务器相关联的数据库中。可以理解的是,中心节点60在调用可信执行环境中的可信应用程序时,可以先向图6a所示的校验服务器发送相应的校验指令,使得校验服务器通过图6a所示的数据库校验可信应用程序的证书信息。

可以理解的是,如图6a所示的校验服务器可以获取到由中心节点60所发送的校验指令。该校验指令中可以携带中心节点60所发送的可信应用程序对应的证书信息(例如,证书信息a)。此时,校验服务器可以基于校验指令,从与校验服务器相关联的数据库中,获取所存储的与上述可信应用程序对应的证书信息(例如,证书信息a)。进一步地,校验服务器可以将证书信息a与证书信息a进行匹配。

若证书信息a与证书信息a的匹配结果指示匹配成功时,则可以理解为中心节点60所上传的证书信息a具有合法性,进而可以间接确定可信应用程序所属的可信执行环境为安全性执行环境。若证书信息a与证书信息a的匹配结果指示匹配失败时,则可以理解为中心节点60所上传的证书信息a不具有合法性,进而可以间接确定可信应用程序所属的可信执行环境为危险性执行环境。

进一步地,中心节点可以调用可信执行环境中的可信应用程序,进而可以获取可信应用程序中的私钥生成规则,其中,该私钥生成规则可以为确定性算法,例如,bip32算法、bip39算法、bip44算法等。可以理解的是,中心节点可以根据私钥生成规则(例如,bip39算法)生成与第一原始账户相关联的助记词。该助记词可以为12、15、18、21或者24个单词,在此不做限定。进一步地,在得到助记词之后,中心节点可以根据私钥生成规则(例如,bip32算法和bip44算法),生成k个子私钥。可以理解的是,生成的子私钥可以为一个64位的随机数,用16进制的64位字符串进行表示。

此时,中心节点可以获取可信应用程序中的哈希加密规则,生成与k个子私钥分别对应的子公钥。其中,哈希加密规则可以为椭圆曲线算法,例如,secp256k1算法。由于该secp256k1算法可以在子私钥已知时,计算得到该子私钥对应的子公钥;而不能在子公钥已知时,反向计算子私钥,所以可以确保子私钥的安全性。

可以理解的是,一个子私钥和该子私钥对应的子公钥可以构成一个密钥对。例如,一个子私钥x1,以及该子私钥x1对应的子公钥y1可以构成一个密钥对m1。本申请实施例可以根据k个子私钥,获得k个子私钥分别对应的子公钥,最终根据k个子私钥以及k个子私钥分别对应的子公钥,获得第一原始账户对应的k个子密钥对。

步骤s104,基于k个子密钥对中的子公钥生成与第一原始账户相关联的k个匿名账户,建立第一原始账户与k个匿名账户之间的映射哈希值。

具体地,中心节点可以从k个子密钥对中获取子密钥对mi,进而可以对子密钥对mi中的子公钥yi进行哈希计算,得到子公钥yi对应的子公钥哈希值。其中,i可以为小于或者等于k的正整数;子密钥对mi中可以包含子公钥yi;子公钥yi是由子密钥对mi中的子私钥xi经过可信应用程序中的哈希加密规则所得到的;子私钥xi是由可信应用程序中的私钥生成规则所得到的。进一步地,中心节点可以获取与子公钥哈希值相关联的地址字符串和校验字符串,并基于地址字符串,子公钥哈希值以及校验字符串,确定子密钥对mi对应的匿名账户。应当理解,在得到k个子密钥对中的每个子密钥对的匿名账户时,中心节点可以通过与可信执行环境相关联的可信密钥对中的可信公钥,对第一原始账户进行加密处理,从而可以得到加密处理后的账户加密信息。进一步地,中心节点可以建立账户加密信息和k个匿名账户之间的哈希映射关系表,根据哈希映射关系表中的k个哈希映射关系,确定第一原始账户与k个匿名账户之间的映射哈希值。其中,一个哈希映射关系可以用于确定一个映射哈希值。

为便于理解,进一步地,请参见图6b,是本申请实施例提供的一种生成匿名账户的场景示意图。图6b所示的中心节点可以为部署有可信执行环境的中心节点,该可信执行环境的可信内存中可以存储具有衍生匿名账户功能的可信应用程序。其中,可信应用程序中可以包含多个子程序,具体可以包含子程序1、子程序2、子程序3。每个子程序可以对应一个账户数据处理规则。例如,子程序1可以对应私钥生成规则,子程序2可以对应哈希加密规则,子程序3可以对应账户生成规则。

本申请实施例中的账户a可以为第一用户终端对应的原始账户,中心节点生成与原始账户(例如,账户a)相关联匿名账户的个数可以以4为例,用以阐述中心节点衍生匿名账户的具体实现过程。

如图6b所示,中心节点可以调用可信应用程序中的子程序1,生成与账户a相关联的4个子私钥,即子私钥x1,子私钥x2,子私钥x3以及子私钥x4。进一步地,中心节点可以调用可信应用程序中的子程序2,生成与4个子私钥分别对应的子公钥。即子私钥x1可以对应子公钥y1,子私钥x2可以对应子公钥y2,子私钥x3可以对应子公钥y3以及子私钥x4可以对应子公钥y4。

此时,中心节点可以将子私钥x1与子公钥y1作为一个子密钥对m1,子私钥x2与子公钥y2作为一个子密钥对m2,子私钥x3与子公钥y3作为一个子密钥对m3,子私钥x4与子公钥y4作为一个子密钥对m4,从而可以获取4个子密钥对,并将这4个子密钥对作为账户a对应的密钥对。

进一步地,中心节点可以调用可信应用程序中的子程序3,基于子密钥对中的子公钥,生成与账户a相关联的4个匿名账户。比如,中心节点可以从4个子密钥对中获取子密钥对m1,进而可以对子密钥对m1中的子公钥y1进行哈希计算,得到子公钥y1对应的子公钥哈希值1。进一步地,中心节点可以获取与子公钥哈希值1相关联的地址字符串1和校验字符串1,并基于地址字符串1,子公钥哈希值1以及校验字符串1,能够确定出子密钥对m1对应的匿名账户(例如,账户a1)。

中心节点可以从4个子密钥对中,继续获取子密钥对m2,进而可以对子密钥对m2中的子公钥y2进行哈希计算,得到子公钥y2对应的子公钥哈希值2。进一步地,中心节点可以获取与子公钥哈希值2相关联的地址字符串2和校验字符串2,并基于地址字符串2,子公钥哈希值2以及校验字符串2,能够确定出子密钥对m2对应的匿名账户(例如,账户a2)。

中心节点可以从4个子密钥对中,继续获取子密钥对m3,进而可以对子密钥对m3中的子公钥y3进行哈希计算,得到子公钥y3对应的子公钥哈希值3。进一步地,中心节点可以获取与子公钥哈希值3相关联的地址字符串3和校验字符串3,并基于地址字符串3,子公钥哈希值3以及校验字符串3,能够确定出子密钥对m3对应的匿名账户(例如,账户a3)。

中心节点可以从4个子密钥对中,继续获取子密钥对m4,进而可以对子密钥对m4中的子公钥y4进行哈希计算,得到子公钥y4对应的子公钥哈希值4。进一步地,中心节点可以获取与子公钥哈希值4相关联的地址字符串4和校验字符串4,并基于地址字符串4,子公钥哈希值,4以及校验字符串4,能够确定出子密钥对m4对应的匿名账户(例如,账户a4)。

因此,中心节点可以得到与第一原始账户相关联的4个匿名账户,即账户a1、账户a2、账户a3以及账户a4。进一步地,中心节点可以建立第一原始账户与4个匿名账户之间的映射哈希值。可以理解的是,在可信执行环境中,中心节点可以通过与可信执行环境相关联的可信密钥对中的可信公钥,对账户a进行加密处理,从而可以得到加密处理后的账户加密信息1。中心节点可以建立账户加密信息1和4个匿名账户之间的哈希映射关系表,根据哈希映射关系表中的4个哈希映射关系,确定第一原始账户与4个匿名账户之间的映射哈希值。

为便于理解,进一步地,请参见表1,是本申请实施例提供的一种第一原始账户与匿名账户之间的哈希映射关系表。其中,第一原始账户(例如,账户a)对应的用户终端可以为第一用户终端(例如,用户终端a)。

表1

如上述表1所示,账户加密信息1是由中心节点通过与可信执行环境相关联的可信密钥对中的可信公钥,对账户a进行加密处理所得到的。其中,账户a可以为与中心节点具有网络连接关系的用户终端a对应的用户(例如,用户1)的原始账户。可以理解的是,中心节点在可信执行环境中所生成的用户1的匿名账户可以为多个,以4个为例,具体可以包括账户a1、账户a2、账户a3以及账户a4。其中,账户a1与账户加密信息1具有一个哈希映射关系,且与账户a1相关联的映射哈希值为哈希值a1。账户a2与账户加密信息1具有一个哈希映射关系,且与账户a2相关联的映射哈希值为哈希值a2。账户a3与账户加密信息1具有一个哈希映射关系,且与账户a3相关联的映射哈希值为哈希值a3。账户a4与账户加密信息1具有一个哈希映射关系,且与账户a4相关联的映射哈希值为哈希值a4。

进一步地,请参见图7,是本申请实施例提供的一种上链的场景示意图。如图7所示,本申请实施例中的中心节点700可以部署有可信执行环境的区块链节点,该区块链节点可以为上述图1所对应实施例中的区块链网络的中心节点,例如,节点10a。共识节点网络中的每个共识节点710与中心节点700同属于一个区块链网络。

如图7所示的区块链7可以为上述图1中区块链系统对应的区块链网络中的区块链,该区块链7可以为中心节点700所属区块链网络中每个节点均共享的一条相同的区块链,每个节点均可以在区块链7中获取该区块链所存储的信息。其中,该区块链7中包括区块70a、区块70b、…、区块70n以及目标区块,该区块70a可以称之为该区块链7的创世区块。该区块链7中的目标区块中包含着如图2所示的用户终端200(即第一用户终端)对应的用户1的k个匿名账户中的每个匿名账户以及每个匿名账户对应的映射哈希值。其中,k为正整数。

其中,该中心节点700可以将该每个匿名账户以及每个匿名账户对应的映射哈希值写入该中心节点700所对应区块链网络中的区块链7。换言之,该中心节点700可以从该区块链7中获取具有最大生成时间戳的区块70n。进一步地,中心节点700可以将上述k个匿名账户中的每个匿名账户以及每个匿名账户对应的映射哈希值进行打包处理,从而可以得到待写入中心节点700所属的区块链7的待验证区块。此时,该中心节点700可以将待验证区块广播至区块链上的共识节点710,以使共识节点710对获取到的待验证区块进行共识,得到共识结果。若在共识节点710所返回的共识结果中存在超过1/2的共识结果指示共识成功,则中心节点700可以确定区块链上的区块链节点达成共识,进而可以将该待验证区块写入上述区块链7中,也就是将该待验证区块作为区块70n的下一区块,从而可以将每个匿名账户以及每个匿名账户对应的映射哈希值写入该中心节点700所对应区块链网络中的区块链7。

步骤s105,在将每个匿名账户和每个匿名账户对应的映射哈希值写入中心节点所属的区块链时,将每个匿名账户返回给第一用户终端,以使第一用户终端基于每个匿名账户执行目标业务。

具体地,在将每个匿名账户和每个匿名账户对应的映射哈希值写入中心节点所属的区块链时,中心节点可以将每个匿名账户返回给第一用户终端。此时,第一用户终端可以基于每个匿名账户中的任意一个匿名账户,与该第一用户终端具有网络连接关系的第二用户终端执行目标业务。

应当理解,如图2所示,中心节点210在将每个匿名账户和每个匿名账户对应的映射哈希值写入中心节点210所属的区块链时,可以将k个匿名账户中的每个匿名账户作为业务处理请求的业务处理结果,并将每个匿名账户返回给用户终端200。

在本申请实施例中,部署有可信执行环境的中心节点可以用于存储与第一用户终端的第一原始账户,即在通过第一用户终端对应的第一用户的用户公钥生成第一用户的第一原始账户(这里指第一用户的真实账户信息)时,可以将该第一用户的第一原始账户写入可信执行环境中进行存储。进一步的,中心节点可以调用部署在该可信执行环境中的可信应用程序,衍生得到与第一原始账户相关联的k个匿名账户,进而可以建立该第一原始账户与每个匿名账户之间的映射哈希值,这里的映射哈希值可以用于反映第一原始账户与匿名账户之间的哈希映射关系。进一步的,可以理解的是,中心节点在将k个匿名账户中的每个匿名账户与每个匿名账户对应的映射哈希值成功写入区块链之后,可以确保由该第一原始账户所衍生出的多个匿名账户的有效性,进而可以将这些匿名账户返回给第一用户终端,以使第一用户终端可以通过k个匿名账户中的任意一个匿名账户与其他用户终端(比如,第二用户终端)执行目标业务(例如,执行资产转移业务)之后,确保在区块链上公开是这些匿名账户(即衍生出的虚拟账户信息),而并非是该第一用户的真实账户信息,这样可以确保用户的真实账户信息的安全性。可以理解的是,由于该第一原始账户被存储在该可信执行环境的可信内存中,外部用户甚至第一用户自己无法获知该第一原始账户的真实信息,这样,在第一用户终端与前述第二用户终端之间执行资产转移业务(即目标业务)时,会减少该第一用户的第一原始账户被泄露的风险,进而提高用户的真实账户信息的安全性。

进一步地,请参见图8,是本申请实施例提供的一种账户数据处理方法的流程示意图。该方法可以由部署有可信执行环境的中心节点以及第一用户终端交互执行。其中,部署有可信执行环境的中心节点可以为上述图2所对应的中心节点210,第一用户终端可以为上述图2所对应的用户终端200。如图8所示,该方法可以包括:

步骤s201,第一用户终端向部署有可信执行环境的中心节点发送的业务处理请求。

应当理解,与中心节点具有网络连接关系的第一用户终端在执行步骤s201之前,可以基于第一用户终端对应的第一用户的用户私钥,对与第一用户终端相关联的注册业务数据信息进行签名,从而可以得到用户签名信息。进一步地,第一用户终端可以基于用户签名信息、注册业务数据信息以及用户私钥对应的用户公钥,生成用于向部署有可信执行环境的中心节点发送的业务处理请求,进而可以将该业务处理请求发送至该中心节点。

步骤s202,中心节点在确定业务处理请求为合法请求时,基于用户公钥生成第一用户的第一原始账户,将第一原始账户写入可信执行环境。

步骤s203,中心节点调用可信执行环境中的可信应用程序,生成第一原始账户对应的密钥对。

步骤s204,中心节点基于k个子密钥对中的子公钥生成与第一原始账户相关联的k个匿名账户,建立第一原始账户与k个匿名账户之间的映射哈希值。

步骤s205,中心节点在将每个匿名账户和每个匿名账户对应的映射哈希值写入中心节点所属的区块链时,将每个匿名账户返回给第一用户终端,以使第一用户终端基于每个匿名账户执行目标业务。

其中,该步骤s201-步骤s205的具体实施方式可以参见上述图3所对应实施例中对步骤s101-步骤s105的描述,这里将不再赘述。

步骤s206,第一用户终端基于第一匿名账户发送资产转移请求。

具体地,第一用户终端可以通过第一匿名账户的子私钥,对资产信息进行签名,得到资产签名信息。其中,第一匿名账户可以用于指示第一用户终端执行向第二匿名账户对应的第二用户终端进行资产转移的目标业务。资产信息可以包含用于进行资产转移的资产量。进一步地,第一用户终端可以基于目标业务对应的资产信息、资产签名信息以及第一匿名账户相关联的目标映射哈希值,生成用于向中心节点发送资产转移请求。此时,中心节点可以接收该资产转移请求。

步骤s207,中心节点在通过第一匿名账户的子私钥对应的子公钥对资产签名信息进行成功验签后,在哈希映射关系表中查找与目标映射哈希值和第一匿名账户相关联的目标哈希映射关系,基于目标哈希映射关系确定第一原始账户对应的账户加密信息。

具体地,中心节点在接收到第一用户终端发送的资产转移请求时,可以对资产转移请求所携带的资产签名信息进行验证,在验证成功时,可以在中心节点所建立的哈希映射关系表中,查找与目标映射哈希值和第一匿名账户相关联的目标哈希映射关系。进一步地,中心节点可以基于目标哈希映射关系确定第一原始账户对应的账户加密信息。

步骤s208,中心节点基于可信密钥对中的可信私钥,对账户加密信息进行解密处理,得到第一用户终端对应的第一原始账户。

具体地,中心节点可以基于可信执行环境中的可信私钥,对基于上述目标哈希映射关系所确定的账户加密信息进行解密处理,从而可以得到第一用户终端对应的第一用户的第一原始账户。

步骤s209,中心节点从第一原始账户中获取资产信息,将资产信息通过第一匿名账户转移至第二用户终端,以使第二用户终端通过中心节点将资产信息存储至与第二匿名账户相关联的第二原始账户。

具体地,中心节点在检测到第一原始账户中存在目标业务对应的资产信息时,可以从第一原始账户中获取资产信息中的资产量,并将资产量写入第一匿名账户。进一步地,中心节点可以根据第二匿名账户的匿名子公钥对资产量进行锁定,将锁定后的资产量通过第一匿名账户发送至第二匿名账户。此时,第二匿名账户对应的第二用户终端可以基于匿名子公钥对应的匿名子私钥,解锁得到资产量。进一步地,中心节点可以根据第二匿名账户和第二匿名账户对应的第二原始账户之间的关联关系,将资产量写入到可信执行环境中的第二用户对应的第二原始账户;其中,第二原始账户为可信执行环境的用户集中所存在的第二用户的原始账户;关联关系是由第二匿名账户和第二原始账户的加密数据信息之间的映射哈希值所确定的。

其中,步骤s206-步骤s209的具体实施方式可以参见下述图9所对应实施例中的描述。进一步地,请参见图9,是本申请实施例提供的一种执行目标业务的场景示意图。其中,用户终端910、用户终端920均可以为上述图1所对应实施例中用户终端集群中的任意一个用户终端,中心节点900可以为部署有可信执行环境的区块链节点,该区块链节点可以为上述图1所对应实施例中的区块链网络中的中心节点,例如,节点10a。

其中,本申请实施例中的第一用户终端可以为用户终端910,第一用户可以为用户终端910对应的用户1,第一原始账户可以为用户1的原始账户(例如,账户a)。本申请实施例中的第二用户终端可以为用户终端920,第二用户可以为用户终端920对应的用户2,第二原始账户可以为用户2的原始账户(例如,账户b)。本申请实施例中的应用场景可以以电子票据处理场景为例,用以阐述中心节点将用户终端910对应的账户a中的资产信息(电子票据xx)发送至用户终端920的过程。

应当理解,用户终端910可以基于第一匿名账户,向中心节点900发送资产转移请求。为便于理解,进一步地,请参见图10,是本申请实施例提供的一种生成资产转移请求的场景示意图。如图10所示,本申请实施例中的用户终端可以为图9所示的用户终端910。该用户终端910可以接收中心节点900所返回与用户1相关联的k个(例如,4个)匿名账户中的每个匿名账户,具体可以包括账户a1、账户a2、账户a3以及账户a4。

此时,用户终端910可以从图10所示的匿名账户集中选取一个用于执行目标业务的匿名账户(例如,账户a3)作为第一匿名账户。其中,第一匿名用户的选取方式可以随机选取,可以是根据执行目标业务的第二用户终端直接确定。例如,账户a1可以与第二用户终端(例如,用户终端10)执行金融场景下的目标业务,账户a2可以与第二用户终端(例如,用户终端20)执行游戏场景下的目标业务,账户a3可以与第二用户终端(例如,用户终端30)执行电子票据处理场景下的目标业务,账户a4可以与第二用户终端(例如,用户终端40)执行生活场景下(例如,打车,外卖等)的目标业务。因此,当用户终端910与第二用户终端(即图9所示的用户终端920)执行转移电子票据的目标业务时,用户终端910可以直接将账户a3确定为用于进行目标业务的第一匿名账户。

进一步地,用户终端910可以基于第一匿名账户的子私钥(即账户a3的子私钥)对目标业务对应的资产信息(例如,电子票据xx)进行签名,从而可以得到资产签名信息。此时,用户终端910可以基于资产信息、资产签名信息以及与账户a3相关联的目标映射哈希值(例如,哈希值a3),生成用于向中心节点发送的资产转移请求。如图9所示,中心节点900可以接收用户终端910所发送的资产转移请求,并可以基于第一匿名账户的子公钥(例如,账户a3的子公钥),对资产转移请求中所携带的资产签名信息进行验签,在验签成功时,可以得到资产信息(即电子票据xx)。中心节点对资产签名信息的验签过程可以参见上述图4的中心节点对用户签名信息的验签过程,在此不再继续进行赘述。

如图9所示的哈希映射关系表中,可以包含用户1的匿名账户相关联的哈希映射关系(如上述表1所示)。例如,与账户a1相关联的哈希映射关系可以为图9所示的哈希映射关系10a,与账户a2相关联的哈希映射关系可以为图9所示的哈希映射关系10b,与账户a3相关联的哈希映射关系可以为图9所示的哈希映射关系10c,与账户a4相关联的哈希映射关系可以为图9所示的哈希映射关系10d。

进一步地,中心节点900可以在如图9所示的哈希映射关系表中查找到与目标映射哈希值(即哈希值a3)和第一匿名账户(即账户a3)相关联的目标哈希映射关系(如图9所示的哈希映射关系10c)。应当理解,账户a3可以与账户加密信息1具有哈希映射关系。此时,中心节点900可以基于可信执行环境中的可信密钥对中的可信私钥,对所查询到的加密数据信息1进行解密,从而可以得到用户终端910对应的原始账户(例如,账户a),进一步地,中心节点900可以从图9所示的用户集中获取用户1对应的账户a。

应当理解,在该中心节点900中所部署的可信执行环境可以用于存储多个用户的原始账户,这些用户的原始账户所构成的集合可以统称为用户集,应当理解,该用户集中的这些原始账户均受该可信执行环境所保护,外部用户包括用户自己是难以获知这些原始账户的真实账户信息。其中,用户集中可以包括用户对应的原始账户,例如,用户终端910对应的用户1的原始账户(例如,账户a)、用户终端920对应的用户2的原始账户(例如,账户b)、…、用户终端930对应的用户3的原始账户(例如,账户c)。

此时,中心节点900可以检测账户a中的资产信息,在检测到账户a中存在目标业务对应的资产信息时,可以从账户a中获取该资产信息对应的资产量(即电子票据xx),并将该电子票据xx写入第一匿名账户中。

进一步地,中心节点900可以从区块链网络中获取执行目标业务的第二匿名账户(例如,账户b1)的匿名子公钥,并根据匿名子公钥对该电子票据xx进行锁定,从而可以得到锁定后的电子票据xx。此时,中心节点900可以将锁定后的电子票据xx发送至用户终端920的账户b1中,进而使得该用户终端920可以基于账户b1的匿名子私钥对锁定后的电子票据xx进行解锁,从而可以得到该电子票据xx。

进一步地,请参见表2,是本申请实施例提供的一种第二原始账户与匿名账户之间的哈希映射关系表。其中,第二原始账户(例如,账户b)对应的用户终端可以为第二用户终端(例如,用户终端920)。

表2

如上述表2所示,账户加密信息2是由中心节点900通过与可信执行环境相关联的可信密钥对中的可信公钥,对账户b进行加密处理所得到的。其中,账户b可以为与中心节点900具有网络连接关系的用户终端920对应的用户(例如,用户2)的原始账户。其中,中心节点900在可信执行环境中所生成的用户2的匿名账户可以为多个,以3个为例,具体可以包括账户b1、账户b2以及账户b3。其中,账户b1与账户加密信息2具有一个哈希映射关系,且与账户b1相关联的映射哈希值为哈希值b1。账户b2与账户加密信息2具有一个哈希映射关系,且与账户b2相关联的映射哈希值为哈希值b2。账户b3与账户加密信息2具有一个哈希映射关系,且与账户b3相关联的映射哈希值为哈希值b3。

可以理解的是,用户终端920在解锁得到资产量(即电子票据xx)时,可以通过中心节点900将第二匿名账户中的电子票据xx写入至中心节点900在可信内存中所存储的第二原始账户。应当理解,中心节点900可以在上述表2中查询用户终端920的账户b1与用户终端920的账户b之间的关联关系。其中,中心节点900可以在上述表2中查询到账户b1对应的账户加密信息2,进而可以基于可信密钥对中的可信私钥对账户加密信息2进行解密,以得到用户终端920对应的原始账户(即账户b)。此时,中心节点920可以将电子票据xx写入到账户b中,从而实现资产信息的转移。

可选的,以游戏场景为例,目标业务中的资产信息也可以为该游戏场景下的虚拟资产,例如,用于购买虚拟道具的游戏币。在该游戏场景下,用户终端910可以通过中心节点900将用户终端910对应的用户1的账户(匿名账户或者原始账户)中的资产信息(例如,游戏币)发送至用户终端920的第二匿名账户(例如,账户b2),以使用户终端920可以进一步通过中心节点900将转移至第二匿名账户的游戏币汇总至与第二匿名账户相关联的账户b中。

比如,用户终端910可以基于用户1的第一匿名账户(例如,账户a2)向中心节点发送针对目标业务的资产转移请求。其中,该资产转移请求可以携带基于用户1的用户私钥对资产信息进行签名的资产签名信息、资产信息。此时,中心节点900可以基于用户1的用户公钥对资产签名信息进行验证,在验证成功时,可以检测账户a2的资产信息。其中,如图10所示,用户1的匿名账户集中的每一个匿名账户均可以暂时存储有与其他用户终端进行交易后所得到的资产信息。例如,账户a2中可以存储有3个游戏币。中心节点900可以在与用户1相关联的汇总日(例如,周一)中,将用户1的匿名账户集中的每一个匿名账户的资产信息对应的资产量,汇总至用户1的原始账户(例如,账户a)。其中,与用户1相关联的汇总日可以由用户终端910对应的用户1所确定。例如,一月中的某一天(每月15日)、一周中的某一天(周一)、一天中的某一时刻(每天下午两点)等。

可以理解的是,若账户a2中存储的资产信息对应的资产量中可以包含15个游戏币,则可以理解为账户a2的资产信息存在目标业务对应的资产信息,此时,中心节点900可以从账户a2中直接获取目标业务对应的资产信息的资产量(例如,10个游戏币)。若账户a2的资产信息对应的资产量中仅包含3个游戏币,则可以理解为账户a2的资产信息对应的资产量不足以支付目标业务对应的资产信息的资产量(即上述10个游戏币),此时,中心节点900需要基于图9所示的哈希映射关系表,从中查找账户a2与账户加密信息1之间的哈希映射关系(例如,哈希映射关系10b),进而可以确定账户a2对应的用户1的原始账户(即账户a)。在检测到账户a中具有账户a2与目标业务对应的资产量的资产量差(即7个游戏币)时,中心节点900可以从账户a中获取这7个游戏币,并在可信执行环境中将这7个游戏币写入至账户a2,以使账户a2中的资产量可以满足本次目标业务对应的资产信息的资产量。此时,中心节点900可以从账户a2中获取目标业务对应的资产信息的资产量(即10个游戏币)。

进一步地,中心节点可以获取第二匿名账户(例如,账户b2)的匿名子公钥对这10个游戏币进行资产锁定,得到锁定后的游戏币,并将锁定后的游戏币发送至账户b2,进而使得该用户终端920可以基于账户b2的匿名子私钥对锁定后的游戏币进行解锁,从而可以得到10个游戏币。

可以理解的是,中心节点900可以在由用户终端920对应的用户2所确定汇总日中,将账户b2中所包含的资产信息对应的资产量以及用户2的其他匿名账户中所包含的资产信息的资产量,基于上述表2,一并汇总至用户2的原始账户(即账户b)中。以账户b2为例,在与用户2相关联的汇总日中(例如,每天上午10点时),中心节点900可以在上述表2中查询用户终端920的账户b2与用户终端920的账户b之间的关联关系。其中,中心节点900可以在上述表2中查询到账户b2对应的账户加密信息2,进而可以基于可信密钥对中的可信私钥对账户加密信息2进行解密,以得到用户终端920对应的原始账户(即账户b)。此时,中心节点920可以将这10个游戏币写入到账户b中。

在本申请实施例中,部署有可信执行环境的中心节点可以用于存储与第一用户终端的第一原始账户,即在通过第一用户终端对应的第一用户的用户公钥生成第一用户的第一原始账户(这里指第一用户的真实账户信息)时,可以将该第一用户的第一原始账户写入可信执行环境中进行存储。进一步的,中心节点可以调用部署在该可信执行环境中的可信应用程序,衍生得到与第一原始账户相关联的k个匿名账户,进而可以建立该第一原始账户与每个匿名账户之间的映射哈希值,这里的映射哈希值可以用于反映第一原始账户与匿名账户之间的哈希映射关系。进一步的,可以理解的是,中心节点在将k个匿名账户中的每个匿名账户与每个匿名账户对应的映射哈希值成功写入区块链之后,可以确保由该第一原始账户所衍生出的多个匿名账户的有效性,进而可以将这些匿名账户返回给第一用户终端,以使第一用户终端可以通过k个匿名账户中的任意一个匿名账户与其他用户终端(比如,第二用户终端)执行目标业务(例如,执行资产转移业务)之后,确保在区块链上公开是这些匿名账户(即衍生出的虚拟账户信息),而并非是该第一用户的真实账户信息,这样可以确保用户的真实账户信息的安全性。可以理解的是,由于该第一原始账户被存储在该可信执行环境的可信内存中,外部用户甚至第一用户自己无法获知该第一原始账户的真实信息,这样,在第一用户终端与前述第二用户终端之间执行资产转移业务(即目标业务)时,会减少该第一用户的第一原始账户被泄露的风险,进而提高用户的真实账户信息的安全性。

进一步地,请参见图11,是本申请实施例提供的一种账户数据处理装置的结构示意图。该账户数据处理装置可以是运行于计算机设备中的一个计算机程序(包括程序代码),例如,该账户数据处理装置为一个应用软件;该账户数据处理装置可以用于执行本申请实施例提供的方法中的相应步骤。如图11所示,该账户数据处理装置1可以运行于部署有可信执行环境的中心节点,该中心节点可以为上述图2所对应实施例中的节点210。该账户数据处理装置1可以包括:获取模块10,验签模块11,第一确定模块12,第二确定模块13,生成模块14,调用模块15,建立模块16,打包处理模块17,广播模块18,写入模块19,返回模块20,请求接收模块21,查找模块22,解密模块23以及转移模块24。

该获取模块10,用于获取第一用户终端所发送的业务处理请求;业务处理请求携带第一用户终端对应的第一用户的用户公钥;用户公钥用于指示中心节点生成第一用户的第一原始账户;

其中,业务处理请求中包含与第一用户终端相关联的注册业务数据信息和用户签名信息;用户签名信息为第一用户终端通过第一用户的用户私钥对注册业务数据信息进行签名后所得到的;

该验签模块11,用于基于用户公钥对用户签名信息进行验签,得到验签结果;

该第一确定模块12,用于在验签结果指示验证成功时,确定第一用户为合法用户,且将第一用户所发起的业务处理请求确定为合法请求;

该第二确定模块13,用于在验签结果指示验证失败时,确定第一用户为非法用户,且将第一用户所发起的业务处理请求确定为非法请求。

该生成模块14,用于在确定业务处理请求为合法请求时,基于用户公钥生成第一用户的第一原始账户,将第一原始账户写入可信执行环境。

其中,该生成模块14包括:第一哈希计算单元141,第二哈希计算单元142以及编码单元143。

该第一哈希计算单元141,用于在确定业务处理请求为合法请求时,通过第一哈希规则和第二哈希规则对用户公钥进行哈希计算,得到用户公钥对应的公钥哈希值;

该第二哈希计算单元142,用于将一个字节的地址版本号作为公钥哈希值的头部,得到第一拼接字符串,对第一拼接字符串进行哈希计算,得到第一拼接字符串对应的待处理哈希值,从待处理哈希值中获取公钥哈希值的校验值;

该编码单元143,用于将校验值作为第一拼接字符串的尾部,得到第二拼接字符串,对第二拼接字符串进行编码处理,将编码处理后所得到的编码字符串作为第一用户的第一原始账户,将第一原始账户写入可信执行环境。

其中,该第一哈希计算单元141,第二哈希计算单元142以及编码单元143的具体实现方式可以参见上述图3所对应实施例中对步骤s102的描述,这里将不再继续进行赘述。

该调用模块15,用于调用可信执行环境中的可信应用程序,生成第一原始账户对应的密钥对;密钥对中包含k个子密钥对;k为正整数;k个子密钥对中的每个子密钥对均包含为第一原始账户所配置的子公钥。

其中,该调用模块15包括:调用单元151,生成单元152以及第一确定单元153。

该调用单元151,用于调用可信执行环境中的可信应用程序,获取可信应用程序中的私钥生成规则,根据私钥生成规则生成与第一原始账户相关联的k个子私钥;

该生成单元152,用于通过可信应用程序中的哈希加密规则,生成与k个子私钥分别对应的子公钥;一个子私钥对应一个子公钥,且一个子私钥与一个子公钥用于构建一个子密钥对;

该第一确定单元153,用于根据k个子私钥以及k个子私钥分别对应的子公钥,确定第一原始账户对应的k个子密钥对,将k个子密钥对作为第一原始账户对应的密钥对。

其中,该调用单元151,生成单元152以及第一确定单元153的具体实现方式可以参见上述图3所对应实施例中对步骤s103的描述,这里将不再继续进行赘述。

该建立模块16,用于基于k个子密钥对中的子公钥生成与第一原始账户相关联的k个匿名账户,建立第一原始账户与k个匿名账户之间的映射哈希值。

其中,该建立模块16包括:第一获取单元161,第二确定单元162,加密单元163以及建立单元164。

该第一获取单元161,用于从k个子密钥对中获取子密钥对mi;i为小于或者等于k的正整数;子密钥对mi中包含子公钥yi;子公钥yi是由子密钥对mi中的子私钥xi经过可信应用程序中的哈希加密规则所得到的;子私钥xi是由可信应用程序中的私钥生成规则所得到的;

该第二确定单元162,用于对子密钥对mi中的子公钥yi进行哈希计算,得到子公钥yi对应的子公钥哈希值,获取与子公钥哈希值相关联的地址字符串和校验字符串,基于地址字符串,子公钥哈希值以及校验字符串,确定子密钥对mi对应的匿名账户;

该加密单元163,用于在得到k个子密钥对中的每个子密钥对的匿名账户时,在可信执行环境中,通过与可信执行环境相关联的可信密钥对中的可信公钥,对第一原始账户进行加密处理,得到加密处理后的账户加密信息;

该建立单元164,用于建立账户加密信息和k个匿名账户之间的哈希映射关系表,根据哈希映射关系表中的k个哈希映射关系,确定第一原始账户与k个匿名账户之间的映射哈希值;一个哈希映射关系用于确定一个映射哈希值。

其中,该第一获取单元161,第二确定单元162,加密单元163以及建立单元164的具体实现方式可以参见上述图3所对应实施例中对步骤s104的描述,这里将不再继续进行赘述。

该打包处理模块17,用于将k个匿名账户中的每个匿名账户以及每个匿名账户对应的映射哈希值进行打包处理,得到待写入中心节点所属的区块链的待验证区块;

该广播模块18,用于将待验证区块广播至区块链上的共识节点,以使共识节点对获取到的待验证区块进行共识,得到共识结果;共识节点和中心节点均为区块链上的区块链节点;

该写入模块19,用于若在共识节点所返回的共识结果中存在超过1/2的共识结果指示共识成功,则确定区块链上的区块链节点达成共识,将待验证区块作为目标区块写入区块链。

该返回模块20,用于在将每个匿名账户和每个匿名账户对应的映射哈希值写入中心节点所属的区块链时,将每个匿名账户返回给第一用户终端,以使第一用户终端基于每个匿名账户执行目标业务。

其中,k个匿名账户中包含第一匿名账户,第一匿名账户用于指示第一用户终端执行向第二匿名账户对应的第二用户终端进行资产转移的目标业务;

该请求接收模块21,用于接收第一用户终端基于第一匿名账户所发送的资产转移请求;资产转移请求中携带目标业务对应的资产信息、资产信息对应的资产签名信息以及与第一匿名账户相关联的目标映射哈希值;资产签名信息是由第一用户终端通过第一匿名账户的子私钥对资产信息进行签名后所得到的;

该查找模块22,用于在通过第一匿名账户的子私钥对应的子公钥对资产签名信息进行成功验签后,在哈希映射关系表中查找与目标映射哈希值和第一匿名账户相关联的目标哈希映射关系,基于目标哈希映射关系确定第一原始账户对应的账户加密信息;目标哈希映射关系为哈希映射关系表中的一个哈希映射关系;

该解密模块23,用于基于可信密钥对中的可信私钥,对账户加密信息进行解密处理,得到第一用户终端对应的第一原始账户;

该转移模块24,用于从第一原始账户中获取资产信息,将资产信息通过第一匿名账户转移至第二用户终端,以使第二用户终端通过中心节点将资产信息存储至与第二匿名账户相关联的第二原始账户。

其中,资产信息包含用于进行资产转移的资产量;

该转移模块24包括:第二获取单元241,锁定单元242以及写入单元243。

该第二获取单元241,用于在检测到第一原始账户中存在目标业务对应的资产信息时,从第一原始账户中获取资产信息中的资产量,将资产量写入第一匿名账户;

该锁定单元242,用于根据第二匿名账户的匿名子公钥对资产量进行锁定,将锁定后的资产量通过第一匿名账户发送至第二匿名账户,以使第二匿名账户对应的第二用户终端基于匿名子公钥对应的匿名子私钥解锁得到资产量。

该写入单元243,用于根据第二匿名账户和第二匿名账户对应的第二原始账户之间的关联关系,将资产量写入到可信执行环境中的第二用户对应的第二原始账户;第二用户为第二用户终端的用户;第二原始账户为可信执行环境的用户集中所存在的第二用户的原始账户;关联关系是由第二匿名账户和第二原始账户的加密数据信息之间的映射哈希值所确定的。

其中,该第二获取单元241,锁定单元242以及写入单元243的具体实现方式可以参见上述图8所对应实施例中对步骤s209的描述,这里将不再继续进行赘述。

其中,该获取模块10,验签模块11,第一确定模块12,第二确定模块13,生成模块14,调用模块15,建立模块16,打包处理模块17,广播模块18,写入模块19,返回模块20,请求接收模块21,查找模块22,解密模块23以及转移模块24的具体实现方式可以参见上述图8所对应实施例中对步骤s201-步骤s209的描述,这里将不再继续进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。

进一步地,请参见图12,是本申请实施例提供的一种计算机设备的示意图。如图12所示,该计算机设备1000可以为上述图2对应实施例中的节点210,该计算机设备1000可以包括:至少一个处理器1001,例如cpu,至少一个网络接口1004,用户接口1003,存储器1005,至少一个通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。其中,用户接口1003可以包括显示屏(display)、键盘(keyboard),网络接口1004可选地可以包括标准的有线接口、无线接口(如wi-fi接口)。存储器1005可以是高速ram存储器,也可以是非不稳定的存储器(non-volatilememory),例如至少一个磁盘存储器。存储器1005可选地还可以是至少一个位于远离前述处理器1001的存储装置。如图12所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及设备控制应用程序。

在图12所示的计算机设备1000中,网络接口1004主要用于与第一用户终端以及第二用户终端进行网络通信;而用户接口1003主要用于为用户提供输入的接口;而处理器1001可以用于调用存储器1005中存储的设备控制应用程序,以实现:

获取第一用户终端所发送的业务处理请求;业务处理请求携带第一用户终端对应的第一用户的用户公钥;用户公钥用于指示中心节点生成第一用户的第一原始账户;

在确定业务处理请求为合法请求时,基于用户公钥生成第一用户的第一原始账户,将第一原始账户写入可信执行环境;

调用可信执行环境中的可信应用程序,生成第一原始账户对应的密钥对;密钥对中包含k个子密钥对;k为正整数;k个子密钥对中的每个子密钥对均包含为第一原始账户所配置的子公钥;

基于k个子密钥对中的子公钥生成与第一原始账户相关联的k个匿名账户,建立第一原始账户与k个匿名账户之间的映射哈希值;

在将每个匿名账户和每个匿名账户对应的映射哈希值写入中心节点所属的区块链时,将每个匿名账户返回给第一用户终端,以使第一用户终端基于每个匿名账户执行目标业务。

应当理解,本申请实施例中所描述的计算机设备1000可执行前文图3和图8所对应实施例中对该账户数据处理方法的描述,也可执行前文图11所对应实施例中对该账户数据处理装置1的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。

此外,这里需要指出的是:本申请实施例还提供了一种计算机可读存储介质,且该计算机可读存储介质中存储有前文提及的账户数据处理装置1所执行的计算机程序,且该计算机程序包括程序指令,当该处理器执行该程序指令时,能够执行前文图3或者图8所对应实施例中对该账户数据处理方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机可读存储介质实施例中未披露的技术细节,请参照本申请方法实施例的描述。作为示例,程序指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行,分布在多个地点且通过通信网络互连的多个计算设备可以组成区块链系统。

进一步地,请参见图13,是本申请实施例提供的一种账户数据处理装置的结构示意图。该账户数据处理装置可以是运行于计算机设备中的一个计算机程序(包括程序代码),例如,该账户数据处理装置为一个应用软件;该账户数据处理装置可以用于执行本申请实施例提供的方法中的相应步骤。如图13所示,该账户数据处理装置2可以运行于第一用户终端,该第一用户终端可以为上述图2所对应实施例中的用户终端的200。该账户数据处理装置2可以包括:发送模块100以及接收模块200。

该发送模块100,用于向部署有可信执行环境的中心节点发送业务处理请求;业务处理请求携带第一用户终端对应的第一用户的用户公钥;用户公钥用于指示中心节点生成第一用户的第一原始账户。

其中,该发送模块100包括:签名单元1010以及请求生成单元1020。

该签名单元1010,用于基于第一用户终端对应的第一用户的用户私钥,对与第一用户终端相关联的注册业务数据信息进行签名,得到用户签名信息;

该请求生成单元1020,用于基于用户签名信息、注册业务数据信息以及用户私钥对应的用户公钥,生成用于向部署有可信执行环境的中心节点发送的业务处理请求;业务处理请求用于指示中心节点基于业务处理请求所携带的用户公钥对用户签名信息进行签名验证。

其中,该名单元1010以及请求生成单元1020的具体实现方式可以参见上述图8所对应实施例中对步骤s201的描述,这里将不再继续进行赘述。

该接收模块200,用于接收中心节点所返回的k个匿名账户;k为正整数;k个匿名账户是由中心节点基于第一原始账户对应的k个子密钥对中的子公钥所生成的;k个子密钥对是由中心节点调用可信执行环境中的可信应用程序所生成的。

其中,该发送模块100以及接收模块200的具体实现方式可以参见上述图8所对应实施例中对步骤s201-步骤s209的描述,这里将不再继续进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。

进一步地,请参见图14,是本申请实施例提供的一种计算机设备的示意图。如图14所示,该计算机设备3000可以为上述图2对应实施例中的用户终端200,该计算机设备3000可以包括:至少一个处理器3001,例如cpu,至少一个网络接口3004,用户接口3003,存储器3005,至少一个通信总线3002。其中,通信总线3002用于实现这些组件之间的连接通信。其中,用户接口3003可以包括显示屏(display)、键盘(keyboard),网络接口3004可选地可以包括标准的有线接口、无线接口(如wi-fi接口)。存储器3005可以是高速ram存储器,也可以是非不稳定的存储器(non-volatilememory),例如至少一个磁盘存储器。存储3005可选地还可以是至少一个位于远离前述处理器3001的存储装置。如图14所示,作为一种计算机存储介质的存储器3005中可以包括操作系统、网络通信模块、用户接口模块以及设备控制应用程序。

在图14所示的计算机设备3000中,网络接口3004主要用于与部署有可信执行环境的中心节点进行网络通信;而用户接口3003主要用于为用户提供输入的接口;而处理器3001可以用于调用存储器3005中存储的设备控制应用程序,以实现:

向部署有可信执行环境的中心节点发送业务处理请求;业务处理请求携带第一用户终端对应的第一用户的用户公钥;用户公钥用于指示中心节点生成第一用户的第一原始账户;

接收中心节点所返回的k个匿名账户;k为正整数;k个匿名账户是由中心节点基于第一原始账户对应的k个子密钥对中的子公钥所生成的;k个子密钥对是由中心节点调用可信执行环境中的可信应用程序所生成的。

应当理解,本申请实施例中所描述的计算机设备3000可执行前文图8所对应实施例中对该账户数据处理方法的描述,也可执行前文图13所对应实施例中对该账户数据处理装置2的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。

此外,这里需要指出的是:本申请实施例还提供了一种计算机可读存储介质,且该计算机可读存储介质中存储有前文提及的账户数据处理装置2所执行的计算机程序,且该计算机程序包括程序指令,当该处理器执行该程序指令时,能够执行前文图8所对应实施例中对该账户数据处理方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机可读存储介质实施例中未披露的技术细节,请参照本申请方法实施例的描述。作为示例,程序指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行,分布在多个地点且通过通信网络互连的多个计算设备可以组成区块链系统。

进一步的,请参见图15,是本申请实施例提供的一种账户数据处理系统的结构示意图。该账户数据处理系统3可以包含账户数据处理装置1a和账户数据处理装置2a。其中,账户数据处理装置1a可以为上述图11所对应实施例中的账户数据处理装置1,可以理解的是,该账户数据处理装置1a可以集成在上述图2所对应实施例中的中心节点210,因此,这里将不再进行赘述。其中,账户数据处理装置2a可以为上述图13所对应实施例中的账户数据处理装置2,可以理解的是,该账户数据处理装置2a可以集成在上述图2所对应实施例中的用户终端200,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的账户数据处理系统实施例中未披露的技术细节,请参照本申请方法实施例的描述。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,上述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,上述的存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)或随机存储记忆体(randomaccessmemory,ram)等。

以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。

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