CN115617918B - 分片式智能合约运行方法、装置、***和储存介质 - Google Patents

分片式智能合约运行方法、装置、***和储存介质 Download PDF

Info

Publication number
CN115617918B
CN115617918B CN202211628996.1A CN202211628996A CN115617918B CN 115617918 B CN115617918 B CN 115617918B CN 202211628996 A CN202211628996 A CN 202211628996A CN 115617918 B CN115617918 B CN 115617918B
Authority
CN
China
Prior art keywords
running
groups
intelligent contracts
workload
intelligent
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.)
Active
Application number
CN202211628996.1A
Other languages
English (en)
Other versions
CN115617918A (zh
Inventor
高智敏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Benavi Technology Co ltd
Original Assignee
Shenzhen Benavi Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shenzhen Benavi Technology Co ltd filed Critical Shenzhen Benavi Technology Co ltd
Priority to CN202211628996.1A priority Critical patent/CN115617918B/zh
Publication of CN115617918A publication Critical patent/CN115617918A/zh
Application granted granted Critical
Publication of CN115617918B publication Critical patent/CN115617918B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

本申请公开了一种分片式智能合约运行方法、装置、***和储存介质,应用于区块链***,其中方法包括:在收集到n个待运行的智能合约的情况下,使用预设平衡分组算法,依据所述n个待运行的智能合约的工作量及单位效益,将所述n个待运行的智能合约分成m个运行组,所述n和所述m为大于1的整数;将用户随机分配到所述m个运行组,所述m个运行组里的用户并发执行对应的智能合约;合并所述m个运行组的执行结果到主区块链;可以解决分片制智能合约运行的公平与安全问题。

Description

分片式智能合约运行方法、装置、***和储存介质
技术领域
本发明涉及区块链技术领域,尤其是涉及一种分片式智能合约运行方法、装置、***和储存介质。
背景技术
区块链作为一种新型的数据管理方法,其去中心化、高效安全的数据交换、数据可溯源、不可篡改等特点使得其在需要多节点多组织协同工作的业务场景(如海洋运输、供应链金融管理等)被广泛接受与应用。其中,智能合约的出现使得区块链上的数据管理更加规范化。智能合约是运行的区块链上的计算机程序,其封装了业务需要的约定及数据交换接口。智能合约的发展使得区块链的数据不仅仅局限于收与发。利用高级编程语言(如Go、Solidity等),针对不同的业务开发不同的智能合约以针对不同的业务场景。常见的智能合约应用有数据存证(司法、版权等)及交易溯源(保险、供应链金融等)。
然而,根据区块链的节点的数量及其计算性能,智能合约的运行结果在不同节点上得到共识会有一定的延迟,这种延迟严重影响智能合约的可扩展性。目前大部分区块链***采用的最直接的解决方法是“分片制运行”,即允许把节点分化成若干个组,即每个分片实行自我管理,记录自己的交易数据。分片制在一定程度上解决了智能合约的可扩展性问题,但目前大部分的分片制方案还不够合理,未考虑到众多运行因素影响。
发明内容
本申请提供了一种分片式智能合约运行方法、装置、集装箱锁和介质。
第一方面,提供了一种分片式智能合约运行方法,应用于区块链***,所述方法包括:
在收集到n个待运行的智能合约的情况下,使用预设平衡分组算法,依据所述n个待运行的智能合约的工作量及单位效益,将所述n个待运行的智能合约分成m个运行组,所述n和所述m为大于1的整数;
将用户随机分配到所述m个运行组,所述m个运行组里的用户并发执行对应的智能合约;
合并所述m个运行组的执行结果到主区块链。
可选的,所述使用预设平衡分组算法,依据所述n个待运行的智能合约的工作量及单位收益,将所述n个待运行的智能合约分成m个运行组,包括:
获取把所述n个待运行的智能合约的集合J分成所述m个运行组(J1…Jm),使得其满足以下条件的目标解:
Figure 458424DEST_PATH_IMAGE001
Figure 431059DEST_PATH_IMAGE002
其中,
Figure DEST_PATH_IMAGE003
;每个所述待运行的智能合约对应一个任务j,每个所述任务j 包括两个属性:
所述wj表示所述工作量,所述工作量为完成所述任务消耗的资源,
所述rj表示所述单位效益,所述单位效益为每消耗一个单位资源带来的收益。
可选的,所述方法包括:
使用整数线性规划来获取所述目标解;所述整数线性规划的约束包括:
目标:
Figure 529465DEST_PATH_IMAGE004
每个任务j都必须分配到某个组Ji;
每两个任务之间的工作量之比小于
Figure DEST_PATH_IMAGE005
每两个任务之间的总效益之比小于
Figure 312876DEST_PATH_IMAGE006
可选的,所述将用户随机分配到所述m个运行组,包括:
基于随机数产生密钥;
使用所述密钥对用户对应的公钥进行加密,得到加密结果,每个所述加密结果用一个整数表示;
将所述加密结果的密文空间分成所述m个区间,每个所述加密结果有
Figure DEST_PATH_IMAGE007
的概率落 到所述m个区间中的一个区间,以将所述用户随机分配到所述m个运行组,所述m个区间与所 述m个运行组一一对应。
可选的,所述使用所述密钥对用户对应的公钥进行加密之前,所述方法还包括:
若所述用户对应的公钥的长度不能被预设值整除,则在所述公钥前填充0使所述公钥的长度为所述预设值的整数倍。
可选的,所述合并所述m个运行组的执行结果到主区块链,包括:
所述m个运行组中智能合约的执行结果通过拜占庭容错算法达成共识。
可选的,在所述达成共识的过程中,所述方法还包括:
通过组签名方法压缩签名消息的长度。
第二方面,提供了一种分片式智能合约运行装置,包括:
分组模块,用于在收集到n个待运行的智能合约的情况下,使用预设平衡分组算法,依据所述n个待运行的智能合约的工作量及单位效益,将所述n个待运行的智能合约分成m个运行组,所述n和所述m为大于1的整数;
分配模块,用于将用户随机分配到所述m个运行组,所述m个运行组里的用户并发执行对应的智能合约;
共识模块,用于合并所述m个运行组的执行结果到主区块链。
第三方面,提供了一种区块链***,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如第一方面及其任一种可能的实现方式的步骤。
第四方面,提供了一种计算机存储介质,所述计算机存储介质存储有一条或多条指令,所述一条或多条指令适于由处理器加载并执行如上述第一方面及其任一种可能的实现方式的步骤。
本申请实施例提供的一种分片式智能合约运行方法,应用于区块链***,在收集到n个待运行的智能合约的情况下,使用预设平衡分组算法,依据所述n个待运行的智能合约的工作量及单位效益,将所述n个待运行的智能合约分成m个运行组,所述n和所述m为大于1的整数;将用户随机分配到所述m个运行组,所述m个运行组里的用户并发执行对应的智能合约;合并所述m个运行组的执行结果到主区块链,通过平衡分组算法合理分配智能合约的执行,并可以解决分片制智能合约运行的公平与安全问题。
附图说明
为了更清楚地说明本申请实施例或背景技术中的技术方案,下面将对本申请实施例或背景技术中所需要使用的附图进行说明。
图1为本申请实施例提供的一种分片式智能合约运行方法的流程示意图;
图2为本申请实施例提供的一种公平的分片式智能合约运行装置的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、***、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
为了更清楚地说明本申请实施例中的方法,此处先对本申请涉及到的术语进行统一介绍:
节点:维护区块链***运行的计算机(包括服务器、个人电脑、移动终端等)。本申请实施例中,节点特指需要运行智能合约并验证智能合约结果的验证节点。
用户:实际操作节点的实体。一个节点可以有多个不同操作权限的用户。本申请实施例中,用户特指有智能合约运行、验证权限的用户。
工作量:完成一次或者批量智能合约运行所需要的工作量(如CPU资源、电费等)。
效益:完成一次或者批量智能合约运行所得的回报。在公共区块链上,此效益可以为该链激励机制产生的加密货币。在更多的联盟链业务场景中,效益可以是节点累计的信用、积分等,本申请实施例对此不做限制。
本申请实施例中的智能合约(Smart contract )是一种旨在以信息化方式传播、验证或执行合同的计算机协议。智能合约允许在没有第三方的情况下进行可信交易,这些交易可追踪且不可逆转。
下面结合本申请实施例中的附图对本申请实施例进行描述。
可以参见图1,图1为本申请实施例提供的一种分片式智能合约运行方法的流程示意图。该方法可包括:
101、在收集到n个待运行的智能合约的情况下,使用预设平衡分组算法,依据上述n个待运行的智能合约的工作量及单位效益,将上述n个待运行的智能合约分成m个运行组,上述n和上述m为大于1的整数。
本申请中的分片式智能合约运行方法可以用于区块链***。具体的,提供一种顾及到公平与安全性的分片制智能合约运行方法,可以由区块链***中的管理节点或者区块链服务器等执行。
本申请实施例中的方法主要在于:
区块链***在持续运行的同时收集待运行的智能合约;
在收集到n个智能合约后,可以根据预设平衡分组算法,依据总工作量及总收益分成m个运行组(组S1到Sm);
用户可随机分配到组S1到Sm。
组S1到Sm里的用户并发执行其中的智能合约,并在组内达成共识,将结果归并到主区块链。
本申请实施例中的方法流程重点在于智能合约的分组方法及用户的随机分配方法。
以下对上述预设平衡分组算法即智能合约的分组算法进行介绍。
在一种可选的实施方式中,上述步骤101包括:
获取把上述n个待运行的智能合约的集合J分成上述m个运行组(J1…Jm),使得其满足以下条件的目标解:
Figure 372099DEST_PATH_IMAGE008
Figure 273059DEST_PATH_IMAGE002
其中,
Figure 819447DEST_PATH_IMAGE009
;每个上述待运行的智能合约对应一个任务j,每个上述任务j 包括两个属性:
上述wj表示上述工作量,上述工作量为完成上述任务消耗的资源。
上述rj表示上述单位效益,上述单位效益为每消耗一个单位资源带来的收益。
具体的,平衡分组算法问题定义如下:
已知集合J有n个任务,每个任务j有两个属性:
a、工作量wj表示完成该任务消耗的资源;
b、单位效益rj表示每消耗一个单位资源带来的收益,所以完成该任务j的总收益是rjwj
目标:把集合J分成m组(J1…Jm),使得其满足:
Figure 882080DEST_PATH_IMAGE010
其中
Figure 897441DEST_PATH_IMAGE011
。该问题是个NP困难问题(NP-hard problem),是指给定一个问题 A,如果任何NP问题均在多项式时间多一归约、对数空间多一归约或多项式时间图灵归约下 归约于A,那么称A是一个NP困难问题。
要解决这个问题,可以使用整数线性规划来找到较优解甚至最优解(可以视实际时间需求而定)。
进一步可选的,上述方法包括:
使用整数线性规划来获取上述目标解;上述整数线性规划的约束包括:
目标:
Figure 336513DEST_PATH_IMAGE012
每个任务j都必须分配到某个组Ji;
每两个任务之间的工作量之比小于
Figure 878352DEST_PATH_IMAGE005
每两个任务之间的总效益之比小于
Figure 3565DEST_PATH_IMAGE013
具体的,整数线性规划程序的约束如下(双目标优化):
目标:
Figure 365277DEST_PATH_IMAGE012
约束1:
Figure 483405DEST_PATH_IMAGE014
约束2:
Figure 614172DEST_PATH_IMAGE015
约束3:
Figure 284188DEST_PATH_IMAGE016
约束4:
Figure 257829DEST_PATH_IMAGE017
这里,
Figure 38703DEST_PATH_IMAGE018
表示任务j是否被分配到组Ji。例如,如果
Figure 430502DEST_PATH_IMAGE019
=1,则表示任务j被分配 到组Ji;反之
Figure 271419DEST_PATH_IMAGE018
=0。
约束1说明每个任务j都必须分配到某个组Ji
约束2说明每两个任务之间的工作量之比小于
Figure 499400DEST_PATH_IMAGE020
约束3说明每两个任务之间的总效益之比小于
Figure 349544DEST_PATH_IMAGE021
约束4表示
Figure 127007DEST_PATH_IMAGE022
的值域(整数规划)。
将实际收集的智能合约的工作量及单位收益作为参数代入以上整数规划程序中可得较优解或最优解(可视实际时间需求而定)。
通过上述预设平衡分组算法后,区块链收集到的n个任务会被分配到m个总工作量、总收益相近的运行组里。因此,用户无论被分配到哪个运行组,其成本与收益都是相近的,从而大幅减少因“怠工”导致业务延迟的情况出现。
可选的,本申请实施例中的预设平衡分组算法中,涉及到的整数规划问题还可以采用其它求解方法,如贪心算法等,本申请实施例对此不做限制。
102、将用户随机分配到上述m个运行组,上述m个运行组里的用户并发执行对应的智能合约。
通过上述预设平衡分组算法后,区块链收集到的n个任务会被分配到m个总工作量、总收益相近的运行组里。下一步,本申请实施例中将可以进一步地解决同一节点的用户都被分配到同一组,从而导致其控制智能合约执行结果带来的安全性问题。解决上述问题的关键是要把用户随机地分配到每一个组,使节点无法预测最后的分配情况。
在一种可选的实施方式中,上述步骤102包括:
21、基于随机数产生密钥;
22、使用上述密钥对用户对应的公钥进行加密,得到加密结果,每个上述加密结果用一个整数表示;
23、将上述加密结果的密文空间分成上述m个区间,每个上述加密结果有
Figure 529039DEST_PATH_IMAGE023
的概率 落到上述m个区间中的一个区间,以将上述用户随机分配到上述m个运行组,上述m个区间与 上述m个运行组一一对应。
具体的,对于上述步骤21,可以先产生随机数,再基于随机数生成密钥。由于区块链的去中心化的特性,不能够以来某一个节点来产生随机数。可以依赖区块链本身的一些随机特性来产生这个随机种子,例如工作量证明机制中nonce、联盟链中的某个未来块的时间戳等,本申请实施例对此不做限制。决定随机种子后,可以通过随机数位(bit)抽取方法来产生随机数。
假设每个用户都可以通过其公钥表示,则可以对产生的随机数应用特定的加密算法来产生密钥,并且用此密钥对上述公钥进行加密,得到相应的加密结果。例如可以对随机数应用HMAC算法来产生AES密钥,每一个加密后的公钥都能用一个整数表示。
每一个加密结果都能用一个整数表示。因此,可以把整个密文空间分成m个区间, 每个加密结果有
Figure 493584DEST_PATH_IMAGE007
的概率落到m个区间的某一个。给这些区间标号,与预设平衡分组算法得 到的m个分组一一对应便可把用户随机分配到某个分组。
在一种可选的实施方式中,上述步骤102之前,上述方法还包括:
若上述用户对应的公钥的长度不能被预设值整除,则在上述公钥前填充0使上述公钥的长度为上述预设值的整数倍。
上述预设值可以根据需要进行设置。举例来讲,假设每个用户都可以通过其公钥
Figure 767658DEST_PATH_IMAGE024
表示,公钥的长度为
Figure 993103DEST_PATH_IMAGE025
。如果
Figure 51189DEST_PATH_IMAGE026
不能被预设值128整除,则在公钥前填充0使其长度能是 128的整数倍。假设填充后的新公钥为
Figure 627664DEST_PATH_IMAGE027
,长度为
Figure 678665DEST_PATH_IMAGE028
这时,可以对上个步骤产生的随机数应用HMAC算法来产生AES密钥,并且用此密钥 对
Figure 758617DEST_PATH_IMAGE029
进行加密,得到
Figure 518762DEST_PATH_IMAGE030
每一个加密后的
Figure 316954DEST_PATH_IMAGE031
都能用一个整数表示。因此,我们可以把整个密文空间分 成m个区间:
Figure 673111DEST_PATH_IMAGE032
每个加密后的
Figure 607569DEST_PATH_IMAGE031
Figure 538616DEST_PATH_IMAGE023
的概率落到m个区间的某一个。给这些区间标号,与预 设平衡分组算法得到的m个分组一一对应便可把用户随机分配到某个分组。
可选的,本申请实施例中在用户随机分配分组算法中,可以采用其他随机数的生成方法,也应属于本申请所保护范围。本申请实施例中在用户随机分配分组算法中,可以采用其他的用户公钥的加密方法,也应属于本申请所保护范围。本申请实施例中在用户随机分配分组算法中,可以采用其他的用户公钥方案(如国密SM2),也应属于本申请所保护范围。
103、合并上述m个运行组的执行结果到主区块链。
用户被分配到具体的智能合约运行组后,会按顺序执行分组里的智能合约。智能合约的运行结果达成共识后,最终结果会被记录到区块链。
在一种可选的实施方式中,上述步骤103包括:
上述m个运行组中智能合约的执行结果通过拜占庭容错算法达成共识。
可选的,在上述达成共识的过程中,上述方法还包括:
通过组签名方法压缩签名消息的长度。
如果签名消息太长,可以通过组签名等方法来压缩消息的长度从而更快达成共识。
可选的,本申请实施例中合并分组运行结果步骤中,可以采用其他共识算法让各用户对结果达成共识,也应属于本申请所保护范围。
在一种可选的实施方式中,本申请实施例中的方法不仅可适用于公共链(如以太坊)、联盟链(如超级账本),也适用于现有的各种区块链***。
要提升智能合约在区块链***的执行效率,最直接的方法就是分组并发执行。这意味着,所有运行智能合约的用户将分为若干组,每一组负责一定量的智能合约执行。但是,这种简单的方法会带来安全及公平两方面的问题:
安全问题:一个节点可能有多个用户。如果这些用户都被分配到某一个智能合约运行组里,其有几率成为该组的实际操控者,从而进行运行结果篡改、对正确结果不予验证等行为。
公平问题:如果一些用户被分配到某个高工作量、低收益的智能合约运行组里,那么其有几率放弃执行当前被分配到的智能合约,导致业务延迟。
本申请实施例中的分片式智能合约运行方法,通过分片机制进行区块链节点的扩容,提高智能合约运行的并发性,其中通过平衡分组算法,可以解决现有区块链中,智能合约并发执行带来的安全与公平性问题。
基于上述分片式智能合约运行方法实施例的描述,本申请实施例还公开了一种公平的分片式智能合约运行装置。请参见图2,该分片式智能合约运行装置200包括:
分组模块210,用于在收集到n个待运行的智能合约的情况下,使用预设平衡分组算法,依据所述n个待运行的智能合约的工作量及单位效益,将所述n个待运行的智能合约分成m个运行组,所述n和所述m为大于1的整数;
分配模块220,用于将用户随机分配到所述m个运行组,所述m个运行组里的用户并发执行对应的智能合约;
共识模块230,用于合并所述m个运行组的执行结果到主区块链。
根据本申请的一个实施例,图1所示的方法所涉及的各个步骤均可以是由图2所示的分片式智能合约运行装置200中的各个模块执行的,此处不再赘述。
本申请实施例中的分片式智能合约运行装置200,可以在收集到n个待运行的智能合约的情况下,使用预设平衡分组算法,依据所述n个待运行的智能合约的工作量及单位效益,将所述n个待运行的智能合约分成m个运行组,所述n和所述m为大于1的整数;将用户随机分配到所述m个运行组,所述m个运行组里的用户并发执行对应的智能合约;合并所述m个运行组的执行结果到主区块链,通过平衡分组算法合理分配智能合约的执行,并可以解决分片制智能合约运行的公平与安全问题。
基于上述分片式智能合约运行方法实施例的描述,本申请实施例还公开了一种区块链***,该区块链***中可以包括存储器和处理器,所述存储器存储有计算机程序。计算机存储介质可以存储在集装箱锁的存储器中,上述计算机存储介质用于存储计算机程序,上述计算机程序包括程序指令,上述处理器用于执行上述计算机存储介质存储的程序指令。处理器(或称CPU(Central Processing Unit,中央处理器))是区块链***中设备的计算核心以及控制核心,其适于实现一条或多条指令,具体适于加载并执行一条或多条指令从而实现相应方法流程或相应功能;在一个实施例中,本申请实施例上述的处理器可以用于进行一系列的处理,包括图1中所示的方法所涉及的各个步骤,此处不再赘述。
本申请实施例还提供了一种计算机存储介质(Memory),上述计算机存储介质是区块链***(或区块链***的电子设备)中的记忆设备,用于存放程序和数据。可以理解的是,此处的计算机存储介质既可以包括电子设备中的内置存储介质,当然也可以包括电子设备所支持的扩展存储介质。计算机存储介质提供存储空间,该存储空间存储了电子设备的操作***。并且,在该存储空间中还存放了适于被处理器加载并执行的一条或多条的指令,这些指令可以是一个或一个以上的计算机程序(包括程序代码)。需要说明的是,此处的计算机存储介质可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器;可选的还可以是至少一个位于远离前述处理器的计算机存储介质。
在一个实施例中,可由处理器加载并执行计算机存储介质中存放的一条或多条指令,以实现上述实施例中的相应步骤;具体实现中,计算机存储介质中的一条或多条指令可以由处理器加载并执行如图1所示的方法所涉及的各个步骤,此处不再赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的***、装置和方法,可以通过其它的方式实现。例如,该模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如,多个模块或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。所显示或讨论的相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机程序指令时,全部或部分地产生按照本申请实施例的流程或功能。该计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者通过该计算机可读存储介质进行传输。该计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是只读存储器(read-onlymemory,ROM),或随机存储存储器(random access memory,RAM),或磁性介质,例如,软盘、硬盘、磁带、磁碟、或光介质,例如,数字通用光盘(digital versatile disc,DVD)、或者半导体介质,例如,固态硬盘(solid state disk ,SSD)等。

Claims (8)

1.一种分片式智能合约运行方法,其特征在于,应用于区块链***,所述方法包括:
在收集到n个待运行的智能合约的情况下,使用预设平衡分组算法,依据所述n个待运行的智能合约的工作量及单位效益,将所述n个待运行的智能合约分成m个运行组,所述n和所述m为大于1的整数;
将用户随机分配到所述m个运行组,所述m个运行组里的用户并发执行对应的智能合约;
合并所述m个运行组的执行结果到主区块链;
其中,所述使用预设平衡分组算法,依据所述n个待运行的智能合约的工作量及单位收益,将所述n个待运行的智能合约分成m个运行组,包括:
获取把所述n个待运行的智能合约的集合J分成所述m个运行组(J1…Jm),使得其满足以下条件的目标解:
Figure QLYQS_1
Figure QLYQS_2
其中,
Figure QLYQS_3
;每个所述待运行的智能合约对应一个任务j,每个所述任务j包括两个属性:
所述wj表示所述工作量,所述工作量为完成所述任务消耗的资源,
所述rj表示所述单位效益,所述单位效益为每消耗一个单位资源带来的收益;
其中,所述方法包括:
使用整数线性规划来获取所述目标解;所述整数线性规划的约束包括:
目标:
Figure QLYQS_4
每个任务j都必须分配到某个运行组;
每两个任务之间的工作量之比小于
Figure QLYQS_5
每两个任务之间的总效益之比小于
Figure QLYQS_6
2.根据权利要求1所述的分片式智能合约运行方法,其特征在于,所述将用户随机分配到所述m个运行组,包括:
基于随机数产生密钥;
使用所述密钥对用户对应的公钥进行加密,得到加密结果,每个所述加密结果用一个整数表示;
将所述加密结果的密文空间分成m个区间,每个所述加密结果有
Figure QLYQS_7
的概率落到所述m个区间中的一个区间,以将所述用户随机分配到所述m个运行组,所述m个区间与所述m个运行组一一对应。
3.根据权利要求2所述的分片式智能合约运行方法,其特征在于,所述使用所述密钥对用户对应的公钥进行加密之前,所述方法还包括:
若所述用户对应的公钥的长度不能被预设值整除,则在所述公钥前填充0使所述公钥的长度为所述预设值的整数倍。
4.根据权利要求1所述的分片式智能合约运行方法,其特征在于,所述合并所述m个运行组的执行结果到主区块链,包括:
所述m个运行组中智能合约的执行结果通过拜占庭容错算法达成共识。
5.根据权利要求4所述的分片式智能合约运行方法,其特征在于,在所述达成共识的过程中,所述方法还包括:
通过组签名方法压缩签名消息的长度。
6.一种公平的分片式智能合约运行装置,其特征在于,包括:
分组模块,用于在收集到n个待运行的智能合约的情况下,使用预设平衡分组算法,依据所述n个待运行的智能合约的工作量及单位效益,将所述n个待运行的智能合约分成m个运行组,所述n和所述m为大于1的整数;其中,所述分组模块,具体用于:获取把所述n个待运行的智能合约的集合J分成所述m个运行组(J1…Jm),使得其满足以下条件的目标解:
Figure QLYQS_8
Figure QLYQS_9
其中,
Figure QLYQS_10
;每个所述待运行的智能合约对应一个任务j,每个所述任务j包括两个属性:所述wj表示所述工作量,所述工作量为完成所述任务消耗的资源,所述rj表示所述单位效益,所述单位效益为每消耗一个单位资源带来的收益;
其中,所述装置包括:使用整数线性规划来获取所述目标解;所述整数线性规划的约束包括:目标:
Figure QLYQS_11
;每个任务j都必须分配到某个运行组;每两个任务之间的工作量之比小于
Figure QLYQS_12
;每两个任务之间的总效益之比小于
Figure QLYQS_13
分配模块,用于将用户随机分配到所述m个运行组,所述m个运行组里的用户并发执行对应的智能合约;
共识模块,用于合并所述m个运行组的执行结果到主区块链。
7.一种区块链***,其特征在于,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如权利要求1-5中任一项所述的分片式智能合约运行方法的步骤。
8.一种计算机可读存储介质,其特征在于,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如权利要求1-5中任一项所述的分片式智能合约运行方法的步骤。
CN202211628996.1A 2022-12-19 2022-12-19 分片式智能合约运行方法、装置、***和储存介质 Active CN115617918B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211628996.1A CN115617918B (zh) 2022-12-19 2022-12-19 分片式智能合约运行方法、装置、***和储存介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211628996.1A CN115617918B (zh) 2022-12-19 2022-12-19 分片式智能合约运行方法、装置、***和储存介质

Publications (2)

Publication Number Publication Date
CN115617918A CN115617918A (zh) 2023-01-17
CN115617918B true CN115617918B (zh) 2023-03-07

Family

ID=84879736

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211628996.1A Active CN115617918B (zh) 2022-12-19 2022-12-19 分片式智能合约运行方法、装置、***和储存介质

Country Status (1)

Country Link
CN (1) CN115617918B (zh)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108256966A (zh) * 2018-01-12 2018-07-06 瑞银国际物流(江苏)有限公司 一种基于区块链的分布式商品追踪方法
CN108847925B (zh) * 2018-06-20 2020-09-15 深圳大学 一种基于树状结构的分片区块链生成方法
US11489914B2 (en) * 2020-01-19 2022-11-01 Bernt Erik Bjontegard Contextual intelligence of every-thing communication platform integrating edge computation, augmented intelligence and distributed ledger data storage nodes and tokens for real world data interactions across internet of things with payment integration
GB202002305D0 (en) * 2020-02-19 2020-04-01 Nchain Holdings Ltd Smart contracts
CN112819464B (zh) * 2021-01-20 2023-11-21 深圳市天启旭达科技有限公司 一种智能合约处理方法、处理装置、终端设备及存储介质

Also Published As

Publication number Publication date
CN115617918A (zh) 2023-01-17

Similar Documents

Publication Publication Date Title
US12028459B2 (en) Multi-access edge computing node with distributed ledger
EP4120114A1 (en) Data processing method and apparatus, smart device and storage medium
US10938567B2 (en) Parallel-chain architecture for blockchain systems
CN110046996B (zh) 数据处理方法和装置
CN110189121B (zh) 数据处理方法、装置、区块链客户端和区块链节点
CN111416709B (zh) 基于区块链***的投票方法、装置、设备及存储介质
CN111538757A (zh) 数据存储方法、查询方法、装置、服务器及介质
Li et al. Scalable blockchain storage mechanism based on two-layer structure and improved distributed consensus
CN115883154A (zh) 访问凭证的颁发方法、基于区块链的数据访问方法及装置
CN115796871A (zh) 基于区块链的资源数据处理方法、装置和服务器
CN112995167A (zh) 基于Kafka机制的用电信息采集方法、区块链网络及用户端
CN115617918B (zh) 分片式智能合约运行方法、装置、***和储存介质
CN109842681B (zh) 一种兼顾集中式与分布式特色的数据管理***及方法
CN112417052A (zh) 区块链网络中的数据同步方法、装置、设备及存储介质
CN115409511A (zh) 一种基于区块链的个人信息保护***
EP3859652A1 (en) Technique for trustless cryptographic verification of energy allocations
CN115250354A (zh) 基于区块链网络的资源分配方法、装置、设备及存储介质
CN114239044A (zh) 一种去中心化的可追溯共享访问***
Bojkovic et al. Blockchain-enabled network slicing
Singh et al. Distributed trust and reputation management for future wireless systems
CN115189965B (zh) 一种区块链的跨链管理***及跨链操作方法
CN113240426B (zh) 基于智能合约实现区块链用户身份认证的交易方法及***
WO2023207471A1 (zh) 基于区块链的数据处理方法、相关装置及介质和程序产品
Cai et al. Anatomy of the Core: Principles of Enterprise-Level Blockchain Platform
Christidis Blockchain-Based Local Energy Markets

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