一种基于区块链的智能合约的众包构建方法与流程

文档序号:12664125阅读:来源:国知局

技术特征:

1.一种基于区块链的智能合约的众包构建方法,其特征是按如下步骤执行:

步骤一、定义所述智能合约的用户集合为U={Vα,V},Vα为所述智能合约的甲方,V为所述智能合约的乙方集合,并有:V={V1,V2,...,Vi,...,Vm},Vi为所述乙方集合中第i个用户,1≤i≤m;

步骤二、智能合约任务和规则的发布:

所述甲方Vα用自身私钥对包含任务和规则的智能合约进行签名,并由矿工将签名过的智能合约作为区块TR添加到区块链的主链上;所述智能合约的任务记为T={t1,t2,...,tp,...,tn},tp为第p个子任务;1≤p≤n;

步骤三、合约任务的认领:

步骤3.1、定义以所述区块TR为起点的支链上的区块数量为ρ,并初始化ρ=0;

步骤3.2、假设第i个用户Vi期望认领所述任务中的若干个子任务,则第i个用户Vi查询所述区块TR为起点的支链上是否存在终止区块;若存在,则表示所述智能合约已经签订完成,若不存在,则执行步骤3.3;

步骤3.3、初始化p=1;

步骤3.4、由所述第i个用户Vi标记所述任务中第p个子任务tp的认领意愿状态代表第i个用户Vi期望认领第p个子任务tp;当代表第i个用户Vi不认领第p个子任务tp

步骤3.5、将p+1赋值给p后,返回步骤3.4,直到p=n为止,从而得到所述第i个用户Vi对所有子任务的认领意愿状态;

步骤3.6、判断是否成立,若成立,则表示第i个用户Vi期望认领所有子任务并能独立完成,从而根据所述智能合约的规则签订所述智能合约后,执行步骤3.7;否则,执行步骤3.8;

步骤3.7、所述甲方Vα和第i个用户Vi分别对所签订的智能合约进行联合签名,并由矿工将联合签名过的智能合约作为区块添加到区块链的主链上后,矿工在以所述区块TR为起点的支链上的添加终止区块;

步骤3.8、第i个用户Vi对所述任务中的每个子任务的认领意愿状态进行签名,并由矿工将签名过的所有认领意愿状态添加到区块链的支链上,同时将ρ+1赋值给ρ;

步骤四、检查区块链的支链,判断支链上参与智能合约的所有用户是否能众包完成所述智能合约的所有子任务:

步骤4.1、定义所述区块链的支链上的所有用户为{V′1,V′2,...,V′k,...,V′ρ};V′k表示所述支链上的第k个用户,1≤k≤ρ;定义第q个子任务tq所分配给的用户记为V″q;1≤q≤n;初始化V″q=NULL;

步骤4.2、初始化q=1;

步骤4.3、初始化k=1;

步骤4.4、判断是否成立,若成立,则将V′k赋值给V″q,并将q+1赋值给q,返回步骤4.3,直到q=n为止;否则,将k+1赋值给k,返回步骤4.4,直到k=ρ为止;

步骤4.5、初始化q=1;

步骤4.6、判断V″q=NULL是否成立,若成立,表示存在未认领的子任务,则等待其他用户认领并返回步骤3.2;若不成立,则将q+1赋值给q,返回步骤4.6,直到q=n为止;

步骤4.7、所有子任务均被认领和分配完成,从而根据所述智能合约的规则签订所述智能合约;

步骤4.8、所述甲方Vα和所有分配子任务的用户分别对所签订的智能合约进行联合签名,并由矿工将联合签名过的智能合约作为区块添加到区块链的主链上后,矿工在以所述区块TR为起点的支链上的添加终止区块。

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