CN111712844A - 使用区块链转移资源的系统和方法 - Google Patents
使用区块链转移资源的系统和方法 Download PDFInfo
- Publication number
- CN111712844A CN111712844A CN201980012693.7A CN201980012693A CN111712844A CN 111712844 A CN111712844 A CN 111712844A CN 201980012693 A CN201980012693 A CN 201980012693A CN 111712844 A CN111712844 A CN 111712844A
- Authority
- CN
- China
- Prior art keywords
- node
- value
- particular node
- transaction
- ordered set
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/04—Payment circuits
- G06Q20/06—Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
- G06Q20/065—Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3829—Payment protocols; Details thereof insuring higher security of transaction involving key management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/04—Payment circuits
- G06Q20/06—Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
- G06Q20/065—Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
- G06Q20/0658—Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash e-cash managed locally
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/22—Payment schemes or models
- G06Q20/223—Payment schemes or models based on the use of peer-to-peer networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/30—Payment architectures, schemes or protocols characterised by the use of specific devices or networks
- G06Q20/36—Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/389—Keeping log of transactions for guaranteeing non-repudiation of a transaction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
- H04L9/3252—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures using DSA or related signature schemes, e.g. elliptic based signatures, ElGamal or Schnorr schemes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
Landscapes
- Business, Economics & Management (AREA)
- Engineering & Computer Science (AREA)
- Accounting & Taxation (AREA)
- Physics & Mathematics (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Finance (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
一种计算机实现方法包括以下步骤:将与参与区块链网络的节点的循环有序集合中的特定节点相关联的公钥发送到循环有序集合的发起者节点;特定节点基于与从特定节点一直到发起者节点的循环有序集合中的每个节点相关联的公钥从紧邻循环有序集合中的特定节点的前一个节点接收第一值;特定节点基于第一值和与特定节点相关联的公钥来确定锁定值;以及特定节点使用锁定值来准备交易,所述交易被布置为将资源的控制权从与特定节点相关联的源地址发送到紧接特定节点之后的下一个节点的接收地址。资源的控制权将响应于包括提供与锁定值相对应的解锁值的执行条件得到满足来发送。
Description
技术领域
本申请总体上涉及区块链和区块链网络,并且更具体地涉及使用区块链交易来转移对资源的控制权,并且甚至更具体地涉及用于在区块链实现的转移中提供改进的安全性、机密性和效率的密码执行的方法和系统。本发明特别适合于但不限于与比特币区块链的任何变型一起使用。
背景技术
在本文档中,使用“区块链”一词来包括所有形式的基于计算机的电子分布式分类账(ledger)。这些分类账包括基于共识的区块链和交易链技术、许可和非许可的分类账、共享分类账,及其变型。尽管已经提出并开发出了其他区块链实现方式,但是区块链技术最广为人知的应用还是比特币分类帐。虽然为了方便和说明的目的在本文中可能会提及比特币,但是应当注意的是,本申请的主题不限于与比特币区块链一起使用,并且替代的区块链实现方式和协议也落入本申请的范围内。本文所用的“比特币”一词包括比特币协议派生物的所有变型。
区块链是一种点对点的电子分类帐,其实现为基于计算机的分散的系统,所述系统由区块组成,而区块又由交易组成。每笔交易是一种数据结构,所述数据结构对区块链系统中的地址之间的数字资产的控制权的转移进行编码,并且包括至少一个输入和至少一个输出。每个区块都包含前一个区块的散列,因此区块被链接在一起,以创建自区块链创建以来写入区块链的所有交易的永久性的不可更改的记录。
区块链可以用于各种各样的应用中。例如,可以使用区块链来提供反映一个或多个商品(commodity)的所有权的分类帐。例如,在比特币区块链中,分类账反映了比特币及其部分的所有权。一些这样的商品可以表示基础单元,例如,举例而言,计算资源的单元。反映所有权的基于区块链的分类帐可以允许商品在各方之间进行伪匿名转移,而区块链上的交易不包括任何一方的个人识别信息。
具体而言,给定交易的输出可以被发送到各个地址,这些地址对应于特定方的公钥。然后,这些输出可由关联方用作进一步交易的输入,并且由对应于所述地址的公钥的配对私钥解锁。
提供开放式公共分类帐的区块链使任何感兴趣的参与方都能够追踪特定数字硬币、数字资产或数字资源的控制权在一系列地址中的移动。例如,比特币作为一种货币的有效性和成功与比特币的真实和可感知的可替代性(fungibility)有关,可替代性是指一个单位商品与相同类型的其他单位商品的可互换性(http://www.investopedia.com/terms/f/fungibility.asp)。尽管分类帐是开放式和分布式的,可以用作信任系统的手段,但它提供的跨地址跟踪交易的功能允许对与特定历史交易有关的数字资产令牌和资源进行分析和关联。这可能会引起有针对性的攻击。为了解决比特币的可替代性,已经开发出了安全性和匿名化解决方案。由于许多现实世界中的商业交易出于法律原因、商业原因或同时出于这两种原因而在本质上属于机密,所以这会很有用。因此,尽管区块链具有公共性质,但区块链系统必须能够确保通过网络进行的此类转移的安全性和机密性。
对比特币匿名性的研究包括零币(ZeroCash)(Ben-Sasson,E.(E·本萨森)等人(2014),“Zerocash:Decentralized Anonymous Payments from…(零币:来自…的分散的匿名支付)”,http://zerocash-project.org/media/pdf/zerocash-oakland2014.pdf)和门罗币(Monero)(Mackenzie,A.(A·麦肯奇),Noether,S.(S·诺特)等人(2015),“Improving Obfuscation in…(改善…中的混淆)”,https://lab.getmonero.org/pubs/MRL-0004.pdf”)等代币(alt-coin)的开发。同样,已经开发出了与比特币兼容的解决方案。在这些兼容的解决方案中,最常见的是硬币混合和相关的变型,但是还存在其他匿名化技术,例如,TumbleBit(Heilman,E.(E·海尔曼),Alshenibr,L.(L·阿尔申尼比尔),Baldimtsi,F.(F·巴尔迪姆西),Scafuro,A.(A·斯卡法罗)和Goldberg,S.(S·戈德堡),2016年,TumbleBit:An untrusted Bitcoin-compatible anonymous payment hub(TumbleBit:不受信任的比特币兼容匿名支付中心).Cryptology ePrint Archive,Report2016/575;https://eprint.iacr.org/2016/575.pdf(密码研究预印本,报告2016/575;https://eprint.iacr.org/2016/575.pdf)以及隐身地址(Stealth Addresses)的使用(Franco,P.(P·弗兰考),(2014),“Understanding Bitcoin:Cryptography…(了解比特币:密码学…)”,http://eu.wiley.com/WileyCDA/WileyTitle/productCd-1119019168.html)。所有这些解决方案的共同点是使用户与特定的比特币交易和地址(其中用户为付款人或用户为收款人)分离的措施。
就硬币混合解决方案而言,用户将比特币输入到服务中,并且他们的比特币被转移到用户选择的输出地址。在被发送到输出地址之前已经被合并的资产导致难以确定哪个输出地址属于用户。
区块链交易混合方法存在若干技术和安全性相关的问题。这些交易混合方法需要混合服务提供商。这将会在系统中引入额外的资源需求,并且提供此集中式交易混合服务提供商会带来额外的管理开销。此外,提供中央交易混合服务提供商还会削弱或损害区块链系统的去中心化的点对点架构。这种集中式系统解除了用户的控制权。此外,这种集中式系统在系统中提供了用于攻击的焦点。更进一步,交易混合服务提供商可能会有意或无意地从池中窃取用户的数字资产,或有意或无意地向外部各方透露输入地址和输出地址之间的链接,从而降低安全性和机密性。从多方面而言,提供集中式交易混合服务提供商会违背去中心化的点对点区块链系统的基本精神,即旨在消除对集中式主体的需求。
发明内容
鉴于上述情况,要解决的一个技术问题可能是如何提供一种解决方案,所述解决方案能够以与现有解决方案相比更加分散、安全、资源高效和机密的方式实现区块链交易混合,并且由系统的用户控制,而不是由第三方交易混合服务提供商按照背景技术部分中描述的现有系统的方式进行管理。
申请人先前使用混合方法通过两种协议(称为组随机交换(GRE)协议和组随机交换改变秘密(GRECS)协议)解决了一个或多个上述问题。概述而言,GRE建立在组的概念上,其同意一组节点的每个成员将x个计算资源单元转移给另一个成员,使得每个人都可以得到报酬。GRE协议利用秘密值k,这个秘密值只有在被选为发起者的节点向区块链提交支持与所述节点相关联的地址的交易时,才会被揭示出来。GRE协议的一个方面是,参与协议的节点之间建立的支付通道共有的值k可以允许第三方关联那些交易。GRECS是对GRE协议进行了修改的变型协议,以便在为每个支付通道使用不同的秘密值时提供相同的功能。具体而言,参与所述协议的每个节点将各自的秘密值发送到发起者节点,发起者节点随后使用这些值来发起转移。
通过GRE及其变型GRECS,使多个节点能够构建交易通道,从而能够以增加的安全性和机密性来交换资源。交易混合系统的独特之处在于可形成和执行区块链交易链,其中至少一个节点是从链中的多个节点中随机选择的。所述链是使用承诺交易(commitmenttransaction)建立的。与上述现有技术配置相比,这种用于在多个节点之间交换数字资产的系统更加安全,并且不需要额外的系统开销。例如,所述系统不需要混合服务提供商,因此不会在系统中引入额外的资源需求和用于提供此集中式交易混合服务提供商的额外管理开销。此外,提供中央交易混合服务提供商会削弱或损害区块链系统的去中心化的点对点架构。这种集中式系统解除了节点的控制权。此外,这种集中式系统在系统中提供了用于攻击的焦点。更进一步,交易混合服务提供商可能会有意或无意地从池中窃取用户的数字资产,或有意或无意地向外部各方透露输入地址和输出地址之间的链接,从而降低安全性。相反,在GRE和GRECS中,通过承诺交易链来准备和执行交易是由节点而不是第三方执行的。也就是说,那些系统使用的协议不是由第三方实现/控制的。
GRE和GRECS的一种技术效果是使计算机系统以一种新的方式运行。此外,从更有效率且更有效地运行至对黑客攻击和数据操作而言具有更强的鲁棒性的程度而言,此计算机系统是一种更好的计算机系统。
如上所述,在GRECS中,必须在发起转移之前向发起者公开秘密值。在某些情况下,出于安全和/或效率的原因,可能并不希望这样公开。例如,在将GRECS用作具有其他可能更复杂的功能的构造块的情况下,可能会出现此类问题。
因此,我们希望提供一种解决方案,它不需要任何参与节点在由此节点发起转移之前将它们各自的秘密值k传送给协议中的任何其他节点。另外或可替代地,也可能希望参与节点只需要在支持与此节点相关联的地址的交易中揭示它们各自的秘密值k。
已经设计出一种改进的解决方案,其具有这些期望特性中的一个或多个,同时仍能解决GRE和GRECS所解决的技术问题,并且提供类似的期望特性和技术效果。
本申请提供了如所附权利要求书中所限定的方法和系统。
本申请描述了一种计算机实现方法。所述方法可以包括以下步骤:将与参与区块链网络的节点的循环有序集合中的特定节点相关联的公钥发送到所述循环有序集合的发起者节点;所述特定节点基于与从所述特定节点一直到所述发起者节点的所述循环有序集合中的每个节点相关联的公钥从紧邻所述循环有序集合中的特定节点的前一个节点接收第一值;所述特定节点基于所述第一值和与所述特定节点相关联的公钥来确定锁定值;以及所述特定节点使用所述锁定值来准备交易,所述交易被布置为将资源的控制权从与所述特定节点相关联的源地址发送到紧接所述循环有序集合中的特定节点之后的下一个节点的接收地址。资源的控制权将响应于包括提供与锁定值相对应的解锁值的执行条件得到满足来发送。
所述资源可以是,例如,通过区块链转移的令牌化资产或实体,或加密货币或任何项目的一部分。
在一些实施方式中,解锁值是基于和与从紧接之后的下一个节点一直到发起者节点的循环有序集合中的每个节点相关联的公钥相对应的私钥。
在一些实施方式中,第一值是与从所述特定节点一直到发起者节点的循环有序集合中的每个节点相关联的公钥的总和。
在一些实施方式中,确定锁定值包括从第一值中减去与所述特定节点相关联的公钥。
在一些实施方式中,所述方法还包括所述特定节点基于所述第一值和与所述特定节点相关联的公钥向紧接之后的下一个节点发送第二值。第二值可以是与从紧接之后的下一个节点一直到发起者节点的循环有序集合中的每个节点相关联的公钥的总和,并且可以通过从所述第一值中减去与所述特定节点相关联的公钥来确定。
在一些实施方式中,另一交易被布置为在满足返还条件时将资源的控制权返还给所述特定节点。
在一些实施方式中,所述方法还包括以下步骤:基于和与从紧接之后的下一个节点一直到发起者节点的循环有序集合中的每个节点相关联的公钥相对应的私钥来获得第三值;所述特定节点基于所述第三值和与所述特定节点相关联的所述公钥相对应的私钥来确定第二解锁值;执行第二交易,所述第二交易由紧邻的前一个节点准备且被布置为将第二资源的控制权从与紧邻的前一个节点相关联的源地址发送到特定节点的接收地址,其中第二资源的控制权将响应于包括提供所述第二解锁值的执行条件得到满足来发送。
在一些实施方式中,第三值是从紧接之后的下一个节点接收的。
在一些实施方式中,第三值是从提交给区块链网络的区块链的交易中提取的。
在一些实施方式中,第三值是和与从紧接之后的下一个节点一直到发起者节点的循环有序集合中的每个节点相关联的公钥相对应的私钥的总和。
在一些实施方式中,确定第二解锁值包括将和与特定节点相关联的公钥相对应的私钥添加到第三值。
在一些实施方式中,上述方法还可以包括将第二解锁值发送到紧邻的前一个节点。
在一些实施方式中,每个公钥及其对应的私钥形成椭圆曲线加密公钥-私钥对。
在一些实施方式中,所述方法还包括将第二交易提交至区块链网络的区块链。
在一些实施方式中,所述资源和第二资源是相同的或基本上相同的或类似的。从它们共享某些特性或属性的意义上来说,它们可能是类似的。
本申请进一步描述了一种适于用作循环有序集合中的特定节点的计算设备。所述计算设备包括:处理器;内存;网络接口;以及非暂时性计算机可读存储介质,其存储有计算机可执行指令,当计算机可执行指令由处理器执行时,促使计算设备执行上述方法。
本申请进一步描述了一种非暂时性计算机可读存储介质,其存储有指令,所述指令使计算机系统适于用作循环有序集合中的特定节点,其中,当所述指令由所述计算机系统的处理器执行时,促使所述计算机系统执行上述方法。
附图说明
在本发明的一个方面或实施例中描述的任何特征也可以在一个或多个其他方面/实施例中使用。参考本文所述的实施例,本发明的这些和其他方面将变得显而易见。现在将仅通过举例的方式并参考附图来描述本发明的实施例,其中:
图1示出了支付通道中使用的交易;
图2是示出了如何创建根据图1的支付通道的流程图;
图3是示出了本申请的示例操作环境的简化示意图;
图4示出了示例计算设备;
图5是示出了由图3所示节点执行的操作的流程图;
图6是示出了由图3所示节点构成的循环有序集合的图示;
图7是示出了根据本申请的示例支付通道的图示;
图8示出了根据本申请的示例承诺交易;
图9示出了根据本申请的示例退款交易;
图10示出了根据本申请的示例支付交易;
图11是示出了由图3所示的特定节点执行的操作的流程图;
图12是示出了由图3所示节点执行的操作的流程图;
图13是示出了图6所示的循环有序集合中的节点之间的转移的图示;以及
图14是示出了由图3所示的特定节点执行的操作的流程图。
在附图中使用相同的附图标记来表示相同的元件和特征。
具体实施方式
在本申请中,“和/或”一词旨在涵盖所列元素的所有可能的组合和子组合,包括单独列出的元素中的任一者、任何子组合,或所有元素,不需要排除额外的元素。
在本申请中,短语“…或…中的至少一者”旨在涵盖所列出的元素中的任何一个或多个,包括单独列出的元素中的任一者、任何子组合,或所有元素,不需要排除任何额外的元素,也不一定需要所有元素。
本文描述了体现本发明的协议,所述协议被称为“组随机交换后揭示(GRELR)”协议,用于节点将表示一定数量的计算资源的单元从一个地址移动到另一个地址,同时模糊特定节点的地址之间的链接,并且降低或限制所述节点的资源被盗用的可能性。它建立在组的概念上,同意组中的每个节点将计算资源的单元转移到与组中的另一个节点相关联的地址,使得每个人都可以接收转移的输出。
从组中各节点中随机选择与特定节点向其转移x个单元的地址相关联的节点,同样,也从组中各节点中随机选择向与此特定节点相关联的地址转移x个计算资源单元的节点。通过这样做,特定节点可以将x个计算资源单元转移到一个地址,但是从随机确定的不同节点接收位于不同的地址处的x个计算资源单元。换句话说,可能是这样,在一定程度上,发送给每个节点的资源除了来源地址都是相同的。但是,节点的随机化可能会使协议外部的各方难以对区块链进行分析并确定特定节点的输入和输出地址之间的链接。因此,可以提高安全性。
此外,GRELR协议还能够在由n个用户组成的组之间完成此交换,其中组中的任何用户都不会有丢失单元的风险。所述协议使用退款交易(如果适用的话),以允许用户在协议执行过程中未按计划进行操作时收回他们各自的单元。
GRE协议基于两种现有的比特币相关技术而建立。其中第一种技术是支付通道(“微支付通道简介”,http://super3.org/introduction-to-micropayment-channels/),这种技术是针对一对用户之间的区块之外(off-block)比特币交易而设计的,特别是包含了退款交易的使用。第二种技术是原子跨链交易(ACCT)(“原子跨链交易”,https://en.Bitcoin.it/wiki/Atomic_cross-chain_trading),这是为使用某种加密货币的x个硬币的用户将硬币交换为另一个用户使用的另一种加密货币的y个硬币设计的。这是“公平交换”,因此第一用户无法在不给予第二用户收集第一用户所欠硬币的能力的情况下获取第二用户的硬币。
GRELR协议是对GRE协议的改进,尤其是对GRECS协议的改进。GRELR无需使用公共秘密,从而得到了改进。此外,因为无需过早地揭示与每个节点相关联的特定秘密,使得参与者仅在收集各自支付的款项时部分基于与此节点相关联的特定秘密来揭示秘密的结果,也得到了改进。在GRECS中,秘密值被合并以形成秘密的结果,与GRECS相比,GRELR通过反转方向来实现此目的。通过这样做,GRELR可以避免参与节点必须在支持与此节点相关联的地址的交易的执行过程中揭示它们的秘密值。
在对GRECS进行改进的同时,GRELR还可满足GRECS所满足的各种条件,包括:
1.支付通道的秘密值应该难以被猜到。
2.在执行特定支付通道的支付交易的过程中揭示秘密的结果应允许解锁在GRE序列(逆时针)中的下一个支付通道所必需的秘密的结果被揭示或至少易于被算出。
3.外部观察者很难识别密钥(或加密密钥)之间的关系。
4.应该将协议设计成防止或限制区块链跟踪的资产仅因协议的操作而对进行交易的参与者所造成的损失的风险。
支付通道
如上所述,支付通道是本发明的特征。支付通道的概述如下。
支付通道是为用户设计的用于进行多笔比特币交易而无需将所有交易提交给区块链的技术。在典型的支付通道实施方式中,可以进行几乎无限量的支付,但是仅需要向区块链添加两个交易。
除了将减少数量的交易添加到区块链和相关联的成本降低之外,支付通道还提供了速度优势,并且,重要的是,如果操作没有按计划进行或用户决定不进行超出某个付款范围的操作,则用户能够得到退还的单元。下文概述了支付通道的实施方式。
考量Alice(爱丽丝)需要向Bob(鲍勃)支付服务费用的情况。这可能需要在一段时间内视情况需要(situation demand)由Alice(爱丽丝)向Bob(鲍勃)进行多次付款。Alice(爱丽丝)希望在可能的交易集合中最多花费15个比特币(总共)给Bob(鲍勃)。为了促成这一点,在Alice(爱丽丝)和Bob(鲍勃)之间建立了支付通道,其操作方式如下。
首先,Alice(爱丽丝)创建了2-2多重签名支付到脚本哈希(P2SH)交易Tc,所述交易由Alice(爱丽丝)和Bob(鲍勃)共同控制,其中Alice(爱丽丝)提交了15个比特币。此时,交易尚未提交到比特币网络(这样的多重签名地址要求2个人(Alice(爱丽丝)和Bob(鲍勃))签署从此地址花钱的任何交易);
接下来,Alice(爱丽丝)创建单独的退款交易Tr,0,将所有“多重签名控制的资金”单元返还给Alice(爱丽丝)。此交易包括由100个区块组成的nLockTime(n锁定时间)值(nLockTime是一个比特币交易参数,此参数仅允许比特币交易在指定时间后执行)。Bob(鲍勃)签署交易。如果Alice(爱丽丝)和Bob(鲍勃)之间的交换出现问题,则此退款交易允许Alice(爱丽丝)在nLockTime发生后得到退款。
接下来,Alice(爱丽丝)签署原始交易Tc。
此时,Alice(爱丽丝)和Bob(鲍勃)可以继续创建新的退款交易,以反映从爱丽丝Alice(爱丽丝)到Bob(鲍勃)的(区块链之外)转移。这些退款交易将反映Alice(爱丽丝)在此时间点需要转给Bob(鲍勃)的净额。例如,如果Alice(爱丽丝)要转给Bob(鲍勃)5个比特币,则会创建一个新的退款交易Tr,i,其输出将5BTC发送给Bob(鲍勃),且将10BTC发送回Alice(爱丽丝)。如果Alice(爱丽丝)需要再转给Bob(鲍勃)5个比特币,则创建新的退款交易Tr,i+1,其输出将10个比特币发送给Bob(鲍勃),且将5个比特币发送给Alice(爱丽丝)。对于每一笔新的退款交易,假设他们对细节意见一致,则双方签署交易,但不需要将交易提交到网络。
应注意的是,所创建的每笔连续退款交易的nLockTime均比前一笔退款交易更低,即nLockTime(Tr,i+1)<nLockTime(Tr,i)。
如果用户拒绝签署任何Tr,i,则受损失的用户可以仅提交Tr,i-1。在最坏的情况下,Alice(爱丽丝)签署Tr,0并将其提交到网络,以收回她的所有单元(在nLockTime过期之后)。
所构建的最终退款交易表示由Alice(爱丽丝)转移给Bob(鲍勃)的单元的净额。此交易被提交到网络。
图1示出了在支付通道中使用的交易Tc 100A和Tr,n 100D。M表示可以由Alice(爱丽丝)发送给Bob(鲍勃)的最大金额。xi是Alice(爱丽丝)需要支付给Bob(鲍勃)的单元的当前净额。Sstop(S停止)是初始退款交易的nLockTime。n是在Alice(爱丽丝)和Bob(鲍勃)之间正在进行的(区块之外)转移中创建的退款交易的数量(不包括初始退款交易)。s是在双方冒着另一方提交前一笔退款交易,有效地终止Alice(爱丽丝)与Bob(鲍勃)之间的交易之前,双方用户同意退款交易的时间。
应注意的是,t+n*s<Sstop,其中t为当前时间,且(Sstop–n*s)≥s。
图1所示的交易Tc 100A、Tr,0 100B、Tr,1 100C,以及Tr,n 100D是可出现在区块链上的交易。
在图2所示的流程图200中示出了用于在Alice(爱丽丝)和Bob(鲍勃)之间构造支付通道的操作。操作210及后续操作由一个或多个计算设备的一个或多个处理器执行,所述一个或多个处理器执行包括计算机可执行指令的软件,所述计算机可执行指令可以存储在计算机可读存储介质上。
在操作210中,与Alice(爱丽丝)相关联的计算设备的处理器以上述方式创建了2-2多重签名支付到脚本哈希(P2SH)交易Tc。
控制流程从操作210进行到操作212。在操作212中,与Alice(爱丽丝)相关联的计算设备的处理器创建单独的退款交易Tr,0,向与Alice(爱丽丝)相关联的帐户返还所有“多重签名控制的资金”单元,如上文所述。
控制流程从操作212进行到操作214。在操作214中,与Alice(爱丽丝)相关联的计算设备的处理器签署上述退款交易。
控制流程从操作214进行到操作216。在操作214中,与Bob(鲍勃)相关联的计算设备的处理器也可以签署上述退款交易。如果交易是这样签名的,则控制流程前进到操作218。或者,如果交易不是这样签名的,则中止支付通道的创建。
在操作218中,与Alice(爱丽丝)相关联的计算设备的处理器对Tc进行签名并将其提交给区块链。然后,控制流程前进到操作220。
在操作220中,上述退款交易被识别为第一笔退款交易,因此,如果时间允许,则可以协商从Alice(爱丽丝)到Bob(鲍勃)的进一步转移。
控制流程从操作220前进到操作222。在操作222中,确定是否有足够的剩余时间来协商进一步的转移。如果没有足够的剩余时间,则控制流程前进到操作224,在操作224中,将最后一笔退款交易提交给区块链。或者,如果有足够的剩余时间,则控制流程前进到操作226。
在操作226中,协商Alice(爱丽丝)与Bob(鲍勃)之间的进一步转移。控制流程从操作226前进到操作228,在操作228中,确定协商是否成功。如果协商不成功,则控制流程进行到上述操作224。或者,如果协商成功,则控制流程前进到操作230。
在操作230中,以上述方式创建了反映源自成功协商的协议的新的退款交易。然后,控制流程前进到操作240,在操作240中,新的退款交易被识别为当前退款交易。
控制流程从操作240前进到操作242,在操作242中,与Alice(爱丽丝)和Bob(鲍勃)相关联的计算设备的处理器可以签署当前退款交易。如果是这样,则控制流程返回到上述操作222。或者,如果交易没有被如此签名,则在操作244中,对当前退款交易的识别恢复为前一笔退款交易。控制流程从操作244返回到上述操作222。
图3示出了本申请的示例操作环境。
如图所示,多个节点300通过计算机网络310进行通信。每个节点300是计算设备并且参与区块链,并且具有一个或多个关联地址,区块链反映了单元的数量,例如,举例而言,计算资源的单元的数量。
如下文进一步描述的,每个节点300可以将数量x个单元从与此节点相关联的地址转移到与另一个节点300相关联的地址。方便的是,以这种方式,区块链上的交易可以混合在一起,以模糊各种转移交易的输入和输出地址之间的所有权关系。
图4是示例计算设备的高阶运行图。示例计算设备400可以是本文描述的一个或多个计算机系统的示例,包括,例如,节点300中的一个或多个。示例计算设备400包括使其适于执行特定功能的软件。
示例计算设备400包括各种模块。例如,如图所示,示例计算设备400可以包括处理器410、内存420,以及网络接口430。如图所示,示例计算设备400的上述部件通过总线440进行通信。
处理器410是硬件处理器。处理器410可以是,例如,一个或多个ARM、Intel x86、PowerPC处理器等。
内存420允许数据被存储和检索。内存420可以包括,例如,随机访问内存、只读内存,以及永久性存储器。永久性存储器可以是,例如,闪存、固态驱动器等。只读内存和永久性存储器是非暂时性计算机可读存储介质。可以使用文件系统来组织计算机可读介质,例如,可以由管理示例计算设备400的整体操作的操作系统来管理。
网络接口430允许示例计算设备400与其他计算设备和/或计算机网络310(图3)之类的各种通信网络进行通信。
包括指令的软件由处理器410从计算机可读介质执行。例如,可以将软件从内存420的永久性存储器加载到随机访问内存中。另外或可替代地,可以由处理器410直接从内存420的只读内存执行指令。
如下文进一步描述的,软件可以使示例计算设备400的实例适于用作本文中提到的各种计算机系统中的一个或多个,包括,例如,节点300中的一个或多个。
参照图5所示的流程图500,描述了由节点300协作执行的操作。由各个节点300的一个或多个处理器执行操作510和后续操作。这样,由计算设备的一个或多个处理器(例如,举例而言,示例计算设备400的适当配置的实例的处理器410(图4))执行操作510和后续操作,所述处理器执行包括计算机可执行指令的软件,所述计算机可执行指令可以存储在计算机可读存储介质(例如,举例而言,内存420的存储器)上。
在操作510中,识别由节点300组成的集合。例如,节点300可以全部向授权机构(authority)(例如,举例而言,另一节点或节点300中的特定节点)注册。
接下来,在操作512中,将由节点300组成的集合随机化,以实现图6所示的节点300的循环有序集合。
如图6所示,可以将循环有序集合视为环600,其中每个节点300另外有两个节点,这两个节点其中一个作为紧接此节点之后的下一个节点,另外一个作为紧邻此节点的前一个节点。
如图所示,可以为环600中的每个节点300分派标签Ui,其中0<i<n且n是节点数。方便的是,与节点Ui紧邻的前一个节点是节点U(i-1)mod n,而紧接节点Ui之后的下一个节点是节点U(i+1)mod n。
回参图5,在操作512之后,在操作514中,选择节点300之一为发起者节点。例如,每个节点300可以执行操作或参与协议,从而使节点中的一个特定节点被选择为发起者节点。或者,节点300之一可以被某个中央授权机构选择为发起者。
出于说明的目的,以下说明假定发起者节点是U0,并且词语“发起者”和“标签U0”作为同义词使用,但是这仅仅是示例性的,绝不是必需的。
发起者选择私钥ks,其可以是,例如,合适的随机数ks。可以生成私钥-公钥对的对应的公钥,可以表示为Ps。发起者维持值ks。
可以采用椭圆曲线加密,并且ks和Ps可以是椭圆曲线加密公钥-私钥对,使得Ps=ksG,其中,G是椭圆曲线上的基点,其阶为q:q×G=0,其中q是大质数,且0<ks<q。在特定示例中,可以采用椭圆曲线secp256k1(在文档“Standards for Efficient Cryptography 2(SEC 2)(高效加密的标准2(SEC2)(赛迪康公司(Certicom Corp),2010年1月27日)”中定义)。因此,当采用椭圆曲线加密时,可以使用关系式Ps=ksG由ks确定Ps。
接下来,在操作516中,如下选择各种超时值。
首先,选择一个时间值s,这个值表示每个用户Ui完成某些操作,即构造支付通道Ui→U(i+1)mod n,接收秘密值,以及提交执行交易Tpay(T支付)到区块链,所需的时间量,这将在下文中进一步描述,其中x个单元转移给U(i+1)mod n。考虑到其他用户的共识,节点300中的任何一个都可以选择时间s。在一些实施方式中,发起者可选择可以简化协议的s。时间s可以以适当的单位表示,例如,举例而言,秒或区块数。
其次,选择值S作为用户提交给比特币网络的第一次转移的开始时间。考虑到其他节点的共识,任何节点300都可以选择S。在一些实施方式中,发起者选择可以简化协议的实施方式的S。
值得注意的是,S表示一个时间点,例如,可以在Unix时间或区块高度中指定,而s表示时间跨度。
接下来,在操作518中,除了发起者之外的每个节点300,即U1...Un-1,选择相对应的秘密随机值ki,即与Ui相关联的私钥。然后,每个节点Ui确定相对应的公钥Pi,并将其发送给发起者U0。
如上所述,可以采用椭圆曲线加密,并且每个ki及其对应的Pi可以是椭圆曲线公钥-私钥对,使得Pi=kiG。换句话说,每个公钥Pi及其对应的私钥ki可以形成椭圆曲线公钥-私钥对。因此,如果采用椭圆曲线加密,则Pi可以由节点300使用关系式Pi=kiG由它们各自的ki确定。
如下文进一步描述的,接下来在每个节点300与紧接之后的下一个节点300之间建立支付通道。
如操作519所示,根据可被视为初始化为0的概念迭代值i,相对于每个节点进行处理,即,在发起者U0处开始支付通道的创建,这将在下文中进一步描述。
在操作520中,确定锁定值Qi+1。锁定值可以基于与从节点Ui一直到发起者的循环有序集合(即,绕环600顺时针旋转(图6))中的每个节点300相关联的公钥。
可以基于Ps和P1...Pn-1确定Qi+1。例如,在采用椭圆密钥加密的情况下,可以将Qi+1确定为Pi+...++Pn-1+Ps之和。值得注意的是,就发起者U0而言,由于在操作518中接收到Pi值,因此确定Q1是可能的。此外,在发起者之后的每个节点300可以在创建支付通道之前从紧邻此节点的前一个节点学习值Qn。换句话说,节点300中的每个节点可以将其各自的Qi+1值传送给其在循环有序集合中的后继节点。方便的是,这些接收到的值可由发起者之后的每个节点使用,以确定各自的Qi+1。例如,在采用椭圆曲线加密的情况下,可以通过Qn减去值Pn来确定Qi+1。值得注意的是,每个Un都知晓Pn(其中n>0),因为它在操作518中生成了此值。
接下来,在操作522中,执行检查,以确保有足够的剩余时间来完成GRELR协议中的必要步骤。具体而言,可以将当前时间与第一次转移的开始时间S进行比较,以确保有足够的时间,使得尚未建立的每个支付通道可以被分配确定的时间s以依序完成。换句话说,检查可以是确保S–t>(n–i)s,其中t是当前时间。
如果在操作522中检查失败,则GRELR被中止。否则,在操作524中进行另一检查,以查看支付通道是否已设置完成,即,i是否仍小于节点数n。
如果支付通道设置完成,则此阶段的处理停止,使得协议可以继续进行下文所述的进一步处理。否则,接下来,在操作526中,在节点Ui和Ui+1之间建立支付通道。值Qi+1将用于锁定支付通道的支付交易,这将在下文中进一步描述。
图7提供了Ui→U(i+1)mod n支付通道(诸如,可以在操作526中建立)的表示700。
如图所示,所述通道包括三笔交易,Tc、Tpay,以及Tr。应注意的是,Ui表示Ui的签名。
Tc交易表示支付通道的承诺部分。在这里,通过所述交易,Ui发送/提交指定数量的单元,这受以下两个因素控制:2-2多重签名(Ui,U(i+1))或知晓值sv(i+1);以及U(i+1)的签名。
Tr交易表示将指定数量的单元(来自承诺交易)退还给Ui,在指定的时间到期后,可以提交给区块链。这样,Tr被布置为在满足时间到期的返还条件时将资源的控制权返还给特定节点Ui。为了使此交易成功执行,需要Ui和Ui+1的签名。
TPay交易是将Ui提交的资金中指定数量的单元从Ui转移到U(i+1)。为了使此交易成功执行,需要知晓秘密值svi+1和用户Ui+1的签名。如下文进一步所述,svi+1是Qi+1的配对物,且例如,在采用椭圆曲线加密的情况下,可以表示与被视为公钥的Qi+1相关的私钥,即使得Qi+1=svi+1G。
值得注意的是,由于节点300的环形布置,即循环有序的布置,以及节点300在此环中的排序是随机的这一事实,意味着节点转移到节点300中的特定节点Ui以及被节点中的特定节点Ui转移都是随机的。此外,转移到Ui和从Ui接收转移的节点是不同的。
在区块链是比特币区块链的情况下,Tc、Tr以及Tpay中的每一者可以是比特币交易。
图8包括表格800,其示出了示例性Tc比特币交易的细节。
图9包括表格900,其示出了示例性Tr比特币交易的细节。
图10包括表1000,其示出了示例性Tpay比特币交易的细节。
值得注意的是,表格800、表格900以及表格1000中的每一者中显示的交易的细节仅限于各种交易的<scriptSig>、<scriptPubkey>、nLockTime,以及output values(输出值),因为这些是与GRELR协议最相关的交易元素。
此外,表格800、表格900以及表格1000中的每一者中所示的交易均假定将椭圆密钥加密用于GRELR。值得注意的是,在交易TC中,采用了非标准操作码OP_ECPMULT。OP_ECPMULT取编码的椭圆曲线点和一个数字,并且按标量(Scala)执行椭圆曲线乘法,将结果输出为编码的椭圆曲线点。
回参图5,在操作526之后,流程前进到操作528,在操作528中,执行检查,以确定在操作526中是否成功创建了支付通道。如果是,则在操作529中将计数器i递增,然后流程返回操作520,以处理下一个节点(如果有的话)。或者,如果在操作526中创建支付通道失败,则在操作528中,检查将失败并且GRELR将终止。
值得注意的是,对于除发起者节点U0之外的每个节点300,在由此节点充当资源提供者的支付通道创建之前创建支持此节点的支付通道。此序列允许每个节点Ui确保有一笔Tpay交易,如果Ui+1曾经通过从Ui到Ui+1的Tpay进行收款,它将能够执行。同时,在没有此保证的情况下,U0也是安全的,因为与其他节点不同,发起者节点U0不能被“欺骗”,因为它是唯一知晓值ks的节点,而这是构造每个付款通道的解锁值所必需的。这样,在U0公开ks之前,不得执行交易Tpay(包括从U0到U1的Tpay)。
现在将讨论图11。图11示出了流程图1100,此流程图示出了由图3所示的特定节点在按照流程图500(图5)执行操作时所执行的操作。操作1110及后续操作由节点300中一个特定的非发起者节点的一个或多个处理器执行。这样,操作1110及后续操作由计算设备的一个或多个处理器(例如,举例而言,示例计算设备400的适当配置的实例的处理器410(图4))执行,所述处理器执行包括计算机可执行指令的软件,所述计算机可执行指令可以存储在计算机可读存储介质(例如,举例而言,内存420的存储器)上。
流程图1100假定如上所述通过将节点随机化形成了节点300的循环有序集合。另外,还假定特定节点Ui,已经生成了秘密值ki,,即私钥,以及相对应的公钥Pi。例如,如果在GRELR的特定实施方式中采用了椭圆曲线加密,则如上所述,特定节点可能已经生成了ki,然后使用关系式Pi=kiG来确定Pi。
在操作1110中,特定节点将与ki相对应的值Pi发送到发起者节点U0。如上所述,Pi是对应于ki的公钥。这样,在操作1110中,特定节点将与特定节点相关联的公钥发送到循环有序集合的发起者节点。
控制流程从操作1110进行到操作1120。在操作1120中,从紧邻的前一个节点(即Ui-1)接收第一值Qi。如上所述,接收到的值是基于与从特定节点一直到发起者节点,即从U0一直到Ui的循环有序集合中的每个节点相关联的公钥。例如,在利用椭圆曲线加密的情况下,此值可以是与从特定节点一直到发起者节点的循环有序集合中的每个节点相关联的公钥的总和。
控制流程从操作1120进行到操作1130。在操作1130中,以上述方式基于Qi来确定第二值,即锁定值Qi+1。换句话说,基于第一值Qi和与特定节点相关联的公钥Pi来确定锁定值。例如,在利用椭圆曲线加密并且Qi=Pi+...+Pn-1+Ps的情况下,确定锁定值Qi+1可以包括从接收到的值中减去与特定节点相关联的公钥Pi。
控制流程从操作1130进行到操作1140,在操作1140中,Ui在Ui和Ui+1之间创建支付通道。通过这样做,将如上所述准备各种交易。例如,使用锁定值来准备交易Tpay。如上所述,此交易被布置为从与在循环有序集合中的特定节点相关联的源地址向紧接此特定节点之后的下一个节点,即Ui+1的接收地址,发送资源,例如,x个计算资源单元。根据此交易,响应于包括提供与锁定值相对应的解锁值(svi+1)的执行条件得到满足,将发送资源的控制权。
参照图12,流程图示出了由节点300执行的进一步的操作,这些节点协作,以完成以上述方式建立的每个支付通道的支付交易。操作1210及后续操作由节点300中的各个节点的一个或多个处理器执行。这样,操作1210及后续操作由计算设备的一个或多个处理器(例如,举例而言,示例计算设备400的适当配置的实例的处理器410(图4))执行,所述处理器执行包括计算机可执行指令的软件,所述计算机可执行指令可以存储在计算机可读存储介质(例如,举例而言,内存420的存储器)上。
在操作1210中,发起者节点U0确定用于由U0对Tpay交易进行解锁的解锁值sv0。回想一下,用于锁定每笔交易的锁定值是基于与在从特定节点一直到发起者节点的循环有序集合中的特定节点之后的节点相关联的公钥。这意味着就上述Tpay交易而言,将交易锁定的值仅基于对应于私钥ks的发起者节点的公钥Ps。这样,解锁值是基于ks。例如,可以是sv0=ks。
接下来,控制流程进行到操作1212,在操作1212中,U0签署Tpay交易。换句话说,U0可以签署交易,当交易提交到区块链时,将转移资源Un-1→U0。例如,U0可以签署相对应的Tpay交易,并且可以将sv0输入到解锁脚本中,例如,输入到表格800(图8)中所示的redeemScript(赎回脚本)中。
U0还揭示了sv0。例如,U0可以通过计算机网络310上的传输将sv0发送到U1。
可替代地,U0可以依赖于U1从区块链中检索sv0,例如,举例而言,当在操作1216中向区块链提交交易Tpay时(如下所述)。值得注意的是,在依赖于从区块链中检索sv0的情况下,应该选择值s,使得在考虑到在特定的区块链上确认交易的平均时间的情况下,此时间段为任一参与者在此交易被提交到区块链网络后提供了足够的时间来找到这个值。
控制流程从操作1212进行到操作1214。
在操作1214中,确定是否有足够的剩余时间供U0将Tpay交易提交给区块链。换句话说,确定时间S+s是否已经发生(t<S+s,其中t是当前时间)
如果在操作1214中检查失败(时间不够),则GRELR将中止。或者,如果检查成功,则控制流程进行到操作1216。
在操作1216中,由U0将已签名Tpay交易提交给区块链。换句话说,转移资源Un-1→U0的交易被提交给区块链。
控制流程从操作1216进行到操作1217。在操作1217中,计数器i被初始化。具体而言,因为交易将绕环600(图6)沿逆时针方向解锁,所以i被初始化为循环有序集合中的发起者节点之前的节点的索引,例如,i=n-1。
流程控制从操作1217进行到操作1218。在操作1218中,确定是否仍然存在要解锁的Tpay交易。换句话说,确定是否i>0。如果否,则GRELR完成。或者,如果是,则控制流程进行到操作1220。
在操作1220中,节点Ui获得最后一个解锁值(sv(i+1)mod n)。例如,视情况而定,可能已经从前一个节点接收到所述值,例如,举例而言,在操作1212或操作1224(在下文中描述)中。或者,视情况而定,所述值可以由提交给区块链的交易来确定,例如,举例而言,由在操作1216或在操作1230(在下文中描述)中提交的交易来确定。
控制流程从操作1220进行到操作1222。在操作1222中,Ui使用在操作1120中获得的最后一个解锁值和与Ui相关联的私钥来确定解锁值svi。
此确定步骤的示例如下。
首先,回想一下,用于锁定从U(i-1)mod n向Ui转移资源的交易的值是基于与从Ui一直到发起者节点U0的循环有序集合中的每个节点相关联的公钥。可以使用相对应的私钥来将交易解锁。
关于锁定值(公钥),回想一下,在采用椭圆曲线加密的情况下,锁定值可以被确定为总和Qi=Pi+...+Pn-1+Ps。
此外,还记得在椭圆曲线加密中P=kG。还记得,根据椭圆曲线加法的同态性质,E(m+n)=E(m)+E(n),其中E是函数E(x)=xG。
此外,还记得Pi=kiG。因此,Qi=kiG+...+k(n-1)G+ksG=G(k1+...+k(n-1))。因此,注意到,与公钥Qi相对应的私钥是秘密值ki+ki+1+...kn-1+ks的总和。
换句话说,与锁定值Qi相对应的解锁值是与从特定节点一直到发起者节点的循环有序集合中的每个节点相关联的公钥的总和,其可以是通过将与每个公钥相关联的私钥求和,即将与从特定节点一直到发起者节点的循环有序集合中的每个节点相关联的值ki加和,得到的私钥。
值得注意的是,这可以通过同态性质实现。因此,可以利用具有类似同态性质的另一种将值组合的方法,例如,举例而言,本领域技术人员已知的各种同态哈希函数。另外或可替代地,尽管上文示出了同态加法,但是同态性也可存在于其他操作上。因此,在一些实施方式中,可以利用除加法之外的其他操作上的同态性。
回参图12,在操作1222之后,控制流程前进到操作1224。在操作1224中,Ui签署Tpay交易。换句话说,签署所述交易,当交易提交到区块链时,将转移资源U(i-1)mod n→Ui。例如,Ui可以签署相对应的Tpay交易,并且可以将svi输入到解锁脚本中,例如,输入到表格800(图8)中所示的redeemScript(赎回脚本)中。
Ui还揭示svi。例如,Ui可以通过计算机网络310上的传输将svi发送到Ui-1。或者,Ui可以依赖于Ui-1从区块链中检索sv0,例如,举例而言,当交易Tpay是在操作1230中向区块链提交时(在下文中描述)。
在操作1224之后,控制流程进行到操作1226。
在操作1226中,确定是否有足够的剩余时间以允许由Ui将Tpay交易提交到区块链。换句话说,确定时间S+(n-i)s是否已经发生,即,是否满足t<(n-i)S+s,其中t是当前时间。
如果检查失败,则控制流程进行到操作1228。或者,如果检查成功,则控制流程进行到操作1230。
在操作1228中,如果没有足够的剩余时间,则通过Ui-1触发退款交易来撤消和中止GRELR。具体而言,Ui-1将其各自的退款交易Tr提交给区块链,从而启动使节点Ui至U0将它们各自的退款交易提交给区块链的流程。
在操作1230中,考虑到有足够的剩余时间,Ui向区块链提交已签名的Tpay交易,将某些资源从Ui-1转移到Ui。
控制流程从操作1230进行到操作1231,在操作1231中,计数器i递减,然后控制流程返回到操作1218,以确定是否存在要解锁的进一步的交易。
方便的是,以这种方式,秘密值svi被揭示并且支付交易可以被解锁。在图13所示的图示1300中示出了呈循环有序集合关系的节点300的各种值(包括各种秘密值svi)的概况。
在图13中,箭头表示Tpay付款的方向。箭头外部相邻的表达式表示区块链接受交易Tpay的标准。箭头内部相邻的表达式表示时间跨度值s。
现在将讨论图14。图14示出了流程图1400,此流程图示出了由图3所示的特定节点在根据流程图1200执行操作时所执行的操作。操作1410及后续操作由节点300中的一个特定的非发起者节点的一个或多个处理器执行。这样,操作1410及后续操作由计算设备的一个或多个处理器(例如,举例而言,示例计算设备400的适当配置的实例的处理器410(图4))执行,所述处理器410执行包括计算机可执行指令的软件,所述计算机可执行指令可以存储在计算机可读存储介质(例如,举例而言,内存420的存储器)上。
在操作1410中,获得值svi+1。回想一下,svi+1是基于与从特定节点Ui一直到发起者节点U0中的特定节点Ui之后的每个节点相关联的秘密值ki。此外,还记得,每个ki是与公钥Pi相对应的私钥。换句话说,通过获得svi+1,获得第三值,此第三值是基于和与从紧接特定节点之后的下一个节点一直到发起者节点的循环有序集合中的每个节点相关联的公钥相对应的私钥。
值得注意的是,如上所述,可以从节点Ui+1,即从紧接之后的下一个节点,接收值svi+1。另外或可替代地,可以如上所述从已经提交给区块链的交易中提取出所述值。
此外,还记得,在某些实施方式中,例如,举例而言,当采用椭圆密钥加密时,svi+1可以是ki+1+...+kn-1+ks的总和。换句话说,值svi+1可以是和与从紧接特定节点之后的下一个节点一直到发起者节点的循环有序集合中的每个节点相关联的公钥Pi相对应的私钥ki的总和。
在操作1410之后,控制流程进行到操作1420。在操作1420中,基于解锁值svi+1和与特定节点相关联(且和公钥Pi相对应)的私钥ki来确定第二解锁值svi。从示例看出,在特定实施方式中采用椭圆密钥加密的情况下,确定第二解锁值可以包括如上所述添加与特定节点相关联(且和公钥Pi相对应)的私钥ki。
在操作1420之后,控制流程进行到操作1430,在操作1430中,执行将资源转移到Ui的交易Tpay。如上所述,Tpay交易是由紧邻Ui的前一个节点(即,U(i-1)mod n)准备的,并且被布置为响应于包括提供第二解锁值svi的执行条件得到满足而将某些资源的控制权从与紧邻的前一个节点相关联的源地址发送到与特定节点相关联的接收地址,如上所述。
除了上述操作之外,第二解锁值还可以被发送到紧邻的前一个节点(例如,如上文在对操作1224(图12)的讨论中所述的)。
另外或可替代地,可以由特定节点Ui将交易提交给区块链(例如,如上文在对操作1230(图12)的讨论中所述的)。
应当注意的是,上述实施例是说明而不是限制本发明的主题,并且本领域技术人员在不脱离由所附权利要求书所限定的本发明的范围的情况下将能够设计许多替代实施例。在权利要求书中,括号中的任何附图标记都不应解释为对权利要求的限制。词语“包括(comprising)”和“包括(comprises)”等不排除任一项权利要求或整个说明书中列出的元件或步骤之外的元件或步骤的存在。在本说明书中,“包括(comprises)”是指“包括或由……组成”,且“包括(comprising)”是指“包括或由……组成”。元件的单数形式并不排除此类元件的复数形式,反之亦然。本发明的主题可以通过包括几个不同元件的硬件以及通过适当编程的计算机来实现。在列举几个装置的设备权利要求中,这些装置中的几个装置可以由同一个硬件来体现。在互不相同的从属权利要求中引用某些措施的事实并不意味着不能有利地使用这些措施的组合。
Claims (18)
1.一种计算机实现方法,所述方法包括以下步骤:
将与参与区块链网络的节点的循环有序集合中的特定节点相关联的公钥发送到所述循环有序集合的发起者节点;
所述特定节点基于与从所述特定节点一直到所述发起者节点的所述循环有序集合中的每个节点相关联的公钥从紧邻所述循环有序集合中的特定节点的前一个节点接收第一值;
所述特定节点基于所述第一值和与所述特定节点相关联的公钥来确定锁定值;以及
所述特定节点使用所述锁定值来准备交易,所述交易被布置为将资源的控制权从与所述特定节点相关联的源地址发送到紧接所述循环有序集合中的特定节点之后的下一个节点的接收地址,其中所述资源的控制权响应于包括提供与所述锁定值相对应的解锁值的执行条件得到满足来发送。
2.根据权利要求1所述的方法,其中所述解锁值是基于和与从所述紧接之后的下一个节点一直到所述发起者节点的循环有序集合中的每个节点相关联的公钥相对应的私钥。
3.根据权利要求1或权利要求2所述的方法,其中所述第一值是与从所述特定节点一直到所述发起者节点的循环有序集合中的每个节点相关联的公钥的总和。
4.根据权利要求3所述的方法,其中确定所述锁定值包括从所述第一值中减去与所述特定节点相关联的公钥。
5.根据权利要求1-4中任一项所述的方法,还包括以下步骤:
所述特定节点基于所述第一值和与所述特定节点相关联的公钥向所述紧接之后的下一个节点发送第二值。
6.根据权利要求5所述的方法,其中所述第二值是与从所述紧接之后的下一个节点一直到所述发起者节点的循环有序集合中的每个节点相关联的公钥的总和,并且其中所述第二值通过从所述第一值中减去与所述特定节点相关联的公钥来确定。
7.根据权利要求1-6中任一项所述的方法,其中另一交易被布置为在满足返还条件时将所述资源的控制权返还给所述特定节点。
8.根据权利要求1-7中任一项所述的方法,还包括以下步骤:
基于和与从所述紧接之后的下一个节点一直到所述发起者节点的循环有序集合中的每个节点相关联的公钥相对应的私钥来获得第三值;
所述特定节点基于所述第三值和与所述特定节点相关联的所述公钥相对应的私钥来确定第二解锁值;
执行第二交易,所述第二交易由所述紧邻的前一个节点准备且被布置为将第二资源的控制权从与所述紧邻的前一个节点相关联的源地址发送到所述特定节点的接收地址,其中所述第二资源的控制权响应于包括提供所述第二解锁值的执行条件得到满足来发送。
9.根据权利要求8所述的方法,其中所述第三值是从所述紧接之后的下一个节点接收的。
10.根据权利要求8所述的方法,其中所述第三值是从提交给所述区块链网络的区块链的交易中提取的。
11.根据权利要求8-10中任一项所述的方法,其中所述第三值是和与从所述紧接之后的下一个节点一直到所述发起者节点的循环有序集合中的每个节点相关联的公钥相对应的私钥的总和。
12.根据权利要求11所述的方法,其中确定所述第二解锁值包括将和与所述特定节点相关联的公钥相对应的私钥添加到所述第三值。
13.根据权利要求8-12中任一项所述的方法,还包括将所述第二解锁值发送到所述紧邻的前一个节点。
14.根据权利要求1-13中任一项所述的方法,其中每个公钥及其对应的私钥形成椭圆曲线加密公钥-私钥对。
15.根据权利要求1-14中任一项所述的方法,还包括将所述第二交易提交至所述区块链网络的区块链。
16.根据权利要求8-15中任一项所述的方法,其中所述资源和所述第二资源是相同的。
17.一种适于用作循环有序集合中的特定节点的计算设备,所述计算设备包括:
处理器;
内存;
网络接口;以及
非暂时性计算机可读存储介质,其存储有计算机可执行指令,当所述计算机可执行指令由所述处理器执行时,促使所述计算设备执行根据权利要求1-16中任一项所述的方法。
18.一种非暂时性计算机可读存储介质,其存储有指令,所述指令使计算机系统适于用作循环有序集合中的特定节点,其中,当所述指令由所述计算机系统的处理器执行时,促使所述计算机系统执行根据权利要求1-16中任一项所述的方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GBGB1802063.6A GB201802063D0 (en) | 2018-02-08 | 2018-02-08 | Computer-implemented methods and systems |
GB1802063.6 | 2018-02-08 | ||
PCT/IB2019/050811 WO2019155331A1 (en) | 2018-02-08 | 2019-02-01 | System and method for transferring resources using a blockchain |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111712844A true CN111712844A (zh) | 2020-09-25 |
Family
ID=61731235
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980012693.7A Pending CN111712844A (zh) | 2018-02-08 | 2019-02-01 | 使用区块链转移资源的系统和方法 |
Country Status (6)
Country | Link |
---|---|
US (2) | US11694198B2 (zh) |
EP (1) | EP3750129B1 (zh) |
JP (2) | JP7270629B2 (zh) |
CN (1) | CN111712844A (zh) |
GB (1) | GB201802063D0 (zh) |
WO (1) | WO2019155331A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB201806448D0 (en) * | 2018-04-20 | 2018-06-06 | Nchain Holdings Ltd | Computer-implemented methods and systems |
CN108876606B (zh) * | 2018-05-29 | 2021-02-09 | 创新先进技术有限公司 | 资产转移方法及装置、电子设备 |
CN109685657B (zh) * | 2018-12-25 | 2023-07-21 | 众安信息技术服务有限公司 | 在区块链网络中处理交易的方法和节点设备以及存储介质 |
CN112070500B (zh) * | 2020-09-20 | 2022-03-01 | 中科柏诚科技(北京)股份有限公司 | 基于数字金融服务的区块链支付处理方法及云计算中心 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2855343B1 (fr) | 2003-05-20 | 2005-10-07 | France Telecom | Procede de signature electronique de groupe avec anonymat revocable, equipements et programmes pour la mise en oeuvre du procede |
JP2009159317A (ja) | 2007-12-26 | 2009-07-16 | Toshiba Corp | 匿名サービス提供システム、装置、プログラム及び方法 |
US20130173358A1 (en) * | 2012-01-03 | 2013-07-04 | Frias Transportation Infrastructure Llc | Associating vehicles with advertisement display and conversion |
JP6813477B2 (ja) * | 2014-05-09 | 2021-01-13 | ヴェリタセウム アイエヌシー. | 信頼度が低い、または信頼度が皆無の当事者間での価値転送を円滑化する装置、システム、または方法 |
AU2016235539B2 (en) * | 2015-03-20 | 2019-01-24 | Rivetz Corp. | Automated attestation of device integrity using the block chain |
US9735958B2 (en) | 2015-05-19 | 2017-08-15 | Coinbase, Inc. | Key ceremony of a security system forming part of a host computer for cryptographic transactions |
US11062303B2 (en) * | 2015-06-08 | 2021-07-13 | Blockstream Corporation | Cryptographically concealing amounts transacted on a ledger while preserving a network's ability to verify the transaction |
US20190228407A1 (en) | 2016-07-25 | 2019-07-25 | Tbcasoft, Inc. | Digital property management on a distributed transaction consensus network |
CN106779704A (zh) * | 2016-12-06 | 2017-05-31 | 杭州趣链科技有限公司 | 一种基于环签名的区块链匿名交易方法 |
US10805090B1 (en) * | 2017-03-24 | 2020-10-13 | Blockstream Corporation | Address whitelisting using public/private keys and ring signature |
CN107330787A (zh) * | 2017-05-24 | 2017-11-07 | 智牛股权投资基金(平潭)合伙企业(有限合伙) | 一种高效安全的区块链链下高频交易支付方法、系统 |
CN107453865B (zh) * | 2017-07-18 | 2020-09-11 | 众安信息技术服务有限公司 | 一种保护数据发送源隐私的多方数据共享方法及系统 |
US11362834B2 (en) * | 2017-07-24 | 2022-06-14 | Comcast Cable Communications, Llc | Systems and methods for managing digital rights |
US20190095879A1 (en) * | 2017-09-26 | 2019-03-28 | Cornell University | Blockchain payment channels with trusted execution environments |
CN107659411B (zh) * | 2017-10-11 | 2020-09-15 | 深圳大学 | 加密货币中条件可追踪用户签名的方法和系统 |
-
2018
- 2018-02-08 GB GBGB1802063.6A patent/GB201802063D0/en not_active Ceased
-
2019
- 2019-02-01 US US16/968,545 patent/US11694198B2/en active Active
- 2019-02-01 WO PCT/IB2019/050811 patent/WO2019155331A1/en unknown
- 2019-02-01 EP EP19705395.2A patent/EP3750129B1/en active Active
- 2019-02-01 JP JP2020542079A patent/JP7270629B2/ja active Active
- 2019-02-01 CN CN201980012693.7A patent/CN111712844A/zh active Pending
-
2023
- 2023-04-25 JP JP2023071178A patent/JP2023099066A/ja active Pending
- 2023-05-18 US US18/199,318 patent/US20230368195A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US20210042747A1 (en) | 2021-02-11 |
US20230368195A1 (en) | 2023-11-16 |
EP3750129A1 (en) | 2020-12-16 |
JP7270629B2 (ja) | 2023-05-10 |
JP2021513253A (ja) | 2021-05-20 |
US11694198B2 (en) | 2023-07-04 |
EP3750129B1 (en) | 2024-07-17 |
WO2019155331A1 (en) | 2019-08-15 |
GB201802063D0 (en) | 2018-03-28 |
JP2023099066A (ja) | 2023-07-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7395701B2 (ja) | ブロックチェーン上でトランザクション・ミキシングを行うためのコンピュータで実施されるシステム及び方法 | |
CN111008836B (zh) | 一种隐私安全转账支付方法、装置、系统及存储介质 | |
Ziegeldorf et al. | Coinparty: Secure multi-party mixing of bitcoins | |
US20230368195A1 (en) | System and method for transferring resources using a blockchain | |
CN112541757A (zh) | 使区块链系统的第一实体能向其它实体证明的方法 | |
JP7449423B2 (ja) | ブラインド化された帰結選択のためのブロックチェーンで実装されるセキュリティー・システムおよび方法 | |
CN113536379B (zh) | 一种隐私数据的查询方法、装置及电子设备 | |
Zhang et al. | An anonymous off-blockchain micropayments scheme for cryptocurrencies in the real world | |
CN111738857B (zh) | 应用于区块链的隐匿支付证明的生成与验证方法及装置 | |
CN112470423A (zh) | 用于资产混合的计算机实现的系统和方法 | |
JP2023145662A (ja) | ブロックチェーン・ネットワークに関与する周期的に順序付けられたノードの集合によって実施されるタスクを制御するためのコンピュータ実装方法およびシステム | |
EP4120623B1 (en) | Computer-implemented system and method for controlling processing steps of distributed system | |
CN113628050A (zh) | 数字人民币交付方法、系统、程序产品及存储介质 | |
Ehteram et al. | Blockmarkchain: A secure decentralized data market with a constant load on the blockchain | |
CN112384939A (zh) | 用于分布式分类账相关交易的链外交换的计算机实现的系统和方法 | |
Chen et al. | A secure recharge scheme for blockchain payment channels | |
Mathus Garza | The lightning network cross-chain exchange: a decentralized approach for peer to peer exchange across blockchain |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |