一种支持性能扩展的分片主体管理方法及系统
文献发布时间:2023-06-19 11:57:35
技术领域
本公开涉及区块链多链技术领域,特别涉及一种支持性能扩展的分片主体管理方法及系统。
背景技术
本部分的陈述仅仅是提供了与本公开相关的背景技术,并不必然构成现有技术。
区块链技术具有过程可信和去中心化两大特点,因此能够在多利益主体参与的场景下以低成本的方式构建信任基础,旨在重塑社会信用体系。近年来,区块链技术被广泛运用到社会生活各个领域,随着对区块链应用场景的快速扩展,区块链中的主体、资产、合约等数量逐渐增加,对区块链的吞吐量、交易延迟、存储等提出了更高的需求。对此,国内外社区的区块链技术团队先后提出了多种方法来扩展区块链性能,其中一个主流关键技术就是分片(sharding)。分片技术可将单链进行水平扩容,即将单条区块链的状态划分为多条子链状态(shards),每条子链可以相对独立的处理交易,且在链内实现与其他子链的跨链交易。
本公开发明人发现,分片后的主体管理问题目前没有很好的解决方法,很多团队在分片时都选择忽略主体管理问题,现有的分片主体基本都是采用分散化的管理方式,即每条子链各自管理各自链上的主体。分散化主体管理方式的明显问题在于无法保证主体在每条链上可信,可能存在同一主体在不同的链上具有不同身份的情况,无法保证主体的同一性。
发明内容
为了解决现有技术的不足,本公开提供了一种支持性能扩展的分片主体管理方法及系统,基于主链-子链的分片架构,创建了影子账户,实现了主链主体一次开户、所有子链通用,增强了主体管理的灵活性。
为了实现上述目的,本公开采用如下技术方案:
本公开第一方面提供了一种支持性能扩展的分片主体管理方法。
一种支持性能扩展的分片主体管理方法,主体在主链中开户,在子链中使用主体的影子账户,通过影子账户,主体在参与的子链中直接使用主链的主体识别码。
作为可选的实施方式,在主链上进行主体认证信息存储和检索、主体的许可准入和许可准出、子链上的影子账户管理以及索引数据管理。
作为可选的实施方式,在子链上进行影子账户激活、主体许可准入准出、主体的系统权限管理和数据发行管理。
本公开第二方面提供了一种支持性能扩展的分片主体开户方法。
一种支持性能扩展的分片主体开户方法,利用本公开第一方面所述的分片主体管理方法,包括以下步骤:
主体通过链交互端进行主体身份验证,创建账户及公私钥;
主体通过链交互端向主链的运营方发起开户请求;
主链的运营方发送交易至主链,声明此主体已被许可准入,开户成功。
本公开第三方面提供了一种支持性能扩展的影子账户开户方法。
一种支持性能扩展的影子账户开户方法,利用本公开第一方面所述的分片主体管理方法,包括以下步骤:
主体在某个子链有交易需求时,向该子链的运营方发起建立影子账户的请求;
该子链的运营方发送交易至该子链,创建主体在该子链的影子账户及权限和配额;
主链更新主体信息列表,记录该主体在被申请开户的子链上的帐户状态为激活状态,其他子链的账户状态为未激活状态;
主链通过路由模块同步主体信息到各子链,主体只能在账户状态为激活的子链上进行交易。
本公开第四方面提供了一种基于影子账户的主体跨链协作方法。
一种基于影子账户的主体跨链协作方法,利用本公开第一方面所述的分片主体管理方法,包括以下步骤:
主链的交易群组接收到主体提出的跨链交易请求;
将跨链交易分别转发至相应的子链,子链构建交易;
客户端将构建好的交易发给主链,主链校验主体准入状态;
主链将校验通过的交易发给各个子链预执行跨链交易,资产的状态被锁定;
各个子链将默克尔证明与交易收据发送至主链,并写入主链;
主链收集到所有收据后,发送消息通知子链将跨链交易提交;
若出现超时等异常问题,由主体决定是否撤销跨链交易。
本公开第五方面提供了一种支持性能扩展的分片主体管理系统。
一种支持性能扩展的分片主体管理系统,包括:链交互端、至少一条主链和至少一条子链,链交互端与主链通信连接,主链与子链通信连接;
主体在主链中开户,在子链中使用主体的影子账户,通过影子账户,主体在参与的子链中直接使用主链的主体识别码。
作为可选的实施方式,所述主链包括:主体认证信息存储和检索模块、主体准入和准出模块、影子账户管理模块和索引数据管理模块;
主体认证信息存储和检索模块,至少被配置为:对准许入链的主体的实名认证信息进行存储,通过认证方公钥、主体账户公钥和共享密钥加密后进行上链存储,通过存储的数据进行检索;
主体准入和准出模块,至少被配置为:对主体的入链账户开户和离链账户销户进行许可,主体开户时,通过链交互端创建账户及公私钥,并向主链的运营方发起开户请求,主链运营方发送交易至主链,声明该主体已被许可准入;
影子账户管理模块,至少被配置为:对主体在各个子链中的影子账户进行管理,维护主体在每个子链中的账户激活状态,记录主体在哪些子链上有影子账户;
索引数据管理模块,至少被配置为:对主体在链上的所有资产信息进行管理,根据主体ID获取主体当前在链上的所有资产列表以及被授权使用的资产列表,查看资产的详细信息,通过主体身份识别码及子链身份识别码,获取主体在对应子链上的影子账户内所有的资产列表以及被授权使用的资产列表,查看资产的详细信息。
作为可选的实施方式,所述子链包括:影子账户激活模块、主体许可准入模块、主体系统管理模块和数据发行管理模块;
影子账户激活模块,至少被配置为:对主体所在子链的影子账户进行激活创建,并对该主体的影子账户赋予权限;
主体系统管理模块,至少被配置为:对主体在子链的系统权限进行管理,为主体增加或移除各种系统权限;
数据发行管理模块,至少被配置为:限定主体在该子链的数据发行时间、数据类型和数据数量。
作为可选的实施方式,主体开户方法,包括:
主体通过链交互端进行主体身份验证,创建账户及公私钥;
主体通过链交互端向主链的运营方发起开户请求;
主链的运营方发送交易至主链,声明此主体已被许可准入,开户成功。
作为可选的实施方式,影子账户开户方法,包括:
主体在某个子链有交易需求时,向该子链的运营方发起建立影子账户的请求;
该子链的运营方发送交易至该子链,创建主体在该子链的影子账户及权限和配额;
主链更新主体信息列表,记录该主体在被申请开户的子链上的帐户状态为激活状态,其他子链的账户状态为未激活状态;
主链通过路由模块同步主体信息到各子链,主体只能在账户状态为激活的子链上进行交易。
作为可选的实施方式,主体跨链协作方法,包括:
主链的交易群组接收到主体提出的跨链交易请求;
将跨链交易分别转发至相应的子链,子链构建交易;
客户端将构建好的交易发给主链,主链校验主体准入状态;
主链将校验通过的交易发给各个子链预执行跨链交易,资产的状态被锁定;
各个子链将默克尔证明与交易收据发送至主链,并写入主链;
主链收集到所有收据后,发送消息通知子链将跨链交易提交;
若出现超时等异常问题,由主体决定是否撤销跨链交易。
与现有技术相比,本公开的有益效果是:
1、本公开所述的内容,通过子链影子账户激活管理,可在所需交易的子链上创建主体的影子账户,实现主体只在主链开一次户,在所有子链都可用,主体账户只有一套公私钥,且主体在主链和所有子链使用相同的账户ID,解决了同一主体在不同链上具有不同身份的情况,使得主体身份在各个链上可信,保证了主体的同一性。
2、本公开所述的内容,通过子链影子账户管理,可明确主体在哪些子链上有影子账户,即主体参与了哪些子链,当主体在某条子链上出现恶意交易等危害性行为时,可直接将该主体的影子账户禁用,便于实现主体在子链上的影子账户管理。
3、本公开所述的内容,利用主链主体认证信息存储和检索管理,实现主体认证信息链上存储。将主体的认证信息通过认证方公钥、主体账户公钥、共享密钥加密后进行上链,避免了中心化存储导致的数据篡改问题,使得主体数据安全可信。
4、本公开所述的内容,通过主体的许可准入和许可准出管理,可对入链开户的主体及离链销户的主体进行管理;并且在主链中被许可的主体并不代表其可以使用所有子链的数据,主体必须被相应的子链许可,才可使用相应子链的数据,子链中的主体准入许可依靠主体激活管理来实现;主体准入准出保证了主体入链出链安全合法,有迹可循,防止恶意节点破坏链的稳定性。
5、本公开所述的内容,通过系统权限管理、数据发行权限管理,可对交易、资产、合约等操作进行权限限制,实现对链上主体行为的规范约束,确定发行的交易、合约等安全可行,避免低质量或虚假资产数据上链,保证区块链高质量稳定运行。
6、本公开所述的内容,通过索引数据管理,可根据主体账户ID获取主体在链上拥有和持有的所有资产列表,并可查看资产详细信息,也可查询主体拥有资产的授权情况,例如被授权方、授权次数、剩余次数等,根据主体账户ID及对应子链ID,还可获取主体在单条子链上的资产列表,以及单条子链上的资产授权情况。
附图说明
构成本公开的一部分的说明书附图用来提供对本公开的进一步理解,本公开的示意性实施例及其说明用于解释本公开,并不构成对本公开的不当限定。
图1为本公开实施例1提供的基于主链-子链的分片主体管理结构示意图。
图2为本公开实施例2提供的主链主体开户方法的流程示意图。
图3为本公开实施例3提供的影子账户创建的流程图示意图。
图4为本公开实施例4提供的基于影子账户的主体跨链协作方法的流程图示意图。
具体实施方式
下面结合附图与实施例对本公开作进一步说明。
应该指出,以下详细说明都是例示性的,旨在对本公开提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本公开所属技术领域的普通技术人员通常理解的相同含义。
需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本公开的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。
实施例1:
如图1所示,本公开实施例1提供了一种支持性能扩展的分片主体管理方法,提供主链主体管理与子链主体管理两部分内容。
本实施例中,主链和子链各自都是一条区块链,主链只有一条,分片后的子链可以有多条。
所述主链,包括主体认证信息存储和检索、主体的许可准入和许可准出、子链上的影子账户管理,索引数据管理;
主体认证信息存储和检索模块负责对准许入链的主体的实名认证信息进行存储,通过认证方公钥、主体账户公钥、共享密钥加密后进行上链存储,存储内容包括主体姓名、身份证号、社会信用代码等,以便后续检索;
主体的许可准入和许可准出模块负责对主体的入链账户开户和离链账户销户进行许可,主体开户时,通过链交互端创建账户及公私钥,并向主链的运营方发起开户请求,主链运营方发送交易至主链,声明该主体已被许可准入;
子链上的影子账户管理模块负责对主体在各个子链中的影子账户进行管理,主要维护主体在每个子链中的账户激活状态,并记录主体在哪些子链上有影子账户,即主体参与了哪些子链的交易活动;
索引数据管理模块负责对主体在链上的所有资产信息进行管理,可根据主体ID获取主体当前在链上的所有资产列表以及被授权使用的资产列表,并且可查看资产的详细信息,通过主体ID及子链ID,可获取主体在对应子链上的影子账户内所有的资产列表以及被授权使用的资产列表,并且可查看资产的详细信息。
所述子链,包括影子账户激活、主体许可准入、主体的系统权限管理、数据发行管理;
影子账户激活模块负责对主体所在子链的影子账户进行激活创建,并对该主体的影子账户赋予权限,影子账户创建成功后,主体即可在该子链上发送交易和接受交易,子链上的影子账户使用的是主体在主链中的账户ID和公私钥;
主体的系统管理模块负责对主体在子链的系统权限进行管理,能够为主体增加或移除各种系统权限,如发送交易、资产发行、合约发行等操作;
数据发行管理模块负责限定主体在该子链的数据发行时间、数据类型、数据数量等。
实施例2:
如图2所示,本公开实施例2提供了一种主链主体开户的方法,基于本公开实施例1所述的分片主体管理方法,在主链进行开户,实现主体进入分片架构,包括以下步骤:
S11:用户通过链交互端进行身份验证,创建账户及公私钥,获取主体账户ID;
S12:用户通过链交互端向主链的运营方发起开户请求;
S13:主链的运营方发送交易至主链,声明该主体已被许可准入,此时用户已开户成功,但是不能发送或接收交易,因为尚未在具体的子链上建立影子账户。
实施例3:
如图3所示,本公开实施例3提供了一种影子账户创建的方法,基于本公开实施例1所述的分片主体管理方法,实现主体在多子链上的身份同一性验证,包括以下步骤:
S21:主体在某个子链有交易需求时,向该子链的运营方发起建立影子账户的请求;
S22:该子链的运营方发送交易至该子链,创建该主体的影子账户以及权限、配额等,影子账户依然使用主体在主链中的账户ID;
S23:主链更新主体信息列表,记录该主体在被申请开户的子链上的帐户状态为激活状态,其他子链的账户状态为未激活状态;
S24:主链通过路由模块同步主体信息到各子链,主体只能在其账户状态为激活的子链上进行交易。
实施例4:
如图4所示,本公开实施例4提供了一种基于影子账户的主体跨链协作方法,基于本公开实施例1所述的分片主体管理方法,实现在单条主链下跨多子链的跨链交易,包括以下步骤:
S31:主链的交易群组接受到主体提出的跨链交易请求;
S32:将跨链交易分别转发至相应的子链,子链构建交易;
S33:客户端将构建好的交易发给主链,主链校验主体准入状态;
S34:主链将校验通过的交易发给各个子链预执行跨链交易,资产的状态被锁定;
S35:各个子链将默克尔证明与交易收据发送至主链,将其写入主链;
S36:主链收集到所有的收据时,发送消息通知子链将跨链交易提交;
S37:若出现超时等异常问题,由主体决定是否撤销跨链交易。
实施例5:
本公开实施例5提供了一种支持性能扩展的分片主体管理系统,包括:链交互端、至少一条主链和至少一条子链,链交互端与主链通信连接,主链与子链通信连接;
主体在主链中开户,在子链中使用主体的影子账户,通过影子账户,主体在参与的子链中直接使用主链的主体识别码。
主体开户方法,包括:
主体通过链交互端进行主体身份验证,创建账户及公私钥;
主体通过链交互端向主链的运营方发起开户请求;
主链的运营方发送交易至主链,声明此主体已被许可准入,开户成功。
影子账户开户方法,包括:
主体在某个子链有交易需求时,向该子链的运营方发起建立影子账户的请求;
该子链的运营方发送交易至该子链,创建主体在该子链的影子账户及权限和配额;
主链更新主体信息列表,记录该主体在被申请开户的子链上的帐户状态为激活状态,其他子链的账户状态为未激活状态;
主链通过路由模块同步主体信息到各子链,主体只能在账户状态为激活的子链上进行交易。
主体跨链协作方法,包括:
主链的交易群组接收到主体提出的跨链交易请求;
将跨链交易分别转发至相应的子链,子链构建交易;
客户端将构建好的交易发给主链,主链校验主体准入状态;
主链将校验通过的交易发给各个子链预执行跨链交易,资产的状态被锁定;
各个子链将默克尔证明与交易收据发送至主链,并写入主链;
主链收集到所有收据后,发送消息通知子链将跨链交易提交;
若出现超时等异常问题,由主体决定是否撤销跨链交易。
以上所述仅为本公开的优选实施例而已,并不用于限制本公开,对于本领域的技术人员来说,本公开可以有各种更改和变化。凡在本公开的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。
- 一种支持性能扩展的分片主体管理方法及系统
- 使Zookeeper的读性能支持水平扩展的系统和方法