CN115879168B - 基于2pc的数字资产归属变更方法及装置 - Google Patents
基于2pc的数字资产归属变更方法及装置 Download PDFInfo
- Publication number
- CN115879168B CN115879168B CN202310213129.XA CN202310213129A CN115879168B CN 115879168 B CN115879168 B CN 115879168B CN 202310213129 A CN202310213129 A CN 202310213129A CN 115879168 B CN115879168 B CN 115879168B
- Authority
- CN
- China
- Prior art keywords
- attribution
- digital asset
- processor
- target
- changed
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Storage Device Security (AREA)
Abstract
本发明提供一种基于2PC的数字资产归属变更方法及装置,其中方法包括:接收步骤:接收客户端发送的归属变更指令,所述归属变更指令包括:待变更数字资产的第一编号、所述待变更数字资产的当前归属方信息及目标归属方信息;变更步骤:根据所述第一编号确定目标处理器;并行锁定全部的所述待变更数字资产,以禁止所述变更步骤的执行进程之外的其他进程变更所述待变更数字资产的归属方;指示所述目标处理器将所述待变更数字资产由归属于所述当前归属方变更为归属于所述目标归属方;解除对所述待变更数字资产的锁定。本发明能够实现对数字资产归属的高效变更。
Description
技术领域
本发明实施例涉及互联网金融技术领域,尤其涉及一种基于2PC的数字资产归属变更方法及装置。
背景技术
数字资产(Digital assets)是指企业或个人拥有或控制的,以电子数据形式存在的,在日常活动中持有以备出售或处于生产过程中的非货币性资产。
数字资产的产生得益于办公自动化,数字资产依托电子支付系统而发展,如今数字资产正在成为数字经济和数字金融的一个中心话题。
采用现有的方法对数字资产归属进行变更,变更效率低。
发明内容
本发明实施例提供一种基于2PC的数字资产归属变更方法及装置,以解决采用现有的方法对数字资产归属进行变更,变更效率低的问题。
为了解决上述技术问题,本发明是这样实现的:
第一方面,本发明实施例提供了一种基于2PC的数字资产归属变更方法,应用于事务协调器TC,所述方法包括:
接收步骤:接收客户端发送的归属变更指令,所述归属变更指令包括:待变更数字资产的第一编号、所述待变更数字资产的当前归属方信息及目标归属方信息;
变更步骤:根据所述第一编号确定目标处理器;并行锁定全部的所述待变更数字资产,以禁止所述变更步骤的执行进程之外的其他进程变更所述待变更数字资产的归属方;指示所述目标处理器将所述待变更数字资产由归属于所述当前归属方变更为归属于所述目标归属方;解除对所述待变更数字资产的锁定。
可选地,
所述归属变更指令为由客户端发送的且通过第一校验的归属变更指令;
其中,所述归属变更指令还包括:所述客户端的签名信息;
所述方法还包括:
第一校验步骤:对所述当前归属方及所述目标归属方是否处于可用状态进行校验,得到第一校验结果;
第一执行步骤:若所述第一校验结果为所述当前归属方及所述目标归属方均处于可用状态,对所述客户端的签名是否合法进行校验,得到第二校验结果;
第二执行步骤:若所述第二校验结果为所述签名合法,确定通过第一校验。
可选地,
所述签名为采用所述客户端的RSA私钥加密当前登录在所述客户端的账户信息生成的签名;
对所述客户端的签名是否合法进行校验,包括:
获取步骤:获取与所述账户信息对应的RSA公钥;
第二校验步骤:采用所述RSA公钥,按照RSA签名验证算法对所述签名是否合法进行校验,得到所述第二校验结果。
可选地,
根据所述第一编号确定目标处理器,包括:
查询步骤:根据所述第一编号查询本地数据库中是否存在已为所述待变更数字资产指定的指定处理器集群,得到查询结果;
第三执行步骤:若所述查询结果为所述本地数据库中存在所述指定处理器集群,确定所述指定处理器集群中的处理器为所述目标处理器;
第四执行步骤:若所述查询结果为所述本地数据库中不存在所述指定处理器集群,对所述第一编号进行取模运算,并根据所述取模运算的运算结果确定所述目标处理器。
可选地,
根据所述取模运算的运算结果确定所述目标处理器,包括:
第五执行步骤:以所述运算结果中的余数为目标编号;
第六执行步骤:将编号为所述目标编号的处理器确定为所述目标处理器。
可选地,
采用raft协议方式指示所述目标处理器将所述待变更数字资产由归属于所述当前归属方变更为归属于所述目标归属方。
可选地,
所述第一编号、所述当前归属方信息及所述目标归属方信息均为采用MD5算法加密的哈希值形式的信息。
第二方面,本发明实施例提供了一种基于2PC的数字资产归属变更装置,包括:
接收模块,用于接收步骤:接收客户端发送的归属变更指令,所述归属变更指令包括:待变更数字资产的第一编号、所述待变更数字资产的当前归属方信息及目标归属方信息;
变更模块,用于变更步骤:根据所述第一编号确定目标处理器;并行锁定全部的所述待变更数字资产,以禁止所述变更步骤的执行进程之外的其他进程变更所述待变更数字资产的归属方;指示所述目标处理器将所述待变更数字资产由归属于所述当前归属方变更为归属于所述目标归属方;解除对所述待变更数字资产的锁定。
第三方面,本发明实施例提供了一种电子设备,包括处理器,存储器及存储在所述存储器上并可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如第一方面中任一项所述的数字资产的归属变更方法中的步骤。
第四方面,本发明实施例提供了一种可读存储介质,所述可读存储介质上存储程序或指令,所述程序或指令被处理器执行时实现如第一方面中任一项所述的数字资产的归属变更方法中的步骤。
在本发明实施例中,通过在归属变更指令中包含第一编号,并根据第一编号确定目标处理器,实现了以资产为中心的数字资产变更模式(即以资产作为变更步骤执行进程的导向因素,而非以资产归属方),能够实现并发的数字资产变更,提高了变更的执行效率。此外,基于2PC模式,在具体的数字资产变更过程中,通过并行锁定全部的待变更数字资产,指示目标处理器将待变更数字资产由归属于当前归属方变更为归属于目标归属方,避免了并行处理过程中其他进程对本进程的干扰,确保了数字资产能够被高效且准确地变更。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1为本发明实施例基于2PC的数字资产归属变更方法的流程示意图;
图2为变更系统架构示意图;
图3为资产、账户两种不同中心设计的示意图;
图4为资产、账户两种不同中心设计在进行数字资产权利变更时的对比示意图;
图5为建立数字资产权利关系的时序流程示意图;
图6为变更数字资产权利关系的验证阶段的时序流程示意图;
图7为变更数字资产权利关系的执行阶段的时序流程示意图;
图8为变更系统的集群架构示意图;
图9为raft协议在协调器集群与处理器集群之间的运行原理示意图;
图10为基于2PC的数字资产归属变更装置的原理框图;
图11为本发明实施例电子设备的原理框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供了一种基于2PC的数字资产归属变更方法,应用于事务协调器TC,参见图1所示,图1为本发明实施例基于2PC的数字资产归属变更方法的流程示意图,本发明实施例基于2PC的数字资产归属变更方法包括:
接收步骤11:接收客户端发送的归属变更指令,归属变更指令包括:待变更数字资产的第一编号、待变更数字资产的当前归属方信息及目标归属方信息;
变更步骤12:根据第一编号确定目标处理器;并行锁定全部的待变更数字资产,以禁止变更步骤的执行进程之外的其他进程变更待变更数字资产的归属方;指示目标处理器将待变更数字资产由归属于当前归属方变更为归属于目标归属方;解除对待变更数字资产的锁定。
2PC(Two Phase Commitment Protocol)即两阶段提交协议,是将整个事务流程分为两个阶段:准备阶段(Prepare phase)、提交阶段(Commit phase)。2是指两个阶段,P是指准备阶段,C是指提交阶段。在计算机中部分关系数据库如Oracle、MySQL支持两阶段提交协议。
事务协调器(Transaction Coordinator,TC)为独立的中间件,需要独立部署运行,它维护全局事务的运行状态,接收TM(Transaction Manager,事务管理器)指令发起全局事务的提交与回滚。
本发明的一些实施例中,可以采用以下示例中变更系统实现本发明实施例的全部步骤。参见图2所示,图2为变更系统架构示意图,变更系统主要由客户端、接收器、协调器及处理器四个模块组成,数字资产权利关系即为数字资产的归属(权),变更数字资产权利即为将数字资产由归属于当前归属方变更为归属于目标归属方,具体地:
客户端:主要负责将数字资产编号(即为第一编号)、客户账户(即为账户信息)转化为哈希值,并生成签名,向接收器发送权利关系的建立或变更请求(客户端,即为本发明实施例中的客户端);
接收器:主要负责接收权利关系的建立或变更请求,验证账户的合法性、签名的合法性,将合法请求转交给协调器;
协调器:主要是负责将权利关系的建立或变更请求进行分发,通过锁定和执行指令与处理器互动,共同完成权利关系的建立或变更(协调器,本示例中的接收器与协调器构成本发明实施例中的事务协调器TC);
处理器:主要负责维护数字资产权利关系的集合,通过协调器的指令,共同完成权利关系的建立或变更(处理器,即为本发明实施例中的目标处理器)。
本示例中,为提升变更系统安全性,避免敏感信息泄漏,变更系统中涉及的数字资产编号、客户账户均使用MD5算法(MD5信息摘要算法,MD5 Message-Digest Algorithm)生成的哈希值替代。
本示例中,在变更系统中各模块之间的交互通信上,各模块之间的请求与应答主要涉及:HNo、HAccount、HFromAccount、HToAccount字段。
在变更系统中各模块进行存储的层面,接收器存储的账户信息,主要涉及HAccount字段;协调器存储的变更记录,主要涉及HNo、HFromAccount、HToAccount字段;协调器存储的数字资产目标处理器集群记录,主要涉及HNo字段;处理器存储的权利关系记录,主要涉及HNo、HOwnerAccount字段。
HNo:表示数字资产编号(即为第一编号)的哈希值;
HFromAccount:表示权利转出账户(即为当前归属方)的哈希值;
HToAccount:表示权利转入账户(即为目标归属方)的哈希值;
HOwnerAccount:表示数字资产权利人账户的哈希值;
HAccount:表示客户账户(即为账户信息)的哈希值。
区别于以账户为中心的设计,本示例的变更系统采用以资产为中心的设计,参见图3所示,图3为资产、账户两种不同中心设计的示意图,HNo为系统的关键标识,用于关联一个数字资产人权利账户,例如:一个账户HOwnerAccount001,该账户拥有两个数字资产:HNo0001、HNo0002。
参见图4所示,图4为资产、账户两种不同中心设计在进行数字资产权利变更时的对比示意图,示例性的,当需要将HNo0001、HNo0002的权利人分别改为HOwnerAccount002和HOwnerAccount003客户账户时,在账户为中心的设计中,需要顺序(顺序,即对HNo0001和HNo0002依次进行变更)将账户锁定,执行变更对应账户的资产操作,最后释放账户锁,合计6个步骤(即对应图4中以账户为中心的设计的编号1-6的执行示意)且容易产生热点账户等性能问题。当需要将HNo0001、HNo0002的权利人分别改为HOwnerAccount002和HOwnerAccount003客户账户时,在以资产为中心的设计中,可以并发锁定资产,执行变更权利账户操作,最后释放账户锁,将6个步骤并行为3个步骤(即对应图4中以资产为中心的设计的编号1-3的执行示意),操作有更好的并行性,系统能有更高的处理性能。
基于本示例中的变更系统,参见图5所示,建立数字资产权利关系的步骤A至F:
步骤A:客户端生成权利关系建立请求。权利关系建立请求主要包含HNo,HAccount、IsAllocate、Sign四个字段。客户端生成这四个字段的过程如下:
HNo:将数字资产编号,通过MD5算法生成的哈希值作为HNo;
HAccount:将客户账户编号,通过MD5算法生成的哈希值作为HAccount;
Allocate:表示分配的目标处理器集群ID,若有值,则为指定集群ID;若为空则表示为哈希集群;
Sign:根据客户端的RSA私钥将HAccount字段作为签名数据,使用RSA的签名方法生成签名,作为Sign;
步骤B:客户端向接收器发起权利关系建立请求;
步骤C:接收器验证客户账户是否合法:根据HAccount查询数据库中的是否存在对应的HAccount且是否处于可使用状态,若账号不存在或不处于可使用状态,则账号不合法,否则账户合法;若客户账户不合法,则返回错误;若客户账户合法,则执行步骤D;
步骤D:验证签名是否合法:查询HAccount对应的RSA公钥,使用RSA签名验证算法进行验证,若签名不合法,则返回错误;若签名合法则请求协调器建立权利关系;
步骤E:协调器确定目标处理器:若Allocate不为空,Allocate的值即为目标处理器;若Allocate为空(即Allocate值的长度为0),则对HNo进行哈希取模运算,余数即为目标处理器;协调器将向目标处理器发出建立权利关系请求;
步骤F:协调器建立权利关系记录,其中HNo为唯一键,并逐级通知协调器、接收器、客户端建立成功。若为指定处理器集群,协调器则建立一条相应的数字资产指定处理器集群记录。
基于本示例中的变更系统,权利人变更请求的处理过程主要分为验证阶段和执行阶段。
参见图6所示,变更数字资产权利关系的验证阶段包括步骤A1至A8:
步骤A1:客户端生成权利人变更请求。变更请求主要包含HNo、HFromAccount、HToAccount和Sign四个字段。客户端生成这四个字段的过程如下:
HNo:将数字资产编号,通过MD5算法生成的哈希值作为HNo;
HFromAccount:将权利转出客户账户编号,通过MD5算法生成的哈希值作为HFromAccount;
HToAccount:将权利转入客户账户编号,通过MD5算法生成的哈希值作为HToAccount;
Sign:根据客户端的RSA私钥将HFromAccount字段作为签名数据,使用RSA的签名方法生成签名,作为Sign;
步骤A2:客户端向接收器发起权利人变更请求;
步骤A3:接收器验证客户账户是否合法:根据HFromAccount,HToAccount查询数据库中的是否存在对应的HAccount、且是否处于可使用状态,若账号不存在或不处于可使用状态,则账号不合法,否则账户合法;若客户账户不合法,则返回错误;若客户账户合法,则执行步骤A4;
步骤A4:验证签名是否合法:查询HFromAccount 对应的RSA公钥,使用RSA签名验证算法进行验证,若签名不合法,则返回错误;若签名合法则请求协调器验证权利人关系是否合法;
步骤A5:协调器接收到权利人关系验证请求后,根据HNo确定目标处理器进行验证,并向该处理器发出验证权利关系是否合法的请求。确定目标处理器的过程:协调器根据HNo查询本地数据库,是否存在已指定的处理集群;若存在,则向该指定的处理集群即为目标处理器集群;若不存在,则将HNo哈希值进行取模x运算,得出的余数y即为对应的目标处理器集群的编号,其中x为哈希集群的个数;
步骤A6:处理器接收到权利关系验证请求后,验证数字资产的权利人是否与发起客户一致,若一致则合法,若不一致则不合法,并将验证结果返回给接收器;
步骤A7:若权利关系不合法,则返回错误信息;若权利关系合法,则将权利人变更请求提交给协调器;
步骤A8:协调器查询权利变更请求是否已存在,若已存在则返回变更请求当前的状态,若存在则创建一条变更记录,状态为待处理。
基于本示例中的变更系统,参见图7所示,变更数字资产权利关系的执行时采用2PC(Two-phase commit protocol)二阶段提交方式实现分布式事务,主要有锁定和执行两个关键操作,执行阶段包括步骤B1至B5:
步骤B1:间隔时间(例如1秒)或待处理变更记录数达到阈值(例如500条),触发协调开始处理变更请求。将相应变更记录状态改为处理中;
步骤B2:协调器根据HNo确定目标处理器,并向处理器提交锁定指令。确定目标处理器的过程:协调器根据HNo查询本地数据库,是否存在已指定的处理集群;若存在,则向该指定的处理集群即为目标处理器集群;若不存在,则将HNo哈希值进行取模x运算,得出的余数y即为对应的目标处理器集群的编号,其中x为哈希集群的个数;
步骤B3:处理器尝试锁定数字资产,并将锁定结果返回给协调器;
步骤B4:若数字资产锁定成功,则将变更记录修改为已锁定,向处理器发起执行指令;处理器尝试变更数字资产权利人,并通知协调器变更结果。若变更成功,协调器将变更记录状态修改为成功,并通知接收器、处理器变更成功;接收器通知客户变更成功,处理器释放数字资产锁,结束流程;若变更失败,协调器将变更记录状态修改为失败,并通知接收器、处理器变更失败;接收器通知客户变更失败,处理器释放数字资产锁,结束流程;
步骤B5:若数字资产锁定失败,则在间隔时间(例如3秒后)查询变更记录状态。若变更记录状态为待处理或处理中,则返回步骤B2继续提交锁定指令及后续步骤;若变更记录状态为成功或失败,结束流程。
在本发明实施例中,通过在归属变更指令中包含第一编号,并根据第一编号确定目标处理器,实现了以资产为中心的数字资产变更模式(即以资产作为变更步骤执行进程的导向因素,而非以资产归属方),能够实现并发的数字资产变更,提高了变更的执行效率。此外,基于2PC模式,在具体的数字资产变更过程中,通过并行锁定全部的待变更数字资产,指示目标处理器将待变更数字资产由归属于当前归属方变更为归属于目标归属方,避免了并行处理过程中其他进程对本进程的干扰,确保了数字资产能够被高效且准确地变更。
本发明的一些实施例中,可选地,
归属变更指令为由客户端发送的且通过第一校验的归属变更指令;
其中,归属变更指令还包括:客户端的签名信息;
本发明实施例基于2PC的数字资产归属变更方法还包括:
第一校验步骤a:对当前归属方及目标归属方是否处于可用状态进行校验,得到第一校验结果;
第一执行步骤b:若第一校验结果为当前归属方及目标归属方均处于可用状态,对客户端的签名是否合法进行校验,得到第二校验结果;
第二执行步骤c:若第二校验结果为签名合法,确定通过第一校验。
基于图2所示的变更系统架构。示例性的,参见图6所示,验证阶段包括步骤A3与A4:
步骤A3:接收器验证客户账户是否合法:根据HFromAccount,HToAccount查询数据库中的是否存在对应的HAccount、且是否处于可使用状态,若账号不存在或不处于可使用状态,则账号不合法,否则账户合法;若客户账户不合法,则返回错误;若客户账户合法,则执行步骤A4;
步骤A4:验证签名是否合法:查询HFromAccount 对应的RSA公钥,使用RSA签名验证算法进行验证,若签名不合法,则返回错误;若签名合法则请求协调器验证权利人关系是否合法;
在本发明实施例中,基于2PC模式,通过对当前归属方及目标归属方是否处于可用状态进行校验,以及通过对客户端的签名是否合法进行校验,实现了两层校验,确保了待变更数字资产不会被非授权变更,保障了变更数字资产的资产安全。
本发明的一些实施例中,可选地,
签名为采用客户端的RSA私钥加密当前登录在客户端的账户信息生成的签名;
对客户端的签名是否合法进行校验,包括:
获取步骤d:获取与账户信息对应的RSA公钥;
第二校验步骤e:采用RSA公钥,按照RSA签名验证算法对签名是否合法进行校验,得到第二校验结果。
基于图2所示的变更系统架构。示例性的,参见图6所示,验证阶段包括步骤A1与A4为:
步骤A1:客户端生成权利人变更请求。变更请求主要包含HNo、HFromAccount、HToAccount和Sign四个字段。客户端生成这四个字段的过程如下:
HNo:将数字资产编号,通过MD5算法生成的哈希值作为HNo;
HFromAccount:将权利转出客户账户编号,通过MD5算法生成的哈希值作为HFromAccount;
HToAccount:将权利转入客户账户编号,通过MD5算法生成的哈希值作为HToAccount;
Sign:根据客户端的RSA私钥将HFromAccount字段作为签名数据,使用RSA的签名方法生成签名,作为Sign;
步骤A4:验证签名是否合法:查询HFromAccount 对应的RSA公钥,使用RSA签名验证算法进行验证,若签名不合法,则返回错误;若签名合法则请求协调器验证权利人关系是否合法。
在本发明实施例中,通过签名为采用客户端的RSA私钥加密当前登录在客户端的账户信息生成的签名;并对应地,在对客户端的签名是否合法进行校验时,采用与账户信息对应的RSA公钥,按照RSA签名验证算法对签名是否合法进行校验,在确保签名中被加密的账户信息处于高安全状态的同时,也实现了签名验证过程的安全和准确,使得待变更数字资产不会被非授权变更,保障了变更数字资产的资产安全。
本发明的一些实施例中,可选地,
根据第一编号确定目标处理器,包括:
查询步骤f:根据第一编号查询本地数据库中是否存在已为待变更数字资产指定的指定处理器集群,得到查询结果;
第三执行步骤g:若查询结果为本地数据库中存在指定处理器集群,确定指定处理器集群中的处理器为目标处理器;
第四执行步骤h:若查询结果为本地数据库中不存在指定处理器集群,对第一编号进行取模运算,并根据取模运算的运算结果确定目标处理器。
在图2所示的变更系统架构的基础上,本发明的一些实施例中可以通过更进一步地设置集群式架构以提高变更效率,参见图8所示,图8为变更系统的集群架构示意图,其中:
处理器由指定集群和哈希集群两类多集群组成,每个集群维护了数字资产权利关系的子集,且每个集群的数字资产权利关系子集没有交集,所有集群的数字资产权利关系子集的并集为数字资产权利关系的全集。
指定集群,用于满足特殊数字资产权利人变更的需求,可以灵活配置,方便掌握和调整集群;
哈希集群,用于一般数字资产权利人变更的需求,更均匀地分配数据和负载,通过哈希取模运算,不需要额外维护数据库表。
示例性的,参见图7所示,执行阶段包括步骤B2:
步骤B2:协调器根据HNo确定目标处理器,并向处理器提交锁定指令。确定目标处理器的过程:协调器根据HNo查询本地数据库,是否存在已指定的处理集群;若存在,则向该指定的处理集群即为目标处理器集群;若不存在,则将HNo哈希值进行取模x运算,得出的余数y即为对应的目标处理器集群的编号,其中x为哈希集群的个数。
在本发明实施例中,采用指定集群能够通过修改数据库达到灵活控制资产在哪个目标处理器进行处理的目的,并且也能够方便地增加集群;哈希集群用于均匀分配数据和负载。
两类集群可以根据不同的资产归属变更需求灵活选用。例如,对于大客户(客户,即为与客户端关联的客户。全部客户构成客户群。大客户,即客户群中数字资产的数量多于和/或价值高于至少半数客户的客户)可能有独立集群部署的需求,采用指定集群;一般客户(客户群中非大客户的客户)采用哈希集群。
需要说明的是,当需要在哈希集群中更换或增加集群时,需要将部分资产的数据进行转移。例如,可以先将数据转移至指定集群,指示指定集群进行归属变更处理;当完成集群更换或增加后,再将数据转入哈希集群处理。
本发明实施例,结合两类集群灵活控制和负载均衡的优势,能够满足不同的处理场景下对资产数据存储和处理的需求。
本发明的一些实施例中,可选地,
根据取模运算的运算结果确定目标处理器,包括:
第五执行步骤m:以运算结果中的余数为目标编号;
第六执行步骤n:将编号为目标编号的处理器确定为目标处理器。
基于图2所示的变更系统架构,进一步参见图8所示,图8为变更系统的集群架构示意图,其中:
处理器由指定集群和哈希集群两类多集群组成,每个集群维护了数字资产权利关系的子集,且每个集群的数字资产权利关系子集没有交集,所有集群的数字资产权利关系子集的并集为数字资产权利关系的全集。
指定集群,用于满足特殊数字资产权利人变更的需求,可以灵活配置,方便掌握和调整集群;
哈希集群,用于一般数字资产权利人变更的需求,更均匀地分配数据和负载,通过哈希取模运算,不需要额外维护数据库表。
示例性的,参见图7所示,执行阶段包括步骤B2:
步骤B2:协调器根据HNo确定目标处理器,并向处理器提交锁定指令。确定目标处理器的过程:协调器根据HNo查询本地数据库,是否存在已指定的处理集群;若存在,则向该指定的处理集群即为目标处理器集群;若不存在,则将HNo哈希值进行取模x运算,得出的余数y即为对应的目标处理器集群的编号,其中x为哈希集群的个数。
本发明的一些实施例中,可选地,
采用raft协议方式指示目标处理器将待变更数字资产由归属于当前归属方变更为归属于目标归属方。
raft协议为目前工业界广泛使用的分布式一致性协议,被广泛应用在分布式系统中,例如ETCD、TiKV、Consul等著名开源软件都使用了raft协议来实现分布式系统中的强一致性。paxos算法作为分布式一致性算法的鼻祖,其以难以理解和很难工程化著称,raft的作者希望设计一种更简洁的算法来替代paxos,使其在保证正确性和可靠性的前提下能够容易理解和实现。
示例性的,基于图8所示的变更系统的集群架构,协调器和处理器之间可以采用基于raft协议的复制状态机,来保障协调器与处理器之间分布式事务的高可用。
参见图9所示,图9为raft协议在协调器集群与处理器集群之间的运行原理示意图,基于raft协议的复制状态机机制下,每个集群内部,分为领导节点(1个)和追随者节点(多个),每个节点都维护了一个状态机,仅领导者节点主动处理请求,追随者节点保持与领导者的状态同步。
一个指令处理流程中,协调器领导者节点(图9中协调器集群的L节点)向各追随者节点(图9中协调器集群的F节点)同步状态后,向处理器领导者节点发送指令。处理器领导者节点(图9中处理器集群的L节点)接收到指令后,先向追随者节点(图9中处理器集群的F节点)同步状态,接着处理指令,自身状态机发生变化,并返回给协调器领导者节点处理结果。与此同时,处理器追随者节点状态机发生同步变化。当协调器领导者节点收到处理结果后,处理返回结果,自身状态机发生变化。协调器追随者节点状态机同步变化。
在正常情况下,领导者节点向集群内的追随者节点发送心跳信息,表示领导者节点正常工作。当领导者节点发生故障时,集群内的追随者节点由于没有收到领导者节点的心跳信息,判断领导者节点故障,根据raft协议在集群内发起选举投票,选出新的领导者节点,接管之前领导者节点未完成的请求。
若协调器集群的领导者节点发生变化,新的领导者节点将从状态机中获得需要处理的请求,并继续处理,处理器则会将响应发送给新的协调者领导者节点;若某处理器集群的领导者节点发生变化,则新的领导者节点将从状态机中获取需要处理的请求,并继续处理,协调器则将需要处理的请求发送给新的处理器领导者节点。
本发明的一些实施例中,可选地,
第一编号、当前归属方信息及目标归属方信息均为采用MD5算法加密的哈希值形式的信息。
基于图2所示的变更系统架构。示例性的,参见图6所示,验证阶段包括步骤A1:
步骤A1:客户端生成权利人变更请求。变更请求主要包含HNo、HFromAccount、HToAccount和Sign四个字段。客户端生成这四个字段的过程如下:
HNo:将数字资产编号,通过MD5算法生成的哈希值作为HNo;
HFromAccount:将权利转出客户账户编号,通过MD5算法生成的哈希值作为HFromAccount;
HToAccount:将权利转入客户账户编号,通过MD5算法生成的哈希值作为HToAccount;
Sign:根据客户端的RSA私钥将HFromAccount字段作为签名数据,使用RSA的签名方法生成签名,作为Sign。
MD5,MD5信息摘要算法(MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。MD5由美国密码学家罗纳德·李维斯特(Ronald Linn Rivest)设计,于1992年公开,用以取代MD4算法。这套算法的程序在RFC 1321标准中被加以规范。1996年后该算法被证实存在弱点,可以被加以破解,对于需要高度安全性的数据,专家一般建议改用其他算法,如SHA-2。2004年,证实MD5算法无法防止碰撞(collision),因此不适用于安全性认证,如SSL公开密钥认证或是数字签名等用途。
本发明实施例提供了一种基于2PC的数字资产归属变更装置,参见图10所示,图10为基于2PC的数字资产归属变更装置的原理框图,变更装置100包括:
接收模块101,用于接收步骤:接收客户端发送的归属变更指令,归属变更指令包括:待变更数字资产的第一编号、待变更数字资产的当前归属方信息及目标归属方信息;
变更模块102,用于变更步骤:根据第一编号确定目标处理器;并行锁定全部的待变更数字资产,以禁止变更步骤的执行进程之外的其他进程变更待变更数字资产的归属方;指示目标处理器将待变更数字资产由归属于当前归属方变更为归属于目标归属方;解除对待变更数字资产的锁定。
本发明的一些实施例中,可选地,所述归属变更指令为由客户端发送的且通过第一校验的归属变更指令;
其中,所述归属变更指令还包括:所述客户端的签名信息;
归属变更装置100还包括:
校验模块,用于第一校验步骤:对所述当前归属方及所述目标归属方是否处于可用状态进行校验,得到第一校验结果;
执行模块,用于第一执行步骤:若所述第一校验结果为所述当前归属方及所述目标归属方均处于可用状态,对所述客户端的签名是否合法进行校验,得到第二校验结果;
所述执行模块,还用于第二执行步骤:若所述第二校验结果为所述签名合法,确定通过第一校验。
本发明的一些实施例中,可选地,所述签名为采用所述客户端的RSA私钥加密当前登录在所述客户端的账户信息生成的签名;
归属变更装置100还包括:
获取模块,用于获取步骤:获取与所述账户信息对应的RSA公钥;
所述校验模块,还用于第二校验步骤:采用所述RSA公钥,按照RSA签名验证算法对所述签名是否合法进行校验,得到所述第二校验结果。
本发明的一些实施例中,可选地,归属变更装置100还包括:
查询模块,用于查询步骤:根据所述第一编号查询本地数据库中是否存在已为所述待变更数字资产指定的指定处理器集群,得到查询结果;
所述执行模块,还用于第三执行步骤:若所述查询结果为所述本地数据库中存在所述指定处理器集群,确定所述指定处理器集群中的处理器为所述目标处理器;
所述执行模块,还用于第四执行步骤:若所述查询结果为所述本地数据库中不存在所述指定处理器集群,对所述第一编号进行取模运算,并根据所述取模运算的运算结果确定所述目标处理器。
本发明的一些实施例中,可选地,
所述执行模块,还用于第五执行步骤:以所述运算结果中的余数为目标编号;
所述执行模块,还用于第六执行步骤:将编号为所述目标编号的处理器确定为所述目标处理器。
本发明的一些实施例中,可选地,
所述变更模块102,还用于采用raft协议方式指示所述目标处理器将所述待变更数字资产由归属于所述当前归属方变更为归属于所述目标归属方。
本发明的一些实施例中,可选地,所述第一编号、所述当前归属方信息及所述目标归属方信息均为采用MD5算法加密的哈希值形式的信息。
本申请实施例提供的基于2PC的数字资产归属变更装置能够实现图1至图9的方法实施例实现的各个过程,并达到相同的技术效果,为避免重复,这里不再赘述。
本发明实施例提供了一种电子设备110,参见图11所示,图11为本发明实施例电子设备110的原理框图,包括处理器111,存储器112及存储在存储器112上并可在处理器111上运行的程序或指令,程序或指令被处理器执行时实现本发明的任一项基于2PC的数字资产归属变更方法中的步骤。
本发明实施例提供了一种可读存储介质,可读存储介质上存储程序或指令,程序或指令被处理器执行时实现如上述任一项的基于2PC的数字资产归属变更方法的实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
其中,所述的可读存储介质,如只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本发明的保护之内。
Claims (9)
1.一种基于2PC的数字资产归属变更方法,其特征在于,应用于事务协调器TC,所述方法包括:
接收步骤:接收客户端发送的归属变更指令,所述归属变更指令包括:待变更数字资产的第一编号、所述待变更数字资产的当前归属方信息及目标归属方信息;
变更步骤:根据所述第一编号确定目标处理器;并行锁定全部的所述待变更数字资产,以禁止所述变更步骤的执行进程之外的其他进程变更所述待变更数字资产的归属方;指示所述目标处理器将所述待变更数字资产由归属于所述当前归属方变更为归属于所述目标归属方;解除对所述待变更数字资产的锁定;
根据所述第一编号确定目标处理器,包括:
查询步骤:根据所述第一编号查询本地数据库中是否存在已为所述待变更数字资产指定的指定处理器集群,得到查询结果;
第三执行步骤:若所述查询结果为所述本地数据库中存在所述指定处理器集群,确定所述指定处理器集群中的处理器为所述目标处理器;所述指定处理器集群对应具有独立集群部署需求的客户,所述客户为客户群中数字资产的数量多于和/或价值高于至少半数客户的客户;
第四执行步骤:若所述查询结果为所述本地数据库中不存在所述指定处理器集群,对所述第一编号进行取模运算,并根据所述取模运算的运算结果确定所述目标处理器。
2.根据权利要求1所述的数字资产的归属变更方法,其特征在于:
所述归属变更指令为由客户端发送的且通过第一校验的归属变更指令;
其中,所述归属变更指令还包括:所述客户端的签名信息;
所述方法还包括:
第一校验步骤:对所述当前归属方及所述目标归属方是否处于可用状态进行校验,得到第一校验结果;
第一执行步骤:若所述第一校验结果为所述当前归属方及所述目标归属方均处于可用状态,对所述客户端的签名是否合法进行校验,得到第二校验结果;
第二执行步骤:若所述第二校验结果为所述签名合法,确定通过第一校验。
3.根据权利要求2所述的数字资产的归属变更方法,其特征在于:
所述签名为采用所述客户端的RSA私钥加密当前登录在所述客户端的账户信息生成的签名;
对所述客户端的签名是否合法进行校验,包括:
获取步骤:获取与所述账户信息对应的RSA公钥;
第二校验步骤:采用所述RSA公钥,按照RSA签名验证算法对所述签名是否合法进行校验,得到所述第二校验结果。
4.根据权利要求1所述的数字资产的归属变更方法,其特征在于:
根据所述取模运算的运算结果确定所述目标处理器,包括:
第五执行步骤:以所述运算结果中的余数为目标编号;
第六执行步骤:将编号为所述目标编号的处理器确定为所述目标处理器。
5.根据权利要求1所述的数字资产的归属变更方法,其特征在于:
采用raft协议方式指示所述目标处理器将所述待变更数字资产由归属于所述当前归属方变更为归属于所述目标归属方。
6.根据权利要求1所述的数字资产的归属变更方法,其特征在于:
所述第一编号、所述当前归属方信息及所述目标归属方信息均为采用MD5算法加密的哈希值形式的信息。
7.一种基于2PC的数字资产归属变更装置,其特征在于,包括:
接收模块,用于接收步骤:接收客户端发送的归属变更指令,所述归属变更指令包括:待变更数字资产的第一编号、所述待变更数字资产的当前归属方信息及目标归属方信息;
变更模块,用于变更步骤:根据所述第一编号确定目标处理器;并行锁定全部的所述待变更数字资产,以禁止所述变更步骤的执行进程之外的其他进程变更所述待变更数字资产的归属方;指示所述目标处理器将所述待变更数字资产由归属于所述当前归属方变更为归属于所述目标归属方;解除对所述待变更数字资产的锁定;
查询模块,用于查询步骤:根据所述第一编号查询本地数据库中是否存在已为所述待变更数字资产指定的指定处理器集群,得到查询结果;
执行模块,用于第三执行步骤:若所述查询结果为所述本地数据库中存在所述指定处理器集群,确定所述指定处理器集群中的处理器为所述目标处理器;所述指定处理器集群对应具有独立集群部署需求的客户,所述客户为客户群中数字资产的数量多于和/或价值高于至少半数客户的客户;
所述执行模块,还用于第四执行步骤:若所述查询结果为所述本地数据库中不存在所述指定处理器集群,对所述第一编号进行取模运算,并根据所述取模运算的运算结果确定所述目标处理器。
8.一种电子设备,其特征在于:包括处理器,存储器及存储在所述存储器上并可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如权利要求1至6中任一项所述的数字资产的归属变更方法中的步骤。
9.一种可读存储介质,其特征在于:所述可读存储介质上存储程序或指令,所述程序或指令被处理器执行时实现如权利要求1至6中任一项所述的数字资产的归属变更方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310213129.XA CN115879168B (zh) | 2023-03-08 | 2023-03-08 | 基于2pc的数字资产归属变更方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310213129.XA CN115879168B (zh) | 2023-03-08 | 2023-03-08 | 基于2pc的数字资产归属变更方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115879168A CN115879168A (zh) | 2023-03-31 |
CN115879168B true CN115879168B (zh) | 2023-05-09 |
Family
ID=85761936
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310213129.XA Active CN115879168B (zh) | 2023-03-08 | 2023-03-08 | 基于2pc的数字资产归属变更方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115879168B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111340631A (zh) * | 2020-05-15 | 2020-06-26 | 支付宝(杭州)信息技术有限公司 | 资产转移方法、装置、设备及系统 |
CN111597042A (zh) * | 2020-05-11 | 2020-08-28 | Oppo广东移动通信有限公司 | 业务线程运行方法、装置、存储介质及电子设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210049600A1 (en) * | 2018-05-18 | 2021-02-18 | Qredo Ltd. | Digital Asset Delivery Network |
-
2023
- 2023-03-08 CN CN202310213129.XA patent/CN115879168B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111597042A (zh) * | 2020-05-11 | 2020-08-28 | Oppo广东移动通信有限公司 | 业务线程运行方法、装置、存储介质及电子设备 |
CN111340631A (zh) * | 2020-05-15 | 2020-06-26 | 支付宝(杭州)信息技术有限公司 | 资产转移方法、装置、设备及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN115879168A (zh) | 2023-03-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Nathan et al. | Blockchain meets database: Design and implementation of a blockchain relational database | |
CN110569675B (zh) | 一种基于区块链技术的多Agent交易信息保护方法 | |
AU2020261982B2 (en) | Extracting data from a blockchain network | |
CN110933020B (zh) | 密码逻辑自执行区块链导出提交 | |
CN110915166B (zh) | 区块链 | |
WO2020258831A1 (zh) | 用于区块链系统中的主节点切换处理的方法及装置 | |
CN108898390B (zh) | 基于区块链的智能合约调用方法及装置、电子设备 | |
US20190179939A1 (en) | Distributed database having blockchain attributes | |
US7975138B2 (en) | Systems and methods for mutually authenticated transaction coordination messages over insecure connections | |
CN114365133A (zh) | 利用秘密共享和对读取的共识在元数据驱动的区块链上实现被遗忘的权利的系统或方法 | |
CN112514319A (zh) | 在超级账本架构区块链中支持基于sql的丰富查询的系统和方法 | |
Bozic et al. | Securing virtual machine orchestration with blockchains | |
WO2022206437A1 (zh) | 查询Fabric区块链账本数据的方法和装置 | |
Manevich et al. | Endorsement in Hyperledger Fabric via service discovery | |
CN114240433A (zh) | 基于区块链的数据处理方法及系统 | |
Dinh et al. | A blueprint for interoperable blockchains | |
CN115879168B (zh) | 基于2pc的数字资产归属变更方法及装置 | |
Moser et al. | Building dependable and secure Web services. | |
Imran et al. | Research perspectives and challenges of blockchain for data-intensive and resource-constrained devices | |
CN115001707B (zh) | 基于区块链的设备认证方法和相关设备 | |
WO2022206432A1 (zh) | 查询Fabric区块链账本数据的方法和装置 | |
KR20210086074A (ko) | 블록체인 네트워크를 구축할 수 있는 블록체인 관리시스템 | |
CN115982690A (zh) | 一种基于区块链的文件授权方法 | |
US11477279B1 (en) | Digital assets exchange coordination | |
JP7502393B2 (ja) | ハイパーレッジャファブリックブロックチェーンにおいてsqlベースのリッチクエリをサポートするためのシステムおよび方法 |
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 |