一种基于智能合约的锚定方法及基于该方法的商业方法与流程

文档序号:21411650发布日期:2020-07-07 14:47阅读:253来源:国知局
一种基于智能合约的锚定方法及基于该方法的商业方法与流程

本发明涉及区块链技术领域,具体地说,涉及一种基于智能合约的锚定方法及基于该方法的商业方法。



背景技术:

为了保护本地数据免受未经授权的更改,能够通过将本地数据锚定至区块链中实现。使用者将本地数据锚定至区块链中后,能够获取链上的证明;使用者通过比对链上所存储的数据哈希与本地数据的实时哈希,即可较佳地知晓本地数据是否有所改动。

就现有的数据链上锚定而言,实际的锚定需求方往往不具备足够的数据锚定能力,故使得数据的链上锚定存在成本较高、门槛过高等问题。



技术实现要素:

本发明提供了一种基于智能合约的锚定方法,其能够克服现有技术的某种或某些缺陷。

根据本发明的一种基于智能合约的锚定方法,其通过创建基于智能合约的锚定任务,将数据的锚定过程由多个角色分多个阶段执行。

本发明中,通过基于智能合约创建锚定任务,能够将一个数据的锚定过程在不同阶段由不同的角色来完成,这使得在数据锚定的每个阶段中均能够由相关阶段的专业人员完成对应动作,从而能够较佳地实现数据锚定的流水化作业。给予此种方案使得,能够大大地降低对锚定需求方的技术要求以及其完成锚定的所需成本。

作为优选,所述多个角色包括服务商角色si、用户角色ui、代理角色ai以及矿工角色mi;

服务商角色si为锚定服务的提供方,一组服务商角色si记为s={s1,s2,…,sn},si∈s,每个服务商角色si的信息sai均在区块链上注册;

用户角色ui为数据锚定服务的需求方,一组用户角色ui记为u={u1,u2,…,un},ui∈u,每个用户角色ui的信息uai均在区块链上注册;

代理角色ai为数据锚定服务的实际执行方,一组代理角色ai记为a={a1,a2,…,an},ai∈a,每个代理角色ai的信息aai均在区块链上注册;

矿工角色mi为数据锚定服务的公证方,一组矿工角色mi记为m={m1,m2,…,mn},mi∈m,每个矿工角色mi的信息mai均在区块链上注册。

本发明中,服务商角色si为锚定任务的创建方,其能够通过创建锚定任务将用户角色ui、代理角色ai和矿工角色mi进行关联,从而实现协同完成数据的锚定过程。用户角色ui能够通过筛选相关的锚定任务并签订与其相关的智能合约内容,实现待锚定数据信息的上传。代理角色ai能够通过竞拍相关的锚定任务务并签订与其相关的智能合约内容,实现对锚定任务中所指向的数据锚定需求的执行。矿工角色mi能够通过投票的方式实现对数据锚定是否成功进行公证。

作为优选,所述多个阶段依次包括,

锚定任务创建阶段,该阶段中服务商角色si通过智能合约创建锚定任务;

数据收集阶段,该阶段中用户角色ui选择合适的锚定任务上传待锚定数据信息并支付相应锚定任务中所规定的费用;

竞拍阶段,该阶段中代理角色ai支付押金并通过竞拍获取相关锚定任务的执行权;

锚定阶段,该阶段中获取锚定任务执行权的代理角色ai将用户角色ui的待锚定数据锚定至目标公有链中;

报告阶段,该阶段中代理角色ai将锚定阶段的执行结果发送给锚定任务;

公证阶段,该阶段中矿工角色mi对代理角色ai发送给锚定任务的执行结果进行公证;以及

结算阶段,该阶段中对用户角色ui、代理角色ai及矿工角色mi的费用进行结算。

本发明中,通过分阶段对锚定过程进行实现,使得整个锚定过程能够有序地被实施,从而能够较佳地实现对数据的锚定。

作为优选,锚定任务创建阶段中,所创建的锚定任务能够为一个属性元组at,

at=(id,clist,targetchain,tsscope,fee,agentdeposit,sa,settle):

其中,

id∈{0,1}l为锚定任务的唯一标识符;

clist为用于收集用户角色ui的待锚定数据信息的集合列表,clist初始化为空列表;

targetchain为目标公有链,其由服务商角色si进行指定且能够不限制公有链类型;

tsscope为锚定任务在每个阶段中的时间限制,tsscope被定义为一个集合{creation,collecting,auction,reporting},分别表示锚定任务创建阶段、数据收集阶段、竞拍阶段和报告阶段的结束时间;

fee为用户角色ui在锚定成功完成后所需支付的服务费;

agentdeposit为代理角色ai所需支付的押金;

sa为锚定任务的所属服务商角色si;

settle被定义为一个集合{agent,miner},代表锚定任务成功完成后分配给代理角色ai和矿工角色mi的费用。

本发明中,所创建的锚定任务本质为包含多项内容的智能合约,不同项内容的智能合约能够与不同的角色进行签订,进而能够较佳地实现多角色协同完成数据的链上锚定。

作为优选,数据收集阶段中,用户角色ui能够首先在本地对待锚定数据执行哈希计算生成待锚定数据的条目entry以及与该待锚定数据唯一对应的标识id,之后选择合适的锚定任务并与之进行签订,进而支付相关的费用并上传集合(id,entry,uai)填充至clist中。

本发明中,通过数据收集阶段中使得用户角色ui能够较佳地选择合适的锚定任务以满足数据锚定的需求,从而大大地简化了用户角色ui的锚定数据流程并能够较佳地降低锚定成本。

作为优选,竞拍阶段中,当满足now>tsscope.collecting时,数据收集阶段结束,锚定任务进入竞拍阶段,代理角色ai通过缴纳锚定任务中所规定的押金参与对相应锚定任务的竞拍;竞拍获胜的规则为0≤p(t)=minpi(t)≤settle.agent,其中,settle.agent表示相应锚定任务成功完成后分配给代理角色ai的费用,pi(t)表示代理角色ai的竞拍出价,p(t)表示最新的出价;在now=tsscope.auction时,p(t)作为最终的价格赢得竞拍,也即该出价的所对应的代理角色ai赢得竞拍;同时,对于竞拍失败的代理角色ai,锚定任务退还其所缴纳的押金。

本发明中,过设置竞拍阶段,使得每个代理角色ai均能够自主地参与任一锚定任务的竞拍,且能够较佳地通过低价竞拍的方式实现对相应锚定任务的拍卖。

作为优选,锚定阶段和报告阶段中,获取相应锚定任务执行权的代理角色ai在时间抵达tsscope.reporting之前,代理角色ai向目标公有链锚定用户角色ui所需锚定的数据,并将锚定结果(id,txid,aa)发送给锚定任务。

本发明中,通过tsscope.reporting的设置,能够对代理角色ai的执行时间进行限定,通过将锚定结果(id,txid,aa)发送给锚定任务能够较佳地返回锚定结果。

作为优选,公证阶段中,在now>tsscope.reporting时进入公证阶段,此时矿工角色mi对锚定结果进行投票,并在公证阶段结束时对投票数进行统计,若肯定锚定结果的投票数不少于总投票数的50%则判定锚定任务成功,反正则判定锚定任务失败。

本发明中,通过矿工角色mi在公证阶段中对锚定结果的投票公证,能够较佳地实现对锚定结果真实性的判定。

作为优选,结算阶段中,在公证阶段完成则表示锚定任务已经结束,此时进入结算阶段进行结算,结算阶段根据锚定任务是否完成对锚定任务中所参与的角色进行结算。

过结算阶段的结算能够较佳地根据锚定任务的完成状态进行相应的结算,从而能够较佳地实现对锚定任务的参与角色进行报酬分配。

本发明还提供了一种商业方法,其通过采用上述中的任一种方法实现数据锚定的商业化。故能够较佳地实现数据锚定的商业化运营。

附图说明

图1为实施例1中的一种基于智能合约的锚定方法的框架示意图;

图2为实施例1中的一种基于智能合约的锚定方法简化流程示意图。

具体实施方式

为进一步了解本发明的内容,结合附图和实施例对本发明作详细描述。应当理解的是,实施例仅仅是对本发明进行解释而并非限定。

实施例1

本实施例提供了一种基于智能合约的锚定方法,其通过创建基于智能合约的锚定任务,将数据的锚定过程由多个角色分多个阶段执行。

本实施例中,通过基于智能合约创建锚定任务,能够将一个数据的锚定过程在不同阶段由不同的角色来完成,这使得在数据锚定的每个阶段中均能够由相关阶段的专业人员完成对应动作,从而能够较佳地实现数据锚定的流水化作业。给予此种方案使得,能够大大地降低对锚定需求方的技术要求以及其完成锚定的所需成本。

结合图1所示,所述多个角色包括服务商角色si、用户角色ui、代理角色ai以及矿工角色mi,

服务商角色si为锚定服务的提供方,一组服务商角色si记为s={s1,s2,...,sn},si∈s,每个服务商角色si的信息sai均在区块链上注册;

用户角色ui为数据锚定服务的需求方,一组用户角色ui记为u={u1,u2,…,un},ui∈u,每个用户角色ui的信息uai均在区块链上注册;

代理角色ai为数据锚定服务的实际执行方,一组代理角色ai记为a={a1,a2,...,an},ai∈a,每个代理角色ai的信息aai均在区块链上注册;

矿工角色mi为数据锚定服务的公证方,一组矿工角色mi记为m={m1,m2,…,mn},mi∈m,每个矿工角色mi的信息mai均在区块链上注册。

本实施例中,服务商角色si为锚定任务的创建方,其能够通过创建锚定任务将用户角色ui、代理角色ai和矿工角色mi进行关联,从而实现协同完成数据的锚定过程。用户角色ui能够通过筛选相关的锚定任务并签订与其相关的智能合约内容,实现待锚定数据信息的上传。代理角色ai能够通过竞拍相关的锚定任务务并签订与其相关的智能合约内容,实现对锚定任务中所指向的数据锚定需求的执行。矿工角色mi能够通过投票的方式实现对数据锚定是否成功进行公证。

可以理解的是,本实施例中的锚定任务本质为包含多种内容的智能合约,不同的角色能够通过签订对应内容的智能合约实现与锚定任务的关联,进而能够较佳地实现数据链上锚定的分工、分过程完成。

本实施例中,服务商角色si能够在锚定任务中指定相关的目标公有链,该所指定的公有链,也即能够作为数据锚定所指向的目标公有链。

结合图2所示,所述多个阶段依次包括:

锚定任务创建阶段,该阶段中服务商角色si通过智能合约创建锚定任务;

数据收集阶段,该阶段中用户角色ui选择合适的锚定任务上传待锚定数据信息并支付相应锚定任务中所规定的费用;

竞拍阶段,该阶段中代理角色ai支付押金并通过竞拍获取相关锚定任务的执行权;

锚定阶段,该阶段中获取锚定任务执行权的代理角色ai将用户角色ui的待锚定数据锚定至目标公有链中;

报告阶段,该阶段中代理角色ai将锚定阶段的执行结果发送给锚定任务;

公证阶段,该阶段中矿工角色mi对代理角色ai发送给锚定任务的执行结果进行公证;以及

结算阶段,该阶段中对用户角色ui、代理角色ai及矿工角色mi的费用进行结算。

本实施例中,通过分阶段对锚定过程进行实现,使得整个锚定过程能够有序地被实施,从而能够较佳地实现对数据的锚定。

锚定任务创建阶段中,所创建的锚定任务能够为一个属性元组at:

at=(id,clist,targetchain,tsscope,fee,agentdeposit,sa,settle):

其中,

id∈{0,1}l,为锚定任务的唯一标识符;

clist为用于收集用户角色ui的待锚定数据信息的集合列表,clist初始化为空列表;

targetchain为目标公有链,其由服务商角色si进行指定且能够不限制公有链类型;

tsscope为锚定任务在每个阶段中的时间限制,tsscope被定义为一个集合{creation,collecting,auction,reporting},分别表示锚定任务创建阶段、数据收集阶段、竞拍阶段和报告阶段的结束时间;

fee为用户角色ui在锚定成功完成后所需支付的服务费;

agentdeposit为代理角色ai所需支付的押金;

sa为锚定任务的所属服务商角色si;

settle被定义为一个集合{agent,miner},代表锚定任务成功完成后分配给代理角色ai和矿工角色mi的费用。

本实施例中,所创建的锚定任务本质为包含多项内容的智能合约,不同项内容的智能合约能够与不同的角色进行签订,进而能够较佳地实现多角色协同完成数据的链上锚定。

其中,锚定任务中的id能够作为该锚定任务中的唯一标识符,故能够较佳地对相应锚定任务进行标识;targetchain能够对此次锚定任务所指向的公有链进行指定,故能够较佳地明确目标公有链;sa能够对相应锚定任务的所属的服务商角色si进行标识,故能够较佳地对服务商角色si进行标记。

其中,锚定任务中与用户角色ui相关的内容为clist和fee,通过定义该两种属性,使得用户角色ui能够较佳地上传待锚定数据信息且能够较佳地支付相应的费用。

其中,锚定任务中与代理角色ai相关的内容为agentdeposit和settle,通过agentdeposit使得代理角色ai在签订锚定任务中的相关智能合约时能够支付规定的押金,故能够较佳地防止代理角色ai在执行过程中的不作为;通过settle能够较佳地实现对代理角色ai费用的结算。

其中,锚定任务中与矿工角色mi相关的内容为settle,通过settle能够较佳地实现对矿工角色mi费用的结算。

其中,锚定任务中通过tsscope定义锚定任务各个阶段的开始和/或结束时间;tsscope被定义为一个集合{creation,collecting,auction,reporting},该集合中tsscope.creation表示锚定任务创建阶段结束时间,tsscope.collecting表示数据收集阶段结束时间,tsscope.auction表示竞拍阶段结束时间,tsscope.reporting表示报告阶段的结束时间;这使得,若当前时间now满足now≤tsscope.collecting,则表示该锚定任务处于数据收集阶段;若当前时间now满足tsscope.auction≥now>tsscope.collecting,则表示该锚定任务处于竞拍阶段;若当前时间now满足tsscope.reporting≥now>tsscope.auction,则表示该锚定任务处于锚定和报告阶段;若当前时间now满足now>tsscope.reporting,则进入公证阶段。

数据收集阶段中,用户角色ui能够首先在本地对待锚定数据执行哈希计算生成待锚定数据的条目entry以及与该待锚定数据唯一对应的标识id,之后选择合适的锚定任务并与之进行签订,进而支付相关的费用并上传集合(id,entry,uai)填充至clist中。

其中,合适的锚定任务首先需要锚定任务处于数据收集阶段,即now≤tsscope.collecting;其次,用户角色ui能够根据锚定任务中所发布的诸如targetchain、fee、sa等信息对锚定任务进行筛选。

本实施例中,通过数据收集阶段中使得用户角色ui能够较佳地选择合适的锚定任务以满足数据锚定的需求,从而大大地简化了用户角色ui的锚定数据流程并能够较佳地降低锚定成本。

竞拍阶段中,当满足now>tsscope.collecting时,数据收集阶段结束,锚定任务进入竞拍阶段,代理角色ai通过缴纳锚定任务中所规定的押金参与对相应锚定任务的竞拍;竞拍获胜的规则为0≤p(t)=minpi(t)≤settle.agent,其中,settle.agent表示相应锚定任务成功完成后分配给代理角色ai的费用,pi(t)表示代理角色ai的竞拍出价,p(t)表示最新的出价;在now=tsscope.auction时,p(t)作为最终的价格赢得竞拍,也即该出价的所对应的代理角色ai赢得竞拍;同时,对于竞拍失败的代理角色ai,锚定任务退还其所缴纳的押金。

本实施例中,通过设置竞拍阶段,使得每个代理角色ai均能够自主地参与任一锚定任务的竞拍,且能够较佳地通过低价竞拍的方式实现对相应锚定任务的拍卖。

锚定阶段和报告阶段中,获取相应锚定任务执行权的代理角色ai在时间抵达tsscope.reporting之前,代理角色ai向目标公有链锚定用户角色ui所需锚定的数据,并将锚定结果(id,txid,aa)发送给锚定任务。

本实施例中,通过tsscope.reporting的设置,能够对代理角色ai的执行时间进行限定,通过将锚定结果(id,txid,aa)发送给锚定任务能够较佳地返回锚定结果。

其中,锚定结果(id,txid,aai)中的信息能够包含锚定结果的唯一识别id、交易号以及执行本次操作的代理角色ai的信息,从而能够较佳地对锚定结果进行追溯。

