用于区块链内待交换价值或物品公平交换的方法和系统与流程

文档序号:17377031发布日期:2019-04-12 23:25阅读:203来源:国知局
用于区块链内待交换价值或物品公平交换的方法和系统与流程

本发明涉及区块链领域,尤其涉及用于区块链内待交换价值或物品公平交换的方法和系统。



背景技术:

只要发生了交易,就会产生交易成本,成本不仅仅包含看得见的金钱成本,还包括看不见的时间等成本,不过所有成本中信任成本是最高的,信任也是产生交易的前提。目前生活中通常做法是找个信用评级s+的公司或机构,通过可信第三方机构进行交易。如今的中心化机构通过政府或者集团公司的背书,把所有价值转移的计算都放在一个中心服务器中进行处理,其中一定会涉及人的参与,由于人既有自私的也有不自私的,有贪婪也有不贪婪的,往往会使得整个系统变得不那么可信。当失信的利益超过代价时,可能就会出现问题。没有信任也就不会存在交易,目前几乎也不存在绝对的可信任的对象。

区块链技术就这样应运而生,它可以在没有第三方信任背书的情况下,在一个开放式的平台上进行远距离的价值转移。全网中所有授权者与参与者都保存着一份完全相同的账本。既然是去中心化,那就没有某一个人或者某一个操作者可以去篡改数据,任意修改都会被发现并丢弃。同时任意参与者都可以查看所有交易数据,这种公开透明的特点完全避免了篡改的可能性。

然而,这种机制仍然存在信任危机,带来的是公平交换实现的难度。公平交换又称为交换公平,目前公平交换大多都是通过得到双方或者多方的信任的可信第三方(ttp,trustedthirdparty)来实现的,其中ttp是通过法律、行政、商业等等途径得到可信资质,接受有关国家管理部门的监督,为各种系统提供维护运行服务的机构。公平交换是交易的一个重要原则,当事方并不完全相互信任,如网购、数字协议签署以及授权邮件等,区块链是一种受信任的第三方,由许多不受信任的各方形成,公平交换协议必须保证恶意的一方对于诚实的一方不会获得任何利益,更具体地来说,需要满足下面的要求:1)效率,如果两方行为都正确,最终会发生交换;2)公平性,包括强公平和弱公平,强公平表示在协议终止的时候,两方都能够获得所需,或者两方都没有获得所需,弱公平表示在强公平无法获得的多种情形下,诚实一方可以证明给外部仲裁机构另一方已经接收到或者仍然能够接收到后者期望接收的东西;3)及时性,诚实一方可以确定在确定的时间点完成协议,并且在协议完成的时候,交换状态从该诚实一方看来已经最终确定,及时性要求确定一个固定的协议完成的时间点,该特性避免交换的一方无限地等待另一方,以确定交换的结果,如成功交换或是失败;4)非侵入性,允许在不做出对协议有任何解构要求的情况下交换任意物品,即公平交换协议不允许对自身对待交换物品的形式进行要求,例如,交换按照任何标准数字签名算法形成的签名,如rsa或ecdsa,被认为是非侵入性的;5)交易的持续时间,即交换所花费的时间应当短。有ttp的参与虽然可以实现公平交换,但是在网络交易量较大的情况下,ttp实时参与交易活动很可能造成网络运行的瓶颈,而且还大大影响交易效率。假设两方原则上同意了一项交易,这将涉及它们以某种方式将有价值的东西相互传递,即使两方均同意了如何交换的时间表,也没有任何东西可以强迫任何一方发送特定消息给区块链,从而造成不公平交换发生的可能性,因此100%保证实施公平交换在目前的交换机制下是不可能的。此外,对于时间的及时性要求很可能会导致即使两方都是诚实的,交换仍然会失败,从而影响有效性的要求,而对于资源受限的设备,例如电池电量或带宽都受限的设备来说长时间的等待是无法接受的。

此外,对于随机交换物品的情况下可以采用目前的交换机制,而如果待交换的价值或者商品自身存在于区块链中,需要提供一种新的机制,可以同时满足公平和及时性的要求。由于超时和匿名矿工的关联交易,确保一对区块链交易同时发生或者根本不发生在现有技术中是没有机制保证的,少数腐败的矿工无法遵守规则从而导致公平交换失败。例如,a和b同意交换x和y的情形下,a和b同时签署交易协议ab,ba以使得交易生效,同时a和b也签署了“取消”交易的协议aa和bb,分别用于将x和y返回各自一方。矿工知道a和b涉及的交易对(aa,ab)和(bb,ba)以及(aa,ba)和(bb,ab)是不应当同时发生的,或者说按照诚实原则两对交易对是不一致的,每个诚实矿工应该投票支持(ab,ba)或(aa,bb),分别表示发生交换或者无交换发生。如果存在一些不特定原因,对于上述两对选择之间达到了完美的平衡,那么很显然一些不诚实的矿工没有遵守规则,会打破这种平衡,从而使得不一致的交易对得到大多数投票,例如(aa,ba)获得大多数投票,那么a会将自身的x返回,同时得到b的y,这对b显然是不公平的。

现有的交换机制就会面临如下问题,都是无法令人满意的:

1)所发布的多个区块需要额外的核查步骤,由多名矿工执行,核查内容包括关于无此额外的核查功能情况下公平交换必要的部分是否已经实现;

2)这些区块需要被分叉;

3)公平交换的原则遭到违背。



技术实现要素:

鉴于上述技术问题,本公开内容提出了在没有可信第三方参与的情况下用于实现区块链内待交换价值或物品公平交换的方法和系统。

在本公开内容的一个方面,提供了一种区块链内待交换价值或物品公平交换的方法,用于第一用户与第二用户交换第一信息和第二信息,其中所述第一用户拥有所述第一信息,而所述第二用户拥有所述第二信息,包括步骤:第一步,第一用户和第二用户同意交换第一信息和第二信息;第二步,第一用户和第二用户共同生成和签署第一交易,所述第一交易涉及将第一信息从第一用户转移到第一用户,将第二信息从第二用户转移到第二用户,所述第一用户和所述第二用户任意一方可以将所述第一交易放在区块链上;第三步,所述第一用户和所述第二用户共同生成和签署第二交易,所述第二交易用于交换第一信息和第二信息,当所述第一用户和第二用户签署所述第二交易时,将所述第二交易放置于区块链上;第四步,对所述第一交易和所述第二交易分别进行投票,当所述第一交易和所述第二交易存在不一致的情况下,不存在同时接收所述第一交易和所述第二交易或者顺序接收所述第一交易和所述第二交易的矿工,不发生交换,当所述第一交易和所述第二交易一致的情况下,一个特定矿工同时接收所述第一交易和所述第二交易或者顺序接收所述第一交易和所述第二交易;第五步,所述第一交易和所述第二交易将适当的数值传递给第一用户和第二用户,交换完成或者终止。

在一些实施方式中,所述第一交易可以立即发生或者未来某一时间点t发生。

在一些实施方式中,所述第一交易包括赋予第一信息和第二信息的全部输入或者任意份额的输入。

在一些实施方式中,所述第二交易对于没有所述第一用户和所述第二用户的签名情况下是无效的。

在一些实施方式中,所述第二交易还包括任意份额输入的哈希运算值。

在一些实施方式中,所述第五步还包括,所述第一用户和所述第二用户有权分开支付各自交易的一部分。

