首页 / 专利库 / 资料储存系统 / 工作量证明 / 基于区块链的众包资源分布式匿名配给方法及其配给系统

基于链的众包资源分布式匿名配给方法及其配给系统

阅读:1090发布:2020-06-11

专利汇可以提供基于链的众包资源分布式匿名配给方法及其配给系统专利检索,专利查询,专利分析的服务。并且本 发明 公开一种基于 区 块 链 的众包资源分布式匿名配给方法及其配给系统,以下简称众包资源匿名配给系统,步骤如下:用户注册;将用户注册信息上链;在区块上创建任务发布 智能合约 以及实现对任务发布信息的记录;服务 节点 前提交纳达成计划书; 请求 节点从达成计划书中选择最优质的服务节点;在区块上创建哈希时间 锁 定合约并建立一条洋葱路由,实现交易双方的匿名通信。本发明在区块链网络上引入哈希时间锁定的智能合约,实现了零确认交易上链,大大提高了单位时间内的交易量。此外,通过哈希时间锁定合约建立的支付通道可以构建一条请求节点到服务节点的洋葱路由,从而实现了请求节点和服务节点的匿名交易。,下面是基于链的众包资源分布式匿名配给方法及其配给系统专利的具体信息内容。

1.一种基于链的众包资源分布式匿名配给方法,其特征在于:包括如下步骤:
步骤1:节点在系统上进行注册,所述节点包括请求节点与服务节点,系统为各节点分配一个随机数作为节点私钥,并通过椭圆曲线算法生成相应的公钥,之后通过对节点公钥的哈希和编码生成节点的钱包地址,在区块上创建智能合约实现对用户注册信息的记录;
步骤2:生产该区块的矿工通过挖矿这种工作量证明机制向其他矿工证明自己的可信性,使得其他矿工节点能够同意该矿工将新生成的区块加入当前的区块链上,从而实现将交易信息上链;
步骤3:在区块上创建任务发布智能合约,当请求节点在系统上成功发布服务任务时执行该合约,实现对任务发布信息的记录,所发布的服务任务包括服务任务描述、需支付的报酬及对服务节点的要求;
步骤4:服务节点通过系统接收请求节点发布的任务,在任务截止时间前提交一份满足请求节点服务任务的达成计划书,该计划书被用请求节点的公钥加密后放在分布存储空间中;
步骤5:请求节点用其私钥打开服务节点提交的达成计划书,然后请求节点根据服务节点的信誉值、服务节点给出的服务方案和服务节点提出的服务费用,选择出最优质的服务节点;
步骤6:在区块链上创建哈希时间定合约,通过哈希时间锁定合约在两个用户之间建立支付通道,然后基于支付通道在网络中为请求节点和服务节点间的交易Tx建立一条洋葱路由,实现交易双方的匿名通信。
2.根据权利要求1所述的基于区块链的众包资源分布式匿名配给方法,其特征在于:所述步骤1的具体内容如下:
步骤1.1请求节点或服务节点在注册时无需提供真实的身份信息,而是被直接分配一个256bit的随机数作为其私钥 其中 表示节点ni的私钥,R为请求节点,W为服务节点;
步骤1.2私钥 经过椭圆曲线算法SECP256K1的处理生成节点ni的公钥
步骤1.3 表示节点ni的公钥哈希值,其中hash(·)表示hash函数,这里采用SHA-256算法;
步骤1.4将一个字节的地址版本号连接到 的头部,然后对其再进行两次SHA256运算,将结果的前4字节作为 的校验值,连接在其尾部,对生成的字符串使用BASE58进行编码从而得到节点的钱包地址;
步骤1.5在区块上创建用户注册智能合约,当用户注册成功时执行该合约记录用户注册信息。
3.根据权利要求1所述的基于区块链的众包资源分布式匿名配给方法,其特征在于:所述步骤2中的具体内容为:
步骤2.1在创始区块的头部nBits字段设其难度值为0x1d00ffff,另设最大目标值,最大值为:
0x00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF;
步骤2.2对区块的头部数据进行两次哈希运算,如下式所示,尝试不同的Nonce当其获得哈希值小于等于目标哈希值时,则接受该区块
SHA256(SHA256(Version+HashPreBlock+Merkle_root+Timstamp+nBits+Nonce))≤目标哈希值
其中,Version表示版本号、HashPreBlock为前一区块的Hash值、Merkle_root为交易数据的Merkle树根、Timstamp为交易的时间戳、nBits为目标计算难度、Nonce为矿工不断尝试的随机数;
步骤2.3区块的难度即为目标哈希值,每隔2016个区块重新计算一次,难度值的计算方法如下:
新难度值=旧难度值*(过去2016个区块花费的时长/20160分钟)
目标哈希值=最大目标值/难度值。
4.根据权利要求1所述的基于区块链的众包资源分布式匿名配给方法,其特征在于:所述步骤3中的具体内容为:
步骤3.1在区块上创建一条只有请求节点且没有服务节点的交易,区块体中的数据字段存储任务发布智能合约;
步骤3.2请求节点用私钥 加密服务任务,加密后的服务任务信息包括对服务任务的描述、拟支付的报酬及对服务节点的要求,在系统上成功发布后执行步骤3.1中的智能合约;
步骤3.3在区块上创建一条只有请求节点且没有服务节点的交易,区块体中的数据字段存储请求节点私钥加密后的服务任务信息;
步骤3.4最后将新生成交易区块上链。
5.根据权利要求1所述的基于区块链的众包资源分布式匿名配给方法,其特征在于:所述步骤4的实现包括如下:
步骤4.1服务节点通过配给系统接收请求节点发布的加密服务任务描述文件,之后用请求节点的公钥验证该节点的身份真实性;
步骤4.2服务节点根据解密后的服务任务描述文件,在任务截止时间前提交一份满足请求节点服务任务的达成计划书;
步骤4.3鉴于达成计划书需要提交相关的附件材料证明计划书的可行性,这里用请求节点的公钥加密后放在分布存储空间中。
6.根据权利要求1所述的基于区块链的众包资源分布式匿名配给方法,其特征在于:所述步骤6的实现包括如下:
步骤6.1在区块链上创建哈希时间锁定合约,通过哈希时间锁定合约在两个用户之间建立间接支付通道,该间接支付通道的建立过程如下:
(1)请求节点ni发给服务节点ni+m发一个随机种子r,服务节点ni+m用其私钥对随机种子进行签名,并通过SHA256生成哈希值H,并返回给请求节点ni;
(2)节点ni找到与其建立支付通道的中间节点ni+x,然后节点ni生成交易的哈希时间锁定合约,此HTLC的内容为:如果节点ni+x找到暗语H,则节点ni+x直接拿走HTLC中的以太币,否则HTLC中的以太币在锁定期后就会被释放,x≤m;
(3)节点ni+x找到与其建立支付通道的服务节点ni+m,用1个以太币来换服务节点ni+m的暗语H,同时更新节点ni+x和服务节点ni+m的支付分配,更新与步骤(2)相同,反之,若节点ni+x未找到与其建立支付通道的服务节点ni+m,那么重复步骤(2)的过程;
(4)节点ni+x会拿着暗语H去找请求节点ni,并从请求节点ni处拿到以太币,请求节点ni则以间接支付通道的形式付给服务节点ni+m约定的以太币;
步骤6.2在区块链网络上构建二层匿名交易网络实现众包服务交易的匿名,即是指基于所构建间接支付通道在网络中为请求节点和服务节点间的交易Tx建立洋葱路由,该洋葱路由的内容为:
其中 为节点ni+m的公钥,m为请求节点ni到服务节点ni+m之间的可达路径的跳数,Encrypt(·)为加密函数,中间节点ni+x使用其私钥逐层解密出洋葱路径,从而以匿名的方式实现众包服务交易匿名,中间节点在本次交易中相对于其前一跳节点为虚拟服务节点色,相对于其下一跳节点为虚拟请求节点的角色。
7.一种用于实现权利要求1至6任意一项所述的基于区块链的众包资源分布式匿名配给方法的配给系统,其特征在于:包括众包服务业务逻辑层、区块链层和数据存储层;区块链层中的区块通过存储文件资源的指针定位数据存储层的资源;众包服务业务逻辑层与区块链层交互;区块链层采用以太坊进行实施,区块链层上部署的二层零确认匿名交易网络则采用哈希时间锁定合约和洋葱路由进行实施;数据存储层通过搭建星际文件系统进行实施,即利用分布式哈希表解决数据的传输和定位问题,把点对点的单点传输改变成P2P的传输,其中存储数据的结构是哈希链,区块链层通过资源的哈希值来定位数据存储层中资源的位置