公证阶段中,在now>tsscope.reporting时进入公证阶段,此时矿工角色mi对锚定结果进行投票,并在公证阶段结束时对投票数进行统计,若肯定锚定结果的投票数不少于总投票数的50%则判定锚定任务成功,反正则判定锚定任务失败。

本实施例中,通过矿工角色mi在公证阶段中对锚定结果的投票公证,能够较佳地实现对锚定结果真实性的判定。其中,公证的目的是确保锚定内容只被锚定在锚定任务中所指定的公有链上并且内容无误;由于锚定任务必须在指定的时间内完成,因此公证阶段的结果是锚定任务的最终结果,也是最终的证明。

本实施例中,如果锚定结果在锚定任务中被发现,则要求矿工角色mi在创建一个区块时对锚定结果进行投票;矿工角色mi在参与公证时,只关心结果的真实性,这意味着被公证方需要对目标链上的结果进行核查。

本实施例中,能够设置一个固定的时间框架,也即公证时间notarizetime,公证阶段在到达公证时间notarizetime前完成。

其中,投票能够被定义为一个元组(id,bool,ma),其中id为该投票的唯一标识,bool为投票结果,ma为参与投票的矿工角色mi的集合。在检测到锚定结果后,矿工角色mi能够创建一个引用锚定任务的投票,并将投票结果发送到锚定任务中,且只有有效的投票才能被接受。

本实施例中,定义有效的投票需要满足如下条件:投票者必须为当前区块的矿工;投票只能是yes或者no;每个区块只能有一个投票;投票时间必须为公证阶段开始之前。公式如下:

其中,其中accountcoinbasetx代表当前区块的提交者账户,可通过智能合约查看coinbase交易获取;“yes”或“no”代表矿工角色mi对锚定结果的投票结论,“yes”表示肯定锚定结果,“no”表示否定锚定结果;在一个区块中,只有一张有效的选票;在notarizetime抵达之后,计算选票的数量,如果锚定任务收到不少于50%的“yes”选票则锚定任务成功,否则失败。

结算阶段中,在公证阶段完成则表示锚定任务已经结束,此时进入结算阶段进行结算,结算阶段根据锚定任务是否完成对锚定任务中所参与的角色进行结算。

本实施例中,通过结算阶段的结算能够较佳地根据锚定任务的完成状态进行相应的结算,从而能够较佳地实现对锚定任务的参与角色进行报酬分配。

其中,已经结束的锚定任务的状态包括已完成和未完成,已完成的锚定任务的状态包括成功和失败,未完成任务的锚定任务的状态包括数据收集阶段失败、竞拍阶段失败和报告阶段失败。

对于成功完成的锚定任务,在结算阶段时,锚定任务收取用户角色ui所支付的费用,并向代理角色ai和所有投“yes”票的矿工角色mi支付报酬,服务商角色si收取剩余费用。

对于失败完成的锚定任务,在结算阶段时,锚定任务退回用户角色ui所支付的费用,并收取代理角色ai所支付的押金作为惩罚,并将所收取的押金按一定比例分配给服务商角色si和投“no”票的矿工角色mi。

对于收集阶段失败的未完成锚定任务,因无用户角色ui参与,故在结算阶段时,无需进行费用结算。

对于竞拍阶段失败的未完成锚定任务,也即无代理角色ai参与竞拍,故在结算阶段时,只需退回用户角色ui所支付的费用。

对于报告阶段失败的未完成锚定任务,也即竞拍获胜的代理角色ai未执行数据的锚定,故在结算阶段时,退回用户角色ui所支付的费用,并收取代理角色ai所支付的押金作为服务商角色si的报酬。

基于本实施例中的方法,本实施例还提供了一种商业方法,其通过本实施例中的方法实现对数据锚定的商业化运营。

以上示意性的对本发明及其实施方式进行了描述,该描述没有限制性,附图中所示的也只是本发明的实施方式之一,实际的结构并不局限于此。所以,如果本领域的普通技术人员受其启示,在不脱离本发明创造宗旨的情况下,不经创造性的设计出与该技术方案相似的结构方式及实施例,均应属于本发明的保护范围。

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