一种区块链智能合约模板动态更新方法、装置及系统与流程

文档序号:12467879阅读:248来源:国知局
一种区块链智能合约模板动态更新方法、装置及系统与流程

本申请涉及通信技术领域,特别涉及一种区块链智能合约模板动态更新方法、装置及系统。



背景技术:

智能合约被认为是区块链技术中最有生命力的技术之一,通过智能合约将双方认可的业务规则执行进度固化在区块链中,在交易生命周期中自动执行并记录执行状态,避免纠纷和欺诈、降低了信任成本、提高了交易自动化水平。然而由于智能合约的编写需要很高的技能,发布一个有业务规则漏洞或者不公平的智能合约会给交易参与方带来巨大的损失。通过事先规定范式化的智能合约模板能够避免此问题,但是传统方式实现的智能合约模板如果变更,需要所有参与节点进行共识逻辑变更、升级节点版本,很难维护。例如,比特币支持5种标准智能合约模板,不属于这5种智能合约的交易均被视为非法,但是这5种智能合约模板被作为代码固化在节点验证逻辑中,如果需要对这5中智能合约进行变更,将需要发起全网络投票,并需要所有节点更新本地代码,代价巨大。又例如,以太坊网络不支持智能合约模板验证,不严谨的智能合约会带来巨大损失,比如THE DAO项目使用的智能合约模板不严谨,导致损失超过6000万美元。



技术实现要素:

为了解决现有技术中区块链技术的智能合约模板变更成本巨大,提供了一种区块链智能合约模板动态更新方法、装置及系统,可以以很小的代价实现安全的更新区块链中节点的智能合约模板。

本发明实施例提供了一种区块链智能合约模板动态更新方法,包括,

将智能合约模板进行签名,其中,所述智能合约模板中包括智能合约模板数据以及变更操作;

在区块链中广播所述智能合约模板。

本发明实施例还提供了一种区块链智能合约模板动态更新方法,包括,

接收智能合约模板;

对所述智能合约模板进行验证;

当验证通过后,根据所述智能合约模板的变更操作更新本地的智能合约模板库。

本发明实施例还提供了一种特权节点装置,包括,

签名单元,用于将智能合约模板进行签名,其中,所述智能合约模板中包括智能合约模板数据以及变更操作;

通信单元,用于在区块链中广播所述智能合约模板。

本发明实施例还提供了一种记账节点装置,包括,

通信单元,用于接收所述智能合约模板;

验证单元,对所述智能合约模板进行验证;

更新单元,当验证通过后,根据所述智能合约模板的变更操作更新本地的智能合约模板库。

本发明实施例还提供了一种区块链智能合约模板动态更新系统,包括,

一个或者多个特权节点,用于将智能合约模板进行签名,其中,所述智能合约模板中包括智能合约模板数据以及变更操作,在区块链中广播所述智能合约模板;

多个记账节点,用于接收所述智能合约模板,对所述智能合约模板进行验证,当验证通过后,根据所述智能合约模板的变更操作更新本地的智能合约模板库。

由以上本申请实施例提供的技术方案可见,将现有区块链中的节点划分为特权节点和记账节点,实现了在区块链中安全的动态更新智能合约模板的目的,使得整个区块链变得更加灵活,以适应于复杂多变的业务需求。

当然实施本申请的任一产品或者方法必不一定需要同时达到以上所述的所有优点。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1所示为本申请实施例一种区块链智能合约模板动态更新的方法流程图;

图2所示为本申请实施例一种区块链智能合约模板动态更新的方法流程图;

图3所示为本申请实施例一种特权节点装置的结构示意图;

图4所示为本申请实施例一种记账节点装置的结构示意图;

图5所示为本申请一种区块链智能合约模板动态更新系统的结构示意图;

图6所示为本申请实施例一种区块链智能合约模板动态新增方法的具体流程图;

图7所示为本申请实施例系统结构图;

图8所示为本申请实施例一种区块链智能合约模板动态删除方法的具体流程图。

具体实施方式

为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。

如图1所示为本申请实施例一种区块链智能合约模板动态更新的方法流程图,在本图中描述了在区块链技术中实现动态更新节点中智能合约模板的方法,通过将区块链中的节点区分为特权节点和记账节点来构成上述方法,其中,特权节点的方法具体包括:

