CN112688775A - 联盟链智能合约的管理方法和装置、电子设备、及介质 - Google Patents
联盟链智能合约的管理方法和装置、电子设备、及介质 Download PDFInfo
- Publication number
- CN112688775A CN112688775A CN202011498812.5A CN202011498812A CN112688775A CN 112688775 A CN112688775 A CN 112688775A CN 202011498812 A CN202011498812 A CN 202011498812A CN 112688775 A CN112688775 A CN 112688775A
- Authority
- CN
- China
- Prior art keywords
- voting
- node
- information
- nodes
- chain
- 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.)
- Granted
Links
- 238000007726 management method Methods 0.000 title abstract description 120
- 238000000034 method Methods 0.000 claims abstract description 49
- 238000012797 qualification Methods 0.000 claims abstract description 20
- 238000012163 sequencing technique Methods 0.000 claims description 37
- 230000005540 biological transmission Effects 0.000 claims description 25
- 238000004422 calculation algorithm Methods 0.000 claims description 25
- 230000015654 memory Effects 0.000 claims description 12
- 238000004364 calculation method Methods 0.000 claims description 8
- 230000001186 cumulative effect Effects 0.000 claims description 6
- 238000012795 verification Methods 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 22
- 230000006870 function Effects 0.000 description 19
- 238000004590 computer program Methods 0.000 description 11
- 230000007246 mechanism Effects 0.000 description 9
- 230000008520 organization Effects 0.000 description 9
- 230000000977 initiatory effect Effects 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 230000008901 benefit Effects 0.000 description 5
- 238000012217 deletion Methods 0.000 description 5
- 230000037430 deletion Effects 0.000 description 5
- 101100065246 Mus musculus Enc1 gene Proteins 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 238000004806 packaging method and process Methods 0.000 description 4
- 101150040334 KLHL25 gene Proteins 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000010276 construction Methods 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000006855 networking Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000012856 packing Methods 0.000 description 2
- 239000000758 substrate Substances 0.000 description 2
- 108010001267 Protein Subunits Proteins 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 210000004185 liver Anatomy 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Images
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本公开提供了一种联盟链智能合约的管理方法和装置,属于区块链技术领域。所述方法包括:接收针对所述联盟链上的第一智能合约的管理请求;获取所述联盟链上所有具有投票资格的节点中每个节点在单次投票表决时间窗口内对所述管理请求的投票信息、以及每个节点的投票权重;其中,属于所述第一业务领域的节点比不属于所述第一业务领域的节点具有更大的投票权重;基于每个节点的投票权重、以及每个节点的投票信息,计算所述联盟连中针对所述管理请求投同意票的加权权重比例;以及当所述加权权重比例大于或等于预设的阈值时,允许在所述联盟链中对所述第一智能合约执行所述管理请求对应的管理操作。本公开还提供了一种电子设备、及介质。
Description
技术领域
本公开涉及区块链技术领域,更具体地,涉及一种联盟链智能合约的管理方法和装置、电子设备、及介质。
背景技术
区块链本质上是一种去中心化或多中心化的技术,支持链上成员平等参与业务运营,自主参与管理决策的表决。联盟链是介于公有链和私有链之间的,由多个组织或机构共同参与管理,每个组织或机构管理一个或多个节点的区块链组成形式,由各节点共同参与记账和认证,加入和退出联盟链必须符合联盟协议并由所有预选节点同意。联盟链的多中心化特点,兼顾公有链与私有链的优势,同时又不排斥监管。
智能合约是一套以数字形式定义的承诺,包括合约参与方可以在上面执行这些承诺的协议,是用计算机语言取代法律语言记录条款并由程序自动执行的合约。在区块链中运行的智能合约,本质上是一段部署到区块链上的链码,是由事件驱动的、具有状态的、运行在一个复制的、分享的账本之上的、且能够保管账本上资产的程序,智能合约的生命周期包括合约部署、升级和删除。
传统的联盟链管理大都基于中心化的管控机制,联盟参与机构不能自主管理自身的资源,也无从自主决定参与或脱离联盟链,甚至无法自主决定所拥有数据分享的范围,导致合作方约束过多,参与意愿不强。目前另有一些联盟链中,可以由单个组织或机构发出智能合约生命周期管理操作(例如,部署、升级和删除等事务。其中,一个组织或机构可以在无需其他机构的同意下为联盟链中的所有其他网络节点部署合约,不存在一个对智能合约是否能够上链的审批流程,会对联盟链的业务运营造成风险。
发明内容
有鉴于此,本公开实施例提供了一种基于加权投票机制的联盟链智能合约的管理方法和装置、电子设备、及介质。
本公开实施例的一个方面,提供了一种联盟链智能合约的管理方法。所述方法包括:接收针对所述联盟链上的第一智能合约的管理请求,所述管理请求包括所述第一智能合约所属的第一业务领域的信息、以及表决时间信息,所述表决时间信息用于确定所述联盟链中的节点对所述管理请求进行投票表决的单次投票表决时间窗口;获取所述联盟链上所有具有投票资格的节点中每个节点在所述单次投票表决时间窗口内对所述管理请求的投票信息、以及每个节点在本次投票中的投票权重;其中,属于所述第一业务领域的节点比不属于所述第一业务领域的节点具有更大的投票权重;基于每个节点的投票权重、以及每个节点的投票信息,计算所述联盟连中针对所述管理请求投同意票的加权权重比例;以及当所述加权权重比例大于或等于预设的阈值时,允许在所述联盟链中对所述第一智能合约执行所述管理请求对应的管理操作。
根据本公开的实施例,所述方法还包括:根据所述联盟链上所有具有投票资格的节点中每个节点所属的业务领域与所述第一业务领域的相关性,设置每个节点的投票权重。
根据本公开的实施例,所述基于每个节点的投票权重、以及每个节点的投票信息,计算所述联盟连中针对所述管理请求投同意票的加权权重比例包括:基于每个节点的投票权重,计算每个节点所拥有的加权投票票数;将所述联盟链上所有具有投票资格的节点的所述加权投票票数加总,得到联盟链加权总票数;将投同意票的节点的所述加权投票票数加总,得到投票同意的加权票数;以及基于所述投票同意的加权票数与所述联盟链加权总票数的比值,得到所述加权权重比例。
根据本公开的实施例,所述基于每个节点的投票权重,计算每个节点所拥有的加权投票票数包括:根据每个节点的投票权重、以及每个节点的投票活跃度,计算每个节点所拥有的所述加权投票票数,其中,每个节点的投票活跃度为:
其中,Avote[i]为节点i的投票活跃度;Cpecr[i]为节点i在所述联盟链中的累计投票次数,Cchain为所述联盟链的累计总投票次数。
根据本公开的实施例,所述加权投票票数为:
W[i]=Vbase*(1+Pbus[i])+Avote[i]
其中,
W[i]为节点i的加权投票票数;
Vbase为所述联盟链上所有具有投票资格的节点均具有的基础权重,默认可以为1;
Pbus[i]为节点i的投票权重。
根据本公开的实施例,所述联盟链包括M个普通网络节点和N个排序节点,其中,M和N分别为大于1的整数。其中,所述普通网络节点为所述联盟链中具有投票资格的节点,以及所述方法由所述排序节点执行。
根据本公开的实施例,所述方法还包括:根据所述表决时间信息,通过预先设定的随机数算法从N个所述排序节点中选择出所述当前排序节点;其中,通过所述当前排序节点通过对称加密方式获得所述联盟链上所有具有投票资格的节点中每个节点在所述单次投票表决时间窗口内对所述管理请求的投票信息。
根据本公开的实施例,所述获取所述联盟链上所有具有投票资格的节点中每个节点在所述单次投票表决时间窗口内对所述管理请求的投票信息还包括:所述当前排序节点接收参与投票的每个所述普通网络节点通过共享密钥加密的投票信息;其中,所述共享密钥为所述当前排序节点和每个所述普通网络节点一对一共享的密钥;以及所述当前排序节点基于所述共享密钥解密所述加密的投票信息,得到所述投票信息。
根据本公开的实施例,所述方法还包括所述当前排序节点生成与所述普通网络节点共享的所述共享密钥。具体包括:接收所述普通网络节点广播的第一传输信息,所述第一传输信息为对第一密钥分量利用所述当前排序节点的公钥加密,并利用所述普通网络节点的私钥作数字签名得到的信息;其中,所述第一密钥分量为所述普通网络节点中预先设置的信息;向所述联盟链广播第二传输信息,所述第二传输信息为对第二密钥分量基于所述普通网络节点的公钥加密,并利用所述当前排序节点的私钥作数字签名得到的信息;其中,所述第二密钥分量为所述当前排序节点中预先设置的信息;在验签和解密通过后得到所述第一密钥分量;以及基于所述第一密钥分量和所述第二密钥分量,生成所述共享密钥。
本公开实施例的另一方面,提供了一种联盟链智能合约的管理装置。所述装置包括第一接收模块、第一获取模块、计算模块、以及管理操作模块。第一接收模块,用于接收针对所述联盟链上的第一智能合约的管理请求,所述管理请求包括所述第一智能合约所属的第一业务领域的信息、以及表决时间信息,所述表决时间信息用于确定所述联盟链中的节点对所述管理请求进行投票表决的单次投票表决时间窗口。第一获取模块用于获取所述联盟链上所有具有投票资格的节点中每个节点在所述单次投票表决时间窗口内对所述管理请求的投票信息。以及每个节点在本次投票中的投票权重;其中,属于所述第一业务领域的节点比不属于所述第一业务领域的节点具有更大的投票权重。计算模块用于基于每个节点的投票权重、以及每个节点的投票信息,计算所述联盟连中针对所述管理请求投同意票的加权权重比例。管理操作模块用于当所述加权权重比例大于或等于预设的阈值时,允许在所述联盟链中对所述第一智能合约执行所述管理请求对应的管理操作。
根据本公开的实施例,所述装置还包括权重设置模块。所述权重设置模块用于根据所述联盟链上所有具有投票资格的节点中每个节点所属的业务领域与所述第一业务领域的相关性,设置每个节点的投票权重。
本公开实施例的另一方面,提供了一种电子设备。所述电子设备包括一个或多个存储器、以及一个或多个处理器。所述存储器存储有可执行指令。所述处理器执行所述可执行指令,以实现如上所述的方法。
本公开实施例的另一方面,提供了一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行如上所述的方法。
本公开实施例的另一方面提供了一种计算机程序,所述计算机程序包括计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。
上述一个或多个实施例具有如下优点或益效果:在进行智能合约管理时通过对节点的投票根据业务领域进行加权来统计投票结果,不仅可以有效避免中心化管理的弊端,有效提升联盟链中各方的业务参与度,而且按照不同业务领域分配不同的投票权重,有利于区分核心业务用户,提升投票表决的专业性。
附图说明
通过以下参照附图对本公开实施例的描述,本公开的上述以及其他目的、特征和优点将更为清楚,在附图中:
图1示意性示出了根据本公开一实施例的联盟链的网络架构;
图2示意性示出了根据本公开一实施例的联盟链智能合约的管理方法的流程图;
图3示意性示出了根据本公开一实施例的联盟链智能合约的管理方法中计算加权权重比例的流程图;
图4示意性示出了根据本公开另一实施例的联盟链的网络架构;
图5示意性示出了根据本公开一实施例的联盟链中当前排序节点生成与普通网络节点的共享密钥的流程图;
图6示意性示出了根据本公开一实施例的联盟链中当前排序节点通过加解密获得投票信息的流程图;
图7示意性示出了根据本公开一实施例的联盟链中排序节点的系统结构示意图;
图8示意性示出了根据本公开一实施例的联盟链中普通网络节点的系统结构示意图;
图9示意性示出了根据本公开一实施例的联盟链中智能合约生命周期管理的流程图。
图10示意性示出了根据本公开一实施例的联盟链中对称加密密钥生成流程图。
图11示意性示出了根据本公开一实施例的联盟链中节点投票信息传输流程图;
图12示意性示出了根据本公开实施例的联盟链智能合约的管理装置的框图;以及
图13示意性示出了适于实现根据本公开实施例的联盟链智能合约的管理方法的电子设备的框图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。在使用类似于“A、B或C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B或C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。
根据本公开实施例的联盟链智能合约的管理方法和装置、电子设备、及介质。该方法包括首先接收针对联盟链上的第一智能合约的管理请求,该管理请求包括第一智能合约所属的第一业务领域的信息、以及表决时间信息,该表决时间信息用于确定联盟链中的节点对管理请求进行投票表决的单次投票表决时间窗口。然后获取联盟链上所有具有投票资格的节点中每个节点在单次投票表决时间窗口内对管理请求的投票信息、以及每个节点在本次投票中的投票权重,其中,属于第一业务领域的节点比不属于第一业务领域的节点具有更大的投票权重。接着,基于每个节点的投票权重、以及每个节点的投票信息,计算联盟连中针对管理请求投同意票的加权权重比例。最后,当加权权重比例大于或等于预设的阈值时,允许在联盟链中对第一智能合约执行管理请求对应的管理操作。
根据本公开的实施例,在由属于多个不同业务领域的机构节点组成的联盟链中,根据需要部署上链、链上升级或者链上删除的智能合约所属的业务领域,动态地确定对应业务领域的节点与其他领域构节点的不同投票权重,从而在对智能合约生命周期管理进行投票表决时,结合投每个节点的投票权重计算联盟链中头同一票的加权权重比例。当该加权权重比例超过设定的阈值时,才执行对应的合约生命周期管理操作。以此方式,不仅可以有效避免中心化管理的弊端,有效提升联盟链中各方的业务参与度。而且按照不同业务领域分配不同的投票权重,有利于区分核心业务用户,提升投票表决的专业性。
需要说明的是,本公开各个实施例提供的方法和装置可用于金融领域,也可用于除金融领域之外的任意领域(例如,物流、医疗等领域),本公开对应用领域不做限定。
图1示意性示出了根据本公开一实施例的联盟链100的网络架构。
如图1所示,该联盟链100可以包括多个节点(例如,图中示例的101~108)。该多个节点101~108可以相互通信。每个节点对应一个数据库,该多个节点可以形成一个分布在全球各地、能够协同运转的数据库存储系统。各节点享有同其他所有节点同样的权利与义务。各节点可以通过某种共识机制(例如,基于拜占庭共识PBFT算法而确定的共识协议)来确定某个节点是否可以接入该联盟链100。任意一个共识节点在其对应的数据库中进行读写操作,其他节点会根据某种机制完成同步,从而实现在联盟链100中所有节点对应的数据库中的数据完全一致。
联盟链100的每个参与机构可以通过多个节点101~108中的一个或多个接入该联盟链100中。每个节点根据其所属的机构、或者其所执行的业务功能被设置为属于至少一个业务领域。
在一些实施例中,该多个节点101~108可以分别具有各自的业务功能,同时也具有联盟链中交易共识、投票统计、和区块打包等基本的区块链的操作功能。在这种情况下,一个节点既可以进行投票,还可以按照预先设置的加权算法进行投票统计、并在联盟链内部对统计结果进行共识,以及在统计允许对智能合约进行相应的管理操作时,在本节点执行对应的管理操作。
在另一些实施例中,可以将多个节点按照功能设置为普通网络节点和排序节点。其中,普通网络节点为联盟链的参与机构所有,而排序节点可以属于联盟链公有。其中,普通网络节点用于执行与业务相关的操作。排序节点执行区块链中的投票结果统计、交易排序共识和区块打包等区块链基本操作等。在这种情况下,普通网络节点对智能合约的管理请求进行投票表决,而由排序节点进行按照预先设置的加权算法进行投票统计、并通过多个排序节点内部共识。当排序节点通过共识得到的投票结果允许对智能合约进行相应的管理操作时,通知普通网络节点进行智能合约的对应管理操作。
本公开实施例的联盟链智能合约的管理方法可以由联盟链100来执行,对联盟链100中的智能合约进行更为专业化的管理。
图2示意性示出了根据本公开一实施例的联盟链智能合约的管理方法的流程图。
如图2所示,根据该实施例的联盟链智能合约的管理方法可以包括操作S210~操作S240。
在操作S210,接收针对联盟链上的第一智能合约的管理请求。该管理请求包括第一智能合约所属的第一业务领域的信息、以及表决时间信息,该表决时间信息用于确定联盟链中的节点对管理请求进行投票表决的单次投票表决时间窗口。
表决时间信息例如可以是发起管理请求的时间戳。并且在联盟链中预先设置了每次表决的时间长度,则基于该时间戳和每次表决的时间长度可以确定该单次投票表决的时间窗口。
或者,表决时间信息例如可以是发起管理请求的节点选择或定义的表决时间段,从而以该表决时间段作为该单次投票表决的时间窗口。
在操作S220,获取联盟链上所有具有投票资格的节点中每个节点在单次投票表决时间窗口内对管理请求的投票信息、以及每个节点在本次投票中的投票权重。其中,属于第一业务领域的节点比不属于第一业务领域的节点具有更大的投票权重。
根据本公开的实施例,可以根据联盟链上所有具有投票资格的节点中每个节点所属的业务领域与第一业务领域的相关性,设置每个节点的投票权重。例如,在进行发起合约的管理请求之前(例如,在联盟链组网时)可以以类似于表1的方式设置各个节点的投票权重。其中,表1示例了一个实施例中业务领域与节点的投票权重的关系表。
如表1所示,如节点peer1和peer3属于业务领域1,则对属于业务领域1的智能合约进行生命周期管理投票时,peer1和peer3拥有加权权重值1,其余节点的加权权重值为0(仅为示例)。
进一步地,一个节点可以被设置为属于一个或多个不同的业务领域。从而,当对属于不同业务领域的智能合约进行生命周期管理投票时,每次投票活动的联盟链预期总票数都是不同的。
表1
在操作S230,基于每个节点的投票权重、以及每个节点的投票信息,计算联盟连中针对管理请求投同意票的加权权重比例。例如,每次在进行投票统计时,可以根据表1查找该节点在本次投票中的投票权重。并结合节点是投同意票还是反对票的投票信息来计算加权权重比例。
在操作S240,当加权权重比例大于或等于预设的阈值时,允许在联盟链中对第一智能合约执行管理请求对应的管理操作。
从而,在对属于某一业务领域的智能合约进行投票时,属于该业务领域机构的普通网络节点,比其他非该领域机构的普通网络节点,拥有相对较大的权重,有利于区分核心业务用户,提升投票表决的专业性。
根据本公开实施例,联盟链中的各参与机构的节点均具有表决权,且对应不同业务领域有不同的投票权重,保证了投票活动的业务专业性和多中心化管理优势。通过各节点的具体表决投同意票与否决票,来判断投同意票的加权投票比例是否达标,来实现智能合约生命周期的智能化管理。
图3示意性示出了根据本公开一实施例的联盟链智能合约的管理方法中操作S230计算加权权重比例的流程图。
如图3所示,根据本公开实施例该联盟链智能合约的管理方法中操作S230可以包括操作S331~操作S334。
在操作S331,基于每个节点的投票权重,计算每个节点所拥有的加权投票票数。
在一个实施例中,可以根据每个节点的投票权重、以及每个节点的投票活跃度,计算每个节点所拥有的加权投票票数。其中,每个节点的投票活跃度可以表示为式(1):
式(1)中,Avote[i]为节点i的投票活跃度;Cpeer[i]为节点i在联盟链中的累计投票次数,Cchain为联盟链的累计总投票次数。
然后可以通过式(2)计算每个节点所拥有的加权投票票数为:
W[i]=Vbase*(1+Pbus[i])+Avote[i] (2)
式(2)中,W[i]为节点i的加权投票票数;Vbase为联盟链上所有具有投票资格的节点均具有的基础权重,例如可以是联盟链组网时对每个节点设置的参与投票的权重系数;Pbus[i]为节点i的投票权重。
在式(2)中计算每个节点所拥有的加权投票票数时将投票活跃度作为其中一个加分项考虑,可以对对投票活跃者提供奖励,鼓励更多节点积极参与投票。
在操作S332,将联盟链上所有具有投票资格的节点的加权投票票数加总,得到联盟链加权总票数Wchain,如下式(3)所示:
式(3)中,Wchain为联盟链加权总票数,j为所有具有投票资格的节点总数。
在操作S333,将投同意票的节点的加权投票票数加总,得到投票同意的加权票数W’chain,如下式(4)所示:
式(4)中,k为已执行表决的节点总数。
在操作S334,基于投票同意的加权票数与联盟链加权总票数的比值,得到加权权重比例T’,如下式(5)所示:
从而可以基于该加权权重比例T’与预设阈值的比较,来确定是否允许对第一智能合约执行相应的管理操作。
图4示意性示出了根据本公开另一实施例的联盟链400的网络架构。其中,联盟链400为联盟链100的一个具体实施例。
如图4所示,该联盟链400可以包括M个普通网络节点41和N个排序节点42,其中,M和N分别为大于1的整数。普通网络节点41为联盟链400中具有投票资格的节点。排序节点42用于管理联盟链400中的智能合约,执行根据本公开各个实施例所描述的联盟链智能合约的管理方法。
在一个实施例中,联盟链400中属于不同业务领域的参与机构在链上拥有一个或多个普通网络节点41,该普通网络节点41在智能合约生命周期管理中执行节点投票表决操作。在联盟链400中设置多个排序节点42。每个排序节点42功能相同,由联盟链400统一管理,不属于链上任一业务机构。排序节点42负责执行投票结果统计、交易排序共识和区块打包等操作。从而,联盟连400可以由若干个属于不同业务领域的联盟参与机构的普通网络节点41和属于联盟链400共有的排序节点42组成。
在联盟链400组建阶段,各普通网络节点41和各排序节点42可以从联盟链400的网络系统中获取节点唯一的公私钥对,用于后续交易过程中的加密操作,其中公钥文件保存在联盟链400的网络系统中,私钥文件由节点本身保存。
普通网络节点41分属不同业务领域的机构,主要功能例如可以包括但不限于如下方面:一是在投票表决之前,发起智能合约生命周期管理请求并在联盟链400上进行广播,若请求涉及合约部署或者合约升级,还需要在发起请求前上传智能合约源码包;二是在投票表决阶段,在预先设定的单次投票表决时间窗口内,对待投票表决的智能合约(即,第一智能合约)生命周期管理执行投票同意或不同意并对结果在联盟链上进行广播;三是投票表决结束后,如表决通过,可根据投票结果执行相应的智能合约生命周期管理操作,如表决未通过,则该次智能合约生命周期管理请求终止。
排序节点42属于联盟链400共有,不属于任一业务领域的机构。排序节点42在单次投票表决时间窗口内,负责接收联盟链上的普通网络节点41发送的投票信息(操作S220),根据预先设定的共识算法对投票信息排序、打包后返回普通网络节点41;在全部节点完成投票或者该单次投票表决时间窗口关闭后,根据预先设定的权重每个节点的投票权重和投票计算方法统计联盟连中投同意票的加权权重比例(操作S230),当该加权权重比例超过预先设定的阈值T时,即允许联盟链中的普通网络节点41执行该次智能合约生命周期管理(操作S240)
在每一次投票中,可以从N个排序节点42中选择一个节点作为当前排序节点421,通过该当前排序节点421,通过当前排序节点421通过对称加密方式获得联盟链400上所有具有投票资格的节点中每个节点在单次投票表决时间窗口内对管理请求的投票信息。例如,可以根据表决时间信息,通过预先设定的随机数算法从N个排序节点42中选择出当前排序节点421。
在当前排序节点421与普通网络节点41之间可以生成一对一专属的共享密钥。从而在每个普通网络节点41进行投票时,可以通过共享密钥加密投票信息然后在全网广播。当前排序节点421接收到投票信息后解密得到该投票信息。以此方式实现联盟链400中投票信息的安全传输。
图5示意性示出了根据本公开一实施例的联盟链400中当前排序节点421生成与普通网络节点41的共享密钥的流程图。
如图5所示,根据本公开的实施例,可以应用于联盟链400的智能合约的管理方法,在本公开各个实施例的联盟链智能合约管理方法的基础上,还可以包括当前排序节点421生成与普通网络节点41对应的共享密钥,具体可以操作S510~操作S540。
在操作S510,当前排序节点421接收普通网络节点41广播的第一传输信息M1,第一传输信息M1为对第一密钥分量Key1利用当前排序节点421的公钥PubKord加密,并且可以利用普通网络节点41的私钥PriKpeer作数字签名得到的信息。其中,第一密钥分量Key1为普通网络节点41中预先设置的信息。
在操作S520,当前排序节点421向联盟链400广播第二传输信息M2,第二传输信息M2为对第二密钥分量Key2基于普通网络节点41的公钥PubKpeer加密,并利用当前排序节点42的私钥PriKord作数字签名得到的信息;其中,第二密钥分量Key2为当前排序节点421中预先设置的信息。
在操作S530,当前排序节点421在验签和解密通过后得到第一密钥分量Key1。
在操作S540,当前排序节点421基于第一密钥分量Key1和第二密钥分量Key2,生成共享密钥。
图6示意性示出了根据本公开一实施例的联盟链400中在操作S230中当前排序节点421通过加解密获得投票信息的流程图。
如图6所示,根据本公开的实施例,可以应用于联盟链400的智能合约的管理方法中操作S220可以包括操作S621~操作S622,其中,当前排序节点421通过加解密获得各个普通网络节点41的投票信息。
在操作S621,当前排序节点421接收参与投票的每个普通网络节点41通过共享密钥加密的投票信息;其中,共享密钥为当前排序节点421和每个普通网络节点41一对一共享的密钥。
在操作S622,当前排序节点421基于共享密钥解密加密的投票信息,得到投票信息。
图7示意性示出了根据本公开一实施例的联盟链400中排序节点42的系统结构示意图。
如图7所示,根据本公开实施例,排序节点42可以包括共识排序单元710、投票统计单元720和加密单元730。排序节点42不属于联盟链400上的任一参与机构
共识排序单元710,基本功能是对联盟链400上各普通网络节点42以交易形式执行的投票操作进行交易共识排序,并将共识结果返回普通网络节点41。
投票统计单元720,基本功能是记录联盟链400上各普通网络节点的投票表决结果,并根据预先设定的权重计算方法,判断当前同意票数的比例是否已超过预先设定的阈值,如同意票数超过阈值T,则允许普通网络节点41执行该次智能合约生命周期管理,否则拒绝。
加密单元730,基本功能一是对联盟链400上的常规交易数据进行基于节点公私钥对的非对称加密和解密、数字签名和验证签名操作;二是与执行投票交易的普通网络节点41基于特定的共享密钥生成算法共同生成共享密钥,然后对执行投票交易的普通网络节点41基于共享密钥和对称加密算法加密的投票信息进行解密。
图8示意性示出了根据本公开一实施例联盟链400中普通网络节点41的系统结构示意图。
如图8所示,根据本公开实施例,普通网络节点41可以包括区块链数据库810、投票单元820、确认单元830、智能合约管理单元840、以及加密单元850。普通网络节节点属于联盟链400上的一个参与机构,具有投票资格。
区块链数据库810:基本功能是存储联盟链400的区块链分布式账本数据。
投票单元820:基本功能是对联盟链400上第一智能合约的管理请求执行对应投票表决操作,该投票表决操作以交易形式发起,可以投票同意或者不同意。
确认单元830:基本功能一是校验联盟链400上排序节点42返回的共识排序后的投票交易信息;二是将校验后的投票交易信息区块持久化到本节点的区块链数据库。
智能合约管理单元840:基本功能是对智能合约进行生命周期管理,包括合约源码包上传、联盟投票表决同意后的合约部署、升级或者删除。
加密单元850:基本功能一是对区块链上的常规交易数据进行基于节点公私钥对的非对称加密和解密、数字签名和验证签名操作;二是与当前排序节点421基于特定的共享密钥生成算法共同生成共享密钥,然后基于共享密钥和对称加密算法加密投票信息。
图9示意性示出了根据本公开一实施例的联盟链400中智能合约生命周期管理的流程图。
如图9所示,根据本公开实施例联盟链400中智能合约生命周期管理的实施流程可以包括步骤S901~步骤S910。
步骤S901:在联盟链400上设置普通网络节点41对智能合约生命周期管理进行投票的加权投票权重计算方法以及单次投票表决时间窗口。加权投票权重计算方法可以包括表1所示的业务领域与节点关系权重、以及加权权重比例的算法(例如,式(1)~式(5))。
加权投票权重计算方法和单次投票表决时间窗口均为系统级别参数,在联盟链400组网时即需要在区块链系统上设定,保存在联盟链的排序节点42上;后续如需调整该参数,需要经过系统级别的参数变更。
步骤S902:在联盟链400上,如某参与机构需要部署或升级某一业务领域智能合约(即,第一智能合约),则通过属于机构的某个普通网络节点41的智能合约管理单元上传合约源码包,同时设置该智能合约所属的业务领域的信息;如需要删除已部署上链的智能合约,则无需上传源码包,直接进入下一步骤发起交易请求。
步骤S903:参与机构通过某个属于该机构的普通网络节点41(如果是合约部署和升级,则为上传合约源码包的普通网络节点),发起相应智能合约的生命周期管理请求,请求信息可以包括智能合约源码包、该智能合约所属的业务领域的信息以及当前时刻的时间戳,然后可以通过交易形式将该管理请求进行全网广播。
步骤S904:在联盟链400上的所有排序节点42接收到上述的智能合约生命周期管理请求后,根据请求信息中智能合约所属业务领域信息从表1获得当前联盟链400上所有在线的普通网络节点41的投票权重,以及联盟链400上当前所有在线的普通网络节点41的节点投票活跃度(参考式(1),计算在该次投票流程中,联盟链400上当前每个在线的普通网络节点41的加权投票票数(例如,式(2))和联盟链400的联盟链加权总票数(例如,式(3))。
联盟链400上的所有排序节点42可以根据请求信息中的时间戳通过预先设定的随机数算法随机选取其中一个排序节点O[i]作为当前排序节点421,由当前排序节点421对普通网络节点41在联盟链400中广播的投票交易信息进行加解密,保证投票交易信息的传输安全性。该随机数算法例如可以如下式(6)表示。
O[i]=Random(timestamp) (6)
步骤S905:在联盟链400上的除发起节点以外的普通网络节点41接收到发起节点广播的智能合约生命周期管理请求后,在单次投票表决时间窗口内,通过节点的投票单元可以对该请求表决同意或者反对。投票信息以交易请求形式,在节点的加密单元内,通过与当前排序节点421利用专属的共享密钥,进行对称加密后在联盟链400上广播。如已超过单次投票表决时间窗口且未投票,此时该节点无法再投票,且视为该节点否决该次智能合约生命周期管理请求。
步骤S906:在联盟链400上的所有排序节点42接收普通网络节点41的投票交易信息后,当前排序节点421通过节点的加密单元,使用与普通网络节点41对应的共享密钥解密该投票交易信息。解密成功后通过所有排序节点42的共识排序单元对该交易信息排序和内部共识。共识完成后当前排序节点421打包该投票交易信息,并对该投票交易信息通过该节点的私钥做数字签名,然后在联盟链400广播。
步骤S907:联盟链400上的所有普通网络节点41接收当前排序节点421广播的投票交易信息和数字签名后,通过请求获取联盟链400上的当前排序节点421的公钥,在节点的确认单元对交易信息验签,验签通过后将投票交易信息持久化至普通网络节点41内部的区块链数据库。
步骤S908:当所有在线普通网络节点41完成投票,或已超过单次投票表决时间窗口后,当前排序节点421通过节点的投票统计单元,根据预设的投票权重计算方法,统计联盟链400上已执行表决并投票同意的加权投票票数W’chain,以及当前投票同意的加权权重比例T’。
步骤S909:如当前投票同意的加权权重比例大于或等于预先设定的阈值时(即T’≥T),允许发起请求的普通网络节点41执行该次智能合约生命周期管理,否则拒绝。当前排序节点421将允许或拒绝的结果广播全网。
步骤S910:如当前智能合约生命周期管理请求获得联盟链400各参与机构投票通过,则发起投票请求的普通网络节点41可以通过节点的智能合约管理单元,对智能合约进行合约部署、升级或删除的操作。
图10示意性示出了根据本公开一实施例的联盟链400中对称加密密钥生成流程图。
如图10所示,在当前排序节点421与每个普通网络节点41之间对称加密密钥的生成可以包括步骤S1001~步骤S1011。其中,该共享密钥的生成过程可以是在发起节点向全网发起智能合约的管理请求之后,普通网络节点41进行投票之前进行。
步骤S1001:联盟链400上执行投票交易的普通网络节点41通过请求获得链上的当前排序节点421的公钥PubKord,使用该公钥通过国密SM2算法加密预先设置的第一密钥分量Key1,得到第一加密信息Enc1;第一密钥分量Key1是普票网络节点中预先设置的信息。
步骤S1002:普通网络节点41使用节点的私钥PriKpeer,通过国密SM2算法对上述第一加密信息Enc1做数字签名,得到第一签名信息Sign1,令第一传输信息M1如式(7)所示:
M1=(Enc1||Sign1) (7)
其中||表示连接操作;
步骤S1003:普通网络节点41向当前排序节点421发送该第一传输信息M1。
步骤S1004:联盟链400上当前排序节点421接收第一传输信息M1,通过请求获取链上普通网络节点41的公钥PubKpeer对M1中的第一签名信息Sign1验签,如验签通过则证明M1是由该普通网络节点41发送,可以进入下一步骤。
步骤S1005:当前排序节点421使用本身持有的节点私钥PriKord解密第一传输信息M1中的第一加密信息Enc1,得到普通网络节点41的第一密钥分量Key1。
步骤S1006:当前排序节点421使用从链上获取的普通网络节点41的节点公钥PubKpeer,通过国密SM2算法加密预先设置的第二密钥分量Key2,得到第二加密信息Enc2。第二密钥分类Key2是当前排序节点421中预先设置的信息。
步骤S1007:当前排序节点421使用本身持有的节点私钥PriKord,通过国密SM2算法对上述第二加密信息Enc2做数字签名,得到第二签名信息Sign2,令第二传输信息M2如式(8)所示。
M2=(Enc2||Sign2) (8)
其中||表示连接操作。
步骤S1008:当前排序节点421向普通网络节点41发送该第二传输信息M2。
步骤S1009:普通网络节点41接收该第二传输信息M2,通过请求获取链上当前排序节点421的公钥PubKord对M2中的第二签名信息Sign2验签,如验签通过则证明M2是由当前排序节点421发送,可以进入下一步骤。
步骤S1010:普通网络节点41使用本身持有的节点私钥PriKpeer解密第二传输信息M2中的第二加密信息Enc2,得到当前排序节点421的第二密钥分量Key2。
步骤S1011:普通网络节点41和当前排序节点421基于第一密钥分量Key1和第二密钥分量Key2执行国密SM3杂凑算法,生成共享密钥Keyshare,算法公式如下式(9):
C[0]=SM3_Hash(Key1)
C[n]=SM3_HMACC(n-1)(SM3_Hash(Key2))
Keyshare=SM3_HMACSM3_Hash(Key1|Key2)(C0+C1)
(9)
其中,Key1表示第一密钥分量Key1,Key2表示第二密钥分量Key2,n为大于0的正整数,SM3_Hash表示采用国密SM3杂凑算法的哈希函数,SM3_HMAC是指与密钥相关的采用SM3算法的哈希运算,||表示连接操作。
图11示意性示出了根据本公开一实施例的联盟链400中节点投票信息传输流程图。
如图11所示,联盟链400中节点投票信息传输流程可以包括步骤S1101~步骤S1103
步骤S1101:联盟链400上的执行投票交易请求的普通网络节点41基于共享密钥Keyshare,采用国密SM4算法的EBC模式加密投票传输信息Mvote,获取密文EMvote如式(10)所示:
EMvote=SM4_EBC(Mvote,Keyshare) (10)
步骤S1102:普通网络节点41将密文广播到联盟链400;
步骤S1103:联盟链400上的当前排序节点421基于共享密钥Keyshare,采用SM4算法的EBC模式解密密文EMvote,最终获取普通网络节点41的投票信息如式(11)所示:
Mvote=SM4_EBC(EMvote,Keyshare) (11)
根据本公开的实施例,在联盟链400中投票信息传输过程中,普通网络节点41和当前排序节点421的投票交易数据通过特定的共享密钥和对称加密算法加密,有效提高了投票数据的安全性和隐私性。其中,可以通过采用国密SM2、SM3及SM4算法,安全性由国家背书,确保了数据加解密的可信赖性。
图12示意性示出了根据本公开实施例的联盟链智能合约的管理装置的框图。该装置1200可以设置于上述的联盟链100或400中。
如图12所示,根据本公开实施例的联盟链智能合约的管理装置1200可以包括第一接收模块1210、第一获取模块1220、计算模块1230、以及管理操作模块1240。根据本公开另一实施例,该管理装置1200还可以进一步包括权重设置模块1250。
第一接收模块1210用于接收针对联盟链上的第一智能合约的管理请求,管理请求包括第一智能合约所属的第一业务领域的信息、以及表决时间信息,表决时间信息用于确定联盟链中的节点对管理请求进行投票表决的单次投票表决时间窗口。
第一获取模块1220用于获取联盟链上所有具有投票资格的节点中每个节点在单次投票表决时间窗口内对管理请求的投票信息、以及每个节点在本次投票中的投票权重;其中,属于第一业务领域的节点比不属于第一业务领域的节点具有更大的投票权重。
计算模块1230用于基于每个节点的投票权重、以及每个节点的投票信息,计算联盟连中针对管理请求投同意票的加权权重比例。
管理操作模块1240用于当加权权重比例大于或等于预设的阈值时,允许在联盟链中对第一智能合约执行管理请求对应的管理操作。
权重设置模块1250用于根据联盟链上所有具有投票资格的节点中每个节点所属的业务领域与第一业务领域的相关性,设置每个节点的投票权重。
该管理装置1200可以用于实现根据本公开各个实施例的联盟链智能合约的管理方法,用于管理联盟链上的智能合约的部署、升级、或删除等。在对联盟链上的智能合约进行管理时,需要联盟链上的各个节点进行投票表决,其中,与所管理的智能合约属于同一业务领域的节点比不属于该业务领域的节点具有更大的投票权重,提升投票表决的专业性。
根据本公开的实施例的模块、子模块、单元、子单元中的任意多个、或其中任意多个的至少部分功能可以在一个模块中实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以被拆分成多个模块来实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式的硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,根据本公开实施例的模块、子模块、单元、子单元中的一个或多个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
例如,第一接收模块1210、第一获取模块1220、计算模块1230、管理操作模块1240、权重设置模块1250、共识排序单元710、投票统计单元720、加密单元730、投票单元820、确认单元830、合约管理单元840、以及加密单元850中的任意多个可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,第一接收模块1210、第一获取模块1220、计算模块1230、管理操作模块1240、权重设置模块1250、共识排序单元710、投票统计单元720、加密单元730、投票单元820、确认单元830、合约管理单元840、以及加密单元850中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,第一接收模块1210、第一获取模块1220、计算模块1230、管理操作模块1240、权重设置模块1250、共识排序单元710、投票统计单元720、加密单元730、投票单元820、确认单元830、合约管理单元840、以及加密单元850中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
图13示意性示出了适于实现根据本公开实施例的联盟链智能合约的管理方法的电子设备1300的框图。图13示出的电子设备1300仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图13所示,根据本公开实施例的电子设备1300包括处理器1301,其可以根据存储在只读存储器(ROM)1302中的程序或者从存储部分1308加载到随机访问存储器(RAM)1303中的程序而执行各种适当的动作和处理。处理器1301例如可以包括通用微处理器(例如CPU)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC)),等等。处理器1301还可以包括用于缓存用途的板载存储器。处理器1301可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
在RAM 1303中,存储有电子设备1300操作所需的各种程序和数据。处理器1301、ROM 1302以及RAM 1303通过总线1304彼此相连。处理器1301通过执行ROM 1302和/或RAM1303中的程序来执行根据本公开实施例的方法流程的各种操作。需要注意,所述程序也可以存储在除ROM 1302和RAM 1303以外的一个或多个存储器中。处理器1301也可以通过执行存储在所述一个或多个存储器中的程序来执行根据本公开实施例的方法流程的各种操作。
根据本公开的实施例,电子设备1300还可以包括输入/输出(I/O)接口1305,输入/输出(I/O)接口1305也连接至总线1304。电子设备1300还可以包括连接至I/O接口1305的以下部件中的一项或多项:包括键盘、鼠标等的输入部分1306;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分1307;包括硬盘等的存储部分1308;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分1309。通信部分1309经由诸如因特网的网络执行通信处理。驱动器1310也根据需要连接至I/O接口1305。可拆卸介质1311,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1310上,以便于从其上读出的计算机程序根据需要被安装入存储部分1308。
根据本公开的实施例,根据本公开实施例的方法流程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读存储介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分1309从网络上被下载和安装,和/或从可拆卸介质1311被安装。在该计算机程序被处理器1301执行时,执行本公开实施例的系统中限定的上述功能。根据本公开的实施例,上文描述的系统、设备、装置、模块、单元等可以通过计算机程序模块来实现。
本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。
根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。例如,根据本公开的实施例,计算机可读存储介质可以包括上文描述的ROM 1302和/或RAM 1303和/或ROM 1302和RAM 1303以外的一个或多个存储器。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本公开的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。本公开的范围由所附权利要求及其等同物限定。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。
Claims (12)
1.一种联盟链智能合约的管理方法,包括:
接收针对所述联盟链上的第一智能合约的管理请求,所述管理请求包括所述第一智能合约所属的第一业务领域的信息、以及表决时间信息,所述表决时间信息用于确定所述联盟链中的节点对所述管理请求进行投票表决的单次投票表决时间窗口;
获取所述联盟链上所有具有投票资格的节点中每个节点在所述单次投票表决时间窗口内对所述管理请求的投票信息、以及每个节点在本次投票中的投票权重;其中,属于所述第一业务领域的节点比不属于所述第一业务领域的节点具有更大的投票权重;
基于每个节点的投票权重、以及每个节点的投票信息,计算所述联盟连中针对所述管理请求投同意票的加权权重比例;以及
当所述加权权重比例大于或等于预设的阈值时,允许在所述联盟链中对所述第一智能合约执行所述管理请求对应的管理操作。
2.根据权利要求1所述的方法,其中,所述方法还包括:
根据所述联盟链上所有具有投票资格的节点中每个节点所属的业务领域与所述第一业务领域的相关性,设置每个节点的投票权重。
3.根据权利要求1所述的方法,其中,所述基于每个节点的投票权重、以及每个节点的投票信息,计算所述联盟连中针对所述管理请求投同意票的加权权重比例包括:
基于每个节点的投票权重,计算每个节点所拥有的加权投票票数;
将所述联盟链上所有具有投票资格的节点的所述加权投票票数加总,得到联盟链加权总票数;
将投同意票的节点的所述加权投票票数加总,得到投票同意的加权票数;以及
基于所述投票同意的加权票数与所述联盟链加权总票数的比值,得到所述加权权重比例。
5.根据权利要求4所述的方法,其中,所述加权投票票数为:
W[i]=Vbase*(1+Pbus[i])+Avote[i]
其中,
W[i]为节点i的加权投票票数;
Vbase为所述联盟链上所有具有投票资格的节点均具有的基础权重;
Pbus[i]为节点i的投票权重。
6.根据权利要求1所述的方法,其中,所述联盟链包括M个普通网络节点和N个排序节点,其中,M和N分别为大于1的整数,其中:
所述普通网络节点为所述联盟链中具有投票资格的节点;以及
所述方法由所述排序节点执行。
7.根据权利要求6所述的方法,其中,所述方法还包括:
根据所述表决时间信息,通过预先设定的随机数算法从N个所述排序节点中选择出所述当前排序节点;其中,通过所述当前排序节点通过对称加密方式获得所述联盟链上所有具有投票资格的节点中每个节点在所述单次投票表决时间窗口内对所述管理请求的投票信息。
8.根据权利要求6所述的方法,其中,所述获取所述联盟链上所有具有投票资格的节点中每个节点在所述单次投票表决时间窗口内对所述管理请求的投票信息还包括:
所述当前排序节点接收参与投票的每个所述普通网络节点通过共享密钥加密的投票信息;其中,所述共享密钥为所述当前排序节点和每个所述普通网络节点一对一共享的密钥;以及
所述当前排序节点基于所述共享密钥解密所述加密的投票信息,得到所述投票信息。
9.根据权利要求8所述的方法,其中,所述方法还包括所述当前排序节点生成与所述普通网络节点共享的所述共享密钥,包括:
接收所述普通网络节点广播的第一传输信息,所述第一传输信息为对第一密钥分量利用所述当前排序节点的公钥加密,并利用所述普通网络节点的私钥作数字签名得到的信息;其中,所述第一密钥分量为所述普通网络节点中预先设置的信息;
向所述联盟链广播第二传输信息,所述第二传输信息为对第二密钥分量基于所述普通网络节点的公钥加密,并利用所述当前排序节点的私钥作数字签名得到的信息;其中,所述第二密钥分量为所述当前排序节点中预先设置的信息;
在验签和解密通过后得到所述第一密钥分量;以及
基于所述第一密钥分量和所述第二密钥分量,生成所述共享密钥。
10.一种联盟链智能合约的管理装置,包括:
第一接收模块,用于接收针对所述联盟链上的第一智能合约的管理请求,所述管理请求包括所述第一智能合约所属的第一业务领域的信息、以及表决时间信息,所述表决时间信息用于确定所述联盟链中的节点对所述管理请求进行投票表决的单次投票表决时间窗口;
第一获取模块,用于获取所述联盟链上所有具有投票资格的节点中每个节点在所述单次投票表决时间窗口内对所述管理请求的投票信息、以及每个节点在本次投票中的投票权重;其中,属于所述第一业务领域的节点比不属于所述第一业务领域的节点具有更大的投票权重;
计算模块,用于基于每个节点的投票权重、以及每个节点的投票信息,计算所述联盟连中针对所述管理请求投同意票的加权权重比例;以及
管理操作模块,用于当所述加权权重比例大于或等于预设的阈值时,允许在所述联盟链中对所述第一智能合约执行所述管理请求对应的管理操作。
11.一种电子设备,包括:
一个或多个存储器,存储有可执行指令;以及
一个或多个处理器,执行所述可执行指令,以实现根据权利要求1~9中任一项所述的方法。
12.一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行根据权利要求1~9中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011498812.5A CN112688775B (zh) | 2020-12-17 | 2020-12-17 | 联盟链智能合约的管理方法和装置、电子设备、及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011498812.5A CN112688775B (zh) | 2020-12-17 | 2020-12-17 | 联盟链智能合约的管理方法和装置、电子设备、及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112688775A true CN112688775A (zh) | 2021-04-20 |
CN112688775B CN112688775B (zh) | 2023-01-06 |
Family
ID=75448951
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011498812.5A Active CN112688775B (zh) | 2020-12-17 | 2020-12-17 | 联盟链智能合约的管理方法和装置、电子设备、及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112688775B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113096299A (zh) * | 2021-04-28 | 2021-07-09 | 浙江数秦科技有限公司 | 一种基于联盟链的不记名电子投票方法 |
CN114172913A (zh) * | 2021-11-26 | 2022-03-11 | 王树松 | 区块链共识方法、装置、设备、系统及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108768665A (zh) * | 2018-07-02 | 2018-11-06 | 上海达家迎信息科技有限公司 | 区块链生成方法、装置、计算机设备以及存储介质 |
CN108965399A (zh) * | 2018-06-25 | 2018-12-07 | 百度在线网络技术(北京)有限公司 | 智能合约的执行方法、装置、设备及存储介质 |
CN109559120A (zh) * | 2018-12-03 | 2019-04-02 | 国网电子商务有限公司 | 基于权重的区块链共识方法、系统、存储介质及电子设备 |
CN109905244A (zh) * | 2018-12-26 | 2019-06-18 | 顺丰科技有限公司 | 联盟的管理方法和装置 |
US20200059369A1 (en) * | 2017-05-16 | 2020-02-20 | Peking University Shenzhen Graduate School | Determining consensus by parallel proof of voting in consortium blockchain |
CN111369730A (zh) * | 2020-02-20 | 2020-07-03 | 腾讯科技(深圳)有限公司 | 基于区块链的投票表决处理方法和装置 |
-
2020
- 2020-12-17 CN CN202011498812.5A patent/CN112688775B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200059369A1 (en) * | 2017-05-16 | 2020-02-20 | Peking University Shenzhen Graduate School | Determining consensus by parallel proof of voting in consortium blockchain |
CN108965399A (zh) * | 2018-06-25 | 2018-12-07 | 百度在线网络技术(北京)有限公司 | 智能合约的执行方法、装置、设备及存储介质 |
CN108768665A (zh) * | 2018-07-02 | 2018-11-06 | 上海达家迎信息科技有限公司 | 区块链生成方法、装置、计算机设备以及存储介质 |
CN109559120A (zh) * | 2018-12-03 | 2019-04-02 | 国网电子商务有限公司 | 基于权重的区块链共识方法、系统、存储介质及电子设备 |
CN109905244A (zh) * | 2018-12-26 | 2019-06-18 | 顺丰科技有限公司 | 联盟的管理方法和装置 |
CN111369730A (zh) * | 2020-02-20 | 2020-07-03 | 腾讯科技(深圳)有限公司 | 基于区块链的投票表决处理方法和装置 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113096299A (zh) * | 2021-04-28 | 2021-07-09 | 浙江数秦科技有限公司 | 一种基于联盟链的不记名电子投票方法 |
CN113096299B (zh) * | 2021-04-28 | 2022-05-24 | 浙江数秦科技有限公司 | 一种基于联盟链的不记名电子投票方法 |
CN114172913A (zh) * | 2021-11-26 | 2022-03-11 | 王树松 | 区块链共识方法、装置、设备、系统及存储介质 |
CN114172913B (zh) * | 2021-11-26 | 2024-05-14 | 王树松 | 区块链共识方法、装置、设备、系统及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112688775B (zh) | 2023-01-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11533164B2 (en) | System and method for blockchain-based cross-entity authentication | |
US11025435B2 (en) | System and method for blockchain-based cross-entity authentication | |
EP3788523B1 (en) | System and method for blockchain-based cross-entity authentication | |
CN108429759B (zh) | 去中心化存储安全实现方法 | |
WO2021000420A1 (en) | System and method for blockchain-based cross-entity authentication | |
KR102002509B1 (ko) | 공증센터를 포함하는 프라이빗 블록체인 시스템 및 이의 공증방법 | |
US20190333031A1 (en) | System, method, and computer program product for validating blockchain or distributed ledger transactions in a service requiring payment | |
CN115699000A (zh) | 通过计算机网络进行安全的多边数据交换的方法、装置和计算机可读介质 | |
CN111819827A (zh) | 用于控制区块链上的资源的访问和完整性的方法和系统 | |
US20220021528A1 (en) | Secure storage techniques utilizing consortium distributed ledgers | |
CN103220141B (zh) | 一种基于组密钥策略的敏感数据保护方法和系统 | |
CN112688775B (zh) | 联盟链智能合约的管理方法和装置、电子设备、及介质 | |
CN110310094A (zh) | 基于区块链的人才共享方法及系统、区块链网络 | |
CN115270145A (zh) | 一种基于联盟链和联邦学习的用户窃电行为检测方法及系统 | |
Hong et al. | Service outsourcing in F2C architecture with attribute-based anonymous access control and bounded service number | |
CN114978635A (zh) | 跨域认证方法及装置、用户注册方法及装置 | |
CN114500119A (zh) | 区块链服务的调用方法和装置 | |
Wang et al. | Housing rental scheme based on redactable blockchain | |
Mershad et al. | Lightweight blockchain solutions: Taxonomy, research progress, and comprehensive review | |
Keshavarzkalhori et al. | Federify: a verifiable federated learning scheme based on zksnarks and blockchain | |
CN114721749A (zh) | 基于区块链的投票表决方法、装置、存储介质及电子设备 | |
Xu et al. | Blockchain‐Based Trust Auction for Dynamic Virtual Machine Provisioning and Allocation in Clouds | |
Gabay | A privacy framework for decentralized applications using blockchains and zero knowledge proofs | |
Louridas et al. | Requirements and interface design | |
Patel et al. | A Study of Blockchain’s Architecture and it’s Applications |
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 |