基于区块链预置合约的身份链构建方法、装置及存储介质与流程

文档序号:32537147发布日期:2022-12-13 23:24阅读:63来源:国知局
基于区块链预置合约的身份链构建方法、装置及存储介质与流程

1.本发明涉及区块链技术领域,尤其涉及基于区块链预置合约的身份链构建方法、装置及存储介质。


背景技术:

2.区块链技术作为一种增强信任、增进共识的技术方式,凭借着独特的块—链结构,区块链建立在不可信的竞争环境中,以低成本维护了信任、增加了失信的代价,它通过集成分布式数据存储、点对点传输、共识机制、加密算法等技术,对计算模式进行颠覆式创新,尤其是区块链中身份体系的应用,但是传统的区块链身份体系中用户的数字身份和交易信息等均同时存储在区块链区块中,使得在并发交易时链间的交互过于频繁,给整个交易造成极大的负担,最终导致交易的效率极低,以及无法保证单链多链的账户身份一致性。
3.上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。
4.本发明的主要目的在于提供一种基于区块链预置合约的身份链构建方法、装置及存储介质,旨在解决现有技术在交易并发过程中链间的交互过于频繁,导致交易效率极低且无法保证单链多链的账户身份一致性的技术问题。
5.为实现上述目的,本发明提供了一种基于区块链预置合约的身份链构建方法,所述基于区块链预置合约的身份链构建方法包括以下步骤:在检测到见证节点触发预置身份合约时,对合约调用者的身份进行验证,得到所述合约调用者的身份类型;在所述合约调用者的身份类型为目标身份类型时,在预置身份合约中根据合约参数生成身份区块;在调用所述预置身份合约时,将所述合约参数传入至所述身份区块;在守护区块、区块数据以及状态数据写入至目标数据库后,执行身份区块入库,将身份区块追加为对应账户链的身份链最新区块。
6.可选地,所述在检测到见证节点触发预置身份合约时,对合约调用者的身份进行验证,得到所述合约调用者的身份类型,包括:在检测到见证节点发送调用合约交易信息给全网时,通过打包节点将所述调用合约交易信息打包至目标区块内,并广播给其他所有节点;通过所述见证节点对所述目标区块进行见证执行;在执行目标区块至预置身份合约时,确定见证节点触发预置身份合约,并对合约调用者的身份进行验证,得到所述合约调用者的身份类型。
7.可选地,所述在所述合约调用者的身份类型为目标身份类型时,在预置身份合约中根据合约参数生成身份区块之后,还包括:在身份合约交易随着守护区块完成共识后,通过守护区块中的合约事件检查是否存在更新身份状态类型的事件;
在存在新身份状态的事件时,对所述身份区块进行处理,并进行身份区块暂存操作。
8.可选地,所述在存在新身份状态的事件时,对所述身份区块进行处理,并进行身份入库操作之后,还包括:获取签名账户的身份区块高度和第一父区块高度;获取交易账户引用的最新守护区块高度和第二父区块高度;在所述身份区块高度大于或等于第一父区块高度且所述引用的最新守护区块高度大于或等于第二父区块高度,则所述交易账户引用新的签名地址来签名并发起交易。
9.可选地,所述在守护区块、区块数据以及状态数据写入至目标数据库后,执行身份区块入库,将身份区块追加为对应账户链的身份链最新区块,包括:在守护区块、区块数据以及状态数据写入至目标数据库后,执行身份区块入库,每执行一次上述更改身份操作,就会存在身份区块上链操作,将身份区块追加为对应账户链的身份链最新区块。
10.可选地,所述在守护区块、区块数据以及状态数据写入至目标数据库后,执行身份区块入库,将身份区块追加为对应账户链的身份链最新区块之后,还包括:在待修改账户发起交易时,在所述待修改账户对应的身份链最新区块中查询新的签名账户;根据所述新的签名账户对所述交易进行签名。
11.可选地,所述在待修改账户发起交易时,在所述待修改账户对应的身份链最新区块中查询新的签名账户之前,还包括:将所述身份链新身份区块与账户链交易账户绑定;在绑定完成后,通过预设签名策略对当前交易数据进行签名;将所述当前交易数据中的签名广播给其他节点,以使所述其他节点根据预设签名验证策略对待修改账户进行验证,以及对所述签名后的当前交易数据进行验证并反馈验证结果;在所述待修改账户的验证结果为验证合法且所述签名后的当前交易数据的验证结果为验证通过时,判断待修改账户是否发起交易。
12.此外,为实现上述目的,本发明还提出一种基于区块链预置合约的身份链构建装置,所述基于区块链预置合约的身份链构建装置包括:验证模块,用于在检测到见证节点触发预置身份合约时,对合约调用者的身份进行验证,得到所述合约调用者的身份类型;生成模块,用于在所述合约调用者的身份类型为目标身份类型时,在预置身份合约中根据合约参数生成身份区块;传入模块,用于在调用所述预置身份合约时,将所述合约参数传入至所述身份区块;构建模块,用于在守护区块、区块数据以及状态数据写入至目标数据库后,执行身份区块入库,将身份区块追加为对应账户链的身份链最新区块。
13.此外,为实现上述目的,本发明还提出一种基于区块链预置合约的身份链构建设备,所述基于区块链预置合约的身份链构建设备包括:存储器、处理器及存储在所述存储器
上并可在所述处理器上运行的基于区块链预置合约的身份链构建程序,所述基于区块链预置合约的身份链构建程序配置为实现如上文所述的基于区块链预置合约的身份链构建方法。
14.此外,为实现上述目的,本发明还提出一种存储介质,所述存储介质上存储有基于区块链预置合约的身份链构建程序,所述基于区块链预置合约的身份链构建程序被处理器执行时实现如上文所述的基于区块链预置合约的身份链构建方法。
15.本发明提出的基于区块链预置合约的身份链构建方法,通过在检测到见证节点触发预置身份合约时,对合约调用者的身份进行验证,得到所述合约调用者的身份类型;在所述合约调用者的身份类型为目标身份类型时,在预置身份合约中根据合约参数生成身份区块;在调用所述预置身份合约时,将所述合约参数传入至所述身份区块;在守护区块、区块数据以及状态数据写入至目标数据库后,执行身份区块入库,将身份区块追加为对应账户链的身份链最新区块;通过身份链更换账户链上交易账户签名,能够有效缩短链间频繁交互,以及提高交易效率、保证单链多链的账户身份一致性。
附图说明
16.图1是本发明实施例方案涉及的硬件运行环境的基于区块链预置合约的身份链构建设备的结构示意图;图2为本发明基于区块链预置合约的身份链构建方法第一实施例的流程示意图;图3为本发明基于区块链预置合约的身份链构建方法第二实施例的流程示意图;图4为本发明基于区块链预置合约的身份链构建方法一实施例的账户身份构建示意图;图5为本发明基于区块链预置合约的身份链构建装置第一实施例的功能模块示意图。
17.本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
18.应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
19.参照图1,图1为本发明实施例方案涉及的硬件运行环境的基于区块链预置合约的身份链构建设备结构示意图。
20.如图1所示,该基于区块链预置合约的身份链构建设备可以包括:处理器1001,例如中央处理器(central processing unit,cpu),通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(display)、输入单元比如键盘(keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如无线保真(wireless-fidelity,wi-fi)接口)。存储器1005可以是高速的随机存取存储器(random access memory,ram)存储器,也可以是稳定的非易失性存储器(non-volatile memory,nvm),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
21.本领域技术人员可以理解,图1中示出的结构并不构成对基于区块链预置合约的
身份链构建设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
22.如图1所示,作为一种存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及基于区块链预置合约的身份链构建程序。
23.在图1所示的基于区块链预置合约的身份链构建设备中,网络接口1004主要用于与网络一体化平台工作站进行数据通信;用户接口1003主要用于与用户进行数据交互;本发明基于区块链预置合约的身份链构建设备中的处理器1001、存储器1005可以设置在基于区块链预置合约的身份链构建设备中,所述基于区块链预置合约的身份链构建设备通过处理器1001调用存储器1005中存储的基于区块链预置合约的身份链构建程序,并执行本发明实施例提供的基于区块链预置合约的身份链构建方法。
24.基于上述硬件结构,提出本发明基于区块链预置合约的身份链构建方法实施例。
25.参照图2,图2为本发明基于区块链预置合约的身份链构建方法第一实施例的流程示意图。
26.在第一实施例中,所述基于区块链预置合约的身份链构建方法包括以下步骤:步骤s10,在检测到见证节点触发预置身份合约时,对合约调用者的身份进行验证,得到所述合约调用者的身份类型。
27.需要说明的是,本实施例的执行主体为基于区块链预置合约的身份链构建设备,还可为其他可实现相同或相似功能的设备,例如区块链控制器等,本实施例对此不作限制,在本实施例中,以区块链控制器为例进行说明。
28.应当理解的是,见证节点指的是见证是否触发预置身份合约的节点,预置身份合约指的是预先设置的用于身份管理的合约,实时检测见证节点是否触发预置身份合约,若是,则需要对合约调用者的身份进行验证,以得到合约调用者的身份类型,该身份类型可以为见证账户身份类型,也可以为其他身份类型。
29.进一步地,步骤s10,包括:在检测到见证节点发送调用合约交易信息给全网时,通过打包节点将所述调用合约交易信息打包至目标区块内,并广播给其他所有节点;通过所述见证节点对所述目标区块进行见证执行;在执行目标区块至预置身份合约时,确定见证节点触发预置身份合约,并对合约调用者的身份进行验证,得到所述合约调用者的身份类型。
30.可以理解的是,在检测到见证节点发送给全网的调用合约交易信息时,表明见证节点发送了调用合约交易,此时打包节点会将调用合约交易信息打包至目标区块并进行广播,然后见证节点对目标区块执行见证操作,执行目标区块至预置身份合约时,见证节点就已经触发预置身份合约。
31.步骤s20,在所述合约调用者的身份类型为目标身份类型时,在预置身份合约中根据合约参数生成身份区块。
32.可以理解的是,目标身份类型可以为见证账户身份类型,由于只有见证账户身份类型的账户才有权限修改其他账户的身份,因此,在得到合约调用者的身份类型后,需要判断合约调用者的身份类型是否为目标身份类型,若是,则在预置身份合约中根据合约参数生成身份区块。
33.应当理解的是,身份区块指的是待修改账户对应的区块,该当前账户身份区块用
于存储待修改账户的其他身份信息,例如,身份区块所有者、交易签名使用的签名集合以及锚定的区块高度等身份信息,通过该当前账户身份区块可以实现,在区块链系统中更换身份能力,保障身份的一致性。
34.进一步地,步骤s20之后,还包括:在身份合约交易随着守护区块完成共识后,通过守护区块中的合约事件检查是否存在更新身份状态类型的事件;在存在新身份状态的事件时,对所述身份区块进行处理,并进行身份区块暂存操作。
35.应当理解的是,合约执行完成后,合约交易需要随守护区块上链,目的是该合约交易随着守护区块确定后,身份创建才算成功,在身份合约交易随着守护区块完成共识后,利用守护区块中的合约事件检查中是否存在更新身份状态的事件,若存在新身份状态的事件时,则处理该身份区块,并进行身份区块暂存操作。
36.进一步地,所述在存在新身份状态的事件时,对所述身份区块进行处理,并进行身份区块暂存操作之后,还包括:获取签名账户的身份区块高度和第一父区块高度;获取交易账户引用的最新守护区块高度和第二父区块高度;在所述身份区块高度大于或等于第一父区块高度且所述引用的最新守护区块高度大于或等于第二父区块高度,则所述交易账户引用新的签名地址来签名并发起交易。
37.可以理解的是,第一父区块高度指的是身份区块的上一区块的高度,即第一父区块为身份区块的上一区块,同样,第二父区块高度指的是引用的最新守护区块的上一区块的高度,即第二父区块指的是引用的最新守护区块的上一区块,在得到身份区块高度、第一父区块高度、引用的最新守护区块高度以及第二父区块高度后,首先,对比签名账户的身份区块高度和第一父区块高度,再对比引用的最新守护区块高度和第二父区块高度,在身份区块高度大于或等于第一父区块高度且引用的最新守护区块高度大于或等于第二父区块高度时,说明该最新签名账户合法,则该交易账户可引用该新的签名地址进行签名并发起交易,具体用于节点接收到一笔交易,判断该交易合法性时,检查交易签名是否满足该交易发起者的账户所对应的身份链上最新的身份区块中的签名策略。
38.步骤s30,在调用所述预置身份合约时,将所述合约参数传入至所述身份区块。
39.可以理解的是,在预置身份合约被调用时,将合约参数传入至身份区块,该合约参数包括但不限于账户信息、身份签名策略等,且账户信息包括但不限于待修改账户信息和新账户信息等,在预置身份合约执行完成后,合约交易随守护区块上链,交易共识完成,此时身份合约正式生效,身份合约交易不会再回滚,也就是说,身份创建成功。
40.步骤s40,在守护区块、区块数据以及状态数据写入至目标数据库后,执行身份区块入库,将身份区块追加为对应账户链的身份链最新区块。
41.可以理解的是,在守护区块确定写入至目标数据库后,检查守护区块中是否有更改身份事件,若有,则处理更改身份区块事件,即区块数据写入目标数据库,然后还会将传入合约参数的身份区块入库,然后执行身份区块入库,将身份区块追加为对应账户链的身份链最新区块,纵向地,一条账户链对应一条身份链,该身份区块产生与账户链中区块的引用关系。
42.进一步地,步骤s40之后,还包括:在待修改账户发起交易时,在所述待修改账户对应的身份链最新区块中查询新的签名账户;根据所述新的签名账户对所述交易进行签名。
43.进一步地,所述将所述身份链新身份区块与账户链交易账户绑定;在绑定完成后,
通过预设签名策略对当前交易数据进行签名;将所述当前交易数据中的签名广播给其他节点,以使所述其他节点根据预设签名验证策略对待修改账户进行验证,以及对所述签名后的当前交易数据进行验证并反馈验证结果;在所述待修改账户的验证结果为验证合法且所述签名后的当前交易数据的验证结果为验证通过时,判断待修改账户是否发起交易。
44.应当理解的是,当前交易数据指的是将身份链新身份区块与账户链交易账户绑定在一起后的交易数据,在得到当前交易数据后,通过预设签名策略对当前交易数据进行签名,然后由待修改账户所在的节点将签名后的当前交易数据广播给其他节点,而其他节点在接收到签名后的当前交易数据后,对签名后的当前交易数据进行正确性的验证,以及根据预设签名验证策略对待修改账户进行验证,在验证完成后,将验证结果进行反馈。
45.本实施例通过在检测到见证节点触发预置身份合约时,对合约调用者的身份进行验证,得到所述合约调用者的身份类型;在所述合约调用者的身份类型为目标身份类型时,在预置身份合约中根据合约参数生成身份区块;在调用所述预置身份合约时,将所述合约参数传入至所述身份区块;在守护区块、区块数据以及状态数据写入至目标数据库后,执行身份区块入库,将身份区块追加为对应账户链的身份链最新区块;通过身份链更换账户链上交易账户签名,能够有效缩短链间频繁交互,以及提高交易效率、保证单链多链的账户身份一致性。
46.在一实施例中,如图3所述,基于第一实施例提出本发明基于区块链预置合约的身份链构建方法第二实施例,所述步骤s40,包括:步骤s401,在守护区块、区块数据以及状态数据写入至目标数据库后,执行身份区块入库,每执行一次上述更改身份操作,就会存在身份区块上链操作,将身份区块追加为对应账户链的身份链最新区块。
47.可以理解的是,在执行身份区块入库操作时,就生成一个最新状态的身份区块并上链到身份区块父区块后面,纵向地,一条账户链对应一条身份链,该身份区块产生与账户链中区块的引用关系。
48.应当理解的是,参考图4,图4为账户身份构建示意图,具体为当前见证账户触发守护链中id contact,然后id contact在执行后产生高度为2的守护区块,同时产生身份链中高度为2的最新身份区块,实现了a账户发送交易区块s-block所对应的身份区块中由原私钥a更换为新私钥b的过程,同时a账户在发起交易前需要对引用的守护区块和身份区块高度进行对比验证,若满足以上步骤中所提到的两个前置条件,则账户a可使用新私钥b发起交易,类似地,若将b账户中的原私钥b更换为新私钥c,需要b账户的交易账户在发起交易之前,需要进入锚定高度为3的守护区块和身份区块中进行验证,在验证通过时,使用新私钥c发起交易。
49.本实施例通过在守护区块、区块数据以及状态数据写入至目标数据库后,执行身份区块入库,每执行一次上述更改身份操作,就会存在身份区块上链操作,将身份区块追加为对应账户链的身份链最新区块;通过上述方式,在确定守护区块写入目标数据库后,判断区块数据和状态数据是否随之写入目标数据库,若是,则执行身份区块入库,并将身份区块追加为对应账户链的身份链最新区块,从而能够避免在图式区块链系统在并发情况下频繁进行链间交互的耗时操作。
50.此外,本发明实施例还提出一种存储介质,所述存储介质上存储有基于区块链预
置合约的身份链构建程序,所述基于区块链预置合约的身份链构建程序被处理器执行时实现如上文所述的基于区块链预置合约的身份链构建方法的步骤。
51.由于本存储介质采用了上述所有实施例的全部技术方案,因此至少具有上述实施例的技术方案所带来的所有有益效果,在此不再一一赘述。
52.此外,参照图5,本发明实施例还提出一种基于区块链预置合约的身份链构建装置,所述基于区块链预置合约的身份链构建装置包括:验证模块10,用于在检测到见证节点触发预置身份合约时,对合约调用者的身份进行验证,得到所述合约调用者的身份类型。
53.生成模块20,用于在所述合约调用者的身份类型为目标身份类型时,在预置身份合约中根据合约参数生成身份区块。
54.传入模块30,用于在调用所述预置身份合约时,将所述合约参数传入至所述身份区块。
55.构建模块40,用于在守护区块、区块数据以及状态数据写入至目标数据库后,执行身份区块入库,将身份区块追加为对应账户链的身份链最新区块。
56.本实施例通过在检测到见证节点触发预置身份合约时,对合约调用者的身份进行验证,得到所述合约调用者的身份类型;在所述合约调用者的身份类型为目标身份类型时,在预置身份合约中根据合约参数生成身份区块;在调用所述预置身份合约时,将所述合约参数传入至所述身份区块;在守护区块、区块数据以及状态数据写入至目标数据库后,执行身份区块入库,将身份区块追加为对应账户链的身份链最新区块;通过身份链更换账户链上交易账户签名,能够有效缩短链间频繁交互,以及提高交易效率、保证单链多链的账户身份一致性。
57.需要说明的是,以上所描述的工作流程仅仅是示意性的,并不对本发明的保护范围构成限定,在实际应用中,本领域的技术人员可以根据实际的需要选择其中的部分或者全部来实现本实施例方案的目的,此处不做限制。
58.另外,未在本实施例中详尽描述的技术细节,可参见本发明任意实施例所提供的基于区块链预置合约的身份链构建方法,此处不再赘述。
59.本发明所述基于区块链预置合约的身份链构建装置的其他实施例或具有实现方法可参照上述各方法实施例,此处不再赘余。
60.此外,需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
61.上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
62.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如只读存储器(read only memory,rom)/ram、磁碟、光盘)中,包括若干指令用以使得一台
终端设备(可以是手机,计算机,一体化平台工作站,或者网络设备等)执行本发明各个实施例所述的方法。
63.以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1