说明书全文

基于链的众包资源分布式匿名配给方法及其配给系统

技术领域

[0001] 本发明属于众包服务技术,具体涉及一种基于区块链的众包资源分布式匿名配给方法及其配给系统。

背景技术

[0002] 众包物流是一种基于互联网平台的开放式配送模式,该模式借助于成熟的大数据技术和移动网络技术,将配送任务以自愿、有偿的方式,通过网络外包给非特定社会群体,这些社会群体可在自由支配时间段抢单、取货和送货,由此实现了社会闲置资源的最大化利用。以京东众包、达达、人人快递、闪送笛为代表的众包物流模式,受到了诸多快递人员与消费者的青睐。以京东众包物流为例,上线仅3个月,就招募了5万多名快递员。业务覆盖了13个城市,日均派送量超20000单。据达达的一名用户称,在发出同城配送订单后,平台显示附近有50多名达达配送员可提供服务,填写相关信息后,上便有配送人员接单并在8分钟内上取货,30至40分钟内完成配送任务。这种高效的配送模式,极大地提高了物流效率。
达达首席执行官称达达众包98%的订单可以在1小时内妥投,85%的订单可以在30分钟内妥投。此外,众包物流与在线离线/线上到线下(Online To Offline,O2O)电商平台的对接密切,使得物流成本大幅降低。以达达众包为例,达达上线后与饿了么、美团等O2O平台展开合作,帮助平台商家进行送餐任务。新达达在2016年6月份的订单密度提高了10%以上的量级,但每单的成本却从15元降到3元。2017菜网络董事长在全球智慧物流峰会上表示点我达通过信息、数据和资源共享极大地降低了物流成本。
[0003] 尽管众包物流存在以上诸多优势,但同时也存在着诸如用户及其交易信息泄露等较大的安全隐患。目前上线的众包物流平台中,对用户信息进行加密处理,即采用“隐私面单”的企业仍比较低。据腾讯网相关统计显示,截止到2018年6月,快递隐私面单的普及率不足20%。新浪新闻网曾报道京东自2016年6月起,使用“隐私面单”保护用户信息,配送员通过平台自主研发的APP“京”联系用户。然而,在2017年5月期间,因订单量激增,京东采用大量众包运支持物流业务,由于众包配送员无法登录使用“京牛”,致使京东改为使用普通面单,顾客的个人信息全部显示于面单上,致使用户信息大面积泄露。
[0004] 再以医药众包物流为例,自由配送人在货物的提取配送过程中,能够根据货品外包装信息,了解顾客的患病情况,可能导致顾客的隐私信息泄露,遭遇诈骗、资金流失、垃圾短信等,因而不能满足顾客对需求产品的保密性要求。另外需要进行说明的是现有的众包物流系统均采用集中式的数据处理方式。这种数据处理架构需要通过可信的第三方保障交易的安全性。然而,可信第三方存在单点失效的问题。一旦可信的第三方遭受网络攻击,将导致众包物流平台变得不可用、无法完成对用户身份的认证以及支付活动受到影响。

