CN109886043A - 用于生成区块链参与方的组织凭证的方法和装置 - Google Patents

用于生成区块链参与方的组织凭证的方法和装置 Download PDF

Info

Publication number
CN109886043A
CN109886043A CN201910110097.4A CN201910110097A CN109886043A CN 109886043 A CN109886043 A CN 109886043A CN 201910110097 A CN201910110097 A CN 201910110097A CN 109886043 A CN109886043 A CN 109886043A
Authority
CN
China
Prior art keywords
program
block chain
interface
sealing
chain participant
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.)
Granted
Application number
CN201910110097.4A
Other languages
English (en)
Other versions
CN109886043B (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.)
Shanghai Point Information Technology Co Ltd
Original Assignee
Shanghai Point Information 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 Shanghai Point Information Technology Co Ltd filed Critical Shanghai Point Information Technology Co Ltd
Priority to CN201910110097.4A priority Critical patent/CN109886043B/zh
Publication of CN109886043A publication Critical patent/CN109886043A/zh
Application granted granted Critical
Publication of CN109886043B publication Critical patent/CN109886043B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本公开的实施例公开了用于生成区块链参与方的组织凭证的方法和装置。该方法包括:从BaaS平台接收提供第一和第二接口的第一程序;接收对生成第一区块链参与方的第一组织凭证的请求;调用第一接口以基于第一程序的作者生成密封的根私钥和根公钥,使得密封的根私钥可由与第一程序具有相同作者的程序获取;获取并验证该请求的签名信息,签名信息包括由至少一个其它区块链参与方使用其身份私钥对该请求进行签名生成的第一签名信息;若验证通过,调用第二接口以使用密封的根私钥生成第一组织凭证,第二接口的入口参数包括该请求。利用本公开的实施例的方法可以在无权威的签发者的情况下为基于隐私保护的区块链系统提供安全的组织凭证签发能力。

Description

用于生成区块链参与方的组织凭证的方法和装置
技术领域
本公开属于区块链技术领域,尤其涉及一种用于生成区块链参与方的组织凭证的方法、装置以及一种相应的计算机可读存储介质。
背景技术
区块链(Blockchain)是用分布式数据库识别、传播和记载信息的智能化对等网络,也称为价值互联网。区块链具有去中心化、反篡改、数据一致性存储、过程透明可追踪等技术优势,其被认为在金融、征信、物联网、经济贸易结算、资产管理等众多领域都拥有广泛的应用前景。
由于区块链账本的公开透明性,所有的交易信息都记录在区块链账本中,但是在一些基于区块链的业务场景中,对于区块链参与方(例如,组织,其可以包括一个或多个用户)的交易隐私保护变得非常重要。在现有的隐私保护技术中,拥有公钥和私钥的签发者利用私钥为组织签发组织凭证,其中,组织凭证对应于组织密码(凭证和密码加起来相当于组织私钥,组织没有公钥),组织使用组织凭证和密码对交易进行签名,验证者需要使用签发者的公钥对签名进行验证。因此,如果签发者为很多组织都签发了凭证,那么验证者无法知道交易是使用哪个组织凭证和密码来签名的,即无法知道签名属于哪个组织,从而实现了交易者的隐私保护。
然而,与传统的PKI(公钥基础设施)体系(其具有非常权威的CA(证书认证)中心)相比,在现有的隐私保护技术中,没有权威的签发者,如何安全地签发组织凭证是一个亟待解决的问题。
发明内容
本公开的实施例提供了一种用于生成区块链参与方的组织凭证的方法、装置和相应的计算机可读存储介质,以至少部分地解决上述及其它潜在的问题。
本公开的实施例的第一方面提供了一种用于生成区块链参与方的组织凭证的方法,所述方法包括:
从BaaS平台接收第一程序,所述第一程序提供第一接口和第二接口;
从第一区块链参与方接收对生成第一区块链参与方的第一组织凭证的请求;
调用第一程序的所述第一接口,以基于所述第一程序的作者生成密封的根私钥和根公钥,使得所述密封的根私钥可由与所述第一程序具有相同作者的程序获取;
获取并验证所述请求的签名信息,所述签名信息包括由至少一个其它区块链参与方使用所述至少一个其它区块链参与方的身份私钥对所述请求进行签名来生成的第一签名信息;
在验证通过的情况下,调用所述第一程序的所述第二接口,以使用所述密封的根私钥来生成所述第一区块链参与方的第一组织凭证,其中,所述第二接口的入口参数包括所述请求。
本公开的实施例的第二方面提供了一种用于生成区块链参与方的组织凭证的装置,所述装置包括:
处理器;以及
存储器,其用于存储指令,当所述指令被执行时使得所述处理器执行以下步骤:
从BaaS平台接收第一程序,所述第一程序提供第一接口和第二接口,所述第一程序的作者与所述BaaS平台相关;
从第一区块链参与方接收对生成第一区块链参与方的第一组织凭证的请求;
调用所述第一程序的所述第一接口,以基于所述第一程序的作者生成密封的根私钥和根公钥,使得所述密封的根私钥可由与所述第一程序具有相同作者的程序获取;
获取并验证所述请求的签名信息,所述签名信息包括由至少一个其它区块链参与方使用所述至少一个其它区块链参与方的身份私钥对所述请求进行签名来生成的第一签名信息;
在验证通过的情况下,调用所述第一程序的所述第二接口,以使用所述密封的根私钥来生成所述第一区块链参与方的第一组织凭证,其中,所述第二接口的入口参数包括所述请求。
本公开的实施例的第三方面提供了一种计算机可读存储介质,包括计算机可执行指令,所述计算机可执行指令在装置中运行时使得所述装置执行根据本公开的实施例的第一方面所述的用于生成区块链参与方的组织凭证的方法。
依据本公开的实施例的用于生成区块链参与方的组织凭证的方法、装置以及相应的计算机可读存储介质可以在无权威的签发者的情况下为基于隐私保护的区块链系统提供安全的组织凭证签发能力。
附图说明
结合附图并参考以下详细说明,本公开的各实施例的特征、优点及其他方面将变得更加明显,在此以示例性而非限制性的方式示出了本公开的若干实施例,在附图中:
图1中示出了本公开的实施例可以应用于其中的示例性BaaS平台系统100的示意架构图。
图2示出了根据本公开的实施例的用于生成区块链参与方的组织凭证的示例性方法200的流程图。
图3示出了根据本公开的实施例的用于生成区块链参与方的组织凭证的示例性装置300的框图。
图4示出了根据本公开的实施例的用于生成密封的根私钥和根公钥的具体示例400。
图5示出了根据本公开的实施例的用于签发区块链参与方的组织凭证的具体示例500。
具体实施方式
以下参考附图详细描述本公开的各个示例性实施例。附图中的流程图和框图示出了根据本公开的各种实施例的方法和系统的可能实现的体系架构、功能和操作。应当注意,流程图或框图中的每一个方框可以代表一个模块、程序段、或代码的一部分,所述模块、程序段、或代码的一部分可以包括一个或多个用于实现各个实施例中所规定的逻辑功能的可执行指令。也应当注意,在有些作为备选的实现中,方框中所标注的功能也可以按照不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,或者它们有时也可以按照相反的顺序执行,这取决于所涉及的功能。同样应当注意的是,流程图和/或框图中的每一个方框、以及流程图和/或框图中的方框的组合,可以使用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以使用专用硬件与计算机指令的组合来实现。
本文所使用的术语“包括”、“包含”及类似术语是开放性的术语,即“包括/包含但不限于”,表示还可以包括其他内容。术语“基于”是“至少部分地基于"。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”等等。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当视为说明书的一部分。对于附图中的各单元之间的连线,仅仅是为了便于说明,其表示至少连线两端的单元是相互通信的,并非旨在限制未连线的单元之间无法通信。
为了便于描述,下面对本公开中出现的一些术语进行说明,应当理解,本申请所使用的术语应解释为具有与其在本申请说明书的上下文及有关领域中的意义一致的意义。
本公开中的术语“区块链参与方”是指区块链网络中由一个或多个用户形成的组织或其它类似的形式。例如,在基于区块链的跨区域的物流运输系统中,多个物流公司或提供物流服务的商家可以形成组织。
本公开中的术语“密封”是指使用与密封策略相关的加密方法来对数据进行保护。例如,当密封策略是具有同一个作者的程序可以获取密封的数据时,则采用该密封策略来保护的数据仅可被具有同一个作者的程序获取。
本公开中的术语“第一”、“第二”仅用于描述指代、目的或某具体事物,而不能理解为指示或暗示相对重要性,或者隐含指明所指示的技术特征的数量。
本公开中的术语“可信计算环境”(或称可信执行环境)是指计算设备(例如,智能手机、平板电脑、机顶盒、智能电视等)上提供的一个安全区域,其可以保证加载到该环境内部的代码和数据的安全性、机密性以及完整性。可信计算环境提供一个隔离的执行环境,保护其不受恶意软件的攻击,使特权或者非特权的软件无法访问该环境,提供的安全特征包含:隔离执行、可信应用的完整性、可信数据的机密性、安全存储等。例如,由处理器级的软件防护扩展(Software Guard Extensions,SGX)或安全加密虚拟化(Secure EncryptedVirtualization,SEV)创建的安全环境可以理解为可信计算环境。应当理解,可信计算环境还可以包括通过类似技术形成的安全环境。
本公开中的术语“多个”是指两个或两个以上。
如前所述,由于区块链账本的公开透明性,所有的交易信息都记录在区块链账本中,但是在一些基于区块链的业务场景中,对于区块链参与方的交易隐私保护变得非常重要。在传统的PKI体系中,一个私钥对应于一个证书,利用私钥生成的签名可以通过对应的证书进行验证,证书可以由例如权威的第三方CA认证中心进行签发。但是在隐私保护技术中,拥有公钥和私钥的签发者利用私钥为区块链参与方签发组织凭证,组织凭证对应一个组织密码,该区块链参与方使用组织凭证和组织密码进行签名(例如,对调用智能合约实现的交易进行签名),验证者需要使用签发者的公钥对签名进行验证。然而,与传统的PKI体系相比,在现有的隐私保护技术中,没有权威的签发者。由于签发者可以签发组织凭证,然后使用组织凭证和对应的组织密码就可以在区块链中实现交易,使得签发者拥有非常大的权力。因此,在具有隐私保护的区块链系统中,谁能承担签发者的角色,如何签发组织凭证,显得尤为重要。
例如,在基于区块链的跨区域的物流运输系统中,有多家物流公司承担具体运输任务,同时也有商家提供需要运输的货物。这些物流公司既有协作关系,同时也有业务上的竞争关系。具体的货物的物流信息需要实时记录在区块链上。通过隐私保护技术,虽然区块链中记录了了货物的运送信息,但是货物的承运物流公司的身份会被隐藏,互相竞争的物流公司并不能知道对方的业务规模和业务频率等商业信息。但是,在这样的基于隐私保护的区块链系统中,如何在无权威的签发者的情况下为各区块链参与方安全地签发组织凭证参与区块链业务是一个亟待解决的问题。
在本公开的解决方案中,区块链网络中的区块链参与方可以具有多种类型的组织密钥:例如,一种是例如标准的PKI体系的证书和私钥等,用于识别该区块链参与方的身份,但不用于对交易进行签名;另一种是用于隐私保护的组织凭证,对应一个密码,组织凭证和密码可以用于对交易进行签名。
诸如区块链即服务(BaaS,Blockchain as a Service)平台的区块链应用平台提供这样的服务:它帮助企业用户能够在各种服务平台(诸如云服务平台)上快速部署区块链物理网络、管理区块链节点、账本、智能合约等区块链相关要素,让企业无需关注区块链的各种技术细节,而只需关注区块链业务的开展。目前,基于云的BaaS成为区块链技术的一个应用热点。本文中以基于云平台的实施例来示例说明用于生成区块链参与方的组织凭证的方案。本领域技术人员可以理解,本公开的实施例并不限于应用于基于私有云、公有云或者非基于云平台的区块链。
图1示出了本公开的实施例可以应用于其中的示例性BaaS平台系统100的示意架构图。在图1中,BaaS平台系统100基于云110而架设,其包括BaaS平台120、由BaaS平台120管理的多个区块链130、140和150以及示意性示出的存储设备160。BaaS平台系统100可以为用户提供公有链、联盟链或私有链服务。存储设备160用于存储BaaS平台系统100的各种配置数据、用户信息、日志数据等等。例如,BaaS平台120的用户可以从用户设备或客户端170例如经由BaaS平台120服务商公开的接口(例如,应用程序接口(Application ProgramInterface,API))来与BaaS平台120交互。例如,用户还可以通过客户端170与各区块链网络130-150中的区块链参与方交互。BaaS平台120可以管理(例如,创建等)多个区块链网络130、140和150,区块链网络130-150可以是特定于用户的,各自包括若干个区块链节点。在云应用环境中,区块链网络的至少一个节点可以对应于在云上创建的虚拟机实例,虚拟机实例中运行相应的节点应用程序。各个区块链网络具有相应的区块链应用,诸如金融、征信、物联网、经济贸易结算、资产管理等领域的各种应用。
需要注意的是,尽管区块链网络130、140和150被示意为各自独立,但各区块链网络也可以包括共同的区块链节点。例如,某个区块链节点可以属于一个或多个区块链网络。另外,图1中的区块链网络、客户端以及存储设备的数量仅是示意而非限制,其可以是任意数量。
图2示出了根据本公开的实施例的用于生成区块链参与方的组织凭证的示例性方法200的流程图。可以将该方法200实现在图1的BaaS平台系统100上,下面将参照图1和图2来描述方法200。方法200可以由图1中的客户端170执行。如流程图所示,方法200可以包括以下步骤:
步骤201:从BaaS平台接收第一程序,第一程序提供第一接口和第二接口。例如,客户端170可以从BaaS平台120接收第一程序,该第一程序提供第一和第二接口以用于不同的调用。在一个示例中,第一程序的作者可以与BaaS平台相关。例如,第一程序可以由BaaS平台120生成,即BaaS平台120是第一程序的作者,或者第一程序可以由BaaS平台120允许/接受的作者生成。
步骤202:从第一区块链参与方接收对生成第一区块链参与方的第一组织凭证的请求。例如,客户端170可以从区块链网络130中的一个区块链参与方(即,第一区块链参与方)接收对生成该区块链参与方的第一组织凭证的请求。
步骤203:调用第一程序的第一接口,以基于第一程序的作者生成密封的根私钥和根公钥,使得密封的根私钥可由与第一程序具有相同作者的程序获取。例如,在客户端170处,可以运行第一程序并调用所提供的第一接口,以生成密封的根私钥和根公钥,并且采用的密封策略是具有同一个作者的程序可以获取密封的数据。例如,密封可以是使用与第一程序的作者相关联的密钥对数据进行加密/解密。在该步骤中,通过提供密封手段,使得所生成的根私钥和根公钥能够被安全地获取以用于生成组织凭证。
步骤204:获取并验证该请求的签名信息,该签名信息包括由至少一个其它区块链参与方使用该至少一个其它区块链参与方的身份私钥对该请求进行签名来生成的第一签名信息。例如,在客户端170处,获取该请求的签名信息,该签名信息包括由至少一个其它区块链参与方使用该至少一个其它区块链参与方的身份私钥对该请求进行签名来生成的第一签名信息。例如,签名信息可以包括在该请求中或随同请求而发送。在一个示例中,签名信息可以由第一区块链参与方从其它区块链参与方收集(例如,可以通过线下的方式获取其它区块链参与方对于该请求的签名),并发送给客户端170。
步骤205:在验证通过的情况下,调用第一程序的第二接口,以使用密封的根私钥来生成第一区块链参与方的第一组织凭证,其中,第二接口的入口参数包括该请求。例如,在客户端170处,当签名信息被验证通过时,可以运行第一程序并调用所提供的第二接口,以使用密封的根私钥来第一组织凭证,第二接口的入口参数包括该请求。
通过上述步骤201-205提供的用于生成区块链参与方的组织凭证的解决方案具有如下优点:
1、由于组织凭证和密码的敏感性,BaaS平台并不为区块链参与方负责签发组织凭证,而是通过由BaaS平台提供的程序在客户端处为区块链参与方负责签发组织凭证,避免了中心化的BaaS平台对区块链参与方组织凭证的管理(例如,用户可能担心BaaS服务提供商是否能安全地生成和保管用户的组织凭证,并且还担心服务商会不会窃取用户的组织凭证等);
2、通过采用密封手段来安全地获取用于生成组织凭证的根私钥和根公钥,以便可靠地使用根私钥来生成组织凭证;
3、签发组织凭证时需要获得其它区块链参与方的同意,从而确保签发者不能随意签发组织凭证,使得在没有权威签发者的情况下,可以安全地签发组织凭证。
此外,应当理解,上述步骤201-205中的至少一些可以以与图2的顺序不同的顺序来执行,并实现相同或相似的效果和优点。
在一些实施例中,第一接口的入口参数包括用于私密性保护的属性名称列表,第二接口的入口参数还包括与属性名称列表相对应的属性值列表,并且所生成的第一组织凭证包括所述属性值列表中的至少一个属性值。例如,在基于隐私保护的区块链系统中,可以通过在签名中携带特定的属性来防止一些关键或重要的用户信息的暴露。第一接口的入口参数包括用于私密性保护的属性名称列表,例如属性名称列表可以包括用户年龄等。相应地,第二接口的入口参数还可以包括与属性名称列表相对应的属性值列表,并且所生成的第一组织凭证可以包括所述属性值列表中的至少一个属性值,例如,对于属性为用户年龄而言,可以用属性值18来表示用户已经年满18岁,从而避免用户真实年龄的暴露。在该步骤中,可以进一步通过在所生成的用户凭证中携带用于私密性保护的属性值来防止区块链参与方的关键或重要信息的暴露。
在一些实施例中,第一程序还提供第三接口,方法200还可以包括:调用所述第一程序的第三接口,以基于第一程序的作者生成密封的临时私钥,使得密封的临时私钥可由与第一程序具有相同作者的程序获取;并且步骤205可以包括:使用密封的临时私钥对第一组织凭证进行签名。例如,BaaS平台120可以在向客户端170提供的第一程序中注入临时私钥,使得在运行第一程序并调用第三接口时,生成密封的临时私钥,并且在调用第一程序的第二接口时,使用临时私钥对第一组织凭证进行签名。在该步骤中,可以通过临时私钥来防止签发者没有通过用于签发组织凭证的第一程序来签发组织凭证,从而确保签发组织凭证的可靠性和安全性。
在一些实施例中,方法200还可以包括:从BaaS平台接收第二程序,第二程序与第一程序具有相同的作者;调用第二程序,以基于第二程序的作者生成密封的临时私钥,使得密封的临时私钥可由与第二程序具有相同作者的程序获取;并且步骤205可以包括:使用密封的临时私钥对第一组织凭证进行签名。例如,客户端170可以从BaaS平台120接收第二程序,通过调用第二程序来生成密封的临时私钥,由于第二程序和第一程序具有相同的作者,使得第一程序可以获取并使用临时私钥对第一组织凭证进行签名。在该步骤中,可以通过临时私钥来防止签发者没有通过用于签发组织凭证的第一程序来签发组织凭证,从而确保签发组织凭证的可靠性和安全性。
在一些实施例中,方法200还可以包括:向第一区块链参与方发送经签名的第一组织凭证。例如,第一区块链参与方可以从BaaS平台120或其相关联的装置获取与临时私钥相对应的证书或公钥,以验证第一组织凭证的签名是否正确,只有在验证通过后,第一组织凭证才能获得申请者的认可。
在一些实施例中,方法200还可以包括:获取BaaS平台的平台公钥,其中,第一程序是经由BaaS平台的与平台公钥相对应的平台私钥来签名的;使用平台公钥来验证经签名的第一程序。在该步骤中,可以通过平台私钥来确保用于签发组织凭证的第一程序来自于BaaS平台,从而确保用于签发组织凭证的程序的来源的可靠性。
在一些实施例中,方法200还可以包括:获取参与方列表信息,该参与方列表信息表示用于控制生成组织凭证的指定区块链参与方;并且步骤204可以包括:使用该至少一个其它区块链参与方的对应的身份公钥来验证第一签名信息是否正确并验证第一签名信息是否与指定区块链参与方相符合,如果验证结果为正确且相符合,则验证通过,如果验证不正确和/或不相符合,则验证不通过。例如,BaaS平台120可以根据用户的设置,动态生成签发组织凭证的第一程序。例如,BaaS平台120可以在向客户端170提供的第一程序中注入参与方列表信息,使得在第一程序运行时获取到参与方列表信息,或者可以以其它方式(例如,以前述生成临时私钥的方式)获取参与方列表信息。参与方列表信息表示用于控制生成组织凭证的指定区块链参与方,也就是说,必须经过指定区块链参与方同意,才能签发组织凭证。在该步骤中,通过验证请求的签名信息来确定签名是否正确和签名是否满足指定区块链参与方的要求,使得在没有可信第三方(例如,权威的签发者)的情况下,保证只有特定的区块链参与方同意,才能安全地签发组织凭证。
在一些实施例中,签名信息还包括由第一区块链参与方使用第一区块链参与方的身份私钥对该请求进行签名来生成的第二签名信息;并且步骤204可以包括:使用第一区块链参与方的对应的身份公钥来验证第二签名信息是否正确,如果验证结果为正确,则验证通过,如果验证结果为不正确,则验证不通过。在该步骤中,通过验证签名信息确定签名是否来自第一区块链参与方来确保对签发组织凭证的请求来自于第一区块链参与方,以防止其它区块链参与方申请第一区块链参与方的第一组织凭证,从而提高了组织凭证的获取的安全性。
在一些实施例中,在可信计算环境中实现第一接口和第二接口的调用。在该步骤中,通过在可信计算环境中实现第一程序的第一和第二接口的调用,可以为程序的接口调用提供隔离的执行环境,保护其不受恶意软件的攻击,使特权或者非特权的软件无法访问该环境。例如,通过在可信计算环境中实现第一接口和第二接口的调用,以分别生成根私钥和组织凭证,使区块链参与方可以确信根私钥和组织凭证没有泄露的安全隐患,并使可信计算环境之外的程序(例如,诸如病毒程序之类的恶意程序、诸如操作系统(OS)或虚拟机监控器(VMM)之类的特权程序或其他非特权程序等)无法威胁在可信计算环境中执行的代码的安全性,从而有效地提高对根私钥和组织凭证的保护性。例如,这种可信计算环境的安全性服务可以容易地通过硬件级(例如,诸如中央处理器(CPU)之类的处理器等)安全技术来实现或升级,以显著降低生成组织凭证的成本。在其它示例中,第一程序的其它接口以及第二程序的调用也可以在可信计算环境中实现。
根据图2的实施例,可以避免了中心化的BaaS平台对区块链参与方组织凭证的管理,并且可以在无权威的签发者的情况下为基于隐私保护的区块链系统提供安全的组织凭证签发能力。
图3示出了根据本公开的实施例的用于生成区块链参与方的组织凭证的示例性装置300的框图。如图3所示,装置300包括至少一个处理器301和存储器302,当存储在存储器302中的指令执行时使得该至少一个处理器301执行本文所描述的方法(例如,图2的方法200以及图4的具体示例400和图5的具体示例500)的步骤中的任何一个或多个步骤。
存储器302还可以存储数据,例如指令在执行时所操作的数据等。存储器302可以包括易失性存储器和非易失性存储器,诸如只读存储器(ROM)、随机存取存储器(RAM)、移动盘、磁盘、光盘和U盘等。处理器301可以是中央处理器(CPU)、微控制器、专用集成电路(ASIC)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)或其他可编程逻辑器件、或是被配置为实现本公开的实施例的一个或多个集成电路。
图4示出了根据本公开的实施例的用于生成密封的根私钥和根公钥的具体示例400。示例400示出了BaaS平台410与客户端420之间的交互,BaaS平台410可以是例如图1的BaaS平台120,客户端420可以是例如图1的客户端170。示例400可以包括以下步骤:1、客户端420通过管理器430从BaaS平台410接收第一程序440,管理器430可以用于管理各种操作,例如数据的收发、程序的执行等;2、客户端420通过管理器430运行第一程序440,例如可以在可信计算环境460中运行第一程序440;3、调用第一程序440的第一接口(未示出)以生成密封的根私钥和根公钥450,例如可以通过使用与第一程序440的作者相关联的密钥对根私钥和根公钥进行加密,以存储在存储装置470(例如,非易失性存储器)中。
根据图4的实施例,可以安全且可靠地生成用于签发组织凭证的根私钥。
图5示出了根据本公开的实施例的用于签发区块链参与方的组织凭证的具体示例500。示例500示出了第一区块链参与方510与客户端420之间的交互。示例500可以包括以下步骤:1、客户端420从第一区块链参与方接收第一区块链参与方申请签发第一组织凭证的请求,例如该请求可以包括区块链参与方的签名信息;2、验证区块链参与方的签名信息,运行第一程序440,例如可以在可信计算环境460中运行第一程序440,签名信息可以包括例如第一区块链参与方和/或其它区块链参与方对该请求的签名;3、第一程序440读取根私钥和根公钥,例如从存储装置470获取密封的根私钥和根公钥并进行解密以读取根私钥;4、调用第一程序440的第二接口(未示出)以生成第一组织凭证;5、客户端420向第一区块链参与方返回第一组织凭证。
根据图5的实施例,可以在无权威的签发者的情况下为基于隐私保护的区块链系统提供安全的组织凭证签发能力。
此外,在图4的示例400和图5的示例500中,还可以包括以下步骤:生成密封的临时私钥,使用密封的临时私钥来对生成的第一组织凭证进行签名,并向第一区块链参与方发送经签名的第一组织凭证。
另外或替代地,上述方法能够通过计算机程序产品,即计算机可读存储介质来实现。计算机程序产品可以包括计算机可读存储介质,其上载有用于执行本公开的各个方面的计算机可读程序指令。计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是但不限于电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
一般而言,本公开的各种示例实施例可以在硬件或专用电路、软件、固件、逻辑,或其任何组合中实施。某些方面可以在硬件中实施,而其他方面可以在可以由控制器、微处理器或其他计算设备执行的固件或软件中实施。当本公开的实施例的各方面图示或描述为框图、流程图或使用某些其他图形表示时,将理解此处描述的方框、装置、系统、技术或方法可以作为非限制性的示例在硬件、软件、固件、专用电路或逻辑、通用硬件或控制器或其他计算设备,或其某些组合中实施。
应当注意,尽管在上文的详细描述中提及了装置的若干模块或单元,但是这种划分仅仅是示例性而非强制性的。实际上,根据本公开的实施例,上文描述的两个或更多模块的特征和功能可以在一个模块中具体化。反之,上文描述的一个模块的特征和功能可以进一步划分为由多个模块来具体化。
以上所述仅为本公开的实施例可选实施例,并不用于限制本公开的实施例,对于本领域的技术人员来说,本公开的实施例可以有各种更改和变化。凡在本公开的实施例的精神和原则之内,所作的任何修改、等效替换、改进等,均应包含在本公开的实施例的保护范围之内。
虽然已经参考若干具体实施例描述了本公开的实施例,但是应该理解,本公开的实施例并不限于所公开的具体实施例。本公开的实施例旨在涵盖在所附权利要求的精神和范围内所包括的各种修改和等同布置。所附权利要求的范围符合最宽泛的解释,从而包含所有这样的修改及等同结构和功能。