在本公开内容的又一方面,还提出了一种区块链内待交换价值或物品公平交换的系统,包括第一用户端、第二用户端以及交易判断器,其中所述第一用户端与所述第二用户端交换第一信息和第二信息,并且其中所述第一用户端可以用于:与所述第二用户端同意交换第一信息和第二信息;与所述第二用户端共同生成和签署第一交易,所述第一交易涉及将第一信息从第一用户端转移到第一用户端,所述第一用户端在所述第二用户端没有将所述第一交易放置在区块链上的情况下,将所述第一交易放在区块链上;与所述第二用户端共同生成和签署第二交易,所述第二交易用于交换第一信息和第二信息,当所述第一用户端完成签署所述第二交易时,且所述第二用户端没有将所述第二交易放置于区块链上的情况下将所述第二交易放置于区块链上;所述第二用户端可以用于:与所述第一用户端同意交换第一信息和第二信息;与所述第一用户端共同生成和签署第一交易,所述第一交易涉及将第二信息从第二客户端转移到第二客户端,所述第二用户端在所述第一用户端没有将所述第一交易放置在区块链的情况下将所述第一交易放在区块链上;与所述第一用户端共同生成和签署第二交易,所述第二交易用于交换第二信息和第一信息,当所述第二用户端完成签署所述第二交易时,且所述第一用户端没有将所述第二交易放置于区块链上的情况下将所述第二交易放置于区块链上;所述交易判断器用于:处理对所述第一交易和所述第二交易分别进行的投票,当所述第一交易和所述第二交易存在不一致的情况下,不存在同时接收所述第一交易和所述第二交易或者顺序接收所述第一交易和所述第二交易的矿工,不发生交换,当所述第一交易和所述第二交易一致的情况下,一个特定矿工同时接收所述第一交易和所述第二交易或者顺序接收所述第一交易和所述第二交易;所述第一交易和所述第二交易将适当的数值传递给第一用户和第二用户,交换完成或者终止。

在一些实施方式中,所述第一交易可以立即发生或者未来某一时间点t发生。

在一些实施方式中,所述第一交易包括赋予第一信息和第二信息的全部输入或者任意份额的输入。

在一些实施方式中,所述第二交易对于没有所述第一用户端和所述第二用户端的签名情况下是无效的。

在一些实施方式中,所述第二交易还包括任意份额输入的哈希运算值。

在一些实施方式中,所述第一用户端和所述第二用户端有权分开支付各自交易的一部分。

在本公开内容的再一方面,还提供了一种计算设备,该计算设备包括处理器和存储器,其中所述存储器上存储有计算机程序指令,所述计算机程序指令在由所述处理器执行时实现如上文所述的用于区块链内待交换价值或物品公平交换的方法。

在本公开内容的再一方面,还提供了一种机器可读存储介质,其上存储有计算机程序指令,其中所述计算机程序指令在由处理器执行时实现如上文所述的用于区块链内待交换价值或物品公平交换的方法。

与现有技术相比,本公开内容的有益效果为:

本公开内容的技术方案通过扩展所允许的交易空间从而带来公平交换的机制,100%保证实施公平交换在该交换机制下成为可能,此外,对于交换的时间及时性要求以及有效性的要求在公平的前提下同时得到满足,这时由于所发布的多个区块不需要额外的核查步骤,也不存在更多的分叉区块。

附图说明

在所附权利要求书中具体阐述了本发明的新颖特征。通过参考对在其中利用到本发明原理的说明性实施方式加以阐述的以下详细描述和附图,将会对本发明的特征和优点获得更好的理解。附图仅用于示出实施方式的目的,而并不应当被认为是对本发明的限制。而且在整个附图中,用相同的附图标记表示相同的元素,在附图中:

图1示出了依据本公开内容示例性实施方式的区块链内待交换价值或物品公平交换的方法的流程图;以及

图2示出了依据本公开内容示例性实施方式的用于公平交换的系统结构示意图。

图3示出了依据本公开内容示例性实施方式的计算设备的示意图。

具体实施方式

下面将参照附图更详细地描述本公开内容的示例性实施方式。虽然附图中显示了本公开内容的示例性实施方式,然而应当理解,可以以各种形式实现本公开内容而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了能够更透彻地理解本公开内容,并且能够将本公开内容的范围完整地传达给本领域技术人员。在以下详细描述中没有任何内容旨在表明任何特定组件、特征或步骤对于本发明是必不可少的。本领域技术人员将会理解,在不脱离本公开内容的范围内各种特征或步骤可以彼此替代或结合。

区块链是将数据以一系列区块的方式按时间顺序相连形成的一种链式数据结构,同时也是以密码学方式保证数据的不可篡改和不可伪造的分布式账本。区块链利用诸如哈希和签名等加密技术以及共识算法建立信任机制,让抵赖、篡改和欺诈行为的成本巨大,保证了数据的不可篡改和不可伪造。区块链系统采用的是去中心化的结构,即不存在中央控制机构,存储在区块链系统上的信息由区块链系统的各个节点共同管理,每个节点都具有一个区块链,所有节点所具有的所有区块链都相同。理论上,这里的任何一个节点都不是可信的,但是整个区块链系统却是可信的。公平交换是假定交换的双方互不信任且可能出现交易的失信或欺诈,其目的是实现交换活动的实时公平性,即要么双方都能够从对方得到需要交换的信息,要么谁都得不到。

图1示出了依据本公开内容一个示例性实施方式的用于实现公平交换的方法流程图,该方法用于第一用户与第二用户交换第一信息和第二信息,其中所述第一用户拥有所述第一信息,而所述第二用户拥有所述第二信息。如图1所示,一种区块链内待交换价值或物品公平交换的方法,用于第一用户与第二用户交换第一信息和第二信息,其中所述第一用户拥有所述第一信息,而所述第二用户拥有所述第二信息,包括步骤:

s101,第一用户和第二用户同意交换第一信息和第二信息;

s102,第一用户和第二用户共同生成和签署第一交易,第一交易涉及将第一信息从第一用户转移到第一用户,将第二信息从第二用户转移到第二用户,该步骤中,第一用户和第二用户任意一方可以将第一交易放置在区块链上,实施该放置步骤前需要相互验证是否已被对方执行,防止将两份内容以及交易细节完全一致的交易放置在区块链上;

s103,第一用户和第二用户共同生成和签署第二交易,第二交易用于交换第一信息和第二信息,当第一用户和第二用户完成签署第二交易时,将第二交易放置于区块链上,同样地,在放置前需要第一用户和第二用户之间相互验证,防止重复的放置动作以及对应雷同的交易内容;

s104,矿工对第一交易和第二交易分别进行投票,当第一交易和第二交易存在不一致的情况下,证明不公平交换存在的可能,从而系统不存在也不允许同时接收第一交易和第二交易或者顺序接收第一交易和第二交易的矿工,不发生交换,当第一交易和第二交易一致的情况下,一个特定矿工同时接收第一交易和第二交易或者顺序接收第一交易和第二交易;

s105,第一交易和第二交易将适当的数值传递给第一用户和第二用户,交换完成或者终止。

将对第一信息或第二信息涉及的第一交易和第二交易进行部分签名放置到区块链系统上,不仅有助于区块链系统交易判断器对交易的真实性进行验证,而且也有助于信息交换方对所接收到的交易内容的真实性进行验证。因此,在一些实施方式中,可以采用第一用户的私钥对部分第一信息签名,用第一用户的公钥对部分第一信息进行验证,或者用第二用户的私钥对部分第二信息签名,用第二用户的公钥对部分第二信息进行验证;以及在验证通过的情况下基于所述部分第二信息或部分第一信息重构所述第二信息或所述第一信息。

这里的第一用户和第二用户是指需要进行信息交换的双方,并且“第一”和“第二”并不表示顺序关系,只是用来对进行信息交换的双方予以区分,并且第一用户和第二用户可以互换使用。这里的第一信息和第二信息是指要交换的信息,并且“第一”和“第二”并不表示顺序关系,只是用来对要交换的信息进行区分,并且第一信息和第二信息可以互换使用。

此外,一个多方参与的区块链系统,为了在双方交易过程中使双方相信交换交易是公平的,交换的步骤顺序以及交换物品的特性都是至关重要的,但这种设计存在的缺陷就是双方必须同时在场,而且相信对方会遵守约定或者游戏规则,设计模式依赖于信任,但可以囊括大部分比特币网络上的交易量,为此密码学专家研究多方参与的安全计算,也就是说多个互相不信任的参与者,每个参与者都有各自的数据,然后综合各主体的数据共同计算一个结果,但同时每个主体都不想让其他参与者知道自己的数据是什么,那么通常这些计算需要被随机化,打破相互之间的关联。最后这个结果是有金融属性的,并且是不可逆转的,各自都有敏感数据的互不信任的两方参与者,共同执行一个程序或协议,不仅仅是为了控制数据,还可以控制与之关联的交易甚至资金。因此在一些实施方式中,第一交易可以立即发生或者未来某一时间点t发生。确保参与第一交易的第一用户或第二用户作出承诺,比如涉及一定时间内披露完成交换所选择的秘密随机数,从而完成密码学中所提到的“公平性”,通过比特币指出交易的脚本规定一定的保证金,该保证金只能用于以下两种支付情形:第一种支付情形是必须有第一用户和第二用户的共同签名,第二种支付情形是第一用户或第二用户披露了随机数,以后消费该交易只需要第一用户或第二用户的签名。如果第一用户选择的随机字串符号为x,那么输出脚本scriptpubkey会包括哈希函数h(x)的值。而这里的时间点t正是保证在该时间t之前保证金不会被取走的锁定时间,第一用户或第二用户在该时间内执行交易的必要步骤即可保证保证金不损失,从而这个签名交易是安全的,不再采用简单的函数约定,而是采用有时限的函数约定保证安全的同时也保证了时效性和一定的惩罚机制。

