一种基于比特币的外包计算公平支付方法与流程

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

本发明属于雾计算技术领域,尤其涉及一种基于比特币的外包计算公平支付方法。



背景技术:

雾计算,也被成为边缘计算,使得计算、数据处理集中在网络边缘的设备中,这就能够为网络的所有用户提供新的应用和服务。雾计算设备可以是资源受限的雾节点,这类节点是建立在现有的网络设备之上,比如WIFI接入点、家用机顶盒;也可以是资源充足的雾节点,这类节点通常配备强大的CPU、庞大的存储,用来处理一些指定的高端的服务。雾计算是云计算的一个延伸,通常和云计算合作。因此,终端用户、“雾”和“云”组成一个三层服务提供模型,支持一系列应用,比如网页内容分发、增强现实和大数据分析。由于外包商和矿工之间缺少信任,因此在雾计算环境中外包计算中存在两个安全问题。首先,O不相信W会按照要求完成计算任务。处于经济利益考虑,W将不会按照要求完成计算任务,但他仍声称他们已经按要求完成。其次,O可以是互联网中的任何实体,因此W不相信在完成任务后O支付他费用。为了解决O和W之间的信任问题,最近有大量的方案被提出。一方面,当外包商为矿工支付费用时他可以验证计算结果。Monrose等人提出带证据的计算来保证矿工操作的正确性。Golle和Stubblebine可以通过重复计算来验证结果的正确性,也即是一个任务安排给不同的矿工来计算,然后外包商将结果相互对比。Szajda et al.和Sarmenta提出一个方案,这个方案使用概率性检验模型来增加发现矿工不诚实的概率。同样的,Szajda等人提出一个方法来增加相互勾结的阻力和减少计算代价。Carbunar和Sion提出一个策略,矿工可以通过预先选定一些随机的证人来对其工作进行评估。Golle和Mironov首先构建在商业环境中的分布式计算的安全模型,并提出ringer的概念来解决单向函数求逆的计算完整性验证问题。Du等人指出现有ringer方案中的一些不足,并提出要求矿工利用Merkle树来计算结果以解决信任问题。另一方面,矿工在完成工作后应该得到相应的报酬。Carbunar和Tripunitara第一次考虑支付问题并且提出用于外包计算的公平有条件的支付方案。然而,这些案使用复杂的选择-分割协议和秘密共享协议,因此在实际应用中效率非常低下。随后,Carbunar和Tripunitara提出了一个新的用于外包计算的公平支付方案,这个方案可以视为传统电子现金支付的一个实例。然而,这个方案也使用了低效率的选择-分割协议。最近,Chen首先考虑第三个信任问题:O不相信W将提供计算结果,并且在外包计算模型中考虑懒惰-部分不诚实的矿工。他们仅仅基于传统的电子现金系统提出一个新的公平条件支付方案,因为这个方案既没有使用秘密共享方案也没有使用选择-分割协议,因此他们的方案更高效。现有的所有的外包计算支付方案中都用ringer的思想来解决第一个信任问题。然而,ringer的思想是为了单向函数求逆计算设计的。Du等人指出ringer方案中仅适用于某一类的计算,存在着缺陷,即当要被用户外包函数为非单向函数时,必须转化成单向函数后才能外包,当这个函数的定义域较小时,会遭遇穷举攻击,他们提出一个新的被称为基于承诺采样的方案,这个方案可以用于一般函数的计算,应用更为广泛。此外,现有的方案在解决取得报酬的信任问题上可以视为采用传统的电子现金的方法,所有的这些方案使用银行来保证支付的诚实性,这些方案中存在着主要缺陷是,银行将成为这些方案实现的瓶颈,由于计算量、通信量的限制,银行有可能不愿意参与到协议中。

综上所述,现有的外包计算支付方法存在选择-分割协议的效率较低,计算验证方面采用ringer的思想,不适用于一般函数,基于传统电子现金,银行成为支付的瓶颈等问题。



技术实现要素:

本发明的目的在于提供一种基于比特币的外包计算公平支付方法,旨在解决现有的外包计算支付方法存在选择-分割协议的效率较低,计算验证方面采用ringer的思想,不适用于一般函数,基于传统电子现金,银行成为支付的瓶颈等问题。

本发明是这样实现的,一种基于比特币的外包计算公平支付方法,所述基于比特币的外包计算公平支付方法包括:外包商O和矿工W;

