CN111566992A - 安全性增强的区块链交易的发起 - Google Patents
安全性增强的区块链交易的发起 Download PDFInfo
- Publication number
- CN111566992A CN111566992A CN201880080949.3A CN201880080949A CN111566992A CN 111566992 A CN111566992 A CN 111566992A CN 201880080949 A CN201880080949 A CN 201880080949A CN 111566992 A CN111566992 A CN 111566992A
- Authority
- CN
- China
- Prior art keywords
- node
- transaction
- blockchain
- proxy
- units
- 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.)
- Granted
Links
- 230000000977 initiatory effect Effects 0.000 title description 2
- 239000003999 initiator Substances 0.000 claims abstract description 121
- 238000000034 method Methods 0.000 claims abstract description 44
- 239000003795 chemical substances by application Substances 0.000 claims description 15
- 238000005065 mining Methods 0.000 description 18
- 238000004891 communication Methods 0.000 description 17
- 238000010586 diagram Methods 0.000 description 6
- 238000012546 transfer Methods 0.000 description 5
- 230000002085 persistent effect Effects 0.000 description 4
- 230000000644 propagated effect Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 240000001949 Taraxacum officinale Species 0.000 description 2
- 235000005187 Taraxacum officinale ssp. officinale Nutrition 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 244000291564 Allium cepa Species 0.000 description 1
- 235000002732 Allium cepa var. cepa Nutrition 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000000116 mitigating effect Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000004224 protection Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0407—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the identity of one or more communicating identities is hidden
- H04L63/0421—Anonymous communication, i.e. the party's identifiers are hidden from the other party or parties, e.g. using an anonymizer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0281—Proxies
-
- 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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0838—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
- H04L9/0841—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols
-
- 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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/085—Secret sharing or secret splitting, e.g. threshold 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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
-
- 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/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3066—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
- H04L9/3073—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves involving pairings, e.g. identity based encryption [IBE], bilinear mappings or bilinear pairings, e.g. Weil or Tate pairing
-
- 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
-
- 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/3255—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 group based signatures, e.g. ring or threshold signatures
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/46—Secure multiparty computation, e.g. millionaire problem
-
- 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/3236—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 using cryptographic hash functions
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Algebra (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Physics & Mathematics (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
来自发起者节点的区块链实现的交易将被广播。发起者节点以通信方式耦合到代理节点。由代理节点实现的方法包括:接收交易,该交易包括含有x+r个单位的计算资源的输入,向输出地址提供x个单位的输出以及向1‑of‑n多重签名地址提供d+r个单位的另一个输出,1‑of‑n多重签名地址可通过与代理节点相关联的一组私钥中的任何一个进行解锁。代理节点选择要分配给代理节点的计算资源的数量t个单位,以广播交易并将其包含在区块链中,并生成含有从多重签名地址获取d+r个单位的进一步的交易、以及向代理节点提供t个单位的输出。代理节点定时广播两个交易,以允许将它们包含在区块链的同一区块中。
Description
技术领域
本发明总体上涉及网络通信和密码学,且更具体地,涉及区块链交易与区块链网络的通信以及为隐藏这些通信的起源而使用的加密技术。隐藏与在区块链网络中引入交易相关的发起者节点的身份可以增强隐私和安全性。
背景技术
在本文中,“区块链”(Blockchain)一词用于包括所有形式的基于计算机的电子分布式账本(Distributed Ledger)。这些电子分布式账本包括基于共识的区块链和交易链技术、许可及未经许可的账本、共享账本以及它们的变型。虽然已经提出并开发了其他区块链实施方案,但是区块链技术最广为人知的应用是比特币账本(Bitcoin Ledger)。尽管出于方便和说明的目的,本文中提及的是比特币(Bitcoin),但应当指出的是,本发明不限于与比特币区块链一起使用,其他的区块链实施方案和协议也落入本发明的范围内。本文使用的术语“比特币”包括所有版本的比特币以及源自比特币协议的所有变体。
区块链是一种点对点的电子账本,其被实现为基于计算机的去中心化的系统,该系统由区块组成,而区块又由交易组成。每个交易都是对数字资产控制权在区块链系统的地址之间的转移进行编码的数据结构,并且包括至少一个输入和至少一个输出。每个区块都包含前一区块的散列,如此,这些区块被链接在一起,以创建永久的、不可更改的所有交易的记录,这些交易自区块链诞生之始被写入区块链。
区块链可用于多种应用。例如,区块链可用于提供反映一种或多种商品的所有权的账本。例如,在比特币区块链中,该账本反映了比特币及其部分的所有权。一些这样的商品可以表示基础单元,例如计算资源的单元。反映所有权的基于区块链的账本可以允许商品在各方之间进行伪匿名转移,使区块链上的交易不包括任何一方的个人识别信息。
特别地,给定交易的输出可以被发送到地址,该地址对应于特定方的公钥。然后,这些输出可以由关联方用作进一步交易的输入,并由对应于该地址的公钥的对应私钥解锁。
区块链的永久性或不变性意味着给定交易中涉及的地址是永久、公开可用的。
为了向参与去中心化系统的各个节点或计算机系统引入交易,必须分配该交易。该分配可以,例如,采用协议,由此形成覆盖网络,该网络由参与去中心化系统的各个节点之间的连接形成,并且可以采用Gossip协议,由此节点将给定交易分配给覆盖网络中的相邻节点。
无论如何,无论最终如何在网络中传播交易,都必须将交易引入或添加到去中心化系统中进行分配。此引入必定需要网络通信,因此可能会产生副作用,即在网络层(例如Internet协议(IP)地址)上暴露有关交易发起者的信息。如果另一方能够将此类信息与区块链上使用的特定地址相关联,则即使使用了多个公共地址,此类信息也可以用于包括一方的身份或跟踪与该方关联的所有交易。
因此,期望提供一种解决方案,该解决方案允许将交易包括在区块链中,同时隐藏该交易的网络起源。
这样的改进解决方案现已经被设计出来。
发明内容
本发明提供如所附权利要求书中定义的方法和系统。
本发明描述了一种计算机实现的方法。该方法可以由给定的代理节点来实现。该方法可以包括经由计算机网络接收由发起者节点生成并部分签名的交易,该交易包括第一输入以及第一和第二输出,其中第一输入含有x+r个计算资源单位,并且其中第一输出向输出地址提供x个单位,并且第二输出向1-of-n多重签名地址提供d+r个单位,通过使用多个第二私钥中的任何一个能够解锁1-of-n多重签名地址,每个第二私钥与多个代理节点中的一个相关联,多个代理节点包括给定的代理节点,以及基于代理节点的非对称加密密钥对的私钥和代理节点与发起者节点共享的秘密值,能够由多个代理节点中的相应一个代理节点获得每个第二私钥;选择要分配给给定代理节点的计算资源数量t个单位,以广播交易并将交易包含在区块链中;选择要分配给第三方的计算资源数量f个单位,以将交易包含在区块链中,其中f<r且t<(r–f);对通过向交易添加含有d+f个单位的第二输入生成的更新的交易进行数字签名;生成并数字签名进一步的交易,该进一步的交易包括使用代理节点的第二个私钥从1-of-n多重签名地址获取的包含d+r个单位的输入、以及向给定代理节点提供的t个单位的输出;和定时广播更新的交易和进一步的交易,以允许它们包含在区块链的同一区块中。
在一些实施方式中,接收交易可以包括接收交易的标识符。
在一些实施方式中,更新的交易的广播和进一步的交易的广播可以基本上同时发生。
在一些实施方式中,可以使用给定代理节点的公钥来加密接收的交易的标识符。
在一些实施方式中,可以基于经由计算机网络接收的指示来选择要分配给第三方以将交易包括在区块链中的计算资源的数量f。该指示可以从发起者节点接收。
在一些实施方式中,可以基于使交易包括在区块链的下一个区块中,来选择要分配给第三方以将交易包括在区块链中的计算资源的数量f。
在一些实施方式中,可以基于使进一步的交易包括在区块链的下一个区块中来进一步选择要分配给第三方以将交易包括在区块链中的计算资源数量f和要分配给给定代理节点以广播交易的计算资源数量t个单位中的至少一个。
在一些实施方式中,发起者节点可以具有相关联的非对称加密密钥对,该非对称加密密钥对包括公钥和私钥,并且发起者节点和给定代理节点之间共享的秘密值可以通过发起者节点基于其私钥和给定代理节点的公钥、以及通过给定代理节点基于其私钥和发起者节点的公钥获得。
在一些实施方式中,非对称加密密钥对可以是椭圆曲线密钥对。发起者节点与特定代理节点之间共享的秘密值可以对应于椭圆曲线迪菲-赫尔曼(Elliptical-CurveDiffie-Hellman,ECDH)密钥交换。
本发明还描述了一种计算设备,该计算设备包括处理器;存储器;网络接口;非暂时性计算机可读存储介质,其存储有计算机可执行指令,该计算机可执行指令在由处理器执行时,使计算设备执行如上所述的方法。
本发明还描述了一种非暂时性计算机可读存储介质,其存储有计算机可执行指令,该计算机可执行指令在由计算设备的处理器执行时,使计算设备执行如上所述的方法。
本发明还描述了一种计算机实现的方法,由发起者节点实施。该方法可以包括基于与代理节点相关联的第一公钥以及在发起者节点与该代理节点之间共享的秘密值,为多个代理节点中的每一个确定第二公钥,其中,每个代理节点对应的第二私钥可以由给定代理节点基于在发起者节点和给定代理节点之间共享的秘密值、以及第一私钥来确定,该第一私钥与给定代理节点相关联并且对应于给定代理节点关联的第一公钥;由发起者节点生成包括输入以及第一输出和第二输出的交易,其中输入含有x+r个单位,并且第一输出向输出地址提供x个单位,第二输出向1-of-n多重签名地址提供d+r个单位,通过使用第二个私钥中的任何一个能够解锁1-of-n多重签名地址;以数字方式对交易进行数字签名;经由网络将已签名的交易分配给代理节点。
在一些实施方式中,分配已签名的交易可能包括发送交易的标识符。
在一些实施方式中,将已签名的交易的标识符分配给代理节点可以包括将已签名交易的标识符的相应指示发送给每个代理节点。可以使用代理节点的公钥来加密发送到代理节点的一个给定代理节点的相应指示。
在一些实施方式中,发起者节点可以具有相关联的非对称加密密钥对,该相关联的非对称加密密钥对包括公钥和私钥,并且在发起者节点和给定代理节点之间共享的秘密值可以通过发起者节点基于其私钥和给定代理节点的公钥、以及通过给定代理节点基于其私钥和发起者节点的公钥获得。
在一些实施方式中,非对称加密密钥对可以是椭圆曲线密钥对。建立在发起者节点和特定代理节点之间共享的秘密值可以对应于椭圆曲线迪菲-赫尔曼(Elliptical-Curve Diffie-Hellman,ECDH)密钥交换。
本发明还描述了一种计算设备,该计算设备包括处理器;存储器;网络接口;和非暂时性计算机可读存储介质,其存储有计算机可执行指令,该计算机可执行指令在由处理器执行时,使计算设备执行如上所述的方法。
本发明还描述了一种非暂时性计算机可读存储介质,其存储有计算机可执行指令,该计算机可执行指令在由计算设备的处理器执行时,使计算设备执行如上所述的方法。
附图说明
关于本发明的一个方面或实施例描述的任何特征也可以应用于一个或更多其他方面/实施例。参考本文描述的实施例,本发明的这些和其他方面将变得显而易见并得以阐明。现在将仅通过举例的方式并参考附图来描述本发明的实施例,其中:
图1示出了与区块链网络通信的发起者节点;
图2示出了图1的发起者节点通过一组代理节点与图1的区块链网络通信;
图3示出了示例计算设备;
图4示出了可以由图1的发起者节点执行的示例方法的流程图;
图5示出了可以由诸如发起者节点根据图4的示例方法生成并签名的区块链交易;
图6示出了可以由诸如图2的一个或多个代理节点执行的示例方法的流程图;
图7示出了图5的区块链交易的更新形式;和
图8示出了可以由诸如代理节点根据图6的示例方法生成的进一步的区块链交易。
在附图中使用类似的附图标记表示相似的元件和特征。
具体实施方式
在本发明中,术语“和/或”旨在涵盖所列元件的所有可能的组合和子组合,包括单独列出的元件中的任何一个、任何子组合、或所有元件,而不必排除其他元件。
在本发明中,短语“……或……中的至少一个”旨在覆盖所列元件中的任何一个或多个,包括单独列出元件中的任何一个、任何子组合、或全部元件。而不必排除任何其他元件,也不必要求含有所有元件。
概述
许多基于区块链的系统通常被认为是匿名的。例如,各种账本系统,比如比特币通常被认为是匿名的,因为比特币可以允许当事方发送和接收一种或多种商品的单位,而无需当事方透露个人信息或识别信息。但是,此类系统可能被认为是伪匿名的,而不是匿名的,因为只有在区块链上的一方使用的地址与该方的实际身份无关的情况下,该方的身份才能受到保护。
在一个特定的示例中,与某个特定方关联的一个或多个IP地址可能可用于破坏该方的匿名性。例如,恶意攻击者可能试图将公钥链接到IP地址,以允许跟踪涉及特定方的区块链交易。附加地或可替代地,IP地址信息可用于检索一方的真实身份,方法是将IP地址信息作为索引,从其他来源(例如,从互联网论坛和社交媒体)检索信息。在这种情况下,尝试采取的缓解措施可能是不成功的,例如,为不同的区块链交易集合生成多个公钥-私钥对,或作为权宜之计参与混合服务以增加操作的匿名性。这一点可参见(例如)SBVenkatakrishnan、G.Fanti和P.Viswanath(2017)所著的“Dandelion:重构比特币网络以实现匿名性”(Dandelion:Redesigning the Bitcoin Network for Anonymity)(arXivpreprint arXiv:1701.04439),其内容通过引用全部并入本文。
如上所述,在一些区块链应用中,交易可以通过覆盖网络来传播。这种覆盖网络中参与监视和扩散区块链交易的节点可以称为“超级节点”。通过使用此类“超级节点”可以执行去匿名化攻击。例如,在比特币区块链网络的特定示例中,通过使用技术利用点对点(P2P)覆盖网络的图结构以及与该网络上的区块链交易扩散有关的某些信息,网络上的对称扩散在将特定IP地址链接到特定公钥的成功率可达到30%——可参阅A.Biryukov、D.Khovratovich和I.Pustogarov(2014年11月)在2014年ACM SIGSAC计算机和通信安全性会议的会议记录(第15-29页)中的《比特币P2P网络中客户的匿名化》(Deanonymisation ofclients in Bitcoin P2P network),其内容通过引用全部并入本文。
在区块链应用领域之外,已经进行了一些尝试以允许隐藏与特定通信相关联的IP地址。例如,诸如Tor之类的匿名中继工具提供了目前可用的最强大的身份保护之一,但是仍然存在弱点和可能的弊端。Tor的说明可在(例如)来自华盛顿特区的海军研究实验室的R.Dingledine,N.Mathewson和P.Syverson所著(2004)的《Tor:第二代洋葱路由器》(Tor:The second-generation onion router)中找到。Tor可能容易受到流量分析的影响,例如,在用户到Tor的“第一跳”链接和从Tor到用户的通信伙伴的“最后一跳”链接可以被跟踪并用于关联数据包。此类攻击可能会使用户的匿名性受到威胁。
鉴于上述情况,需要在基础网络层面(例如在TCP/IP协议的层面)保护或隐藏区块链网络中用户的身份。
图1示出了与区块链网络110通信的发起者节点100。
发起者节点100是计算设备。
区块链网络110是由通信计算设备(未示出)组成的覆盖网络。例如,区块链网络110可以由以点对点(P2P)方式通信的计算设备形成。
在一个示例中,发起者节点100可以是(例如)比特币节点,而区块链网络110可以是(例如)比特币网络。在特定示例中,发起者节点100可以是(例如)与超级节点(未示出)通信的比特币节点,该超级节点是形成区块链网络110的计算机系统之一。
因为发起者节点100直接与区块链网络110通信,有可能识别的网络信息(例如发起者节点100的IP地址)会暴露于区块链网络110。期望避免暴露所有或某些此类可能识别的网络信息。
在一种解决方案中,可以使用充当代理节点的另一计算机系统代表发起者节点100将交易引入到区块链网络110中,以隐藏网络识别的信息(例如,发起者节点100的IP地址)。然而,使用代理节点带来了许多技术挑战。
例如,代理节点可能脱机而使得其不可用,这种情况可能发生在启动或完成区块链交易的广播之前。
在另一个示例中,代理节点可能变得繁忙或过载。繁忙或过载的交易节点可能会带来不可接受的延迟,并且/或者可能会由于缺乏维护大型队列的资源而被迫丢弃排队等待处理的区块链交易。
可以通过采用一组代理节点来克服这些挑战中的一个或多个。
这样,可以提供冗余。与使用单个节点相比,使用多个代理节点可以使系统对故障的恢复能力更强。因此,增强了复原力和安全性。另外,使用一个以上的代理节点来分配负载。此外,使用一个以上的代理节点可能会用于进一步隐藏区块链交易的起源,因为它可以避免让单个代理节点持续充当发起者节点的代理。
然而,提供这种具有多个代理节点的布置可能会带来许多技术挑战。
首先,区块链交易可能对应于地址之间的价值转移。例如,区块链交易可能对应于将计算资源的若干单位从一个或多个源地址转移到一个或多个目的地址。一个或多个源地址可以与对应于发起者节点100的一方相关联。在特定示例中,区块链交易可以是比特币交易。
当使用代理代表发起者节点将区块链交易引入网络时,可能会向代理节点提供基于区块链的资源(例如令牌)的一定金额,以成功传播交易并使其包含在区块链中。选择这一金额可能带来额外的消息传递开销,尤其是在发起者节点与一个或多个代理节点通信的情况下,例如,以确定哪个代理节点将接受最低的金额。因此,避免或限制消息传递开销是一个问题,该消息传递开销与建立待提供的与特定区块链交易相关联的该金额相关。
使用多个代理节点的问题还在于,如果不同的代理节点要求向每个特定的代理节点提供不同的金额,以成功地传播交易,并将其包含在区块链中,则一个发起者节点可能必须生成多个区块链交易,每个都将不同的金额转移到与代理节点中特定的一个代理节点相关联的地址。而且,即使一个代理节点要求的金额与另一个代理节点相同,也可能必须生成多个区块链交易,每个区块链交易都将金额提供给与代理节点中特定的一个代理节点相关联的地址。
在某些基于区块链的系统中,例如比特币,一旦广播了交易,特定计算机系统(称为矿工)仍然必须将该区块链交易包含在区块链中,这些计算机系统负责生成区块链中的新区块。矿工以新挖掘的比特币的形式接收金额,用于执行“挖掘”区块所需的计算工作。值得注意的是,这意味着比特币直接对应于此类计算资源。
可以向矿工提供挖掘费用,以将特定的区块链交易包括在挖掘区块中。该挖掘费用反映为给定交易的输入超过该区块链交易的输出的盈余。在下一个区块中包含区块链交易所需的最低费用可能会随时间而变化。
将区块链交易提供给多个代理以在区块链上进行可能的广播的另一个问题是,使特定区块链交易将可能包含在下一个挖掘区块中所需的挖掘费用可能在时间段内波动,该时间段在发起者节点生成区块链交易和一个或多个代理节点将区块链交易传输到区块链网络之间。如此,问题在于,对于发起者节点以适当的挖掘费用配置区块链交易,可能需要在发起者节点与各个代理节点之间进行广泛的来回通信或联络。例如,发起者节点100可以配置包括特定挖掘费用的区块链交易,并将该区块链交易发送到代理节点以进行广播,但是然后网络条件可能在代理节点广播该区块链交易之前改变,从而导致挖掘费用不足,无法包含在下一区块中。在这种情况下,代理节点可能需要发送具有更高挖掘费用的新区块链交易,这可能需要进一步的通信,例如与发起者节点的通信。这可能导致非期望的消息传递开销。此外,多个区块链交易的生成可能会非期望地消费一个或多个发起者节点和代理节点的计算资源。
根据本发明,可以使用多个代理节点来解决使用单个代理节点的缺点以及与使用多个代理节点相关的问题,包括,例如,可以解决与建立挖掘费用相关的潜在的计算和消息传递开销的问题,以及提供给代理节点以成功传播区块链交易并将其包含在区块链中的金额的问题。例如,可以通过允许给定的代理节点选择二者来解决与建立挖掘费用和提供给代理节点以成功传播区块链交易并将其包括在内的金额有关的问题。
图2的高层次示意图示出了关于可以如何使用一组代理节点来代表发起者节点100将交易引入到区块链网络110中的示例布置。
如图所示,发起者节点100经由元件220通过一组代理节点230A-C与区块链网络110通信。
每个代理节点230A-C都是一个计算设备。代理节点230A-C与区块链网络110通信。尽管示出了三个代理节点(代理节点230A、代理节点230B和代理节点230C),但这仅是示例性的,代理节点的数量可能会有所不同。
元件220允许由发起者节点100将信息传播到一个或多个代理节点230A-C,反之亦然。元件220可以代表一个或多个设备,例如,位于著名的网络地址的计算机系统,其存储由一方发送的信息以供另一方或多个其他方转发和/或检索。由这样的元件220存储的信息可以是短暂的和/或可以在某个定义的时间段之后到期。在另一个示例中,元件220可以对应于网络连接,发起者节点100通过该网络连接与代理节点230A-C通信。
如下文进一步描述的,发起者节点100可以将区块链交易传播到代理节点230A-C,从而传播到区块链网络110。在一些实施例中,代理节点230A-C中的一个或多个可以形成区块链网络110的部分。附加地或可替代地,代理节点230A-C中的一个或多个可以与区块链网络110的一个或多个节点通信。
如上所述,代理节点230A-C被配置为将区块链交易中继到区块链网络110,例如,代表发起者节点100。
如下文进一步描述的,发起者节点100可以将区块链交易传播到代理节点230A-C,从而传播到区块链网络110。在一些实施例中,代理节点230A-C中的一个或多个可以形成区块链网络110的部分。附加地或可替代地,代理节点230A-C中的一个或多个可以与区块链网络110的一个或多个节点通信。
如上所述,代理节点230A-C被配置为将交易中继到区块链网络110,例如,代表发起者节点100。
特别地,发起者节点100可以生成部分签名的区块链交易,其包括超过挖掘费用和为成功传播区块链交易以将其包括在区块链中而提供给代理节点的金额的盈余输入值。如下文进一步描述的,然后代理节点230A-C中的一个或多个可以向部分签名的区块链交易提供进一步的输入,以便定义区块链交易的挖掘费用,并且可以生成进一步的区块链交易,以收集用于将第一区块链交易分配给区块链网络110的金额。
图3是示例计算设备300的高层次操作图。在一些实施例中,示例计算设备300可以是本文描述的一个或多个计算机系统的示例,包括,例如,发起者节点100和/或代理节点230A-C。每一个发起者节点100和代理节点230A-C都包括使它适于执行特定功能的软件。
示例计算设备300包括各种模块。例如,如图所示,示例计算设备300可以包括处理器310、存储器320和网络接口330。如图所示,示例计算设备300的前述组件通过总线340进行通信。
处理器310是硬件处理器。处理器310可以是(例如)一个或多个ARM、Intel x86、PowerPC处理器等。
存储器320可以存储和检索数据。存储器320可以包括(例如)随机存取存储器、只读存储器和持久性存储器。持久性存储器可以是例如闪存、固态驱动器等。只读存储器和持久性存储器是非临时性计算机可读存储介质。计算机可读介质可以使用文件系统来组织,例如,可以由管理示例计算设备300的整体操作的操作系统来管理。
网络接口330允许示例计算设备300与其他计算设备和/或诸如区块链网络110(图1和2)的各种通信网络进行通信。
处理器310通过计算机可读介质执行包括指令的软件。例如,可以将软件从存储器320的持久性存储器加载到随机存取存储器中。附加地或可替代地,指令可以由处理器310直接从存储器320的只读存储器执行。
如下文进一步描述的,软件可以改变示例计算设备300的实例,使其适合用作本文提到的各种计算机系统中的一个或多个,包括例如发起者节点100和代理节点230A-C。
如上所述,发起者节点100(图2)可以向代理节点230A-C中的一个或多个提供交易以将其分配给区块链网络110。参照图4的流程图400,描述了发起者节点100向代理节点提供这种区块链交易时的操作。操作410和后续操作由计算设备的一个或多个处理器执行,例如示例计算设备300的适当配置的实例的处理器310(图3)执行包括计算机可执行指令的软件,该计算机可执行指令可能存储在计算机可读存储介质中,例如存储器320的存储器中。
作为流程图400所示的方法的前提,发起者节点100要与每个代理节点230A-C交换公钥。该密钥可以(例如)经由元件220(图2)交换。
例如,发起者节点100可能和每个代理节点230A-C生成公钥-私钥对并在交换中使用公钥。这些关联的非对称加密密钥对可以是可能与节点关联的任何其他加密密钥的附加。
作为另一个前提,发起者节点100要与每个代理节点230A-C建立共享秘密值。
如下文进一步描述的,该共享秘密值可能是通过交换公钥建立的。或者,建立共享秘密值可能涉及进一步的通信和/或计算。
在操作410,发起者节点100基于在先决条件的公钥交换中接收到的第一公钥,为每个代理节点230A-C确定第二公钥。第二公钥是基于第一公钥和共享秘密值来确定的,并且以这样的方式被生成,使得对于每个代理节点,对应的第二私钥可以由给定的代理节点基于在发起者节点和给定的代理节点之间共享的秘密值以及与第一公钥对应的相关私钥来确定。下文描述了可以基于第一公钥和使用的共享秘密值来确定第二公钥的方法。
在确定了每个代理节点230A-230C的第二公钥之后,控制流程进行到操作420。
在操作420,发起者节点100生成包括一个输入和两个输出的区块链交易。图5示出了这种区块链交易的例子。如图所示,示例性区块链交易,即区块链交易500,包括输入510、第一输出520和第二输出530。
区块链交易500旨在通过区块链实现的账本将x个单位的基于区块链的资源转移给另一方。为了便于说明,未显示源地址和目标地址。该单位可以(例如)对应于计算资源的单位。该单位可以是特定资源的单位,例如以比特币表示的单位。
为了看到包括在区块链中的区块链交易500,发起者节点100可能愿意提供另外的r个单位。
如图所示,两个数量(x+r)个单位可通过输入510作为输入提供给区块链交易。可替代地,这些数量可以通过一个以上的输入来提供,例如,如果用户希望提供来自不同地址的x和r个单位的全部或部分。
第一输出520向输出地址提供x个单位。该输出地址可以与另一方相关联。
第二输出530向特定地址提供d+r个单位,由此可以通过上述与代理节点230A-C相关联的第二私钥中的任何一个来解锁提供给该地址的金额。这样的1-of-n多重签名地址可以由发起者节点100基于上述第二公钥来生成,该第二公钥是基于每个代理节点的公钥和代理节点与发起者节点100共享的秘密值确定的。此类多重签名地址的详细信息(特别是在比特币的情况中)可以在AM.Antonopoulos(O'Reilly Media)撰写的《掌握比特币:解锁数字加密货币》(Mastering Bitcoin:Unlocking Digital Cryptocurrencies)(2014)(以下简称“掌握比特币”)中找到,其内容通过引用全部并入本文。“掌握比特币”的第5章讨论了多重签名地址。
区块链交易500中也可能包括额外的输出(未示出),例如,用于收集从多于(x+r)个单位的那里获得的盈余的额外输出,其中(x+r)个单位从输入源510获得。
值得注意的是,包括在第二输出530中的d个单位数量是任意数量,该任意数量导致在区块链500中输入510与第一输出520和第二输出530之和之间存在d个单位的不平衡(差额)。如下文进一步描述的,这使得发起者节点100有可能对区块链交易500进行签名,同时确保在没有添加一个或多个进一步的输入的情况下区块链不会接受将区块链交易500纳入区块链,从而确保区块链交易的输入总和超过输出的总和。
返回图4,在操作420之后,控制流程进行到操作430。
在430操作中,发起者节点100对区块链交易500进行数字签名。如上所述,区块链交易500是不完整的,因为其输出总和超过了输入总和。发起者节点100以对所有输出(即包括第一输出520和第二输出530)以及输入510进行签名的这种方式对区块链交易进行签名,这样将不能再向区块链交易500添加进一步的输出,但可以添加进一步的输入。例如,如果区块链交易500是比特币交易,则发起者节点100可以使用标志SIGHASH_ALL|SIGHASH_ANYONECANPAY来对区块链交易500进行签名。
在操作430之后,控制流程进行到操作440。
在操作440处,发起者节点100将已签名的区块链交易500分配给代理节点230A-C。在某些实施例中,发起者节点100可以通过元件220传播区块链交易500。值得注意的是,因为已经对区块链交易500进行了签名,所以与区块链交易关联的交易标识符(txid)是唯一的。因此,发起者节点可以将txid传播到代理节点230A-C,例如通过元件220。在另一个示例中,发起者节点可以向每个代理节点230A–C传播相应的txid的指示。附加地或可替代地,区块链交易500可以以其他方式进行传播,例如,通过将其序列化为某种格式,以便传输到代理节点230A-C。区块链交易500和/或txid可以以加密的形式传输。例如,二者或二者中的一个可以分配到每个代理节点230A-C,使用该代理节点的公钥对每个代理节点进行加密。在特定的示例中,接收的区块链交易500的标识符可以使用给定代理节点的公钥进行加密。
如上所述,代理节点230A-C从发起者节点100接收区块链交易500,以将其分配给区块链网络110。参照图6中的流程图600,描述了代理节点230A-C之一与将区块链交易分配到区块链网络110有关的操作示例。操作610和后续操作由计算设备的一个或多个处理器执行,例如,示例计算设备300的适当配置的实例的处理器310(图3)执行包括计算机可执行指令的软件,这些计算机可执行指令可以存储在计算机可读存储介质上,例如存储器320的存储器。
流程图600所示的方法具有与流程图400(图4)所示的方法相似的前提条件;即,代理节点已经与发起者节点100(图2)交换公钥,例如可能经由元件220(图2)交换公钥,并且示例代理节点已经与发起者节点100建立共享秘密值。这样,每一个发起者节点100和代理节点将具有关联的非对称密钥对,该非对称密钥对包括节点交换的且与公钥相关联的私钥。
在操作610,代理节点从发起者节点接收区块链交易500(图5)。如上所述,区块链交易500由发起者节点100部分地签名,并且包括含有x+r个单位的第一输入和提供x个单位给输出地址的第一输出以及提供d+r个单位给1-of-n多重签名地址的第二输出,可以使用与代理节点230A-C相关联的一组第二私钥中的任何一个来解锁1-of-n多重签名地址。代理节点可以基于与发起者节点100交换的公钥(作为前提)相对应的私钥,以及代理节点与发起者节点共享的秘密值来获得其第二私钥。
可以通过接收与区块链交易500相关联的标识符的方式来接收区块链交易500。该标识符可以(例如)是区块链交易500的交易ID(txid)。附加地或可替代地,区块链交易500可以以某种其他形式(例如以某种序列化格式)被接收,并且可能需要(例如)被反序列化。附加地或可替代地,区块链交易500可以以加密形式被接收。例如,发起者节点100可以使用与代理节点相关联的公钥来执行加密。在特定示例中,加密可以使用代理节点与发起者节点100交换的公钥(作为前提条件),或者在另一示例中,使用与代理节点的第二私钥相对应的第二公钥。代理节点可以使用与其相关联的公钥相对应的私钥来解密区块链交易500或区块链交易500的标识符。
在操作610之后,流程控制进行到操作620。
在操作620中,代理节点选择若干数量,该若干数量将用于更新区块链交易500、以及用于在成功地将区块链交易500包括在区块链时组成进一步的交易以向代理节点提供一个金额。
特别地,代理节点选择要分配给代理节点的数量t个单位,以用于广播区块链交易500并使区块链交易500包括在区块链中。
此外,代理节点选择要分配给第三方的数量f,以将区块链交易500包括在区块链中。数量f可以以计算资源为单位来表示,因此可以是f个计算资源单位的数量。例如,在比特币区块链的情况下,f个单位可以对应于支付给矿工的挖掘费用,以将区块链交易500包括在区块链中。
数量f可以基于经由计算机网络接收的指示来选择。例如,在数量f对应于计算资源的情况下,可以是基于经由计算机网络接收的指示来选择要分配给第三方以将交易包括在区块链中的计算资源的数量f。此类指示可以从发起者节点接收。附加地或可替代地,数量f可以基于使区块链交易包括在区块链的下一个区块中来选择。例如,可以咨询网络服务以确定一个金额,如果选择该金额作为数量f,则该金额将以期望的概率或可能性确保区块链交易500将被包括在区块链的下一个区块中。
值得注意的是,数量f必须小于r(即f<r),否则,代理节点将无法网络接收使区块链交易500包括在区块链中的金额,甚至可能贡献自己的资源(单位)以使区块链交易500包括在区块链中。
第一输出520发送的x个单位的输出的类型可能会影响使更新后的区块链交易700(如下文进一步描述的)包括在区块链中所必需的挖掘费用。因此,第一输出和第二输出中的一个或两者都可以具有众所周知的形式,以帮助代理节点选择数量f。
如下文进一步描述的,代理节点将生成进一步的交易以便向其提供t个单位,条件是区块链交易500(以及进一步的区块链交易)包括在区块链中。因为可能还需要提供一定的金额(例如,对于比特币而言,是向矿工支付的挖掘费用),以便将进一步的交易包括在区块链中,因此也可以选择数量t,以允许从由区块链交易500的第一输入提供的r个单位中支付该金额。换句话说,可能t<(r–f)。
在操作620选择数量之后,控制流程进行到操作630。
在操作630,生成区块链交易500的更新形式。特别地,如上所述,由于区块链交易500的输出总和超过其输入,因此区块链交易500不适合包括在区块链中。因此,在操作630处,图7中所示的更新的区块链交易700可以基于区块链交易500(图5)生成。特别地,更新的区块链交易700通过将含有d+f个单位的第二输入710添加到区块链交易500来生成。值得注意的是,d个单位用于平衡第二输出530中的d个单位。如上所述,将提供f个单位,用于将更新的区块链交易700包括在区块链中—例如,对于比特币而言为挖掘费用。
代理节点还对更新的区块链交易700进行签名,从而对第二输入710进行签名。例如,在更新的区块链交易700是比特币交易的情况下,代理节点可以用标志SIGHASH_ALL|SIGHASH_ANYONECANPAY对更新的区块链交易700进行签名。该进一步的加密签名将带来边缘影响,即更新的区块链交易700具有与区块链交易500不同的交易ID(txid)。
由于使输入总额至少等于所有输出的总额,并且考虑到所有这些输入和输出都进行了签名,所以更新的区块链交易700的形式适合包括在区块链中。
返回图6,在操作630之后,控制流程进行到操作640。
在操作640,如上所述,生成进一步的区块链交易800并对其进行数字签名。特别地,如图8所示,代理节点生成进一步的区块链交易800并对其进行数字签名。进一步的区块链交易800包括含有d+r个单位的输入810,该d+r个单位来自于区块链交易700(图7)的第二输出530的1-of-n多重签名地址,并且可使用代理节点的第二私钥被解锁,该第二私钥基于先决条件中与发起者节点100交换的代理节点的公钥相对应的私钥以及该代理节点与发起者节点100共享的秘密值获得。进一步的区块链交易800还包括输出820,该输出向可由代理节点选择的地址提供t个单位。实际上,仅当将更新的区块链交易700(和进一步的区块链交易800)包括在区块链中时,t个单位才是向代理节点提供的金额。值得注意的是,t和d+r之间的差值(即t-d-r)可以是用于将区块链交易800包括在区块链中的金额(例如,在区块链网络110为比特币网络时,为向矿工支付的挖掘费用)。这样,可以选择数量f和数量t中的一个或两者,使得金额t-d-r允许将进一步的区块链交易800包括在区块链的下一个区块中。
返回图6,在操作640之后,控制流程进行到操作650。
在操作650,代理节点将区块链交易700和区块链交易800都广播到区块链网络110。可以定时广播更新的区块链交易700和进一步的区块链交易800,从而使它们能够包括在区块链的同一区块中。例如,可以同时/相继广播更新的区块链交易700和进一步的区块链交易800。方便起见,当数量f和t-d–r使得更新的区块链交易700和进一步的区块链交易800被包括在区块链的下一个区块中且它们的广播是定时的,则两个交易可被包括在区块链中相同的下一个区块中。
如上所述,发起者节点100可以将区块链交易500发送到每个代理节点230A-C。因此,每个代理节点230A-C可以生成自己的更新的区块链交易700和区块链交易800的版本。值得注意的是,由于第二输入710的不同形式,更新的区块链交易700的每个实例将具有不同的txid。然而,还需要注意的是,更新的区块链交易700的每个版本都将具有第一输入,即输入510,与区块链交易500的输入510相同,这样就可以从与输入510相同的来源获得未花费交易输出。因此,相对于更新的区块链交易700的任何其他版本,更新的区块链交易700的每个版本对区块链网络110来说都是双重支付攻击(即,将特定令牌的相同部分转移给不同方)。然而,方便的是,由于大多数基于区块链的账本(例如比特币)可以防止双重支付,因此仅将更新的区块链交易700的一个实例包括在区块链中。
区块链网络110的不同实例可以以不同的方式解决支持更新的区块链交易700的各种版本中的特定版本带来的双重支付问题。例如,构造区块链区块的节点(例如矿工)可以选择它看到的第一个区块。对于比特币而言,尽管更新的区块链交易700的多个版本可以临时存储在挖掘节点的存储器中(在所谓的“内存池”中),但矿工将选择向矿工支付最高挖掘费用的更新的区块链交易700,以便将其包含在下一区块中。值得注意的是,由于数量r、f和t之间的关系,选择更新的区块链交易700的版本也会产生副作用,该更新的区块链交易700源自选择最低t值的代理节点。有关内存池的更多详细信息,请参见“掌握比特币”的第8章(有关引用,请参见上文)。
值得注意的是,一旦更新的区块链交易700被包括在区块链中,则更新的区块链交易700的交易ID是公开可用的。这意味着代理节点230A-C中的任何一个(即使不是发送包括在区块链中的更新后的区块链交易700版本的代理节点)都可以花费交易输出的输出。然而,可以通过在分配更新的区块链交易700之前生成进一步的区块链交易800、通过同时广播更新的区块链交易700和进一步的区块链交易800、以及通过提供所需的金额(例如,挖掘费用)来减轻这种担忧,以确保将更新的区块链交易700和进一步的区块链交易800都包括在同一(下一个)块中。
多于一个“发起者”节点
以上描述仅包括单个发起者节点(发起者节点100),然而可能是多个发起者节点与每个代理节点230A-C通信。方便地,代理节点230A-C可以与这样的多个发起者节点中的每一个交换相同密钥对的公钥。
建立先决条件
如上所述,流程图400(图4)和流程图600(图6)中所示的两种方法都要求发起者节点100已经与每一个代理节点230A-C交换了公钥,且发起者节点100与每一个代理节点230A-C共享各自的秘密值。
发起者节点100和每一个代理节点230A-C可以生成随机的椭圆曲线公钥-私钥对。椭圆曲线密钥对的公钥可以交换。
特别地,发起者节点100可以选择随机私钥xA,并且可以发布对应的公钥PA=xA×G。
类似地,每一个代理节点230A-C都可以选择随机私钥yB,i,并且可以发布相应的公钥QB,i=yB,i×G。
使用此信息,发起者节点100可以确定与每一个代理节点230A-C的共享秘密值ci,其中ci=H(xA.×QB,i),H是加密哈希函数,例如SHA-2家族的成员。类似地,每一个个代理节点230A-C同样可以确定它与发起者节点100共享的秘密值,即ci=H(PA×yB,i)=H(xA.×QB,i),由于椭圆曲线的同态性质,使秘密值具有相等性。值得注意的是,建立在发起者节点和特定代理节点之间共享的秘密值的上述步骤对应于椭圆曲线迪菲-赫尔曼(Elliptical-CurveDiffie-Hellman,ECDH)密钥交换。
发起者节点100还可以基于与给定代理节点共享的秘密值和该代理节点已发布的公钥,为每个代理节点230A-C确定另一个公钥。特别地,这样的另一公钥(对应于上述第二公钥)可以被计算为Q’B,i=QB,i+ci×G。便利地,尽管第二公钥由发起者节点100生成,相应的私钥SB,i(对应于上述“第二私钥”)将只能由相应的代理节点确定。特别地,代理节点可以基于其私钥yB,i以及代理节点与发起者节点100共享的秘密值来确定其第二私钥,其中,特别地,SB,i=(yB,i+ci)。
也可以采用建立先决条件的替代方法。例如,经典的迪菲-赫尔曼密钥交换(Diffie-Hellman Key Exchange)(基于离散对数问题)可以由发起者节点100与每个代理节点230A-C执行,以便与每个代理节点建立各自的共享值。公钥也可以以其他方式交换。例如,可以直接交换公钥,也可以在安全信道上交换公钥,例如在在上述经典的迪菲-赫尔曼密钥交换基础上进一步建立的安全信道上交换公钥。
应当说明,上述实施例说明而非限制本发明,在不脱离本发明的由所附权利要求限定的范围的情况下,本领域技术人员将能够设计出许多替代性实施例。在权利要求中,括号中的任何附图标记不应解释为对权利要求的限制。词语“包括(comprising)”和“包括(comprises)”等并非在整体上排除其他元件和步骤的存在,尽管这些元件和步骤并没有在任何权利要求或说明书中列出。在本说明书中,“包括(comprises)”意指“包括(includes)或由......组成(consists of)”,“包括(comprising)”意指“包括(including)或由......组成(consisting of)”。元件的单数引用不意味着排除这些元件的复数引用,反之亦然。本发明的主题可以借助包括若干不同元件的硬件,以及借助适当编程的计算机来实施。在列举了若干装置的设备权利要求中,这些装置中的若干个可以由硬件的同一个部件来体现。不争的事实是,在相互不同的从属权利要求中列举了某些方法,并不代表这些方法的结合不能获得有益效果。
Claims (20)
1.一种计算机实现的方法,包括由给定的代理节点:
经由计算机网络接收由发起者节点生成并部分签名的交易,所述交易包括第一输入以及第一和第二输出,其中所述第一输入含有x+r个单位的计算资源,并且其中所述第一输出向输出地址提供x个单位,并且所述第二输出向1-of-n多重签名地址提供d+r个单位,通过使用多个第二私钥中的任何一个能够解锁所述1-of-n多重签名地址,每个所述第二私钥分别与多个代理节点中的一个相关联,所述多个代理节点包括给定的代理节点,以及基于所述代理节点的非对称加密密钥对的私钥和所述代理节点与所述发起者节点共享的秘密值,能够由所述多个代理节点中的相应一个代理节点获得每个所述第二私钥;
选择要分配给所述给定代理节点的计算资源数量t个单位,以广播所述交易并将所述交易包含在所述区块链中;选择要分配给第三方的计算资源数量f个单位,以将所述交易包含在所述区块链中,其中f<r且t<(r–f);
对通过向所述交易添加含有d+f个单位的第二输入生成的更新的交易进行数字签名;
生成并数字签名进一步的交易,所述进一步的交易包括使用所述代理节点的第二私钥从所述1-of-n多重签名地址获取的包含d+r个单位的所述输入、以及向所述给定代理节点提供的t个单位的所述输出;和
定时广播所述更新的交易和所述进一步的交易,以允许它们包含在所述区块链的同一区块中。
2.根据前述权利要求中的任一项所述的方法,其中,接收所述交易包括接收所述交易的标识符。
3.根据前述权利要求中的任一项所述的方法,其中,所述更新的交易的广播和所述进一步的交易的广播是基本上同时发生的。
4.根据前述权利要求中的任一项所述的方法,其中,使用所述给定代理节点的公钥来加密接收的所述交易的标识符。
5.根据任一前述权利要求所述的方法,其中,基于经由所述计算机网络接收的指示来选择要分配给所述第三方以将所述交易包括在所述区块链中的计算资源的数量f。
6.根据权利要求5所述的方法,其中,所述指示是从所述发起者节点接收的。
7.根据前述权利要求中的任一项所述的方法,其中,基于使所述交易包括在所述区块链的下一个区块中,来选择要分配给所述第三方以将所述交易包括在所述区块链中的计算资源的数量f。
8.根据前述权利要求中的任一项所述的方法,其中,基于使所述进一步的交易包含在所述区块链的下一区块中来进一步选择要分配给所述第三方以将所述交易包括在区块链中的计算资源的数量f和要分配给所述给定代理节点以广播所述交易的计算资源的数量t个单位中的至少一个。
9.根据前述权利要求中的任一项所述的方法,其中,所述发起者节点具有相关联的非对称加密密钥对,所述非对称加密密钥对包括公钥和私钥,并且其中,所述发起者节点和所述给定代理节点之间共享的秘密值可以通过所述发起者节点基于其私钥和所述给定代理节点的公钥、以及通过所述给定代理节点基于其私钥和所述发起者节点的公钥获得。
10.根据前述权利要求中的任一项所述的方法,其中,所述非对称加密密钥对是椭圆曲线密钥对,并且其中,建立在所述发起者节点与特定代理节点之间共享的秘密值对应于椭圆曲线迪菲-赫尔曼(Elliptical-Curve Diffie-Hellman,ECDH)密钥交换。
11.一种计算设备,包括
处理器;
存储器;
网络接口;和
非暂时性计算机可读存储介质,其存储有计算机可执行指令,所述计算机可执行指令在由所述处理器执行时,使所述计算设备执行前述权利要求中的任一所述的方法。
12.一种非暂时性计算机可读存储介质,其存储有计算机可执行指令,所述计算机可执行指令在由计算设备的处理器执行时,使所述计算设备执行权利要求1至10中的任一项所述的方法。
13.一种计算机实现的方法,包括由发起者节点:
基于与代理节点相关联的第一公钥以及在所述发起者节点与所述代理节点之间共享的秘密值,为多个代理节点中的每一个确定第二公钥,其中,每个所述代理节点对应的第二私钥可以由给定代理节点基于在所述发起者节点和所述给定代理节点之间共享的秘密值、以及第一私钥来确定,所述第一私钥与所述给定代理节点关联并且对应于所述给定代理节点关联的第一公钥;
由发起者节点生成包括输入以及第一输出和第二输出的交易,其中,所述输入含有x+r个单位,并且其中所述第一输出向输出地址提供x个单位,并且所述第二输出向1-of-n多重签名地址提供d+r个单位,通过使用所述第二个私钥中的任何一个能够解锁所述1-of-n多重签名地址;
以数字方式对所述交易进行数字签名;和
经由网络将所述已签名的交易分配给所述代理节点。
14.根据权利要求13所述的方法,其中,分配所述已签名的交易包括发送所述交易的标识符。
15.根据权利要求13或14所述的方法,其中,将所述已签名的交易的标识符分配给所述代理节点包括将所述已签名的交易的标识符的相应指示发送给每个所述代理节点。
16.根据权利要求15所述的方法,其中,使用所述代理节点的公钥来加密发送到所述代理节点的一个给定代理节点的所述相应指示。
17.根据权利要求13至16中的任一项所述的方法,其中,所述发起者节点具有相关联的非对称加密密钥对,所述非对称加密密钥对包括公钥和私钥,并且其中,所述发起者节点与给定代理节点之间共享的秘密值可以通过所述发起者节点基于其私钥和所述给定代理节点的公钥、以及通过所述给定代理节点基于其私钥和所述发起者节点的公钥获得。
18.根据权利要求13至17中任一项所述的方法,其中,所述非对称加密密钥对是椭圆曲线密钥对,并且其中,建立在所述发起者节点与特定代理节点之间共享的秘密值对应于椭圆曲线迪菲-赫尔曼(Elliptical-Curve Diffie-Hellman,ECDH)密钥交换。
19.一种计算设备,包括
处理器;
存储器;
网络接口;和
非暂时性计算机可读存储介质,其存储有计算机可执行指令,所述计算机可执行指令在由所述处理器执行时,使所述计算设备执行权利要求13至18中任一项所述的方法。
20.一种非暂时性计算机可读存储介质,其存储有计算机可执行指令,所述计算机可执行指令在由计算设备的处理器执行时,使所述计算设备执行权利要求13至18中任一项所述的方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GBGB1721021.2A GB201721021D0 (en) | 2017-12-15 | 2017-12-15 | Computer-implemented methods and systems |
GB1721021.2 | 2017-12-15 | ||
PCT/IB2018/059922 WO2019116250A1 (en) | 2017-12-15 | 2018-12-12 | Security-enhanced origination of blockchain transactions |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111566992A true CN111566992A (zh) | 2020-08-21 |
CN111566992B CN111566992B (zh) | 2024-04-16 |
Family
ID=61009208
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880080949.3A Active CN111566992B (zh) | 2017-12-15 | 2018-12-12 | 安全性增强的区块链交易的发起 |
Country Status (8)
Country | Link |
---|---|
US (2) | US11297041B2 (zh) |
EP (2) | EP3725033B1 (zh) |
JP (3) | JP7193537B2 (zh) |
KR (1) | KR102637864B1 (zh) |
CN (1) | CN111566992B (zh) |
GB (1) | GB201721021D0 (zh) |
SG (1) | SG11202005568SA (zh) |
WO (1) | WO2019116250A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113507480A (zh) * | 2021-07-23 | 2021-10-15 | 北京众享比特科技有限公司 | 网络设备、网闸设备和系统、网络间数据传输及汇报方法 |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB201805633D0 (en) * | 2018-04-05 | 2018-05-23 | Nchain Holdings Ltd | Computer implemented method and system |
DE102018127529A1 (de) * | 2018-11-05 | 2020-05-07 | Infineon Technologies Ag | Elektronische Vorrichtung und Verfahren zum Signieren einer Nachricht |
US11170128B2 (en) * | 2019-02-27 | 2021-11-09 | Bank Of America Corporation | Information security using blockchains |
GB2587028A (en) * | 2019-09-16 | 2021-03-17 | Nchain Holdings Ltd | Cryptographically linked identities |
US11522670B2 (en) | 2019-12-04 | 2022-12-06 | MaataData, Inc. | Pyramid construct with trusted score validation |
US20220400101A1 (en) * | 2019-12-04 | 2022-12-15 | Consensys Software Inc. | Systems and methods for side-channel-secure blockchain anonymity using i2p |
KR20210081471A (ko) * | 2019-12-23 | 2021-07-02 | 삼성전자주식회사 | 프로그램 코드를 저장하는 비일시적 컴퓨터 판독가능 매체, 복호화 장치, 및 암호화 장치와 복호화 장치를 포함하는 통신 시스템 |
CN111327426B (zh) * | 2020-01-21 | 2021-06-25 | 腾讯科技(深圳)有限公司 | 数据共享方法及相关装置、设备及系统 |
CN113849851A (zh) | 2020-06-28 | 2021-12-28 | 中兴通讯股份有限公司 | 代理方法、设备及计算机可读存储介质 |
CN112351119B (zh) * | 2021-01-11 | 2021-04-02 | 北京知帆科技有限公司 | 一种基于概率的区块链交易始发ip地址确定方法及装置 |
CN114531305B (zh) * | 2022-04-23 | 2022-07-19 | 东南大学 | 一种面向以链治链的区块链跨链监管方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106100847A (zh) * | 2016-06-14 | 2016-11-09 | 惠众商务顾问(北京)有限公司 | 非对称加密区块链身份信息验证方法及装置 |
GB201709760D0 (en) * | 2017-06-19 | 2017-08-02 | Nchain Holdings Ltd | Computer-Implemented system and method |
CN107294729A (zh) * | 2017-07-25 | 2017-10-24 | 中国联合网络通信集团有限公司 | 区块链中不同节点之间的通信方法及装置 |
GB201715423D0 (en) * | 2017-09-22 | 2017-11-08 | Nchain Holdings Ltd | Computer-implemented system and method |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7181017B1 (en) | 2001-03-23 | 2007-02-20 | David Felsher | System and method for secure three-party communications |
CN1950902A (zh) | 2004-05-04 | 2007-04-18 | 皇家飞利浦电子股份有限公司 | 跨越处理设备的访问授权 |
US20060123465A1 (en) * | 2004-10-01 | 2006-06-08 | Robert Ziegler | Method and system of authentication on an open network |
US20060182283A1 (en) * | 2005-02-14 | 2006-08-17 | Tricipher, Inc. | Architecture for asymmetric crypto-key storage |
BRPI1013062A2 (pt) * | 2009-05-19 | 2016-04-05 | Security First Corp | sistemas e métodos para proteger dados na nuvem |
US10490304B2 (en) * | 2012-01-26 | 2019-11-26 | Netspective Communications Llc | Device-driven non-intermediated blockchain system over a social integrity network |
US9419952B2 (en) * | 2014-06-05 | 2016-08-16 | Stmicroelectronics (Grenoble 2) Sas | Memory encryption method compatible with a memory interleaved system and corresponding system |
US20160300231A1 (en) * | 2015-04-10 | 2016-10-13 | Abine, Inc. | Push notification authentication platform for secured form filling |
US11494761B2 (en) | 2015-11-06 | 2022-11-08 | Cable Television Laboratories, Inc. | Systems and methods for digital asset security ecosystems |
US11941588B2 (en) | 2015-11-06 | 2024-03-26 | Cable Television Laboratories, Inc. | Systems and methods for blockchain virtualization and scalability |
US20170178127A1 (en) * | 2015-12-18 | 2017-06-22 | International Business Machines Corporation | Proxy system mediated legacy transactions using multi-tenant transaction database |
EP3405862B1 (en) * | 2016-01-19 | 2020-11-18 | Priv8Pay, Inc. | Network node authentication |
US20170243193A1 (en) * | 2016-02-18 | 2017-08-24 | Skuchain, Inc. | Hybrid blockchain |
US11057198B2 (en) * | 2016-03-04 | 2021-07-06 | Assured Enterprises, Inc. | Utilization of a proxy technique in escrow encryption key usage |
US11223598B2 (en) * | 2016-05-03 | 2022-01-11 | Nokia Of America Corporation | Internet security |
US9774578B1 (en) * | 2016-05-23 | 2017-09-26 | Accenture Global Solutions Limited | Distributed key secret for rewritable blockchain |
US20170345011A1 (en) * | 2016-05-26 | 2017-11-30 | Hitfin, Inc. | System and method executed on a blockchain network |
US11128603B2 (en) | 2016-09-30 | 2021-09-21 | Nec Corporation | Method and system for providing a transaction forwarding service in blockchain implementations |
US11196573B2 (en) * | 2017-03-06 | 2021-12-07 | Nokia Technologies Oy | Secure de-centralized domain name system |
CN107528835B (zh) | 2017-08-10 | 2020-10-02 | 北方工业大学 | 一种基于安全的智能合约k-匿名激励机制的用户隐私保护方法 |
-
2017
- 2017-12-15 GB GBGB1721021.2A patent/GB201721021D0/en not_active Ceased
-
2018
- 2018-12-12 SG SG11202005568SA patent/SG11202005568SA/en unknown
- 2018-12-12 US US16/954,175 patent/US11297041B2/en active Active
- 2018-12-12 JP JP2020531111A patent/JP7193537B2/ja active Active
- 2018-12-12 EP EP18836293.3A patent/EP3725033B1/en active Active
- 2018-12-12 WO PCT/IB2018/059922 patent/WO2019116250A1/en unknown
- 2018-12-12 CN CN201880080949.3A patent/CN111566992B/zh active Active
- 2018-12-12 EP EP22174133.3A patent/EP4099617A1/en active Pending
- 2018-12-12 KR KR1020207018341A patent/KR102637864B1/ko active IP Right Grant
-
2022
- 2022-03-29 US US17/707,866 patent/US11979385B2/en active Active
- 2022-12-08 JP JP2022196005A patent/JP7416899B2/ja active Active
-
2024
- 2024-01-04 JP JP2024000255A patent/JP2024045173A/ja active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106100847A (zh) * | 2016-06-14 | 2016-11-09 | 惠众商务顾问(北京)有限公司 | 非对称加密区块链身份信息验证方法及装置 |
GB201709760D0 (en) * | 2017-06-19 | 2017-08-02 | Nchain Holdings Ltd | Computer-Implemented system and method |
CN107294729A (zh) * | 2017-07-25 | 2017-10-24 | 中国联合网络通信集团有限公司 | 区块链中不同节点之间的通信方法及装置 |
GB201715423D0 (en) * | 2017-09-22 | 2017-11-08 | Nchain Holdings Ltd | Computer-implemented system and method |
Non-Patent Citations (2)
Title |
---|
NICOLAS VAN SABERHAGEN: "CryptoNote v 2.0", HTTPS://BYTECOIN.ORG/OLD/WHITEPAPER.PDF, 17 October 2013 (2013-10-17) * |
NURZHAN ZHUMABEKULY AITZHAN: "Security and Privacy in Decentralized Energy Trading Through Multi-Signatures, Blockchain and Anonymous Messaging Streams", IEEE TRANSACTIONS ON DEPENDABLE AND SECURE COMPUTING, 12 October 2016 (2016-10-12) * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113507480A (zh) * | 2021-07-23 | 2021-10-15 | 北京众享比特科技有限公司 | 网络设备、网闸设备和系统、网络间数据传输及汇报方法 |
CN113507480B (zh) * | 2021-07-23 | 2023-10-27 | 北京众享比特科技有限公司 | 网络设备、网闸设备和系统、网络间数据传输及汇报方法 |
Also Published As
Publication number | Publication date |
---|---|
SG11202005568SA (en) | 2020-07-29 |
US20220294769A1 (en) | 2022-09-15 |
KR20200099541A (ko) | 2020-08-24 |
US20210160222A1 (en) | 2021-05-27 |
JP2021507566A (ja) | 2021-02-22 |
JP2023027206A (ja) | 2023-03-01 |
EP3725033A1 (en) | 2020-10-21 |
GB201721021D0 (en) | 2018-01-31 |
EP3725033B1 (en) | 2022-12-28 |
US11979385B2 (en) | 2024-05-07 |
JP2024045173A (ja) | 2024-04-02 |
WO2019116250A1 (en) | 2019-06-20 |
JP7416899B2 (ja) | 2024-01-17 |
US11297041B2 (en) | 2022-04-05 |
KR102637864B1 (ko) | 2024-02-19 |
JP7193537B2 (ja) | 2022-12-20 |
EP4099617A1 (en) | 2022-12-07 |
CN111566992B (zh) | 2024-04-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111566992B (zh) | 安全性增强的区块链交易的发起 | |
US11641283B2 (en) | Computer implemented method and system for transferring access to a digital asset | |
CN110366839B (zh) | 计算机实现的系统和方法 | |
CN110546664A (zh) | 区块链之间的安全转移 | |
CN111801925B (zh) | 在网络中传播数据的基于区块链的系统和方法 | |
CN110709874A (zh) | 用于区块链网络的凭证生成与分发方法和系统 | |
CN112119620B (zh) | 用于在节点的网络中传播数据分组的系统和方法 | |
CN112189328A (zh) | 用于在节点的网络中传播数据分组的系统和方法 | |
TW201946412A (zh) | 用以移轉數位資產支配權之電腦實施方法及系統 | |
Paillisse et al. | Ipchain: Securing ip prefix allocation and delegation with blockchain | |
Paillisse et al. | Decentralized trust in the inter-domain routing infrastructure | |
CN112384939B (zh) | 用于分布式分类账相关交易的链外交换的计算机实现的系统和方法 | |
CN116171555A (zh) | 具有多个子网的分布式网络 | |
Suyeon et al. | New Function and Configuration of Future Network for Blockchain Platform Operation | |
US20240154820A1 (en) | Multi-party computations in a distributed network |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |