
1.本发明涉及区块链技术领域,特别是一种安全的区块链能力扩展系统及方法。
背景技术:2.随着区块链技术的不断发展,其必将为未来社会活动提供各种各样的支持,这就要求区块链能适应未来社会的发展不断提供新的服务。由于区块链不可变更的特性和社会不断发展的特性相冲突,这在很大程度上限制了区块链在社会活动中的进一步普及。在实际应用中,为了让区块链能支持新的业务,往往采用重新发布一条新的区块链来予以实现,这样虽然解决了新业务的实现问题,但是却带来新老业务之间不能互通的问题,也增加了应用的复杂度,最重要的是,对于新业务边界的扩展,如果还未到发布一条新链的程度,将很难改进业务。另外,也有少量解决方案采用内置万能业务的方法实现新业务,但在实际应用中,这可能成为被黑客和恶意攻击者攻击的目标,因为被内置,所以可以通过它攻击核心也与核心账务,虽然实现了新业务的扩展,但是却留下无比巨大的安全隐患。那么,如何在不发布一条新链的情况下,能不受限制的扩展新业务,而且还不会给核心业务与账户带来安全隐患,成为一个急需解决的问题。
技术实现要素:3.本发明旨在提出一种安全的区块链能力扩展系统及方法。
4.一种安全的区块链能力扩展系统,包括沙盒管理器、交易管理器、扩展管理器、共识管理器;其特征在于:所述沙盒管理器用于管理当前所使用的沙盒类型,以及在需要时进行启动与关闭,并控制不同沙盒间的访问;所述交易管理器用于处理区块链上的核心交易;所述扩展管理器用于区块链的扩展能力,在区块链上扩展新增的交易类型时,扩展管理器运行其沙盒,并获取输入和输出的接口,供上层沙盒提取内部内容;所述共识管理器用于管理区块链的共识规则。
5.系统通过沙盒管理器对沙盒进行管理,采用扩展管理器对链上的沙盒进行增加和删除,通过共识管理器完成沙盒的输入与输出,从而在交易管理器中完成交易,完成对沙盒在链上的扩展交易。
6.进一步,所述的沙盒管理器控制不同沙盒间的访问是提供可控的有限的单项访问。
7.进一步,所述的共识规则可以对扩展管理器的支持,共识机制把新增的沙盒抽取输入与输出,当做区块链上的节点进行处理。
8.进一步,所述沙盒管理器包含沙盒配置模块、沙盒启停模块、沙盒监听模块;所述沙盒配置模块用于配置当前所使用沙盒的类型,以及沙盒自身运行过程中需要的参数,进行初始化;所述沙盒启停模块用于按照业务扩展程度的要求启动指定数量的沙盒,并将组件加载到沙盒中运行,并将沙盒的运行结果反馈给组件,交易管理器单独占一个沙盒,扩展管理器根据扩展业务运行沙盒的数量;所述沙盒监听模块用于监听沙盒运行情况,当沙盒
运行异常时,将保留沙盒环境,并通知沙盒启停模块重新启动一个沙盒。
9.进一步,所述交易管理器包含账户管理模块、交易同步模块、交易处理模块;所述账户管理模块用于记录当前区块链中参与者的资产持有信息,账户管理模块放在核心交易处理中;所述交易同步模块用于同步交易数据,随时与网络中其它节点的数据保持一致,并下载它们拥有的而自己没有的数据,同时也为其它节点提供数据同步的查询服务;所述交易处理模块用于校验和执行交易,处理内置的核心交易,所述核心交易与上层业务无直接关系。
10.进一步,所述扩展管理器包含接口通知模块、解释执行模块、输入输出模块;所述接口通知模块用于对外提供接口,以及向其它模块发送通知数据;所述解释执行模块用于加载与运行扩展的自定义功能和交易,所述解释执行模块不同于交易管理器中的交易处理模块,所述解释执行模块由扩展管理器的提供一起提供;所述输入输出模块用于为功能与交易的输入与输出提供统一的输入与接收形式。
11.进一步,所述共识管理器包含规则管理模块、共识执行模块、扩展一致模块;所述规则管理模块用于定义与管理当前网络支持的共识规则,共识规制至少已经在网络上线前通过代码的形式定义一种;所述共识执行模块用于按照规则管理模块中定义好的共识规则进行执行,根据上层业务的不同,可以定义为一个公式,也可以是初始由代码写好的不可变动的规则;所述扩展一致模块用于在当前链使用了扩展管理器时,将扩展管理器中定义的扩展功能与交易纳入共识范围,共识将管理扩展的输入和输出是否与其它节点一致。
12.一种基于区块链的时光停留方法,包括下述步骤:
13.s1交易管理器,节点收到区块链网络中的一笔,提取交易信息,验证交易签名,提取交易类型;判断是否是核心交易,如果是进入s2;如果是扩展交易,进入s3,如果都不是则丢弃请求;
14.s2交易管理器:传递给核心交易处理模块,开始处理交易,处理交易内容,输出处理结果,完成交易处理,保持该交易,完成区块链交易处理;
15.s3扩展管理器:提取扩展交易定义模块,加载自定义交易模块,将该交易传递给该模块,该交易是否需要与核心交互,如果需要进入s4,如果不需要则丢弃请求;
16.s4扩展管理器:发起请求核心数据,沙盒管理器:扩展沙盒接收该请求,扩展沙盒验证请求合法性,如果不合法,丢弃请求;如果合法,沙盒管理器:扩展沙盒将请求传递给核心沙盒,核心沙盒校验该请求合法性,如果不合法,丢弃请求;如果合法,沙盒管理器:核心沙盒将请求传递给核心模块,扩展管理器:核心模块接收请求并处理数据,完成与核心数据的交互;进入s5;
17.s5扩展管理器:该模块解释执行该交易,共识管理器:输出处理结果,将输出结果广播到网络中,比对自己接收到的该交易处理结果,如果不一致,丢弃该交易,如果一致,交易管理器:保存该交易,完成交易处理;完成区块链交易处理。
18.相比现有的技术方案,本发明实现了在一条链上安全扩展区块链现有业务能力的作用,解决了在不发布一条新链的情况下,即可有效扩展新业务,且不会给核心业务与账户带来安全隐患。
19.说明书附图
20.图1是本发明所提及安全的区块链能力扩展系统的组成示意图
21.图2是本发明所提及沙盒管理器的组成示意图;
22.图3是本发明所提及交易管理器的组成示意图;
23.图4是本发明所提及扩展管理器的组成示意图;
24.图5是本发明所提及共识管理器的组成示意图;
25.图6是本发明所提及安全的区块链能力扩展方法的流程示意图;
26.其中:100沙盒管理器、200交易管理器、300扩展管理器、400共识管理器;101沙盒配置模块、102沙盒启停模块、103沙盒监听模块;201账户管理模块、202交易同步模块、203交易处理模块;301接口通知模块、302解释执行模块、303输入输出模块;401规则管理模块、402共识执行模块、403扩展一致模块。
具体实施方式
27.下面结合附图和具体实施例对本发明作进一步详述。在此需要说明的是,下面所描述的本发明各个实施例中所涉及的技术特征只要彼此之间未构成冲突就可以相互组合。
28.如图1所示,一种安全的区块链能力扩展系统,包括沙盒管理器100、交易管理器200、扩展管理器300、共识管理器400;其特征在于:所述沙盒管理器100用于管理当前所使用的沙盒类型,以及在需要时进行启动与关闭,并控制不同沙盒间的访问,所述的沙盒管理器控制不同沙盒间的访问是提供可控的有限的单项访问;所述交易管理器200用于处理区块链上的核心交易;所述扩展管理器300用于区块链的扩展能力,在区块链上扩展新增的交易类型时,扩展管理器300运行其沙盒,并获取输入和输出的接口,供上层沙盒提取内部内容;所述共识管理器400用于管理区块链的共识规则,所述的共识规则可以对扩展管理器的支持,共识机制把新增的沙盒抽取输入与输出,当做区块链上的节点进行处理。
29.系统通过沙盒管理器100对沙盒进行管理,采用扩展管理器300对链上的沙盒进行增加和删除,通过共识管理器400完成沙盒的输入与输出,从而在交易管理器200中完成交易,完成对沙盒在链上的扩展交易。
30.系统在一条区块链上,分别设计两套交易处理单元,并分别运行在互相隔离且独立的一个空间中,并使用特定的接口让它们两者之间可以单向访问,并在共识机制中设计为支持未来扩展的未知交易,即可实现在不发布一条新链的情况下,即可有效扩展新业务,且不会给核心业务与账户带来安全隐患。
31.本发明的共识规制比普通的共识规则多一个对未知交易的支持,也就是对扩展管理器300的支持,无论扩展管理器300中提供怎样的新业务,在共识机制中都把它抽象的看作一对输入与输出的实现,无论内容如何变化,共识管理器400并不关心,只关心在不同的节点上处理结果的一致性。
32.如图2所示,所述沙盒管理器100包含沙盒配置模块101、沙盒启停模块102、沙盒监听模块103;所述沙盒配置模块101用于配置当前所使用沙盒的类型,以及沙盒自身运行过程中需要的参数,进行初始化,比如内存上限、隔离模式等;所述沙盒启停模块102用于按照业务扩展程度的要求启动指定数量的沙盒,并将组件加载到沙盒中运行,并将沙盒的运行结果反馈给组件,交易管理器单独占一个沙盒,扩展管理器300根据扩展业务运行沙盒的数量;所述沙盒监听模块103用于监听沙盒运行情况,当沙盒运行异常时,将保留沙盒环境,并通知沙盒启停模块重新启动一个沙盒。
33.在本发明中,用于核心交易处理的交易管理器200当独占一个沙盒,外部扩展使用的扩展管理器300另外使用一个沙盒,根据上层应用对扩展业务的隔离需求,这里可以启动多个沙盒用于扩展业务的运行。对于一些特定的有生命周期的扩展业务,将在运行结束时关闭沙盒以节约释放资源。
34.如图3所示,所述交易管理器200包含账户管理模块201、交易同步模块202、交易处理模块203;所述账户管理模块201用于记录当前区块链中参与者的资产持有信息,账户管理模块202放在核心交易处理中根据上层业务需求的不同这里保存的资产信息可能不同,可能为一种无形资产如知识产权专利,也可能是一种等价货币如人民币的电子货币等;所述交易同步模块202用于同步交易数据,随时与网络中其它节点的数据保持一致,并下载它们拥有的而自己没有的数据,同时也为其它节点提供数据同步的查询服务;所述交易处理模块203用于校验和执行交易,处理内置的核心交易,所述核心交易与上层业务无直接关系。,当上层业务已经下层到核心部分进行处理,那么这里的这些交易将是整个业务的核心部分,不随业务的扩展与发展而变化。
35.如图4所示,所述扩展管理器300包含接口通知模块301、解释执行模块302、输入输出模块303;所述接口通知模块301用于对外提供接口,以及向其它模块发送通知数据,这是扩展部分与区块链核心建立互通的渠道,这里提供的接口类型决定了外部可获取到的扩展数据的内容;解释执行模块302用于加载与运行扩展的自定义功能和交易,这个解释执行模块不同于交易管理器中的交易处理模块,这里的解释执行模块由扩展管理器的提供一起提供,它是功能与交易扩展的核心,也是开发人员最主要的研发部分;输入输出模块303用于为功能与交易的输入与输出提供统一的输入与接收形式,是共识管理器中识别数据一致性的基础。
36.如图5所示,所述共识管理器400包含规则管理模块401、共识执行模块402、扩展一致模块403;所述规则管理模块401用于定义与管理当前网络支持的共识规则,要支持本发明中的实现,这里至少需要提供一种规则,这个规则在网络上线前通过代码的形式定义好;共识执行模块402用于按照规则管理模块中定义好的共识规则进行执行,根据上层业务的不同,这里可能定义为一个公式,也可能是初始由代码写好的不可变动的规则;扩展一致模块403用于在当前链使用了扩展管理器时,将扩展管理器中定义的扩展功能与交易纳入共识范围,此时的共识将不再关心具体的扩展功能与业务是什么,而只关心扩展的输入与输出是否与其它节点一致。
37.如图6所示,一种基于区块链的时光停留方法,包括下述步骤:
38.s1交易管理器,节点收到区块链网络中的一笔,提取交易信息,验证交易签名,提取交易类型;判断是否是核心交易,如果是进入s2;如果是扩展交易,进入s3,如果都不是则丢弃请求;
39.s2交易管理器:传递给核心交易处理模块,开始处理交易,处理交易内容,输出处理结果,完成交易处理,保持该交易,完成区块链交易处理;
40.s3扩展管理器:提取扩展交易定义模块,加载自定义交易模块,将该交易传递给该模块,该交易是否需要与核心交互,如果需要进入s4,如果不需要则丢弃请求;
41.s4扩展管理器:发起请求核心数据,沙盒管理器:扩展沙盒接收该请求,扩展沙盒验证请求合法性,如果不合法,丢弃请求;如果合法,沙盒管理器:扩展沙盒将请求传递给核
心沙盒,核心沙盒校验该请求合法性,如果不合法,丢弃请求;如果合法,沙盒管理器:核心沙盒将请求传递给核心模块,扩展管理器:核心模块接收请求并处理数据,完成与核心数据的交互;进入s5;
42.s5扩展管理器:该模块解释执行该交易,共识管理器:输出处理结果,将输出结果广播到网络中,比对自己接收到的该交易处理结果,如果不一致,丢弃该交易,如果一致,交易管理器:保存该交易,完成交易处理;完成区块链交易处理。
43.以上所述,仅是本发明的较佳实施例而已,并非对本发明的技术范围作任何限制,故但凡依本发明的权利要求和说明书所做的变化或修饰,皆应属于本发明专利涵盖的范围之内。