O和W首先达成协议,O先支付一笔保证金,保证金将作为W诚实完成任务却未获得报酬的补偿,协议完成后,在一个时间界限内达到以下效果:

如果协议双方能够诚实的遵守协议,那么W将获得d比特币作为报酬而O将取回他的保证金d′比特币;

如果O不遵守协议即他违约了,不支付d比特币作为报酬给W,或者在规定的时间内不及时回应,那么W将获得d′比特币作为补偿;

如果O不遵守协议,即他没有完成计算任务,或者他获得了报酬,却不配合O将保证金返回给O,O也能取回保证金而W什么都得不到。

本发明采用了激励机制,使得矿工能够确信一定可以获得报酬,从而达到了协议双方的公平性。

进一步,所述基于比特币的外包计算公平支付方法具体包括以下步骤:

(1)外包商O准备外包任务Fi,利用比特币系统特殊的交易单,O和W达成协议,O承诺d′比特币作为保证金,当W完成任务却没有收到报酬d比特币时,在某个规定时间t之后将自动支付给W作为补偿,且d′,d≥d;

(2)外包商O准备外包任务Fi=<f,Di,Mi>,包含有Mi的过滤器Si发送给矿工W,W用于确认计算结果是否要被保存,任务完成之后返回结果给O;

(3)O准备未被花掉的账单Ty,即O拥有这样的一笔比特币能够用自己的私钥花出去的;O建立一个新的交易单TD,并把账单发送到比特币网络的区块链上;当t时间到达之后,只要有O、W或者是O、T的签名,这笔比特币就能兑换;

(4)O再创建合同TP的body=[TP],并对它进行签名后发送给W;如果TD未出现在比特币区块链上以及签名的[TP]在时间t1之前未发送给W,那么协议停止;

(5)O和W共同参与协议;O验证(S,ev)的正确性,并支付W个比特币作为报酬后取回他的保证金。

所述步骤(4)进一步包括:

计算:对每个输入x∈Di,W计算f(x),使用过滤器Si,如果f(x)∈Mi输出x;他收集所有的输出{x1,x2,…,xn},把这个集合记为S;

承诺:W利用基于承诺的选样算法对每个xk,k∈{1,…,n}进行承诺,最后发送Φ(R)给O。

所述承诺进一步包括:

(1)W生成m个样本下标集(i1,…,im),表示为S′;

(2)对于每个i∈{i1,…,im},W找到所有从叶子结点Li到根结点R的路径;对于每个v∈λ,W发送它的兄弟结点的Φ值,表示为λ1,…,λH

(3)最后,W发送(S,ev)给O;ev=(S′,P,f(xi),Φ(R))。

进一步,所述O和W共同参与协议有三个子协议构成:

Phase 1:由O和W共同运行;

(1)在规定时间t2之前,W发送(S,ev)给O;如果O未收到且规定时间t2已到,则O运行Phase 2;

(2)如果(S,ev)是正确的,并发送到比特币区块链上,等待确认之后,W收到d个比特币作为报酬;

(3)W收到报酬之后,W创建交易TG,对[TG]签名后发送给O,O对TG签名后,将交易单TG发送到比特币区块链上确认之后,取回他的保证金;

Phase 2:如果在规定的时间t3,W未收到报酬;

(1)W与T通信,首先他计算签名sig(SKW,abort||(S,ev),Fi,Si)并发送sig(SKW,abort||(S,ev),Fi,Si),(S,ev),Fi,Si给T;

(2)如果当前时间未到t2,那么协议停止;如果签名有效而O未运行Phase 3,那么T用自己的私钥SKT发布停止标签:

AT=sig(SKT,SIG(SKW,abort||(S,ev),Fi,Si));

(3)T发送(S,ev)给O;

(4)W等到最后的规定时间t之后,他发送交易单TP到比特币的区块链上,获得O的保证金d′比特币;

Phase 3:当O在t1时间到达时未收到计算结果(S,ev)且W从未运行Phase 2,或者到规定时间t4,W都没有发送签名的交易[TG]给O,运行该子协议;

O与T通信,发送协议到这时为止的时间戳证明proof给T;O对proof进行签名sig(SKO,proof),并将(proof,sig(skO,proof)作为证据发送给T。

本发明的另一目的在于提供一种所述基于比特币的外包计算公平支付方法的雾计算系统。

本发明的另一目的在于提供一种所述基于比特币的外包计算公平支付方法的云计算系统。

本发明的另一目的在于提供一种所述基于比特币的外包计算公平支付方法的网页内容分发系统。

本发明的另一目的在于提供一种所述基于比特币的外包计算公平支付方法的大数据分析系统。

本发明提供的基于比特币的外包计算公平支付方法,和传统电子现金不同的是,比特币是一个peer-to-peer的分散电子现金系统,用户无需银行可以直接办理。本发明适用于外包计算中,因为比特币自身的优势,可以保证诚实的矿工在完成相关计算任务的情况下,无论一个恶意的外包商如何操作,矿工都将会获得相应的报酬。

附图说明

图1是本发明实施例提供的基于比特币的外包计算公平支付方法流程图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

雾计算是云计算的一种延伸,它使得一些操作和资源处于一个网络的边缘。在雾计算的范例中,资源受限的雾计算用户(即外包商)可以将计算任务外包给不可信的雾节点(即矿工),并且向按任务他们支付相应的费用。因为缺乏信任,这就使得用户和雾节点之间存在一些信任问题。为了解决取回报酬的问题,现有的所有方案使用传统的电子现金技术。比特币是一种新的去中心化的电子货币系统,并且和传统的电子现金相比拥有不可抗拒的优势。在本发明中,提出了一个新的基于比特币的公平支付方法,本发明适用于外包计算中。因为比特币自身的优势,可以保证诚实的矿工在完成相关计算任务的情况下,无论一个恶意的外包商如何操作,矿工都将会获得相应的报酬。考虑计算任务繁重的情况,将计算任务分开并行处理,在大量的雾节点中分布式计算是最高效的方法。也就是说,一个外包商将一个庞大的计算任务分拆成很多个小的并且将它们分发给不公的雾节点计算。每个节点完成相关的计算并将计算结果发给外包商。为了方便,用O表示表示外包商,用W表示雾节点(也成为矿工)。非正式的,考虑一下计算模型:把一个计算工资看做一个函数f:D→M,并且要求对D中的所有值评估f。一个外包商O把域D分成D1,……Dnn个子域,然后把相关的Di,f和一个M中的值发送给一个矿工W。然后W计算所有x∈Di中的值f(x),并且返回所有使得f(x)=y的x值。在一个商业环境中,当且仅当W确实在规定时间前完成所有计算O才会付费给W。

下面结合附图对本发明的应用原理作详细的描述。

如图1所示,本发明实施例提供的基于比特币的外包计算公平支付方法包括以下步骤:

S101:外包商准备外包任务,利用比特币系统特殊的交易单,准备交易账单TD,TP以及对TP的签名,发送计算任务以及TP的签名给W;

S102:旷工接收计算任务,如果时间t1未收到TP的签名,以及区块链确认TD的存在,则停止。收到签名之后,如果验证不成功则停止。验证通过之后接受任务;

S103:旷工计算和承诺,并发送计算结果给外包商;

S104:外包商在时间t2之前,O没有收到结果,则与第三方联系,在T的协助下取回结果。如果验证结果是正确的,则付款,如果计算结果有误,则联系W取回保证金;

S105:外包商接收计算结果之后,支付d哥比特币作为报酬给旷工,旷工收到报酬,如果未收到报酬,则联系第三方,请求停止标签,获得保证金;

S106:旷工收到保证金之后,生产新的交易单TG,并对TG签名后,外包商取回保证金,如果旷工不配合,则外包商联系第三方,在第三方的帮助下取回保证金。

下面结合具体实施例对本发明的应用原理作进一步的描述。

1、给出比特币的简单描述,并回顾了基于承诺的选样算法。

1.1安全模型

考虑下面安全外包计算的一般模型,在这个模型中,参与者之间是互相不信任的。假设矿工是“诚实且好奇”的。下面,给出此类计算的正式定义:

计算任务F=<f,D,M>。计算任务的目标F是找出x使得f(x)∈M。外包者把定义域D分割成几个子集Di。计算任务Fi被分配给矿工Wi计算f在Di上的逆。Mi是外包商所感兴趣的值得集合。每个矿工需要计算f(x)并找出所有的x∈Di,最后返回这些满足f(x)∈Mi的所有x值。

过滤器Si(x,f(x))。过滤器Si是以(x,f(x)),x∈Di为输入,返回比特串s。Si的作用是为外包商筛选合适的输出值x。这里假设Si的运行时间是远远小于计算f的时间。

支付方案Pi。Pi可以被看做是标准的交易Tx,这个交易表示外包商支付金额v给矿工作为报酬。此外,在方案中,外包商必须准备一笔确定的比特币保证金,如果在时间t之前,矿工完成任务且没有获得应有的报酬,这笔保证金将自动补偿给矿工。

在本发明中,不同于以前的工作,比特币现金系统是一个分布式的系统,不存在着一个银行。因此在的方案中,仅考虑三个参与者,外包商,矿工以及第三方。这里假设T不是完全可信的,他可能勾结其中的的一方去欺骗另外一方。这个假设与Chen等人的方案是一样的。在所提出的支付方案,T仅作为服务器,仅仅接收O或W的请求并返回消息。利用特殊的比特币交易单,O首先承诺一笔比特币d′作为安全保证金,这笔保证金的金额远远大于W在规定时间完成工作任务之后所应获得的报酬d,即d<d′。在正常的情况下,W能够完成任务并返回结果给O。O支付报酬之后也能够要回自己的安全保证金。在出现争议的时候,T介入协议,保证支付协议的公平性。下面将给出的支付协议中所需的安全性质,定义如下。

完备性:完备性指的是诚实的O和诚实的W能够成功的运行协议,O能获得计算结果且W能够获得报酬。最后,O能取回安全保证金。敌手能够与T联系,但是不能妨碍O与W和T之间的通信,除非敌手有能力重新安排O、W与T的消息传输顺序。

公平性:考虑敌手与诚实一方之间的游戏。一般地,说敌手有能力控制网络,任意的与T交互,任意的延迟诚实参与方发送给T的请求。公平性指的是在诚实的W没有获得报酬的情况下,不诚实的O要么支付报酬要么支付罚金。或者在诚实的O没有获得计算结果的情况下,不诚实的W不能获得报酬也不能获得保证金。

可审计性:T的不诚实行为能够被检测出来。

1.2比特币

比特币是点对点的去中心化电子现金系统,用户之间不通过银行就可以直接交易。更重要的是,交易单的语法允许设计智能合约,使得同一个协议中,相互不信任的双方能够共同执行金融交易,公平性可通过比特币合约来保证。

交易单,地址和交易单是比特币现金系统两个很重要的部件。在这个系统中,采用的是椭圆曲线上的签名算法和哈希函数sha-256来保证系统的安全性。系统中的每个用户都有一对公私钥对(PK,SK)。比特币地址是用户公钥PK的哈希函数值。私钥是用于对交易单进行签名。每个用户至少需要一对公私钥对。假设Alice和Bob是比特币系统的两个用户,他们的密钥对表示为X=(PKX,SKX),X∈A,B。Alice想要支付一笔比特币(假设数量为v)给Bob。那么她要准备一个交易单Tx:Tx=(Ty,PKB,v,t,sigA(Ty,PKB,v,t))。这里Ty是现有的交易账单,sigA(Ty,PKB,v,t)是Alice对交易单主要部分body=[Tx]=(Ty,PKB,v,t)的签名。交易是有效的当且仅当以下条件都满足:(1)PKA是交易Ty的有效接收者;(2)Ty的账单金额至少为v;(3)交易单Ty没有被赎回;(4)Alice的签名是正确的;(5)时间t还未到。t为时间戳可以被设置为0。

在真实的系统中,用户可以灵活定义交易账单Ty被赎回的条件。比特币的交易单使用的脚本语言很简单,为基于栈的前向编程语言,且过程是从左往右的。这种编程语言提供了很基础的密码学函数类似于计算哈希函数或者验证签名。交易单Tx可以描述为一下形式:

这里的输出脚本控制着Tx能否被赎回的条件。在标准交易中,输入脚本是发送者的签名,输出脚本是用接收者的公钥对签名进行验证。如果时间t是0,就意味着这笔交易已经被锁定,即交易成功。

1.3基于承诺的选样算法

基于承诺的选样算法是验证矿工能够正确完成计算任务的方法,能够被用于检测在外包计算中不诚实的矿工行为。假设给定矿工定义域D,他的任务时找出满足f(x)∈M的x,并返回O所需要的{x1,x2,…,xn}。O检查每个xi是否满足f(x)∈Mi。为了减小通信开销,O在验证过程中,可以让W返回部分验证结果。根据选样技术,他可以随机选择一小部分样本,只检查样本的正确性。但是样本是由W发送的,他可能事先就知道这些样本,为了防止W在知道样本之后修改他的计算结果,基于承诺的选样算法使用默克尔哈希树的技术,让矿工在知道样本之前,先对他的计算结果进行承诺。从而保证了矿工对所有的计算结果进行承诺,保证单个计算结果的验证的有效性。

默克尔哈希树是特殊的二进制树,包含了哈希函数hash和函数Φ,可以用来做数据认证。这里的哈希函数hash是个单向哈希函数。Φ将结点集映射到固定长度的字符串。在这样的哈希树中,每个内部结点的Φ值是这个结点的左右孩子结点级联在一起的哈希函数值。叶子节点存储真实数据的哈希函数值。函数Φ是如下定义的:

Φ(Li)=f(xi)fori=1,…,n, (1)

Φ(V)=hash(Φ(Vleft)||Φ(Vright)), (2)

这里的“||”表示两个串的级联。V表示内部结点,Vleft,Vright表示V的两个孩子结点。矿工W对所有的计算结果进行承诺,只需要发送Φ(R),R为哈希树的根结点

具体的方案描述如下:

初始化:外包商O准备计算任务Fi=<f,Di,Mi>。包含有Mi的过滤器Si发送给矿工W,W用于确认计算结果是否要被保存,任务完成之后返回这些结果给O。

计算和承诺:过滤器Si输入(x,f(x)),并验证满足f(x)∈Mi的原像是否为O所需要的。如果结果是,输出x;否则输出空串。W计算所有的x使得f(x)∈Mi,并通过过滤器Si处理,收集所有的输出{x1,x2,…,xn}。通过以下方式对每个xk,k∈{1,…,n}进行承诺:

(1)哈希树的建立。W构造具有n个叶子结点的默克尔哈希树,每个叶子表示为Li,i∈1,…,n。最后W发送Φ(R)给外包商。

(2)令h是单向函数。W利用以下的方法来生成m个数i1,…,im,ik∈{1,…,n}:

ik=(hk(Φ(R))modn)+1,k=1,…,m:

对于每个i∈{i1,…,im},xi是样本。W找到从叶子结点Li到根结点的路径表示为λ,对每个v∈λ,W发送它的兄弟结点的Φ给外包商O,这些验证路径的Φ值集合表示为λ1,…,λH。令S表示结果集{x1,x2,…,xn}。S′表示样本集,P表示为验证路径集,最后,W发送S,S′,P,f(xi),Φ(R)给外包商。

验证和支付:外包商O验证xi,i∈{i1,…,im}是否正确。

如果f(xi)是错误的,那么验证停止。外包商拒绝支付报酬。

如果f(xi)是正确的,那么外包商通过重构哈希树,计算出根结点的值Φ(R′)。如果Φ(R)≠Φ(R′),那么验证停止。如果Φ(R)=Φ(R′),验证成功。

如果所有的样本验证都是正确的,那么外包商能够以很高的概率确认计算任务被正确完成。最后W获得报酬。

2、基于比特币的安全支付协议

2.1整体描述

本发明考虑商业模式下的安全外包模型,在这类模型下,外包商O和矿工W之间存在着信任的问题。O不相信W能够正确的完成任务而W也不信任O能够支付报酬。在前面的工作中,提出了很多解决这类信任问题的方案,都是基于传统的电子现金来设计支付方案。所提出的方案是基于比特币电子现金系统,这个系统中不存在银行,更重要的是,比特币提供了很引人注意的技术使得诚实的矿工能够确信,无论不诚实的O如何作弊,他都能获得相应的报酬。

协议的主要思想如下:O和W首先达成协议,O先支付一笔保证金,这笔保证金将作为W诚实完成任务却未获得报酬的补偿,这笔保证金的金额远远多于他所能得到的报酬。协议完成后,在一个时间界限内,将获得以下结果:

如果协议双方能够诚实的遵守协议,那么W将获得d比特币作为报酬而O将取回他的保证金d′比特币。

如果O不遵守协议即他违约了,不支付d比特币作为报酬给W,或者在规定的时间内不及时回应,那么W将获得d′比特币作为补偿。

如果O不遵守协议,即他没有完成计算任务,或者他获得了报酬,却不配合O将保证金返回给O,O也能取回保证金而W什么都得不到。

2.2所提出的公平支付协议

将给出所提出的基于比特币的公平支付方案。首先介绍一些相关的符号。假设每个参与方都有一对ECDSA密钥对X=(PKX,SKX),X∈{O,W,T}用于比特币系统。所有的参与协商相应的用于接收比特币的公钥。SigX(Tx)表示对交易单Tx的签名,sigX(Tx)表示参与方X∈{O,W,T}对消息的签名。

系统初始化:外包商O准备外包任务Fi,利用比特币系统特殊的交易单,O和W达成协议,O承诺d′比特币作为保证金,这笔保证金,当W完成任务却没有收到报酬d比特币时,在某个规定时间t之后将自动支付给W作为补偿,且d′,d≥d。

任务生成:外包商O准备外包任务Fi=<f,Di,Mi>,包含有Mi的过滤器Si发送给矿工W,W用于确认计算结果是否要被保存,任务完成之后返回这些结果给O。

合同建立:O准备未被花掉的账单Ty,即O拥有这样的一笔比特币能够用自己的私钥花出去的。O建立一个新的交易单TD,用以下简单的表格描述,并把这个账单发送到比特币网络的区块链上。这个表格描述了这个账单能被兑现的条件。这里其实就是承诺这些比特币作为保证金,当t时间到达之后,只要有O、W或者是O、T的签名,这笔比特币就能兑换。

接下来,O再创建合同TP的body=[TP],并对它进行签名后发送给W。如果TD未出现在比特币区块链上以及签名的[TP]在时间t1之前未发送给W,那么协议停止。

计算和承诺:

计算:对每个输入x∈Di,W计算f(x),使用过滤器Si,如果f(x)∈Mi输出x。他收集所有的输出{x1,x2,…,xn},把这个集合记为S。

承诺:W利用基于承诺的选样算法对每个xk,k∈{1,…,n}进行承诺,最后发送Φ(R)给O。

(1)W生成m个样本下标集(i1,…,im),表示为S′。

(2)对于每个i∈{i1,…,im},W找到所有从叶子结点Li到根结点R的路径。对于每个v∈λ,W发送它的兄弟结点的Φ值,表示为λ1,…,λH

(3)最后,W发送(S,ev)给O。这里的ev=(S′,P,f(xi),Φ(R))。

验证和支付:O和W共同参与协议。O验证(S,ev)的正确性,并支付W个比特币作为报酬后取回他的保证金。本部分的协议有三个子协议构成。在正常的情况下,只运行Phase 1。如果O收到计算结果,但是他在规定的时间内拒绝支付报酬给W,则W运行Phase 2请求T发送停止标签,W等到规定时间到了之后,他获得O的保证金。如果W在规定的时间内,没有发送(S,ev)给O或者拒绝与O合作返回保证金,那么O运行Phase 3,在T的帮助之下取回保证金。

Phase 1:由O和W共同运行。

(1)在规定时间t2之前,W发送(S,ev)给O。如果O未收到且规定时间t2已到,则O运行Phase 2。

(2)如果(S,ev)是正确的,则O准备标准的比特币交易单如下,并发送到比特币区块链上,等待确认之后,W收到d个比特币作为报酬。

(3)W收到报酬之后,W创建交易TG,对[TG]签名后发送给O,O对TG签名后,将交易单TG发送到比特币区块链上确认之后,取回他的保证金。

Phase 2:如果在规定的时间t3,W未收到报酬。

(1)W与T通信。首先他计算签名sig(SKw,abort||(S,ev),Fi,Si)并发送sig(SKw,abort||(S,ev),Fi,Si),(S,ev),Fi,Si给T。

(2)如果当前时间未到t2,那么协议停止。如果签名有效而O未运行Phase 3,那么T用自己的私钥SKT发布停止标签:

AT=sig(SKT,SIG(SKW,abort||(S,ev),Fi,Si));

(3)T发送(S,ev)给O。

(4)W等到最后的规定时间t之后,他发送交易单TP到比特币的区块链上,获得O的保证金d′比特币。

Phase 3当O在t1时间到达时未收到计算结果(S,ev)且W从未运行Phase 2,或者到规定时间t4,W都没有发送签名的交易[TG]给O,运行该子协议。

(1)O与T通信,发送协议到这时为止的时间戳证明proof给T。这证明包含防篡改的证明以及协议运行过程中交换的相关信息。O对proof进行签名sig(SKO,proof),并将(proof,sig(skO,proof)作为证据发送给T。

如果当前时间未到t3,则T联系W并请求他发送计算结果。如果W发送计算结果(S,ev)给T,那么T拒绝O的请求并发送计算结果给O。否则,T用私钥SKT对交易单Tget签名后,发送对[Tget]的签名给O,O发送交易Tget到比特币区块链上,获得他的保证金。

如果当前的时间已经超过t4而W未运行Phase 2,则T用私钥SKT对交易单Tget签名后,发送对[Tget]的签名给O。

注释1:比特币的合同是互不信任的双方在比特币区块链达成协议的方法。在比特币真实系统中,验证签名的条件是很灵活的,这是因为交易的形式是通过SIGHASH标志来控制,这个标志附加于签名的后面。因此可以根据这种方法来构造合同,允许一个用户只能做部分的签名,另一个用户能够在前一个用户没参与的情况下,再进行改变。在的协议当中,有两个交易:TD和TP。这里TP被称为合同,这个交易单已经创建但是并未马上广播到比特币区块链上。而交易TD是支付保证金的交易,当合同已经协商好了之后,这笔保证金被锁定了,这意味着O的保证金被冻结了直到他诚实的支付报酬。如果O拒绝支付报酬那么合同被广播到比特币的区块链上,当锁定的时间解锁之后,W将获得赔偿。

注释2:协议包含了一个第三方,在双方出现争议的时候介入。在每个子协议中,都有个限定时间ti,i∈{1,2,3,4}且t1<t2<t3<t4,t>>ti。假设所有被认证消息的签名都是不可伪造的,而且O和W都没有能力伪造协议脚本的时间标志。

注释3:比特币脚本的特征使得比特币交易单有着灵活的性质。这些性质能够使一部分比特币锁定作为保证金,这笔保证金必须在一定得条件下才能取回。在的文章中,这是利用比特币的特殊性质来构建公平协议解决O和W之间的信任问题。

下面结合安全分析对本发明的应用效果作详细的描述。

将分析所提出协议的安全性。正如前面描述,假设外包商O和“诚实但是好奇”的矿工W互不信任。此外,考虑第三方T可能与他们其中一方勾结也是不可信的。

定理1.所提出的协议满足完备性。

证明:在正常情况下,如果外包商O和矿工W都是诚实的,他们能够成功的运行子协议Phase 1。O能够获得计算结果而W也能获得报酬。在最后,O能够取回他的保证金。

定理2.所提出的方案满足公平性。

证明:首先证明O的公平性。假设存在诚实的O和不诚实的W。说W能够欺骗成功当且仅当在限定时间t之前,W获得保证金而O未获得计算结果(S,ev)。

假设,在时间t之前,O未获得计算结果(S,ev),显然,W也不能获得报酬。但是W想要获得d比特币的保证金,那么,他只能运行子协议Phase 2。然而,O能够从第三方T获得计算结果(S,ev),因此,与假设矛盾。W欺骗概率是可忽略的。

反过来,证明W的公平性。假设不诚实的O和诚实的W参与协议。说O能够欺骗成功当且仅当O获得计算结果(S,ev)且能取回保证金而W什么都得不到。同样,假设W既没有获得报酬也没有得到保证金。如果W在规定的时间内没有完成任务,那么O也没有获得计算结果。否则,W可以成功的运行子协议Phase 3并在T的帮助下获得保证金。这与假设矛盾。因此,O获得计算结果而没有支付报酬的概率是可忽略的。

定理3.所提出的方案满足可审计性。

证明:假设第三方T与W运行Phase 2,且在规定时间之前,不发送计算结果(S,ev)给O。那么将有两种情形出现:1.W在规定的时间没有完成计算任务与T勾结。2.W发送计算结果给T,但是T不发送给O。在以上任何情况下,O都会运行Phase 3获得T对TD的签名,这意味着O能够取回他的保证金而W什么都没获得。

同样的,假设T与O运行Phase 3。如果T与O勾结,这意味着W完成了所有的任务但是他没有得到任何报酬。在这种情况下,W必须运行Phase 2从T获得停止标签以及T对交易TD的签名。如果重复花费在比特币网络上检测出来,那么W能提供停止标签以及被O赎回的交易单。这样,T的作弊行为就能被检测出来。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

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