发明内容

[0005] 发明目的:本发明的目的在于解决现有技术中存在的不足,提供一种基于区块链的众包资源分布式匿名配给方法,通过引入区块链、哈希时间合约及洋葱加密技术来实现一种去中心化的众包资源匿名配给,能够用于去中心化的众包服务平台,特别适用于保障众包服务交易平台上的大批量和匿名交易。
[0006] 技术方案:本发明的一种基于区块链的众包资源分布式匿名配给方法,包括如下步骤:
[0007] 步骤1:节点在系统上进行注册,所述节点包括请求节点与服务节点,系统为各节点分配一个随机数作为节点私钥,并通过椭圆曲线算法生成相应的公钥,之后通过对节点公钥的哈希和编码生成节点的钱包地址,在区块上创建智能合约实现对用户注册信息的记录;
[0008] 步骤2:生产该区块的矿工通过挖矿这种工作量证明机制向其他矿工证明自己的可信性,使得其他矿工节点能够同意该矿工将新生成的区块加入当前的区块链上,从而实现将交易信息上链;
[0009] 步骤3:在区块上创建任务发布智能合约,当请求节点在系统上成功发布服务任务时执行该合约,实现对任务发布信息的记录,所发布的服务任务包括服务任务描述、需支付的报酬及对服务节点的要求,新生成交易区块上链过程同步骤2;
[0010] 步骤4:服务节点通过系统接收请求节点发布的任务,在任务截止时间前提交一份满足请求节点服务任务的达成计划书,该计划书被用请求节点的公钥加密后放在分布存储空间中;
[0011] 步骤5:请求节点用其私钥打开服务节点提交的达成计划书,然后请求节点根据服务节点的信誉值、服务节点给出的服务方案和服务节点提出的服务费用,选择出最优质的服务节点;
[0012] 步骤6:在区块链上创建哈希时间锁定合约,通过哈希时间锁定合约在两个用户之间建立支付通道,然后基于支付通道在网络中为请求节点和服务节点间的交易Tx建立一条洋葱路由,实现交易双方的匿名通信。
[0013] 进一步的,所述步骤1的具体内容如下:
[0014] 步骤1.1请求节点或服务节点在注册时无需提供真实的身份信息,而是被直接分配一个256bit的随机数作为其私钥 其中 表示节点ni的私钥,R为请求节点,W为服务节点;
[0015] 步骤1.2私钥 经过椭圆曲线算法SECP256K1的处理生成节点ni的公钥[0016] 步骤1.3 表示节点ni的公钥哈希值,其中hash(·)表示hash函数,这里采用SHA-256算法;
[0017] 步骤1.4将一个字节的地址版本号连接到 的头部,然后对其再进行两次SHA256运算,将结果的前4字节作为 的校验值,连接在其尾部,对生成的字符串使用BASE58进行编码从而得到节点的钱包地址;
[0018] 步骤1.5在区块上创建用户注册智能合约,当用户注册成功时执行该合约记录用户注册信息。
[0019] 进一步的,所述步骤2中的具体内容为:
[0020] 步骤2.1在创始区块的头部nBits字段设其难度值为0x1d00ffff,另设最大目标值,最大值为:
[0021] 0x00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF;
[0022] 步骤2.2对区块的头部数据进行两次哈希运算,如下式所示,尝试不同的Nonce当其获得哈希值小于等于目标哈希值时,则接受该区块
[0023] SHA256(SHA256(Version+HashPreBlock+Merkle_root+Timstamp+nBits+Nonce))≤目标哈希值
[0024] 其中,Version表示版本号、HashPreBlock为前一区块的Hash值、Merkle_root为交易数据的Merkle树根、Timstamp为交易的时间戳、nBits为目标计算难度、Nonce为矿工不断尝试的随机数;
[0025] 步骤2.3区块的难度即为目标哈希值,每隔2016个区块重新计算一次,难度值的计算方法如下:
[0026] 新难度值=旧难度值*(过去2016个区块花费的时长/20160分钟)
[0027] 目标哈希值=最大目标值/难度值。
[0028] 进一步的,所述步骤3中的具体内容为:
[0029] 步骤3.1在区块上创建一条只有请求节点且没有服务节点的交易,区块体中的数据字段存储任务发布智能合约;
[0030] 步骤3.2请求节点用私钥 加密服务任务,加密后的服务任务信息包括对服务任务的描述、拟支付的报酬及对服务节点的要求,在系统上成功发布后执行步骤3.1中的智能合约;
[0031] 步骤3.3在区块上创建一条只有请求节点且没有服务节点的交易,区块体中的数据字段存储请求节点私钥加密后的服务任务信息;
[0032] 步骤3.4最后将新生成交易区块上链,该过程与步骤2相同。
[0033] 进一步的,所述步骤4的实现包括如下:
[0034] 步骤4.1服务节点通过系统接收请求节点发布的加密服务任务描述文件,之后用请求节点的公钥验证该节点的身份真实性;
[0035] 步骤4.2服务节点根据解密后的服务任务描述文件,在任务截止时间前提交一份满足请求节点服务任务的达成计划书;
[0036] 步骤4.3鉴于达成计划书需要提交相关的附件材料证明计划书的可行性,这里用请求节点的公钥加密后放在分布存储空间中。
[0037] 进一步的,所述步骤6的实现包括如下:
[0038] 步骤6.1在区块链上创建哈希时间锁定合约,通过哈希时间锁定合约在两个用户之间建立间接支付通道,该间接支付通道的建立过程如下:
[0039] (1)请求节点ni发给服务节点ni+m发一个随机种子r,服务节点ni+m用其私钥对随机种子进行签名,并通过SHA256生成哈希值H,并返回给请求节点ni;
[0040] (2)节点ni找到与其建立支付通道的节点ni+x(x≤m),然后节点ni生成交易的哈希时间锁定合约,此HTLC的内容为:如果节点ni+x(x≤m)找到暗语H,则节点ni+x(x≤m)直接拿走HTLC中的以太币,否则HTLC中的以太币在锁定期后就会被释放;
[0041] (3)节点ni+x(x≤m)找到与其建立支付通道的服务节点ni+m,用1个以太币来换服务节点ni+m的暗语H,同时更新节点ni+x(x≤m)和服务节点ni+m的支付分配,更新与步骤(2)相同。反之,若节点ni+x(x≤m)未找到与其建立支付通道的服务节点ni+m,那么重复步骤(2)的过程;
[0042] (4)节点ni+x(x≤m)会拿着暗语H去找请求节点ni,并从请求节点ni处拿到以太币,请求节点ni则以间接支付通道的形式付给服务节点ni+m约定的以太币;
[0043] 步骤6.2在区块链网络上构建二层匿名交易网络实现众包服务交易的匿名,即是指基于所构建间接支付通道在网络中为请求节点和服务节点间的交易Tx建立洋葱路由,该洋葱路由的内容为:
[0044]
[0045] 其中 为节点ni+m的公钥,m为请求节点ni到服务节点ni+m之间的可达路径的跳数,Encrypt(·)为加密函数,中间节点ni+x(x≤m)使用其私钥逐层解密出洋葱路径,从而以匿名的方式实现众包服务交易匿名,中间节点在本次交易中相对于其前一跳节点为虚拟服务节点色,相对于其下一跳节点为虚拟请求节点的角色。
[0046] 本发明还公开了一种用于实现基于区块链的众包资源分布式匿名配给方法的配给系统,包括众包服务业务逻辑层、区块链层和数据存储层;区块链层中的区块通过存储文件资源的指针定位数据存储层的资源;众包服务业务逻辑层与区块链层交互;区块链层采用以太坊进行实施,区块链层上部署的二层零确认匿名交易网络则采用哈希时间锁定合约和洋葱路由进行实施;数据存储层通过搭建星际文件系统进行实施,即利用分布式哈希表解决数据的传输和定位问题,把点对点的单点传输改变成P2P的传输,其中存储数据的结构是哈希链,区块链层通过资源的哈希值来定位数据存储层中资源的位置
[0047] 有益效果:本发明中区块链上引入哈希时间锁合约,实现了零确认交易上链,提高单位时间内的交易量。此外,在哈希时间锁合约建立的间接支付通道上构建一条请求节点到服务节点的洋葱路由,实现请求节点和服务节点的匿名配给。
[0048] 与现有技术相比,本发明具有以下优点:
[0049] (1)避免中心化系统的单点失效
[0050] 本发明运行在对等网络上,交易数据以记录形式存储区块中,之后通过共识机制存储在区块链上,更新的区块信息在P2P网络中进行广播,使得全网的Peer节点共同拥有完整的区块链副本,这样就避免了由于中心节点失效导致整个众包服务交易系统失效的严重问题。
[0051] (2)保障服务交易数据的安全性
[0052] 本发明在交易传输过程中只传输公钥信息,保障了数据传输期间的安全性;交易数据存储在数据区块中,区块中数据安全以密码学理论为基础,保障了交易数据的不可篡改性。
[0053] (3)保障用户交易的隐私性
[0054] 用户注册时,不需要提供节点的真实信息,从而保障了节点的身份隐私;用户交易时通过在哈希时间锁定合约建立的间接支付通道上构建一条请求节点到服务节点的洋葱加密路径,实现了请求节点到服务节点的匿名交易。附图说明
[0055] 图1为本发明的软件层次示意图;
[0056] 图2为本发明中众包资源分布式匿名配给系统中实体间交互的时序示意图;
[0057] 图3为实施例中零确认匿名交易网络构建的示意图;
[0058] 图4为本发明的整体流程示意图。