在一些实施方式中,第一交易包括赋予第一信息和第二信息的全部输入或者任意份额的输入。

在一些实施方式中,第二交易对于没有第一用户和第二用户的签名情况下是无效的。

在一些实施方式中,第二交易还包括任意份额输入的哈希运算值。

在一些实施方式中,所述步骤s105还包括,第一用户和第二用户有权分开支付各自交易的一部分。

参见图2,表示一种区块链内待交换价值或物品公平交换的系统结构示意图,如图2所示,该系统包括第一用户端201、第二用户端202以及交易判断器203,其中第一用户端201与第二用户端202交换第一信息和第二信息,并且其中第一用户端201可以用于:与第二用户端202同意交换第一信息和第二信息;与第二用户端202共同生成和签署第一交易,第一交易涉及将第一信息从第一用户端201转移到第一用户端201,第一用户端201在第二用户端202没有将所述第一交易放置在区块链上的情况下,将第一交易放在区块链上;与第二用户端202共同生成和签署第二交易,第二交易用于交换第一信息和第二信息,当第一用户端201完成签署第二交易时,且第二用户端202没有将第二交易放置于区块链上的情况下将第二交易放置于区块链上;第二用户端202可以用于:与第一用户端201同意交换第一信息和第二信息;与第一用户端201共同生成和签署第一交易,第一交易部分涉及将第二信息从第二客户端202转移到第二客户端202,第二用户端202在第一用户端201没有将第一交易放置在区块链的情况下将第一交易放在区块链上;与第一用户端201共同生成和签署第二交易,第二交易用于交换第二信息和第一信息,当第二用户端202完成签署第二交易时,且第一用户端201没有将第二交易放置于区块链上的情况下将第二交易放置于区块链上;所述交易判断器203用于:处理对第一交易和第二交易分别进行的投票,当第一交易和第二交易存在不一致的情况下,不存在同时接收第一交易和第二交易或者顺序接收第一交易和第二交易的矿工,不发生交换,当第一交易和第二交易一致的情况下,一个特定矿工同时接收第一交易和第二交易或者顺序接收第一交易和第二交易;第一交易和第二交易将适当的数值传递给第一用户和第二用户,交换完成或者终止。

将对第一信息或第二信息的涉及的第一交易和第二交易进行部分签名放置到区块链系统上,不仅有助于区块链系统交易判断器对交易的真实性进行验证,而且也有助于信息交换方对所接收到的交易内容的真实性进行验证。因此,在一些实施方式中,可以采用第一用户的私钥对部分第一信息签名,用第一用户的公钥对部分第一信息进行验证,或者用第二用户的私钥对部分第二信息签名,用第二用户的公钥对部分第二信息进行验证;以及在验证通过的情况下基于所述部分第二信息或部分第一信息重构所述第二信息或所述第一信息。

这里的第一用户和第二用户是指需要进行信息交换的双方,并且“第一”和“第二”并不表示顺序关系,只是用来对进行信息交换的双方予以区分,并且第一用户和第二用户可以互换使用。这里的第一信息和第二信息是指要交换的信息,并且“第一”和“第二”并不表示顺序关系,只是用来对要交换的信息进行区分,并且第一信息和第二信息可以互换使用。

