CN112560072B - 基于区块链的密钥管理方法、装置、介质及设备 - Google Patents
基于区块链的密钥管理方法、装置、介质及设备 Download PDFInfo
- Publication number
- CN112560072B CN112560072B CN202110187195.5A CN202110187195A CN112560072B CN 112560072 B CN112560072 B CN 112560072B CN 202110187195 A CN202110187195 A CN 202110187195A CN 112560072 B CN112560072 B CN 112560072B
- Authority
- CN
- China
- Prior art keywords
- signature
- account
- sub
- request
- uplink request
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本公开提供一种基于区块链的密钥管理方法、基于区块链的密钥管理装置、计算机可读存储介质及电子设备,涉及区块链技术领域,包括:接收至少一个签名方签名后的上链请求;校验上链请求中子账户签名的合法性;若子账户签名存在合法性且上链请求满足双重校验条件时,校验上链请求中主账户签名的合法性;其中,子账户签名和主账户签名对应的签名方不同;若主账户签名存在合法性,则判定上链请求存在合法性;响应于上链请求并共识响应结果,以及将响应结果打包写入区块链账本。可见,实施上述方法能够通过多方加密的方式,对请求中的数据进行双重加密,以使得区块链节点进行解密时需要进行双重解密,从而保障数据安全。
Description
技术领域
本公开涉及区块链技术领域,具体而言,涉及一种基于区块链的密钥管理方法、基于区块链的密钥管理装置、计算机可读存储介质及电子设备。
背景技术
一般来说,区块链中使用非对称加密技术加密数据,以保障数据安全。区块链中的一个节点通过私钥加密需要上链的数据,持有与该私钥相对应的公钥的节点可以解密该数据并共识该数据,进而完成数据上链。对于企业来说,非对称加密技术中使用的私钥通常是保存在服务器中,方便企业中各个项目程序进行自动化签名。但是,一个企业通常会有多个部门,不同的部门负责不同的项目程序,通过这种中心化签名的方式使用一个私钥加密所有的待上链数据,容易存在风险,一旦私钥丢失,就难以保障数据安全。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本公开的目的在于提供一种基于区块链的密钥管理方法、基于区块链的密钥管理装置、计算机可读存储介质及电子设备,实施本公开实施例能够通过多方加密的方式,对请求中的数据进行双重加密,以使得区块链节点进行解密时需要进行双重解密,从而保障数据安全。
本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。
根据本公开的一方面,提供一种基于区块链的密钥管理方法,包括:
接收至少一个签名方签名后的上链请求;
校验上链请求中子账户签名的合法性;
若子账户签名存在合法性且上链请求满足双重校验条件时,校验上链请求中主账户签名的合法性;其中,子账户签名和主账户签名对应的签名方不同;
若主账户签名存在合法性,则判定上链请求存在合法性;
响应于上链请求并共识响应结果,以及将响应结果打包写入区块链账本。
根据本公开的一方面,提供一种基于区块链的密钥管理装置,包括:
请求接收单元,用于接收至少一个签名方签名后的上链请求;
签名验证单元,用于校验上链请求中子账户签名的合法性;
签名验证单元,还用于在子账户签名存在合法性且上链请求满足双重校验条件时,校验上链请求中主账户签名的合法性;其中,子账户签名和主账户签名对应的签名方不同;
结果判定单元,用于在主账户签名存在合法性时,判定上链请求存在合法性;
请求响应单元,用于响应于上链请求并共识响应结果,以及将响应结果打包写入区块链账本。
在本公开的一种示例性实施例中,子账户签名的签名内容包括上链请求的请求内容,主账户签名的签名内容包括请求内容和子账户签名;或者,子账户签名的签名内容和主账户签名的签名内容均包括请求内容。
在本公开的一种示例性实施例中,上述装置还包括:
签名方类型确定单元,用于根据上链请求中的一类编码确定上链请求的签名方类型;其中,一类编码用于作为对应于子账户签名的签名方的唯一表征;若签名方类型为组织,则判定上链请求满足双重校验条件。
在本公开的一种示例性实施例中,上述装置还包括:
请求上链单元,用于在签名方类型为个人时,将上链请求存储于交易池中;根据预设单位时长对交易池中的请求进行响应;对响应结果进行共识并将响应结果打包为区块写入区块链账本。
在本公开的一种示例性实施例中,签名方类型确定单元判定上链请求满足双重校验条件,包括:
检测主账户签名是否为空,如果否,则判定上链请求满足双重校验条件。
在本公开的一种示例性实施例中,上述装置还包括:
存储单元,用于在签名方类型确定单元检测到主账户签名为空时,将上链请求存储至待签池,以使得主账户签名对应的签名方在监听到上链请求时对上链请求进行签名。
在本公开的一种示例性实施例中,主账户签名对应的签名方在监听到上链请求时对上链请求进行签名,包括:
主账户签名对应的签名方在监听到上链请求时,对上链请求中的请求内容进行合规检测;
若检测到请求内容合规,主账户签名对应的签名方对上链请求进行签名,以使得主账户签名不为空。
在本公开的一种示例性实施例中,签名验证单元校验上链请求的主账户签名的合法性,包括:
检测主账户签名对应的签名内容是否包含子账户签名和上链请求的请求内容;
如果是,则确定与一类编码对应的二类编码并获取二类编码对应的公钥;其中,二类编码用于作为对应于主账户签名的签名方的唯一表征;
校验二类编码对应的公钥与主账户签名中的公钥是否一致;
若一致,则判定主账户签名存在合法性。
在本公开的一种示例性实施例中,上述装置还包括:
类型变更单元,用于在签名验证单元检测到不存在与一类编码对应的二类编码时,将签名方类型由组织变更为个人,并将上链请求存储至交易池中。
在本公开的一种示例性实施例中,上述装置还包括:
请求丢弃单元,用于在签名验证单元检测到二类编码对应的公钥与主账户签名中的公钥不一致时,判定主账户签名不存在合法性并丢弃上链请求。
在本公开的一种示例性实施例中,上述装置还包括:
子账户签名对应的签名方在请求接收单元接收至少一个签名方签名后的上链请求之前,通过从属账户生成请求内容,并对请求内容进行签名,得到子账户签名;
子账户签名对应的签名方将子账户签名发送至主账户签名对应的签名方,以使得主账户签名对应的签名方对子账户签名进行签名,得到主账户签名;
主账户签名对应的签名方根据主账户签名生成上链请求并将上链请求广播于区块链网络中,以使得区块链网络中的节点校验上链请求的子账户签名的合法性。
在本公开的一种示例性实施例中,签名验证单元校验上链请求的子账户签名的合法性,包括:
检测子账户签名对应的签名内容是否包含请求内容,如果是,则判定子账户签名存在合法性。
根据本申请的一方面,提供一种电子设备,包括:处理器;以及存储器,用于存储处理器的可执行指令;其中,处理器配置为经由执行可执行指令来执行上述任意一项的方法。
根据本申请的一方面,提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述任意一项的方法。
根据本申请的一方面,提供一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述的各种可选实现方式中提供的方法。
本申请示例性实施例可以具有以下部分或全部有益效果:
在本申请的一示例实施方式所提供的基于区块链的密钥管理方法中,可以接收至少一个签名方签名后的上链请求;校验上链请求中子账户签名的合法性;若子账户签名存在合法性且上链请求满足双重校验条件时,校验上链请求中主账户签名的合法性;其中,子账户签名和主账户签名对应的签名方不同;若主账户签名存在合法性,则判定上链请求存在合法性;响应于上链请求并共识响应结果,以及将响应结果打包写入区块链账本。依据上述方案描述,本申请一方面,能够通过多方加密的方式,对请求中的数据进行双重加密,以使得区块链节点进行解密时需要进行双重解密,从而保障数据安全。本申请又一方面,能够沿用多个账户使用一个私钥进行加密的方式,基于在此基础上的二次加密,可以在保障数据安全的前提下不增加私钥数量,从而提升对于存储空间的利用率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了可以应用本申请实施例的一种基于区块链的密钥管理方法及基于区块链的密钥管理装置的示例性***架构的示意图。
图2示出了适于用来实现本申请实施例的电子设备的计算机***的结构示意图。
图3示意性示出了根据本申请的一个实施例的分布式***应用于区块链***的一个可选的结构示意图。
图4示意性示出了根据本申请的一个实施例的区块结构(Block Structure)的示意图。
图5示意性示出了根据本申请的一个实施例的基于区块链的密钥管理方法的流程图。
图6示意性示出了根据本申请的一个实施例的公钥上链方式的序列示意图。
图7示意性示出了根据本申请的一个实施例的签名结构示意图。
图8示意性示出了根据本申请的一个实施例的签名合法性校验流程示意图。
图9示意性示出了根据本申请的一个实施例的基于区块链的密钥管理方法的序列图。
图10示意性示出了根据本申请的一个实施例的基于区块链的密钥管理方法的流程图。
图11示意性示出了根据本申请的一个实施例中的基于区块链的密钥管理装置的结构框图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本申请将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本申请的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本申请的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知技术方案以避免喧宾夺主而使得本申请的各方面变得模糊。
此外,附图仅为本申请的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
图1示出了可以应用本申请实施例的一种基于区块链的密钥管理方法及基于区块链的密钥管理装置的示例性应用环境的***架构的示意图。
如图1所示,***架构100可以包括终端设备101、102、103中的一个或多个,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。终端设备101、102、103可以是具有显示屏的各种电子设备,包括但不限于台式计算机、便携式计算机、智能手机和平板电脑等等。应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。比如服务器105可以是多个服务器组成的服务器集群等。
本申请实施例所提供的基于区块链的密钥管理方法一般由服务器105执行,相应地,基于区块链的密钥管理装置一般设置于服务器105中。但本领域技术人员容易理解的是,本申请实施例所提供的基于区块链的密钥管理方法也可以由终端设备101、102或103执行,相应的,基于区块链的密钥管理装置也可以设置于终端设备101、102或103中,本示例性实施例中对此不做特殊限定。举例而言,在一种示例性实施例中,服务器105可以接收至少一个签名方签名后的上链请求;校验上链请求中子账户签名的合法性;若子账户签名存在合法性且上链请求满足双重校验条件时,校验上链请求中主账户签名的合法性;其中,子账户签名和主账户签名对应的签名方不同;若主账户签名存在合法性,则判定上链请求存在合法性;响应于上链请求并共识响应结果,以及将响应结果打包写入区块链账本。
图2示出了适于用来实现本申请实施例的电子设备的计算机***的结构示意图。
需要说明的是,图2示出的电子设备的计算机***200仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图2所示,计算机***200包括中央处理单元(CPU)201,其可以根据存储在只读存储器(ROM)202中的程序或者从储存部分208加载到随机访问存储器(RAM)203中的程序而执行各种适当的动作和处理。在RAM 203中,还存储有***操作所需的各种程序和数据。CPU201、ROM 202以及RAM 203通过总线204彼此相连。输入/输出(I/O)接口205也连接至总线204。
以下部件连接至I/O接口205:包括键盘、鼠标等的输入部分206;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分207;包括硬盘等的储存部分208;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分209。通信部分209经由诸如因特网的网络执行通信处理。驱动器210也根据需要连接至I/O接口205。可拆卸介质211,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器210上,以便于从其上读出的计算机程序根据需要被安装入储存部分208。
特别地,根据本申请的实施例,下文参考流程图描述的过程可以被实现为计算机软件程序。例如,本申请的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分209从网络上被下载和安装,和/或从可拆卸介质211被安装。在该计算机程序被中央处理单元(CPU)201执行时,执行本申请的方法和装置中限定的各种功能。
本发明实施例涉及的***可以是由客户端、多个节点(接入网络中的任意形式的计算设备,如服务器、用户终端)通过网络通信的形式连接形成的分布式***。
以分布式***为区块链***为例,参见图3,图3是本发明实施例提供的基于区块链的密钥管理装置300应用于区块链***的一个可选的结构示意图,由多个节点301(接入网络中的任意形式的计算设备,如服务器、用户终端)和客户端302形成,基于区块链的密钥管理装置300可以为多个节点中任一节点,节点之间形成组成的点对点(P2P,Peer ToPeer)网络,P2P 协议是一个运行在传输控制协议(TCP,Transmission Control Protocol)协议之上的应用层协议。在分布式***中,任何机器如服务器、终端都可以加入而成为节点,节点包括硬件层、中间层、操作***层和应用层。
参见图3示出的区块链***中各节点的功能,涉及的功能包括:
1)路由,节点具有的基本功能,用于支持节点之间的通信。
节点除具有路由功能外,还可以具有以下功能:
2)应用,用于部署在区块链中,根据实际业务需求而实现特定业务,记录实现功能相关的数据形成记录数据,在记录数据中携带数字签名以表示任务数据的来源,将记录数据发送到区块链***中的其他节点,供其他节点在验证记录数据来源以及完整性成功时,将记录数据添加到临时区块中。
例如,应用实现的业务包括:
2.1)钱包,用于提供进行电子货币的交易的功能,包括发起交易(即,将当前交易的交易记录发送给区块链***中的其他节点,其他节点验证成功后,作为承认交易有效的响应,将交易的记录数据存入区块链的临时区块中;当然,钱包还支持查询电子货币地址中剩余的电子货币。
2.2)共享账本,用于提供账目数据的存储、查询和修改等操作的功能,将对账目数据的操作的记录数据发送到区块链***中的其他节点,其他节点验证有效后,作为承认账目数据有效的响应,将记录数据存入临时区块中,还可以向发起操作的节点发送确认。
2.3)智能合约,计算机化的协议,可以执行某个合约的条款,通过部署在共享账本上的用于在满足一定条件时而执行的代码实现,根据实际的业务需求代码用于完成自动化的交易, 例如查询买家所购买商品的物流状态,在买家签收货物后将买家的电子货币转移到商户的地址;当然,智能合约不仅限于执行用于交易的合约, 还可以执行对接收的信息进行处理的合约。
3)区块链,包括一系列按照产生的先后时间顺序相互接续的区块 (Block),新区块一旦加入到区块链中就不会再被移除,区块中记录了区块链***中节点提交的记录数据。
参见图4,图4是本发明实施例提供的区块结构(Block Structure)一个可选的示意图,每个区块中包括本区块存储交易记录的哈希值(本区块的哈希值)、以及前一区块的哈希值,各区块通过哈希值连接形成区块链。另外,区块中还可以包括有区块生成时的时间戳等信息。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了相关的信息,用于验证其信息的有效性(防伪)和生成下一个区块。
在区块链的整个***中,私钥是整个账户的控制者,拥有了私钥就拥有了整个账户资产。目前,企业通常会将私钥存储于服务器中,以便各个项目程序自动化签名。资产的安全管理对企业(如,交易所)而言尤其重要,一旦私钥丢失,就难以保障数据安全。
本示例实施方式提供了一种基于区块链的密钥管理方法。该基于区块链的密钥管理方法可以应用于上述服务器105,也可以应用于上述终端设备101、102、103中的一个或多个,本示例性实施例中对此不做特殊限定。参考图5所示,该基于区块链的密钥管理方法可以包括以下步骤S510至步骤S550。
步骤S510:接收至少一个签名方签名后的上链请求。
步骤S520:校验上链请求中子账户签名的合法性。
步骤S530:若子账户签名存在合法性且上链请求满足双重校验条件时,校验上链请求中主账户签名的合法性;其中,子账户签名和主账户签名对应的签名方不同。
步骤S540:若主账户签名存在合法性,则判定上链请求存在合法性。
步骤S550:响应于上链请求并共识响应结果,以及将响应结果打包写入区块链账本。
实施图5所示的方法,能够通过多方加密的方式,对请求中的数据进行双重加密,以使得区块链节点进行解密时需要进行双重解密,从而保障数据安全。此外,能够沿用多个账户使用一个私钥进行加密的方式,基于在此基础上的二次加密,可以在保障数据安全的前提下不增加私钥数量,从而提升对于存储空间的利用率。
下面,对于本示例实施方式的上述步骤进行更加详细的说明。
在步骤S510中,接收至少一个签名方签名后的上链请求。
其中,至少一个签名方可以包括主账户签名的签名方和/或子账户签名的签名方。在接收至少一个签名方签名后的上链请求之前,可以由至少一个签名方对上链请求进行至少一次签名。
在步骤S520中,校验上链请求中子账户签名的合法性。
具体地,子账户签名可以为对上链请求中的请求内容的签名,子账户签名可以通过字符串的形式进行表示,同理,主账户签名也可以通过字符串进行表示,子账户签名和主账户签名可以为哈希值。步骤S520可以通过区块链中任一节点执行。上链请求符合互换客户端地址协议(Internet Content Adaptation Protocol,ICAP);其中,ICAP用于引用和处理客户账户,旨在简化资金转移流程。
另外,在步骤S520之前,上述方法还可以包括如图6所示的序列示意图中的步骤,图6示意性示出了根据本申请的一个实施例的公钥上链方式的序列示意图。该序列示意图可以包括步骤S610和步骤S620。具体地,当检测到子账户签名的签名方对应的公钥获取请求时,合约管理员所在的节点可以执行步骤S610:分配企业机构代码code和企业管理员公钥pubkey;以及执行步骤S620:签名code+pubkey并将签名后的结果进行广播,以使得共识节点对签名后的结果进行共识并打包写入区块链中的公钥合约,从而可以方便其他节点在验证上链请求中的主账户签名时可以读取公钥合约中的该公钥,以便与主账户签名中的公钥进行比对,进而确认该公钥所对应的签名方的合法性。其中,合约管理员所在的节点可以属于用户的一方。
作为一种可选的实施例,接收至少一个签名方签名后的上链请求之前,上述方法还包括:子账户签名对应的签名方通过从属账户生成请求内容,并对请求内容进行签名,得到子账户签名(sign);子账户签名对应的签名方将子账户签名发送至主账户签名对应的签名方,以使得主账户签名对应的签名方对子账户签名进行签名,得到主账户签名(extra_sign);主账户签名对应的签名方根据主账户签名生成上链请求并将上链请求广播于区块链网络中,以使得区块链网络中的节点校验上链请求的子账户签名的合法性。
具体地,子账户签名对应的签名方可以为企业子账户,主账户签名对应的签名方可以为企业管理员账户,一个企业管理员账户可以对应于一个或多个企业子账户,本申请实施例不作限定。同理,企业管理员账户对应的企业机构代码可以与一个或多个企业子账户的企业机构代码相关。
其中,子账户签名对应的签名方通过从属账户生成请求内容,并对请求内容进行签名,得到子账户签名,包括:子账户签名对应的签名方通过从属账户(如,企业子账户)生成请求内容,并通过子账户签名对应的签名方的子账户私钥对请求内容进行签名,得到子账户签名。主账户签名对应的签名方对子账户签名进行签名,得到主账户签名,包括:主账户签名对应的签名方通过主账户私钥(如,企业管理员账户的私钥)对子账户签名和请求内容进行签名,得到主账户签名。
请参阅图7,图7示意性示出了根据本申请的一个实施例的签名结构示意图。如图7所示,上链请求对应的签名结构可以包括:包含账户地址在内的请求内容、子账户签名和主账户签名。具体地,首先可以执行步骤S710:子账户签名对应的签名方对请求内容进行签名,可以得到子账户签名。进而,子账户签名对应的签名方可以将子账户签名和请求内容发送至主账户签名对应的签名方。从而,可以执行步骤S720:主账户签名对应的签名方对子账户签名和请求内容进行签名,从而得到主账户签名。进而,主账户签名对应的签名方可以根据主账户签名生成上链请求并将上链请求广播于区块链网络中。
可见,实施该可选的实施例,能够通过双重加密的方式保障数据安全。当本申请应用于基于ICAP协议的交易请求时,可以保障每次上链的交易数据均在得到二次签名之后才具备合法性,从而保障交易数据的安全性。
作为一种可选的实施例,校验上链请求的子账户签名的合法性,包括:检测子账户签名对应的签名内容是否包含请求内容,如果是,则判定子账户签名存在合法性。
具体地,请求内容可以包括账户地址,账户地址符合ICAP。账户地址可以包括:链前缀、校验码、企业机构代码以及账户实际地址,账户地址的结构可以通过下表进行表示:
其中,链前缀可以用于表征区块链的名称或标识,本申请中的区块链可以为联盟链、私有链或公有链,本申请实施例不作限定。校验码用于对链前缀、企业机构代码以及账户实际地址的校验计算哈希值。企业机构代码通过字符串进行表示,可以用于标识签名方类型;其中,若签名方类型为组织,子账户签名的签名方的账户可以为企业子账户,举例来说,企业子账户的企业机构代码可以为1234、4324、6547等;若签名方类型为个人,子账户签名的签名方的账户可以为个人账户,举例来说,个人账户的企业机构代码可以为0000;账户实际地址可以为通过base36进制的字符串表征签名方的地址。
另外,检测子账户签名对应的签名内容是否包含请求内容,包括:对签名内容进行哈希计算,将得到的哈希结果与子账户签名进行比对,若一致,则判定检测子账户签名对应的签名内容包含请求内容。基于此,若检测到哈希结果与子账户签名不一致,则判定检测子账户签名对应的签名内容中不包含请求内容,从而可以丢弃上链请求。
可见,实施该可选的实施例,能够通过对子账户签名的合法性进行检测,在子账户签名具备合法性的前提下才检测主账户签名的合法性,从而提升对于计算资源的利用率。
在步骤S530中,若子账户签名存在合法性且上链请求满足双重校验条件时,校验上链请求中主账户签名的合法性;其中,子账户签名和主账户签名对应的签名方不同。
具体地,子账户签名的签名内容包括上链请求的请求内容,主账户签名的签名内容包括请求内容和子账户签名;或者,子账户签名的签名内容和主账户签名的签名内容均包括请求内容。另外,双重校验条件用于限定二次签名验证的条件,即,子账户签名的签名方类型为组织。
作为一种可选的实施例,上述方法还包括:根据上链请求中的一类编码确定上链请求的签名方类型;其中,一类编码用于作为对应于子账户签名的签名方的唯一表征;若签名方类型为组织,则判定上链请求满足双重校验条件。
其中,一类编码可以为上述账户地址的结构中的企业机构代码。具体地,根据上链请求中的一类编码确定上链请求的签名方类型,包括:获取上链请求中的企业机构代码(如,0000),根据预设映射关系确定该企业机构代码所属的签名方类型。
可见,实施该可选的实施例,能够在进而主账户签名验证之前确定上链请求是否符合主账户签名验证的条件,从而在符合条件的前提下执行后续的主账户签名验证,改善对于计算资源的利用率。
作为一种可选的实施例,上述方法还包括:若签名方类型为个人,将上链请求存储于交易池中;根据预设单位时长(如,5s)对交易池中的请求进行响应;对响应结果进行共识并将响应结果打包为区块写入区块链账本。
具体地,交易池是区块链网络中用于存储待打包上链的一个或多个请求。其中,区块链(BlockChain)是基于分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模型,其本质为去中心化的数据库。作为比特币的底层技术,区块链是一串使用密码学相关联产生的数据块,各个数据块之间通过随机散列(即,哈希算法)实现链接,后一个区块包含前一个区块的哈希值。
可见,实施该可选的实施例,能够在上链请求不满足双重验证条件的情况下直接对其进行打包上链,从而提升数据上链效率。
作为一种可选的实施例,判定上链请求满足双重校验条件,包括:检测主账户签名是否为空,如果否,则判定上链请求满足双重校验条件。
具体地,检测主账户签名是否为空,包括:检测extra_sign字段是否包含签名信息。
可见,实施该可选的实施例,能够避免在主账户签名为空的情况下进行主账户签名校验,从而可以避免对于计算资源的浪费。
作为一种可选的实施例,若检测到主账户签名为空,上述方法还包括:将上链请求存储至待签池,以使得主账户签名对应的签名方在监听到上链请求时对上链请求进行签名。
具体地,待签池用于存储待签名的请求,不同的签名方所对应的待签池中的请求不同。其中,将上链请求存储至待签池,包括:确定子账户签名中企业机构代码相对应的另一个企业机构代码,即,主账户签名中应当出现的企业机构代码;进而,可以将上链请求存储至于上述的另一个企业机构代码所对应的待签池中;其中,当子账户签名中企业机构代码为企业子账户对应的企业机构代码,上述另一个企业机构代码可以为企业管理员账户对应的企业机构代码。
可选的,将上链请求存储至待签池,以使得主账户签名对应的签名方在监听到上链请求时对上链请求进行签名,包括:确定子账户签名中企业机构代码相对应的另一个企业机构代码,将上链请求存储至于待签池中,以使得主账户签名对应的签名方在监听到上链请求中存在与自身企业机构代码相对应的企业机构代码时对包含该企业机构代码的上链请求进行签名。
基于此,将上链请求存储至待签池之后,上述方法还可以包括:向上述的另一个企业机构代码所对应的签名方发送提示消息;其中,提示消息中可以包括文本、音效等,本申请实施例不作限定。
另外,主账户签名对应的签名方在监听到上链请求时对上链请求进行签名,包括:主账户签名对应的签名方按照单位时长(如,1min)对上链请求进行签名。
可见,实施该可选的实施例,能够将缺少主账户签名的请求存储至待签池中,以便相关签名方能够对其进行及时签名,从而有利于提升数据上链效率。
作为一种可选的实施例,主账户签名对应的签名方在监听到上链请求时对上链请求进行签名,包括:主账户签名对应的签名方在监听到上链请求时,对上链请求中的请求内容进行合规检测;若检测到请求内容合规,主账户签名对应的签名方对上链请求进行签名,以使得主账户签名不为空。
具体地,对上链请求中的请求内容进行合规检测,包括:将请求内容中的交易数据进行图表化并输出,并接收用于表征合规判定结果的用户操作,进而根据用户操作判定请求内容合规与否。
可见,实施该可选的实施例,能够在请求内容符合规范的前提下,对其进行签名,从而有利于保障签名方财产数据的安全性。
作为一种可选的实施例,校验上链请求的主账户签名的合法性,包括:检测主账户签名对应的签名内容是否包含子账户签名和上链请求的请求内容;如果是,则确定与一类编码对应的二类编码并获取二类编码对应的公钥;其中,二类编码用于作为对应于主账户签名的签名方的唯一表征;校验二类编码对应的公钥与主账户签名中的公钥是否一致;若一致,则判定主账户签名存在合法性。
具体地,检测主账户签名对应的签名内容是否包含子账户签名和上链请求的请求内容,包括:对子账户签名和上链请求进行哈希计算;将计算结果与主账户签名对应的签名内容进行比对,若一致,则执行上述的确定与一类编码对应的二类编码并获取二类编码对应的公钥。
可见,实施该可选的实施例,能够对主账户签名的合法性进行验证,从而实现双重签名验证,以保障上链数据的合法性。
作为一种可选的实施例,若检测到不存在与一类编码对应的二类编码,上述方法还包括:将签名方类型由组织变更为个人,并将上链请求存储至交易池中。
其中,若检测到不存在与一类编码对应的二类编码,则可以判定子账户签名的签名方没有对应的管理方账户。
可见,实施该可选的实施例,能够通过对于签名方类型的变更,提升对于数据上链的效率。
作为一种可选的实施例,若二类编码对应的公钥与主账户签名中的公钥不一致,上述方法还包括:判定主账户签名不存在合法性并丢弃上链请求。
请参阅图8,图8示意性示出了根据本申请的一个实施例的签名合法性校验流程示意图。如图8所示,签名合法性校验流程可以包括:步骤S810~步骤S880。
步骤S810:接收上链请求。具体地,该上链请求可以由子账户签名的签名方发送也可以由主账户签名的签名方发送。
步骤S820:检测子账户签名对应的签名内容是否包含上链请求的请求内容,如果是,则判定子账户签名存在合法性。
步骤S830:读取上链请求中子账户签名的签名方对应的企业机构代码,以根据企业机构代码确定上链请求的签名方类型。若签名方类型为组织,则执行步骤S840。若签名方类型为个人,则执行步骤S880。
步骤S840:检测主账户签名对应的签名内容是否包含子账户签名和上链请求的请求内容。如果是,则执行步骤S850。如果否,则执行步骤S870。
步骤S850:确定主账户签名的签名方对应的企业机构代码并获取该企业机构代码对应的公钥。
步骤S860:比对主账户签名中的公钥与主账户签名的签名方对应的公钥是否一致。如果是,则执行步骤S880。如果否,则执行步骤S870。
步骤S870:判定主账户签名不存在合法性。
步骤S880:将上链请求存储于交易池中,并根据预设单位时长对交易池中的请求进行响应,以及对响应结果进行共识并将响应结果打包为区块写入区块链账本。
可见,实施该可选的实施例,能够在主账户签名不合法的情况丢弃上链请求,从而可以保障数据安全,避免私钥被盗用时造成的财产数据损失。
在步骤S540中,若主账户签名存在合法性,则判定上链请求存在合法性。
请参阅图9,图9示意性示出了根据本申请的一个实施例的基于区块链的密钥管理方法的序列图。如图9所示,基于区块链的密钥管理方法的序列图可以包括:步骤S900~步骤S980。
步骤S900:登录企业管理员账户的终端设备可以作为主账户签名的签名方将企业机构代码、管理员公钥等信息上传至区块链。
步骤S910:登录企业子账户的终端设备可以作为子账户签名的签名方将子账户签名和请求内容发送至登录企业管理员账户的终端设备。
步骤S920:登录企业管理员账户的终端设备可以对子账户签名和请求内容进行签名,从而得到主账户签名并将根据主账户签名生成上链请求广播至区块链中。
步骤S930:区块链中的节点可以对上链请求进行子账户签名和主账户签名的合法性验证,若检测到子账户签名对应的签名内容包括请求内容且主账户签名对应的签名内容包括子账户签名和请求内容,则将上链请求存储于交易池中。若检测到不存在主账户签名,则将上链请求存储于待签池中。
步骤S940:登录企业管理员账户的终端设备可以对待签池中的请求进行监听,若监听到与企业管理员账户对应的企业机构代码,则执行步骤S950。
步骤S950:登录企业管理员账户的终端设备从区块链中获取上链请求。
步骤S960:登录企业管理员账户的终端设备验证上链请求中的请求内容是否合规,如果是,则对其进行签名,从而使得上链请求中包括请求内容、子账户签名和主账户签名。
步骤S970:登录企业管理员账户的终端设备可以将包括请求内容、子账户签名和主账户签名的上链请求广播至区块链中,并将待签池中的上述上链请求删除。
步骤S980:区块链将上链请求存储于交易池中。
可见,上述方案可以基于ICAP协议实现企业资产保护,具体能够保证员工的每次链上交易都需要企业管理员审批才能生效。同时能够保证即使员工账户丢失或误操作时资产不会被转移。此外,还能够解决链上财务的日常操作,现有技术中的链上转账都只能是使用者自己或者平台给审核,而在本申请中,财务只能提交上链申请,最终还需要管理员审批后才能通过最终的上链交易。
在步骤S550中,响应于上链请求并共识响应结果,以及将响应结果打包写入区块链账本。
具体地,响应于上链请求,包括:可以调用与上链请求对应的智能合约,以通过该智能合约对上链请求进行响应。
基于此,请参阅图10,图10示意性示出了根据本申请的一个实施例的基于区块链的密钥管理方法的流程图。如图10所示,基于区块链的密钥管理方法可以包括:步骤S1000~步骤S1024。
步骤S1000:子账户签名对应的签名方通过从属账户生成请求内容,并对请求内容进行签名,得到子账户签名,将子账户签名发送至主账户签名对应的签名方,以使得主账户签名对应的签名方对子账户签名进行签名,得到主账户签名。
步骤S1002:主账户签名对应的签名方根据主账户签名生成上链请求并将上链请求广播于区块链网络中。
步骤S1004:区块链网络中的节点检测子账户签名对应的签名内容是否包含请求内容,如果是,则判定子账户签名存在合法性。
步骤S1006:节点根据上链请求中的一类编码确定上链请求的签名方类型;其中,一类编码用于作为对应于子账户签名的签名方的唯一表征。若签名方类型为组织,则执行步骤S1010。若签名方类型为个人,则执行步骤S1008。
步骤S1008:节点将上链请求存储于交易池中,并根据预设单位时长对交易池中的请求进行响应,以及对响应结果进行共识并将响应结果打包为区块写入区块链账本。
步骤S1010:节点检测主账户签名是否为空。如果是,则执行步骤S1012。如果否,则执行步骤S1014。
步骤S1012:节点将上链请求存储至待签池,以使得主账户签名对应的签名方在监听到上链请求时对上链请求进行签名。进而,执行步骤S1012。
步骤S1014:节点判定上链请求满足双重校验条件。在子账户签名存在合法性且上链请求满足双重校验条件时,执行步骤S1016。
步骤S1016:节点检测主账户签名对应的签名内容是否包含子账户签名和上链请求的请求内容。如果是,则执行步骤S1018。如果否,则执行步骤S1022。
步骤S1018:节点确定与一类编码对应的二类编码并获取二类编码对应的公钥;其中,二类编码用于作为对应于主账户签名的签名方的唯一表征。
步骤S1020:节点校验二类编码对应的公钥与主账户签名中的公钥是否一致。如果是,则执行步骤S1024。如果否,则执行步骤S1022。
步骤S1022:节点判定主账户签名不存在合法性并丢弃上链请求。
步骤S1024:节点判定主账户签名存在合法性,进而判定上链请求存在合法性。
需要说明的是,步骤S1000~步骤S1024与图5所示的各步骤及其实施例相对应,针对步骤S1000~步骤S1024的具体实施方式,请参阅图5所示的各步骤及其实施例,此处不再赘述。
可见,实施图10所示的方法,能够通过多方加密的方式,对请求中的数据进行双重加密,以使得区块链节点进行解密时需要进行双重解密,从而保障数据安全。此外,能够沿用多个账户使用一个私钥进行加密的方式,基于在此基础上的二次加密,可以在保障数据安全的前提下不增加私钥数量,从而提升对于存储空间的利用率。
进一步的,本示例实施方式中,还提供了一种基于区块链的密钥管理装置。参考图11所示,该基于区块链的密钥管理装置1100可以包括:
请求接收单元1101,用于接收至少一个签名方签名后的上链请求;
签名验证单元1102,用于校验上链请求中子账户签名的合法性;
签名验证单元1102,还用于在子账户签名存在合法性且上链请求满足双重校验条件时,校验上链请求中主账户签名的合法性;其中,子账户签名和主账户签名对应的签名方不同;
结果判定单元1103,用于在主账户签名存在合法性时,判定上链请求存在合法性;
请求响应单元1104,用于响应于上链请求并共识响应结果,以及将响应结果打包写入区块链账本。
其中,子账户签名的签名内容包括上链请求的请求内容,主账户签名的签名内容包括请求内容和子账户签名;或者,子账户签名的签名内容和主账户签名的签名内容均包括请求内容。
可见,实施图11所示的装置,能够通过多方加密的方式,对请求中的数据进行双重加密,以使得区块链节点进行解密时需要进行双重解密,从而保障数据安全。此外,能够沿用多个账户使用一个私钥进行加密的方式,基于在此基础上的二次加密,可以在保障数据安全的前提下不增加私钥数量,从而提升对于存储空间的利用率。
在本公开的一种示例性实施例中,上述装置还包括:
签名方类型确定单元(未图示),用于根据上链请求中的一类编码确定上链请求的签名方类型;其中,一类编码用于作为对应于子账户签名的签名方的唯一表征;若签名方类型为组织,则判定上链请求满足双重校验条件。
可见,实施该可选的实施例,能够在进而主账户签名验证之前确定上链请求是否符合主账户签名验证的条件,从而在符合条件的前提下执行后续的主账户签名验证,改善对于计算资源的利用率。
在本公开的一种示例性实施例中,上述装置还包括:
请求上链单元(未图示,用于在签名方类型为个人时,将上链请求存储于交易池中;根据预设单位时长对交易池中的请求进行响应;对响应结果进行共识并将响应结果打包为区块写入区块链账本。
可见,实施该可选的实施例,能够在上链请求不满足双重验证条件的情况下直接对其进行打包上链,从而提升数据上链效率。
在本公开的一种示例性实施例中,签名方类型确定单元判定上链请求满足双重校验条件,包括:
检测主账户签名是否为空,如果否,则判定上链请求满足双重校验条件。
可见,实施该可选的实施例,能够避免在主账户签名为空的情况下进行主账户签名校验,从而可以避免对于计算资源的浪费。
在本公开的一种示例性实施例中,上述装置还包括:
存储单元(未图示,用于在签名方类型确定单元检测到主账户签名为空时,将上链请求存储至待签池,以使得主账户签名对应的签名方在监听到上链请求时对上链请求进行签名。
可见,实施该可选的实施例,能够将缺少主账户签名的请求存储至待签池中,以便相关签名方能够对其进行及时签名,从而有利于提升数据上链效率。
在本公开的一种示例性实施例中,主账户签名对应的签名方在监听到上链请求时对上链请求进行签名,包括:
主账户签名对应的签名方在监听到上链请求时,对上链请求中的请求内容进行合规检测;
若检测到请求内容合规,主账户签名对应的签名方对上链请求进行签名,以使得主账户签名不为空。
可见,实施该可选的实施例,能够在请求内容符合规范的前提下,对其进行签名,从而有利于保障签名方财产数据的安全性。
在本公开的一种示例性实施例中,签名验证单元1102校验上链请求的主账户签名的合法性,包括:
检测主账户签名对应的签名内容是否包含子账户签名和上链请求的请求内容;
如果是,则确定与一类编码对应的二类编码并获取二类编码对应的公钥;其中,二类编码用于作为对应于主账户签名的签名方的唯一表征;
校验二类编码对应的公钥与主账户签名中的公钥是否一致;
若一致,则判定主账户签名存在合法性。
可见,实施该可选的实施例,能够对主账户签名的合法性进行验证,从而实现双重签名验证,以保障上链数据的合法性。
在本公开的一种示例性实施例中,上述装置还包括:
类型变更单元(未图示,用于在签名验证单元1102检测到不存在与一类编码对应的二类编码时,将签名方类型由组织变更为个人,并将上链请求存储至交易池中。
可见,实施该可选的实施例,能够通过对于签名方类型的变更,提升对于数据上链的效率。
在本公开的一种示例性实施例中,上述装置还包括:
请求丢弃单元(未图示),用于在签名验证单元1102检测到二类编码对应的公钥与主账户签名中的公钥不一致时,判定主账户签名不存在合法性并丢弃上链请求。
可见,实施该可选的实施例,能够在主账户签名不合法的情况丢弃上链请求,从而可以保障数据安全,避免私钥被盗用时造成的财产数据损失。
在本公开的一种示例性实施例中,上述装置还包括:
子账户签名对应的签名方在请求接收单元1101接收至少一个签名方签名后的上链请求之前,通过从属账户生成请求内容,并对请求内容进行签名,得到子账户签名;
子账户签名对应的签名方将子账户签名发送至主账户签名对应的签名方,以使得主账户签名对应的签名方对子账户签名进行签名,得到主账户签名;
主账户签名对应的签名方根据主账户签名生成上链请求并将上链请求广播于区块链网络中,以使得区块链网络中的节点校验上链请求的子账户签名的合法性。
可见,实施该可选的实施例,能够通过双重加密的方式保障数据安全。当本申请应用于基于ICAP协议的交易请求时,可以保障每次上链的交易数据均在得到二次签名之后才具备合法性,从而保障交易数据的安全性。
在本公开的一种示例性实施例中,签名验证单元1102校验上链请求的子账户签名的合法性,包括:
检测子账户签名对应的签名内容是否包含请求内容,如果是,则判定子账户签名存在合法性。
可见,实施该可选的实施例,能够通过对子账户签名的合法性进行检测,在子账户签名具备合法性的前提下才检测主账户签名的合法性,从而提升对于计算资源的利用率。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本申请的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
由于本申请的示例实施例的基于区块链的密钥管理装置的各个功能模块与上述基于区块链的密钥管理方法的示例实施例的步骤对应,因此对于本申请装置实施例中未披露的细节,请参照本申请上述的基于区块链的密钥管理方法的实施例。
作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该电子设备执行时,使得该电子设备实现上述实施例中所述的方法。
需要说明的是,本申请所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本申请各种实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。
Claims (14)
1.一种基于区块链的密钥管理方法,其特征在于,包括:
子账户签名对应的签名方通过从属账户生成请求内容,并对所述请求内容进行签名,得到所述子账户签名;
所述子账户签名对应的签名方将所述子账户签名发送至主账户签名对应的签名方,以使得所述主账户签名对应的签名方对所述子账户签名进行签名,得到所述主账户签名;
所述主账户签名对应的签名方根据所述主账户签名生成上链请求并将所述上链请求广播于区块链网络中,以使得所述区块链网络中的节点校验所述上链请求的子账户签名的合法性;
接收至少一个签名方签名后的上链请求;
校验所述上链请求中所述子账户签名的合法性;
若所述子账户签名存在合法性且所述上链请求满足双重校验条件时,校验所述上链请求中主账户签名的合法性;其中,所述子账户签名和所述主账户签名对应的签名方不同;
若所述主账户签名存在合法性,则判定所述上链请求存在合法性;
响应于所述上链请求并共识响应结果,以及将所述响应结果打包写入区块链账本;
其中,所述子账户签名对应的签名方为企业子账户,所述主账户签名对应的签名方为企业管理员账户,一个企业管理员账户对应于一个或多个企业子账户。
2.根据权利要求1所述的方法,其特征在于,所述子账户签名的签名内容包括所述上链请求的请求内容,所述主账户签名的签名内容包括所述请求内容和所述子账户签名;或者,所述子账户签名的签名内容和所述主账户签名的签名内容均包括所述请求内容。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
根据所述上链请求中的一类编码确定所述上链请求的签名方类型;其中,所述一类编码用于作为对应于所述子账户签名的签名方的唯一表征;
若所述签名方类型为组织,则判定所述上链请求满足所述双重校验条件。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
若所述签名方类型为个人,将所述上链请求存储于交易池中;
根据预设单位时长对所述交易池中的请求进行响应;
对响应结果进行共识并将所述响应结果打包为区块写入所述区块链账本。
5.根据权利要求3所述的方法,其特征在于,判定所述上链请求满足双重校验条件,包括:
检测所述主账户签名是否为空,如果否,则判定所述上链请求满足所述双重校验条件。
6.根据权利要求5所述的方法,其特征在于,若检测到所述主账户签名为空,所述方法还包括:
将所述上链请求存储至待签池,以使得所述主账户签名对应的签名方在监听到所述上链请求时对所述上链请求进行签名。
7.根据权利要求6所述的方法,其特征在于,所述主账户签名对应的签名方在监听到所述上链请求时对所述上链请求进行签名,包括:
所述主账户签名对应的签名方在监听到所述上链请求时,对所述上链请求中的请求内容进行合规检测;
若检测到所述请求内容合规,所述主账户签名对应的签名方对所述上链请求进行签名,以使得所述主账户签名不为空。
8.根据权利要求4所述的方法,其特征在于,校验所述上链请求的主账户签名的合法性,包括:
检测所述主账户签名对应的签名内容是否包含所述子账户签名和所述上链请求的请求内容;
如果是,则确定与所述一类编码对应的二类编码并获取所述二类编码对应的公钥;其中,所述二类编码用于作为对应于所述主账户签名的签名方的唯一表征;
校验所述二类编码对应的公钥与所述主账户签名中的公钥是否一致;
若一致,则判定所述主账户签名存在合法性。
9.根据权利要求8所述的方法,其特征在于,若检测到不存在与所述一类编码对应的二类编码,所述方法还包括:
将所述签名方类型由所述组织变更为所述个人,并将所述上链请求存储至所述交易池中。
10.根据权利要求8所述的方法,其特征在于,若所述二类编码对应的公钥与所述主账户签名中的公钥不一致,所述方法还包括:
判定所述主账户签名不存在合法性并丢弃所述上链请求。
11.根据权利要求1所述的方法,其特征在于,校验上链请求的子账户签名的合法性,包括:
检测所述子账户签名对应的签名内容是否包含所述请求内容,如果是,则判定所述子账户签名存在合法性。
12.一种基于区块链的密钥管理装置,其特征在于,包括:
子账户签名对应的签名方,用于通过从属账户生成请求内容,并对所述请求内容进行签名,得到所述子账户签名;
所述子账户签名对应的签名方,用于将所述子账户签名发送至主账户签名对应的签名方,以使得所述主账户签名对应的签名方对所述子账户签名进行签名,得到所述主账户签名;
所述主账户签名对应的签名方,用于根据所述主账户签名生成上链请求并将所述上链请求广播于区块链网络中,以使得所述区块链网络中的节点校验所述上链请求的子账户签名的合法性;
请求接收单元,用于接收至少一个签名方签名后的上链请求;
签名验证单元,用于校验所述上链请求中所述子账户签名的合法性;
所述签名验证单元,还用于在所述子账户签名存在合法性且所述上链请求满足双重校验条件时,校验所述上链请求中主账户签名的合法性;其中,所述子账户签名和所述主账户签名对应的签名方不同;
结果判定单元,用于在所述主账户签名存在合法性时,判定所述上链请求存在合法性;
请求响应单元,用于响应于所述上链请求并共识响应结果,以及将所述响应结果打包写入区块链账本;
其中,所述子账户签名对应的签名方为企业子账户,所述主账户签名对应的签名方为企业管理员账户,一个企业管理员账户对应于一个或多个企业子账户。
13.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-11任一项所述的方法。
14.一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1-11任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110187195.5A CN112560072B (zh) | 2021-02-18 | 2021-02-18 | 基于区块链的密钥管理方法、装置、介质及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110187195.5A CN112560072B (zh) | 2021-02-18 | 2021-02-18 | 基于区块链的密钥管理方法、装置、介质及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112560072A CN112560072A (zh) | 2021-03-26 |
CN112560072B true CN112560072B (zh) | 2021-06-04 |
Family
ID=75035939
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110187195.5A Active CN112560072B (zh) | 2021-02-18 | 2021-02-18 | 基于区块链的密钥管理方法、装置、介质及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112560072B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113723957B (zh) * | 2021-08-20 | 2023-10-27 | 上海浦东发展银行股份有限公司 | 区块链账户信息确认方法、装置、计算机设备和存储介质 |
CN115936732A (zh) * | 2023-01-06 | 2023-04-07 | 北京志行正科技有限公司 | 基于区块链的板件管理方法、装置、设备及介质 |
CN117057806B (zh) * | 2023-10-11 | 2024-01-30 | 腾讯科技(深圳)有限公司 | 基于区块链的数据处理方法、装置及相关设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109741803A (zh) * | 2019-01-14 | 2019-05-10 | 南京大学 | 基于区块链的医疗数据安全协作*** |
CN109936457A (zh) * | 2019-02-20 | 2019-06-25 | 深圳前海微众银行股份有限公司 | 区块链多方见证方法、装置、设备及计算机可读存储介质 |
CN110543510A (zh) * | 2019-09-05 | 2019-12-06 | 腾讯科技(深圳)有限公司 | 票据数据处理方法、装置、存储介质和计算机设备 |
CN110855445A (zh) * | 2019-11-08 | 2020-02-28 | 腾讯科技(深圳)有限公司 | 一种基于区块链的证书管理方法、装置及存储设备 |
CN111047314A (zh) * | 2018-10-12 | 2020-04-21 | 上海诺亚投资管理有限公司 | 基于区块链的金融数据处理方法及*** |
CN111145025A (zh) * | 2019-12-30 | 2020-05-12 | 北京工商大学 | 一种基于区块链的供应链数据双链存储优化方法 |
-
2021
- 2021-02-18 CN CN202110187195.5A patent/CN112560072B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111047314A (zh) * | 2018-10-12 | 2020-04-21 | 上海诺亚投资管理有限公司 | 基于区块链的金融数据处理方法及*** |
CN109741803A (zh) * | 2019-01-14 | 2019-05-10 | 南京大学 | 基于区块链的医疗数据安全协作*** |
CN109936457A (zh) * | 2019-02-20 | 2019-06-25 | 深圳前海微众银行股份有限公司 | 区块链多方见证方法、装置、设备及计算机可读存储介质 |
CN110543510A (zh) * | 2019-09-05 | 2019-12-06 | 腾讯科技(深圳)有限公司 | 票据数据处理方法、装置、存储介质和计算机设备 |
CN110855445A (zh) * | 2019-11-08 | 2020-02-28 | 腾讯科技(深圳)有限公司 | 一种基于区块链的证书管理方法、装置及存储设备 |
CN111145025A (zh) * | 2019-12-30 | 2020-05-12 | 北京工商大学 | 一种基于区块链的供应链数据双链存储优化方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112560072A (zh) | 2021-03-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11025435B2 (en) | System and method for blockchain-based cross-entity authentication | |
US10756885B2 (en) | System and method for blockchain-based cross entity authentication | |
EP3788523B1 (en) | System and method for blockchain-based cross-entity authentication | |
US10938551B2 (en) | System and method for implementing a resolver service for decentralized identifiers | |
CN112560072B (zh) | 基于区块链的密钥管理方法、装置、介质及设备 | |
US20230014599A1 (en) | Data processing method and apparatus for blockchain system | |
CN111476572B (zh) | 基于区块链的数据处理方法、装置、存储介质及设备 | |
CN109981287B (zh) | 一种代码签名方法及其存储介质 | |
CN113193961A (zh) | 一种数字证书管理方法和装置 | |
CN112600830A (zh) | 业务数据处理方法、装置、电子设备及存储介质 | |
CN113206746B (zh) | 一种数字证书管理方法和装置 | |
US11689375B2 (en) | Data in transit protection with exclusive control of keys and certificates across heterogeneous distributed computing environments | |
CN111915302B (zh) | 关联数据处理方法、装置、电子设备及计算机可读介质 | |
CN113129008A (zh) | 数据处理方法、装置、计算机可读介质及电子设备 | |
CN115409511B (zh) | 一种基于区块链的个人信息保护*** | |
CN116975810A (zh) | 身份验证方法、装置、电子设备及计算机可读存储介质 | |
KR102211033B1 (ko) | 전자인증절차의 대행 서비스 시스템 | |
CN113179169A (zh) | 一种数字证书管理方法和装置 | |
CN113672988A (zh) | 基于区块链的信息管理方法、***、介质及电子设备 | |
CN114826616B (zh) | 数据处理方法、装置、电子设备和介质 | |
US20240054458A1 (en) | Systems and methods for securely sharing public blockchain addresses | |
CN117670352A (zh) | 账户管理方法、装置、介质及电子设备 | |
CN117057788A (zh) | 交易处理方法、装置、***、设备及存储介质 | |
CN115222528A (zh) | 一种交易过程中拆分数字货币的方法、终端及*** | |
CN117614934A (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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40040359 Country of ref document: HK |