Claims (19)

1.一种用于生成区块链参与方的组织凭证的方法,其特征在于,所述方法包括:
从BaaS平台接收第一程序,所述第一程序提供第一接口和第二接口;
从第一区块链参与方接收对生成第一区块链参与方的第一组织凭证的请求;
调用第一程序的所述第一接口,以基于所述第一程序的作者生成密封的根私钥和根公钥,使得所述密封的根私钥可由与所述第一程序具有相同作者的程序获取;
获取并验证所述请求的签名信息,所述签名信息包括由至少一个其它区块链参与方使用所述至少一个其它区块链参与方的身份私钥对所述请求进行签名来生成的第一签名信息;
在验证通过的情况下,调用所述第一程序的所述第二接口,以使用所述密封的根私钥来生成所述第一区块链参与方的第一组织凭证,其中,所述第二接口的入口参数包括所述请求。
2.根据权利要求1所述的方法,其特征在于,所述第一接口的入口参数包括用于私密性保护的属性名称列表,所述第二接口的入口参数还包括与属性名称列表相对应的属性值列表,并且所生成的第一组织凭证包括所述属性值列表中的至少一个属性值。
3.根据权利要求1所述的方法,其特征在于,所述第一程序还提供第三接口,所述方法还包括:
调用所述第一程序的所述第三接口,以基于所述第一程序的作者生成密封的临时私钥,使得所述密封的临时私钥可由与所述第一程序具有相同作者的程序获取;并且
在验证通过的情况下,调用所述第一程序的所述第二接口,以使用所述密封的根私钥来生成所述第一区块链参与方的第一组织凭证还包括:使用所述密封的临时私钥对所述第一组织凭证进行签名。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
从所述BaaS平台接收第二程序,所述第二程序与所述第一程序具有相同的作者;
调用所述第二程序,以基于所述第二程序的作者生成密封的临时私钥,使得所述密封的临时私钥可由与所述第二程序具有相同作者的程序获取;并且
在验证通过的情况下,调用所述第一程序的所述第二接口,以使用所述密封的根私钥来生成所述第一区块链参与方的第一组织凭证还包括:使用所述密封的临时私钥对所述第一组织凭证进行签名。
5.根据权利要求3或4所述的方法,其特征在于,还包括:
向所述第一区块链参与方发送经签名的所述第一组织凭证。
6.根据权利要求1所述的方法,其特征在于,还包括:
获取所述BaaS平台的平台公钥,其中,所述第一程序是经由所述BaaS平台的与所述平台公钥相对应的平台私钥来签名的;
使用所述平台公钥来验证经签名的所述第一程序。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取参与方列表信息,所述参与方列表信息表示用于控制生成组织凭证的指定区块链参与方;并且
获取并验证所述请求的签名信息包括:使用所述至少一个其它区块链参与方的对应的身份公钥来验证所述第一签名信息是否正确并验证所述第一签名信息是否与所述指定区块链参与方相符合,如果验证结果为正确且相符合,则验证通过,如果验证不正确和/或不相符合,则验证不通过。
8.根据权利要求1所述的方法,其特征在于,
所述签名信息还包括由所述第一区块链参与方使用所述第一区块链参与方的身份私钥对所述请求进行签名来生成的第二签名信息;并且
获取并验证所述请求的签名信息包括:使用所述第一区块链参与方的对应的身份公钥来验证所述第二签名信息是否正确,如果验证结果为正确,则验证通过,如果验证结果为不正确,则验证不通过。
9.根据权利要求1所述的方法,其特征在于,在可信计算环境中实现所述第一接口和所述第二接口的调用。
10.一种用于生成区块链参与方的组织凭证的装置,其特征在于,所述装置包括:
处理器;以及
存储器,其用于存储指令,当所述指令被执行时使得所述处理器执行以下步骤:
从BaaS平台接收第一程序,所述第一程序提供第一接口和第二接口;
从第一区块链参与方接收对生成第一区块链参与方的第一组织凭证的请求;
调用所述第一程序的所述第一接口,以基于所述第一程序的作者生成密封的根私钥和根公钥,使得所述密封的根私钥可由与所述第一程序具有相同作者的程序获取;
获取并验证所述请求的签名信息,所述签名信息包括由至少一个其它区块链参与方使用所述至少一个其它区块链参与方的身份私钥对所述请求进行签名来生成的第一签名信息;
在验证通过的情况下,调用所述第一程序的所述第二接口,以使用所述密封的根私钥来生成所述第一区块链参与方的第一组织凭证,其中,所述第二接口的入口参数包括所述请求。
11.根据权利要求10所述的装置,其特征在于,所述第一接口的入口参数包括用于私密性保护的属性名称列表,所述第二接口的入口参数还包括与属性名称列表相对应的属性值列表,并且所生成的第一组织凭证包括所述属性值列表中的至少一个属性值。
12.根据权利要求10所述的装置,其特征在于,所述第一程序还提供第三接口,当所述指令被执行时还使得所述处理器执行以下步骤:
调用所述第一程序的所述第三接口,以基于所述第一程序的作者生成密封的临时私钥,使得所述密封的临时私钥可由与所述第一程序具有相同作者的程序获取;并且
在验证通过的情况下,调用所述第一程序的所述第二接口,以使用所述密封的根私钥来生成所述第一区块链参与方的第一组织凭证还包括:使用所述密封的临时私钥对所述第一组织凭证进行签名。
13.根据权利要求10所述的装置,其特征在于,当所述指令被执行时还使得所述处理器执行以下步骤:
从所述BaaS平台接收第二程序,所述第二程序与所述第一程序具有相同的作者;
在验证通过的情况下,调用所述第二程序,以基于所述第二程序的作者生成密封的临时私钥,使得所述密封的临时私钥可由与所述第二程序具有相同作者的程序获取;并且
调用所述第一程序的所述第二接口,以使用所述密封的根私钥来生成所述第一区块链参与方的第一组织凭证还包括:使用所述密封的临时私钥对所述第一组织凭证进行签名。
14.根据权利要求12或13所述的装置,其特征在于,当所述指令被执行时还使得所述处理器执行以下步骤:
向所述第一区块链参与方发送经签名的所述第一组织凭证。
15.根据权利要求10所述的装置,其特征在于,当所述指令被执行时还使得所述处理器执行以下步骤:
获取所述BaaS平台的平台公钥,其中,所述第一程序是经由所述BaaS平台的与所述平台公钥相对应的平台私钥来签名的;
使用所述平台公钥来验证经签名的所述第一程序。
16.根据权利要求10所述的装置,其特征在于,当所述指令被执行时还使得所述处理器执行以下步骤:
获取参与方列表信息,所述参与方列表信息表示用于控制生成组织凭证的指定区块链参与方;并且
获取并验证所述请求的签名信息包括:使用所述至少一个其它区块链参与方的对应的身份公钥来验证所述第一签名信息是否正确并验证所述第一签名信息是否与所述指定区块链参与方相符合,如果验证结果为正确且相符合,则验证通过,如果验证不正确和/或不相符合,则验证不通过。
17.根据权利要求10所述的装置,其特征在于,
所述签名信息还包括由所述第一区块链参与方使用所述第一区块链参与方的身份私钥对所述请求进行签名来生成的第二签名信息;并且
获取并验证所述请求的签名信息包括:使用所述第一区块链参与方的对应的身份公钥来验证所述第二签名信息是否正确,如果验证结果为正确,则验证通过,如果验证结果为不正确,则验证不通过。
18.根据权利要求10所述的装置,其特征在于,所述第一接口和所述第二接口的调用是在可信计算环境中实现的。
19.一种计算机可读存储介质,包括计算机可执行指令,所述计算机可执行指令在装置中运行时使得所述装置执行根据权利要求1-9中任一项所述的用于生成区块链参与方的组织凭证的方法。
CN201910110097.4A 2019-02-11 2019-02-11 用于生成区块链参与方的组织凭证的方法和装置 Active CN109886043B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910110097.4A CN109886043B (zh) 2019-02-11 2019-02-11 用于生成区块链参与方的组织凭证的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910110097.4A CN109886043B (zh) 2019-02-11 2019-02-11 用于生成区块链参与方的组织凭证的方法和装置