此外,一个多方参与的区块链系统,为了在双方交易过程中使双方相信交换交易是公平的,交换的步骤顺序以及交换物品的特性都是至关重要的,但这种设计存在的缺陷就是双方必须同时在场,而且相信对方会遵守约定或者游戏规则,设计模式依赖于信任,但可以囊括大部分比特币网络上的交易量,为此密码学专家研究多方参与的安全计算,也就是说多个互相不信任的参与者,每个参与者都有各自的数据,然后综合各主体的数据共同计算一个结果,但同时每个主体都不想让其他参与者知道自己的数据是什么,那么通常这些计算需要被随机化,打破相互之间的关联。最后这个结果是有金融属性的,并且是不可逆转的,各自都有敏感数据的互不信任的两方参与者,共同执行一个程序或协议,不仅仅是为了控制数据,还可以控制与之关联的交易甚至资金。因此在一些实施方式中,第一交易可以立即发生或者未来某一时间点t发生。确保参与第一交易的第一用户或第二用户作出承诺,比如涉及一定时间内披露完成交换所选择的秘密随机数,从而完成密码学中所提到的“公平性”,通过比特币指出交易的脚本规定一定的保证金,该保证金只能用于以下两种支付情形:第一种支付情形是必须有第一用户和第二用户的共同签名,第二种支付情形是第一用户或第二用户披露了随机数,以后消费该交易只需要第一用户或第二用户的签名。如果第一用户选择的随机字串符号为x,那么输出脚本scriptpubkey会包括哈希函数h(x)的值。而这里的时间点t正式保证在该时间点t之前保证金不会被取走的锁定时间,第一用户或第二用户在该时间内执行交易的必要步骤即可保证保证金不损失,从而这个签名交易是安全的,不再采用简单的函数约定,而是采用有时限的函数约定保证安全的同时也保证了时效性和一定的惩罚机制。

在一些实施方式中,第一交易包括赋予第一信息和第二信息的全部输入或者任意份额的输入。

在一些实施方式中,第二交易对于没有第一用户端和第二用户端的签名情况下是无效的。

在一些实施方式中,第二交易还包括任意份额输入的哈希运算值。

在一些实施方式中,第一用户端和第二用户端有权分开支付各自交易的一部分。

可以理解,对于区块链系统的节点用其私钥进行签名的消息,可以采用本领域现在已知或者将来可知的任何形式和/或方式来实现,本发明在此方面并不作出限制。

在本公开内容的一个方面,参见图3,还提供了一种计算设备300,其包括存储器302和处理器301,其中所述存储器302上存储有计算机程序指令3020,所述计算机程序指令3020在由所述处理器301执行时实现上文描述的用于区块链内待交换价值或物品公平交换的方法。由于前面已经详细描述了用于区块链内待交换价值或物品公平交换的方法的各技术方案,故在此不再详述。

在公开内容的另一方面,还提供了一种机器可读存储介质,该机器可读存储介质上存储有计算机程序指令,其中所述计算机程序指令在由处理器执行时实现上文所描述的用于区块链内待交换价值或物品公平交换的方法。对于用于区块链内待交换价值或物品公平交换的方法的各技术方案,在上文已经进行了详细描述,在此不再赘述。在一些实施方式中,机器可读存储介质是数字处理设备的有形组件。在另一些实施方式中,机器可读存储介质可选地是可从数字处理设备移除的。在一些实施方式中,举非限制性示例而言,机器可读存储介质可以包括u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、闪速存储器、可编程只读存储器(prom)、可擦除可编程只读存储器(eprom)、固态存储器、磁碟、光盘、云计算系统或服务等。

应当理解,本公开内容的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本发明的范围在此方面不受限制。

在本文所提供的说明书中,说明了大量具体细节。然而,应当理解,本公开内容的实施方式可以在没有这些具体细节的情况下实践。在一些实施方式中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。

虽然本文已经示出和描述了本发明的示例性实施方式,但对于本领域技术人员显而易见的是,这样的实施方式只是以示例的方式提供的。本领域技术人员现将会在不偏离本发明的情况下想到许多更改、改变和替代。应当理解,在实践本发明的过程中可以采用对本文所描述的本发明实施方式的各种替代方案。以下权利要求旨在限定本发明的范围,并因此覆盖这些权利要求范围内的方法和结构及其等同项。

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