具体实施方式

[0059] 下面对本发明技术方案进行详细说明,但是本发明的保护范围不局限于所述实施例。
[0060] 如图1所示,本实施中的众包资源匿名配给系统分为3个层次,分别是众包服务业务逻辑层、区块链层和数据存储层。
[0061] 众包服务业务逻辑层主要的功能是实现众包服务的业务逻辑,包括:用户注册、服务任务发布、最佳交易对象匹配和服务交易实施;上述逻辑过程的实现采用编写智能合约的方式,智能合约通过以太坊虚拟机进行编译和部署在区块链上。
[0062] 区块链层主要负责管理和维护区块链、执行共识机制,之后为实现交易的匿名,在区块链层的基础上引入零确认匿名交易网络,零确认匿名交易网络是用户在交易时通过哈希时间锁定合约为用户建立间接支付通道,并在此支付通道上构建一条请求节点到服务节点的洋葱加密路径,从而实现请求节点到服务节点的匿名交易。
[0063] 数据存储层的主要作用是实现大容量文件资源的分布式存储。
[0064] 三者之间的联系是:
[0065] 区块链层中的区块通过存储文件资源的指针来定位数据存储层的资源;众包服务业务逻辑层的逻辑功能使用Javascript语言编写、智能合约采用Solidity语言编写,众包服务业务逻辑层通过调用Web3j与区块链层交互;区块链层采用以太坊进行实施,区块链层上部署的二层零确认匿名交易网络则采用哈希时间锁定合约和洋葱路由进行实施;数据存储层通过搭建星际文件系统(Inter-Planetary File System,IPFS)进行实施。IPFS利用分布式哈希表解决数据的传输和定位问题,把点对点的单点传输改变成P2P(多点对多点)的传输,其中存储数据的结构是哈希链,区块链层通过资源的哈希值来定位数据存储层中资源的位置。
[0066] 如图2和图4所示,本实施例的基于区块链的众包资源分布式匿名配给方法流程如下:
[0067] 步骤1:节点(包括请求与服务节点)在系统上进行注册,系统为节点分配一个随机数作为对应节点的私钥,并通过椭圆曲线算法生成相应的公钥,之后通过对节点公钥的哈希和编码分别生成节点地址和钱包地址,在区块上创建用户注册智能合约实现对用户注册信息的记录。图2中步骤1的实现细节如下:
[0068] 步骤1.1请求节点及服务节点在注册时无需提供真实的身份信息,而是被直接分配一个256bit的随机数作为其私钥 其中 表示节点ni的私钥,R为请求节点,W为服务节点;
[0069] 步骤1.2私钥 经过椭圆曲线算法SECP256K1的处理生成节点ni的公钥[0070] 步骤1.3 表示节点ni的公钥哈希值,其中hash(·)表示hash函数,这里采用SHA-256算法;
[0071] 步骤1.4将一个字节的地址版本号连接到 的头部,然后对其再进行两次SHA256运算,将结果的前4字节作为 的校验值,连接在其尾部。对生成的字符串使用BASE58进行编码从而得到节点的钱包地址;
[0072] 步骤1.5在区块上创建用户注册智能合约,当用户注册成功时执行该合约记录用户注册信息。
[0073] 步骤2:生产该区块的矿工通过挖矿这种工作量证明机制向其他矿工证明自己的可信性,使得其他矿工节点能够同意该矿工将新生成的区块加入当前的区块链上,从而实现将交易信息上链。图2中步骤2的实现细节如下:
[0074] 步骤2.1在创始区块的头部nBits字段设其难度值为0x1d00ffff,另设最大目标值,所述最大目标值为:
[0075] 0x00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF;
[0076] 步骤2.2对区块的头部数据进行两次哈希运算,如式(1)所示。尝试不同的Nonce当其获得哈希值小于等于目标哈希值时,则接受该区块
[0077] SHA256(SHA256(Version+HashPreBlock+Merkle_root+Timstamp+nBits+Nonce))≤目 哈希(1)
[0078] 其中,Version表示版本号、HashPreBlock为前一区块的Hash值、Merkle_root为交易数据的Merkle树根、Timstamp为交易的时间戳、nBits为目标计算难度、Nonce为矿工不断尝试的随机数;
[0079] 步骤2.3区块的难度即为目标哈希值,每隔2016个区块重新计算一次,难度值的计算方法如式(2)和(3)所示:
[0080] 新难度值=旧难度值*(过去2016个区块花费的时长/20160分钟)   (2)[0081] 目标哈希值=最大目标值/难度值   (3)
[0082] 步骤3:在区块上创建服务任务发布智能合约,当请求节点在系统上成功发布服务任务时执行该合约,实现对服务任务发布信息的记录,所发布的服务任务包括服务任务描述、需支付的报酬及对服务节点的要求等信息,新生成交易区块上链过程同步骤2。图2中步骤3中的具体实现包括:
[0083] 步骤3.1在区块上创建一条只有请求节点,没有服务节点的交易,区块体中的数据字段存储服务任务发布的智能合约;
[0084] 步骤3.2请求节点用私钥 加密服务任务,包括对服务任务的描述、拟支付的报酬及对服务节点的要求等信息,在系统上成功发布后执行步骤3.1中的智能合约;
[0085] 步骤3.3在区块上创建一条只有请求节点,没有服务节点的交易,区块体中的数据字段存储请求节点私钥加密后的服务任务信息;
[0086] 步骤3.4新生成交易区块上链过程同步骤2的实现。
[0087] 步骤4:服务节点通过系统接收请求节点发布的任务,在服务任务截止时间前提交1份满足请求节点服务任务的达成计划书,该计划书被用请求节点的公钥加密后放在分布存储空间中。图2中步骤4的实现包括如下:
[0088] 步骤4.1网络广播服务任务请求信息,服务节点通过客户端接收请求节点发布的加密服务任务描述文件,之后用请求节点的公钥验证该节点身份的真实性;
[0089] 步骤4.2服务节点根据解密后的服务任务描述文件,在任务截止时间前通过客户端提交1份满足请求节点服务任务的达成计划书;
[0090] 步骤4.3鉴于达成计划书的附件材料较大,这里用请求节点的公钥加密后放在IPFS分布文件系统中。
[0091] 步骤5:请求节点用私钥打开服务节点提交的达成计划书,并从中选择最优质的服务节点。图2中步骤5的实现包括如下:
[0092] 步骤5.1请求节点在客户端用私钥打开服务节点提交的达成计划书;
[0093] 步骤5.2请求节点根据服务节点的信誉值、服务节点给出的服务方案、服务节点提出的服务费用,综合选择出最优质的服务节点,即评价函数f(x)值最大的服务节点,如式(4)所示。
[0094] 其中,max{f(x)}为请求节点对服务节点的最大满意度函数,α、β为权重系数,h(n)表示服务节点的信誉值,ε表示服务节点收取费用的偏差值。h(n)的计算见式(5),ε的计算见式(6)-(7)。
[0095]
[0096] h(n)=ω0+ω1g1(n)+…+ωmgm(n)   (5)
[0097] 其中,gi(n)为结点n在第i个时刻的信誉值,ωi是与其对应项有关的权重。这里采用最小二乘法确定其权重参数。
[0098]
[0099] 其中, 表示服务节点收取的费用,ETHs表示服务费,ETHu表示每公里的单价费用,l表示服务运输的公里数,tmax表示服务送达的最大容许时间,t为当前时刻,ETHδ表示对服务节点的惩罚费,λ为服务节点历史不遵守约定的次数,比如物流服务送达时间超出了最大容许时间。
[0100]
[0101] 其中, 表示提供服务方案的服务节点收取费用的均值,ε表示服务节点收取费用与其均值之间的偏差。
[0102] 步骤6:在区块链上创建哈希时间锁定合约,哈希时间锁定合约的作用是在两个用户之间建立支付通道,之后基于支付通道在网络中为请求节点和服务节点间的交易Tx建立一条洋葱路由,实现交易双方的匿名通信。图2中步骤6的实现细节如图3所示,其中HLTC()表示哈希时间锁定合约及其内容,具体实施流程描述如下。
[0103] 步骤6.1在区块链上创建哈希时间锁定合约,哈希时间锁定合约由哈希锁定和时间锁定两个部分构成。哈希锁定将请求节点的以太币进行锁定,并通过时间锁定让服务节点在某个约定的时刻前生成支付的密码学证明,若与事先约定的哈希值相同,则完成交易。该合约可以实现在两个用户之间建立间接支付通道,间接支付通道的建立过程如下:
[0104] (1)请求节点X发给服务节点Z发一个随机种子r,服务节点Z用其私钥对随机种子进行签名,并通过SHA256生成哈希值H,并返回给节点X;
[0105] (2)节点X找到与其建立支付通道的节点Y,然后节点X生成交易的HTLC合约,此HTLC合约内容为,如果节点Y找到暗语H,Y可以直接拿走HTLC中的以太币,否则HTLC中的以太币在锁定期后就会被释放;
[0106] (3)节点Y找到与其建立支付通道的节点Z,用1个以太币来换节点Z的暗语H,同时更新Y和Z的支付分配,更新同过程(2);
[0107] (4)节点Y会拿着暗语H去找节点X,并从节点X那里拿到了以太币,请求节点X则以间接支付通道的形式付给服务节点Z约定的以太币。
[0108] 步骤6.2在区块链网络上构建二层匿名交易网络实现众包服务交易的匿名,即是指基于所构建间接支付通道在网络中为请求节点和服务节点间的交易Tx建立洋葱路由,所述洋葱路由如下:
[0109]
[0110] 其中Encrypt(·)为加密函数。然后,中间节点使用其私钥逐层解密出洋葱路径,从而以匿名的方式实现众包服务交易匿名。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