Publications (2)

Publication Number Publication Date
CN109886043A true CN109886043A (zh) 2019-06-14
CN109886043B CN109886043B (zh) 2020-12-29

Family

ID=66927966

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910110097.4A Active CN109886043B (zh) 2019-02-11 2019-02-11 用于生成区块链参与方的组织凭证的方法和装置

Country Status (1)

Country Link
CN (1) CN109886043B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112861090A (zh) * 2021-03-18 2021-05-28 深圳前海微众银行股份有限公司 信息处理方法、装置、设备、存储介质及计算机程序产品

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106850200A (zh) * 2017-01-25 2017-06-13 中钞信用卡产业发展有限公司北京智能卡技术研究院 一种使用基于区块链的数字货币的方法、系统及终端
CN107707410A (zh) * 2017-10-26 2018-02-16 上海点融信息科技有限责任公司 配置系统审计服务的方法、信息处理装置及可读存储介质
CN108305072A (zh) * 2018-01-04 2018-07-20 上海点融信息科技有限责任公司 部署区块链网络的方法、设备和计算机存储介质
US20180227130A1 (en) * 2017-02-06 2018-08-09 ShoCard, Inc. Electronic identification verification methods and systems
CN108768992A (zh) * 2018-05-17 2018-11-06 深圳前海微众银行股份有限公司 基于区块链的信息匿名传输方法、设备及可读存储介质
CN108769258A (zh) * 2018-06-29 2018-11-06 上海点融信息科技有限责任公司 用于将区块链网络托管于区块链应用平台的方法和装置
CN108768657A (zh) * 2018-04-17 2018-11-06 深圳技术大学(筹) 一种基于区块链平台的数字证书颁发系统及方法
CN108881290A (zh) * 2018-07-17 2018-11-23 深圳前海微众银行股份有限公司 基于区块链的数字证书使用方法、系统及存储介质
CN108933667A (zh) * 2018-05-03 2018-12-04 深圳市京兰健康医疗大数据有限公司 一种基于区块链的公钥证书的管理方法及管理系统
CN109146478A (zh) * 2018-08-06 2019-01-04 上海点融信息科技有限责任公司 在区块链网络中用于操作数字凭证的方法、装置及介质
CN109189396A (zh) * 2018-08-16 2019-01-11 北京京东尚科信息技术有限公司 智能合约引擎组件、运行方法及存储介质
CN109218079A (zh) * 2018-08-16 2019-01-15 北京京东尚科信息技术有限公司 一种区块链网络、部署方法及存储介质

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106850200A (zh) * 2017-01-25 2017-06-13 中钞信用卡产业发展有限公司北京智能卡技术研究院 一种使用基于区块链的数字货币的方法、系统及终端
US20180227130A1 (en) * 2017-02-06 2018-08-09 ShoCard, Inc. Electronic identification verification methods and systems
CN107707410A (zh) * 2017-10-26 2018-02-16 上海点融信息科技有限责任公司 配置系统审计服务的方法、信息处理装置及可读存储介质
CN108305072A (zh) * 2018-01-04 2018-07-20 上海点融信息科技有限责任公司 部署区块链网络的方法、设备和计算机存储介质
CN108768657A (zh) * 2018-04-17 2018-11-06 深圳技术大学(筹) 一种基于区块链平台的数字证书颁发系统及方法
CN108933667A (zh) * 2018-05-03 2018-12-04 深圳市京兰健康医疗大数据有限公司 一种基于区块链的公钥证书的管理方法及管理系统
CN108768992A (zh) * 2018-05-17 2018-11-06 深圳前海微众银行股份有限公司 基于区块链的信息匿名传输方法、设备及可读存储介质
CN108769258A (zh) * 2018-06-29 2018-11-06 上海点融信息科技有限责任公司 用于将区块链网络托管于区块链应用平台的方法和装置
CN108881290A (zh) * 2018-07-17 2018-11-23 深圳前海微众银行股份有限公司 基于区块链的数字证书使用方法、系统及存储介质
CN109146478A (zh) * 2018-08-06 2019-01-04 上海点融信息科技有限责任公司 在区块链网络中用于操作数字凭证的方法、装置及介质
CN109189396A (zh) * 2018-08-16 2019-01-11 北京京东尚科信息技术有限公司 智能合约引擎组件、运行方法及存储介质
CN109218079A (zh) * 2018-08-16 2019-01-15 北京京东尚科信息技术有限公司 一种区块链网络、部署方法及存储介质

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
AKINWANDE, VICTOR等: ""Security assessment of blockchain-as-a-service (BaaS) platforms"", 《HTTPS://WWW.RESEARCHGATE.NET/PUBLICATION/319293093》 *
姚忠将 等: ""关于区块链原理及应用的综述"", 《科学信息化技术与应用》 *
斯雪明 等: ""区块链安全研究综述"", 《密码学报》 *
腾讯云: ""腾讯云区块链TBaaS产品白皮书"", 《HTTPS://CLOUD.TENCENT.COM/DOCUMENT/PRODUCT/663/15287》 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112861090A (zh) * 2021-03-18 2021-05-28 深圳前海微众银行股份有限公司 信息处理方法、装置、设备、存储介质及计算机程序产品