步骤101,将智能合约模板进行签名,其中,所述智能合约模板中包括智能合约模板数据以及变更操作;

步骤102,在区块链中广播所述智能合约模板。

根据本申请的一个实施例,所述特权节点、记账节点均为区块链中的节点,每个节点都可以为特权节点或者记账节点,所述每个节点都能够完成现有区块链中节点完成的功能,例如发起交易功能、查询功能、记账功能等;所述特权节点也可以为由权威组织认证后的可靠节点,该特权节点对于变更后的智能合约模板具有使其审核通过或者使其审核拒绝广播到区块链中的权限,其中特权节点对变更后的智能合约模板审核通过后会对该智能合约模板进行签名,以表示该变更后的智能模板是经过特权节点进行审核通过后广播的,对于变更后的智能合约模板不通过审核,则拒绝对该智能合约模板签名,从而可以防止有问题的智能合约模板广播到区块链中。

其中,在现有的区块链技术中,每个节点均可以为具有计算与存储功能的个人计算机或者计算机集群,或者大、中、小型计算机,甚至是具有一定计算和存储能力的任何个人终端,例如平板电脑,手机等。

根据本申请的一个实施例,所述智能合约模板的变更操作至少包括,新增、删除或修改等。

根据本申请的一个实施例,所述智能合约模板具有标志位,该标志位用于标记上述变更操作,例如标志位为0,表示新增智能合约模板的操作,标志位为1表示删除智能合约模板的操作,标志位为2表示修改智能合约模板的操作,或者为其它可能的标记方式标记该变更后智能合约的操作方式。

通过本申请的方法,通过将区块链中的节点划分为特权节点和记账节点,特权节点具有对智能合约模板进行签名并广播到区块链中的功能,实现了在区块链中安全的动态更新智能合约模板的目的,使得整个区块链变得更加灵活,以适应于复杂多变的业务需求。

如图2所示为本申请实施例一种区块链智能合约模板动态更新的方法流程图,在本图中描述了记账节点在区块链中验证由特权节点签名后的智能合约模板,并根据变更操作更新本地智能合约模板库的过程,在该过程中实现了动态更新智能合约模板的目的,该记账节点中的方法具体包括:

步骤201,接收智能合约模板;

步骤202,对所述智能合约模板进行验证;

步骤203,当验证通过后,所述记账节点根据所述智能合约模板的变更操作更新本地的智能合约模板库。

其中,对智能合约模板进行验证包括,该智能合约模板属于特权节点广播的一种交易类型,在验证时,除了要验证该交易是否符合预定要求以外,还需要验证智能合约交易模板的格式、数据结构等是否符合预定要求,以及还需要验证该交易是否经过特权节点的签名。

根据本申请的一个实施例,所述智能合约模板的变更操作至少包括,新增、删除或修改等。

根据本申请的一个实施例,对所述智能合约模板进行验证进一步包括,根据所述智能合约模板的签名进行验证,如果所述签名合法,则所述智能合约模板验证通过,否则丢弃所述智能合约模板。

根据本申请的一个实施例,根据所述智能合约模板的变更操作更新本地的智能合约模板库进一步包括:

若所述智能合约模板的变更操作为新增,则将所述智能合约模板加入所述智能合约模板库;

若所述智能合约模板的变更操作为删除,则将所述智能合约模板库中的相应智能合约模板删除;

若所述智能合约模板的变更操作为修改,则将所述智能合约模板库中的相应智能合约模板进行修改。

根据本申请的一个实施例,所述根据所述智能合约模板的变更操作更新本地的智能合约模板库后还包括,所述记账节点接收智能合约交易,将所述智能合约交易在所述智能合约模板库中进行匹配,若匹配成功则处理该智能合约交易并通过共识记入区块链,否则丢弃该智能合约交易。

其中,所述智能合约交易是指所有由符合智能合约模板的智能合约创建的交易,可以至少包括智能合约创建者、智能合约内容、智能合约创建者签名。

通过本申请的方法,通过将区块链中的节点划分为特权节点和记账节点,在记账节点加入根据广播中的智能合约模板对本地智能合约模板库进行更新的功能,实现了在区块链中安全的动态更新智能合约模板的目的,使得整个区块链变得更加灵活,以适应于复杂多变的业务需求。

如图3所示为本申请实施例一种特权节点装置的结构示意图,在本图中描述了特权节点的功能结构,可以实现动态更新区块链中的智能合约模板,该装置具体包括:

签名单元301,用于将智能合约模板进行签名,其中,所述智能合约模板中包括智能合约模板数据以及变更操作;

通信单元302,用于在区块链中广播所述智能合约模板。

通过将区块链中的节点划分为特权节点和记账节点,特权节点具有对智能合约模板进行签名并广播到区块链中的功能,实现了在区块链中安全的动态更新智能合约模板的目的,使得整个区块链变得更加灵活,以适应于复杂多变的业务需求。

如图4所示为本申请实施例一种记账节点装置的结构示意图,在本图中描述了记账节点的功能结构,可以实现动态更新区块链中的智能合约模板,该装置具体包括:

通信单元401,用于接收所述智能合约模板;

验证单元402,对所述智能合约模板进行验证;

更新单元403,当验证通过后,根据所述智能合约模板的变更操作更新本地的智能合约模板库。

根据本申请的一个实施例,所述验证单元进一步用于,根据所述智能合约模板的签名进行验证,如果所述签名合法,则所述智能合约模板验证通过,否则丢弃所述智能合约模板。

根据本申请的一个实施例,所述更新单元进一步用于,若所述智能合约模板的变更操作为新增,则将所述智能合约模板加入所述智能合约模板库;

若所述智能合约模板的变更操作为删除,则将所述智能合约模板库中的相应智能合约模板删除;

若所述智能合约模板的变更操作为修改,则将所述智能合约模板库中的相应智能合约模板进行修改。

根据本申请的一个实施例,还包括处理单元404,用于将所述通信单元接收到的智能合约交易与所述智能合约模板库中的智能合约模板进行匹配,若匹配成功则处理该智能合约交易并通过共识记入区块链,否则丢弃该智能合约交易。

通过将区块链中的节点划分为特权节点和记账节点,记账节点具有根据广播中的智能合约模板对本地智能合约模板库进行更新的功能,实现了在区块链中安全的动态更新智能合约模板的目的,使得整个区块链变得更加灵活,以适应于复杂多变的业务需求。

如图5所示为本申请一种区块链智能合约模板动态更新系统的结构示意图,在本图中描述了由特权节点和记账节点组成的区块链,在该区块链中可以实现动态的更新智能合约模板,该系统具体包括:

一个或者多个特权节点501,用于将智能合约模板进行签名,其中,所述智能合约模板中包括智能合约模板数据以及变更操作,在区块链中广播所述智能合约模板;

多个记账节点502,用于接收所述智能合约模板,对所述智能合约模板进行验证,当验证通过后,根据所述智能合约模板的变更操作更新本地的智能合约模板库。

通过本申请的系统,将现有区块链中的节点划分为特权节点和记账节点,实现了在区块链中安全的动态更新智能合约模板的目的,使得整个区块链变得更加灵活,以适应于复杂多变的业务需求。

如图6所示为本申请实施例一种区块链智能合约模板动态新增方法的具体流程图,该图描述了区块链中动态新增智能合约模板的方法,其中包括了如图7所示的系统结构,其中交易终端发起智能合约,特权节点向区块链广播智能合约模板,在该图所示实施例中,每个区块链中的节点均可以为特权节点或者记账节点,图中所示对节点的定义只是实施例之一。

步骤601,特权节点对待发布的智能合约模板进行审核。

在本步骤中,智能合约模板的发起方可以为金融机构的服务器,该发起方意图向区块链中加入新的智能合约模板,所述特权节点对智能合约模板的审核包括通过数据结构的方式校验智能合约模板中数据段是否符合要求,或者通过人工核验的方式检查智能合约模板是否具有漏洞,这种审核过程也可以将人为的审核过程电子化,以达到审核智能合约模板的目的。

步骤602,设置通过审核的智能合约模板的标志位。

在本实施例中,将标志位设置为0,表示该智能合约模板的变更操作为新增,意即增加区块链中的智能合约模板,当然,所述标志位的设置可以通过事先约定进行修改。

步骤603,特权节点对所述智能合约模板进行数字签名。

在本步骤中,当然通过其它现有技术中的手段也同样可以实现上述数字签名的效果,因此“签名”在本发明文档中是证明该智能合约模板是通过特权节点审核的,并不是对具体的证明过程中采用某种技术手段进行的限制,在本实施例中,采用数字签名的方式对智能合约模板进行签名,以实现上述目的,确保该智能合约模板是由特权节点发出的,而不是由未授权的记账节点发出的,从而可以保证智能合约模板的可靠性以及安全性。

其中,智能合约模板包括模板的内容数据以及标志位,还可能包括其它必要的信息。

在本步骤中,还可以对智能合约模板进行加密处理,从而进一步提高网络传输过程中的安全性。

步骤604,将所述智能合约模板向区块链进行广播。

在本步骤中,特权节点可以将智能合约模板的发布作为一个交易在区块链中进行广播,将该交易设置有特殊的标识符或者类型标识,从而其它的记账节点接收到该交易后能够识别出该交易为智能合约模板更新的业务,而不是普通的交易业务。其中,广播可以采用现有区块链中的交易广播技术实现,在此不再赘述。

步骤605,记账节点接收特权节点的智能合约模板的广播。

步骤606,记账节点对所述接收到的智能合约模板进行验证。

在本步骤中,记账节点对智能合约模板的数字签名进行验证,如果验证通过,则说明该智能合约模板是由特权节点发出的,是可信的,否则直接丢弃该智能合约模板。

步骤607,记账节点获取智能合约模板的标志位,得到变更操作。

在本步骤中,获取到的标志位为新增操作。

步骤608,根据变更操作,将通过验证的智能合约模板记录入区块。

在本步骤中,记账节点将智能合约模板存储入本地的智能合约模板库中。

步骤609,某个交易终端向记账节点发出智能合约交易。

在本步骤中,智能合约交易为根据某个智能合约模板生成的智能合约,或者该智能合约交易中的智能合约根本就是私自产生的,并不是根据任何一个智能合约模板生成的(即智能合约不合法)。

步骤610,某个记账节点接收智能合约交易,并进行相应的校验。

在本步骤中,记账节点对智能合约交易的校验可以如现有的区块链中校验交易的方法类似。

步骤611,记账节点在本地智能合约模板库中匹配所述智能合约交易中的智能合约。

在本步骤中,可以提取智能合约的关键字,将关键字与智能合约模板库中的所有智能合约模板进行匹配,关键字相同的数量超过一个门限值,则认为匹配成功;或者智能合约中的字段数据结构与智能合约模板库中的所有智能合约模板中的字段数据结构进行比较,当字段的数据结构相同的比例超过一个门限值,则认为匹配成功;或者还可以采用其它文档匹配方法进行匹配,若不匹配(即前述智能合约不合法的情况),则丢弃该智能合约交易。

步骤612,当所述智能合约交易与智能合约模板库中的某个智能合约模板匹配成功,则处理所述智能合约交易。

在本步骤中,如果匹配成功,则如同现有技术中的区块链中的节点一样对智能合约交易进行处理,包括计算、处理数据、存储交易记录以及将交易记录广播到其它记账节点等步骤。

如图8所示为本申请实施例一种区块链智能合约模板动态删除方法的具体流程图,该图描述了区块链中动态删除智能合约模板的方法。

步骤801,特权节点对待发布的智能合约模板进行审核。

在本步骤中,智能合约模板的发起方可以为金融机构的服务器,该发起方意图向区块链中加入新的智能合约模板,所述特权节点对智能合约模板的审核包括通过数据结构的方式校验智能合约模板中数据段是否符合要求,或者通过人工核验的方式检查智能合约模板是否具有漏洞,这种审核过程也可以将人为的审核过程电子化,以达到审核智能合约模板的目的。

步骤802,设置通过审核的智能合约模板中的标志位。

在本实施例中,将标志位设置为1,表示该智能合约模板的变更操作为删除,意即删除区块链中的智能合约模板,当然,所述标志位的设置可以通过事先约定进行修改。

步骤803,特权节点对所述智能合约模板进行加密。

