Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP7757437B2 - Security-enhanced Origination of Blockchain Transactions - Google Patents
[go: Go Back, main page]

JP7757437B2 - Security-enhanced Origination of Blockchain Transactions - Google Patents

Security-enhanced Origination of Blockchain Transactions

Info

Publication number
JP7757437B2
JP7757437B2 JP2024000255A JP2024000255A JP7757437B2 JP 7757437 B2 JP7757437 B2 JP 7757437B2 JP 2024000255 A JP2024000255 A JP 2024000255A JP 2024000255 A JP2024000255 A JP 2024000255A JP 7757437 B2 JP7757437 B2 JP 7757437B2
Authority
JP
Japan
Prior art keywords
transaction
node
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.)
Active
Application number
JP2024000255A
Other languages
Japanese (ja)
Other versions
JP2024045173A (en
Inventor
バルトルッチ,シルビア
ベルナト,ポリーヌ
ジョセフ,ダニエル
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nchain Holdings Ltd
Original Assignee
Nchain Holdings Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Nchain Holdings Ltd filed Critical Nchain Holdings Ltd
Publication of JP2024045173A publication Critical patent/JP2024045173A/en
Application granted granted Critical
Publication of JP7757437B2 publication Critical patent/JP7757437B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0281Proxies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0407Network 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/0421Anonymous communication, i.e. the party's identifiers are hidden from the other party or parties, e.g. using an anonymizer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key 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/0841Key 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public 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/3073Public 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3247Cryptographic 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3247Cryptographic 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/3255Cryptographic 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/46Secure multiparty computation, e.g. millionaire problem
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3236Cryptographic 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • Algebra (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Description

本特許出願は、一般的に、ネットワーク通信および暗号化に関する。より特定的には、ブロックチェーンネットワークに対するブロックチェーントランザクションの通信、および、それらの通信のオリジン(origin)を不明瞭にするための暗号技術の使用に関する。ブロックチェーンネットワークにおけるトランザクションの導入(introduction)に関連する発信元ノード(originator node)のアイデンティティを不明瞭にすることは、プライバシーおよびセキュリティを強化し得る。 This patent application relates generally to network communications and encryption. More particularly, it relates to the communication of blockchain transactions to a blockchain network and the use of cryptographic techniques to obscure the origin of those communications. Obscuring the identity of an originator node associated with the introduction of a transaction in a blockchain network can enhance privacy and security.

この文書において、用語「ブロックチェーン(“blockchain”)」は、あらゆる形態の電子的、コンピュータベース、分散型の台帳(ledgers)を含むように使用されている。これらは、合意に基づく(consensus-based)ブロックチェーンおよびトランザクションチェーン技術、許可された(permissioned)および許可されていない(un-permissioned)台帳、共有された(shared)台帳、および、それらの変形を含んでいる。ブロックチェーン技術の最も広く知られているアプリケーションはビットコイン台帳であるが、他のブロックチェーン実装が提案され、そして開発されてきている。ビットコインは、ここにおいて、便宜上および例示のためだけに参照され得るものであり、一方、本出願の技術的事項(subject matter)は、ビットコインブロックチェーンを用いた使用に限定されるものではないこと、および、代替的なブロックチェーン実装およびプロトコルは本出願の範囲内にあることが留意されるべきである。ここにおいて使用されるように用語「ビットコイン(“Bitcoin”)」は、全てのバージョンのビットコインおよびビットコインプロトコルから派生する全てのバリエーションを含む。 In this document, the term "blockchain" is used to include all forms of electronic, computer-based, distributed ledgers. These include consensus-based blockchain and transaction chain technologies, permissioned and unpermissioned ledgers, shared ledgers, and variations thereof. The most widely known application of blockchain technology is the Bitcoin ledger, but other blockchain implementations have been proposed and developed. While Bitcoin may be referenced herein for convenience and illustrative purposes only, it should be noted that the subject matter of this application is not limited to use with the Bitcoin blockchain, and that alternative blockchain implementations and protocols are within the scope of this application. As used herein, the term "Bitcoin" includes all versions of Bitcoin and all variations derived from the Bitcoin protocol.

ブロックチェーンは、コンピュータベースの分散化システム(decentralized system)として実装されるピアツーピア(peer-to-peer)の電子台帳であり、順番にトランザクションで構成されるブロックから構成されている。各トランザクションは、ブロックチェーンシステムにおけるアドレス間のデジタル資産の制御(control)の移転を符号化するデータ構造であり、そして、少なくとも1つの入力および少なくとも1つの出力を含んでいる。各ブロックは、その発端(inception)からブロックチェーンに対して書き込まれてきた全てのトランザクションについて永続的で、変更不可能なレコード(record)を作成するために、そのブロックに対して一緒にチェーン化される以前のブロックのハッシュ(hash)を含んでいる。 A blockchain is a peer-to-peer electronic ledger implemented as a computer-based decentralized system, composed of blocks, which are sequentially made up of transactions. Each transaction is a data structure that encodes the transfer of control of digital assets between addresses in the blockchain system and contains at least one input and at least one output. Each block contains the hash of the previous block that is chained together with it to create a permanent, immutable record of all transactions that have been written to the blockchain since its inception.

ブロックチェーンは、多種多様なアプリケーションにおいて使用することができる。例えば、ブロックチェーンは、1つまたはそれ以上の商品(commodities)の所有権(ownership)を反映する台帳を提供することに採用することができる。例えば、ビットコインブロックチェーンにおいて、台帳は、ビットコインおよびその一部(fractions)の所有権を反映している。いくつかのそうした商品は、例えば、計算資源の単位(units)といった、基礎となる(underlying)単位を表すことができる。所有権を反映しているブロックチェーンベースの台帳により、商品は、偽匿名で(pseudo-anonymously)当事者間で移転することができ、ブロックチェーン上のトランザクションは、いずれかの当事者(party)の個人を識別する(personally-identifying)情報を含んでいない。 Blockchains can be used in a wide variety of applications. For example, blockchains can be employed to provide a ledger that reflects ownership of one or more commodities. For example, in the Bitcoin blockchain, the ledger reflects ownership of bitcoins and fractions thereof. Some such commodities may represent underlying units, such as units of computing resources. A blockchain-based ledger that reflects ownership allows commodities to be transferred pseudo-anonymously between parties, and transactions on the blockchain do not contain personally-identifying information about either party.

特に、所与のトランザクションの出力がアドレスに対して送付されてよく、そのアドレスは特定の当事者の公開鍵(public key)に対応している。これらの出力は、そのアドレスに対応する公開鍵のカウンターパート(counterpart)である秘密鍵によってアンロック(unlocked)されて、次いで、関連する当事者によってさらなるトランザクションに対する入力として使用され得る。 In particular, the outputs of a given transaction may be sent to an address that corresponds to a particular party's public key. These outputs can be unlocked by a private key that is the counterpart of the public key corresponding to that address, and then used as inputs for further transactions by the associated party.

ブロックチェーンの永続的または不変の性質は、所与のトランザクションに含まれるアドレスが永久的に、公けに(publicly)利用可能であることを意味している。 The permanent or immutable nature of the blockchain means that the address included in a given transaction remains publicly available forever.

分散化システムに参加している様々なノードまたはコンピュータシステムに対してトランザクションを導入するためには、そのトランザクションを分配(distribute)する必要がある。この分配は、例えば、プロトコルを使用することができ、それによって、分散化システムに参加している様々なノード間の接続を用いてオーバーレイネットワークが形成される。そして、ゴシッププロトコル(gossip protocol)を使用することができ、それによって、ノードは所与のトランザクションをオーバーレイネットワークにおける隣接ノードに対して分配する。 To introduce a transaction to the various nodes or computer systems participating in a decentralized system, the transaction must be distributed. This distribution can be done, for example, using a protocol whereby an overlay network is formed using connections between the various nodes participating in the decentralized system. And, a gossip protocol can be used whereby a node distributes a given transaction to its neighbors in the overlay network.

いずれにしても、トランザクションが最終的にどのようにネットワーク内で伝播されるかにかかわらず、分配のためには、そのトランザクションを分散化システムの中へ導入または注入する必要がある。この導入は、必然的にネットワーク通信を必要とし、そして、従って、例えばインターネットプロトコル(IP)アドレスといった、ネットワークレベルにおいてトランザクションの発信元に関する情報を明らかにする副作用を有し得る。もし、そうした情報を別の当事者がブロックチェーン上で使用される特定のアドレスと相関させることができる場合には、たとえ複数の公けのアドレスが使用されても、ある当事者のアイデンティティ(identity)を構成するか、または、その当事者に関連する全てのトランザクションを追跡するために使用することができる。 In any event, regardless of how a transaction ultimately propagates within the network, it must be introduced or injected into a decentralized system for distribution. This introduction necessarily requires network communication and may therefore have the side effect of revealing information about the transaction's origin at the network level, such as an Internet Protocol (IP) address. If such information can be correlated by another party to a specific address used on the blockchain, it can be used to construct a party's identity or to track all transactions associated with that party, even if multiple public addresses are used.

従って、トランザクションのネットワーク発信元(network origin)を不明瞭にしながら、ブロックチェーン上にトランザクションを含めることを可能にするソリューションを提供することが望ましい。 It is therefore desirable to provide a solution that allows transactions to be included on the blockchain while obscuring the network origin of the transaction.

そうした改善されたソリューションが、今では考案されてきている。 Improved solutions like this are now being devised.

本出願は、添付の請求項において定義される方法およびシステムを提供する。 The present application provides methods and systems as defined in the accompanying claims.

本出願は、コンピュータに実装される方法を記載する。これは、所与のプロキシノードによって実装され得る。本方法は、コンピュータネットワークを介して、発信元ノードによって生成され、かつ、部分的に署名されたトランザクションを受信するステップであり、前記トランザクションは、第1入力と、第1出力および第2出力とを含み、前記第1入力は、x+r単位の計算資源を取り、前記第1出力は、出力アドレスに対してx単位を提供し、かつ、前記第2出力は、複数の第2秘密鍵のうち任意の1つを使用して、アンロック可能なn個のマルチ署名アドレスのうち1つに対してd+r単位を提供し、前記第2秘密鍵それぞれは、複数のプロキシノードのうちそれぞれ1つに関連付けられており、前記複数のプロキシノードは、前記所与のプロキシノードを含み、かつ、前記第2秘密鍵それぞれは、前記プロキシノードの非対称暗号化鍵ペアの秘密鍵、および、前記プロキシノードが前記発信元ノードと共有する秘密の値に基づいて、前記複数のプロキシノードのうちそれぞれ1つによって導出することができる、ステップと、
前記トランザクションをブロードキャストし、かつ、前記トランザクションがブロックチェーンに含まれるようにするために、前記所与のプロキシノードに対して割り当てられるべき計算資源の量(quantity)である、t単位を選択するステップ、および、前記トランザクションを前記ブロックチェーンに含めるために、第三者に対して割り当てられるべき計算資源の量である、f単位を選択するステップであり、f<r、かつ、t<(r-f)である、ステップと、
d+f単位を取る第2入力を前記トランザクションに追加することによって生成される、更新されたトランザクションにデジタル署名するステップと、
前記プロキシノードの前記第2秘密鍵を使用して前記n個のマルチ署名アドレスのうち1つから供給されるd+r単位を取る入力、および、前記所与のプロキシノードに対してt単位を提供する出力を含む、さらなるトランザクションを生成し、かつ、デジタル署名するステップと、
前記更新されたトランザクションおよび前記さらなるトランザクションを、両方が前記ブロックチェーンの同じブロックに含まれるように時間を合わせてブロードキャストするステップと、を含む。
The present application describes a computer-implemented method that may be implemented by a given proxy node, comprising the steps of receiving, via a computer network, a partially signed transaction generated by an origin node, the transaction including a first input, a first output, and a second output, the first input taking x+r units of computational resources, the first output providing x units toward an output address, and the second output providing d+r units toward one of n multi-signature addresses unlockable using any one of a plurality of second private keys, each second private key associated with a respective one of a plurality of proxy nodes, the plurality of proxy nodes including the given proxy node, and each second private key derivable by a respective one of the plurality of proxy nodes based on a private key of the proxy node's asymmetric encryption key pair and a secret value the proxy node shares with the origin node;
selecting t units, which is the quantity of computational resources to be allocated to the given proxy node for broadcasting the transaction and having it included in a blockchain, and selecting f units, which is the quantity of computational resources to be allocated to a third party for having the transaction included in the blockchain, where f<r and t<(r-f);
digitally signing an updated transaction generated by appending a second input taking d+f units to the transaction;
generating and digitally signing a further transaction using the second private key of the proxy node, the transaction including an input taking d+r units provided from one of the n multi-signature addresses, and an output providing t units to the given proxy node;
and broadcasting the updated transaction and the further transaction in time so that both are included in the same block of the blockchain.

いくつかの実装において、前記トランザクションを受信するステップは、前記トランザクションの識別子を受信するステップを含み得る。 In some implementations, receiving the transaction may include receiving an identifier for the transaction.

いくつかの実装において、前記更新されたトランザクションの前記ブロードキャスト、および、前記さらなるトランザクションの前記ブロードキャストは、実質的に同時に発生し得る。 In some implementations, the broadcast of the updated transaction and the broadcast of the further transaction may occur substantially simultaneously.

いくつかの実装において、前記トランザクションの前記受信した識別子は、前記所与のプロキシノードの公開鍵を使用して暗号化され得る。 In some implementations, the received identifier for the transaction may be encrypted using the public key of the given proxy node.

いくつかの実装において、前記トランザクションを前記ブロックチェーンに含めるために前記第三者に対して割り当てられるべき計算資源の量である前記f単位は、前記コンピュータネットワークを介して受信した指示に基づいて選択され得る。本表示は、発信元ノードから受信することができる。 In some implementations, the f units, which are the amount of computational resources to be allocated to the third party for including the transaction in the blockchain, may be selected based on instructions received over the computer network. This indication may be received from an originating node.

いくつかの実装において、前記トランザクションを前記ブロックチェーンに含めるために前記第三者に対して割り当てられるべき計算資源の量である前記f単位は、前記トランザクションを前記ブロックチェーン内の次のブロックに含まれるようにすることに基づいて選択され得る。 In some implementations, the f units, which are the amount of computational resources to be allocated to the third party for including the transaction in the blockchain, may be selected based on ensuring that the transaction is included in the next block in the blockchain.

いくつかの実装において、前記トランザクションを前記ブロックチェーンに含めるために前記第三者に対して割り当てられるべき計算資源の量である前記f単位、および、前記トランザクションをブロードキャストするために前記所与のプロキシノードに対して割り当てられるべき計算資源の量である前記t単位のうち少なくとも1つは、さらに、前記さらなるトランザクションを前記ブロックチェーン内の次のブロックに含まれるようにすることに基づいて選択され得る。 In some implementations, at least one of the f units, which is the amount of computational resources to be allocated to the third party for including the transaction in the blockchain, and the t units, which is the amount of computational resources to be allocated to the given proxy node for broadcasting the transaction, may be further selected based on ensuring that the further transaction is included in the next block in the blockchain.

いくつかの実装において、前記発信元ノードは、公開鍵および秘密鍵を含む、関連する非対称暗号化鍵ペアを有し、かつ、前記発信元ノードと前記所与のプロキシノードとの間で共有される前記秘密の値は、秘密鍵および前記所与のプロキシノードの前記公開鍵に基づいて前記発信元ノードによって、かつ、秘密鍵および前記発信元ノードの前記公開鍵とに基づいて前記所与のプロキシノードによって、導出することができる。 In some implementations, the originating node has an associated asymmetric cryptographic key pair including a public key and a private key, and the secret value shared between the originating node and the given proxy node can be derived by the originating node based on the private key and the given proxy node's public key, and by the given proxy node based on the private key and the originating node's public key.

いくつかの実装において、前記非対称暗号化鍵ペアは、楕円曲線鍵ペアであってよい。前記発信元ノードと特定のプロキシノードとの間で共有される秘密の値は、楕円曲線ディフィー・ヘルマン(ECDH)鍵交換に対応している、ということであってよい。 In some implementations, the asymmetric encryption key pair may be an elliptic curve key pair. This may mean that the secret value shared between the origin node and a particular proxy node corresponds to an Elliptic Curve Diffie-Hellman (ECDH) key exchange.

本出願は、さらに、プロセッサと、メモリと、ネットワークインターフェイスと、コンピュータ実行可能命令を保管する非一時的コンピュータ読取り可能記憶媒体と、を含むコンピューティングデバイスを記載する。命令は、前記プロセッサによって実行されると、上記に説明された方法を前記コンピューティングデバイスに実行させる。 The present application further describes a computing device including a processor, memory, a network interface, and a non-transitory computer-readable storage medium storing computer-executable instructions that, when executed by the processor, cause the computing device to perform the methods described above.

本出願は、さらに、コンピュータ実行可能命令を保管する非一時的コンピュータ読取り可能記憶媒体を記載する。命令は、コンピューティングデバイスのプロセッサによって実行されると、上記に説明された方法を前記コンピューティングデバイスに実行させる。 The present application further describes a non-transitory computer-readable storage medium storing computer-executable instructions that, when executed by a processor of a computing device, cause the computing device to perform the methods described above.

本出願は、さらに、発信元ノードによって実施されるコンピュータに実装される方法を記載する。本方法は、プロキシノードに関連付けられた第1公開鍵、および、前記発信元ノードと前記プロキシノードとの間で共有される秘密の値に基づいて、複数のプロキシノードそれぞれについて第2公開鍵を決定するステップであり、前記プロキシノードそれぞれについて対応する第2秘密鍵は、所与のプロキシノードによって、前記発信元ノードと前記所与のプロキシノードとの間で共有される秘密の値、および、前記所与のプロキシノードに関連付けられ、かつ、前記所与のプロキシノードに関連付けられた前記第1公開鍵に基づいて、決定することができる、ステップと、
前記発信元ノードによって、入力と、第1出力および第2出力とを含むトランザクションを生成するステップであり、前記入力は、x+r単位を取り、前記第1出力は、出力アドレスに対してx単位を提供し、かつ、前記第2出力は、前記第2秘密鍵のうち任意の1つを使用して、アンロック可能なn個のマルチ署名アドレスのうち1つに対して+r)単位を提供する、ステップと、
前記トランザクションに電子署名するステップと、前記署名されたトランザクションをネットワーク経由で前記プロキシノードに対して分配するステップと、を実行する。
The present application further describes a computer-implemented method performed by an origin node, the method comprising the steps of: determining a second public key for each of a plurality of proxy nodes based on a first public key associated with the proxy node and a secret value shared between the origin node and the proxy node, wherein a corresponding second private key for each of the proxy nodes can be determined by a given proxy node based on the secret value shared between the origin node and the given proxy node and the first public key associated with and associated with the given proxy node;
generating, by the origination node, a transaction including an input, a first output, and a second output, the input taking x+r units, the first output providing x units to an output address, and the second output providing (+r) units to one of n multi-signature addresses unlockable using any one of the second private keys;
The steps of digitally signing the transaction and distributing the signed transaction to the proxy node via a network are performed.

いくつかの実装において、前記署名されたトランザクションを分配することは、前記トランザクションの識別子を送信することを含み得る。 In some implementations, distributing the signed transaction may include transmitting an identifier of the transaction.

いくつかの実装において、前記署名されたトランザクションの前記識別子を前記プロキシノードに対して分配することは、前記署名されたトランザクションの前記識別子に係るそれぞれの指示を前記プロキシノードそれぞれに対して送信することを含み得る。 In some implementations, distributing the identifier of the signed transaction to the proxy nodes may include sending a respective instruction related to the identifier of the signed transaction to each of the proxy nodes.

いくつかの実装において、前記発信元ノードは、公開鍵および秘密鍵を含む、関連する非対称暗号化鍵ペアを有し、かつ、前記発信元ノードと前記所与のプロキシノードとの間で共有される前記秘密の値は、秘密鍵および前記所与のプロキシノードの前記公開鍵に基づいて前記発信元ノードによって、かつ、秘密鍵および前記発信元ノードの前記公開鍵とに基づいて前記所与のプロキシノードによって、導出することができる。 In some implementations, the originating node has an associated asymmetric cryptographic key pair including a public key and a private key, and the secret value shared between the originating node and the given proxy node can be derived by the originating node based on the private key and the given proxy node's public key, and by the given proxy node based on the private key and the originating node's public key.

いくつかの実装において、前記非対称暗号化鍵ペアは、楕円曲線鍵ペアであってよい。前記発信元ノードと特定のプロキシノードとの間で共有される秘密の値を確立することは、楕円曲線ディフィー・ヘルマン(ECDH)鍵交換に対応している、ということであってよい。 In some implementations, the asymmetric encryption key pair may be an elliptic curve key pair. Establishing a shared secret value between the origin node and a particular proxy node may correspond to an Elliptic Curve Diffie-Hellman (ECDH) key exchange.

本出願は、さらに、プロセッサと、メモリと、ネットワークインターフェイスと、コンピュータ実行可能命令を保管する非一時的コンピュータ読取り可能記憶媒体と、を含むコンピューティングデバイスを記載する。命令は、前記プロセッサによって実行されると、上記に説明された方法を前記コンピューティングデバイスに実行させる。 The present application further describes a computing device including a processor, memory, a network interface, and a non-transitory computer-readable storage medium storing computer-executable instructions that, when executed by the processor, cause the computing device to perform the methods described above.

本出願は、さらに、コンピュータ実行可能命令を保管する非一時的コンピュータ読取り可能記憶媒体を記載する。命令は、コンピューティングデバイスのプロセッサによって実行されると、上記に説明された方法を前記コンピューティングデバイスに実行させる。 The present application further describes a non-transitory computer-readable storage medium storing computer-executable instructions that, when executed by a processor of a computing device, cause the computing device to perform the methods described above.

本発明に係る1つの態様または実施形態に関連して説明される任意の特徴は、また、1つまたはそれ以上の他の態様/実施形態に関しても使用され得る。本発明に係るこれら及び他の態様は、ここにおいて説明される実施形態から明らかであり、そして、それを参照して解明されるだろう。これから、単なる例示として、そして、添付の図面を参照して、本発明の実施形態が説明される。
図1は、ブロックチェーンネットワークと通信する発信元ノードを示している。 図2は、一式のプロキシノードを介して、図1のブロックチェーンネットワークと通信する図1の発信元ノードを示している。 図3は、1つの例示的なコンピューティングデバイスを示している。 図4は、図1の発信元ノードによって実行され得るといった、1つの例示的な方法を説明するフローチャートである。 図5は、図4の例示的な方法に従って、発信元ノードによって生成され、かつ、署名され得るといった、ブロックチェーントランザクションを示している。 図6は、図2の1つまたはそれ以上のプロキシノードによって実行され得るといった、1つの例示的な方法を説明するフローチャートである。 図7は、図5のブロックチェーントランザクションの更新された形態を示している。 図8は、図6の例示的な方法に従って、プロキシノードによって生成され得るといった、さらなるブロックチェーントランザクションを示している。
Any feature described in relation to one aspect or embodiment of the invention may also be used in relation to one or more other aspects/embodiments. These and other aspects of the invention will be apparent from and elucidated with reference to the embodiments described hereinafter. Embodiments of the invention will now be described, by way of example only, and with reference to the accompanying drawings, in which:
Figure 1 shows an originating node communicating with a blockchain network. Figure 2 shows the origin node of Figure 1 communicating with the blockchain network of Figure 1 through a set of proxy nodes. FIG. 3 illustrates an exemplary computing device. FIG. 4 is a flowchart illustrating one exemplary method such as may be performed by the source node of FIG. FIG. 5 illustrates a blockchain transaction as it may be generated and signed by an originating node according to the exemplary method of FIG. FIG. 6 is a flowchart illustrating one exemplary method, such as may be performed by one or more proxy nodes of FIG. Figure 7 shows an updated version of the blockchain transaction from Figure 5. FIG. 8 illustrates a further blockchain transaction such as may be generated by a proxy node according to the example method of FIG. 6.

同様なエレメント(element)および特徴を示すために、図面においては、同様な参照符号が使用されている。 Similar reference numbers are used in the drawings to indicate similar elements and features.

本出願において、用語「及び/又は(“and/or”)」は、列挙されたエレメントの全ての可能な組み合わせ及び副結合(sub-combination)をカバーするように意図されており、列挙されたエレメントだけ、任意の副結合、または、全てのエレメントのうち任意の1つを含んでおり、そして、必ずしも追加のエレメントを排除していない。 In this application, the term "and/or" is intended to cover all possible combinations and sub-combinations of the listed elements, including any one of the listed elements alone, any sub-combination, or all of the elements, and does not necessarily exclude additional elements.

本出願において、フレーズ「少なくとも1つの・・・又は・・・(“at least one of… or…”)」は、列挙されたエレメントのうち任意の1つまたはそれ以上をカバーするように意図されており、列挙されたエレメントだけ、任意の副結合、または、全てのエレメントのうち任意の1つを含んでおり、必ずしも追加のエレメントを排除しておらず、そして、必ずしも全てのエレメントを必要としていない。 In this application, the phrase "at least one of... or..." is intended to cover any one or more of the listed elements, including only the listed elements, any subcombination, or any one of all of the elements, and does not necessarily exclude additional elements, and does not necessarily require all elements.

概要
多くのブロックチェーンベースのシステムは、しばしば、匿名(anonymous)と考えられている。例えば、ビットコインといった、種々の台帳システムは、しばしば、匿名と考えられている。なぜなら、それにより、当事者に個人情報または識別情報を開示することなく、当事者が、1つまたはそれ以上の商品の単位(units)を送信および受信することができるからである。そうしたシステムは、しかしながら、匿名よりも擬似匿名とみなされ得る。当事者のアイデンティティは、ブロックチェーンにおいて当事者によって使用されるアドレスがその当事者の実際のアイデンティティと関連している限りにのみ、保護されるからである。
Overview Many blockchain-based systems are often considered anonymous. For example, various ledger systems, such as Bitcoin, are often considered anonymous because they allow parties to send and receive units of one or more commodities without disclosing personal or identifying information to the parties. Such systems, however, may be considered pseudo-anonymous rather than anonymous, because the identity of a party is protected only to the extent that the address used by the party in the blockchain is associated with the party's actual identity.

1つの特定の例においては、特定の当事者と関連付けられたIPアドレスが、その当事者の匿名性を危うくする(compromise)ために使用することができ得る。例えば、悪意のある敵対者(malicious adversary)は、特定の当事者が関与するブロックチェーントランザクションを追跡できるように、公開鍵をIPアドレスにリンクしようと試みるかもしれない。追加的または代替的に、IPアドレス情報は、例えば、インターネットフォーラムおよびソーシャルメディアからといった、他のソースからの情報を検索するためのインデックスとしてそれを使用することによって、当事者の実際のアイデンティティを検索するための労力において使用され得る。そうした状況においては、例えば、ブロックチェーントランザクションの異なるセットについて複数の公開鍵と秘密鍵のペアを生成すること、または、オペレーションの匿名性を高めるための手段としてミキシングサービスに参加すること、といった軽減策(attempted mitigations)は、成功しないかもしれない。-例えば、S.B.Venkatakrishnan、G.Fanti、およびP.Viswanath共著の、arXivプレプリントarXiv:1701.0439 “Dandelion: Redesigning the Bitcoin Network for Anonymity”(2017)を参照のこと。その内容は、ここにおいて参照によりその全てが包含されている。 In one particular example, an IP address associated with a particular party may be used to compromise that party's anonymity. For example, a malicious adversary may attempt to link a public key to an IP address so that blockchain transactions involving that party can be traced. Additionally or alternatively, IP address information may be used in an effort to find the party's actual identity by using it as an index to search for information from other sources, such as from internet forums and social media. In such situations, attempted mitigations, such as generating multiple public and private key pairs for different sets of blockchain transactions or participating in a mixing service as a means to increase the anonymity of operations, may not be successful. See, for example, arXiv preprint arXiv:1701.0439 "Dandelion: Redesigning the Bitcoin Network for Anonymity" (2017) by S.B. Venkatakrishnan, G. Fanti, and P. Viswanath, the contents of which are incorporated herein by reference in their entirety.

上述のように、いくつかのブロックチェーンアプリケーションにおいて、トランザクションは、オーバーレイネットワークを通じて伝搬され得る。ブロックチェーントランザクションのモニタリングおよび拡散(diffusion)に関与する、そうした1つのオーバーレイネットワークにおけるノードは、「スーパーノード(“super nodes”)」として参照され得る。匿名化を奪う(de-anonymization)攻撃は、そうした「スーパーノード」を使用して実行され得る。例えば、ビットコインブロックチェーンネットワークの特定の例において、ネットワークにわたる対称的な拡散(symmetric diffusion)は、ピアツーピア(P2P)オーバーレイネットワークのグラフ構造及びそのネットワーク上のブロックチェーントランザクションの拡散に関連する所定の情報を搾取する技術を使用して、特定のIPを特定の公開鍵に対してリンクすることにおいて30%の成功率を可能にする。A.Biryukov、D.Khovratovich、およびI.Pustogarov共著の、2014 ACM SIGSAC Conference of Computer and Communications Securityの会報(pp.15-29)における“Deanonymisation of clients in Bitcoin P2P network”(2014年11月)を参照のこと。その内容は、ここにおいて参照によりその全てが包含されている。 As mentioned above, in some blockchain applications, transactions may be propagated through an overlay network. Nodes in one such overlay network that are involved in monitoring and diffusing blockchain transactions may be referred to as "supernodes." De-anonymization attacks may be carried out using such "supernodes." For example, in the specific example of the Bitcoin blockchain network, symmetric diffusion across the network allows for a 30% success rate in linking a specific IP to a specific public key using techniques that exploit the graph structure of the peer-to-peer (P2P) overlay network and certain information related to the diffusion of blockchain transactions on that network. See "Deanonymization of clients in Bitcoin P2P network," by A. Biryukov, D. Khovratovich, and I. Pustogarov, in Proceedings of the 2014 ACM SIGSAC Conference on Computer and Communications Security (pp. 15-29), November 2014. The contents of which are incorporated herein by reference in their entirety.

ブロックチェーンアプリケーションの領域を越えて、特定の通信に関連するIPアドレスを不明瞭にすることを可能にする試みが行われてきている。一つの例として、Torといった匿名中継ツール(anonymous relay tool)は、現在利用できる最も強力なアイデンティティ保護のうち1つを提供するが、それでも弱点および可能な欠点を示している。Torの説明は、例えば、R.Dingledine、N.Mathewson、およびP.Syverson共著で、ワシントンDCのNaval Research Labからの“Tor:The second-generation onion router”(2004)において見出され得る。Torといった中継システムは、トラフィック分析に対して攻撃されやすいことがある。例えば、ユーザのTorへの「最初のホップ(“first-hop”)」リンクおよびTorからユーザの通信パートナーへの「最後のホップ(“last-hop”)」リンクがトレースされ、そして、パケットを相関させるために使用され得ること、といったものである。そうした攻撃は、ユーザの匿名性を危険にさらす可能性がある。 Beyond the realm of blockchain applications, attempts have been made to make it possible to obscure the IP addresses associated with specific communications. As one example, anonymous relay tools such as Tor offer one of the strongest identity protections currently available, but still exhibit weaknesses and possible drawbacks. A description of Tor can be found, for example, in "Tor: The second-generation onion router" (2004) by R. Dingledine, N. Mathewson, and P. Syverson, from the Naval Research Lab in Washington, DC. Relay systems such as Tor can be vulnerable to traffic analysis attacks. For example, a user's "first-hop" link to Tor and the "last-hop" link from Tor to the user's communication partner can be traced and used to correlate packets. Such attacks could potentially compromise a user's anonymity.

上記を考慮すると、例えば、TCP/IPプロトコルのレベルといった、基礎となるネットワークのレベルにおいて、ブロックチェーンネットワークにおけるユーザのアイデンティティを保護または不明瞭にする必要性が存在している。 In light of the above, there exists a need to protect or obscure the identities of users in a blockchain network at the level of the underlying network, for example, at the level of the TCP/IP protocol.

図1は、ブロックチェーンネットワーク110と通信する発信元ノード(originator node)100を示している。 Figure 1 shows an originator node 100 communicating with a blockchain network 110.

発信元ノード100は、コンピューティングデバイスである。 The source node 100 is a computing device.

ブロックチェーンネットワーク110は、通信コンピューティングデバイス(図示なし)から構成されるオーバーレイネットワークである。例えば、ブロックチェーンネットワーク110は、ピアツーピア(P2P)方式で通信するコンピューティングデバイスから形成され得る。 Blockchain network 110 is an overlay network composed of communicating computing devices (not shown). For example, blockchain network 110 may be formed from computing devices that communicate in a peer-to-peer (P2P) manner.

一つの例において、発信元ノード100は、例えば、ビットコインノードであってよく、そして、ブロックチェーンネットワーク110は、例えば、ビットコインネットワークであってよい。特定の例において、発信元ノード100は、例えば、スーパーノード(図示なし)と通信するビットコインノードであってよく、スーパーノードは、ブロックチェーンネットワーク110を形成しているコンピュータシステムのうち1つである。 In one example, the originating node 100 may be, for example, a Bitcoin node, and the blockchain network 110 may be, for example, the Bitcoin network. In a particular example, the originating node 100 may be, for example, a Bitcoin node that communicates with a supernode (not shown), which is one of the computer systems forming the blockchain network 110.

発信元ノード100はブロックチェーンネットワーク110と直接的に通信しているので、例えば、発信元ノード100のIPアドレスといった、潜在的にネットワークを識別する情報がブロックチェーンネットワーク110に曝されている(exposed)。そうした潜在的にネットワークを識別する情報の全て又は一部を曝すことを避けるのが望ましくあり得る。 Because the originating node 100 communicates directly with the blockchain network 110, potentially network-identifying information, such as the originating node's 100 IP address, is exposed to the blockchain network 110. It may be desirable to avoid exposing all or part of such potentially network-identifying information.

一つのソリューションにおいては、プロキシノードとして動作している、別のコンピュータシステムが、例えば、発信元ノード100のIPアドレスといった、ネットワークを識別する情報を不明瞭にするように、発信元ノード100に代わってブロックチェーンネットワーク110の中へトランザクションを導入するために使用され得る。プロキシノードを使用することは、しかしながら、多くの技術的なチャレンジを提起する。 In one solution, a separate computer system, acting as a proxy node, can be used to introduce transactions into the blockchain network 110 on behalf of the originating node 100, obscuring network-identifying information, such as the originating node's 100 IP address. Using a proxy node, however, poses a number of technical challenges.

例えば、潜在的に、ブロックチェーントランザクションのブロードキャストを開始または完了する前を含めて、プロキシノードがオフラインになり、利用不能にすることがあり得る。 For example, a proxy node could potentially go offline and become unavailable, including before it has begun or completed broadcasting a blockchain transaction.

別の例においては、プロキシノードがビジーまたはオーバーロード(overload)になることがあり得る。ビジーまたはオーバーロードになったトランザクションノードは、許容できないレイテンシ(latency)を持ち込み、かつ/あるいは、大きなキュー(queue)を維持するためのリソースを欠くため、処理のためにキューイングされたブロックチェーントランザクションを余儀なく破棄することがあり得る。 In another example, a proxy node may become busy or overloaded. A busy or overloaded transaction node may be forced to discard blockchain transactions queued for processing because it introduces unacceptable latency and/or lacks the resources to maintain a large queue.

これらのチャレンジのうち1つまたはそれ以上は、プロキシノードのグループを使用することによって克服され得る。 One or more of these challenges can be overcome by using a group of proxy nodes.

このようにして、冗長性が提供され得る。1つより多いプロキシノードを使用することは、単一のノードを使用することと比較して、システムを故障に対してより回復力に富む(resilient)ようにすることができる。このように、回復力(resilience)およびセキュリティが強化されている。加えて、1つより多いプロキシノードを使することは、負荷を分散するために役立ち得る。さらに、1つより多いプロキシノードを使用することは、ブロックチェーントランザクションのオリジンをさらに不明瞭にするために役立ち得る。これは、単一のプロキシノードが、継続的に(ongoing basis)、発信元ノードのためのエージェントとして作用することを回避し得るからである。 In this way, redundancy can be provided. Using more than one proxy node can make the system more resilient to failures compared to using a single node. In this way, resilience and security are enhanced. Additionally, using more than one proxy node can help to distribute the load. Furthermore, using more than one proxy node can help to further obscure the origin of blockchain transactions, as a single proxy node can be prevented from acting as an agent for the originating node on an ongoing basis.

複数のプロキシノードを伴うそうした構成(arrangement)を提供することは、しかしながら、多くの技術的なチャレンジを提起し得る。 Providing such an arrangement with multiple proxy nodes, however, can pose many technical challenges.

最初に、ブロックチェーントランザクションは、アドレス間での価値(value)の移転に対応することができる。例えば、ブロックチェーントランザクションは、1つまたはそれ以上の送信元(source)アドレスから1つまたはそれ以上の宛先アドレスへの計算資源の単位の移転に対応することであり得る。1つまたはそれ以上の発信元アドレスは、発信元ノード100に対応する当事者と関連付けられ得る。特定の例において、ブロックチェーントランザクションは、ビットコイントランザクションであってよい。 First, a blockchain transaction may correspond to a transfer of value between addresses. For example, a blockchain transaction may correspond to a transfer of units of computational resources from one or more source addresses to one or more destination addresses. One or more source addresses may be associated with a party corresponding to a source node 100. In a particular example, the blockchain transaction may be a Bitcoin transaction.

プロキシが、発信元ノードに代わって、ブロックチェーントランザクションをネットワークの中へ導入するために使用される場合は、トランザクションをブロックチェーン内に包含するように成功裡に通信するために、いくつかの数量(amount)のブロックチェーンベースのリソース(例えば、トークン)が、プロキシノードに対して提供されることであってよい。そうした数量を選択することは、特に、例えば、どのプロキシノードが最も低い数量を受け入れるかを決定するためといったように、発信元ノードが1つまたはそれ以上のプロキシノードと通信している場合に、望ましくないメッセージングオーバーヘッドを結果として生じさせ得る。かくして、特定のブロックチェーントランザクションに関連して提供されるべき数量を確立することに関連するメッセージングオーバーヘッドを回避または制限することが問題である。 When a proxy is used to introduce a blockchain transaction into the network on behalf of an originating node, some amount of blockchain-based resources (e.g., tokens) may be provided to the proxy node in order to successfully communicate the transaction for inclusion in the blockchain. Selecting such an amount may result in undesirable messaging overhead, particularly when the originating node is communicating with one or more proxy nodes, for example, to determine which proxy node will accept the lowest amount. Thus, it is an issue to avoid or limit the messaging overhead associated with establishing the amount to be provided in connection with a particular blockchain transaction.

複数のプロキシノードを使用することにおける問題は、また、トランザクションをブロックチェーン内に包含するように成功裡に通信するために、それぞれ特定のプロキシノードに対して異なる数量が提供されるように異なるプロキシノードが要求している場合に、複数のブロックチェーントランザクションが発信元ノードによって生成される必要があり得ることであってもよく、それぞれがプロキシノードのうち特定の1つに関連するアドレスに対して異なる数量を移転している。さらに、プロキシノードのうち1つがプロキシノードの別のものと同じ数量を要求する場合でさえも、複数のブロックチェーントランザクションが生成される必要があることであってよく、それぞれがプロキシノードのうち特定の1つに関連するアドレスに対してその数量を提供している。 An issue with using multiple proxy nodes may also be that, in order to successfully communicate a transaction for inclusion in the blockchain, multiple blockchain transactions may need to be generated by the originating node, each transferring a different quantity to an address associated with a particular one of the proxy nodes, if different proxy nodes are requesting that each provide a different quantity to a particular proxy node. Furthermore, even if one of the proxy nodes requests the same quantity as another of the proxy nodes, multiple blockchain transactions may need to be generated, each providing that quantity to an address associated with a particular one of the proxy nodes.

例えば、ビットコインといった、いくつかのブロックチェーンベースのシステムにおいては、一旦トランザクションがブロードキャストされると、そのブロックチェーントランザクションは、今までどおりブロックチェーン内に含まれる必要がある。ブロックチェーン内で新しいブロックを生成する責任がある特定のコンピュータシステム、マイナ(miners)として知られるもの、によるものである。マイナは、ブロックを「採掘(“mine”)」するために必要な計算作業を実行するために、新たに作られた(minted)ビットコインの形式で、数量(amount)を受け取る。注目すべきことに、このことは、ビットコインがそうした計算資源に対して直接的に対応することを意味している。 In some blockchain-based systems, such as Bitcoin, once a transaction is broadcast, it still needs to be included in the blockchain by specific computer systems, known as miners, that are responsible for generating new blocks within the blockchain. Miners receive an amount in the form of newly minted Bitcoins to perform the computational work required to "mine" a block. Notably, this means that Bitcoin directly compensates for those computational resources.

マイナには、特定のブロックチェーントランザクションをマイニングブロック内に含めるために、マイニング料金(mining fee)が提供され得る。このマイニング料金は、そのブロックチェーントランザクションの出力に対する所与のトランザクションの入力の剰余として反映されている。ブロックチェーントランザクションを次のブロック内に含めるために必要な最低料金は、時間とともに変化し得る。 Miners may be provided with a mining fee for the inclusion of a particular blockchain transaction in a mined block. This mining fee is reflected as the surplus of a given transaction's inputs over that blockchain transaction's outputs. The minimum fee required for a blockchain transaction to be included in the next block may change over time.

ブロックチェーンにおいて可能なブロードキャストのために複数のプロキシに対してブロックチェーントランザクションを提供することにおける別の問題は、おそらく特定のブロックチェーントランザクションが次のブロックに含まれるようにマイニングさせるために必要なマイニング料金が、発信元ノードによるブロックチェーントランザクションの生成と、ブロックチェーンネットワークに対する1つまたはそれ以上のプロキシノードによるブロックチェーントランザクションの送信との間の期間において変動し得ることである。かくして、発信元ノードについて、適切なマイニング料金でブロックチェーントランザクションを設定することが、発信元ノードとプロキシの様々なノードとの間で、通信またはハンドシェイクの膨大な行ったり来たり(back-and-forth)を必要とし得ることが問題である。例えば、発信元ノード100は、特定のマイニング料金を含むブロックチェーントランザクションを設定し、そして、プロキシノードに対してそのブロックチェーントランザクションをブロードキャストのために送付することができるが、次いで、ネットワーク条件は、プロキシノードがブロックチェーントランザクションをブロードキャストする前に、変化し得る。従って、次のブロック内の可能性ある包含のためには不十分なマイニング料金を結果として生じている。そうした状況において、プロキシノードは、例えば、発信元ノードとのさらなる通信を必要とし得る、より高いマイニング料金を伴い、新しいブロックチェーントランザクションを送付する必要があり得る。このことは、望ましくないメッセージングオーバーヘッドを結果として生じ得る。さらに、複数のブロックチェーントランザクションの生成は、1つまたはそれ以上の発信元ノードおよびプロキシノードにおいて、計算資源を不必要に消費し得る。 Another issue with providing blockchain transactions to multiple proxies for possible broadcast in a blockchain is that the mining fee required to have a particular blockchain transaction mined for inclusion in the next block may fluctuate during the period between the origin node's creation of the blockchain transaction and the transmission of the blockchain transaction by one or more proxy nodes to the blockchain network. Thus, for an origin node, configuring a blockchain transaction with an appropriate mining fee may require extensive back-and-forth communication or handshakes between the origin node and various proxy nodes. For example, an origin node 100 may configure a blockchain transaction including a particular mining fee and then submit the blockchain transaction to a proxy node for broadcast, but network conditions may then change before the proxy node broadcasts the blockchain transaction, thus resulting in an insufficient mining fee for possible inclusion in the next block. In such a situation, the proxy node may need to submit a new blockchain transaction, for example, with a higher mining fee, which may require further communication with the origin node. This may result in undesirable messaging overhead. Furthermore, the creation of multiple blockchain transactions may unnecessarily consume computational resources at one or more originating and proxy nodes.

本出願に従って、単一のプロキシノードを使用することの欠点および複数のプロキシノードを使用することに関連する問題に対処するために、複数のプロキシノードが使用され得る。例えば、マイニング料金を確立することに関連する潜在的な計算およびメッセージングオーバーヘッドの問題を含むものであり、そして、トランザクションをブロックチェーン内に包含するように成功裡に通信するためにプロキシノードに対して提供される数量が取り扱われ得る。例えば、マイニング料金を確立することに関連する問題、および、トランザクションをブロックチェーン内に包含するように成功裡に通信するためにプロキシノードに対して提供される数量は、所与のプロキシノードによって両方が選択されることを可能にすることによって対処され得る。 In accordance with the present application, multiple proxy nodes may be used to address the drawbacks of using a single proxy node and the issues associated with using multiple proxy nodes. For example, issues including the potential computational and messaging overhead associated with establishing mining fees and the quantity provided to a proxy node for successfully communicating a transaction for inclusion in the blockchain may be addressed. For example, issues associated with establishing mining fees and the quantity provided to a proxy node for successfully communicating a transaction for inclusion in the blockchain may be addressed by allowing both to be selected by a given proxy node.

図2のハイレベルな概略図は、発信元ノード100に代わって、ブロックチェーンネットワーク110の中へトランザクションを導入するために、プロキシノードのグループがどのように使用され得るかについて例示的な構成を示している。 The high-level schematic diagram in Figure 2 shows an example configuration of how a group of proxy nodes can be used to introduce transactions into the blockchain network 110 on behalf of an originating node 100.

図示されるように、発信元ノード100は、エレメント220を介し、一式のプロキシノード230A-Cを経由してブロックチェーンネットワーク110と通信する。 As shown, the originating node 100 communicates with the blockchain network 110 via element 220 and through a set of proxy nodes 230A-C.

プロキシノード230A-230Cそれぞれは、コンピューティングデバイスである。プロキシノード230A-230Cは、ブロックチェーンネットワーク110と通信している。3つのプロキシノード-プロキシノード230A、プロキシノード230B、およびプロキシノード230C-が示されているが、これは単に例示としてのものに過ぎず、そして、プロキシノードの数は変動してよい。 Each of the proxy nodes 230A-230C is a computing device. The proxy nodes 230A-230C are in communication with the blockchain network 110. Although three proxy nodes are shown—proxy node 230A, proxy node 230B, and proxy node 230C—this is for illustrative purposes only, and the number of proxy nodes may vary.

エレメント220は、情報が、発信元ノード100によって、プロキシノード230A-230Cのうち1つまたはそれ以上に対して通信されるのを可能にし、そして、その逆も同様である。エレメント220は、例えば、周知のネットワークアドレスにおけるコンピュータシステムといった、1つまたはそれ以上の装置を表すことができ、1つまたはそれ以上の他の当事者による転送(forwarding)及び/又は検索(retrieval)のために1つの当事者によって送信された情報を保管している。そうしたエレメント220によって保管された情報は、一過性(ephemeral)のものであってよく、かつ/あるいは、いくらかの定められた期間の後で満了してよい。別の例において、エレメント220は、発信元ノード100がプロキシノード230A-230Cと通信することによって、ネットワーク接続に対応することができる。 Element 220 enables information to be communicated by originating node 100 to one or more of proxy nodes 230A-230C, and vice versa. Element 220 may represent one or more devices, such as a computer system at a well-known network address, that store information sent by one party for forwarding and/or retrieval by one or more other parties. Information stored by such element 220 may be ephemeral and/or may expire after some defined period of time. In another example, element 220 may support network connectivity by originating node 100 communicating with proxy nodes 230A-230C.

以下でさらに説明されるように、発信元ノード100は、ブロックチェーンネットワーク110への通信のために、プロキシノード230A-Cに対してブロックチェーントランザクションを通信し得る。いくつかの実施形態において、プロキシノード230A-230Cのうち1つまたはそれ以上は、ブロックチェーンネットワーク110の一部を形成し得る。追加的または代替的に、プロキシノード230A-230CCのうち1つまたはそれ以上は、ブロックチェーンネットワーク110の1つまたはそれ以上のノードと通信し得る。 As described further below, the originating node 100 may communicate blockchain transactions to the proxy nodes 230A-C for communication to the blockchain network 110. In some embodiments, one or more of the proxy nodes 230A-230C may form part of the blockchain network 110. Additionally or alternatively, one or more of the proxy nodes 230A-230CC may communicate with one or more nodes of the blockchain network 110.

上述のように、プロキシノード230A-230Cは、発信元ノード100に代わり、といったように、ブロックチェーンネットワーク110へブロックチェーントランザクションを中継するように設定されている。 As described above, proxy nodes 230A-230C are configured to relay blockchain transactions to the blockchain network 110, such as on behalf of the originating node 100.

以下でさらに説明されるように、発信元ノード100は、ブロックチェーンネットワーク110への通信のために、プロキシノード230A-Cに対してブロックチェーントランザクションを通信し得る。いくつかの実施形態において、プロキシノード230A-230Cのうち1つまたはそれ以上は、ブロックチェーンネットワーク110の一部を形成し得る。追加的または代替的に、プロキシノード230A-230CCのうち1つまたはそれ以上は、ブロックチェーンネットワーク110の1つまたはそれ以上のノードと通信し得る。 As described further below, the originating node 100 may communicate blockchain transactions to the proxy nodes 230A-C for communication to the blockchain network 110. In some embodiments, one or more of the proxy nodes 230A-230C may form part of the blockchain network 110. Additionally or alternatively, one or more of the proxy nodes 230A-230CC may communicate with one or more nodes of the blockchain network 110.

上述のように、プロキシノード230A-230Cは、発信元ノード100に代わり、といったように、ブロックチェーンネットワーク110へトランザクションを中継するように設定されている。 As described above, proxy nodes 230A-230C are configured to relay transactions to the blockchain network 110, such as on behalf of the originating node 100.

特に、発信元ノード100は、マイニング料金およびトランザクションをブロックチェーン内に包含するように成功裡に通信するためにプロキシノードに提供される数量の両方を超える剰余入力値を含む、部分的に署名されたブロックチェーントランザクションを生成することができる。以下でさらに説明されるように、プロキシノード230A-230Cのうち1つまたはそれ以上は、次いで、ブロックチェーントランザクションのためのマイニング料金を定めるように、部分的に署名されたブロックチェーントランザクションに対するさらなる入力を提供することができ、そして、ブロックチェーンネットワーク110に対して第1ブロックチェーントランザクションを分配するための数量を収集するために、さらなるブロックチェーントランザクションを生成することができる。 In particular, the originating node 100 can generate a partially signed blockchain transaction that includes a surplus input value that exceeds both the mining fee and the quantity provided to the proxy node for successful communication of the transaction for inclusion in the blockchain. As described further below, one or more of the proxy nodes 230A-230C can then provide additional inputs to the partially signed blockchain transaction to determine the mining fee for the blockchain transaction, and can generate additional blockchain transactions to collect quantities for distribution of the first blockchain transaction to the blockchain network 110.

図3は、1つの例示的なコンピューティングデバイス300に係るハイレベルなオペレーション図である。いくつかの実施形態において、例示的なコンピューティングデバイス300は、例えば、発信元ノード100及び/又はプロキシノード230A-Cを含んでいる、ここにおいて説明されるコンピュータシステムの例示的な1つまたはそれ以上のものであってよい。発信元ノード100およびプロキシノード230A-Cそれぞれは、特定の機能を実行するように適合させるソフトウェアを含む。 Figure 3 is a high-level operational diagram of one exemplary computing device 300. In some embodiments, the exemplary computing device 300 may be one or more of the exemplary computer systems described herein, including, for example, the originating node 100 and/or the proxy nodes 230A-C. Each of the originating node 100 and the proxy nodes 230A-C includes software adapted to perform particular functions.

例示的なコンピューティングデバイス300は、様々なモジュールを含んでいる。例えば、図示されるように、例示的なコンピューティングデバイス300は、プロセッサ310、メモリ320、およびネットワークインターフェイス330を含み得る。図示されるように、例示的なコンピューティングデバイス300に係る前述のコンポーネントは、バス340を介して通信する。 The exemplary computing device 300 includes various modules. For example, as shown, the exemplary computing device 300 may include a processor 310, memory 320, and a network interface 330. As shown, the aforementioned components of the exemplary computing device 300 communicate via a bus 340.

プロセッサ310は、ハードウェアプロセッサである。プロセッサ310は、例えば、ARM、Intel x86、PowerPCプロセッサ、等のうち1つまたはそれ以上であっよい。 Processor 310 is a hardware processor. Processor 310 may be, for example, one or more of an ARM, Intel x86, or PowerPC processor, etc.

メモリ320は、データが保管され、かつ、検索されることを可能にする。メモリ320は、例えば、ランダムアクセスメモリ、読み出し専用メモリ、および永続性ストレージを含んでよい。永続性ストレージは、例えば、フラッシュメモリ、ソリッドステートドライブ、等であってよい。読み出し専用メモリおよび永続性ストレージは、非一時的コンピュータ読取り可能記憶媒体である。コンピュータ読取り可能媒体は、例示的なコンピューティングデバイス300の全般のオペレーションを支配するオペレーティングシステムによって管理され得る、といったファイルシステムを使用して組織化されてよい。 Memory 320 allows data to be stored and retrieved. Memory 320 may include, for example, random access memory, read-only memory, and persistent storage. Persistent storage may be, for example, flash memory, solid-state drives, etc. Read-only memory and persistent storage are non-transitory computer-readable storage media. Computer-readable media may be organized using a file system, such as may be managed by an operating system that governs the overall operation of exemplary computing device 300.

ネットワークインターフェイス330により、例示的なコンピューティングデバイス300は、例えば、ブロックチェーンネットワーク110(図1および図2)といった、他のコンピューティングデバイス及び/又は様々な通信ネットワークと通信することができる。 The network interface 330 enables the exemplary computing device 300 to communicate with other computing devices and/or various communication networks, such as, for example, the blockchain network 110 (Figures 1 and 2).

命令を含んでいるソフトウェアは、コンピュータ読取り可能媒体からプロセッサ310によって実行される。例えば、ソフトウェアは、メモリ320の永続性ストレージからランダムアクセスメモリの中へロードされ得る。追加的または代替的に、命令は、メモリ320の読み出し専用メモリから直接的にプロセッサ310によって実行され得る。 Software containing instructions may be executed by processor 310 from a computer-readable medium. For example, the software may be loaded into random access memory of memory 320 from persistent storage. Additionally or alternatively, the instructions may be executed by processor 310 directly from read-only memory of memory 320.

以下でさらに説明されるように、ソフトウェアは、例えば、発信元ノード100およびプロキシノード230A-Cを含む、ここにおいて言及される様々なコンピュータシステムの1つまたはそれ以上として機能するように、例示的なコンピューティングデバイス300のインスタンスを適合することができる。 As described further below, software can adapt an instance of the exemplary computing device 300 to function as one or more of the various computer systems referred to herein, including, for example, the originating node 100 and the proxy nodes 230A-C.

上述のように、発信元ノード100(図2)は、ブロックチェーンネットワーク110に対して分配するために、トランザクションを1つまたはそれ以上のプロキシノード230A-230Cに提供することができる。そうしたブロックチェーントランザクションをプロキシノードに提供することにおける発信元ノード100のオペレーションが、図4のフローチャート400を参照して説明される。オペレーション410及びそれ以降は、例えば、メモリ320のストレージといった、コンピュータ読取り可能記憶媒体において保管され得るようなコンピュータ実行可能命令を含むソフトウェアを実行する、例示的なコンピューティングデバイス300の適切に設定されたインスタンスの、例えば、プロセッサ310(図3)といった、コンピューティングデバイスの1つまたはそれ以上のプロセッサによって実行される。 As described above, origin node 100 (FIG. 2) can submit transactions to one or more proxy nodes 230A-230C for distribution to blockchain network 110. The operation of origin node 100 in submitting such blockchain transactions to proxy nodes is described with reference to flowchart 400 of FIG. 4. Operations 410 and beyond are performed by one or more processors of a computing device, such as processor 310 (FIG. 3) of a suitably configured instance of exemplary computing device 300, executing software including computer-executable instructions that may be stored in a computer-readable storage medium, such as the storage of memory 320.

フローチャート400に示される方法に対して前提条件(pre-requisite)として、発信元ノード100は、プロキシノード230A-Cそれぞれと公開鍵を交換する。鍵は、例えば、エレメント220(図2)を介して交換され得る。 As a pre-requisite to the method illustrated in flowchart 400, origin node 100 exchanges public keys with each of proxy nodes 230A-C. The keys may be exchanged, for example, via element 220 (FIG. 2).

例えば、発信元ノード100およびプロキシノード230A-Cそれぞれが、公開鍵-秘密鍵のペアを生成し、そして、交換においては公開鍵を使用する、ことであってよい。これらの関連する非対称暗号化鍵ペアは、ノードに関連付けされ得るあらゆる他の暗号鍵に追加されてよい。 For example, originating node 100 and proxy nodes 230A-C may each generate a public-private key pair and use the public key in the exchange. These associated asymmetric encryption key pairs may be in addition to any other encryption keys that may be associated with the nodes.

さらなる前提条件として、発信元ノード100は、プロキシノード230A-230Cそれぞれと共有される秘密の値(shared secret value)を確立する。 As a further prerequisite, the originating node 100 establishes a shared secret value with each of the proxy nodes 230A-230C.

以下でさらに説明されるように、共有される秘密は公開鍵の交換を通じて確立され得る。代替的に、共有される秘密を確立することは、さらなる通信及び/又は計算を含み得る。 As described further below, the shared secret may be established through the exchange of public keys. Alternatively, establishing the shared secret may involve additional communication and/or computation.

オペレーション410において、発信元ノード100は、前提条件である必要な公開鍵の交換において受信される第1公開鍵に基づいて、プロキシノード230A-Cそれぞれについて第2公開鍵を決定する。第2公開鍵は、第1公開鍵および共有される秘密に基づいて決定され、そして、プロキシノードそれぞれについて対応する第2秘密鍵が、発信元ノードと所与のプロキシノードとの間で共有される秘密の値、および、第1公開鍵に対応する秘密鍵に基づいて、所与のプロキシノードによって決定可能である、そうした様式で生成される。第1公開鍵および使用され得る共有される秘密に基づいて第2公開鍵を決定する方法が、以下に説明される。 In operation 410, the originating node 100 determines a second public key for each of the proxy nodes 230A-C based on the first public key received in the prerequisite required public key exchange. The second public key is determined based on the first public key and a shared secret, and a corresponding second private key for each proxy node is generated in such a manner that it can be determined by the given proxy node based on the value of the secret shared between the originating node and the given proxy node and the private key corresponding to the first public key. A method for determining the second public key based on the first public key and a potentially used shared secret is described below.

プロキシノード230A-230Cそれぞれに対する第2公開鍵の決定に続いて、制御フローは、オペレーション420へ進む。 Following the determination of the second public key for each of the proxy nodes 230A-230C, control flow proceeds to operation 420.

オペレーション420において、発信元ノード100は、1つの入力および2つの出力を含んでいるブロックチェーントランザクションを生成する。そうしたブロックチェーントランザクションの一つの例が図5に示されている。図示されるように、例示的なブロックチェーントランザクション、ブロックチェーントランザクション500は、入力510、第1出力520、および第2出力530を含んでいる。 In operation 420, the originating node 100 generates a blockchain transaction that includes one input and two outputs. An example of such a blockchain transaction is shown in FIG. 5. As shown, the exemplary blockchain transaction, blockchain transaction 500, includes an input 510, a first output 520, and a second output 530.

ブロックチェーントランザクション500は、ブロックチェーンベースのリソースのうちx単位(units)を、ブロックチェーン実装された台帳を介して、他の当事者に移転するように意図されている。説明を容易にするために、送信元(source)と宛先アドレスは示されていない。単位は、例えば、計算資源の単位に対応してよい。単位は、例えば、ビットコインで表現された単位といった、特定のリソースの単位であってよい。 Blockchain transaction 500 is intended to transfer x units of a blockchain-based resource to another party via a blockchain-implemented ledger. For ease of illustration, the source and destination addresses are not shown. The units may correspond, for example, to units of a computational resource. The units may be units of a particular resource, such as units expressed in Bitcoin.

ブロックチェーンに含まれるブロックチェーントランザクション500を見るために、発信元ノード100が、さらなるr単位を喜んで提供する、ということであってよい。 It may be that the originating node 100 is willing to provide an additional r unit in order to view the blockchain transaction 500 included in the blockchain.

図示されるように、両方の量(x+r)単位は、入力510を経由して、ブロックチェーントランザクションに対して入力として提供される。代替的に、これらの量が、例えば、ユーザが異なるアドレスからx単位およびr単位の全て又は一部を供給することを望む場合といった、1つより多い入力を経由して提供される、ということであってよい。 As shown, both quantities (x + r) units are provided as inputs to the blockchain transaction via input 510. Alternatively, these quantities may be provided via more than one input, for example, if a user wishes to source all or part of x units and r units from different addresses.

第1出力520は、出力アドレスに対してx単位を提供する。出力アドレスは、他の当事者と関連付けされてよい。 The first output 520 provides x units for the output address. The output address may be associated with another party.

第2出力530は、d+r単位を特別なアドレスに対して提供し、それによって、そのアドレスに対して提供された数量は、プロキシノード230A-230Cに関連付けされた上述の第2秘密鍵のうち任意の1つによってアンロックされ得る。そうしたn個のマルチ署名アドレスのうち1つ(1-of-n multi-signature address)が、各プロキシノードの公開鍵およびプロキシノードが発信元ノード100と共有する秘密の値に基づいて決定されたように、上述の第2公開鍵に基づいて、発信元ノード100によって生成されてよい。そうしたマルチ署名アドレスの詳細、特にビットコインのコンテクストにおけるものは、A.M.Antonopous(O'Reilly Media)による“Mastering Bitcoin: Unlocking Digital Cryptocurrencies”(2014)(以降、「マスタリングビットコイン」)において見つけることができ、その内容は、参照によりその全てがここにおいて組み込まれている。マルチ署名アドレスは、「マスタリングビットコイン」の5章において説明されている。 The second output 530 provides d+r units to a special address, whereby the quantity provided to that address can be unlocked by any one of the second private keys associated with the proxy nodes 230A-230C. Such a 1-of-n multi-signature address may be generated by the origin node 100 based on the second public key, as determined based on each proxy node's public key and a secret value the proxy node shares with the origin node 100. Details of such multi-signature addresses, particularly in the context of Bitcoin, can be found in "Mastering Bitcoin: Unlocking Digital Cryptocurrencies" (2014) by A.M. Antonopous (O'Reilly Media) (hereinafter "Mastering Bitcoin"), the contents of which are incorporated herein by reference in their entirety. Multi-signature addresses are described in Chapter 5 of "Mastering Bitcoin."

また、追加の出力(図示なし)が、例えば、入力510のソースから派生して(x+r)単位より多く存在していることから生じている剰余を回収するための追加の出力といったように、ブロックチェーントランザクション500に含まれている、ということであってもよい。 Additional outputs (not shown) may also be included in the blockchain transaction 500, such as additional outputs to recover any remainder resulting from there being more than (x + r) units derived from the source of the input 510.

注目すべきことに、第2出力530に含まれる量d単位は、任意の数量であり、第1出力520および第2出力530の合計と比較して入力510との間でブロックチェーントランザクション500においてd単位の不均衡(不足)を結果として生じる。以下でさらに説明されるように、このことは、ブロックチェーントランザクションに対する入力の合計が出力の合計を超えることを保証するために1つまたはそれ以上のさらなる入力を追加することなく、ブロックチェーン内に包含することについてブロックチェーントランザクション500が受け入れられないことを保証しながら、発信元ノード100がブロックチェーントランザクション500に署名することを可能にする。 Notably, the quantity d units included in the second output 530 is an arbitrary quantity, resulting in an imbalance (deficit) of d units in the blockchain transaction 500 between the input 510 compared to the sum of the first output 520 and the second output 530. As explained further below, this allows the originating node 100 to sign the blockchain transaction 500 while ensuring that the blockchain transaction 500 will not be accepted for inclusion in the blockchain without adding one or more additional inputs to ensure that the sum of the inputs for the blockchain transaction exceeds the sum of the outputs.

図4に戻ると、オペレーション420に続いて、制御フローはオペレーション430へ進む。 Returning to Figure 4, following operation 420, control flow proceeds to operation 430.

オペレーション430において、発信元ノード100は、ブロックチェーントランザクション500にデジタル署名する。上述のように、ブロックチェーントランザクション500は、その出力の合計がその入力の合計を超えるので、不完全(incomplete)である。発信元ノード100は、さらなる出力をブロックチェーントランザクション500に対して追加することはできないが、さらなる入力が追加され得るように、全ての出力-すなわち、第1出力520および第2出力530を含む-および入力510に署名するための、そうした様式でブロックチェーントランザクションに署名する。例えば、ブロックチェーントランザクション500がビットコイントランザクションである場合に、発信元ノード100は、フラグSIGHASH_ALL|SIGHASH_ANYONECANPAYを使用して、ブロックチェーントランザクション500に署名し得る。 In operation 430, the originating node 100 digitally signs the blockchain transaction 500. As described above, the blockchain transaction 500 is incomplete because the sum of its outputs exceeds the sum of its inputs. The originating node 100 signs the blockchain transaction in such a way that no further outputs can be added to the blockchain transaction 500, but all outputs—i.e., including the first output 520 and the second output 530—and the input 510 can be signed so that further inputs can be added. For example, if the blockchain transaction 500 is a Bitcoin transaction, the originating node 100 may sign the blockchain transaction 500 using the flags SIGHASH_ALL|SIGHASH_ANYONECANPAY.

オペレーション430に続いて、制御フローは、オペレーション440へ進む。 Following operation 430, control flow proceeds to operation 440.

オペレーション440において、発信元ノード100は、署名された、ブロックチェーントランザクション500をプロキシノード230A-Cに対して分配する。いくつかの実施形態において、発信元ノード100は、エレメント220を経由してブロックチェーントランザクション500を通信することができる。注目すべきことに、ブロックチェーントランザクション500は署名されているので、ブロックチェーントランザクションに関連するトランザクション識別子(txid)は唯一である。かくして、発信元ノードは、例えば、エレメント220を経由して、txidをプロキシノード230A-Cに通信することができる。別の例において、発信元ノードは、txidに係るそれぞれの指示をプロキシノード230A-230Cそれぞれに対して通信することができる。追加的または代替的に、ブロックチェーントランザクション500は、例えば、プロキシノード230A-230Cに対する送信のために、あるフォーマットへとそれを直列化(serializing)することによる、といった何らかの他の様式で通信されてよい。ブロックチェーントランザクション500及び/又はtxidは、暗号化された形式で送信されてよい。例えば、一方または両方は、プロキシノード230A-230Cそれぞれに対して、そのプロキシノードの公開鍵を使用して各プロキシノードに対して暗号化されて、分配されてよい。特定の例においては、ブロックチェーントランザクション500の受信された識別子が、所与のプロキシノードの公開鍵を使用して暗号化されてよい。 In operation 440, the originating node 100 distributes the signed blockchain transaction 500 to the proxy nodes 230A-C. In some embodiments, the originating node 100 may communicate the blockchain transaction 500 via element 220. Notably, because the blockchain transaction 500 is signed, the transaction identifier (txid) associated with the blockchain transaction is unique. Thus, the originating node may communicate the txid to the proxy nodes 230A-C, for example, via element 220. In another example, the originating node may communicate respective instructions related to the txid to each of the proxy nodes 230A-230C. Additionally or alternatively, the blockchain transaction 500 may be communicated in some other manner, such as by serializing it into a format for transmission to the proxy nodes 230A-230C. The blockchain transaction 500 and/or the txid may be transmitted in encrypted form. For example, one or both may be encrypted and distributed to each proxy node 230A-230C using that proxy node's public key. In a particular example, the received identifier for the blockchain transaction 500 may be encrypted using the public key of a given proxy node.

上述のように、プロキシノード230A-Cは、ブロックチェーンネットワーク110に対する分配のために、発信元ノード100からブロックチェーントランザクション500を受信する。ブロックチェーンネットワーク110に対するブロックチェーントランザクションの分配に関するプロキシノード230A-230Cの例示的な1つのオペレーションが、図6のフローチャート600を参照して説明される。オペレーション610及びそれ以降は、例えば、メモリ320のストレージといった、コンピュータ読取り可能記憶媒体において保管され得るようなコンピュータ実行可能命令を含むソフトウェアを実行する、例示的なコンピューティングデバイス300の適切に設定されたインスタンスの、例えば、プロセッサ310(図3)といった、コンピューティングデバイスの1つまたはそれ以上のプロセッサによって実行される。 As described above, proxy nodes 230A-C receive blockchain transactions 500 from origin node 100 for distribution to blockchain network 110. One exemplary operation of proxy nodes 230A-230C for distribution of blockchain transactions to blockchain network 110 is described with reference to flowchart 600 of FIG. 6. Operations 610 and thereafter are performed by one or more processors of a computing device, such as processor 310 (FIG. 3) of a suitably configured instance of exemplary computing device 300, executing software including computer-executable instructions that may be stored in a computer-readable storage medium, such as the storage of memory 320.

フローチャート600に示された方法は、フローチャート400(図4)に示された方法のものと類似する前提条件を有している。すなわち、プロキシノードが、例えば、エレメント220(図2)を介して発生し得るといったように、発信元ノード100(図2)と公開鍵を交換していること、および、例示的なプロキシノードが、発信元ノード100と共有される秘密の値を確立していることである。かくして、発信元ノード100およびプロキシノードそれぞれは、そのノードが交換した公開鍵およびそれに関連する秘密鍵からなる関連する非対称鍵ペアを有する。 The method illustrated in flowchart 600 has similar prerequisites to the method illustrated in flowchart 400 (FIG. 4): that the proxy node has exchanged public keys with origin node 100 (FIG. 2), which may occur, for example, via element 220 (FIG. 2), and that the exemplary proxy node has established a shared secret value with origin node 100. Thus, origin node 100 and proxy node each have an associated asymmetric key pair consisting of the node's exchanged public key and its associated private key.

オペレーション610において、プロキシノードは、発信元ノードからブロックチェーントランザクション500(図5)を受信する。上述のように、ブロックチェーントランザクション500は、発信元ノード100によって部分的に署名されており、そして、x+r単位をとる第1入力と、出力アドレスに対してx単位を提供する第1出力と、プロキシノード230A-230Cに関連する第2秘密鍵の任意の1つのセットを使用してアンロック可能なn個のマルチ署名アドレスのうち1つに対してd+r単位を提供する第2出力とを含む。プロキシノードは、前提条件として発信元ノード100と交換した公開鍵に対応する秘密鍵、および、プロキシノードが発信元ノードと共有する秘密の値に基づいて、その第2秘密鍵を導出することができる。 In operation 610, the proxy node receives the blockchain transaction 500 (Figure 5) from the origin node. As described above, the blockchain transaction 500 is partially signed by the origin node 100 and includes a first input taking x+r units, a first output providing x units to an output address, and a second output providing d+r units to one of n multi-signature addresses unlockable using any one of the sets of second private keys associated with the proxy nodes 230A-230C. The proxy node can derive its second private key based on a private key corresponding to the public key exchanged with the origin node 100 as a prerequisite and a secret value the proxy node shares with the origin node.

ブロックチェーントランザクション500は、ブロックチェーントランザクション500と関連付けされた識別子を受信することによって受信され得る。識別子は、例えば、ブロックチェーントランザクション500のトランザクション識別子(txid)であってよい。追加的または代替的に、ブロックチェーントランザクション500は、例えば、ある直列化されたフォーマットといった、何らかの他の形式で受信されてよく、そして、例えば、非直列化される必要があり得る。追加的または代替的に、ブロックチェーントランザクション500は、暗号化された形式で受信され得る。例えば、発信元ノード100は、プロキシノードと関連付けされた公開鍵を使用して、暗号化を実行し得る。特定の例において、暗号化は、プロキシノードが前提条件として発信元ノード100と交換した公開鍵、または、別の例においては、プロキシノードの第2秘密鍵に対応する第2公開鍵を使用することができる。プロキシノードは、プロキシノードと関連付けされた公開鍵に対応する秘密鍵を使用して、ブロックチェーントランザクション500またはその識別子を復号化(decrypt)し得る。 The blockchain transaction 500 may be received by receiving an identifier associated with the blockchain transaction 500. The identifier may be, for example, the transaction identifier (txid) of the blockchain transaction 500. Additionally or alternatively, the blockchain transaction 500 may be received in some other format, such as a serialized format, and may need to be deserialized, for example. Additionally or alternatively, the blockchain transaction 500 may be received in an encrypted format. For example, the originating node 100 may perform the encryption using a public key associated with the proxy node. In a particular example, the encryption may use a public key that the proxy node exchanged with the originating node 100 as a prerequisite, or in another example, a second public key corresponding to the proxy node's second private key. The proxy node may decrypt the blockchain transaction 500 or its identifier using a private key corresponding to the public key associated with the proxy node.

オペレーション610に続いて、フロー制御は、オペレーション620へ進む。 Following operation 610, flow control proceeds to operation 620.

オペレーション620において、プロキシノードは、ブロックチェーントランザクション500を更新すること、および、ブロックチェーントランザクション500をブロックチェーン内に含めることに成功した場合に、プロキシノードに対して数量を提供するためのさらなるトランザクションを構成することにおいて使用される量の数(a number of quantities)を選択する。 In operation 620, the proxy node selects a number of quantities to be used in updating the blockchain transaction 500 and, if the blockchain transaction 500 is successfully included in the blockchain, in constructing a further transaction to provide the quantity to the proxy node.

特に、プロキシノードは、ブロックチェーントランザクション500をブロードキャストし、そして、ブロックチェーン内にブロックチェーントランザクション500を含めるために、プロキシノードに対して割り当てられるべき量、t単位、を選択する。 In particular, the proxy node broadcasts the blockchain transaction 500 and selects an amount, t units, to be allocated to the proxy node for including the blockchain transaction 500 in the blockchain.

加えて、プロキシノードは、ブロックチェーン内にブロックチェーントランザクション500を含めるために、第三者(third-party)に割り当てられるべき量f、を選択する。量fは、計算資源の単位で表すことができ、そして、従って、計算資源の単位fの量であり得る。例えば、ビットコインブロックチェーンの場合に、f単位は、ブロックチェーン内にブロックチェーントランザクション500を含めるためにマイナに対して支払われるべきマイニング料金に対応し得る。 In addition, the proxy node selects an amount, f, to be allocated to a third-party for including the blockchain transaction 500 in the blockchain. The amount, f, may be expressed in units of computational resources and, therefore, may be an amount of f units of computational resources. For example, in the case of the Bitcoin blockchain, f units may correspond to a mining fee to be paid to a miner for including the blockchain transaction 500 in the blockchain.

量fは、コンピュータネットワークを介して受信した指示に基づいて選択される、ということであってよい。例えば、量fが計算資源に対応する場合には、トランザクションをブロックチェーン内に含めるために第三者に対して割り当てられるべき計算資源の量fは、コンピュータネットワークを介して受信した指示に基づいて選択される。そうした表示は、発信元ノードから受け取ることができる。追加的または代替的に、量fは、ブロックチェーントランザクションがブロックチェーン内の次のブロックに含まれるようにすることに基づいて選択されてよい。例えば、ウェブサービスは、量fとして選択された場合に、ブロックチェーントランザクション500がブロックチェーン内の次のブロックに含まれることを所望の確率または可能性を伴って保証する量を決定するように、考慮され得る。 The amount f may be selected based on an instruction received over a computer network. For example, if the amount f corresponds to computational resources, the amount f of computational resources to be allocated to a third party for including the transaction in the blockchain may be selected based on an instruction received over a computer network. Such an indication may be received from an originating node. Additionally or alternatively, the amount f may be selected based on ensuring that the blockchain transaction is included in the next block in the blockchain. For example, a web service may be consulted to determine an amount that, when selected as the amount f, ensures with a desired probability or likelihood that the blockchain transaction 500 will be included in the next block in the blockchain.

注目すべきことに、量fは、rより小さくなければならない-つまり、f<rである。そうでなければ、プロキシノードは、ブロックチェーントランザクション500をブロックチェーンに含まれるようにするための量をネットで受け取る(net-receive)ことはなく、または、ブロックチェーントランザクション500をブロックチェーンに含まれるようにすることに対してそれ自身のリソース(単位)を寄贈することでさえあり得る。 Notably, the quantity f must be less than r—that is, f<r. Otherwise, the proxy node will not net-receive the quantity for including the blockchain transaction 500 in the blockchain, or may even contribute its own resources (units) toward including the blockchain transaction 500 in the blockchain.

第1出力520によってx単位が送付される出力のタイプは、更新されたブロックチェーントランザクション700(以下でさらに説明される)をブロックチェーンに含まれるようにするために必要なマイニング料金に影響を与え得る、ということであってよい。従って、第1および第2出力の一方または両方は、量fの選択においてプロキシノードを支援するために、周知の形態を有してよい。 The type of output to which x units are sent by first output 520 may affect the mining fee required to include the updated blockchain transaction 700 (described further below) in the blockchain. Thus, one or both of the first and second outputs may have a known form to assist the proxy node in selecting the amount f.

以下でさらに説明されるように、プロキシノードは、ブロックチェーンに含まれているブロックチェーントランザクション500(および、さらなるブロックチェーントランザクション)次第で、t単位を提供するために、さらなるトランザクションを生成する。なぜなら、さらなるトランザクションをブロックチェーンに含めるためにも、また、量―例えば、ビットコインの場合にはマイナに対するマイニング料金―が提供される必要があり得るからである。量tは、また、この数量がブロックチェーントランザクション500の第1入力によって提供されるr単位から支払われることを可能にするように、選択することもできる。別の言葉で言えば、t<(r-f)ということであってよい。 As explained further below, the proxy node generates further transactions to provide t units, depending on the blockchain transaction 500 (and further blockchain transactions) included in the blockchain. This is because a quantity—e.g., a mining fee for a miner in the case of Bitcoin—may also need to be provided to include the further transaction in the blockchain. The quantity t may also be selected to allow this quantity to be paid from the r units provided by the first input of the blockchain transaction 500. In other words, t < (r - f).

オペレーション620における量の選択に続いて、制御フローは、オペレーション630へ進む。 Following the selection of the quantity in operation 620, control flow proceeds to operation 630.

オペレーション630では、ブロックチェーントランザクション500の更新された形式が生成される。特に、上述のように、ブロックチェーントランザクション500は、その出力の合計がその入力を超えるので、ブロックチェーンに含めるのに適していない。従って、オペレーション630において、図7に示される、更新されたブロックチェーントランザクション700が、ブロックチェーントランザクション500(図5)に基づいて生成される。特に、更新されたブロックチェーントランザクション700は、ブロックチェーントランザクション500に対して、d+f単位をとる(taking)第2入力710を追加することによって生成される。注目すべきことに、d単位は、第2出力530においてd単位のバランスを保つように機能する。f単位は、上述のように、更新されたブロックチェーントランザクション700をブロックチェーン内に含めるために提供するものである―例えば、ビットコインの場合にはマイニング料金である。 In operation 630, an updated form of blockchain transaction 500 is generated. In particular, as described above, blockchain transaction 500 is unsuitable for inclusion in the blockchain because the sum of its outputs exceeds its inputs. Thus, in operation 630, updated blockchain transaction 700, shown in FIG. 7, is generated based on blockchain transaction 500 (FIG. 5). In particular, updated blockchain transaction 700 is generated by adding a second input 710, taking d+f units, to blockchain transaction 500. Notably, the d units function to balance the d units in second output 530. The f units, as described above, provide for inclusion of updated blockchain transaction 700 in the blockchain—e.g., mining fees in the case of Bitcoin.

プロキシノードは、また、第2入力710に署名するためにも、更新されたブロックチェーントランザクション700に署名する。例えば、更新されたブロックチェーントランザクション700がビットコイントランザクションである場合に、プロキシノードは、フラグSIGHASH_ALL|SIGHASH_ANYONECANPAYを用いて更新されたブロックチェーントランザクション700に署名することができる。このさらなる暗号署名(cryptographic signature)は、更新されたブロックチェーントランザクション700が、ブロックチェーントランザクション500とは異なるトランザクションid(txid)を有するという副作用を有する。 The proxy node also signs the updated blockchain transaction 700 to sign the second input 710. For example, if the updated blockchain transaction 700 is a Bitcoin transaction, the proxy node may sign the updated blockchain transaction 700 with the flags SIGHASH_ALL|SIGHASH_ANYONECANPAY. This additional cryptographic signature has the side effect of causing the updated blockchain transaction 700 to have a different transaction ID (txid) than the blockchain transaction 500.

少なくとも全ての出力を合計した入力を有している結果として、および、これら全ての入力および出力が署名されていることを考慮すると、更新されたブロックチェーントランザクション700は、ブロックチェーンに含めるために適した形態である。 As a result of having an input that sums at least all of the outputs, and given that all of these inputs and outputs are signed, the updated blockchain transaction 700 is in a suitable form for inclusion in the blockchain.

図6に戻ると、オペレーション630に続いて、制御フローは、オペレーション640へ進む。 Returning to FIG. 6, following operation 630, control flow proceeds to operation 640.

オペレーション640では、上述のように、さらなるブロックチェーントランザクション800が生成され、デジタル署名される。特に、プロキシノードは、図8に示されるように、さらなるブロックチェーントランザクション800を生成し、そして、デジタル署名する。さらなるブロックチェーントランザクション800は、ブロックチェーントランザクション700(図7)の第2出力530のn個のマルチ署名アドレスのうち1つから供給されるd+r単位をとり、かつ、前提条件において発信元ノード100と交換されるプロキシノードの公開鍵およびプロキシノードが発信元ノード100と共有する秘密の値に対応する秘密鍵に基づいて導出されたプロキシノードの第2秘密鍵を使用してアンロックされる、入力810を含む。さらなるブロックチェーントランザクション800は、また、プロキシノードによって選択され得るといった、アドレスに対してt単位を提供している出力820を含む。実際において、t単位は、更新されたブロックチェーントランザクション700(および、さらなるブロックチェーントランザクション800)がブロックチェーンに含まれている場合にだけ、プロキシノードに対する数量である。注目すべきことに、tとd+rとの間の差異-すなわち、t-d-rは、ブロックチェーントランザクション800をブロックチェーン内に含めるための数量であってよい(例えば、ブロックチェーンネットワーク110がビットコインネットワークである場合におけるマイナに対するマイニング料金)。かくして、量fおよび量tの一方または両方は、t-d-rの量が、さらなるブロックチェーントランザクション800をブロックチェーン内の次のブロックに含まれることを可能にするように、選択され得る。 In operation 640, a further blockchain transaction 800 is generated and digitally signed, as described above. In particular, the proxy node generates and digitally signs the further blockchain transaction 800, as shown in FIG. 8. The further blockchain transaction 800 includes an input 810 that takes d+r units provided from one of the n multi-signature addresses of the second output 530 of the blockchain transaction 700 (FIG. 7) and is unlocked using the proxy node's second private key, which is derived based on the proxy node's public key exchanged with the origin node 100 in the precondition and the private key corresponding to the secret value the proxy node shares with the origin node 100. The further blockchain transaction 800 also includes an output 820 providing t units for an address, such as may be selected by the proxy node. In effect, the t units are a quantity for the proxy node only if the updated blockchain transaction 700 (and the further blockchain transaction 800) are included in the blockchain. Notably, the difference between t and d+r—i.e., t−d−r—may be the quantity for including the blockchain transaction 800 in the blockchain (e.g., the mining fee for miners when the blockchain network 110 is the Bitcoin network). Thus, one or both of the quantity f and the quantity t may be selected such that the quantity t−d−r allows for the further blockchain transaction 800 to be included in the next block in the blockchain.

図6に戻ると、オペレーション640に続いて、制御フローは、オペレーション650へ進む。 Returning to FIG. 6, following operation 640, control flow proceeds to operation 650.

オペレーション650では、ブロックチェーントランザクション700およびブロックチェーントランザクション800の両方が、プロキシノードによってブロックチェーンネットワーク110に対してブロードキャストされる。更新されたブロックチェーントランザクション700及びさらなるブロックチェーントランザクション800のブロードキャストは、それらをブロックチェーンの同じブロックに含めることができるように、時間を合わせる(timed)ことができる。例えば、更新されたブロックチェーントランザクション700及びさらなるブロックチェーントランザクション800が、同時に/近く連続してブロードキャストされる、といったことであってよい。都合よく、量fおよびt-d-rは、更新されたブロックチェーントランザクション700及びさらなるブロックチェーントランザクション800がブロックチェーン内の次のブロックに含まれ、かつ、それらのブロードキャストがそのように時間合わせされるようなものであれば、両方のトランザクションは、同一の、ブロックチェーンの次のブロックに含まれ得る。 In operation 650, both blockchain transaction 700 and blockchain transaction 800 are broadcast to the blockchain network 110 by the proxy node. The broadcast of the updated blockchain transaction 700 and the further blockchain transaction 800 may be timed so that they can be included in the same block of the blockchain. For example, the updated blockchain transaction 700 and the further blockchain transaction 800 may be broadcast simultaneously/close to succession. Advantageously, the quantities f and t-d-r are such that the updated blockchain transaction 700 and the further blockchain transaction 800 will be included in the next block in the blockchain, and if their broadcasts are so timed, then both transactions may be included in the same, next block of the blockchain.

上述のように、発信元ノード100は、プロキシノード230A-230Cそれぞれに対してブロックチェーントランザクション500を送付し得る。従って、プロキシノード230A-230Cそれぞれ、更新されたブロックチェーントランザクション700およびブロックチェーントランザクション800に係るそれ自身のバージョンを生成することができる。特に、更新されたブロックチェーントランザクション700の各インスタンスは、第2入力710の異なる形式のために、異なるtxidを有する。しかしながら、さらに注目すべきことに、更新されたブロックチェーントランザクション700のこれらのバージョンそれぞれは、ブロックチェーントランザクション500の入力510と同一の第1入力、入力510、を有しており、そして、従って、入力510と同じソースから、未使用のトランザクション出力を引き出す。従って、更新されたブロックチェーントランザクション700のこれらのバージョンそれぞれは、更新されたブロックチェーントランザクション700の他のバージョンに対する二重支出攻撃(double spending attack)(すなわち、異なる当事者に対する特定のトークンの同じ部分(fraction)の移転)としてブロックチェーンネットワーク110に現れる。しかしながら、都合よく、例えば、ビットコインといった、大部分のブロックチェーンベース台帳は、二重支出を防ぐので、更新されたブロックチェーントランザクション700のインスタンスのうち1つだけがブロックチェーンに含まれる。 As described above, origin node 100 may send blockchain transaction 500 to each of proxy nodes 230A-230C. Accordingly, each proxy node 230A-230C may generate its own version of updated blockchain transaction 700 and blockchain transaction 800. Notably, each instance of updated blockchain transaction 700 has a different txid due to the different format of second input 710. More notably, however, each of these versions of updated blockchain transaction 700 has a first input, input 510, identical to input 510 of blockchain transaction 500, and thus derives unspent transaction outputs from the same source as input 510. Accordingly, each of these versions of updated blockchain transaction 700 appears to blockchain network 110 as a double-spending attack (i.e., the transfer of the same fraction of a particular token to different parties) against the other versions of updated blockchain transaction 700. However, most blockchain-based ledgers, such as Bitcoin, advantageously prevent double-spending, so that only one instance of an updated blockchain transaction 700 is included in the blockchain.

ブロックチェーンネットワーク110の異なるインスタンスは、更新されたブロックチェーントランザクション700の様々なバージョンのうち特定のバージョンに有利なように、異なる方法で、二重支出を解決することができる。例えば、ブロックチェーンブロックを構成するノード(例えば、マイナ)は、それが見る第1ブロックを選択し得る、ということであってよい。ビットコインの場合には、更新されたブロックチェーントランザクション700の複数のバージョンがマイニングノードにおけるメモリ(いわゆる「メモリプール(“mempool”)」)内に一時的に保管され得るが、マイナは、次のブロックを含めるために、マイナに対する最も高いマイニング料金を有している更新されたブロックチェーントランザクション700を選択するだろう。注目すべきことに、量r、f、およびtの間の関係のために、このことは、また、最も低い値のtを選択するプロキシノードに由来する更新されたブロックチェーントランザクション700のバージョンを選択する副作用も有する。メモリプールについての詳細は、「マスタリングビットコイン」の8章において説明されている(引用について上記を参照のこと)。 Different instances of the blockchain network 110 may resolve double spends in different ways, favoring a particular version of the updated blockchain transaction 700 among various versions. For example, a node (e.g., a miner) constructing a blockchain block may choose the first block it sees. In the case of Bitcoin, multiple versions of the updated blockchain transaction 700 may be temporarily stored in memory (a so-called "mempool") at the mining node, and the miner will select the updated blockchain transaction 700 that has the highest mining fee for the miner to include in the next block. Notably, due to the relationship between the quantities r, f, and t, this also has the side effect of selecting the version of the updated blockchain transaction 700 that originates from the proxy node that selects the lowest value of t. More information about mempools is provided in Chapter 8 of "Mastering Bitcoin" (see above for citations).

注目すべきことに、更新されたブロックチェーントランザクション700がブロックチェーンに含まれると、更新されたブロックチェーントランザクション700のトランザクションIDが公に利用可能となる。これは、プロキシノード230A-230Cのいずれか1つが(たとえ、ブロックチェーンに含まれた更新されたブロックチェーントランザクション700のバージョンを送信したプロキシノードでなくても)、トランザクション出力の出力を消費してもよいことを意味する。しかしながら、この懸念は、更新されたブロックチェーントランザクション700を分配する以前にさらなるブロックチェーントランザクション800を生成することによって、更新されたブロックチェーントランザクション700及びさらなるブロックチェーントランザクション800の両方を同時にブロードキャストすることによって、および、必要に応じて、更新されたブロックチェーントランザクション700及びさらなるブロックチェーントランザクション800の両方が同じ(次の)ブロックに含まれることを確実にするための数量(例えば、マイニング料金)を提供することによって、緩和され得る。 Notably, once the updated blockchain transaction 700 is included in the blockchain, the transaction ID of the updated blockchain transaction 700 becomes publicly available. This means that any one of the proxy nodes 230A-230C (even if it is not the proxy node that sent the version of the updated blockchain transaction 700 included in the blockchain) may consume the transaction output. However, this concern can be mitigated by generating an additional blockchain transaction 800 before distributing the updated blockchain transaction 700, by broadcasting both the updated blockchain transaction 700 and the additional blockchain transaction 800 simultaneously, and, if necessary, by providing a quantity (e.g., a mining fee) to ensure that both the updated blockchain transaction 700 and the additional blockchain transaction 800 are included in the same (next) block.

複数の発信元ノード
上記の説明は、単一の発信元ノードだけ-発信元ノード100-を含んでいるが、複数の発信元ノードが、プロキシノード230A-230Cそれぞれと通信する、ということであってよい。都合よく、プロキシノード230A-230Cは、同じ鍵ペアの公開鍵を、そうした複数の発信元ノードそれぞれと交換することができる、ということであってよい。
Although the above description includes only a single source node—source node 100—it may be the case that multiple source nodes communicate with each of proxy nodes 230A-230C. Advantageously, proxy nodes 230A-230C may be able to exchange the public key of the same key pair with each of such multiple source nodes.

前提条件の設定
上述のように、フローチャート400(図4)およびフローチャート600(図6)に示される方法の両方は、発信元ノード100がプロキシノード230A-Cそれぞれと公開鍵を交換していること、および、発信元ノード100がプロキシノード230A-Cそれぞれ1つとそれぞれの秘密の値を共有することを必要とする。
Setting Prerequisites As mentioned above, both the methods illustrated in flowchart 400 (FIG. 4) and flowchart 600 (FIG. 6) require that the originating node 100 has exchanged public keys with each of the proxy nodes 230A-C, and that the originating node 100 shares a respective secret value with each one of the proxy nodes 230A-C.

発信元ノード100およびプロキシノード230A-230Cそれぞれは、ランダムな楕円曲線の公開鍵-秘密鍵ペアを生成することができる。楕円曲線鍵ペアの公開鍵が交換され得る。 The originating node 100 and each of the proxy nodes 230A-230C can generate a random elliptic curve public-private key pair. The public keys of the elliptic curve key pair can be exchanged.

特に、発信元ノード100は、ランダムな秘密鍵xを選択することができ、そして、対応する公開鍵P=x×Gを発行することができる。 In particular, the source node 100 can choose a random private key xA and publish a corresponding public key P A =x A ×G.

同様に、プロキシノード230A-230Cそれぞれは、ランダムな秘密鍵yB,iを選択することができ、そして、対応する公開鍵QB,i=yB,i×Gを発行することができる。 Similarly, each proxy node 230A-230C may select a random private key y B,i and may publish a corresponding public key Q B,i =y B,i ×G.

この情報を使用して、発信元ノード100は、プロキシノード230A-Cそれぞれを用いて共有される秘密の値、cを決定することができる。c=H(x×QB,i)であり、ここで、Hは、例えば、SHA-2ファミリーのメンバといった、暗号ハッシュ関数である。同様に、プロキシノード230A-230Cそれぞれは、発信元ノード100と共有する秘密の値をc=H(P×yB,i)=H(x×QB,i)として同様に決定し得る。等しいこと(equality)は、楕円曲線の準同型性(homomorphic property)のためである。注目すべきことに、発信元ノードと特定のプロキシノードとの間で共有される秘密の値を確立する上述のステップは、楕円曲線ディフィー・ヘルマン(ECDH)鍵交換に対応している。 Using this information, the origin node 100 can determine a secret value, c i , to be shared with each of the proxy nodes 230A-C. c i = H(x A × Q B,i ), where H is a cryptographic hash function, e.g., a member of the SHA-2 family. Similarly, each of the proxy nodes 230A-230C can similarly determine a secret value to share with the origin node 100 as c i = H(P A × y B,i ) = H(x A × Q B,i ). Equality is due to the homomorphic property of elliptic curves. Notably, the above steps for establishing a shared secret value between the origin node and a particular proxy node correspond to an Elliptic Curve Diffie-Hellman (ECDH) key exchange.

発信元ノード100は、また、所与のプロキシノードと共有される秘密の値、および、その発行された公開鍵に基づいて、プロキシノード230A-230Cそれぞれのためのさらなる公開鍵を決定してもよい。特に、そうしたさらなる公開鍵(上述の第2公開鍵に対応している)は、Q'B,i=QB,i+c×Gとして計算され得る。都合よく、第2公開鍵は、発信元ノード100によって生成されるが、対応する秘密鍵SB,i(上述の「第2秘密鍵」に対応している)は、対応するプロキシノードによってだけ決定可能である。特に、プロキシノードは、その秘密鍵yB,iおよびプロキシノードが発信元ノード100と共有する秘密の値に基づいて、第2秘密鍵を決定することができる。ここで、特に、SB,i=(yB,i+c)である。 The origin node 100 may also determine a further public key for each of the proxy nodes 230A-230C based on the secret value shared with the given proxy node and its published public key. In particular, such further public key (corresponding to the second public key described above) may be calculated as Q' B,i = Q B,i + c i × G. Conveniently, the second public key is generated by the origin node 100, but the corresponding private key S B,i (corresponding to the "second private key" described above) can only be determined by the corresponding proxy node. In particular, a proxy node can determine the second private key based on its private key y B,i and the secret value that the proxy node shares with the origin node 100, where S B,i = (y B,i + c i ).

前提条件を確立するための代替物も、また、使用され得る。例えば、古典的なディフィー・ヘルマン(Diffie-Hellman)鍵交換(離散対数問題に基づくもの)は、各プロキシノードとのそれぞれ共有される値を確立するために、プロキシノード230A-230Cそれぞれを用いて発信元ノード100によって実行され得るだろう。公開鍵は、また、いくつかの他の方法で交換することもできる。例えば、公開鍵は、直接的に交換され、または、代替的に、セキュアなチャネルを介して交換され得る。例えば、上述の古典的なディフィー・ヘルマン鍵交換に対してさらに確立され得るように、例えば、セキュアチャネルを介して、といったものである。 Alternatives for establishing preconditions may also be used. For example, a classic Diffie-Hellman key exchange (based on the discrete logarithm problem) could be performed by the originating node 100 with each of the proxy nodes 230A-230C to establish a respective shared value with each proxy node. Public keys may also be exchanged in some other manner. For example, public keys may be exchanged directly, or alternatively, may be exchanged over a secure channel, such as over a secure channel, as may be established in addition to the classic Diffie-Hellman key exchange described above.

上述の実施形態は、本出願の技術的事項(subject matter)を限定するものではなく、むしろ例示するものであり、そして、当業者であれば、添付の請求項によって定義される本発明の範囲から逸脱することなく、多くの代替的な実施形態を設計することができることが留意されるべきである。請求項においては、括弧内に置かれた任意の参照記号は、請求項を限定するものと解釈されてはならない。単語「含む(“comprising”および“comprises”)」、等は、任意の請求項または明細書全体において列挙されたもの以外のエレメントまたはステップの存在を排除するものではない。本明細書において、「含む(“comprises”)」は、「含む、または、構成する(“includes or consists of”)」を意味し、そして、「含んでいる(“comprising”)」は、「含んでいる、または、構成している(“including or consisting of”)」を意味する。エレメントに係る単数形の参照は、そうしたエレメントに係る複数形の参照を排除するものではなく、そして、その逆もまた同様である。本出願の技術的事項は、いくつかの別個のエレメントを含んでいるハードウェアによって、および、適切にプログラムされたコンピュータによって実施することができる。いくつかの手段を列挙している装置の請求項において、これらの手段のいくつかは、一つの同じハードウェアアイテムによって具体化することができる。所定の措置が相互に異なる従属クレームにおいて引用されているという単なる事実は、これらの措置の組み合わせが有利に利用できないことを示すものではない。 It should be noted that the above-described embodiments are illustrative rather than limiting of the subject matter of the present application, and that those skilled in the art will be able to design many alternative embodiments without departing from the scope of the present invention as defined by the appended claims. In the claims, any reference signs placed between parentheses shall not be construed as limiting the claim. The words "comprising" and "comprises", etc., do not exclude the presence of elements or steps other than those listed in any claim or the specification as a whole. As used herein, "comprises" means "includes or consists of" and "comprising" means "including or consisting of." The singular reference of an element does not exclude the plural reference of such element, and vice versa. The subject matter of the present application can be implemented by means of hardware comprising several distinct elements, and by means of a suitably programmed computer. In a device claim enumerating several means, several of these means may be embodied by one and the same item of hardware. The mere fact that certain measures are recited in mutually different dependent claims does not indicate that a combination of these measures cannot be used to advantage.

100 発信元ノード
110 ブロックチェーンネットワーク
220 エレメント
230A、230B、230C プロキシノード
300 コンピューティングデバイス
310 プロセッサ
320 メモリ
330 ネットワークインターフェイス
500 ブロックチェーントランザクション
510 入力
520 第1出力
530 第2出力
700 ブロックチェーントランザクション
710 第2入力
800 ブロックチェーントランザクション
810 入力
820 出力
100 Originating node 110 Blockchain network 220 Elements 230A, 230B, 230C Proxy node 300 Computing device 310 Processor 320 Memory 330 Network interface 500 Blockchain transaction 510 Input 520 First output 530 Second output 700 Blockchain transaction 710 Second input 800 Blockchain transaction 810 Input 820 Output

Claims (20)

コンピュータに実装される方法であって、所与のプロキシノードによって、
コンピュータネットワークを介して、少なくとも1つの発信元ノードによって生成され、かつ、部分的に署名されたトランザクションを受信するステップであり、
前記トランザクションは、少なくとも1つの第1入力と、第1出力および第2出力とを含み、
前記少なくとも1つの第1入力によって、(x+r)単位の計算資源が提供され、
前記第1出力は、出力アドレスに対してx単位を提供し、かつ、前記第2出力は、複数の第2秘密鍵のうち任意の1つを使用して、アンロック可能なn個のマルチ署名アドレスのうち1つに対して(d+r)単位を提供し、
前記第2秘密鍵それぞれは、複数のプロキシノードのうちそれぞれ1つに関連付けられており、
前記複数のプロキシノードは、前記所与のプロキシノードを含み、かつ、
前記第2秘密鍵それぞれは、前記プロキシノードの非対称暗号化鍵ペアの秘密鍵、および、前記プロキシノードが前記発信元ノードと共有する秘密の値に基づいて、前記複数のプロキシノードのうちそれぞれ1つによって導出することができ
前記部分的に署名されたトランザクションに対してさらなる入力が追加され得るが、前記部分的に署名されたトランザクションに対してさらなる出力を追加することはできない、
ステップと、
前記トランザクションをブロードキャストし、かつ、前記トランザクションがブロックチェーンに含まれるようにするために、前記所与のプロキシノードに対して割り当てられるべき計算資源の量である、t単位を選択するステップ、および、前記トランザクションを前記ブロックチェーンに含めるために、第三者に対して割り当てられるべき計算資源の量である、f単位を選択するステップと、
d+f)単位を取る第2入力を前記トランザクションに追加することによって生成される、更新されたトランザクションにデジタル署名するステップと、
前記プロキシノードの前記第2秘密鍵を使用して前記n個のマルチ署名アドレスのうち1つから供給される(d+r)単位を取る入力、および、前記所与のプロキシノードに対してt単位を提供する出力を含む、さらなるトランザクションを生成し、かつ、デジタル署名するステップと、
前記更新されたトランザクションおよび前記さらなるトランザクションを、両方が前記ブロックチェーンの同じブロックに含まれるように時間を合わせてブロードキャストするステップと、
を含む、方法。
1. A computer-implemented method, comprising:
receiving, via a computer network, a transaction generated and partially signed by at least one originating node;
the transaction includes at least one first input, a first output, and a second output;
the at least one first input provides (x+r) units of computational resource;
the first output provides x units to an output address, and the second output provides (d+r) units to one of n multi-signature addresses unlockable using any one of a plurality of second private keys;
each of the second private keys is associated with a respective one of a plurality of proxy nodes;
the plurality of proxy nodes includes the given proxy node; and
each said second private key may be derived by a respective one of said plurality of proxy nodes based on a private key of an asymmetric encryption key pair of said proxy node and a secret value that said proxy node shares with said origin node ;
Further inputs may be added to the partially signed transaction, but further outputs may not be added to the partially signed transaction;
Steps and
selecting t units, which is the amount of computational resources to be allocated to the given proxy node for broadcasting the transaction and having it included in a blockchain; and selecting f units, which is the amount of computational resources to be allocated to a third party for having the transaction included in the blockchain ;
digitally signing an updated transaction generated by appending a second input to the transaction, the second input taking ( d+f) units;
generating and digitally signing a further transaction using the second private key of the proxy node, the transaction including an input taking (d+r) units provided from one of the n multi-signature addresses, and an output providing t units to the given proxy node;
broadcasting the updated transaction and the further transaction in time so that both are included in the same block of the blockchain;
A method comprising:
前記トランザクションを受信するステップは、前記トランザクションの識別子を受信するステップを含む、
請求項1に記載の方法。
receiving the transaction includes receiving an identifier of the transaction;
The method of claim 1.
前記更新されたトランザクションの前記ブロードキャスト、および、前記さらなるトランザクションの前記ブロードキャストは、実質的に同時に発生している、
請求項1または2に記載の方法。
the broadcast of the updated transaction and the broadcast of the further transaction occur substantially simultaneously;
The method according to claim 1 or 2.
前記トランザクションの前記受信した識別子は、前記所与のプロキシノードの公開鍵を使用して暗号化されている、
請求項1乃至3いずれか一項に記載の方法。
the received identifier of the transaction is encrypted using the public key of the given proxy node;
4. The method according to any one of claims 1 to 3.
前記トランザクションを前記ブロックチェーンに含めるために前記第三者に対して割り当てられるべき計算資源の量である前記f単位は、前記コンピュータネットワークを介して受信した指示に基づいて選択される、
請求項1乃至4いずれか一項に記載の方法。
the f units, which are the amount of computational resources to be allocated to the third party for including the transaction in the blockchain, are selected based on instructions received via the computer network;
5. The method according to any one of claims 1 to 4.
前記指示は、前記発信元ノードから受信される、
請求項5に記載の方法。
the indication is received from the source node;
The method of claim 5.
前記トランザクションを前記ブロックチェーンに含めるために前記第三者に対して割り当てられるべき計算資源の量である前記f単位は、前記トランザクションを前記ブロックチェーン内の次のブロックに含まれるようにすることに基づいて選択される、
請求項1乃至6いずれか一項に記載の方法。
the f units, which are the amount of computational resources to be allocated to the third party for including the transaction in the blockchain, are selected based on having the transaction included in a next block in the blockchain;
7. The method according to any one of claims 1 to 6.
前記トランザクションを前記ブロックチェーンに含めるために前記第三者に対して割り当てられるべき計算資源の量である前記f単位、および、前記トランザクションをブロードキャストするために前記所与のプロキシノードに対して割り当てられるべき計算資源の量である前記t単位のうち少なくとも1つは、さらに、前記さらなるトランザクションを前記ブロックチェーン内の次のブロックに含まれるようにすることに基づいて選択される、
請求項1乃至7いずれか一項に記載の方法。
At least one of the f units, which is the amount of computational resources to be allocated to the third party for including the transaction in the blockchain, and the t units, which is the amount of computational resources to be allocated to the given proxy node for broadcasting the transaction, is further selected based on including the further transaction in a next block in the blockchain.
8. The method according to any one of claims 1 to 7.
前記発信元ノードは、公開鍵および秘密鍵を含む、関連する非対称暗号化鍵ペアを有し、かつ、
前記発信元ノードと前記所与のプロキシノードとの間で共有される前記秘密の値は、秘密鍵および前記所与のプロキシノードの前記公開鍵に基づいて前記発信元ノードによって、かつ、秘密鍵および前記発信元ノードの前記公開鍵とに基づいて前記所与のプロキシノードによって、導出することができる、
請求項1乃至8いずれか一項に記載の方法。
the originating node has an associated asymmetric cryptographic key pair including a public key and a private key; and
the secret value shared between the origin node and the given proxy node can be derived by the origin node based on a private key and the public key of the given proxy node, and by the given proxy node based on a private key and the public key of the origin node;
9. The method according to any one of claims 1 to 8.
前記非対称暗号化鍵ペアは、楕円曲線鍵ペアであり、かつ、
前記発信元ノードと特定のプロキシノードとの間で共有される秘密の値を確立することは、楕円曲線ディフィー・ヘルマン(ECDH)鍵交換に対応している、
請求項1乃至9いずれか一項に記載の方法。
the asymmetric encryption key pair is an elliptic curve key pair; and
Establishing a shared secret value between the originating node and a particular proxy node corresponds to an Elliptic Curve Diffie-Hellman (ECDH) key exchange.
10. The method according to any one of claims 1 to 9.
コンピューティングデバイスであって、
プロセッサと、
メモリと、
ネットワークインターフェイスと、
コンピュータ実行可能命令を保管する非一時的コンピュータ読取り可能記憶媒体であり、前記プロセッサによって命令が実行されると、請求項1乃至10いずれか一項に記載の方法を、前記コンピューティングデバイスに実行させる、非一時的コンピュータ読取り可能記憶媒体と、
を含む、コンピューティングデバイス。
1. A computing device comprising:
a processor;
Memory and
A network interface,
a non-transitory computer-readable storage medium storing computer-executable instructions that, when executed by the processor, cause the computing device to perform the method of any one of claims 1 to 10; and
a computing device,
コンピュータ実行可能命令を保管する非一時的コンピュータ読取り可能記憶媒体であり、コンピューティングデバイスのプロセッサによって命令が実行されると、請求項1乃至10いずれか一項に記載の方法を、前記コンピューティングデバイスに実行させる、非一時的コンピュータ読取り可能記憶媒体。 A non-transitory computer-readable storage medium storing computer-executable instructions that, when executed by a processor of a computing device, cause the computing device to perform the method of any one of claims 1 to 10. コンピュータに実装される方法であって、発信元ノードによって、
プロキシノードに関連付けられた第1公開鍵、および、前記発信元ノードと前記プロキシノードとの間で共有される秘密の値に基づいて、複数のプロキシノードそれぞれについて第2公開鍵を決定するステップであり、
前記プロキシノードそれぞれについて対応する第2秘密鍵は、所与のプロキシノードによって、前記発信元ノードと前記所与のプロキシノードとの間で共有される秘密の値、および、前記所与のプロキシノードに関連付けられ、かつ、前記所与のプロキシノードに関連付けられた前記第1公開鍵に基づいて、決定することができる、
ステップと、
前記発信元ノードによって、少なくとも1つの第1入力と、第1出力および第2出力とを含むトランザクションを生成するステップであり、
前記少なくとも1つの第1入力によって、(x+r)単位が提供され、
前記第1出力は、出力アドレスに対してx単位を提供し、かつ、前記第2出力は、前記第2秘密鍵のうち任意の1つを使用して、アンロック可能なn個のマルチ署名アドレスのうち1つに対して(d+r)単位を提供する、
ステップと、
前記トランザクションに電子署名するステップであり、
署名されたトランザクションに対してさらなる入力が追加され得るが、前記署名されたトランザクションに対してさらなる出力を追加することはできない、
ステップと、
前記署名されたトランザクションをネットワーク経由で前記プロキシノードに対して分配するステップと、
を実行する、方法。
1. A computer-implemented method comprising:
determining a second public key for each of a plurality of proxy nodes based on a first public key associated with the proxy node and a secret value shared between the origin node and the proxy node;
a corresponding second private key for each of the proxy nodes may be determined by a given proxy node based on a secret value shared between the origin node and the given proxy node and the first public key associated with the given proxy node;
Steps and
generating, by the source node, a transaction including at least one first input, a first output, and a second output;
the at least one first input provides (x+r) units;
the first output provides x units toward an output address, and the second output provides (d+r) units toward one of n multi-signature addresses that can be unlocked using any one of the second private keys.
Steps and
digitally signing the transaction ;
Additional inputs can be added to a signed transaction, but additional outputs cannot be added to the signed transaction.
Steps and
distributing the signed transaction to the proxy nodes over a network;
How to perform.
前記署名されたトランザクションを分配することは、
前記トランザクションの識別子を送信すること、を含む、
請求項13に記載の方法。
Distributing the signed transaction comprises:
transmitting an identifier of the transaction;
The method of claim 13.
前記署名されたトランザクションの前記識別子を前記プロキシノードに対して分配することは、
前記署名されたトランザクションの前記識別子に係るそれぞれの指示を前記プロキシノードそれぞれに対して送信すること、を含む、
請求項14に記載の方法。
Distributing the identifier of the signed transaction to the proxy nodes includes:
sending a respective instruction to each of the proxy nodes relating to the identifier of the signed transaction;
15. The method of claim 14.
前記プロキシノードのうち所与の1つに対して送信される前記それぞれの指示は、前記プロキシノードの公開鍵を使用して暗号化される、
請求項15に記載の方法。
each instruction sent to a given one of the proxy nodes is encrypted using the public key of the proxy node;
16. The method of claim 15.
前記発信元ノードは、公開鍵および秘密鍵を含む、関連する非対称暗号化鍵ペアを有し、かつ、
前記発信元ノードと前記所与のプロキシノードとの間で共有される前記秘密の値は、秘密鍵および前記所与のプロキシノードの前記公開鍵に基づいて前記発信元ノードによって、かつ、秘密鍵および前記発信元ノードの前記公開鍵とに基づいて前記所与のプロキシノードによって、導出することができる、
請求項13乃至16いずれか一項に記載の方法。
the originating node has an associated asymmetric cryptographic key pair including a public key and a private key; and
the secret value shared between the origin node and the given proxy node can be derived by the origin node based on a private key and the public key of the given proxy node, and by the given proxy node based on a private key and the public key of the origin node;
17. The method of any one of claims 13 to 16.
前記非対称暗号化鍵ペアは、楕円曲線鍵ペアであり、かつ、
前記発信元ノードと特定のプロキシノードとの間で共有される秘密の値を確立することは、楕円曲線ディフィー・ヘルマン(ECDH)鍵交換に対応している、
請求項17に記載の方法。
the asymmetric encryption key pair is an elliptic curve key pair; and
Establishing a shared secret value between the originating node and a particular proxy node corresponds to an Elliptic Curve Diffie-Hellman (ECDH) key exchange.
18. The method of claim 17.
コンピューティングデバイスであって、
プロセッサと、
メモリと、
ネットワークインターフェイスと、
コンピュータ実行可能命令を保管する非一時的コンピュータ読取り可能記憶媒体であり、前記プロセッサによって命令が実行されると、請求項13乃至18いずれか一項に記載の方法を、前記コンピューティングデバイスに実行させる、非一時的コンピュータ読取り可能記憶媒体と、
を含む、コンピューティングデバイス。
1. A computing device comprising:
a processor;
Memory and
A network interface,
a non-transitory computer-readable storage medium storing computer-executable instructions that, when executed by the processor, cause the computing device to perform the method of any one of claims 13 to 18; and
a computing device,
コンピュータ実行可能命令を保管する非一時的コンピュータ読取り可能記憶媒体であり、コンピューティングデバイスのプロセッサによって命令が実行されると、請求項13乃至18いずれか一項に記載の方法を、前記コンピューティングデバイスに実行させる、非一時的コンピュータ読取り可能記憶媒体。 A non-transitory computer-readable storage medium storing computer-executable instructions that, when executed by a processor of a computing device, cause the computing device to perform the method of any one of claims 13 to 18.
JP2024000255A 2017-12-15 2024-01-04 Security-enhanced Origination of Blockchain Transactions Active JP7757437B2 (en)

Applications Claiming Priority (5)

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
JP2020531111A JP7193537B2 (en) 2017-12-15 2018-12-12 Security-enhanced origination of blockchain transactions
PCT/IB2018/059922 WO2019116250A1 (en) 2017-12-15 2018-12-12 Security-enhanced origination of blockchain transactions
JP2022196005A JP7416899B2 (en) 2017-12-15 2022-12-08 Security-enhanced origination of blockchain transactions

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2022196005A Division JP7416899B2 (en) 2017-12-15 2022-12-08 Security-enhanced origination of blockchain transactions

Publications (2)

Publication Number Publication Date
JP2024045173A JP2024045173A (en) 2024-04-02
JP7757437B2 true JP7757437B2 (en) 2025-10-21

Family

ID=61009208

Family Applications (3)

Application Number Title Priority Date Filing Date
JP2020531111A Active JP7193537B2 (en) 2017-12-15 2018-12-12 Security-enhanced origination of blockchain transactions
JP2022196005A Active JP7416899B2 (en) 2017-12-15 2022-12-08 Security-enhanced origination of blockchain transactions
JP2024000255A Active JP7757437B2 (en) 2017-12-15 2024-01-04 Security-enhanced Origination of Blockchain Transactions

Family Applications Before (2)

Application Number Title Priority Date Filing Date
JP2020531111A Active JP7193537B2 (en) 2017-12-15 2018-12-12 Security-enhanced origination of blockchain transactions
JP2022196005A Active JP7416899B2 (en) 2017-12-15 2022-12-08 Security-enhanced origination of blockchain transactions

Country Status (8)

Country Link
US (3) US11297041B2 (en)
EP (2) EP4099617B1 (en)
JP (3) JP7193537B2 (en)
KR (1) KR102637864B1 (en)
CN (2) CN111566992B (en)
GB (1) GB201721021D0 (en)
SG (1) SG11202005568SA (en)
WO (1) WO2019116250A1 (en)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11948132B2 (en) * 2018-02-27 2024-04-02 Fall Guy Llc Cryptographically secure booster packs in a blockchain
GB201805633D0 (en) * 2018-04-05 2018-05-23 Nchain Holdings Ltd Computer implemented method and system
DE102018127529A1 (en) * 2018-11-05 2020-05-07 Infineon Technologies Ag Electronic device and method for signing a message
US11170128B2 (en) * 2019-02-27 2021-11-09 Bank Of America Corporation Information security using blockchains
US11482074B1 (en) * 2019-05-06 2022-10-25 Matthew Dickson Cryptocurrency transactional systems and methods
GB2587028A (en) * 2019-09-16 2021-03-17 Nchain Holdings Ltd Cryptographically linked identities
US12184620B2 (en) 2019-12-04 2024-12-31 Consensys Software Inc. Systems and methods for side-channel-secure blockchain anonymity using I2P
US11522670B2 (en) 2019-12-04 2022-12-06 MaataData, Inc. Pyramid construct with trusted score validation
KR102925508B1 (en) * 2019-12-23 2026-02-11 삼성전자주식회사 Non-transitory computer-readable medium storing program code, decryption device, and communication system including encryption device and decryption device
CN111327426B (en) * 2020-01-21 2021-06-25 腾讯科技(深圳)有限公司 Data sharing method and related device, equipment and system
CN113849851A (en) * 2020-06-28 2021-12-28 中兴通讯股份有限公司 Proxy method, device and computer readable storage medium
CN113269636B (en) * 2020-12-28 2024-07-05 上海零数众合信息科技有限公司 Nested transaction method oriented to block chain
JP7534783B2 (en) * 2021-01-08 2024-08-15 株式会社Mrsホールディングズ Method and program
CN112351119B (en) * 2021-01-11 2021-04-02 北京知帆科技有限公司 Probability-based block chain transaction originating IP address determination method and device
GB2606526A (en) * 2021-05-10 2022-11-16 Nchain Licensing Ag Multi-party blockchain address scheme
CN113507480B (en) * 2021-07-23 2023-10-27 北京众享比特科技有限公司 Network equipment, gateway equipment and system and inter-network data transmission and reporting method
KR102568418B1 (en) * 2021-08-26 2023-08-18 하이파이브랩 주식회사 Electronic authentication system and method supporting multi-signature
CN114531305B (en) * 2022-04-23 2022-07-19 东南大学 Block chain cross-chain supervision method for chain management
WO2025166134A1 (en) * 2024-02-02 2025-08-07 Entrust Corporation Distributable secure transaction object

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012527838A (en) 2009-05-19 2012-11-08 セキュリティー ファースト コーポレイション System and method for securing data in the cloud
US20170178127A1 (en) 2015-12-18 2017-06-22 International Business Machines Corporation Proxy system mediated legacy transactions using multi-tenant transaction database

Family Cites Families (27)

* Cited by examiner, † Cited by third party
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
EP1745477A1 (en) 2004-05-04 2007-01-24 Koninklijke Philips Electronics N.V. Access authorization across processing devices
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
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
US11042878B2 (en) * 2016-01-19 2021-06-22 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
US20170344988A1 (en) * 2016-05-24 2017-11-30 Ubs Ag System and method for facilitating blockchain-based validation
US20170345011A1 (en) * 2016-05-26 2017-11-30 Hitfin, Inc. System and method executed on a blockchain network
CN106100847B (en) * 2016-06-14 2021-10-26 惠众商务顾问(北京)有限公司 Method and device for verifying identity information of asymmetric encryption block chain
US10749684B2 (en) * 2016-09-30 2020-08-18 Entrust, Inc. Methods and apparatus for providing blockchain participant identity binding
US11128603B2 (en) * 2016-09-30 2021-09-21 Nec Corporation Method and system for providing a transaction forwarding service in blockchain implementations
WO2018071433A1 (en) * 2016-10-10 2018-04-19 Escolhalegal, Llc Systems, methods and machine-readable mediums for data management and payment processing
US10277400B1 (en) * 2016-10-20 2019-04-30 Wells Fargo Bank, N.A. Biometric electronic signature tokens
CN110537346B (en) * 2017-03-06 2023-03-24 诺基亚技术有限公司 Safe decentralized domain name system
GB201709760D0 (en) * 2017-06-19 2017-08-02 Nchain Holdings Ltd Computer-Implemented system and method
CN107294729B (en) * 2017-07-25 2020-03-13 中国联合网络通信集团有限公司 Communication method and device between different nodes in block chain
CN107528835B (en) 2017-08-10 2020-10-02 北方工业大学 User privacy protection method based on security intelligent contract k-anonymous incentive mechanism
EP3672471B1 (en) * 2017-08-22 2023-07-19 Medtronic Xomed, Inc. System for evoking a reflex to monitor the nerves of the larynx
GB201715423D0 (en) * 2017-09-22 2017-11-08 Nchain Holdings Ltd Computer-implemented system and method

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012527838A (en) 2009-05-19 2012-11-08 セキュリティー ファースト コーポレイション System and method for securing data in the cloud
US20170178127A1 (en) 2015-12-18 2017-06-22 International Business Machines Corporation Proxy system mediated legacy transactions using multi-tenant transaction database

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
VENKATAKRISHNAN, S., FANTI, G. and VISWANATH, P.,Dandelion: Redesigning the Bitcoin Network for Anonymity,Proc. of the ACM on Measurement and Analysis of Computing Systems,2017年06月,Vol.1 No.1,pp.1-34

Also Published As

Publication number Publication date
CN111566992B (en) 2024-04-16
SG11202005568SA (en) 2020-07-29
US12609915B2 (en) 2026-04-21
WO2019116250A1 (en) 2019-06-20
JP7416899B2 (en) 2024-01-17
CN111566992A (en) 2020-08-21
JP2024045173A (en) 2024-04-02
US20220294769A1 (en) 2022-09-15
CN118509190A (en) 2024-08-16
US11297041B2 (en) 2022-04-05
KR102637864B1 (en) 2024-02-19
EP4099617A1 (en) 2022-12-07
EP4099617B1 (en) 2025-09-10
KR20200099541A (en) 2020-08-24
JP7193537B2 (en) 2022-12-20
US20240291805A1 (en) 2024-08-29
JP2021507566A (en) 2021-02-22
JP2023027206A (en) 2023-03-01
EP3725033A1 (en) 2020-10-21
US11979385B2 (en) 2024-05-07
EP3725033B1 (en) 2022-12-28
US20210160222A1 (en) 2021-05-27
GB201721021D0 (en) 2018-01-31

Similar Documents

Publication Publication Date Title
JP7757437B2 (en) Security-enhanced Origination of Blockchain Transactions
JP7564868B2 (en) System and method for signing messages - Patents.com
KR102889883B1 (en) Computer-implemented method and system for providing access to digital assets
TWI821248B (en) Computer implemented method and system for transferring control of a digital asset
CN110709874B (en) Credential generation and distribution method and system for blockchain network
US8527590B2 (en) Solving mixed integer programs with peer-to-peer applications
JP2022508211A (en) High-performance distributed recording system with hosted origin service
CN112119620B (en) System and method for propagating data packets in a network of nodes
US8589490B2 (en) System, method, and computer program for solving mixed integer programs with peer-to-peer applications
Naresh et al. Blockchain privacy‐preserving smart contract centric multiple multiparty key agreement over large WANETs
HK40082676A (en) Security-enhanced origination of blockchain transactions
HK40029738B (en) Security-enhanced origination of blockchain transactions
HK40029738A (en) Security-enhanced origination of blockchain transactions
Zou et al. BCMIX: A Blockchain-Based Dynamic Self-Reconfigurable Mixnet
Saini et al. P2P Communication System Using Blockchain
Tarmissi et al. A Literature Review of Bitcoin Network Infrastructure, Methodology, and Challenges
Yun et al. The biometric signature delegation scheme to balance the load of digital signing in hybrid P2P networks
Shanmugapriya et al. AN EFFICIENT GROUP MANAGEMENT FRAMEWORK FOR DYNAMIC GROUPS IN PUBLIC CLOUD

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20240131

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20250311

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20250610

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20250909

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20251008

R150 Certificate of patent or registration of utility model

Ref document number: 7757437

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150