Also Published As

Publication number Publication date
CN109886043B (zh) 2020-12-29

Similar Documents

Publication Publication Date Title
CN110580413B (zh) 基于链下授权的隐私数据查询方法及装置
CN110580418B (zh) 基于区块链账户的隐私数据查询方法及装置
CN110580414B (zh) 基于区块链账户的隐私数据查询方法及装置
CN110580262B (zh) 基于智能合约的隐私数据查询方法及装置
WO2019214312A1 (zh) 基于区块链的物流信息传输方法、系统和装置
CN110580412B (zh) 基于链代码的权限查询配置方法及装置
US20180287802A1 (en) Using A Trusted Execution Environment As A Trusted Third Party Providing Privacy For Attestation
WO2018112946A1 (zh) 注册及授权方法、装置及系统
CN110580245B (zh) 隐私数据的共享方法及装置
CN111095899A (zh) 针对可信执行环境的分布式密钥管理
CN109447644A (zh) 用于托管区块链用户私钥的方法和装置
CN110580411B (zh) 基于智能合约的权限查询配置方法及装置
CN105745661A (zh) 对权限管理的内容的基于策略的受信任的检测
CN111770198B (zh) 一种信息共享方法、装置及设备
Ranjith Kumar et al. Blockchain based chameleon hashing technique for privacy preservation in E-governance system
CN107277000B (zh) 一种电子凭证安全管理方法及系统
CN110580417A (zh) 基于智能合约的隐私数据查询方法及装置
CN110908786A (zh) 一种智能合约调用方法、装置及介质
CN111770112B (zh) 一种信息共享方法、装置及设备
CN109964205A (zh) 安全密钥管理
CN109978693A (zh) 用于在区块链网络中进行分布式签名的方法、装置及介质
CN115296838A (zh) 基于区块链的数据共享方法、系统及存储介质
CN109886043A (zh) 用于生成区块链参与方的组织凭证的方法和装置
Kelkar et al. Complete knowledge: Preventing encumbrance of cryptographic secrets
CN113129017B (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