在本步骤中,当然通过其它现有技术中的手段也同样可以实现上述加密的效果,因此“签名”在本发明文档中是证明该智能合约模板是通过特权节点审核的,并不是对具体的证明过程中采用某种技术手段进行的限制,在本实施例中,采用加密的方式对智能合约模板进行签名,记账节点需要使用预先设定的密钥对加密后的智能合约模板进行解密,如果记账节点的密钥无法解密智能合约模板,则认为该智能合约模板不是由特权节点发出的,确保该智能合约模板是由特权节点发出的,而不是由未授权的记账节点发出的,从而可以保证智能合约模板的可靠性以及安全性。

步骤804,将所述智能合约模板向区块链进行广播。

在本步骤中,特权节点可以将智能合约模板的发布作为一个交易在区块链中进行广播,将该交易设置有特殊的标识符或者类型标识,从而其它的记账节点接收到该交易后能够识别出该交易为智能合约模板更新的业务,而不是普通的智能合约交易业务。其中,广播可以采用现有区块链中的交易广播技术实现,在此不再赘述。

步骤805,记账节点接收特权节点的智能合约模板的广播。

步骤806,记账节点对所述接收到的智能合约模板进行验证。

在本步骤中,记账节点利用预先设定的密钥对智能合约模板进行解密,如果解密成功,则说明该智能合约模板是由特权节点发出的,是可信的,否则直接丢弃该智能合约模板。

步骤807,记账节点获取智能合约模板的标志位,得到变更操作。

在本步骤中,获取到的标志位为删除操作。

步骤808,根据变更操作,将智能合约模板库中与解密后的智能合约模板匹配的智能合约模板删除。

在本步骤中,记账节点在智能合约模板库中寻找与要删除的智能合约模板相同的智能合约模板,找到后将该智能合约模板从智能合约模板库中删除,若未找到则停止匹配。

其中的匹配手段可以采用字符串匹配的方式,也可以采用语义识别的方式进行匹配,或者其它方式。

在其它实施例中,如果智能合约模板的标志位为修改,则记账节点在本地的智能合约模板库中匹配出相应的智能合约模板后,按照接收到的智能合约模板替换所述智能合约模板库中的智能合约模板,或者根据接收到的智能合约模板修改所述智能合约模板库中的智能合约模板。

步骤809,某个交易终端向记账节点发出智能合约交易。

在本步骤中,智能合约交易为根据某个智能合约模板生成的智能合约,或者该智能合约交易中的智能合约根本就是私自产生的,并不是根据任何一个智能合约模板生成的(即智能合约不合法)。

步骤810,某个记账节点接收智能合约交易,并进行相应的校验。

在本步骤中,记账节点对智能合约交易的校验可以如现有的区块链中校验交易的方法类似。

步骤811,记账节点在本地智能合约模板库中匹配所述智能合约交易中的智能合约。

在本步骤中,可以提取智能合约的关键字,将关键字与智能合约模板库中的所有智能合约模板进行匹配,关键字相同的数量超过一个门限值,则认为匹配成功;或者智能合约中的字段数据结构与智能合约模板库中的所有智能合约模板中的字段数据结构进行比较,当字段的数据结构相同的比例超过一个门限值,则认为匹配成功;或者还可以采用其它文档匹配方法进行匹配,若不匹配(即前述智能合约不合法的情况),则丢弃该智能合约交易。

步骤812,当所述智能合约交易与智能合约模板库中的某个智能合约模板匹配成功,则处理所述智能合约交易。

在本步骤中,如果匹配成功,则如同现有技术中的区块链中的节点一样对智能合约交易进行处理,包括计算、处理数据、存储交易记录以及将交易记录广播到其它记账节点等步骤。

通过上述本申请实施例中的方法及装置,通过将区块链中的节点划分为特权节点和记账节点,特权节点具有对智能合约模板进行签名并广播到区块链中的功能,在记账节点加入根据广播中的智能合约模板对本地智能合约模板库进行更新的功能,实现了在区块链中安全的动态更新智能合约模板的目的,使得整个区块链变得更加灵活,以适应于复杂多变的业务需求。

控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。

上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。

为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

虽然通过实施例描绘了本申请,本领域普通技术人员知道,本申请有许多变形和变化而不脱离本申请的精神,希望所附的权利要求包括这些变形和变化而不脱离本申请的精神。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1