CN113591161A - 一种联盟链管理方法、装置、设备及存储介质 - Google Patents
一种联盟链管理方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN113591161A CN113591161A CN202110964568.5A CN202110964568A CN113591161A CN 113591161 A CN113591161 A CN 113591161A CN 202110964568 A CN202110964568 A CN 202110964568A CN 113591161 A CN113591161 A CN 113591161A
- Authority
- CN
- China
- Prior art keywords
- target
- external account
- node
- consensus
- account address
- 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
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/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- 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/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/45—Structures or tools for the administration of authentication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3821—Electronic credentials
- G06Q20/38215—Use of certificates or encrypted proofs of transaction rights
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3825—Use of electronic signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3827—Use of message hashing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3829—Payment protocols; Details thereof insuring higher security of transaction involving key management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/40—Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
- G06Q20/401—Transaction verification
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- Strategic Management (AREA)
- Finance (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本申请公开了一种联盟链管理方法、装置、设备及存储介质,该方法应用于联盟链智能合约,包括:联盟链智能合约接收联盟链中的用户发送的数据信息。数据信息包括目标操作相关的签名项和目标操作相关的数据信息。目标操作为要求联盟链智能合约执行的目标操作。用户至少包括超级管理员、管理委员会成员和共识节点。联盟链智能合约获取用户的外部账户地址,并对用户的外部账户地址和目标操作相关的签名项进行验证,当验证通过后,联盟链智能合约执行目标操作。该方法利用联盟链智能合约来构建联盟链的管理逻辑,从而使得联盟链的管理逻辑可基于区块链共识完成。且利用了区块链自身的可追溯、防篡改、去中心化等特性,提高了联盟链管理的安全性。
Description
技术领域
本申请涉及区块链开发领域,尤其涉及一种联盟链管理方法、装置、设备及存储介质。
背景技术
目前,区块链联盟链的管理方式主要是基于电子商务认证中心(CertificateAuthority,CA)证书进行管理。为了对参与的节点进行权限管理,当前联盟链会集成一个基于CA证书体系的成员管理服务。成员管理服务可以用于确定受信任CA、确定组织成员的身份、定义和识别参与者在组织内扮演的特定角色以及定义网络访问权限等。联盟链系统通过成员管理服务来获取相关的CA信息,并按照成员管理服务定义的权限规则来运行。但是,通过成员管理服务实现的联盟链管理,需要成员管理服务通过自身逻辑来实现高安全性,增加了提供成员管理服务的服务系统的建设复杂度。
发明内容
为了解决上述技术问题,本申请提供了一种联盟链管理方法、装置、设备及存储介质,该方法不依赖于成员管理服务,并能在一定程度上保证联盟链系统的安全性。
为了实现上述目的,本申请实施例提供的技术方案如下:
本申请实施例提供一种联盟链管理方法,所述方法应用于联盟链智能合约,包括:
接收联盟链中的用户发送的数据信息;所述数据信息包括目标操作相关的签名项和目标操作相关的数据信息;所述用户为超级管理员、代理人和管理委员会成员中的一个或多个;
获取所述用户的外部账户地址;
对所述用户的外部账户地址和所述目标操作相关的签名项进行验证,当验证通过后,执行所述目标操作。
可选地,当所述用户为代理人,所述目标操作为更新超级管理员的外部账户地址为预设外部账户地址时,所述签名项为所述代理人利用代理人私钥对所述目标操作相关的数据信息进行签名得到的;所述代理人由所述超级管理员选定;所述目标操作相关的数据信息包括待判定外部账户地址;
所述对所述用户的外部账户地址和所述目标操作相关的签名项进行验证,当验证通过后,执行所述目标操作,包括:
对所述代理人的外部账户地址和所述目标操作相关的签名项进行验证;
当对所述代理人的外部账户地址和所述目标操作相关的签名项进行验证时,对均验证通过的且所述待判定外部账户地址为所述预设外部账户地址的所述代理人的数量进行统计;
当统计的所述代理人的数量大于期望数量时,更新所述超级管理员的外部账户地址为所述预设外部账户地址。
可选地,当所述用户为超级管理员,所述目标操作为对目标代理人进行增加或删除时,所述签名项为所述超级管理员利用超级管理员私钥对所述目标操作相关的数据信息进行签名得到;所述目标操作相关的数据信息包括目标代理人的目标外部账户地址和目标代理人操作参数;
所述对所述用户的外部账户地址和所述目标操作相关的签名项进行验证,当验证通过后,执行所述目标操作,包括:
对所述超级管理员的外部账户地址和所述目标操作相关的签名项进行验证;
当对所述超级管理员的外部账户地址和所述目标操作相关的签名项均验证通过时,查询所述目标代理人操作参数;
所述目标代理人操作参数为删除参数,则在代理人外部账户地址集合中查找所述目标代理人的目标外部账户地址,将所述目标外部账户地址进行删除,完成对所述目标代理人的删除;
所述目标代理人操作参数为增加参数,则在代理人外部账户地址集合中增加所述目标代理人的目标外部账户地址为代理人外部账户地址,完成对所述目标代理人的增加。
可选地,当所述用户为超级管理员,所述目标操作为对目标管理委员会成员进行增加或删除时,所述签名项为所述超级管理员利用超级管理员私钥对所述目标操作相关的数据信息进行签名得到;所述目标操作相关的数据信息包括目标管理委员会成员的目标外部账户地址和目标管理委员会成员操作参数;
所述对所述用户的外部账户地址和所述目标操作相关的签名项进行验证,当验证通过后,执行所述目标操作,包括:
对所述超级管理员的外部账户地址和所述目标操作相关的签名项进行验证;
当对所述超级管理员的外部账户地址和所述目标操作相关的签名项均验证通过时,将所述目标管理委员会成员的目标外部账户地址和所述目标管理委员会成员操作参数发送给管理委员会成员操作接口,并确认所述管理委员会成员操作接口中的调用发起方合约地址是否为超级管理员代理合约的合约地址;
若是,根据所述目标管理委员会成员操作参数对所述目标管理委员会成员的目标外部账户地址进行增加或删除,以完成对所述目标管理委员会成员的增加或删除;所述目标管理委员会成员操作参数为增加参数或删除参数。
可选地,当所述用户为管理委员会成员,所述目标操作为对目标共识节点进行增加或删除时,所述签名项为所述管理委员会成员利用管理委员会成员私钥对所述目标操作相关的数据信息进行签名得到;所述目标操作相关的数据信息包括待确定外部账户地址和目标共识节点操作参数;
所述对所述用户的外部账户地址和所述目标操作相关的签名项进行验证,当验证通过后,执行所述目标操作,包括:
对所述管理委员会成员的外部账户地址和所述目标操作相关的签名项进行验证;
当对所述管理委员会成员的外部账户地址和所述目标操作相关的签名项进行验证时,对均验证通过的且所述待确定外部账户地址为目标共识节点的目标外部账户地址的所述管理委员会成员的数量进行统计;
当统计的所述管理委员会成员的数量大于预设数量时,将所述目标共识节点的目标外部账户地址和所述目标共识节点操作参数发送给共识管理合约的共识节点操作接口,并确认共识节点操作接口中的调用发起方合约地址是否为管理委员会代理合约的合约地址;
若是,根据所述目标共识节点操作参数对所述目标共识节点的目标外部账户地址的增加或删除,以完成对所述目标共识节点的增加或删除;所述目标共识节点操作参数为增加参数和删除参数。
可选地,所述方法还包括:
接收共识节点发送的数字资产质押请求;所述数字资产质押请求包括本次质押请求的数字资产数量;
将所述共识节点对应外部账户的总数字资产数量减去所述本次质押请求的数字资产数量;
确认所述共识节点在数字资产质押的数据映射中时,将所述共识节点对应质押账户的总数字资产质押数量增加所述本次质押请求中的数字资产数量。
可选地,所述方法还包括:
接收监督节点发送的待处理数据信息;所述待处理数据信息至少包括待处理投票资格证明、待处理签名结果和多个投票对象信息;所述待处理签名结果为多个投票签名结果或聚合签名结果;所述聚合签名结果为所述监督节点对多个投票签名结果进行聚合签名计算得到的;多个所述投票签名结果为同一个投票节点在同一次共识过程中,利用投票节点私钥对多个投票对象的投票信息分别进行签名得到的;
获取所述投票节点的外部账户地址,对所述投票节点的外部账户地址和所述待处理投票资格证明进行验证;
当对所述投票节点的所述外部账户地址和所述待处理投票资格证明的验证均通过后,对所述待处理签名结果和多个所述投票对象信息进行查验,当查验结果为所述投票节点存在对多个投票对象的一票多投时,将所述投票节点的数字资产质押数量减少预设资产值。
可选地,所述方法还包括:
接收监督节点发送的待处置信息;所述待处置信息至少包括多个待处置投票资格证明、待处置签名结果、阶段共识结果和投票对象信息;所述待处置签名结果为多个投票签名结果或聚合签名结果;所述聚合签名结果为对多个投票签名结果进行聚合签名计算得到的;多个所述投票签名结果为多个投票节点在同一次共识过程中,利用各自的投票节点私钥对同一个投票对象的投票信息分别进行签名得到的;
获取多个所述投票节点的外部账户地址,对多个所述投票节点的外部账户地址和所述待处置投票资格证明进行验证;
当对多个所述投票节点的外部账户地址和所述待处置投票资格证明的验证均通过时,查验所述待处置签名结果、所述阶段共识结果和所述投票对象信息;
当根据所述待处置签名结果确定对所述投票对象的投票数量达到预设值,且所述阶段共识结果为失败时,确定所述投票对象为恶意不出块节点;
将所述恶意不出块节点的数字资产质押数量减少预设资产值。
可选地,所述方法还包括:
接收监督节点发送的待验证数据信息;所述待验证数据信息包括待验证签名项和目标节点的证明数据;所述证明数据至少包括所述目标节点的外部账户地址、目标节点最后一次参与共识的区块号、当前共识的区块号和目标节点不在线次数;
对所述目标节点的外部账户地址和所述待验证签名项进行验证;当对所述目标节点的外部账户地址和所述待验证签名项的验证均通过后,基于所述目标节点最后一次参与共识的区块号和所述当前共识的区块号计算所述目标节点在所述目标节点最后一次参与共识的区块号之后的不参与共识次数;
当所述不参与共识次数和所述目标节点不在线次数相同,且所述不参与共识次数超过阈值时,将所述目标节点的数字资产质押数量减少预设资产值。
本申请实施例还提供了一种联盟链管理装置,所述装置应用于联盟链智能合约,包括:
第一接收单元,用于接收联盟链中的用户发送的数据信息;所述数据信息包括目标操作相关的签名项和目标操作相关的数据信息;所述用户为超级管理员、代理人和管理委员会成员中的一个或多个;
获取单元,用于获取所述用户的外部账户地址;
执行单元,用于对所述用户的外部账户地址和所述目标操作相关的签名项进行验证,当验证通过后,执行所述目标操作。
本申请实施例还提供了一种联盟链管理设备,包括:处理器、存储器、系统总线;
所述处理器以及所述存储器通过所述系统总线相连;
所述存储器用于存储一个或多个程序,所述一个或多个程序包括指令,所述指令当被所述处理器执行时使所述处理器执行所述的联盟链管理方法。
本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在终端设备上运行时,使得所述终端设备执行所述的联盟链管理方法。
通过上述技术方案可知,本申请具有以下有益效果:
本申请实施例提供了一种联盟链管理方法、装置、设备及存储介质,该方法应用于联盟链智能合约,包括:联盟链智能合约接收联盟链中的用户发送的数据信息。数据信息包括目标操作相关的签名项和目标操作相关的数据信息。其中,目标操作为要求联盟链智能合约执行的目标操作。用户至少包括超级管理员、管理委员会成员和共识节点。联盟链智能合约获取用户的外部账户地址,并对用户的外部账户地址和目标操作相关的签名项进行验证,当验证通过后,联盟链智能合约执行目标操作。该方法利用联盟链智能合约来构建联盟链的管理逻辑,从而使得联盟链的管理逻辑可基于区块链共识完成,不必再依赖于CA认证系统和基于CA认证系统的成员管理服务。基于联盟链智能合约实现联盟链的管理方法,利用了区块链自身的可追溯、防篡改、去中心化等特性,有助于提高联盟链管理的安全性。基于联盟链智能合约实现了一种代理人安全机制,系统通过代理人安全机制可以让超级管理员在安全保障下重新获取其管理权限。基于联盟链智能合约实现了一种代理合约安全机制,系统通过代理合约安全机制可以让联盟链安全逻辑保持简洁性。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的示例性应用场景的示意图;
图2为本申请实施例提供的一种联盟链管理方法的流程图;
图3为本申请实施例提供的一种通过超级管理员代理合约更新超级管理员外部账户地址的示意图;
图4为本申请实施例提供的一种通过超级管理员代理合约实现管理委员会成员增删操作的示意图;
图5为本申请实施例提供的一种通过管理委员会代理合约实现共识节点增删操作的示意图;
图6为本申请实施例提供的通过共识管理合约实现数字资产质押数量更新操作的示意图;
图7为本申请实施例提供的一种通过共识管理合约实现对一票多投的共识节点进行处理的示意图;
图8为本申请实施例提供的一种通过共识管理合约实现对恶意不出块的共识节点进行处理的示意图;
图9为本申请实施例提供的一种通过共识管理合约实现对长期不参与共识的共识节点进行处理的示意图;
图10为本申请实施例提供的一种联盟链管理装置的结构示意图。
具体实施方式
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请实施例作进一步详细的说明。
为了便于理解和解释本申请提供的技术方案,下面先对本申请的背景技术进行说明。
目前,区块链联盟链的管理方式主要是基于电子商务认证中心(CertificateAuthority,CA)证书进行管理。
为了对参与的节点进行权限管理,当前联盟链会集成一个基于CA证书体系的成员管理服务。成员管理服务可以用于确定受信任的CA、确定组织成员的身份、定义和识别参与者在组织内扮演的特定角色以及定义网络访问权限等。联盟链系统通过成员管理服务来获取相关的CA信息,并按照成员管理服务定义的权限规则来运行。但是,通过成员管理服务实现的联盟链管理,需要成员管理服务通过自身逻辑来实现高安全性,增加了提供成员管理服务的服务系统的建设复杂度。
基于此,本申请实施例提供了一种联盟链管理方法、装置、设备及存储介质。为了便于理解本申请所提供的联盟链管理方法,下面结合图1所示的示例性应用场景进行说明。其中,图1为本申请实施例提供的示例性应用场景的示意图。
联盟链智能合约101接收用户对应的终端设备102发送的数据信息。该数据信息中包括目标操作相关的签名项和目标操作相关的数据信息。其中,目标操作为联盟链智能合约101需要执行的操作。签名项为根据目标操作用户对应的终端设备102生成的签名项。
联盟链智能合约101获取用户的外部账户地址。
当联盟链智能合约101对用户的外部账户地址和目标操作相关的签名项进行验证通过后,联盟链智能合约101执行目标操作。
需要说明的是,用户至少包括超级管理员、代理人和管理委员会成员。在用户为超级管理员、代理人或管理委员会成员时,联盟链智能合约101所需要执行的目标操作为管理类操作。
本领域技术人员可以理解,图1所示的框架示意图仅是本申请的实施方式可以在其中得以实现的一个示例。本申请实施方式的适用范围不受到该框架任何方面的限制。
基于上述说明,下面将结合附图对本申请实施例提供的联盟链管理方法进行详细说明。
参见图2,图2为本申请实施例提供的一种联盟链管理方法的流程图。该方法可由上述实施例中联盟链智能合约101来执行。如图2所示,该联盟链管理方法包括S201-S202:
S201:接收联盟链中的用户发送的数据信息;数据信息包括目标操作相关的签名项和目标操作相关的数据信息;用户为超级管理员、代理人和管理委员会成员中的一个或多个。
联盟管理智能合约为联盟链系统自带的一个原生的内置智能合约,负责对整个联盟链中不同角色的成员进行管理。
代理委员会、管理委员会和共识委员会均由参与联盟链的多方共同选择并确定的。其中,代理委员会负责恢复超级管理员的账户身份。管理委员会负责对共识节点的账户进行管理。联盟链的共识机制只允许联盟链智能合约里面约定的共识委员会成员所对应的账户参与联盟链的共识过程。
根据代理委员会、管理委员会和共识委员会等确定不同角色的成员,主要包括代理委员会成员、管理委员会成员和共识委员会成员。另外,还包括超级管理员。其中,超级管理员负责对代理委员会和管理委员会的成员进行账户管理。代理委员会成员可称为代理人。共识委员会成员可称为联盟链上的共识节点。共识节点至少包括出块节点和投票节点,普通节点至少包括监督节点。
联盟链智能合约接收联盟链中的用户发送的数据信息。用户发送的数据信息中包括目标操作相关的签名项和目标操作相关的数据信息。通常,目标操作相关的签名项为用户向联盟链智能合约请求目标操作时,用户对目标操作相关的数据进行签名得到。目标操作为用户请求联盟链智能合约执行的操作。
需要说明的是,联盟链中每个用户均有各自对应的账户地址。联盟链中的账户地址分成外部账户地址和合约账户地址。
其中,外部账户地址指的是由私钥控制的外部账户地址。通常由用户随机生成一串数字,经过哈希计算(例如SHA256)后成为32字节的私钥,然后利用私钥和公钥加密算法(例如椭圆曲线加密算法)产生一个公钥,最后利用哈希算法、字节压缩算法生成外部账户地址。
可以理解的是,由于现有的公钥长度太长,而外部账户地址会有更少的字节数。比如,以太坊的公钥是64字节,而外部账户地址是20字节。则利用外部账户地址可使交换信息更加方便、节约存储空间。另外,使用外部账户地址传输信息可以增强联盟链的抗量子攻击能力。
其中,合约账户地址指的是关联有合约代码的合约账户的地址。合约账户的地址是在创建合约时确定的,这个地址由合约创建者的外部账户地址和该地址发出过的交易数量计算得到。
另外,为了支持智能合约功能,保障智能合约的逻辑构建能力,联盟链在智能合约框架系统中定义了内置变量,可以通过智能合约的内置变量来获得当前智能合约的调用者的账户地址。比如,以太坊中是通过内置变量msg.sender来访问当前智能合约的调用者的账户地址。
可以理解的是,在本申请实施例中,每个角色成员均对应有各自的账户地址。具体实施时,联盟链智能合约接收联盟链中的用户通过各自的账户发送的数据信息,通过智能合约的内置变量来获取调用联盟链智能合约的用户的外部账户地址。用户为超级管理员、代理人和管理委员会成员、共识节点或普通节点中的一个或多个。
在一些可能的实施方式中,本申请实施例提供了一些S201中用户、目标操作和签名项的具体表现形式,具体请见下文。
S202:获取用户的外部账户地址。
具体实施时,可以通过智能合约的内置变量来获得当前智能合约的调用者(即用户)的外部账户地址。
S203:对用户的外部账户地址和目标操作相关的签名项进行验证,当验证通过后,执行目标操作。
联盟链智能合约对接收到的数据信息中的签名项进行验证,若验证通过,则证明用户发送的数据信息是正确且安全的。联盟链智能合约对用户的外部账户地址进行验证,若验证通过,则说明用户是符合要求的。此时,联盟链智能合约可执行目标操作。
在一些可能的实施方式中,本申请实施例提供了一些S203中对签名项进行验证,当验证通过后,执行目标操作的具体实施方式,具体请见下文。
本申请实施例提供了一种联盟链管理方法、装置、设备及存储介质,该方法应用于联盟链智能合约,包括:联盟链智能合约接收联盟链中的用户发送的数据信息。数据信息包括目标操作相关的签名项和目标操作相关的数据信息。其中,目标操作为要求联盟链智能合约执行的目标操作。用户至少包括超级管理员、管理委员会成员和共识节点。联盟链智能合约获取用户的外部账户地址,并对用户的外部账户地址和目标操作相关的签名项进行验证,当验证通过后,联盟链智能合约执行目标操作。该方法利用联盟链智能合约来构建联盟链的管理逻辑,从而使得联盟链的管理逻辑可基于区块链共识完成,不必再依赖于CA认证系统和基于CA认证系统的成员管理服务。基于联盟链智能合约实现联盟链的管理方法,利用了区块链自身的可追溯、防篡改、去中心化等特性,有助于提高联盟链管理的安全性。基于联盟链智能合约实现了一种代理人安全机制,系统通过代理人安全机制可以让超级管理员在安全保障下重新获取其管理权限。基于联盟链智能合约实现了一种代理合约安全机制,系统通过代理合约安全机制可以让联盟链安全逻辑保持简洁性。
可以理解的是,在用户不同、数据信息不同、目标操作不同时,联盟链智能合约所执行的过程和操作是不同的。基于上述说明,下面将结合具体的场景实施例和具体实施方式来详细说明S201-S203,具体参见如下。
场景实施例一:
联盟链智能合约包括超级管理员代理合约、管理委员会代理合约和共识管理合约。
其中,超级管理员代理合约内部通过外部账户地址约定了合约控制权所对应的私钥。拥有对应私钥的超级管理员才可以调用代理合约里面约定的相关功能,比如添加/删除代理人、更新超级管理员的外部账户地址、以及通过代理合约接口调用其它智能合约。
超级管理员代理合约允许超级管理员更新合约内部的外部账户地址,从而允许超级管理员变更合约控制权所对应的私钥。
基于此,在本申请实施例中,超级管理员代理合约通过数组的方式,约定了一组代理人的外部账户地址,这组代理人可以通过多签逻辑完成超级管理员外部账户地址的更新。这组代理人为超级管理员可信的用户。可以理解的是,代理人的外部账户地址和数量均由超级管理员选定。
其中,多签逻辑中由多重签名实现。多重签名和单个签名一样,都代表着签名方的认可和授权。单个签名,代表了单个数字资产所有者对交易的认可和授权。多重签名,代表了数字资产(位于多签合约)的多个所有者对交易的认可和授权。多重签名是一种更加灵活的授权机制,适用于更复杂的现实场景。对于多签交易“M-of-N交易”。M为总私钥个数,N为参与签名的私钥个数。例如,M=2,N=3,表示某笔交易对应有3个私钥,而必须至少有其中任意2个私钥参与签名才能实现此交易,只有1个私钥参与签名则是无效的。而这个2/3可以推广到任意的m/n,比如3/3、1/5、6/11等,当然m要小于等于n。其中,m为M对应的具体数值,n为N对应的具体数值。
在超级管理员需要更新外部账户地址或超级管理员丢失秘钥的情况下,需要代理人向超级管理员代理合约发送数据信息,请求超级管理员代理合约执行更新超级管理员的外部账户地址的目标操作。
结合上述场景,相对应地,本申请实施例提供了S201-S203中的一种具体实施方式,如下:
当用户为代理人,目标操作为更新超级管理员的外部账户地址为预设外部账户地址时,与目标操作相关的签名项为代理人利用代理人私钥对目标操作相关的数据信息进行签名得到的。代理人由超级管理员选定。在该场景下,目标操作相关的数据信息包括待判定外部账户地址。
可以理解的是,超级管理员会将预设外部账户地址发送给代理人,代理人则确定需要将当前超级管理员的外部账户地址更改为预设外部账户地址。由此,代理人便向联盟链智能合约发送数据信息,请求联盟链智能合约进行超级管理员外部账户地址的更改。但是,由于一些不安全因素的原因,代理人接收到的地址为待判定外部账户地址。待判定外部账户地址可能为正确的预设外部账户地址,可能为不正确的非预设外部账户地址。
基于此,本申请实施例提供的S203中对用户的外部账户地址和目标操作相关的签名项进行验证,当验证通过后,执行目标操作,包括:
A1:对代理人的外部账户地址和目标操作相关的签名项进行验证。
可以理解的是,当用户为代理人时,获取代理人的外部账户地址。联盟链智能合约接收到代理人发送的数据信息后,获取代理人发送数据信息所用的外部账户地址。联盟链智能合约对代理人的外部账户地址和目标操作相关的签名项同时进行验证。对代理人的外部账户地址进行验证以确定代理人的身份是否是超级管理员选定的合法代理人。对签名项进行验证以确定代理人发送的数据信息是安全正确、没有被篡改过的信息。
A2:当对代理人的外部账户地址验证和目标操作相关的签名项进行验证时,对均验证通过的且待判定外部账户地址为预设外部账户地址的代理人的数量进行统计。
可以理解的是,对代理人的外部账户地址验证和目标操作相关的签名项均验证通过,说明了代理人是合法的,且发送的数据信息在传送过程中未被篡改。通常来说,代理人发送数据信息说明代理人对将超级管理员的外部账户地址更新为预设外部账户地址是持赞同意见的。后续对用户的外部账户地址和签名项进行验证的作用类似,后续便不再重复赘述。
但是,由于代理人发送的目标操作相关的数据信息中所包含的待判定外部账户地址可能不是超级管理员发送的预设外部账户地址。因此,在统计验证通过的代理人的数量时,应查验代理人发送的目标操作相关的数据信息中所包含的待判定外部账户地址是否为预设外部账户地址。
因此,对均验证通过的且所述待判定外部账户地址为所述预设外部账户地址的代理人的数量进行统计。此时统计的代理人的数量,用于最终确定是否将超级管理员的外部账户地址更新为预设外部账户地址。
A3:当统计的代理人的数量大于期望数量时,更新超级管理员的外部账户地址为预设外部账户地址。
当A2中统计的代理人的数量大于期望数量时,更新超级管理员的外部账户地址为预设外部账户地址。可以理解的是,期望数量由实际应用场景中的联盟链智能合约进行确定,这里对期望数量不进行限定。
可以理解的是,超级管理员选定的代理人为超级管理员信任的用户。超级管理员代理合约通过代理人完成多签逻辑,把合约内的超级管理员外部账户地址更新为新的外部账户地址,进而可更新私钥控制权。
需要说明的是,执行A1-A3的联盟链智能合约具体为超级管理员代理合约。
在实际应用中,结合图3,本申请实施例提供了A1-A3对应的具体实施方式,图3为本申请实施例提供的一种通过超级管理员代理合约更新超级管理员外部账户地址的示意图。具体过程如下:
A101:超级管理员代理合约内部存有一个控制重放攻击的变量nonce。
A102:超级管理员随机生成新的私钥,并根据新的私钥计算出对应的新的外部账户地址为address。
可以理解的是,生成的新的外部账户地址address即为超级管理员要更新为的预设外部账户地址。如图3所示,预设外部账户地址address为0x1234。
A103:超级管理员通知多个代理人以下信息:当前的nonce、超级管理员外部账户地址需要更新为address。可以理解的是,目标操作为更新超级管理员的外部账户地址为预设外部账户地址address。
A104:同意将超级管理员外部账户地址更新为address的代理人按照约定对超级管理员代理合约地址、address、nonce进行序列化,然后对序列化数据进行哈希计算,最后对哈希计算结果进行签名计算并输出签名项。
可以理解的是,目标操作相关的数据信息包括超级管理员代理合约地址、当前的nonce和预设外部账户地址address。目标操作相关的签名项为代理人利用代理人私钥对目标操作相关的数据信息进行签名得到的。该步骤中,采用哈希算法实现的签名过程。
需要说明的是,在该实施例中,假设代理人收到超级管理员发送的地址均为正确的预设外部账户地址。即待判定外部账户地址均为正确的预设外部账户地址。
如图3所示,同意将超级管理员代理合约地址更新为address的代理人为代理人0、代理人1和代理人2。
A105:代理人自身或委托其他人向超级管理员代理合约的超级管理员更新接口提交以下数据信息:超级管理员代理合约地址、address、nonce、签名项。
可以理解的是,在该场景实施例中,联盟链智能合约具体为超级管理员代理合约。用户为代理人。目标操作相关的数据信息包括超级管理员代理合约地址、当前的nonce和预设外部账户地址address。数据信息包括目标操作相关的数据信息和A104中生成的签名项。
A106:超级管理员代理合约获取代理人的外部账户地址。对接收到的代理人的外部账户地址和签名项进行验证和统计。验证通过的代理人发送的数据为相同的,即超级管理员代理合约地址、address、nonce等均是相同的。统计验证通过的代理人的数量,若代理人数量超过超级管理员代理合约所约定的期望数量(例如,代理人总数的1/2),则将超级管理员的外部账户地址更新为address,并对nonce进行自增操作。
如图3所示,代理人0、代理人1和代理人2的外部账户地址分别为0x1b8、0x41e和0xc3f。
基于上述说明可知,通过联盟链智能合约中的超级管理员代理合约可以实现超级管理员外部账户地址的更新过程。由超级管理员信任的代理人基于多签逻辑实现的整个更新过程是更加安全可靠的。
场景实施例二:
根据场景实施例一中的内容可知,超级管理员代理合约内部以数组的方式维护着所有选定代理人的外部账户地址,代理人的外部账户地址位于代理人外部账户地址集合中。当需要增加或删除代理人时,超级管理员需要通过向超级管理员代理合约发送数据信息以请求对代理人进行增加或删除的目标操作。可以理解的是,增加或删除代理人通过在代理人外部账户地址集合中增加或删除外部账户地址实现。
结合上述场景,相对应地,本申请实施例提供了S201-S203中的另一种具体实施方式,如下:
当用户为超级管理员,目标操作为对目标代理人进行增加或删除时,签名项为超级管理员利用超级管理员私钥对目标操作相关的数据信息进行签名得到。在该场景下,目标操作相关的数据信息包括目标代理人的目标外部账户地址和目标代理人操作参数。
基于此,本申请实施例提供的S203中对用户的外部账户地址和目标操作相关的签名项进行验证,当验证通过后,执行目标操作,包括:
B1:对超级管理员的外部账户地址和目标操作相关的签名项进行验证。
可以理解的是,当用户为超级管理员时,获取超级管理员的外部账户地址。联盟链智能合约接收到代理人发送的数据信息后,获取超级管理员的外部账户地址,对超级管理员的外部账户地址和目标操作相关的签名项进行验证。
具体实施时,可以通过联盟链智能合约的内置变量来获得当前智能合约的调用者的账户地址,即超级管理员的外部账户地址。
B2:当对超级管理员的外部账户地址和目标操作相关的签名项均验证通过时,查询目标代理人操作参数。
B3:目标代理人操作参数为删除参数,则在代理人外部账户地址集合中查找目标外部账户地址,将目标外部账户地址进行删除,完成对目标代理人的删除。
B4:目标代理人操作参数为增加参数,则在代理人外部账户地址集合中增加目标外部账户地址为代理人外部账户地址,完成对目标代理人的增加。
需要说明的是,执行B1-B4的联盟链智能合约具体为超级管理员代理合约。
在实际应用中,本申请实施例提供了B1-B4对应的具体实施方式。具体过程如下:
B101:超级管理员按照约定对超级管理员代理合约地址、address、operator、nonce进行序列化,然后对序列化数据进行哈希计算,最后对哈希计算结果进行签名计算并输出签名项。其中,控制重放攻击的变量nonce为超级管理员代理合约内部存有的。address为目标代理人的外部账户地址。operator为操作符变量,即步骤B2中的代理人操作参数。其中,添加目标代理人的operator参数对应为0x01,删除目标代理人的operator参数对应为0x00。
可以理解的是,在该场景实施例中,用户为超级管理员,目标操作为对目标代理人进行增加或删除。目标操作相关的数据信息包括超级管理员代理合约地址、目标代理人的目标外部账户地址address和目标代理人操作参数operator和控制重放攻击的变量nonce。该步骤中,生成的签名项为目标操作相关的签名项。
B102:超级管理员自身或委托其他人向超级管理员代理合约的代理人操作接口提交以下数据信息:超级管理员代理合约地址、address、operator、nonce、签名项。
可以理解的是,在该场景实施例中,联盟链智能合约具体为超级管理员代理合约。超级管理员向超级管理员代理合约发送的数据信息为目标操作相关的数据信息和目标操作相关的签名项。
B103:超级管理员代理合约对超级管理员外部账户地址和接收到的数据信息中的签名项进行验证。验证均通过后按照address和operator参数对目标代理人进行添加或删除操作,并对nonce进行自增操作。
例如,当operator参数为0x01时,在代理人外部账户地址集合中增加所述目标外部账户地址address,完成对所述目标代理人的增加。
基于上述说明可知,通过联盟链智能合约中的超级管理员代理合约,可以实现代理人的增加和删除操作。
场景实施例三:
联盟链智能合约中的管理委员会代理合约内部以数组的方式维护着所有管理委员会成员的外部账户地址,管理委员会成员的外部账户地址位于管理委员会成员外部账户地址集合中。管理委员会代理合约允许超级管理员通过超级管理员代理合约的转发接口来执行添加、删除管理委员会成员的外部账户地址的管理操作。
当需要增加或删除管理委员会成员时,超级管理员需要通过向超级管理员代理合约发送数据信息以请求对管理委员会成员进行增加或删除的目标操作。
结合上述场景,相对应地,本申请实施例提供了S201-S203中的另一种具体实施方式,如下:
当用户为超级管理员,目标操作为对目标管理委员会成员进行增加或删除时,签名项为超级管理员利用超级管理员私钥对目标操作相关的数据信息签名得到。在该场景下,目标操作相关的数据信息包括目标管理委员会成员的目标外部账户地址和目标管理委员会成员操作参数;基于此,本申请实施例提供的S203中对用户的外部账户地址和目标操作相关的签名项进行验证,当验证通过后,执行目标操作,包括:
C1:对超级管理员的外部账户地址和目标操作相关的签名项进行验证。
当用户为超级管理员时,获取超级管理员的外部账户地址。具体实施时,可以通过联盟链智能合约的内置变量来获得当前智能合约的调用者的账户地址,即超级管理员的外部账户地址。
C2:当对超级管理员的外部账户地址和目标操作相关的签名项均验证通过时,将目标管理委员会成员的目标外部账户地址和目标管理委员会成员操作参数发送给管理委员会成员操作接口,并确认管理委员会成员操作接口中的调用发起方合约地址是否为超级管理员代理合约的合约地址。
C3:若是,根据目标管理委员会成员操作参数对目标管理委员会成员的目标外部账户地址进行增加或删除,以完成对所述目标管理委员会成员的增加或删除;目标管理委员会成员操作参数为删除参数和增加参数。
当目标管理委员会成员操作参数为删除参数时,则在管理委员会成员外部账户地址集合中查找并删除目标管理委员会成员的目标外部账户地址,以完成对目标管理委员会成员的删除。
当目标管理委员会成员操作参数为增加参数时,则在管理委员会成员外部账户地址集合中增加目标管理委员会成员的目标外部账户地址,以完成对目标管理委员会成员的增加。
需要说明的是,执行C1-C3的联盟链智能合约具体为超级管理员代理合约,具体是通过超级管理员代理合约调用管理委员会代理合约实现的。
在实际应用中,结合图4,本申请实施例提供了C1-C3对应的具体实施方式,图4为本申请实施例提供的一种通过超级管理员代理合约实现管理委员会成员增删操作的示意图。具体过程如下:
C101:超级管理员按照约定对超级管理员代理合约地址、address、operator、nonce进行序列化,然后对序列化数据进行哈希计算,最后对哈希计算结果进行签名计算并输出签名项。
其中,控制重放攻击的变量nonce为超级管理员代理合约内部存有的。operator为操作符变量,即步骤C3中的管理委员会成员操作参数。其中添加管理委员会成员的operator参数为0x11,删除管理委员会成员的operator参数为0x10。目标管理委员会成员的外部账户地址为address。
需要说明的是,设置operator参数值时,需要通过参数值的设置区分是属于B101中的代理人的操作类型,还是管理委员会成员的操作类型,以保证委托其他人做操作请求时的安全性。
可以理解的是,在该场景实施例中,用户为超级管理员,目标操作为对目标管理委员会成员进行增加或删除。目标操作相关的数据信息包括超级管理员代理合约地址、目标管理委员会成员的目标外部账户地址address和目标管理委员会成员操作参数operator和控制重放攻击的变量nonce。该步骤中,生成的签名项为目标操作相关的签名项。
C102:超级管理员自身或委托其他人向超级管理员代理合约的管理委员会成员操作接口提交以下数据信息:超级管理员代理合约地址、address、operator、nonce、签名项。
可以理解的是,在该场景实施例中,联盟链智能合约具体为超级管理员代理合约。超级管理员向超级管理员代理合约发送的数据信息为目标操作相关的数据信息和目标操作相关的签名项。
C103:超级管理员代理合约对超级管理员外部账户地址和接收到的数据信息中的签名项进行验证。均验证通过后,通过超级管理员代理合约的转发接口向管理委员会代理合约的委员会成员操作接口提交以下请求数据:address和operator。
C104:管理委员会代理合约的委员会成员操作接口先确认msg.sender的值是超级管理员代理合约的合约地址,然后根据请求数据对委员会成员进行添加或者删除操作。
例如,当operator参数为0x11时,在管理委员会成员外部账户地址集合中增加目标管理委员会成员的目标外部账户地址address,完成对目标管理委员会成员的增加。
可以理解的是,若msg.sender的值不是超级管理员代理合约的合约地址,则拒绝执行目标操作。另外,超级管理员代理合约对nonce进行自增操作。
基于上述说明可知,通过联盟链智能合约中的超级管理员代理合约和管理委员会代理合约,可以实现管理委员会成员的增加和删除操作。
场景实施例四:
联盟链智能合约中的管理委员会代理合约通过数组的方式,约定了一组管理委员会成员的外部账户地址,允许管理委员会成员采用多签方式对参与共识的节点进行管理。
联盟链智能合约中的共识管理合约内部以数据映射的方式,维护了一组共识节点的外部账户地址及其对应的相关数据。共识节点的外部账户地址位于共识节点外部账户地址集合中。相关数据包括用于参与共识的质押性质的数字资产数量、共识节点最后一次参与共识的区块号、预统计的最后区块号、预统计的当前参与概率、预统计的不在线次数。
通常,管理委员会代理合约在接收到多签信息后,统计管理委员会成员的多签结果。针对达成约定人数的多签逻辑,通过管理委员会代理合约内部的转发接口调用共识管理合约对共识节点进行管理操作。
当需要增加或删除共识节点时,管理委员会成员需要通过向管理委员会代理合约发送请求数据信息以请求对共识节点进行增加或删除的目标操作。
结合上述场景,相对应地,本申请实施例提供了S201-S203中的另一种具体实施方式,如下:
当用户为管理委员会成员,目标操作为对目标共识节点进行增加或删除时,签名项为管理委员会成员利用管理委员会成员私钥对目标操作相关的数据信息进行签名得到。在该场景下,目标操作相关的数据信息包括待确定外部账户地址和目标共识节点操作参数。
基于此,本申请实施例提供的S203中对用户的外部账户地址和目标操作相关的签名项进行验证,当验证通过后,执行目标操作,包括:
D1:对管理委员会成员的外部账户地址和目标操作相关的签名项进行验证。
当用户为管理委员会成员时,获取管理委员会成员的外部账户地址。具体实施时,可以通过联盟链智能合约的内置变量来获得当前智能合约的调用者的账户地址,即管理委员会成员的外部账户地址。
D2:当对管理委员会成员的外部账户地址和目标操作相关的签名项进行验证时,对均验证通过的且待确定外部账户地址为目标共识节点的目标外部账户地址的管理委员会成员的数量进行统计。
可以理解的是,由于不安全因素的影响,管理委员会陈冠发送的目标操作相关的数据信息中所包含的待确定外部账户地址可能不是正确的目标共识节点的目标外部账户地址。因此,在统计验证通过的管理委员会成员的数量时,应查验管理委员会成员发送的目标操作相关的数据信息中所包含的待确定外部账户地址是否为正确的目标共识节点的目标外部账户地址。
因此,对均验证通过的且待确定外部账户地址为目标共识节点的目标外部账户地址的管理委员会成员的数量进行统计。此时统计的管理委员会成员的数量,用于最终确定是否将目标共识节点的目标外部账户地址进行添加或删除。
D3:当统计的管理委员会成员的数量大于预设数量时,将目标共识节点的目标外部账户地址和目标共识节点操作参数发送给共识管理合约的共识节点操作接口,并确认共识节点操作接口中的调用发起方合约地址是否为管理委员会代理合约的合约地址。
可以理解的是,预设数量根据实际应用场景中进行确定,这里对预设数量不进行限定。
D4:若是,根据目标共识节点操作参数对所述目标共识节点的目标外部账户地址的增加或删除,以完成对目标共识节点的增加或删除;共识节点操作参数为增加参数和删除参数。
当目标共识节点操作参数为增加参数时,在共识节点外部账户地址集合中增加目标共识节点的目标外部账户地址,以完成对目标共识节点的增加。
当目标共识节点操作参数为删除参数时,在共识节点外部账户地址集合中查找并删除目标共识节点的目标外部账户地址,以完成对目标共识节点的删除。
需要说明的是,执行D1-D4的联盟链智能合约具体为管理委员会代理合约,具体是通过管理委员会代理合约调用共识管理合约实现的。
在实际应用中,结合图5,本申请实施例提供了D1-D4对应的具体实施方式,图5为本申请实施例提供的一种通过管理委员会代理合约实现共识节点增删操作的示意图。具体过程如下:
D101:管理委员会成员按照约定对管理委员会代理合约地址、address、operator、nonce进行序列化,然后对序列化数据进行哈希计算,最后对哈希计算结果进行签名计算并输出签名项。
其中,控制重放攻击的变量nonce为管理委员会代理合约内部存有的。operator为操作符变量,即步骤D3中共识节点操作参数。其中添加目标共识节点的operator参数为0x21,删除目标共识节点的operator参数为0x20。
目标共识节点的目标外部账户地址为address,如图5所示,address为0x5678。
如图5所示,同意添加目标共识节点的目标外部账户地址address的管理委员会成员包括委员会成员0、委员会成员1和委员会成员2。
需要说明的是,设置operator参数值时,需要通过参数值的设置区分是属于B101中的代理人的操作类型,还是C101中管理委员会成员的操作类型,或者是D101中共识节点的操作类型,以保证委托其他人做操作请求时的安全性。
可以理解的是,在该实施例中,用户为管理委员会成员。目标操作为对共识目标节点进行增加或删除。目标操作相关的数据信息包括管理委员会代理合约地址、目标共识节点的目标外部账户地址address、目标共识节点操作参数operator和控制重放攻击的变量nonce。步骤中,生成的签名项为目标操作相关的签名项。
D102:管理委员会成员自身或委托其他人向管理委员会代理合约的共识节点操作接口提交以下请求数据信息:管理委员会代理合约地址、address、operator、nonce、签名项。
可以理解的是,在该场景实施例中,超级管理员向管理委员会代理合约发送的数据信息为目标操作相关的数据信息和目标操作相关的签名项。
D103:管理委员会代理合约获取管理委员会成员的外部账户地址,对接收到的请求数据信息中的签名项和管理委员会成员的外部账户地址进行验证。统计验证通过的管理委员会成员的数量,当验证通过的管理委员会成员的数量大于预设数量时,通过管理委员会代理合约的共识节点操作接口,向共识管理合约的共识节点操作接口提交以下请求数据:address、operator。
如图5所示,委员会成员0、委员会成员1和委员会成员2的外部账户地址分别为0x7a2、0x6ce和0x3f7。
需要说明的是,在该实施例中,假设管理委员会成员发送的目标操作相关的数据信息所包括的待确定外部账户地址均为正确的目标共识节点的目标外部账户地址。
D104:共识管理合约的共识节点操作接口先确认msg.sender的值是管理委员会代理合约的合约地址,然后根据请求数据对数据映射中的目标共识节点进行添加或者删除操作。
如果是添加操作,在共识节点外部账户地址集合中增加目标共识节点的目标外部账户地址,以完成添加一个新的共识节点,即目标共识节点。其外部账户地址为0x5678。共识管理合约的共识节点操作接口对新添加的目标共识节点所对应的相关数据进行初始化操作,即相关的数据都设置为0。
如果是删除操作,在共识节点外部账户地址集合中查找并删除目标共识节点的目标外部账户地址。并遍历数据映射,如果目标共识节点其对应的数字资产数量达到联盟链系统约定的阈值则根据目标共识节点最后一次参与共识的区块号、预统计的最后区块号、预统计的当前参与概率、预统计的不在线次数,计算目标共识节点最后一次参与共识的区块号与当前共识的区块号之间的预统计的不在线次数,并同步更新预统计的不在线次数。更新预统计的最后区块号为当前区块号。根据当前共识节点总数计算预统计的当前参与概率。
其中,预统计的不在线次数代表的是目标共识节点最后一次参与共识的区块号与预统计的最后区块号之间的缺失的参与次数。预统计的最后区块号是因为共识节点数量有变化,导致预统计的当前参与概率有变化,而需要重新计算概率值,从而迫使系统在新概率生效之前对参与次数进行统计计算。
另外,管理委员会代理合约对nonce进行自增操作。
基于上述说明可知,通过联盟链智能合约中的管理委员会代理合约调用共识管理合约,可以实现联盟链中共识节点的增加和删除操作。
需要说明的是,以上四个场景实施例说明了可通过联盟链智能合约本身支持的账户管理能力,实现对联盟链的用户管理,而不必再依赖于区块链技术之外的CA认证系统。
除此之外,还可通过联盟链智能合约对联盟链上的共识节点的共识过程进行控制。具体地,可通过后续的具体实施例进行说明,如下所示。
场景实施例五:
联盟链智能合约中的共识管理合约通过数据映射的方式,维护了一组共识节点的外部账户地址及其用于参与共识的质押性质的数字资产数量、最后一次参与共识的区块号、预统计的最后区块号、预统计的当前参与概率、预统计的不在线次数。允许每个联盟链共识节点通过共识管理合约来确认共识节点的相关信息。
结合上述场景,相对应地,本申请实施例提供了另一种联盟链管理方法,该方法还包括:
E1:接收共识节点发送的数字资产质押请求;所述数字资产质押请求包括本次质押请求的数字资产数量。
联盟链智能合约接收共识节点发送的数字资产质押请求。
可以理解的是,本次质押请求中的数字资产数量为在共识节点对应质押账户的总数字资产质押数量上的增量。
E2:将所述共识节点对应外部账户的总数字资产数量减去所述本次质押请求的数字资产数量。
联盟链智能合约获取共识节点外部账户地址对应的总数字资产数量,对共识节点对应外部账户的总数字资产数量和本次质押请求中的数字资产数量进行比较确认后,将共识节点对应账户的总数字资产数量减去本次质押请求中的数字资产数量。
即,本次质押请求中的数字资产是从共识节点对应外部账户地址的总数字资产中取得的。
E3:确认共识节点在数字资产质押的数据映射中时,将共识节点对应质押账户的总数字资产质押数量增加本次质押请求中的数字资产数量。
联盟链智能合约确定共识节点在联盟链系统保存的数据映射中时,将共识节点对应的数字资产质押数量增加质押请求的数字资产数量。即,从共识节点对应外部账户地址的总数字资产中取得的数字资产放入了共识节点对应质押账户中进行质押。
需要说明的是,执行E1-E3的联盟链智能合约具体为共识管理合约实现的。
在实际应用中,结合图6,本申请实施例提供了E1-E3对应的具体实施方式,图6为本申请实施例提供的一种通过共识管理合约实现数字资产质押数量更新操作的示意图。具体过程如下:
E101:共识节点通过联盟链向共识管理合约的数字资产质押接口进行数字资产质押操作。
可以理解的是,质押的数字资产数量即为E1中的数字资产质押请求中的数字资产数量。图6中的共识节点的外部账户地址为0x5678。质押的数字资产数量为100单位数字资产。
E102:共识管理合约的数字资产质押接口通过msg.sender来确认数字资产质押的数据映射中是否存在发起数字资产质押操作的共识节点。如果发起数字资产质押操作的共识节点存在于数据映射中,则在对共识节点对应外部账户的总数字资产数量和本次质押请求中的数字资产数量进行比较确认后,将共识节点对应外部账户的总数字资产数量减去本次质押请求中的数字资产数量。
E103:共识管理合约的数字资产质押接口通过msg.sender来确认数据映射中是否存在发起数字资产转账操作的共识节点。如果发起数字资产转账操作的共识节点存在于数据映射中,则在数据映射中把共识节点对应的数字资产质押数量加上本次质押请求中的数字资产数量。
遍历数据映射,如果该共识节点其数字资产质押数量达到系统约定的阈值则根据共识节点最后一次参与共识的区块号、预统计的最后区块号、预统计的当前参与概率、预统计的不在线次数,计算共识节点最后一次参与共识的区块号与当前共识的区块号之间的预统计的不在线次数,并同步更新预统计的不在线次数。另外,更新预统计的最后区块号为当前共识的区块号,根据当前共识节点总数计算预统计的当前参与概率。
基于上述说明可知,通过联盟链智能合约中的共识管理合约,实现联盟链中共识节点的数字资产质押数量的更新。
场景实施例六:
联盟链智能合约中的共识管理合约提供了一组共识节点治理接口,共识节点至少包括出块节点和投票节点。普通节点至少包括监督节点。每个普通节点都可以监控共识节点的整个共识过程,针对共识节点的恶意行为,通过共识节点治理接口进行问题提交,共识管理合约会根据提交的共识交易数据对问题进行确认,根据确认后的问题按照规则对恶意节点的数字资产质押数量进行一定数量的罚没操作。
相关的共识节点恶意行为包括:在同一轮区块选择中进行了一票多投、超过一定时间不参与投票(即恶意不出块)、选为合法区块提交者但不提交新区块(即长期不参与共识)。
需要说明的是,共识节点会有二种形式参与到共识过程中:投票和出块。共识节点的投票信息会以聚合签名的形式写入对应区块中。共识节点的出块信息会以签名数据的形式写入对应区块中。一票多投,是在同一轮投票环节中投票节点对不同的投票对象进行签名,并向区块链网络提交投票交易信息。一票多投的行为是联盟链不允许的。
针对上述共识节点一票多投的场景,相对应地,本申请实施例提供了另一种联盟链管理方法,该方法还包括:
F1:接收监督节点发送的待处理数据信息;待处理数据信息至少包括待处理投票资格证明、待处理签名结果和多个投票对象信息;待处理签名结果为多个投票签名结果或聚合签名结果;聚合签名结果为监督节点对多个投票签名结果进行聚合签名计算得到的;多个投票签名结果为同一个投票节点在同一次共识过程中,利用投票节点私钥对多个投票对象的投票信息分别进行签名得到的。
其中,投票资格证明包括签名项和监督节点的投票资格。签名项为监督节点利用监督节点私钥对待处理签名结果和多个投票对象信息进行签名得到的。监督节点的投票资格用于表示监督节点针对恶意行为有问题提交的资格。
可以理解的是,监督节点为联盟链系统中的一个普通节点。投票节点为联盟链系统中的一个共识节点。监督节点发现有共识节点出现了一票多投的情况时,便将待处理数据信息通过一票多投接口发送给联盟链智能合约中的共识管理合约,以使共识管理合约对一票多投的共识节点进行相应的处理。
可以理解的是,若利用聚合签名方法,对多个投票签名结果进行聚合签名,可减少待处理数据信息的提交量,节省区块空间,提升网络带宽的使用率。
F2:获取投票节点的外部账户地址,对投票节点的外部账户地址和待处理投票资格证明进行验证。
F3:当对投票节点的外部账户地址和待处理投票资格证明的验证均通过后,对待处理签名结果和多个投票对象信息进行查验,当查验结果为投票节点存在对多个投票对象的一票多投时,将投票节点的数字资产质押数量减少预设资产值。
可以理解的是,预设资产值根据实际应用场景进行设定,这里对预设资产值不进行限定。
在实际应用中,结合图7,本申请实施例提供了F1-F3对应的具体实施方式,图7为本申请实施例提供的一种通过共识管理合约实现对一票多投的共识节点进行处理的示意图。具体过程如下:
F101:联盟链系统中的监督节点监督到同一个共识节点(即投票节点)在同一轮的投票环节中对至少两个不同的投票对象进行了投票。监督节点对接收到的至少两个投票交易信息进行聚合签名计算,输出聚合签名结果。
如图7所示,联盟链系统中外部账户地址为0xe643的监督节点发现外部账户地址为0x5678的投票节点存在一票多投的问题。
F102:监督节点向共识管理合约的一票多投接口提交待处理数据信息。待处理数据信息包括待处理投票资格证明、投票节点的至少两个投票对象信息及聚合签名结果。
可以理解的是,图7中的一票二投的证明数据即为待处理数据信息。
F103:共识管理合约对提交的待处理数据信息进行验证,验证通过后获取投票节点的数据映射中的数字资产数量值,并减去联盟系统约定的预设资产值。即对一定数量的数字资产进行了罚没操作。
另外,共识管理合约判断投票节点减去预设资产值后的数字资产质押数量是否小于阈值如果对应的数字资产质押数量小于阈值则从数据映射中删除该投票节点。进而遍历数据映射,当该投票节点对应数字资产质押数量达到系统约定的阈值时,根据目标节点最后一次参与共识的区块号、预统计的最后区块号、预统计的当前参与概率、预统计的不在线次数,计算目标节点最后一次参与共识的区块号与当前共识的区块号之间的预统计的不在线次数,并同步更新预统计的不在线次数。更新预统计的最后区块号为当前区块号,根据当前共识节点总数计算预统计的当前参与概率。
基于上述说明,通过联盟链智能合约中的共识管理合约,可实现对联盟链中出现一票多投操作的共识节点的处理操作。
场景实施例七:
通常,联盟链中的共识节点会按照规则选举一个出块节点进行出块。共识节点在同一轮投票环节中,通过使用自身签名对投票对象进行投票。将满足系统约定的投票数量(例如为共识节点总数的2/3)的共识节点选中为出块节点。出块节点应该执行出块操作。
在同一轮投票环节中,可能存在出块节点不出块的情况,该情况是联盟链所不允许的。出块节点不出块会造成此轮共识失败。对此情况,监督节点会通过共识管理合约的恶意不出块接口提交相关的待处置信息以确定出块节点是否存在恶意不出块的问题。
针对共识失败的场景,相对应地,本申请实施例提供了另一种联盟链管理方法,该方法还包括:
G1:接收监督节点发送的待处置信息;待处置信息至少包括多个待处置投票资格证明、待处置签名结果、阶段共识结果和投票对象信息;待处置签名结果为多个投票签名结果或聚合签名结果;聚合签名结果为监督节点对多个投票签名结果进行聚合签名计算得到的;多个投票签名结果为多个投票节点在同一次共识过程中,利用各自的投票节点私钥对同一个投票对象的投票信息分别进行签名得到的。
具体实施时,联盟链智能合约中的共识管理合约通过恶意不出块接口接收监督节点发送的待处置信息。
可以理解的是,监督节点是在监督发现本轮共识失败的情况下,向共识管理合约发送的待处置信息,以确定是否为共识节点恶意不出块。待处置投票资格证明包括签名项和监督节点的投票资格。签名项为监督节点利用监督节点私钥对待处理签名结果、阶段共识结果和投票对象信息进行签名得到的。监督节点的投票资格用于表示监督节点针对恶意行为有问题提交的资格。
其中,待处置信息中的一个投票对象信息中所包含的投票对象即为后续同一次共识过程中的同一个投票对象。该投票对象即为出块节点。
其中,阶段共识结果为在本轮共识过程中达成的共识结果。若失败,则会进行新一轮的出块节点投票过程。
G2:获取多个投票节点的外部账户地址,对多个投票节点的外部账户地址和待处置投票资格证明进行验证。
共识管理合约对多个投票节点的外部账户地址进行验证以确定投票节点是数据映射中的共识节点。对待处置签名项进行验证以确定待处置信息是安全正确,未被篡改过的。本申请实施例中对外部账户地址和签名项的验证通常均为上述所述目的。
G3:当对多个投票节点的外部账户地址和待处置投票资格证明的验证均通过时,查验待处置签名结果、阶段共识结果和投票对象信息。
共识管理合约对多个投票节点的外部账户地址和待处置签名项进行的验证均通过时,查验待处置签名结果、阶段共识结果和投票对象信息。
G4:当根据待处置签名结果确定对投票对象的投票数量达到预设值,且阶段共识结果为失败时,确定投票对象为恶意不出块节点。
可以理解的是,投票对象的投票数量达到预设值时,表明共识节点达到了共识,能够确定出块节点。
但是,阶段共识结果为失败,可能是多个投票节点没有达成一致。或者,出块节点未出块。共识管理合约对阶段共识结果为失败的原因进行确定,当确定出块节点导致的阶段共识结果失败,则确定投票对象为恶意不出块节点。
G5:将恶意不出块节点的数字资产质押数量减少预设资产值。
在实际应用中,结合图8,本申请实施例提供了G1-G5对应的具体实施方式,图8为本申请实施例提供的一种通过共识管理合约实现对恶意不出块的共识节点进行处理的示意图。具体过程如下:
G101:监督节点接收到多个投票节点在同一轮的投票环节中对同一个投票对象进行的集体投票,将满足系统约定的投票数量(例如共识节点总数的2/3)的节点确定为出块节点。监督节点对接收到的投票交易信息进行聚合签名计算,输出聚合签名结果。
如图8所示,联盟链系统中外部账户地址为0xe643的监督节点发现外部账户地址为0x5678的出块节点存在恶意不出块的问题。
G102:监督节点监控本轮的共识过程,若本轮共识失败,系统开始新一轮的出块节点选举过程。此时,向共识管理合约的恶意不出块接口提交待处置信息至少包括多个待处置投票资格证明、待处置签名结果、阶段共识结果和一个投票对象信息。
G103:共识管理合约对提交的待处置信息进行验证。若验证通过,确定出块节点为恶意不出块节点,获取恶意不出块节点的数据映射中的数字资产质押数量,并减去联盟链系统约定的预设资产值。即对一定数量的数字资产进行了罚没操作。
另外,共识管理合约判断恶意不出块节点减去预设资产值后的数字资产质押数量是否小于阈值如果对应的数字资产质押数量小于阈值则从数据映射中删除该恶意不出块节点。并且遍历数据映射,如果恶意不出块节点对应的数字资产质押数量达到系统约定的阈值则根据目标节点最后一次参与共识的区块号、预统计的最后区块号、预统计的当前参与概率、预统计的不在线次数,计算目标节点最后一次参与共识的区块号与当前共识的区块号之间的预统计的不在线次数,并同步更新预统计的不在线次数。更新预统计的最后区块号为当前区块号,根据当前共识节点总数计算预统计的当前参与概率。
基于上述说明,通过联盟链智能合约中的共识管理合约,可实现对联盟链中恶意不出块的共识节点的处理操作。
场景实施例八:
联盟链中的节点监控所有共识节点的参与共识的情况。当联盟链中的节点(此时可称为监督节点)监测到目标节点满足系统约定的长期不参与共识的条件时,监督节点向共识管理合约提交目标节点相关的待验证数据信息,以使共识管理合约判断目标节点存在长期不参与共识的情况。
针对共识节点长期不参与共识的场景,相对应地,本申请实施例提供了另一种联盟链管理方法,该方法还包括:
H1:接收监督节点发送的待验证数据信息;待验证数据信息包括待验证签名项和目标节点的证明数据;证明数据至少包括目标节点的外部账户地址、目标节点最后一次参与共识的区块号、当前共识的区块号和目标节点不在线次数。
共识管理合约接收监督节点发送的待验证数据信息。
H2:对目标节点的外部账户地址和待验证签名项进行验证。
共识管理合约对待验证签名项进行验证。
H3:当对目标节点的外部账户地址和待验证签名项的验证均通过后,基于目标节点最后一次参与共识的区块号和当前共识的区块号计算目标节点在目标节点最后一次参与共识的区块号之后的不参与共识次数。
具体实施时,基于目标节点最后一次参与共识的区块号和当前共识的区块号获取目标节点的可能不在线次数。由于共识节点并非参加对联盟链的所有共识过程,针对共识节点,设定有参与概率,例如参与概率为10%。基于此,则目标节点的实际不在线次数为可能不在线次数和参与概率的乘积。
H4:当不参与共识次数和目标节点不在线次数相同,且不参与共识次数超过阈值时,将目标节点的数字资产质押数量减少预设资产值。
在实际应用中,结合图9,本申请实施例提供了H1-H4对应的具体实施方式,图9为本申请实施例提供的一种通过共识管理合约实现对长期不参与共识的共识节点进行处理的示意图。具体过程如下:
H101:监督节点监测到目标节点满足系统约定的长期不参与共识的条件时,监督节点向共识管理合约提交目标节点长期不参与共识的证明数据,证明数据包括目标节点的外部账户地址、目标节点的最后一次参与共识的区块号、当前共识的区块号、统计得到的不在线次数。系统约定的长期不参与共识的条件为从目标节点最后一次参与共识的区块号开始到当前共识的区块号,统计出来的不在线次数超过系统约定的阈值次数(例如阈值次数为5)。
如图9所示,联盟链系统中外部账户地址为0xe643的监督节点发现外部账户地址为0x5678的目标节点存在长期不参与共识的问题。
H102:共识管理合约验证节点提交的长期不参与共识的证明数据,验证通过后,获取对应的共识节点的数据映射中的数字资产数量值,并减去系统约定的数量。即对一定数量的数字资产进行了罚没操作。
进一步,判断减去后的数字资产数量是否小于阈值如果对应的数字资产数量小于阈值则从数据映射中删除这个共识节点。并且遍历数据映射,如果当前共识节点其对应的数字资产数量达到系统约定的阈值根据共识节点最后一次参与共识的区块号、预统计的最后区块号、预统计的当前参与概率、预统计的不在线次数,计算共识节点最后一次参与共识的区块号与当前共识的区块号之间的预统计的不在线次数,并同步更新预统计的不在线次数。更新预统计的最后区块号为当前区块号,根据当前共识节点总数计算预统计的当前参与概率。
基于上述说明,通过联盟链智能合约中的共识管理合约,可实现对联盟链中长期不参与共识的共识节点的处理操作。
基于此,在联盟链中,共识节点对区块链系统的安全性构成危险的恶意行为主要为三种:一票多投、恶意不出块、长期不参与共识。本申请实施例中利用联盟链智能合约中的共识管理合约的计算和验证能力,让联盟链系统具有了对共识节点恶意行为的识别、监测、惩罚能力,通过数字资产质押和罚没操作、并基于联盟链共识的方式完成对恶意共识节点的删除逻辑,提高了联盟链系统的整体安全性。
基于本申请实施例提供的多个具体实施方式,对于联盟链管理员角色的超级管理员、超级管理员的代理人、管理委员会成员的各种操作请求,请求数据中都设计有对应的签名项,允许联盟链管理员角色向联盟链网络发送其带签名项的请求数据,完成相关的管理工作。这样联盟链管理员在无法连接区块链网络、或外部账户没有可用的网络手续费的情况下,也能按照管理要求完成联盟链的管理工作。另外,为了实现管理的方便性,超级管理员只负责少量管理委员会成员的管理工作,管理委员会整体负责参与共识的共识节点的管理工作,这种分角色的设计有利于提高联盟链的整体管理安全性和管理效率。
基于上述方法实施例提供的联盟链管理方法,本申请还提供了一种联盟链管理装置,下面将结合附图进行说明。
装置实施例提供的联盟链管理装置的技术详情,请见上述方法实施例。
参见图10,图10为本申请实施例提供的一种联盟链管理装置的结构示意图。该装置应用于联盟链智能合约,包括:
第一接收单元1001,用于接收联盟链中的用户发送的数据信息;所述数据信息包括目标操作相关的签名项和目标操作相关的数据信息;所述用户为超级管理员、代理人和管理委员会成员中的一个或多个;
获取单元1002,用于获取所述用户的外部账户地址;
执行单元1003,用于对所述用户的外部账户地址和所述目标操作相关的签名项进行验证,当验证通过后,执行所述目标操作。
在一种可能的实施方式中,当所述用户为代理人,所述目标操作为更新超级管理员的外部账户地址为预设外部账户地址时,所述签名项为所述代理人利用代理人私钥对所述目标操作相关的数据信息进行签名得到的;所述代理人由所述超级管理员选定;所述目标操作相关的数据信息包括待判定外部账户地址;
所述执行单元1003,包括:
第一获取子单元,用于对所述代理人的外部账户地址和所述目标操作相关的签名项进行验证;
统计子单元,用于当对所述代理人的外部账户地址和所述目标操作相关的签名项进行验证时,对均验证通过的且所述待判定外部账户地址为所述预设外部账户地址的所述代理人的数量进行统计;
更新子单元,用于当统计的所述代理人的数量大于期望数量时,更新所述超级管理员的外部账户地址为所述预设外部账户地址。
在一种可能的实施方式中,当所述用户为超级管理员,所述目标操作为对目标代理人进行增加或删除时,所述签名项为所述超级管理员利用超级管理员私钥对所述目标操作相关的数据信息进行签名得到;所述目标操作相关的数据信息包括目标代理人的目标外部账户地址和目标代理人操作参数;
所述执行单元1003,包括:
第二获取子单元,用于对所述超级管理员的外部账户地址和所述目标操作相关的签名项进行验证;
查询子单元,用于当对所述超级管理员的外部账户地址和所述目标操作相关的签名项均验证通过时,查询所述目标代理人操作参数;
删除子单元,用于所述目标代理人操作参数为删除参数,则在代理人外部账户地址集合中查找所述目标代理人的目标外部账户地址,将所述目标外部账户地址进行删除,完成对所述目标代理人的删除;
增加子单元,用于所述目标代理人操作参数为增加参数,则在代理人外部账户地址集合中增加所述目标代理人的目标外部账户地址为代理人外部账户地址,完成对所述目标代理人的增加。
在一种可能的实施方式中,当所述用户为超级管理员,所述目标操作为对目标管理委员会成员进行增加或删除时,所述签名项为所述超级管理员利用超级管理员私钥对所述目标操作相关的数据信息进行签名得到;所述目标操作相关的数据信息包括目标管理委员会成员的目标外部账户地址和目标管理委员会成员操作参数;
所述执行单元1003,包括:
第三获取子单元,用于对所述超级管理员的外部账户地址和所述目标操作相关的签名项进行验证;
第一发送子单元,用于当对所述超级管理员的外部账户地址和所述目标操作相关的签名项均验证通过时,将所述目标管理委员会成员的目标外部账户地址和所述目标管理委员会成员操作参数发送给管理委员会成员操作接口,并确认所述管理委员会成员操作接口中的调用发起方合约地址是否为超级管理员代理合约的合约地址;
第一处理子单元,用于当所述委员会成员操作接口中的合约地址为超级管理员代理合约的合约地址,根据所述目标管理委员会成员操作参数对所述目标管理委员会成员的目标外部账户地址进行增加或删除,以完成对所述目标管理委员会成员的增加或删除;所述目标管理委员会成员操作参数为增加参数和删除参数。
在一种可能的实施方式中,当所述用户为管理委员会成员,所述目标操作为对目标共识节点进行增加或删除时,所述签名项为所述管理委员会成员利用管理委员会成员私钥对所述目标操作相关的数据信息进行签名得到;所述目标操作相关的数据信息包括待确定外部账户地址和目标共识节点操作参数;
所述执行单元1003,包括:
第一验证子单元,用于对所述管理委员会成员的外部账户地址和所述目标操作相关的签名项进行验证;
统计子单元,用于当对所述管理委员会成员的外部账户地址和所述目标操作相关的签名项进行验证时,对均验证通过的且所述待确定外部账户地址为目标共识节点的目标外部账户地址的所述管理委员会成员的数量进行统计;
第二发送子单元,用于当统计的所述管理委员会成员的数量大于预设数量时,将所述目标共识节点的目标外部账户地址和所述目标共识节点操作参数发送给共识管理合约的共识节点操作接口,并确认共识节点操作接口中的调用发起方合约地址是否为管理委员会代理合约的合约地址;
第二处理子单元,用于当共识节点操作接口中的合约地址为管理委员会代理合约的合约地址时,根据所述目标共识节点操作参数对所述目标共识节点的目标外部账户地址的增加或删除,以完成对所述目标共识节点的的增加或删除;所述目标共识节点操作参数为增加参数和删除参数。
在一种可能的实施方式中,所述装置还包括:
第二接收单元,用于接收共识节点发送的数字资产质押请求;所述数字资产质押请求包括本次质押请求的数字资产数量;
减少单元,用于将所述共识节点对应外部账户的总数字资产数量减去所述本次质押请求的数字资产数量;
增加单元,用于确认所述共识节点在数字资产质押的数据映射中时,将所述共识节点对应质押账户的总数字资产质押数量增加所述转账本次质押请求中的数字资产数量。
在一种可能的实施方式中,所述装置还包括:
第三接收单元,用于接收监督节点发送的待处理数据信息;所述待处理数据信息至少包括待处理投票资格证明、待处理签名结果和多个投票对象信息;所述待处理签名结果为多个投票签名结果或聚合签名结果;所述聚合签名结果为所述监督节点对多个投票签名结果进行聚合签名计算得到的;多个所述投票签名结果为同一个投票节点在同一次共识过程中,利用投票节点私钥对多个投票对象的投票信息分别进行签名得到的;
第二验证单元,用于获取所述投票节点的外部账户地址,对所述投票节点的外部账户地址和所述待处理投票资格证明进行验证;
第一查验单元,用于当对所述投票节点的所述外部账户地址和所述待处理投票资格证明的验证均通过后,对所述待处理签名结果和多个所述投票对象信息进行查验,当查验结果为所述投票节点存在对多个投票对象的一票多投时,将所述投票节点的数字资产质押数量减少预设资产值。
在一种可能的实施方式中,所述装置还包括:
第四接收单元,用于接收监督节点发送的待处置信息;所述待处置信息至少包括多个待处置投票资格证明、待处置签名结果、阶段共识结果和投票对象信息;所述待处置签名结果为多个投票签名结果或聚合签名结果;所述聚合签名结果为对多个投票签名结果进行聚合签名计算得到的;多个所述投票签名结果为多个投票节点在同一次共识过程中,利用各自的投票节点私钥对同一个投票对象的投票信息分别进行签名得到的;
第三验证单元,用于获取多个所述投票节点的外部账户地址,对多个所述投票节点的外部账户地址和所述待处置投票资格证明进行验证;
第二查验单元,用于当对多个所述投票节点的外部账户地址和所述待处置投票资格证明的验证均通过时,查验所述待处置签名结果、所述阶段共识结果和所述投票对象信息;
确定单元,用于当根据所述待处置签名结果确定对所述投票对象的投票数量达到预设值,且所述阶段共识结果为失败时,确定所述投票对象为恶意不出块节点;
第一预设资产减少单元,用于将所述恶意不出块节点的数字资产质押数量减少预设资产值。
在一种可能的实施方式中,所述装置还包括:
第五接收单元,用于接收监督节点发送的待验证数据信息;所述待验证数据信息包括待验证签名项和目标节点的证明数据;所述证明数据至少包括所述目标节点的外部账户地址、目标节点的最后一次参与共识的区块号、当前共识的区块号和目标节点不在线次数;
第四验证单元,用于对所述目标节点的外部账户地址和所述待验证签名项进行验证;
计算单元,用于当对所述目标节点的外部账户地址和所述待验证签名项的验证均通过后,基于所述目标节点最后一次参与的区块号和所述当前共识的区块号计算所述目标节点在所述目标节点最后一次参与共识的区块号之后的不参与共识次数;
第二预设资产减少单元,用于当所述不参与共识次数和所述目标节点不在线次数相同,且所述不参与共识次数超过阈值时,将所述目标节点的数字资产质押数量减少预设资产值。
另外,本申请实施例还提供了一种联盟链管理设备,包括:处理器、存储器、系统总线;
所述处理器以及所述存储器通过所述系统总线相连;
所述存储器用于存储一个或多个程序,所述一个或多个程序包括指令,所述指令当被所述处理器执行时使所述处理器执行上述任一项实施例所述的联盟链管理方法。
另外,本申请实施例还提供了一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有指令,当所述指令在终端设备上运行时,使得所述终端设备执行上述任一项实施例所述的联盟链管理方法。
本申请实施例提供了一种联盟链管理装置、设备及存储介质,该方法应用于联盟链智能合约,包括:联盟链智能合约接收联盟链中的用户发送的数据信息。数据信息包括目标操作相关的签名项和目标操作相关的数据信息。其中,目标操作为要求联盟链智能合约执行的目标操作。用户至少包括超级管理员、管理委员会成员和共识节点。联盟链智能合约获取用户的外部账户地址,并对用户的外部账户地址和目标操作相关的签名项进行验证,当验证通过后,联盟链智能合约执行目标操作。该方法利用联盟链智能合约来构建联盟链的管理逻辑,从而使得联盟链的管理逻辑可基于区块链共识完成,不必再依赖于CA认证系统和基于CA认证系统的成员管理服务。基于联盟链智能合约实现联盟链的管理方法,利用了区块链自身的可追溯、防篡改、去中心化等特性,有助于提高联盟链管理的安全性。基于联盟链智能合约实现了一种代理人安全机制,系统通过代理人安全机制可以让超级管理员在安全保障下重新获取其管理权限。基于联盟链智能合约实现了一种代理合约安全机制,系统通过代理合约安全机制可以让联盟链安全逻辑保持简洁性。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到上述实施例方法中的全部或部分步骤可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者诸如媒体网关等网络通信设备,等等)执行本申请各个实施例或者实施例的某些部分所述的方法。
需要说明的是,本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的方法而言,由于其与实施例公开的系统相对应,所以描述的比较简单,相关之处参见系统部分说明即可。
还需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (12)
1.一种联盟链管理方法,其特征在于,所述方法应用于联盟链智能合约,包括:
接收联盟链中的用户发送的数据信息;所述数据信息包括目标操作相关的签名项和目标操作相关的数据信息;所述用户为超级管理员、代理人和管理委员会成员中的一个或多个;
获取所述用户的外部账户地址;
对所述用户的外部账户地址和所述目标操作相关的签名项进行验证,当验证通过后,执行所述目标操作。
2.根据权利要求1所述的方法,其特征在于,当所述用户为代理人,所述目标操作为更新超级管理员的外部账户地址为预设外部账户地址时,所述签名项为所述代理人利用代理人私钥对所述目标操作相关的数据信息进行签名得到的;所述代理人由所述超级管理员选定;所述目标操作相关的数据信息包括待判定外部账户地址;
所述对所述用户的外部账户地址和所述目标操作相关的签名项进行验证,当验证通过后,执行所述目标操作,包括:
对所述代理人的外部账户地址和所述目标操作相关的签名项进行验证;
当对所述代理人的外部账户地址和所述目标操作相关的签名项进行验证时,对均验证通过的且所述待判定外部账户地址为所述预设外部账户地址的所述代理人的数量进行统计;
当统计的所述代理人的数量大于期望数量时,更新所述超级管理员的外部账户地址为所述预设外部账户地址。
3.根据权利要求1所述的方法,其特征在于,当所述用户为超级管理员,所述目标操作为对目标代理人进行增加或删除时,所述签名项为所述超级管理员利用超级管理员私钥对所述目标操作相关的数据信息进行签名得到;所述目标操作相关的数据信息包括目标代理人的目标外部账户地址和目标代理人操作参数;
所述对所述用户的外部账户地址和所述目标操作相关的签名项进行验证,当验证通过后,执行所述目标操作,包括:
对所述超级管理员的外部账户地址和所述目标操作相关的签名项进行验证;
当对所述超级管理员的外部账户地址和所述目标操作相关的签名项均验证通过时,查询所述目标代理人操作参数;
所述目标代理人操作参数为删除参数,则在代理人外部账户地址集合中查找所述目标代理人的目标外部账户地址,将所述目标外部账户地址进行删除,完成对所述目标代理人的删除;
所述目标代理人操作参数为增加参数,则在代理人外部账户地址集合中增加所述目标代理人的目标外部账户地址为代理人外部账户地址,完成对所述目标代理人的增加。
4.根据权利要求1所述的方法,其特征在于,当所述用户为超级管理员,所述目标操作为对目标管理委员会成员进行增加或删除时,所述签名项为所述超级管理员利用超级管理员私钥对所述目标操作相关的数据信息进行签名得到;所述目标操作相关的数据信息包括目标管理委员会成员的目标外部账户地址和目标管理委员会成员操作参数;
所述对所述用户的外部账户地址和所述目标操作相关的签名项进行验证,当验证通过后,执行所述目标操作,包括:
对所述超级管理员的外部账户地址和所述目标操作相关的签名项进行验证;
当对所述超级管理员的外部账户地址和所述目标操作相关的签名项均验证通过时,将所述目标管理委员会成员的目标外部账户地址和所述目标管理委员会成员操作参数发送给管理委员会成员操作接口,并确认所述管理委员会成员操作接口中的调用发起方合约地址是否为超级管理员代理合约的合约地址;
若是,根据所述目标管理委员会成员操作参数对所述目标管理委员会成员的目标外部账户地址进行增加或删除,以完成对所述目标管理委员会成员的增加或删除;所述目标管理委员会成员操作参数为增加参数或删除参数。
5.根据权利要求1所述的方法,其特征在于,当所述用户为管理委员会成员,所述目标操作为对目标共识节点进行增加或删除时,所述签名项为所述管理委员会成员利用管理委员会成员私钥对所述目标操作相关的数据信息进行签名得到;所述目标操作相关的数据信息包括待确定外部账户地址和目标共识节点操作参数;
所述对所述用户的外部账户地址和所述目标操作相关的签名项进行验证,当验证通过后,执行所述目标操作,包括:
对所述管理委员会成员的外部账户地址和所述目标操作相关的签名项进行验证;
当对所述管理委员会成员的外部账户地址和所述目标操作相关的签名项进行验证时,对均验证通过的且所述待确定外部账户地址为目标共识节点的目标外部账户地址的所述管理委员会成员的数量进行统计;
当统计的所述管理委员会成员的数量大于预设数量时,将所述目标共识节点的目标外部账户地址和所述目标共识节点操作参数发送给共识管理合约的共识节点操作接口,并确认共识节点操作接口中的调用发起方合约地址是否为管理委员会代理合约的合约地址;
若是,根据所述目标共识节点操作参数对所述目标共识节点的目标外部账户地址的增加或删除,以完成对所述目标共识节点的增加或删除;所述目标共识节点操作参数为增加参数和删除参数。
6.根据权利要求1-5任一项所述的方法,其特征在于,所述方法还包括:
接收共识节点发送的数字资产质押请求;所述数字资产质押请求包括本次质押请求的数字资产数量;
将所述共识节点对应外部账户的总数字资产数量减去所述本次质押请求的数字资产数量;
确认所述共识节点在数字资产质押的数据映射中时,将所述共识节点对应质押账户的总数字资产质押数量增加所述本次质押请求中的数字资产数量。
7.根据权利要求1-5任一项所述的方法,其特征在于,所述方法还包括:
接收监督节点发送的待处理数据信息;所述待处理数据信息至少包括待处理投票资格证明、待处理签名结果和多个投票对象信息;所述待处理签名结果为多个投票签名结果或聚合签名结果;所述聚合签名结果为所述监督节点对多个投票签名结果进行聚合签名计算得到的;多个所述投票签名结果为同一个投票节点在同一次共识过程中,利用投票节点私钥对多个投票对象的投票信息分别进行签名得到的;
获取所述投票节点的外部账户地址,对所述投票节点的外部账户地址和所述待处理投票资格证明进行验证;
当对所述投票节点的所述外部账户地址和所述待处理投票资格证明的验证均通过后,对所述待处理签名结果和多个所述投票对象信息进行查验,当查验结果为所述投票节点存在对多个投票对象的一票多投时,将所述投票节点的数字资产质押数量减少预设资产值。
8.根据权利要求1-5任一项所述的方法,其特征在于,所述方法还包括:
接收监督节点发送的待处置信息;所述待处置信息至少包括多个待处置投票资格证明、待处置签名结果、阶段共识结果和投票对象信息;所述待处置签名结果为多个投票签名结果或聚合签名结果;所述聚合签名结果为对多个投票签名结果进行聚合签名计算得到的;多个所述投票签名结果为多个投票节点在同一次共识过程中,利用各自的投票节点私钥对同一个投票对象的投票信息分别进行签名得到的;
获取多个所述投票节点的外部账户地址,对多个所述投票节点的外部账户地址和所述待处置投票资格证明进行验证;
当对多个所述投票节点的外部账户地址和所述待处置投票资格证明的验证均通过时,查验所述待处置签名结果、所述阶段共识结果和所述投票对象信息;
当根据所述待处置签名结果确定对所述投票对象的投票数量达到预设值,且所述阶段共识结果为失败时,确定所述投票对象为恶意不出块节点;
将所述恶意不出块节点的数字资产质押数量减少预设资产值。
9.根据权利要求1-5任一项所述的方法,其特征在于,所述方法还包括:
接收监督节点发送的待验证数据信息;所述待验证数据信息包括待验证签名项和目标节点的证明数据;所述证明数据至少包括所述目标节点的外部账户地址、目标节点最后一次参与共识的区块号、当前共识的区块号和目标节点不在线次数;
对所述目标节点的外部账户地址和所述待验证签名项进行验证;当对所述目标节点的外部账户地址和所述待验证签名项的验证均通过后,基于所述目标节点最后一次参与共识的区块号和所述当前共识的区块号计算所述目标节点在所述目标节点最后一次参与共识的区块号之后的不参与共识次数;
当所述不参与共识次数和所述目标节点不在线次数相同,且所述不参与共识次数超过阈值时,将所述目标节点的数字资产质押数量减少预设资产值。
10.一种联盟链管理装置,其特征在于,所述装置应用于联盟链智能合约,包括:
第一接收单元,用于接收联盟链中的用户发送的数据信息;所述数据信息包括目标操作相关的签名项和目标操作相关的数据信息;所述用户为超级管理员、代理人和管理委员会成员中的一个或多个;
获取单元,用于获取所述用户的外部账户地址;
执行单元,用于对所述用户的外部账户地址和所述目标操作相关的签名项进行验证,当验证通过后,执行所述目标操作。
11.一种联盟链管理设备,其特征在于,包括:处理器、存储器、系统总线;
所述处理器以及所述存储器通过所述系统总线相连;
所述存储器用于存储一个或多个程序,所述一个或多个程序包括指令,所述指令当被所述处理器执行时使所述处理器执行权利要求1-9任一项所述的联盟链管理方法。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有指令,当所述指令在终端设备上运行时,使得所述终端设备执行权利要求1-9任一项所述的联盟链管理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110964568.5A CN113591161B (zh) | 2021-08-19 | 2021-08-19 | 一种联盟链管理方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110964568.5A CN113591161B (zh) | 2021-08-19 | 2021-08-19 | 一种联盟链管理方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113591161A true CN113591161A (zh) | 2021-11-02 |
CN113591161B CN113591161B (zh) | 2023-09-08 |
Family
ID=78239135
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110964568.5A Active CN113591161B (zh) | 2021-08-19 | 2021-08-19 | 一种联盟链管理方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113591161B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114565326A (zh) * | 2022-04-29 | 2022-05-31 | 深圳市誉兴通科技股份有限公司 | 基于物联网的药品管理方法及系统 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106878000A (zh) * | 2017-03-06 | 2017-06-20 | 中钞信用卡产业发展有限公司北京智能卡技术研究院 | 一种联盟链共识方法及系统 |
CN108667618A (zh) * | 2018-05-10 | 2018-10-16 | 阿里巴巴集团控股有限公司 | 区块链成员管理的数据处理方法、装置、服务器及系统 |
WO2019232789A1 (zh) * | 2018-06-08 | 2019-12-12 | 北京大学深圳研究生院 | 一种基于投票的共识方法 |
CN110572262A (zh) * | 2019-09-20 | 2019-12-13 | 中国银行股份有限公司 | 区块链联盟链构建方法、装置及系统 |
CN111277647A (zh) * | 2020-01-19 | 2020-06-12 | 北京百度网讯科技有限公司 | 区块链网络成员管理方法、装置、设备和介质 |
CN112073413A (zh) * | 2020-09-08 | 2020-12-11 | 深圳市金蚁云供应链科技有限公司 | 在线化联盟链管理方法、装置、计算机设备及存储介质 |
CN112784296A (zh) * | 2021-01-05 | 2021-05-11 | 航天信息股份有限公司 | 基于多方投票管理模式的联盟链分布式管理方法及系统 |
CN112804087A (zh) * | 2020-12-31 | 2021-05-14 | 北京百度网讯科技有限公司 | 联盟网络的运行实现方法、装置、设备及存储介质 |
-
2021
- 2021-08-19 CN CN202110964568.5A patent/CN113591161B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106878000A (zh) * | 2017-03-06 | 2017-06-20 | 中钞信用卡产业发展有限公司北京智能卡技术研究院 | 一种联盟链共识方法及系统 |
CN108667618A (zh) * | 2018-05-10 | 2018-10-16 | 阿里巴巴集团控股有限公司 | 区块链成员管理的数据处理方法、装置、服务器及系统 |
WO2019232789A1 (zh) * | 2018-06-08 | 2019-12-12 | 北京大学深圳研究生院 | 一种基于投票的共识方法 |
CN110572262A (zh) * | 2019-09-20 | 2019-12-13 | 中国银行股份有限公司 | 区块链联盟链构建方法、装置及系统 |
CN111277647A (zh) * | 2020-01-19 | 2020-06-12 | 北京百度网讯科技有限公司 | 区块链网络成员管理方法、装置、设备和介质 |
CN112073413A (zh) * | 2020-09-08 | 2020-12-11 | 深圳市金蚁云供应链科技有限公司 | 在线化联盟链管理方法、装置、计算机设备及存储介质 |
CN112804087A (zh) * | 2020-12-31 | 2021-05-14 | 北京百度网讯科技有限公司 | 联盟网络的运行实现方法、装置、设备及存储介质 |
CN112784296A (zh) * | 2021-01-05 | 2021-05-11 | 航天信息股份有限公司 | 基于多方投票管理模式的联盟链分布式管理方法及系统 |
Non-Patent Citations (1)
Title |
---|
段靓;吕鑫;刘凡;: "基于信任委托的区块链分层共识优化", 计算机工程, no. 10 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114565326A (zh) * | 2022-04-29 | 2022-05-31 | 深圳市誉兴通科技股份有限公司 | 基于物联网的药品管理方法及系统 |
CN114565326B (zh) * | 2022-04-29 | 2022-08-30 | 深圳市誉兴通科技股份有限公司 | 基于物联网的药品管理方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN113591161B (zh) | 2023-09-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11651109B2 (en) | Permission management method, permission verification method, and related apparatus | |
CN110380858B (zh) | 用于处理区块链的游戏共识协议的方法和系统 | |
CN110537355B (zh) | 基于安全区块链的共识 | |
CN112311735B (zh) | 可信认证方法,网络设备、系统及存储介质 | |
CN110546664A (zh) | 区块链之间的安全转移 | |
CN112152778B (zh) | 一种节点管理方法、装置、及电子设备 | |
US11757884B2 (en) | Method and system for controlling the release of a resource | |
CN108965342B (zh) | 数据请求方访问数据源的鉴权方法及系统 | |
CN113940032A (zh) | 用于在区块链网络中记录工作历史并证明声誉的方法和装置 | |
CN114503146A (zh) | 用于在区块链网络中注册和鉴别矿工身份的方法和装置 | |
CN114760071B (zh) | 基于零知识证明的跨域数字证书管理方法、系统和介质 | |
Wang et al. | Achieving fine-grained and flexible access control on blockchain-based data sharing for the Internet of Things | |
Das | Toward next generation of blockchain using improvized bitcoin-ng | |
CN110290111B (zh) | 操作权限管理方法、装置及区块链节点、存储介质 | |
CN113591161B (zh) | 一种联盟链管理方法、装置、设备及存储介质 | |
Kamuni et al. | Secure energy market against cyber attacks using blockchain | |
CN112039837B (zh) | 一种基于区块链和秘密共享的电子证据保全方法 | |
KR20200063034A (ko) | 블록체인 기반 IoT 인증 시스템 | |
CN114936853A (zh) | 基于可信执行环境的链下交易协议与交易认证方法 | |
US11991189B2 (en) | Intrusion detection for computer systems | |
KR102166029B1 (ko) | 확률적 트랜젝션의 처리방법 | |
KR20210054895A (ko) | 슈퍼노드 기반 블록체인 생성 및 검증 서비스 제공 시스템 | |
Rao et al. | VAPKI: A blockchain-based identification system with validation and authentication | |
CN117040929B (zh) | 一种访问处理方法、装置、设备、介质及程序产品 | |
CN113946815B (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 | ||
CB03 | Change of inventor or designer information |
Inventor after: Hu Jingyu Inventor after: Chen Zhifang Inventor before: Hu Jingyu |
|
CB03 | Change of inventor or designer information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |