JP2022528710A - 分散台帳のためのエイリアスに基づくアドレッシングを実施する、コンピュータにより実施されるシステム及び方法 - Google Patents

分散台帳のためのエイリアスに基づくアドレッシングを実施する、コンピュータにより実施されるシステム及び方法 Download PDF

Info

Publication number
JP2022528710A
JP2022528710A JP2021559650A JP2021559650A JP2022528710A JP 2022528710 A JP2022528710 A JP 2022528710A JP 2021559650 A JP2021559650 A JP 2021559650A JP 2021559650 A JP2021559650 A JP 2021559650A JP 2022528710 A JP2022528710 A JP 2022528710A
Authority
JP
Japan
Prior art keywords
alias
payment
transaction
entity
payee
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2021559650A
Other languages
English (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 JP2022528710A publication Critical patent/JP2022528710A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/36Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
    • G06Q20/367Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes
    • G06Q20/3678Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes e-cash details, e.g. blinded, divisible or detecting double spending
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/36Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
    • G06Q20/367Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/02Payment architectures, schemes or protocols involving a neutral party, e.g. certification authority, notary or trusted third party [TTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/04Payment circuits
    • G06Q20/06Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
    • G06Q20/065Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/04Payment circuits
    • G06Q20/06Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
    • G06Q20/065Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
    • G06Q20/0658Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash e-cash managed locally
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/22Payment schemes or models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/36Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3825Use of electronic signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3829Payment protocols; Details thereof insuring higher security of transaction involving key management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/385Payment protocols; Details thereof using an alias or single-use codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/389Keeping log of transactions for guaranteeing non-repudiation of a transaction
    • 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/088Usage controlling of secret information, e.g. techniques for restricting cryptographic keys to pre-authorized uses, different access levels, validity of crypto-period, different key- or password length, or different strong and weak cryptographic algorithms
    • 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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q2220/00Business processing using cryptography

Landscapes

  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Strategic Management (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Finance (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本開示は、Bitcoinブロックチェーンのような分散台帳に関連付けられたトランザクションのための1つ以上のクライアントのための支払いサービスを実施する方法を提供する。方法は、クライアントにエイリアスを提供するステップと、前記エイリアスをディレクトリ内のネットワークに関連付けるステップと、前記支払いサービスのためのホストコンピューティングリソースの位置を提供するステップと、を含み、前記ホストコンピューティングリソースは、前記エイリアスに関連付けられたクライアントの識別を実現するよう構成される。本開示は、前記支払いサービスに関連付けられた位置において機械可読リソースを生成するステップを含み、前記機械可読リソースは、前記支払いサービスのためのエンドポイント識別子、前記支払いサービスによりサポートされる少なくとも1つの能力に関連付けられたエントリ、及び前記エイリアスに関連付けられたトランザクションを実現するために公開アドレスにアクセスする命令及び/又は仕様、を含む。本開示は、支払サービスに関連付けられたクライアントのための簡易支払いプロトコルを実施する方法も議論する。

Description

本開示は、概して、分散台帳に関連付けられたトランザクションを実現する方法及びシステムに関し、特に、1つ以上のデジタルウォレットのための宛先アドレッシングのための方法に関する。本開示は、特に、限定ではないが、受取人から支払人へ暗号通貨支払いを実現する方法を提供することに適する。
本願明細書では、私たちは、全ての形式の電子的な、コンピュータに基づく、分散型台帳を包含するために用語「ブロックチェーン」を使用する。これらは、総意に基づくブロックチェーン及びトランザクションチェーン技術、許可及び未許可台帳、共有台帳、並びにこれらの変形を含む。他のブロックチェーン実装が提案され開発されているが、ブロックチェーン技術の最も広く知られているアプリケーションは、Bitcoin台帳である。Bitcoinは、ここでは、便宜上及び説明の目的で参照されることがあるが、本開示はBitcoinブロックチェーンと共に使用することに限定されず、代替のブロックチェーン実装及びプロトコルが本開示の範囲に包含されることに留意すべきである。用語「ユーザ」は、ここでは、人間又はプロセッサに基づくリソースを表してよい。用語「Bitcoin」は、本願明細書では、Bitcoinプロトコルから派生した又はその変形である任意のプロトコルを含むと考えられる。
ブロックチェーンは、コンピュータに基づく非集中型の分散型システムとして実装されるピアツーピアの電子台帳であり、ブロックにより構成され、ブロックはまたトランザクションにより構成される。各トランザクションは、ブロックチェーンシステムの中の参加者間でデジタルアセットの制御の移転を符号化するデータ構造であり、少なくとも1つのインプット及び少なくとも1つのアウトプットを含む。各ブロックは前のブロックのハッシュを含み、これらのブロックは一緒に繋げられて、起源以来ブロックチェーンに書き込まれている全てのトランザクションの永久的な変更不可能な記録を生成する。トランザクションは、スクリプトとして知られている小さなプログラムを含む。スクリプトは、それらのインプット及びアウトプットを埋め込まれ、トランザクションのアウトプットがどのように及び誰によりアクセス可能であるかを指定する。Bitcoinプラットフォームでは、これらのスクリプトはスタックに基づくスクリプト言語を用いて記述される。
トランザクションがブロックチェーンに書き込まれるためには、検証されなければならない。ネットワークノード(マイナー)は、無効なトランザクションがネットワークから拒否され、各トランザクションが有効であることを保証するために作業を実行する。ノードにインストールされたソフトウェアクライアントは、未使用トランザクション(unspent transaction, UTXO)のロック及びアンロックスクリプトを実行することにより、UTXOに対してこの検証作業を実行する。ロック及びアンロックスクリプトの実行が真(TRUE)と評価する場合、トランザクションは有効であり、トランザクションはブロックチェーンに書き込まれる。従って、トランザクションがブロックチェーンに書き込まれるためには、(i)トランザクションを受信した第1ノードにより検証され、トランザクションが有効な場合には、ノードが該トランザクションをネットワーク内の他のノードに中継する、(ii)マイナーにより構築された新しいブロックに追加される、(iii)マイニングされる、つまり過去のトランザクションの公開台帳に追加される、ことが必要である。
UTXOとしてブロックチェーンに格納されると、ユーザは、関連する暗号通貨の制御を、別のトランザクション内のインプットに関連付けられた別のアドレスへ移転できる。これは、デジタル暗号通貨ウォレットを用いて度々行われる。このデジタルウォレットは、装置、物理媒体、プログラム、モバイル端末上のアプリケーション(アプリ)、又はインターネットのようなネットワーク上のドメインに関連付けられたリモートにホスティングされたサービスであってよい。デジタルウォレットは、公開及び秘密鍵を格納し、ユーザに関連付けられたアセット等の所有権を追跡し、暗号通貨を受信し又は使用するために使用できる。暗号通貨自体はデジタルウォレットの中に存在しない。Bitcoin及びそれから派生した暗号通貨では、暗号通貨は、公衆に利用可能な台帳、つまりブロックチェーン内で、非中央型に格納及び維持される。知られている暗号通貨ウォレットの種々の形式があり、このようなウォレットのネットワークは、BitcoinSV(BSV)ウォレットのエコシステム(ecosystem)のようなエコシステムと呼ばれる。デジタルウォレットは、簡易支払い検証(Simplified Payment Verification (SPV))ウォレットであってもよい。
現在、ユーザ間、つまりAliceからBobへのBSV、暗号通貨支払いを実現するために、Aliceが、彼女の(秘密及び公開)暗号鍵に関連付けられたデジタルウォレットを有する必要があり、暗号通貨を送信するためのBobの公開アドレス、つまりBobのデジタルウォレットアドレスを知っている必要がある。エンティティに関連付けられた公開アドレス、ここではデジタルウォレットは、通常、アドレス生成プログラムにより自動的に生成される。これらの公開アドレスは、暗号通貨ネットワークにより認識される、トランザクションのために使用される特定のフォーマットの数字列である。例えば、これらは、BSVに基づく暗号通貨ネットワークのためのBitcoinアドレスであってよい。これは、エンティティに関連付けられた非対称秘密/鍵ペアの公開鍵又は公開鍵のハッシュと呼ぶことができる。公開アドレスは公に共有でき、その結果、他のユーザは暗号通貨の支払いをどこへ送信すべきかが分かる。しかしながら、BSVウォレットエコシステム又は他の暗号通貨ウォレットにより認識され使用される公開アドレスは、次のような形式である:
17Dx2iAnGWPJCdqVvRFr45vL9YvT86TDsn
従って、Aliceは、Bobへ暗号通貨を送信するために、このタイプのアドレスを知り又は提供される必要がある。更に、異なるタイプのトランザクションのために、1種類より多くのアドレスが、エンティティ又はウォレットにより使用されることがあり、これらのアドレスは、ブロックチェーンに書き込まれる1つのトランザクションを実現するために1回だけ使用できる。明らかに、これらの公開アドレスは、ユーザフレンドリではなく又はユーザにとって簡単ではなく、或いは覚えやすくない、従って、トランザクションのためのこれらの公開アドレス又は鍵は、トランザクション毎に識別され又は取得され又は導出される必要があり、更に、別のエンティティへの暗号通貨支払いを行いたいエンティティにより特定の期間の間、格納され/キャッシュされる必要がある場合がある。
従って、ブロックチェーンが耐タンパ性及び永久記録のような利点を提供するので、データ及びイベントを記録するためにブロックチェーン技術を使用することが望ましいが、暗号通貨支払いのための宛先アドレスを識別し又は確立する際に困難がある。これは、ウォレットエコシステムにおいて認識されるこれらのアドレスの実施可能なフォーマットが、単純又はユーザフレンドリではないためである。このフォーマットの1つの理由は、デジタル支払いネットワークに渡り適用される公衆IPアドレスのための特定の命名プロトコルと共に、それに合わせたセキュリティである可能性がある。別の理由は、Bitcoinブロックチェーンが、ブロックに構築されるトランザクション(Tx)にデータを各伊能するためである。ブロックチェーンから関連データを識別し、そしてアクセスすることは、トランザクションに関連するエンティティの(秘密鍵にリンクされた)公開アドレスに基づく。本開示は、暗号通貨エコシステムのための改良された宛先識別及び/又は支払いアドレッシングのための態様及び実施形態を提供することにより、これらの技術的懸念を解決する。
本願明細書を通じて、用語「含む」又は「有する」のような変形(comprise、includes、comprises、comprising)は、記載された要素、整数若しくはステップ、又は要素、整数若しくはステップのグループを意味すると理解されるが、任意の他の要素、整数若しくはステップ、又は要素、整数若しくはステップのグループを排除しない。
本開示の態様及び実施形態は、単なる例を用いて及び添付の図面を参照して以下に説明される。
第1の態様による、支払いサービスを含むようディレクトリを更新する方法を示すフロー図である。 支払いサービスの1つ以上のプロセッサにより実施される、第2の態様による支払いサービスを担うホストを識別する方法を示すフロー図である。 支払いクライアントエンティティの1つ以上のプロセッサにより実施される、第2の態様による支払いサービスを担うホストを識別する方法を示すフロー図である。 第2の態様による、支払いサービスの1つ以上のプロセッサにより実施される、エイリアスに関連付けられた公開アドレスを識別する方法を示すフロー図である。 第2の態様による、支払いクライアントエンティティの1つ以上のプロセッサにより実施される、エイリアスに関連付けられた公開アドレスを識別する方法を示すフロー図である。 公開鍵基盤シーケンスを示すフロー図である。 第3の態様による、支払いサービスの1つ以上のプロセッサにより実施される、宛先アドレッシングの方法を示すフロー図である。 第3の態様による、支払いクライアントエンティティの1つ以上のプロセッサにより実施される、宛先アドレッシングの方法を示すフロー図である。 支払先エンドポイント解決シーケンスを示すフロー図である。 支払いサービスの1つ以上のプロセッサにより実施される、第2及び/又は第3の態様の支払いサービスを用いて、第4の態様による簡易支払いプロトコル又はメカニズムを実施する方法を示すフロー図である。 支払いクライアントエンティティの1つ以上のプロセッサにより実施される、第2及び/又は第3の態様の支払いサービスを用いて、第4の態様による簡易支払いプロトコル又はメカニズムを実施する方法を示すフロー図である。 種々の実施形態が実装できるコンピューティング環境を示す概略図である。
本開示の第1の態様によると、分散台帳に関連付けられたトランザクションのための1つ以上のクライアントのための支払いサービスを実施する、コンピュータにより実施される方法が提供される。方法は、所与のクライアントのためのエイリアスを提供するステップを含み、エイリアスは所与のクライアントに固有であり、エイリアスはネットワーク識別子を含み又はそれに関連する。方法は、次に、エイリアスをディレクトリ内のネットワーク識別子に関連付けるステップを含む。この関連付けは、ディレクトリ内のネットワーク識別子に基づきサービスレコードを生成するステップにより達成される。サービスレコードは、次に、支払いサービスがネットワーク識別子に関連付けられたネットワーク又はドメイン、及び支払いサービスを担うホストコンピューティングリソースの位置により提供されることを示すために更新される。ここで、ホストコンピューティングリソースは、エイリアスに関連するトランザクションに関する要求の受信に応答して、エイリアスに関連付けられたクライアントの識別を実現するよう構成される。
幾つかの実施形態では、上述の1つ以上のクライアントは、コンピューティングリソース、コンピューティングリソースに関連付けられたユーザ端末又はアプリケーションのような1つ以上のエンティティに関連する。幾つかの実施形態では、各クライアントは、デジタルウォレットであってよく、又はデジタルウォレットに関連付けられたエンティティ、例えばインストールされたデジタルウォレットのためのデジタルウォレット若しくはアプリケーションを有するユーザ端末であってよい。本開示の態様及び実施形態はデジタルウォレットに関連するが、理解されるべきことに、デジタルウォレット又はそのための別個のアプリケーションを有しないが、デジタルウォレットとして又はそれと共に又はそれと同様に動作する機能を提供するよう構成されるクライアントエンティティも、本開示の範囲内にある。単に説明を容易にするために、以下の説明は、デジタルウォレット(デジタルウォレットに関連付けられたクライアントエンティティ)に関連するが、本開示は、デジタルウォレットを有するクライアントエンティティのみに限定されない。
第1の態様において上述した1つ以上のデジタルウォレットは、時に複数のBitcoinBSV暗号通貨ウォレットのウォレットエコシステムのようなデジタルウォレットのエコシステムと呼ばれるネットワーク内の複数のデジタルウォレットのうちの1つである。他の実施形態では、ウォレットは、ウォレットのネットワークの部分でなくてよく、単にドメインに関連付けられた別個の独立したエンティティであってよい。いずれの場合にも、ネットワーク識別子は、ネットワークのドメイン名、例えばnchain.comであってよく又はそれを含んでよい。幾つかの実施形態では、ディレクトリは、DNS(Domain naming system)のような公開型、つまりアクセス可能及び/又は非中央型システムであってよく、グローバルディレクトリと呼ばれてよい。ホストコンピューティングリソースの位置は、ネットワークの支払いサービスの提供を担うサーバの位置であってよい。例えば、これは、エンドポイントURI(universal resource identifier)であってよく、ウェブサーバのURL(universal resource location)を含んでよく、そこから支払いサービスが他のエンティティによりアクセスされてよい。例えば、他のエンティティは、ネットワーク識別子、1つ以上の支払いサーバ若しくはクライアントエンティティ、又は支払いアプリケーションに関連付けられたネットワークの部分であってよい又はそうでなくてよいデジタルウォレットであってよい。
有利なことに、第1の態様は、1つ以上のデジタルウォレットのドメインオーナが、ワンタイムアクティビティとして、つまりサービスレコード(SRVレコード)の生成により、デジタルウォレットに関連付けられた要求側(支払人、payer)エンティティから宛先(受取人、payee)エンティティへの支払いトランザクションのようなトランザクションを実現するための1つ以上の機能を管理する支払いサービスを使用することを可能にする。サービスのエンドポイントを識別するためのDNS内のサービスレコードはよく知られているが、このようなレコードは、ブロックチェーンに関連付けられた支払いトランザクションを可能にするために使用され又は構成されていない。
有利なことに、上述の態様は、受取人エンティティ又は受取人に関連付けられたデジタルウォレットをアドレス指定するために、支払いトランザクションに関する要求が、エイリアスを用いて生成されることを可能にする。従って、要求側(支払人エンティティ)は、分散台帳のための暗号通貨トランザクションを成し遂げる又は構成するために、デジタルウォレットのための複雑な公開アドレス、つまり17Dx2iAnGWPJCdqVvRFr45vL9YvT86TDsnを知り、取得し又は保存する/キャッシュする必要がない。その結果、暗号通貨支払いがこのウォレットに対して行うことができる。ネットワークの又はそれに関連する、受取人にとって記憶しやすいエイリアス、例えば受取人の電子メールアドレス(name@domain.com)に関連し得るものが、支払いトランザクションを要求するために要求側エンティティにより知られ又は送信される必要があるだけである。エンティティを識別する他のフォーマットも、エイリアスとして使用されてよい。この種のエイリアスアドレッシングは、支払先のアドレスを解決するための遙かに簡単でユーザフレンドリな技術を提供する。幾つかの実施形態では、ネットワーク識別子がエイリアスの中で明示されない場合でも、エイリアスがネットワーク識別子に関連付けられる限り、つまりディレクトリ又はデータベースの検索により、これは、エイリアスに関連付けられた支払いサービスを識別するのに十分である。
幾つかの実施形態では、方法は、エイリアスに関連付けられたトランザクションに関する要求側エンティティからの要求に応答して、エイリアスに基づきディレクトリの検索を実行するステップを含む。トランザクションに関する要求は、分散台帳、つまりブロックチェーンにポストされる(post)べきトランザクションを生成し又は構成するために必要な情報に対する要求を表す。従って、この要求は、ブロックチェーントランザクション自体を生成せず、単に将来のトランザクションに対する又はそれに関する単なる要求、つまり、将来にブロックチェーンにポストされるべきトランザクションを生成するための情報に対するオフブロック要求である。これは、ブロックチェーンのための将来のトランザクションについての要求であると理解される。参照を容易にするために、以下の説明は、このステップを説明するためにトランザクションについての要求を議論する。この要求はブロックチェーンのための将来のトランザクションに関連することが理解される。方法は、ネットワーク識別子に関連するディレクトリ内の支払いサービスについてのサービスレコードを識別するステップと、支払いサービスのためのホストコンピューティングリソースの位置を返すステップと、を含む。返された位置に基づき、エイリアスに関連付けられたデジタルウォレットに関連付けられた公開アドレスが決定できる。これは、幾つかの実施形態では、分散台帳、つまりBitcoinブロックチェーンのための将来のトランザクションに関連付けられてよい公開アドレスに対応する。幾つかの実施形態では、ホストコンピューティングリソースの位置を返すステップは、ターゲット及びポートペアを返すステップを含む。ここで、ターゲットは、ホストコンピューティングリソースの識別子を含み、ポートは、支払いサービスにより使用されるインターネットプロトコル通信ポートの識別子を含む。
有利なことに、これは、受取人エンティティのエイリアスだけに基づき、支払いサービスを提供することを担うホストの発見を可能にし、受取人エンティティへの支払いトランザクションを実現する。それにより、デジタル台帳のための支払いトランザクションの支払いアドレッシングを有意に簡略化する。ホストが特定されると、デジタルウォレットはネットワーク又はネットワーク識別子に関連付けられ、それにより支払いサービスに関連付けられるので、受取人エンティティのクライアント又はデジタルウォレットに関連付けられた公開アドレスが、決定できる。ここで言及される用語「公開アドレス」は、デジタルウォレット又はクライアントのアイデンティティ又はアドレスに関連し、幾つかの実施形態では、分散台帳のための1つ以上の(将来の)トランザクションに関連する。幾つかの実施形態では、公開アドレスは、クライアント又はデジタルウォレットの支払いアドレス又は宛先アドレスであってよい。他の実施形態では、公開アドレスは、支払い又は宛先アドレスを導出するために使用されてよい。この公開アドレスは、同じであってよく、又はデジタルウォレットに関連付けられたトランザクション毎に異なってよい。
幾つかの実施形態では、本開示の第1の態様による方法は、支払いクライアントエンティティにおいて実施される方法を含む。これは、暗号通貨のためのデジタルウォレットに関連付けられた要求側エンティティであってよい。この場合、支払いクライアントエンティティにより実施される方法は、要求側エンティティから、トランザクションについての要求を送信するステップを含み、要求はエイリアスに関連付けられる。方法は、支払いサービスに関連付けられたホストコンピューティングリソースの位置を取得するステップを含み、位置は、ディレクトリの検索において識別されるネットワーク識別子に関連するサービスレコードに基づく。方法は、次に、エイリアスに関連付けられたデジタルウォレットの公開アドレスを受信するステップを含み、公開アドレスは、以後、要求されたトランザクションにおいて使用される。
幾つかの実施形態では、ホストコンピューティングリソースは、1つ以上のデジタルウォレットに関連付けられたネットワーク識別子と異なる支払いネットワークに関連付けられ、ネットワーク識別子に関連付けられたドメインに登録された複数のエンティティのための支払いサービスは、支払いネットワークに関連付けられたドメインに委任される(delegated)。
有利なことに、これは、ネットワークが、エイリアスに基づく支払いを、完全に異なるドメインに関連付けられた第三者ネットワークにより管理され及び提供されるよう委任することを可能にする。
代替の実施形態では、ホストコンピューティングリソースは、ネットワーク識別子のドメインと同じドメインに関連付けられる。代替として、ドメインオーナは、ネットワーク内で支払いサービスを実施することを選択してよい。この場合、サービスレコードの中のエンドポイント識別子は、(デジタルウォレットの)ネットワークと同じドメインに設定され又はそれを参照するよう更新される。有利なことに、エイリアスに基づく支払いサービスを担うホスト又はエンドポイントを示すためにサービスレコードを使用することは、デジタルウォレット又はデジタルウォレットのネットワークについて支払いサービスプロバイダを追加又は変更することを直接的にする。サービスレコードが更新されると、要求又はルックアップ検索は、新しいホスト位置がサービスレコード内で示されれば、シームレスに継続できる。
第2の態様によると、本開示は、分散台帳を使用するトランザクションのための、1つ以上のデジタルウォレットのために支払いサービスを実施する、コンピュータにより実施される方法に関し、当該方法は、支払いサービスに関連付けられた機械可読リソースを生成するステップであって、機械可読リソースは、1つ以上のデジタルウォレット(又はネットワーク)内のデジタルウォレット毎に、支払いサービスを実施することを担うホストコンピューティングリソースのエンドポイント識別子を含み、各デジタルウォレットはエイリアスに関連付けられる、ステップを含む。機械可読リソースは、支払いサービスによりサポートされる複数の能力の中の少なくとも1つの能力に関連付けられたエントリを更に含む。機械可読リソースは、エイリアスに関連付けられたトランザクションを実現するための公開アドレス又は位置又は1つ以上のリソースにアクセスするための命令及び/又は仕様を更に含む。方法は、支払いサービスのためのホストコンピューティングリソースに関連付けられた予測可能な又は知られている位置にある機械可読リソースを提供するステップを更に含む。
幾つかの実施形態では、各能力は、名称及び値ペアとして、機械可読リソースの中で指定される。幾つかの実施形態では、能力は、一部又は全部のトランザクションについての受取人エンティティ又は支払人エンティティ検証、トランザクションの複数のデジタル署名のための機能、受取人エンティティ又は支払先認可及び/又は電子メールに基づく支払いトランザクションを含み、その結果支払いクライアントは電子メール等を介してトランザクションスクリプトを取得してよい。
有利なことに、第2の態様は、1つ以上のデジタルウォレットのために実施される所与の支払いサービスに関連付けられた1つ以上の能力又は機能を発見する手段を提供する。第1の態様と同様に、要求側エンティティにより要求されるのは、支払人又は宛先エンティティのエイリアス、つまり受取人のデジタルウォレットに関連付けられたエイリアスだけである。従って、ユーザフレンドリな簡略化されたアドレッシングメカニズムを提供する。この利点は、デジタルウォレットのために実施される支払いサービスにより提供される機能又は能力を指定する公衆アクセス可能な機械可読リソースの提供により保証される。受取人エンティティのエイリアスのみの知識に基づき支払いサービスの能力を発見するこの第2の態様は、デジタルウォレットに関連付けられた支払人エンティティが、移転の要求が行われる前に、エイリアスに対する支払いを行うとき、トランザクションのための能力又は機能がサポートされることを保証したいと望む場合に、特に有用である。特定の機能は、分散台帳に関連付けられた暗号通貨支払いトランザクションを実現するため、例えば支払いサービスに関連付けられた少なくとも1つのエンドポイント識別子を特定するため、又はPKI(public key infrastructure)等に基づくセキュア通信メカニズムを実施するための鍵と考えられる。これらの機能は、多くの場合、機械可読リソースの中の能力エントリと別個に指定される。有利なことに、能力エントリは、利用可能な全部のサポートする機能の仕様、つまりレコードの提供を可能にする。例えば、検証の特定のタイプ、指定されたタイプのトランザクション又はネットワークのための追加セキュリティ、暗号化のレベル、サポートされるPKIアーキテクチャのタイプ、アドレッシングのレベル、等を構成するための詳細事項は、能力オブジェクトの中で提供されてよい。従って、要求側エンティティは、エイリアスに関連付けられた要求される能力が先ず要求側エンティティのリソースと互換性があること、次にエイリアスの支払いサービスに関連付けられた機械可読リソースにアクセスすることによりエイリアスを有する任意のトランザクションに提供されることを、発見し保証できる。
幾つかの実施形態では、第2の態様の方法は、第1の態様及び上述の関連する実施形態による支払いサービスに関連付けられたほすとの位置を決定するステップを含む。従って、機械可読リソース内のエンドポイント識別子は、次に、決定したホスト位置に関連して取得される。
有利なことに、本実施形態は、先ず、ディレクトリ、つまりサービスレコードのDNSのルックアップに基づきホストの発見を可能にし、続いて、支払いサービスによりサポートされる1つ以上の機能の能力発見を可能にする。従って、エイリアスに関連付けられた支払いトランザクションについての要求を受信すると、エイリアス内のネットワーク識別子に一致するサービスレコードが識別され、これは、ホストの位置を提供し、またエンドポイント識別子を取得可能にする。第2の態様による能力発見は、次に、機械可読リソースないのエンドポイント識別子に基づき実行される。
ホスト発見のための第1の態様による方法は、第2の態様に従い機械可読リソースに基づく能力発見が実行される前に、実行され得る多くのホスト発見方法のうちのほんの1つであることが理解される。従って、第1の態様は、第2の態様と独立して実行可能であり、逆も同様である。好適な実装は、上述のホスト及び能力発見の両方を含んでよいが、この組合せは、エイリアスに関連付けられた支払いサービスの能力を確立するために必須ではない。ホスト発見の他の方法も、ホスト位置を識別するための第1の態様におけるサービスレコードの使用に加えて、第2の態様と互換性があってよい。例えば、ホスト位置の指定されたネットワークパスにおけるテキストに基づくレコードが、第1の態様で議論したサービスレコードに基づく実装の代わりに使用されてよい。更に、エンドポイント識別子を解決するホスト発見は、幾つかの実施形態では例えばホストの位置が容易に発見可能である又は公開されている、又は1つ以上のデジタルウォレットと同じドメインに関連付けられている場合に、第2の態様では一緒にスキップされてよい。
従って、以下の説明される実施形態は、第2の態様のみに基づくか、又は上述の第1及び第2の態様の組合せに基づくと理解される。
幾つかの実施形態では、エイリアスに関連付けられたトランザクションについての要求側エンティティからの要求を受信することに応答して、方法は、ネットワーク識別子に基づき、エイリアスに関連付けられた支払いサービスを識別するステップを更に含む。次に、支払いサービスを識別することに基づき、方法は、予測可能な又は知られているネットワーク位置から機械可読リソースにアクセスするステップを含む。要求されたトランザクションのために必要な1つ以上の能力が機械可読リソース内に存在するかどうかを決定すると、方法は、支払いサービスのためのホストコンピューティングリソースのエンドポイント識別子を返すステップと、これに基づき、機械可読リソース内の命令及び/又は仕様のうちの1つ以上に従い、エイリアスに関連付けられた公開アドレスを取得するステップと、を含む。
有利なことに、上述の実施形態は、エイリアスのみを知り、受取人エンティティに連絡sルための更なる情報を知らずに、エイリアスに関連付けられた公開アドレスを取得することを可能にする。更に、機械可読リソース内の1つ以上の能力が要求側エンティティ又はトランザクションの1つ以上の要件に従うことを決定するために、公開アドレスは、支払いサービスに関連付けられた機械可読リソースからエンドポイント識別子に基づき取得される。これは、それによって、エイリアスだけを有するエンティティの公開アドレスを取得しそれにより開始するためのシームレスな、簡略化された、ユーザフレンドリな技術を提供する。
上述の実施形態は、要求側クライアント支払いエンティティ、つまり支払いの要求を生成する支払人エンティティにおいて実施されてもよい。この場合、方法は、トランザクションについての要求を要求側エンティティから送信するステップを含み、要求はエイリアスに関連付けられる。方法は、支払いサービスに関連付けられた位置から機械可読リソースにアクセスするステップを含み、支払いサービスはエイリアス内のネットワーク識別子に基づき識別され、機械可読リソースは、第2の態様について上述したように生成される。次に、要求されたトランザクションのために必要な1つ以上の能力が機械可読リソース内に存在するかどうかを識別することに基づき、要求側エンティティは、エイリアスに関連付けられた支払いサービスのためにホストコンピューティングリソースのエンドポイント識別子を受信する。方法は、機械可読リソース内の命令及び/又は仕様のうちの1つ以上を用いて、エイリアスに関連付けられた公開アドレスを取得するステップを含む。
幾つかの実施形態では、各デジタルウォレットは、ネットワーク内の支払いサービスのために登録されたユーザ又はエンティティに関連付けられ、各デジタルウォレットは、分散台帳上のトランザクションのための非対称暗号鍵ペアの公開鍵及び秘密鍵に関連付けられた暗号通貨ウォレットである」。幾つかの実施形態では、公開アドレスを取得するステップは、エイリアスに関連付けられたデジタルウォレットの公開鍵を取得するステップを含む。幾つかの実施形態では、エイリアスに関連付けられた公開アドレスは、エイリアスに関連付けられたデジタルウォレットの公開鍵の暗号ハッシュに基づく。関連する実施形態では、デジタルウォレットの公開鍵は、楕円曲線デジタル署名アルゴリズム(elliptic curve digital signature algorithm (ECDSA))公開鍵であり、公開鍵は、分散台帳に前に格納された又はそれにポストされた任意のトランザクションの部分ではない。
幾つかの実施形態では、能力発見の第2の態様に関連して、機械可読リソース内の命令及び/又は仕様はエイリアスに関連付けられた公開鍵を取得する後続のステップを含む。これらのステップは、PKI(public key infrastructure)エンドポイント識別子について、機械可読リソースからPKI要求テンプレートを取得するステップを含む。次に、完全なPKI要求を生成するために、エイリアス及びネットワーク識別子は、テンプレートに含まれる。次に、エイリアスに関連付けられた公開鍵を取得するために、完全なPKI要求に基づき、HTTP GET要求が送信される。
理解されるべきことに、これらの命令は、支払いサービスに関連付けられた機械可読リソース内に存在するが、命令は、支払いクライアントエンティティに関連付けられた1つ以上のコンピューティングリソース又はアプリケーションにより実行されることを目的としてよい。これらの命令を実行する1つ以上のコンピューティングリソースは、支払いクライアントエンティティのデジタルウォレットにインストールされた又はそれに関連付けられた支払いクライアントアプリケーションに関連付けられてよい。
有利なことに、支払いサービスに関連付けられた機械可読文書(document、ドキュメント)の提供は、知られているエイリアスを利用して、受取人エンティティの公開鍵を取得するための、支払いサービスに対する、指定されたフォーマットの適切な要求を生成することを可能にする。該公開鍵は、分散台帳のためのトランザクションに署名するために必要とされる。
幾つかの実施形態では、機械可読リソースの知られている又は予測可能な位置は、エンドポイント識別子、支払いサービスにより使用されるインターネットプロトコル通信ポート、及び/又は公衆アクセス可能なよく知られたドメインレポジトリに含まれる支払いサービスの構成仕様、のうちの少なくとも1つに基づく。有利なことに、以上は、機械可読リソースが、ネットワーク識別子に関連付けられた支払いサービス又はドメイン名のいずれかに基づき容易に位置を特定することを可能にする。
幾つかの実施形態では、機械可読リソースは、JSON(Java Script Object Notation)フォーマットを用いて生成される。これは、JSONが、第一に機械可読言語であるが、更に人間にとって読み書きが容易である軽量なデータ交換フォーマットであるため、有利である。それは、機械にとってパースし及び生成することが容易であり、それにより、機械可読リソースを生成するのに利用的なデータ交換言語である。
第3の態様では、本開示は、支払先アドレッシングのための技術を提供する。この第3の態様は、機械可読リソースが支払先をアドレス指定することを解決するために、つまり支払いを送信するために使用されるので、能力発見の第2の態様に関連する。任意で、第3の態様は、ホスト発見の第1の態様も含んでよいが、これは、ホスト発見の他の手段も本開示の第3の態様と組み合わせて使用されてよいので、品質的ではない。
本開示の第3の態様は、上述の第2の態様におけるエイリアスに関連付けられた公開アドレスを取得するステップが、エイリアスに関連付けられた受取人エンティティの支払先を取得するステップを更に含み、支払先は、支払人エンティティからエイリアスへの暗号通貨支払いを行うためのトランザクションを構成する際に使用される、ステップを含む、方法を提供する。第3の態様に従いトランザクションを構成するステップは、支払いサービスを識別することに基づき、機械可読リソースにアクセスするステップを含む。この後に、機械可読ドキュメント内の1つ以上の命令及び/又は仕様に基づき、支払先エンドポイント識別子を返すステップが続く。支払人エンティティからのトランザクションに関する支払いの詳細が次に取得される。支払いの詳細は、少なくとも、受取人エンティティのデジタルウォレットに関連付けられたエイリアス、及び受取人に支払われるべき暗号通貨額を含む。支払いの詳細を支払人エンティティの暗号鍵に関連付けるデジタル署名が次に取得される。エイリアスに関連付けられた支払先エンドポイント識別子に関連付けられたアウトプットスクリプトは、次に、支払人エンティティに提供するために生成される。アウトプットスクリプトは、分散台帳のための支払いトランザクションの中に埋め込まれるために提供される。
有利なことに、第3の態様はエイリアスに関連付けられたデジタルウォレットのアウトプットスクリプトの受信が得られることを可能にし、それにより、デジタル台帳に包含するのに適切なフォーマットのトランザクションの構成を自動的に可能にする。これは、単に受取人のエイリアスの知識に基づき、残りの詳細は、支払いサービスを担うホストに関連付けられた機械可読リソースから確立される。更に、エイリアスの知識と共にトランザクションに含まれるべき準備のできたアウトプットスクリプトの提供を可能にすることは、それだけで、デジタルウォレットのための支払いアドレッシングの技術に基づき、全体的に簡略化された、シームレスな、効率的な、自動的な、実装の容易な、ユーザフレンドリなエイリアスを提供する。
第3の態様の方法は、トランザクションを要求する支払いクライアントエンティティに関連付けられたデジタルウォレット又はアプリケーション又はプロセッサのような、支払いクライアントエンティティにおいて又はそれにより実装されてもよい。この場合、トランザクションを構成する方法は、トランザクションについての要求を支払人エンティティから送信するステップを含み、要求はエイリアスに関連付けられる。方法は、支払いサービスに関連付けられた位置から機械可読リソースにアクセスするステップと、機械可読リソース内の1つ以上の命令及び/又は仕様に基づき支払先エンドポイント識別子を受信するステップと、を含む。支払人エンティティは、次に、トランザクションに関する支払いの詳細を提供する。支払いの詳細は、受取人エンティティのデジタルウォレットに関連付けられたエイリアス、及び受取人に支払われるべき暗号通貨額を含む。方法は、支払いの詳細を暗号鍵に関連付けるデジタル署名を提供するステップと、エイリアスに関連付けられた支払先エンドポイント識別子に関連付けられたアウトプットスクリプトを受信するステップと、を含む。アウトプットスクリプトは、次に、分散台帳のための支払いトランザクションの中に埋め込まれる。
幾つかの実施形態では、第3の態様の方法は、支払先エンドポイント識別子の機械可読リソースから支払先要求テンプレートを取得するステップを含む。エイリアス及びネットワーク識別子は、次に、完全な支払先要求を生成するためにテンプレートに含まれる。HTTP POST要求は、次に、エイリアスに関連付けられた支払先エンドポイント識別子を取得するために、完全な支払先要求に基づき生成される。
理解されるべきことに、これらの命令は、支払いサービスに関連付けられた機械可読リソース内に存在するが、命令は、支払いクライアントエンティティに関連付けられた1つ以上のコンピューティングリソース又はアプリケーションにより実行されることも目的としてよい。これらの命令を実行する1つ以上のコンピューティングリソースは、支払いクライアントエンティティに関連付けられたデジタルウォレットと共にインストールされた又はそれに関連付けられた支払いクライアントアプリケーションに関連付けられてよい。
有利なことに、支払いサービスに関連付けられた機械可読文書(document、ドキュメント)の提供は、知られているエイリアスを利用して、支払先エンドポイント識別子又はURIを取得するための、支払いサービスに対する、指定されたフォーマットの要求を生成することを可能にする。その結果、これは、分散台帳のためのトランザクションの構成において使用されてよい。
幾つかの実施形態では、エイリアス及び支払人エンティティの公開アドレスは、それぞれ、受取人エンティティ及び支払人エンティティに関連付けられたそれぞれのデジタルウォレットの公開鍵を含み、デジタル署名が、トランザクションを要求する支払人エンティティのアイデンティティを検証するために使用される。幾つかの関連する実施形態では、受取人エンティティ及び支払人エンティティの両者に関連付けられたデジタル署名は、トランザクションが分散台帳に格納される又はポストされる前に、それぞれのエンティティの検証のために要求される。
第4の態様では、本開示は、支払いクライアント、つまり支払人エンティティが、暗号通貨支払いを別の支払いクライアント、つまり受取人エンティティに対して行うことを望むときの処理又はプロトコルを提供する。この態様によるプロトコルは、以後、簡易支払いプロトコル(simplified payment protocol)と呼ばれる。第4の態様は、第2の態様の機械可読リソースが簡易支払いプロトコルを実施するために使用されるので、能力発見の第2の態様に関連する。幾つかの実施形態では、第4の態様は、支払先アドレッシングの第3の態様に関連し、支払先アドレッシングを実施する、特にこのようなアドレッシングのための処理を簡略化する改良された技術を提供する。
第4の態様は、Bitcoinブロックチェーンのような分散台帳に関連付けられたトランザクションのための1つ以上のクライアントのための支払いサービスを実施する、コンピュータにより実施される方法に関する。第1の実装では、方法は、支払いサービスに関連付けられた1つ以上のプロセッサにより実行される。方法は、支払いサービスに関連付けられた機械可読リソースを更新するステップを含む。幾つかの実施形態におけるこの機械可読リソースは、第3の態様に関して上述した通りであり、支払いサービスに関連付けられた予測可能な又はよく知られた位置において提供され又はそこからアクセスされる。
第4の態様では、機械可読リソースを更新するステップは、支払いサービスによりサポートされる少なくとも1つの更なる能力を追加するステップを含み、少なくとも1つの更なる能力は、エイリアスに関連付けられた1つ以上のクライアントの中の所与のクライアントのために簡易支払いプロトコルを実施することを含む。
第4の態様は、幾つかの実施形態ではそれぞれがデジタルウォレットに関連付けられてよい1つ以上のクライアントのために実施される所与の支払いサービスに関連付けられた1つ以上の能力又は機能を発見する上述の第2の態様に関連する全部の利点を提供する。幾つかの実施形態では、支払人クライアント及び/又は受取人クライアントに関連付けられたデジタルウォレットは簡易支払い検証(simplified payment verification (SPV))ウォレットである。第2の態様と同様に、要求側エンティティ、つまり支払人エンティティにより要求されるのは、受取人のデジタルウォレットに関連付けられたエイリアスだけである。従って、ユーザフレンドリな簡略化されたアドレッシングメカニズムを提供し、このようなクライアントによるトランザクションに関わりたいと望む任意のエンティティにより容易に派遣できる方法で、支払人エンティティに関連付けられたクライアントにより利用可能な又はサポートされる全部のサポート機能又は能力のレコードを提供する。
第4の態様の第1の実装により提供される更なる利点は、支払いサービスによりサポートされるべき1つ以上の新しい能力の提供又は追加を容易にすることである。支払いサービスに関連付けられた予測可能な又はよく知られた公衆アクセス可能な位置において提供される機械可読リソースを更新することにより、追加される新しい能力が自動的に展開され又は支払いサービスのクライアントに適用可能になり、要求側エンティティは、機械可読リソースがアクセスされるとき、このような新しい能力がサポートされることを確立することもできる。従って、新しい又は更新された能力は、直接発見され、支払いサービスに関連付けられた1つ以上の支払いクライアントによる将来のトランザクションに関連する1つ以上の要求を処理するために適用できる。
幾つかの実施形態では、上述の追加された又は更なる能力に加えて、更なる能力、又は実際には元の生成された能力が真(オン、又は1)又は偽(オフ、又は0)かを指定するための指示があってよい。このトグル機能は、支払いサービスが機械可読リソース内で指定された能力のうちの1つ以上を、特定のタイプのトランザクションについて実施すること又はしないこと、又は特定の期間の間、この実施値を相応して設定することを可能にするので、有利である。従って、支払人エンティティのような任意の支払いエンティティは、特定の能力が要求に関連するタイプのトランザクションについて、又は要求が生成されている時間において、実際に実施されるかどうかをチェックできる。例えば、要求側支払いクライアント、つまりこの場合には支払人エンティティが、このような能力に関するメッセージ又は命令をサポートしない又は応答できないクライアントである場合、要求は取り下げられ又は単に送信されなくてよい。
第4の態様の第1の実装では、簡易支払いプロトコルの実施時関連する少なくとも1つの新しい能力が、支払いサービスのために追加される。幾つかの実施形態では、支払いサービスのための機械可読リソース内の命令は、支払いサービスに関連付けられた受取人エンティティから支払人エンティティへの支払いトランザクションテンプレートの提供に基づく。ここで、テンプレートは、アウトプットスクリプトを含む、。幾つかの実施形態では、テンプレートは、要求される支払いの詳細(必要なBitcoin又はデジタルアセットの量)を含んでよく、アウトプットのリスト(JSONドキュメントからのテンプレートに基づき支払いを行うためのエンドポイントURI)、期限日、及び支払いを行うために必要な他のメタデータを含む。
第4の態様の第2の実装は、また、支払いサービスに関連付けられた1つ以上のプロセッサにより実行され、第1の態様で追加された簡易支払いプロトコル能力の実施に関連する。ここで、分散台帳に関連付けられたトランザクションのための支払いサービスを実施する、コンピュータにより実施される方法が提供される。前述の態様及び実施形態と同様に、エイリアスが支払いサービスに関連付けられた1つ以上のクライアントの中のクライアントのために提供され、エイリアスはクライアントに固有であり、各クライアントはそれぞれのエイリアスを提供される。方法は、エイリアスに関連付けられた暗号通貨支払いのための支払い指示子を支払人エンティティから受信するステップを含み、指示子は、支払いサービスに関連付けられた1つ以上のクライアントの中の受取人クライアントに関連し、受取人クライアントは、支払い指示子内のエイリアスに関連付けられる。幾つかの実施形態では、指示子又は支払い指示子は支払人エンティティがデジタルアセット支払いを受取人エンティティに対して行うことを望むフォーム又は要求又は通知である。幾つかの実施形態では、指示子は、支払人エンティティが受取人エンティティからの1つ以上の商品又はサービスを要求すると又は取得すると、受取人エンティティに自動的に提供されてよい。方法は、受取人エンティティの支払いサービスに関連付けられた機械可読リソースに基づき、支払い要求テンプレートを取得するステップを含み、支払い要求テンプレートは受取人エンティティのアウトプットスクリプトを含む。幾つかの実施形態では、受取人の支払いサービスによりサポートされる少なくとも1つの能力は、上述の簡易支払いプロトコルを含む。幾つかの実施形態では、支払い要求テンプレートは、支払先エンドポイント、又はURI、又は受取人エンティティに関連付けられたデジタルウォレットの公開アドレス、及び/又は支払いのための他のメタデータを含む。幾つかの実施形態では、受取人エンティティは支払いサービスにより管理されるデジタルウォレットに関連付けられる。幾つかの実施形態では、デジタルウォレットは軽量な又はSPVウォレットである。方法は、支払人エンティティから、支払いテンプレートに基づき完全な支払いトランザクションを受信するステップを含み、完全な支払いトランザクションはエイリアス及びネットワーク識別子に関連付けられる。幾つかの実施形態では、エイリアスはネットワーク識別子を含んでよく、SPVウォレットであってもよい支払人エンティティのデジタルウォレットに関連付けられた1つ以上のプロセッサによりテンプレートに含まれる。方法は、次に、ブロックチェーンのような分散台帳へ完全な支払いトランザクションを提供するステップを含む。幾つかの実施形態では、完全な支払いトランザクションは、デジタル署名、及び移転されるべきデジタルアセット又は暗号通貨額を含む。幾つかの実施形態では、方法は、ブロックチェーンへの提出の前に、上述の第2の態様で説明したように支払人エンティティの検証、つまり、支払人エンティティが支払いサービスに関連付けられている場合、上述のPKIテンプレートに基づき公開鍵をチェックするステップを含む。
上述の方法は、第4の態様の第1の実装の簡易支払いプロトコルのための新しい能力を追加することに関連して上述したものと同じ利点に関連付けられる。更に有利なことに、支払いサービスのための簡易支払いプロトコル能力により、デジタルアセット支払いの処理は、支払人エンティティからの暗号通羽化支払いのように、セキュリティを向上し、支払いを行う支払人エンティティにより要求されるオンライン相互作用の量を削減する。
簡易支払いプロトコルが、暗号通貨支払いを処理するために達成するために、支払いのための全部の詳細、メタデータ、及びアウトプットが支払人エンティティへ送信されるべき支払いテンプレートに追加されることを要求するので、セキュリティが向上する。これは、(支払いが、bsvalias支払いサービスから送信された詳細に基づき行われるので)デジタルアセット支払いのセキュリティを向上する。従って、本態様は、アウトプットスクリプトがトランザクションテンプレート内にカプセル化され、受取人エンティティにより支払人エンティティへ直接送信されるならば、中間者攻撃(Man In The Middle (MITM) attack)を防ぐ。第2の態様に関連して議論したように、幾つかの実施形態では、支払いサービスは、図4に関連して説明するように、関連する公開鍵の検証のためにPKIテンプレートに従う、公開アドレスを取得するための命令を指定する。
有利なことに、更なる態様の第1の実装による簡易支払いプロトコル能力は、受取人へのデジタルアセットトランザクションを生成するために、支払人がオンラインであること、言い換えると、通信ネットワークに常時接続されることを必要としない。テンプレート内でアウトプットスクリプトが提供されるので、支払人クライアントは、分散台帳のための支払いトランザクションのエンドポイント及びメタデータを取得するために、受取人クライアントの支払いサービス、つまりbsvalias支払いサービスにアクセスする必要がない。従って、第4の態様は、オフライン実装を可能にし、これは、支払いエンドポイントを取得するために支払いサービスと相互作用する必要がないので、通信ネットワークに常時接続されていない又は計算上あまり高機能ではない支払人クライアント、つまり支払人に関連付けられたデジタルウォレットにとって有用である。
更に、有利なことに、第4の態様の実施形態は、受取人エンティティがブロックチェーンへのポスト(post)を担うとき、受取人エンティティに関連付けられた支払い又はトランザクションを検索すること及び監視することを確実に容易にする。従って、受取人エンティティはもはや自身のトランザクションについてブロックチェーンを監視する必要がない。支払人クライアントは、第4の態様を用いて所与の受取人エンティティのトランザクションを識別することもできる。従って、完全な署名済みトランザクションは、支払人エンティティによりポストされないが、代わりに、支払いサービスの機械可読リソースからのJSONフォーマットで提供される支払い要求テンプレートにエイリアス及びネットワーク識別子を含めることにより、受取人エンティティに提供される。従って、簡易支払いプロトコルは、親しみのある送り状に基づく支払いフローモデルと同様であり、デジタルアセット支払いを実行するために発注書等を要求する伝統的な会計システムを使用するビジネス又は組織にとって一層採用しやすく相互運用性がある。
幾つかの実施形態では、支払い要求テンプレート内のアウトプットスクリプトは、支払人エンティティからエイリアスへの暗号通貨支払いのためのトランザクションを構成する際に使用するための支払先を含み、アウトプットスクリプトは、支払いサービスのための機械可読リソースにアクセスするステップと、機械可読ドキュメント内の1つ以上の命令及び/又は仕様に基づき支払先エンドポイント識別子を取得するステップと、により、受取人エンティティの支払いサービスにより提供される。幾つかの実施形態では、支払先は、第3の態様に関して説明したものと同様の方法で識別される。方法は、次に、エイリアスの関連する受取人エンティティの支払先エンドポイント識別子に関連付けられたアウトプットスクリプトを生成するステップを含む。
幾つかの実施形態では、第4の態様の方法は、支払人エンティティからHTTPS POST要求の形式で完全な支払いトランザクションを受信するステップを含み、完全な支払いトランザクションは、支払人エンティティからの支払いトランザクションの支払いの詳細を含み、支払いの詳細は、受取人エンティティに関連付けられたエイリアスと、受取人エンティティへ送信されるべき暗号通貨の額と、支払いの詳細を支払人エンティティに関連する暗号鍵に関連付けるためのデジタル署名と、を含む。幾つかの実施形態では、第4の態様のHTTPS POST要求は、図6の支払先のHTTPS POST要求フロート同様であるが、この場合には、アウトプットスクリプトが支払いサービスからの支払い要求テンプレートに含まれないので、支払人エンティティは、機械可読ドキュメントにアクセスする必要がない。幾つかの実施形態では、デジタル署名は、図4に関連して理解されるHTTPS GET要求フローに基づき検証され、支払人エンティティが支払いサービスに関連付けられている場合、支払人エンティティの公開鍵を解決する。方法は、次に、分散台帳に完全な支払いトランザクションを提出するステップを含む。
幾つかの実施形態では、第4の態様の方法は、完全な支払いトランザクションの受信に対する肯定応答を支払人エンティティへ送信するステップを含む。従って、有利なことに、これは、支払人エンティティが、自身が支払いサービスに関連付けられた受取人エンティティへ送信した支払いトランザクションを追跡することを可能にし、トランザクションの状態をチェックできる。幾つかの実施形態では、肯定応答は、各トランザクションのトランザクション識別子(TxID)を含む。
第4の態様を実施するために、受取人エンティティへの支払いトランザクションのために支払人エンティティにより実行される方法は、以下のステップを含み、これらは受取人クライアントの支払いサービスにより実施される第4の態様の上述の方法に対して相補的である。方法は、ここで、受取人クライアントに関連するエイリアスに関連付けられた暗号通貨支払いのための支払い指示子を生成するステップと、エイリアスの支払いサービスに関連付けられた機械可読リソース内の1つ以上の命令及び/又は仕様に基づきエイリアスへ支払い指示子を送信するステップと、を含む。方法は、次に、エイリアスに関連する支払いサービスから支払い要求テンプレートを取得するステップを含み、支払い要求テンプレートは、受取人エンティティのためのアウトプットスクリプトを含む。方法は、取得した支払い要求テンプレートに基づき、完全な支払いトランザクションを生成するステップを含む。この生成は、エイリアス及びネットワーク識別子をテンプレートに含めるステップと、支払いトランザクションに署名するために支払人エンティティの公開鍵に関連付けられたデジタル署名を適用するステップと、エイリアスに支払われるべき暗号通貨の額を含む支払いを提供するステップと、を含む、完全な支払いトランザクションは、次に、HTTP POST要求として、エイリアスに関連付けられた受取人エンティティへ送信される。
上述の方法は、方法が支払人エンティティにおいて行われる方法に関することを除き、第4の態様による支払いサービスにより実施される方法と関連して上述したものと同じ利点を有する。
幾つかの実施形態では、エイリアスは、ネットワーク内のデジタルウォレットに関連付けられた支払いハンドル(handle)と呼ばれる。
本開示の更なる態様は要求側エンティティからネットワーク内のデジタルウォレットに関連付けられたエイリアスへの支払いトランザクションを要求するためのプレフィックスを構成する方法に関する。その結果、プレフィックス及びエイリアスを含む要求側エンティティからの要求の受信に応答して、本開示の第1及び/又は第2及び/又は第3の態様が、支払いサービスによりエイリアスに基づき自動的に実行されてよい。
有利なことに、第4の態様は、要求側エンティティに知られている受取人エンティティのエイリアスに続いて例えば「payto:」又は「bsvto:」のような単にプレフィックスの提示により、上述の態様及び実施形態を自動的にトリガすることを可能にする。このプレフィックスは、有利なことに、上述の態様及び実施形態のうちの1つ以上に基づき、支払いトランザクションについての要求が生成され支払いサービスへ送信されることを可能にする。要求側エンティティが必要なことは、知られているエイリアスをプレフィックスに追加することだけである。
本開示は、プロセッサと、プロセッサによる実行の結果として、コンピューティング装置に本願明細書に記載のコンピュータにより実施される方法のいずれかの態様又は実施形態を実行させる可能命令を含むメモリと、を含むコンピューティング装置も提供する。本開示は、上述の任意の態様又は実施形態を実施するよう一緒に動作可能な複数のこのような装置を含むシステムも提供する。
本開示は、実行可能命令を記憶した非一時的コンピュータ可読記憶媒体であって、実行可能命令は、コンピューティング装置又はシステムのプロセッサにより実行された結果として、コンピューティング装置又はシステムに、少なくとも本願明細書に記載のコンピュータにより実施される方法の1つの態様又は実施形態を実行させる、非一時的コンピュータ可読記憶媒体も提供する。
幾つかの特定の実施形態は、添付の図面を参照して例示のためにここで説明される。ここで同様の参照符号は同様の機能を示す。
図1は、本開示の第1の態様に関し、エイリアスに関連付けられた1つ以上のデジタルウォレットのための支払いサービスを実施する方法を示す。図1では、方法は、支払いサービスの提供に関連付けられた1つ以上のプロセッサにより実施されると理解される。本開示では、支払いサービスは、以下に説明する機能を実行する1つ以上の実行可能なルール又はプロトコルであってよい。ウォレットは、デジタルウォレットのネットワークの中のものであってよく、又は分散台帳に関連付けられたトランザクションのための個別の独立型暗号通貨ウォレットであってよい。例えば、方法は、BSV暗号通貨のためのBitcoinウォレットのネットワーク内で実施されてよい。説明を簡単に及び理解を容易にするために、デジタルウォレットのネットワーク内のデジタルウォレットに関連付けられたエイリアス(alias)は、以下では、図の説明の中で参照される。しかしながら、上述のように、本開示は、ネットワーク内の他のウォレットに接続されるデジタルウォレットに多くの場合に限定されない。
ステップ102は、デジタルウォレットのネットワーク内の所与のデジタルウォレットにエイリアスを割り当てる又は提供することに関連する。これは、デジタルウォレットに関連付けられたそれぞれの公開アドレスとのエイリアスのマッピング又は相関を提供することに関連する。その結果、エイリアスは、公開アドレスの代わりに使用できる。このような割り当ては、例えば特定の支払いクライアント又はエンティティがネットワークに署名するときに行われてよい。この点で、「エイリアス:公開アドレス」のペアは、ウォレット毎に提供されてよい。エイリアスは、特定のウォレットにユニークであり、ネットワークのドメイン名のようなネットワーク識別子、又は該ネットワークを識別する名称のいずれかを含む。例えば、エイリアスは、clientname@domainname.comのような、よく知られた電子メールのフォーマットであってよい。ここで、clientnameは、Alice又はBobのような、デジタルウォレットのネットワークに署名する又は登録される単なる個人又は会社の名称又は識別子であってよい。domainnameは、組織又はドメインオーナ、例えば「nChain」を示す。この場合、Aliceのエイリアスは、alice@nchain.comである。Bobが、本開示の1つ以上の態様及び/又は実施形態を実施するドメイン名「notnchain」を有するデジタルウォレットの異なるネットワークに署名する場合、Bobのエイリアスはbob@notnchain.comとして割り当てられてよい。エイリアスがネットワーク識別子に関連付けられる限り、AliceNC又はBobBSV等のような他のエイリアスフォーマットも使用されてよい。
ステップ104は、ディレクトリ内のネットワーク識別子に基づき支払いサービスのサービスレコードを生成することに関する。このステップは、ディレクトリ内の支払いサービスを提供するネットワーク識別子にエイリアスを関連付けるために必要である。ここで参照されるディレクトリは、通常、開放型である、つまりあらゆるユーザにより公衆アクセス可能な、非集中型ディレクトリである。例えば、DNSのようなグローバルディレクトリが使用できる。これは、非集中型であり開放型であり、従って、インターネットを介してどこからでも任意のエンティティ又はユーザによりアクセス可能である。開放型のアクセス可能な非集中型ディレクトリは好適な実装であるが、本開示はこれに限定されない。幾つかの実施形態では、参照されるディレクトリは、集中型ディレクトリであってもよい。他の実施形態では、ディレクトリは、閉じられたディレクトリ、つまり、ネットワーク又はサービスに登録されたユーザ又はエンティティがアクセス可能なものであってよい。以下では、説明を容易にするために、説明の中でDNSのようなグローバルディレクトリが言及される。他のタイプのディレクトリも本開示の範囲内にあることが、当業者により理解される。
例えば、エイリアスが、上述のフォーマットのインプット又は要求の中で提供されるとき、支払いがエイリアスを使用して行われるかどうかを識別するために、DNSのようなディレクトリが検索される(caDNSルックアップ)。支払いサービスに基づくエイリアスをサポートしないネットワーク又はドメインに関連付けられたエイリアスが、入力された場合、この状況は、以下の実装のうちの1つ又は組合せを用いて処理されてよい。ある実装では、エイリアスを使用する支払いは行うことができないことを示す結果は、DNSにより返されない。サービスレコードが存在しない場合、要求側エンティティは、分散台帳に関連付けられた任意のトランザクションが生成され得る前に、他の知られている技術により公開アドレスを取得しなければならない。別の実装では、例えば、サービスがネットワーク識別子としてdameドメインにより提供されるとき、返される結果は、エイリアスに関連付けられるネットワーク又はドメインに責任のあるホストの位置であってよい。例えば、上述の例に基づき、エイリアス内のネットワーク識別子に関連付けられた支払いサービスのサービスレコードがディレクトリ内に存在しない場合、ドメイン「nchain」に責任のあるホストの位置又はURIが提供されてよく、又は要求側エンティティがドメイン「nchain」のためのホストへ向けられてよい。従って、エイリアス内で示されたドメインに責任のあるホストは、要求を更に処理してよい。
ステップ106は、ステップ104で生成されたサービスレコードを更新すること、又はそれに、ネットワーク識別子により関連付けられたネットワーク又はドメインにより提供される支払いサービスを示すエントリ又はフィールドを含むことに関する。DNS内のサービスレコードを更新するステップは、nchain.comのような特定のネットワーク識別子が、特定の支払いサービス、例えば「bsvpay」又は「bsvalias」として識別されるサービスを提供する又は使用することを示す。この更新するステップは、DNSルックアップを実行するエンティティに、識別された支払いサービスが、つまり「bsvalias」を考慮して、nChainドメインに関連付けられたエイリアスに対して支払いトランザクションを実行できることを示す。
ステップ108は、ステップ106で示された支払いサービスに責任のあるホストコンピューティングリソースの位置を示すために、サービスレコードを更新するステップに関する。従って、支払いサービスがデジタルウォレットのネットワークへの異なるネットワーク又はドメインに関連付けられた場合、サービスレコード内のこのエントリは、サービスを担うホストコンピュータ又はサーバのウェブサーバ位置又はIPアドレスを指すだろう。上述の例から続けて、bsvalias支払いサービスが別個のネットワーク又は別個のドメイン(bsvalias.com)に関連付けられた場合、bsvalias.comのホストサーバを特定する位置又は命令は、サービスレコード内で示される。これは、エイリアスに関連付けられたデジタルウォレットの識別を実現するよう構成されるホストコンピューティングリソースがどこで見付かるかを識別するためである。
指定されたサービスのためのサーバの位置を定義するDNS内のサービスレコード(srv record)の例は、以下に示される。
支払いサービス(bsvalias)に関連するドメイン名(nchain)のサービスレコードは、以下の形式で、以下のようなフィールド又はエントリを有してよい:
・service:所望のサービスの記号名。
・proto:所望のサービスのトランスポートプロトコル、これは、通常、TCP(transmission control protocol)又はUDP(User datagram protocol)である。
・name:このレコードが有効であるドメイン名、ドットで終わる。
・TTL:標準的なDNS存続時間フィールドであり、レコードに関連する終了期間又は期限を設定する。
・class:標準的なDNSクラスフィールドである。
・priority:目標ホストの優先度である。
・weight:同じ優先度を有するレコードについての相対的重みである。
・port:サービスが発見されるべきTCP又はUDPポートである。
・target:サービスを提供する機械の標準的ホスト名である。
例えば、nchainのドメインオーナは、以下のパラメータを有するSRV(service)レコードを生成してよい。
Figure 2022528710000002
図2A及び2Bは、支払いサービスを担うホストを識別する方法を示すフロー図である。図2Aは、支払いサービスに関連付けられた1つ以上のプロセッサにより実施される方法を示す。図2Bは、支払いクライアントエンティティに関連付けられた1つ以上のプロセッサにより実施される方法を示す。
図2Aのステップ202aで、ホストサービスは、エイリアスに関連付けられたトランザクションの要求側エンティティから要求を受信する。この要求は、要求側エンティティのコンピューティング装置のインタフェース、つまり、インストールされているデジタルウォレットからの入力の形式であってよい。例えば、要求は、支払人エンティティからのalice@nchain.comへの支払い(payto)を示す要求を含んでよい。
ステップ204aで、ステップ202aにおける要求又は入力に応答して、グローバルディレクトリの検索又はルックアップ、例えばDNSルックアップが、入力されたエイリアスに基づき実行される。これは、エイリアス内のネットワーク識別子に関連するグローバルディレクトリ内の支払いサービスのサービスレコードを特定することである。従って、図1について上述した同じ例を用いて、このステップは、エイリアス内のネットワーク識別子の中でnchainが受信されたので、上述のようにドメインnchainのサービスレコードを識別する。nchainについてのこのサービスレコードは、次に、bsvaliasがnchainのために使用される支払いサービスであることを識別する。
ステップ206aで、サービスレコード、従って支払いサービス、つまりbsvaliasが識別されると、支払いサービスのためのホストコンピューティングリソースの位置が取得される。幾つかの実施形態では、これは、要求側エンティティへ返される。上述の例では、ホストのこの位置は、nchainのsrvレコードの中のtarget:portペアに対応する。target:portペアは、サービスbsvaliasを担うホストが使用する又は動作する位置を提供する。
ステップ208aで、ステップ206aで取得したホストの位置、つまりtarget:portペアに基づき、エイリアスに関連付けられたデジタルウォレットの公開アドレスが決定されてよい。幾つかの実施形態では、これは、例えば図1に関連して議論された、支払いサービス又はネットワークに署名するときのマッピングに基づいてよい。公開アドレスが取得されると、これは、デジタルウォレット間のBitcoinブロックチェーントランザクションのために使用できる。
図2Bは、上述のように、図2Aに対応するステップに関連するが、支払人又は要求側エンティティのコンピューティング装置又はデジタルウォレットにおいて実施される。
従って、ステップ202bは、要求側エンティティからのトランザクションについての要求を送信することに関連し、要求はエイリアスに関連付けられる。
ステップ206bは、支払いサービスに関連付けられたホストコンピューティングリソースの位置を取得するステップに関連し、位置は、ネットワーク識別子に関連するサービスレコードに基づく。これは、例えば、図2Aのステップ204a及び206aで実行される。従って、ここで取得された位置は、「bsvalias」支払いサービスのホストのtarget:portペアである。
ステップ208bで、エイリアスに関連付けられたデジタルウォレットの公開アドレスが取得される。その結果、これは、デジタル台帳に関連付けられたトランザクションのために使用されてよい。
図3A及び3Bは、トランザクションのための要求内のエイリアスに関連付けられた公開アドレスを識別するための、本開示の第2の態様による方法を示すフロー図である。図3Aは、支払いサービスに関連付けられた1つ以上のプロセッサにより実施される方法を示す。図3Bは、支払いクライアントエンティティに関連付けられた1つ以上のプロセッサにより実施される方法を示す。
図3Aのステップ302aで、機械可読リソースが、支払いサービスのために生成される。機械可読リソースは、支払いサービスにより提供される又はサポートされる機能又は能力、及び/又はこれらの能力を利用する任意の命令が識別できることを保証するために提供される。従って、この処理は、支払いサービスに関連する能力発見と呼ばれる。従って、機械可読ドキュメントが、能力発見処理のために生成される。これにより、サービスを使用し又は要求したいと望む支払いクライアントエンティティ又はデジタルウォレット又はアプリケーションは、支払いサービスのサポートされる機能、及び支払いサービスの使用に関連する任意のそれぞれのエンドポイント及び構成を学習し又は発見できる。幾つかの実施形態では、機械可読リソースは、予め生成され支払いサービスに関連付けられて保存されたファイル又はドキュメントであり、つまり静的ドキュメントである。幾つかの実施形態では、例えば、エンタープライズ級のサービス実装では、機械可読リソースは、動的であってよく、例えばウェブサーバ上に保存される静的ファイルとしてではなく、オンデマンドで生成できる。有利なことに、このように動的に生成されるリソースは、サービス展開、移行、保守、及び実行されることを要求される任意のアップグレードにおける簡略化を提供する。
幾つかの実施形態では、軽量なデータ交換フォーマットであるJSON(JavaScript Object Notation)が、機械可読リソースを生成するために使用される。JSONは、完全に言語独立のテキストフォーマットである画、C、C++、C#、Java、JavaScript、Perl、Python、及び他の多くを含む、Cファミリ言語に慣れているプログラマに親しみのある慣習を使用する。これらのプロパティは、JSONを理想的なデータ交換言語にする。更に、JSONは、2つの構造、つまり名称/値ペアの集合、及び値の順序付きリスト、の上に構築される。多くの言語では、これは、配列、ベクトル、リスト、又はシーケンスにより実現される。これらは汎用的なデータ構造であるので、事実上、全ての近年のプログラミング言語は、それぞれそれらをサポートする。従って、JSONはこれらの同じ構造に基づく他のプログラミング言語と交換可能なデータフォーマットを提供するので、JSONを機械可読リソースのために使用することは望ましい。
機械可読リソースは、支払いサービスに関する以下の情報を含んでよい:
支払いサービスを実施する責任のあるホストコンピューティングリソースに関連付けられた少なくとも1つのエンドポイント識別子。これは、支払いサービスの1つ以上の機能を担うサーバ又はコンピューティングリソースの位置、つまりtarget:portペアであってよい。
支払いサービスによりサポートされる複数の能力の中の少なくとも1つの能力に関連付けられたエントリ。これは、要求側エンティティ又は支払人エンティティ検証、トランザクションのための複数のデジタル署名、トランザクションのための受取人エンティティ又は支払先認可、及び/又はトランザクションが分散台帳へポストされる前にエイリアスに関連付けられた電子メールアドレスへ送信されるようにする電子メールに基づく支払いトランザクション、要求又は応答に関連する支払人及び/又は受取人コールバック機能、等のような、支払いサービスによりサポートされ得る1つ以上の機能であってよい。
エイリアスに関連付けられたエンティティ又はデジタルウォレットによりトランザクションを実現するために使用され得る、(デジタルウォレットのエンティティの)公開アドレスにアクセスするための命令及び/又は仕様。幾つかの実施形態では、公開アドレスにアクセスすることは、エイリアスに基づき、支払いサービスに関連付けられた1つ以上のリソース又はURIにアクセスすることを含む。幾つかの実施形態では、取得されると、公開アドレスは、分散台帳のためのトランザクションの構成において使用されるアウトプットスクリプトの中で使用されてよい。幾つかの実施形態では、公開アドレスにアクセスすることは、PKI手順に基づきエンティティの公開鍵を解決すること、及び支払先、つまり受取人デジタルウォレットを解決することを含んでよい。
例えば、機械可読リソースは、支払いサービス「bsvalias」のための以下のファイル又はエントリを示してよい:
Figure 2022528710000003
テンプレート値{name}及び{domain.tld}は、エイリアスフォーマット<name>@<domain>.<tld>の成分を表す。ここで、tldは、.com又は.org又は.co.uk等のような最上位ドメインである。要求側エンティティ又は支払いクライアントは、テンプレートをエイリアスで置き換えてよい。従って、上述の例では、これは、alice@nchain.comである。
ステップ304aで、支払いサービスに関連付けられた予測可能な又は知られている位置に、機械可読リソースを格納するステップに関する。例えば、支払いサービス「bsvalias」「のための支払いサービスオペレータ又はプロセッサは、ステップ302aにおいて上述したJSONフォーマットのテキストドキュメントの生成に続いて、以下の位置においてドキュメントを提供してよい:
https://<host-discovery-target>:<host-discovery-port>/.well-known/bsvalias
よく知られた予測可能な位置においてJSONフォーマットのドキュメントを提供することは、有用である。その結果、それは、(例えばネットワーク識別子に基づき)支払いサービスを認識する全てのエンティティにより公衆アクセス可能である。上述の例示的な位置は、IANA(Internet Assigned Numbers Authority)のWell-Known URIリソースに基づく。従って、機械可読リソースは、支払いサービスbsvaliasに関連する発見能力のために、ウェブサーバ上の予測可能な位置に置かれる。
ステップ306aで、支払いクライアントエンティティからのトランザクションについての要求が受信され、要求は支払いが向けられるべきエイリアスを含む。上述の例から続けて、これは、payto:alice@nchain.comのような要求を含む。
ステップ308aで、エイリアスに関連付けられた支払いサービスが識別される。これは、エイリアス内のネットワーク識別子、つまりnchainに基づく。この識別子、つまりbsvaliasに関連付けられた支払いサービスは、このステップで識別される。サービスレコードを識別するための第1の態様によるホスト発見は、これの前に実行されてもよいが、これは、図3に示した実施形態では、本質的ではない。例えば、データベースに格納されたマッピング、又はサービス発見処理に基づくテキストドキュメントは、第1の態様におけるサービスレコードの代わりに、bsvaliasのホストを識別するために使用されてもよい。
ステップ310aで、識別された支払いサービスに基づき、支払いサービスの機械可読リソースは、予測可能な又は知られているネットワーク位置からアクセスされる。例えば、サービスbsvaliasのためのJSONドキュメントは、ステップ304aで指定されたようなよく知られた位置から取得される。
ステップ312aは、要求されたトランザクションの1つ以上の能力が機械可読リソース内に存在するかどうかを決定する。このステップは、サポートされる能力に関連する1つ以上のエントリが要求のために適切かどうかを識別するステップを含む。例えば、これは、共通能力が要求側クライアントエンティティの支払いサービスによりサポートされるかどうか、及びbsvaliasのためのJSONドキュメント内の能力、つまり受取人alice@nchain.comの支払いサービス、をチェックすることを含んでよい。幾つかの場合には、要求側エンティティにより追加能力が指定されず又は要求されなくてよい。この場合、支払いトランザクションは、共通能力が存在するか否かに拘わらず進行できる。
ステップ314aで、機械可読リソースがトランザクションのための少なくとも1つのサポートされる能力を有すると仮定すると(これが要求側エンティティにより指定された場合)、これが識別されると、支払いサービスのホストコンピューティングリソースに関連付けられたエンドポイント識別子が、機械可読リソースから返される。上述の例では、これは、bsvaliasに責任のあるホストの位置であってよい。次に、支払いサービス「bsvalias」のための機械可読リソース内の命令及び/又は仕様のうちの1つ以上を用いて、エイリアスに関連付けられたデジタルウォレットのための公開アドレスが取得できる。
図3Bは、上述のように、図3Aに対応するステップに関連するが、支払人又は要求側エンティティのコンピューティング装置又はデジタルウォレットにおいて実施される。
従って、ステップ306bは、要求側エンティティからのトランザクションについての要求を送信することに関連し、要求はエイリアスに関連付けられ、つまり上述の例に続き、payto:alice@nchain.comを送信することに関連する。
ステップ310bで、エイリアス内のネットワーク識別子に基づく支払いサービスの識別に続き、例えば、図3Aのステップ308aにおいて説明したように、例えば図3Aのステップ304aにおいて説明したように、このステップは、要求側クライアントにより、識別された支払いサービスに関連付けられたよく知られた位置から機械可読リソースにアクセスするステップを含む。
ステップ312aは、要求側エンティティが、要求されたトランザクションの1つ以上の能力が機械可読リソース内に存在するかどうかを決定する。このステップは、図3Aのステップ312aと同様に、共通の又は指定されたサポートされる能力に関連する1つ以上のエントリが、要求されたトランザクションのために適切である又は必要であるかどうかを識別するために、JSONドキュメントをチェックするステップを含む。
ステップ313bで、1つ以上の能力が機械可読リソース内に存在するかどうかを識別することに基づき、要求側クライアントは、支払いサービスのためのホストコンピューティングリソースに関連付けられたエンドポイント識別子、つまりサービスbsvaliasのためのホスト位置、を受信する。
ステップ314bで、要求側クライアントは、次に、エイリアスに関連付けられた公開アドレスを取得する。これは、機械可読リソース内の命令及び/又は仕様のうちの1つ以上に従い機能を実行する要求側クライアントにより取得できる。
図4は、エイリアスに関連付けられた暗号鍵を取得するPKI(public key infrastructure)技術を実施する第2の態様の機械可読リソース内で指定される命令の例示的なシーケンスを示す。
ステップ402で、機械可読リソースからのPKI要求テンプレートは、支払いサービスに関連付けられた機械可読リソースから取得されなければならない。このテンプレートは、幾つかの実施形態では、PKIエンドポイント識別子を要求するためのテンプレートである。これは、支払いクライアントエンティティの公開鍵を識別し及び/又は検証するために構成される、支払いサービスのコンピューティングリソースのURIである。例えば、上述の例から続けると、テンプレートは以下であってよい:
"pki": "https://bsvalias.example.org/{name}@{domain.tld}/id
ステップ404で、テンプレートが受信されると、エイリアス及び関連するネットワーク識別子は、テンプレートの適切なフィールドに含まれ又は代用されて、完全なPKI要求を生成する。例えば、テンプレート値{name}及び{domain.tld}は、エイリアス、つまり<name>@<domain>.<tld>のコンポーネントを表し、機械可読リソースに基づき完全な要求を発行する前に、代入されなければならない。このステップの結果は、「bsvalias」のPKIエンドポイント識別子の提供である。
ステップ406で、HTTP GET要求が、ステップ404で取得されたPKIエンドポイント識別子に基づき生成される。
ステップ408で、エイリアスに関連付けられた公開鍵は、次に、ステップ406で生成された要求に応答して取得できる。多くの場合に、公開鍵は、オンチェーントランザクションの部分として使用されていない、安定した楕円曲線デジタル署名アルゴリズム(elliptic curve digital signature algorithm (ECDSA))公開鍵である。有効なエイリアスのための要求、つまり、支払いサービスに関連付けられ公開鍵を割り当てられたものが受信された場合、支払いサービスのPKIに責任のあるホストからの応答メッセージは、以下のフォーマットで公開鍵を返してよい。
Figure 2022528710000004
ECDSA公開鍵は、secp256k1曲線上の有効な点であり、圧縮され、16進符号化される。これは、「pubkey」文字列が66バイト長(33バイトの2進数、各バイトが2個の16進文字として符号化される)であることを意味する。
Figure 2022528710000005
要求が有効ではないエイリアスに基づく場合、つまり、支払いサービス及び/又は公開鍵に関連付けられていないものである場合、応答メッセージは、エラーが生じたこと、又は要求されたリソースが見付からない、又は利用可能ではない、又は認可されていないことを示す。
図5A及び5Bは、トランザクションのための要求内のエイリアスに関連付けられた支払先を識別するための、本開示の第3の態様による方法を示すフロー図である。支払先は、分散台帳のためのトランザクションを構成する際に使用される。図5Aは、支払いサービスに関連付けられた1つ以上のプロセッサにより実施される方法を示す。図5Bは、支払いクライアントエンティティに関連付けられた1つ以上のプロセッサにより実施される方法を示す。幾つかの実施形態では、支払先を取得するステップは、図3A及び3Bにおけるエイリアスに関連付けられた公開鍵を取得ことに基づき又はその部分である。幾つかの実施形態では、支払先エンドポイント識別子は、アウトプットスクリプト内に符号化されるべき又は含まれるべきアドレスに関連し、その結果、トランザクションは、このアドレスに基づきブロックチェーンのために構成されてよい。幾つかの実施形態では、支払先エンドポイント識別子は、上述の公開アドレスと同じである。他の実施形態では、支払先エンドポイント識別子は、エイリアスに関連付けられた公開アドレスと異なってよく、又はデジタルウォレットのための公開アドレスの部分であってよく又はそれに関連付けられてよい。幾つかの実施形態では、エイリアスに関連付けられた公開アドレス及び/又は支払先エンドポイント識別子は、静的又は動的に割り当てられてよい。
図5Aのステップ502aは、エイリアスの中の支払いサービスを識別するステップに続き、支払いサービスの機械可読リソースにアクセスするステップに関連する。支払いサービスのアイデンティティは、機械可読リソースの位置と共に、図1、3A及び/又は3Bに関連して上述したように取得できる。
ステップ504aで、支払先エンドポイント識別子は、機械可読ドキュメント内の1つ以上の命令及び/又は仕様を用いて、機械可読リソースから取得される。このエンドポイントは、エイリアスに関連付けられたデジタルウォレットの支払先エンドポイントを解決するよう構成される支払いサービスのコンピューティングリソース又はサーバのであってよい。
ステップ506aで、支払いトランザクションの支払いの詳細は、支払いエンティティから取得される。例えば、これは、少なくとも、受取人エンティティのデジタルウォレットに関連付けられたエイリアス、及び受取人に支払われるべき暗号通貨の額を含んでよい。これは、支払人エンティティのコンピューティングリソース又はアプリケーションに関連付けられたインタフェースを用いて提供されてよい。
ステップ508aで、ステップ506aにおける支払いの詳細を有する要求のためのデジタル署名、及び支払人エンティティに関連付けられた暗号鍵が、取得される。トランザクションに関連する要求に関連するこの署名は、多くの場合、要求側、つまり支払人エンティティの秘密鍵を用いて適用される。
ステップ510aで、デジタル署名が検証されてよく、その結果、支払人エンティティのアイデンティティが認証できる。これは、1つ以上の知られている技術を用いて実行されてよい。幾つかの実施形態では、ECDSA鍵が使用されると仮定すると、例えば図4のPKIシーケンスを用いて取得された支払人エンティティの公開鍵は、署名するエンティティ(支払人エンティティ)のアイデンティティを検証するために使用できる。検証が失敗した場合、デジタル署名は、もう一度提供される必要があってよく、又は1つ以上のエラーメッセージが生成され得る。
ステップ512aで、ステップ510aにおいて検証の成功が出力されることに続き、エイリアスに関連付けられた支払先エンドポイント識別子に基づくアウトプットスクリプトが、生成される。このアウトプットスクリプトは、分散台帳のためのトランザクションの中の支払先を自動的に解決するために、分散台帳のための支払いトランザクションに埋め込むために提供される。
例えば、分散台帳、つまりBitcoinブロックチェーンのtまえのトランザクションの構成のために返されるアウトプットスクリプトは、次式に従ってよい:
Figure 2022528710000006
アウトプットフィールドの値は、16進符号化Bitcoinスクリプトであってよく、支払いトランザクションの構成中に、支払人エンティティがこれを使用する。
種々の可能なタイプのアウトプットスクリプトが生成されてよいが、説明を容易にするために、P2PKH(Pay to Public Key Hash)アウトプットスクリプト生成が以下の例で議論される。
次式の公開鍵を有する鍵ペアが与えられると:
Figure 2022528710000007
同じもののP2PKHアウトプットスクリプトは次式のように16進符号化されてよい:
Figure 2022528710000008
これは、以下のように分解できる:
Figure 2022528710000009
サービス応答本体、つまり、ステップ512aにおけるトランザクションに埋め込むためのスクリプトは、従って以下の通りである:
Figure 2022528710000010
図5Bは、上述のように、図5Aに対応するステップに関連するが、支払人又は要求側エンティティのコンピューティング装置又はデジタルウォレットにおいて実施される。
ステップ502bで、支払人エンティティからのトランザクションについての要求であって、該要求はエイリアスに関連付けられる要求に基づき、機械可読リソースは、支払いサービスに関連付けられた位置から支払人エンティティによりアクセスされる。
ステップ504bで、機械可読ドキュメント内の1つ以上の命令及び/又は仕様に基づく支払先エンドポイント識別子が、受取人エンティティにより取得される。
ステップ506bは、トランザクションに関する支払いの詳細を送信する又は提供するステップに関連する。支払いの詳細は、受取人エンティティのデジタルウォレットに関連付けられたエイリアス、及び受取人に支払われるべき暗号通貨額を含む。
ステップ508b及び510bは、支払人エンティティが、支払いの詳細を暗号鍵に関連付けるために、デジタル署名を提供するステップに関連し、その後に、図5Aの対応するステップで議論したような検証が続く。
ステップ512bは、エイリアスに関連付けられた支払先エンドポイント識別子に基づき、支払人エンティティによりアウトプットスクリプトを受信するステップに関連する。これは、上述の図5Aに関連して説明された。
ステップ514bは、受信したアウトプットスクリプトをトランザクションに埋め込むことにより、支払人エンティティにより分散台帳のための支払いトランザクションを構成するステップに関連する。
図6は、デジタルウォレットのためのエイリアスに関連付けられた支払先エンドポイント解決シーケンスを実施する、機械可読リソース内で指定される命令の例示的なシーケンスを示す。
ステップ602で、機械可読リソースからの支払先要求テンプレートは、支払いサービスに関連付けられた機械可読リソースから取得される。幾つかの実施形態では、これは、図5A及び5Bで議論した支払先エンドポイント識別子を要求するためのテンプレートである。例えば、支払いサービスbsvaliasについての上述の例から続けると、テンプレートは以下であってよい:
"paymentDestination":https://bsvalias.example.org/{name}@{domain.tld}/payment-destination
ステップ602でテンプレートが受信されると、ステップ604で、エイリアス及び関連するネットワーク識別子は、テンプレートの適切なフィールドに含まれ又は代用されて、完全な支払先要求を生成する。例えば、テンプレート値{name}及び{domain.tld}は、目標エイリアス、つまり<name>@<domain>.<tld>のコンポーネントを表し、機械可読リソースに基づき完全な要求を発行する前に、代入されなければならない。このステップの結果は、支払先エンドポイント識別子の提供であり、これは、幾つかの実施形態では、エイリアスに関連付けられたアウトプットトランザクションの生成のために使用されるべき支払いアドレスを識別する責任のあるコンピューティングリソースのURIであってよい。
ステップ606で、HTTP POST要求が、ステップ604で取得された支払先エンドポイント識別子に基づき生成される。
ステップ608で、エイリアスに関連する、支払先エンドポイント識別子に基づくアウトプットスクリプトが返される。これは、また、図5A及び5Bで議論したように、分散台帳のための支払いトランザクションの構成において使用される。
上述の第3の態様に関連する幾つかの実施形態では、第3の態様による支払先についての要求(例えば、ステップ502a、502bに関連する要求、又は上述の図6のPOST要求)の本体は、アプリケーション/jsonのコンテンツタイプを示してよい。これは、要求を生成する又は完成させるためのテンプレートが、支払いサービス、つまりbsvaliasのための機械可読リソースに基づくからである。幾つかの実施形態では、上述のように(例えば、図6を参照、)支払人エンティティからの要求は、要求内の受取人エンティティのエイリアスを識別することに加えて、以下のスキーマに従ってよい。
Figure 2022528710000011
上述のスキーマのフィールドは、以下の表に簡単に説明され、幾つかのフィールドの更なる説明は後述される。
Figure 2022528710000012
幾つかの実施形態では、受取人エンティティのエイリアスを含むことに加えて、上述のスキーマの中でpayerHandleとして識別されるフィールドが存在すれば、又は要求に関連付けられれば、十分である。幾つかの実施形態では、支払人エンティティ又は支払人クライアントに関連付けられたデジタルウォレットが支払いトランザクションのためのエイリアスを有しない場合、このpayerHandleは単に支払人の公開識別子又はIP又はBitcoinアドレスに関連付けられてよい。以下では、本開示におけるpayerHandleは、支払人クライアントエンティティに関連付けられたエイリアスであるとして説明される。従って、このような実施形態では、支払人エンティティはエイリアスを有し、該エイリアスに基づき支払いトランザクションを実現する支払いサービスに関連付けられる。支払人の支払いサービスは、受取人の支払いサービスと同じ又は異なってよい。
幾つかの実施形態では、上述の表の中で「dt」により示されるタイムスタンプフィールド、及びpayerHandleは、要求のためのスキーマの中で必要とされてよい。他の実施形態では、タイムスタンプ、payerHandle、並びに署名フィールドは、特定の要求について、又は受取人クライアントに関連付けられた機械可読リソース内に存在し得る1つ以上の能力に従い動作するために、要求されてよい。
残りのフィールドは、要求の機能又は動作が関連する限り、任意である場合がある。しかしながら、多くの状況では、通常は量が示される(これは0であっても)。しかし、任意的フィールド又は任意的フィールドのゼロでない値は、それが知られている場合、又は情報が支払いエンティティ、つまりこの場合には支払人エンティティに利用可能である場合に、要求内に存在してよい。タイムスタンプ及び署名フィールドは、機械可読リソース内で指定される特定の支払いサービス能力について必須であると考えられてよく、以下に説明される。
タイムスタンプフィールド「dt」は、支払人が支払先要求を開始した時点で、受け入れられた標準ISO-8601フォーマットの現在時刻を含んでよい。JavaScriptから、これは、JSON.stringify()のような機械可読リソースに関連するコマンド又は命令を用いて構成できる。例えば、これは、以下を返してよい:
Figure 2022528710000013
幾つかの実施形態では、署名フィールドは、メッセージに署名し及びメッセージ署名を検証する支払いエンティティ又はクライアントの能力に基づいてよい。この機能は、多くの場合に、基本的に、標準的なECDSAの実装であるが、整数r及びsについて(r,s)署名ペアを有し、クライアントが、公開鍵に対して直接ではなく、P2PKHアドレス(公開鍵のハッシュ)に対してメッセージ署名を検証できるようにするために提供される追加情報がある。
幾つかの実施形態では、署名は、この場合には上述の要求であるメッセージのdouble-SHA256ハッシュに対して計算された未処理(raw)(r,s)フィールドであってよい。例えばMoneyButtonのBSVライブラリのような既存のBitcoinクライアントライブラリ、又は他の同様の暗号通貨ライブラリを利用するために、既存の署名及び検証プロトコルが幾つかの実施形態について適切であり得る。
幾つかの実施形態では、MoneyButton BSVライブラリの実装は、支払先要求に含まれる署名に対する標準的なメッセージダイジェスト構成及び署名符号化方法として指名される。署名されるべきメッセージ又は要求は、(BSVライブラリのソースコードの中で文書化され得るように)Bitcoin署名方式の伝統的な又は知られているプリアンブルで開始してよく、その後に、フィールドpayerHandleとdtと、任意的に、上述の例示的なスキーマで議論した量及び目的フィールドとのUnicode Transformation Format-8-bit(UTF8)ストリング連結が続く。
要求内の量の指定にかんして、上述のスキーマに基づき、幾つかの実施形態では、以下のルールが適用されてよい。
量が存在する場合、それはストリングに変換される(先行するゼロを有しない)。
量が存在しない場合、ストリング「0」が使用される。
目的が存在しない場合、空ストリング「」が使用される(事実上、目的がメッセージ内に含まれない)。
図7A及び7Bは、本開示の第4の態様による、第2及び第3の態様に関連して上述したbsvalias支払いサービスのような支払いサービスに関連付けられた受取人クライアントへの暗号通貨支払いのための簡易支払いプロトコルを実施する方法を示すフロー図である。図7Aは、受取人エンティティのための支払いサービスに関連付けられた1つ以上のプロセッサにより実施される方法を示す。図7Bは、受取人エンティティのための支払いサービスと同じ又は異なる支払いサービスに関連付けられてよい支払いクライアントエンティティ、つまりこの場合には支払人エンティティに関連付けられた1つ以上のプロセッサにより実施される方法を示す。
幾つかの実施形態では、第4の態様の簡易支払いプロトコルは、図5A及び5Bに関連して議論したエイリアスに関連付けられた支払先に基づく。幾つかの実施形態では、支払先は、アウトプットスクリプト内に符号化されるべき又は含まれるべきアドレスに関連し、その結果、トランザクションは、このアドレスに基づき分散台帳、つまりブロックチェーンのために構成されてよい。幾つかの実施形態では、支払先はエンドポイント識別子である。他の実施形態では、支払先エンドポイント識別子は、エイリアスに関連付けられた公開アドレスと異なってよく、又はエイリアスに関連付けられたデジタルウォレットのための公開アドレスの部分であってよく又はそれに関連付けられてよい。幾つかの実施形態では、エイリアスに関連付けられた公開アドレス及び/又は支払先エンドポイント識別子は、静的又は動的に割り当てられてよい。図7A及び7Bに関連して説明した第4の態様の実施形態は、受取人エンティティ及び/又は支払人エンティティのためのSPVであるデジタルウォレットにより実装されてよい。しかしながら、これは、bsvaliasのような支払いサービスが上述の態様で説明したように任意のタイプのコンピューティング装置又はウォレット実装にために実装できるならば、本質的ではない。
2つの支払いエンティティの間の支払いトランザクションのための第4の態様の非限定的な説明では、上述の例を続けると、Alice(支払人)がBob(受取人)に支払いたいと望み、両方のパーティは同じタイプのSPVウォレットを使用すると仮定する。SPVウォレットは、ユーザの秘密鍵及び公開鍵、未使用トランザクション、及びブロックヘッダを格納することが知られている。このようなウォレットは、ブロックチェーンに接続する能力も有する。用語「ブロックヘッダ」は、従来知られており、ブロックチェーントランザクションのブロックの一番上に提供されるデータを表すために使用される。ブロックヘッダはブロックをユニークに識別するので、ブロックチェーン上に置かれることができる。それは、ブロック全体の内容のユニークな概要又はフィンガープリントを提供するデータのフィールドを有する。ブロックヘッダは、該ブロック内のトランザクションの全部のハッシュである、マークルルート(Merkle Root)を含む。ユーザは、次に、該ルートを有するマークル木(Merkle tree)を検索して、特定のトランザクションがブロックチェーン上の特定のブロックに含まれたかどうかをチェック(つまり検証)でき、ブロックチェーン全体をダウンロードする必要がない。SPVウォレットの利点は、電話機及びラップトップのような電力及び記憶の限られた装置が、他の形式のデジタルウォレット毎にブロックチェーンの完全なチェックを実行するのではなく、トランザクションが検証されたことをチェックするだけでよいので(従って、「簡易支払い検証」と呼ばれる)、そのような装置が、ブロックチェーンネットワーク内で動作することを可能にすることである。低帯域幅SPVシステムを用いるブロックチェーンネットワーク上の検証のための向上したセキュリティソリューションは、2019年2月5日出願のnChain Holdings Limitedによる以下の英国特許出願:GB1902086.6、GB1902088.2、GB1902090.8、GB1902089.0、及びGBGB1902092.4に詳細に説明されている。これらの出願におけるSPVウォレット実装は、本開示の第4の態様を実施するために使用されてもよいが、本開示は、このようなSPVウォレットに限定されない。
第4の態様の実施形態は、以下に、図7Aに関して議論される。ここで、方法は、支払いクライアント、この場合には受取人エンティティのための支払いサービスに関連付けられた1つ以上のプロセッサにより実施される。
ステップ702aは、支払人エンティティから、受取人クライアントのエイリアスに関連付けられた暗号通貨支払いのための支払い指示子を受信するステップを示す。従って、前述の実施形態の例を続けると、このステップは、Bobに支払うために、Aliceから要求を取得するステップを含む。ここで、Aliceは、暗号通貨の支払い、つまり3BSVが、AliceがBobについて認識しているエイリアス、つまりbob@nchain.comへと行われることを示す。この場合、エイリアスは、名称「bob」及びネットワーク識別子「nchain」を含む。しかしながら、上述の態様で言及したように、エイリアス内の名称は、ネットワーク識別子であってよく又はそれを示してよい。ネットワーク識別子は、tld、つまり最上位ドメイン名であってよい。これは、Bobにより提供される商品又はサービスの使用又は購入の意図により、又はそのような使用により、支払人クライアントにより送信され又は生成される通知のメッセージの形式であってよい。この場合、Bobは商人であり、及びAliceは顧客であると考えられる。
ステップ704aで、支払い指示子を受信すると、上述の例からbsvaliasである支払いサービスは、機械可読リソース、つまりJSONドキュメントにアクセスして、そのような支払いに関してBob、つまり受取人クライアントに利用可能な能力を識別する。bsvaliasがエイリアスbob@nhain.comについて上述の簡易支払いプロトコル能力をサポートすると仮定すると、そのような能力は、bsvaliasのJSONドキュメントの中で以下により指定されてよい:
Figure 2022528710000014
テンプレート値{name}及び{domain.tld}は、受取人のエイリアス、つまり<name>@<domain>.<tld>のコンポーネントを表す。これは、この能力に関連して要求を発行する前に、ユーザ又は別の支払いクライアントにより代入されるべきである。3b585cdaa4cdは、本例では、機械可読ドキュメント内の簡易支払い能力を表すエントリ識別子であってよい。
ステップ706aで、簡易支払いプロトコルの能力がエイリアスbob@nchain.comについて表記されると、受取人クライアントのための支払いサービスは、ステップ702aでAliceから受信した支払い指示子に基づき、Bobへと行われるべき支払いのためのアウトプットスクリプトを生成する。このアウトプットスクリプトは、支払い要求テンプレートに含まれるべきである。これは、支払いクライアント、本例ではAliceへ直接送信できる。
このステップで、ステップ704aで3b585cdaa4cdとして識別された能力は、ここで支払い要求テンプレートとして参照されるURIテンプレートの形式で、よく知られた/bsvaliasドキュメント、つまりbsvaliasの機械可読リソースからのパスを返す。アウトプットスクリプトは、支払いのための支払先エンドポイントに関連付けられ、アウトプットスクリプトの終了時間/日等のような他のメタデータも示してよい。アウトプットスクリプトに基づき生成された支払い要求テンプレートは、以下の例を含んでよい。
Figure 2022528710000015
上述の例では、「transactions」アレイの使用は、トランザクションテンプレート又は疑似トランザクションであることを示した。幾つかの実施形態では、これは、複数のHTTP要求を有しないで、バッチの提出、つまりブロックチェーンへの追加を可能にする。
txid、scriptSig、及びscriptPubKeyフィールドは、全て、本例では16進符号化された未処理のBitcoinバイナリを表す。例示的な値(value)フィールドは、satoshisを表す整数である。しかしながら、本開示及びその関連する実施形態はBitcoin又はBSV又はsatoshisに限定されないことが理解される。
ステップ708aで、支払い要求テンプレートは、ステップ706aで生成されたアウトプットスクリプトと共に、支払いサービスにより支払人エンティティへ直接送信される。幾つかの実施形態では、支払人エンティティがbsvaliasのような支払いサービスを使用する場合、支払い要求テンプレートは、支払人エンティティのエイリアス、つまりalice@nchain.com又はalice@notnchain.comへ送信される。
ステップ710aで、ステップ706aのテンプレートに基づく完全な支払いトランザクションが、受取人エンティティから受信される。これは、HTTPS POST要求として受信され、図6における支払先アドレッシングに関して説明した要求フロート同様である。ここで、エイリアス、つまり名称及びネットワーク識別子が、行われるべき暗号通貨支払いの詳細と一緒に、テンプレートに追加される。受信した完全な支払いトランザクションは、アウトプットスクリプトが既にテンプレート内に含まれるので、ブロックチェーンに提出される準備のできたフォーマットである。受信した完全な支払いトランザクションは、支払人エンティティにより署名される。これは、このステップでは、支払人エンティティの公開鍵に関連付けられたデジタル署名であり、例えば、図4で説明したPKIテンプレートに関連するHTTPS GET要求を用いて検証されてよい。
ステップ712aで、ステップ710aからの完全なトランザクションは、受取人エンティティにより分散台帳へ提出される。
第4の態様の方法及び実施形態は、有利なことに、受取人エンティティに関連付けられたウォレット、プロセッサ、及び/又はコンピューティング装置が、入来するトランザクションを追跡することを遙かに容易にし、ブロックチェーン内の全てのトランザクション及び全てのブロックをスキャンしない、又は同じことをするためにBloomフィルタに依存しない。従って、ノード、つまり受取人エンティティ、本例ではBobについて、入来する支払い及びトランザクションの数が増加するとき、本実施形態は、このようなトランザクションの全部及び任意の量が、容易に追跡できることを保証し、それにより、ブロックチェーンに基づく支払いサービスの信頼性及び拡張性を保証する。
本発明の態様は、受取人クライアントに対して行われる支払いトランザクションのセキュリティも増大し、支払人のデジタル署名が、ブロックチェーンに提出する前に検証されなければならない。これは追加のセキュリティ手段である。受取人クライアントのための支払いサービスは、支払い要求テンプレート内のエイリアスに関連付けられた鍵に対して支払わない署名済みトランザクションを拒否することを選択してよい。要求を拒否するとき、支払いサービスは、401(Unauthorsied、許可されない)、204(No Content、コンテンツが存在しない)、又は404(Not Found、不明)のような任意のHTTP状態コードを選択してよい。
図7Bは、図7Aに対応するステップに関連するが、支払人又は要求側エンティティのコンピューティング装置又はデジタルウォレットにおいて実施される。
ステップ702bは、受取人クライアントに関連するエイリアスに関連付けられた暗号通貨支払いのための支払い指示子を生成するステップに関し、ここで、受取人クライアントは支払いサービスに関連付けられる。ステップ702aでの説明を続けると、図示の非限定的な実施形態では、受取人のエイリアスはbob@nchain.comであり、支払いサービスはbsvaliasである。上述の様に、指示子は、自動的に生成されてよく、又は支払人エンティティ、つまりAliceから送信された、BSVの支払いがBobへと行われるべきであるというメッセージ又は通知であってよい。幾つかの実施形態では、支払人AliceがBobのエイリアス、つまりbob@nchain.comを認識しているだけなので、支払い指示子は、図4に関連して説明したようにHTTPS GET要求を用いて送信されてよいが、これは必須ではない。
ステップ704bで、支払い要求テンプレートは、受取人クライアントに関連付けられた支払いサービスから受信される。ステップ704aで上述したように、支払い要求テンプレートは、受取人エンティティへの支払いを行うために、ブロックチェーントランザクションの全部の詳細及びアウトプットスクリプトを含む。
ステップ706bで、支払人エンティティ又はそのウォレットに関連付けられた1つ以上のプロセッサは、取得した支払い要求テンプレートに基づき、該テンプレートにエイリアスと関連するネットワーク識別子とを含めることにより、つまりテンプレート値{name}及び{domain.tld}を受取人のエイリアス、つまり受取人エンティティから受信したURI内の<name>@<domain>.<tld>を表すように置き換えることにより、完全な支払いトランザクションを生成する。更に、暗号通貨の額を含む支払いの詳細は、受取人エンティティからのトランザクションテンプレートを完成するために追加される。
ステップ708bで、完全な支払いトランザクションに署名するために、支払人エンティティの公開鍵に関連付けられたデジタル署名が適用される。ステップ710aに関して上述したように、これは、支払人アイデンティティのアイデンティティが検証できるようにするためである。
ステップ710bで、完全な署名済み支払いトランザクションが、ステップ704bで受信したテンプレート内のアウトプットスクリプトに基づき、エイリアスに関連付けられた受取人エンティティへ送信される。これは、ステップ710aで示されたように、受取人のエイリアスを代入した後のHTTPS POST要求として提供される。幾つかの実施形態では、完全な支払いトランザクションが送信されると、受取人エンティティに関連付けられた支払いサービスからの暗号通貨支払いの肯定応答が、支払人エンティティにより受信されてよい。これは、支払人エンティティ、つまりAliceに関連付けられた支払いを追跡し又は監視するために使用されてよい。
図8を参照すると、本開示の少なくとも一実施形態を実施するために使用され得るコンピューティング装置2600の説明のための簡略ブロック図が提供される。種々の実施形態で、コンピューティング装置2600は、上述の図示のシステムのうちのいずれかを実装するために使用されてよい。例えば、コンピューティング装置2600は、支払いサービス又は支払いクライアントエンティティに関連付けられたウェブサーバ又は1つ以上のプロセッサ又はコンピューティング装置として使用するために、つまり支払いサービスの提供を担うホストを実施するよう、又は支払人若しくは受取人支払いクライアントエンティティを実施するよう構成されてよい。従ってコンピューティング装置2600は、ポータブルコンピューティング装置、パーソナルコンピュータ、又は任意の電子コンピューティング装置であってよい。図8に示すように、コンピューティング装置2600は、主メモリ2608及び永久記憶装置2610を含む記憶サブシステム2606と通信するよう構成され得る1つ以上のレベルのキャッシュメモリ及びメモリ制御部(集合的に2602とラベル付けされる)を備える1つ以上のプロセッサを含んでよい。主メモリ2608は、図示のように、動的ランダムアクセスメモリ(DRAM)2618及び読み出し専用メモリ(ROM)2620を含み得る。記憶サブシステム2606及びキャッシュメモリ2602は、本開示で説明されたようなトランザクション及びブロックに関連付けられた詳細事項のような情報の記憶のために使用されてよい。プロセッサ2602は、本開示で説明されたような任意の実施形態のステップ又は機能を提供するために利用されてよい。
プロセッサ2602は、1つ以上のユーザインタフェース入力装置2612、1つ以上のユーザインタフェース出力装置2614、及びネットワークインタフェースサブシステム2616とも通信できる。
バスサブシステム2604は、コンピューティング装置2600の種々のコンポーネント及びサブシステムが意図した通りに互いに通信できるようにするメカニズムを提供してよい。バスサブシステム2604は、単一のバスとして概略的に示されるが、バスサブシステムの代替の実施形態は、複数のバスを利用してよい。
ネットワークインタフェースサブシステム2616は、他のコンピューティング装置及びネットワークへのインタフェースを提供してよい。ネットワークインタフェースサブシステム2616は、幾つかの実施形態では、コンピューティング装置2600の他のシステムからデータを受信し及びそれへデータを送信するインタフェースとして機能してよい。例えば、ネットワークインタフェースサブシステム2616は、データ技術者が、装置をネットワークに接続することを可能にする。その結果、データ技術者は、データセンタのような遠隔地にいがなら、データを装置へ送信し、データを装置から受信できる。
ユーザインタフェース入力装置2612は、キーボード、統合型マウス、トラックボール、タッチパッド、又はグラフィックタブレットのような指示装置、スキャナ、バーコードスキャナ、ディスプレイに組み込まれたタッチスクリーン、音声認識システム、マイクロフォンのようなオーディオ入力装置、及び他の種類の入力装置のような、1つ以上のユーザ入力装置を含んでよい。通常、用語「入力装置」の使用は、コンピューティング装置2600に情報を入力する全ての可能な種類の装置及びメカニズムを含むことを意図する。
1つ以上のユーザインタフェース出力装置2614は、ディスプレイサブシステム、プリンタ、又は音声出力装置のような非視覚ディスプレイ、等を含んでよい。ディスプレイサブシステムは、陰極線管(CRT)、液晶ディスプレイ(LCD)、発光ダイオード(LED)ディスプレイ、又はプロジェクションのような平面装置、又は他のディスプレイ装置を含んでよい。通常、用語「出力装置」の使用は、コンピューティング装置2600から情報を出力する全ての可能な種類の装置及びメカニズムを含むことを意図する。1つ以上のユーザインタフェース出力装置2614は、例えば、ユーザインタフェースを提示して、ここに記載したプロセス及び変形を実行するアプリケーションとのユーザ相互作用が適切であるとき、そのような相互作用を実現するために使用されてよい。
記憶サブシステム2606は、本開示の少なくとも1つの実施形態の機能を提供する基本プログラミング及びデータ構造を記憶するコンピュータ可読記憶媒体を提供してよい。アプリケーション(例えば、プログラム、コードモジュール、命令)は、1つ以上のプロセッサにより実行されると、本開示の1つ以上の実施形態の機能を提供し、記憶サブシステム2606に格納されてよい。これらのアプリケーションモジュール又は命令は、1つ以上のプロセッサ2602により実行されてよい。記憶サブシステム2606は、更に、本開示に従い使用されるデータを格納するレポジトリを提供する。例えば、主メモリ2608及びキャッシュメモリ2602は、プログラム及びデータのための揮発性記憶を提供できる。永久記憶装置2610は、プログラム及びデータの永久(不揮発性)記憶を提供でき、磁気ハードディスクドライブ、取り外し可能媒体に関連付けられた1つ以上のフロッピディスクドライブ、取り外し可能媒体に関連付けられた1つ以上の光ドライブ(例えば、CD-ROM、又はDVD、又はBlue-Ray)ドライブ、及び他の同様の記憶媒体を含んでよい。このようなプログラム及びデータは、本開示に記載した1つ以上の実施形態のステップを実行するためのプログラム、及び本開示に記載したトランザクション及びブロックに関連付けられたデータを含み得る。
コンピューティング装置2600は、ポータブルコンピュータ装置、タブレットコンピュータ、ワークステーション、又は後述する任意の他の装置を含む種々のタイプのものであってよい。さらに、コンピューティング装置2600は、1つ以上のポート(例えば、USB、ヘッドフォンジャック、光コネクタ、等)を通じてコンピューティング装置2600に接続可能な別の装置を含み得る。コンピューティング装置2600に接続され得る装置は、光ファイバコネクタを受けるよう構成される複数のポートを含んでよい。従って、この装置は、光信号を、処理のために装置を接続するポートを通じてコンピューティング装置2600に送信される電気信号に変換するよう構成されてよい。コンピュータ及びネットワークの絶えず変化する特性により、図8に示したコンピューティング装置2600の説明は、装置の好適な実施形態を説明する目的の特定の例としてのみ意図される。図8に示したシステムより多くの又は少ないコンポーネントを有する多くの他の構成が可能である。
図8を参照すると、本開示の少なくとも一実施形態を実施するために使用され得るコンピューティング装置2600の説明のための簡略ブロック図が提供される。種々の実施形態で、コンピューティング装置2600は、上述の図示のシステムのうちのいずれかを実装するために使用されてよい。例えば、コンピューティング装置2600は、支払いサービス又は支払いクライアントエンティティに関連付けられたウェブサーバ又は1つ以上のプロセッサ又はコンピューティング装置として使用するために、つまり支払いサービスの提供を担うホストを実施するよう、又は支払人若しくは受取人支払いクライアントエンティティを実施するよう構成されてよい。従ってコンピューティング装置2600は、ポータブルコンピューティング装置、パーソナルコンピュータ、又は任意の電子コンピューティング装置であってよい。図8に示すように、コンピューティング装置2600は、主メモリ2608及び永久記憶装置2610を含む記憶サブシステム2606と通信するよう構成され得る1つ以上のレベルのキャッシュメモリ及びメモリ制御部(集合的に2602とラベル付けされる)を備える1つ以上のプロセッサを含んでよい。主メモリ2608は、図示のように、動的ランダムアクセスメモリ(DRAM)2618及び読み出し専用メモリ(ROM)2620を含み得る。記憶サブシステム2606及びキャッシュメモリ2602は、本開示で説明されたようなトランザクション及びブロックに関連付けられた詳細事項のような情報の記憶のために使用されてよい。プロセッサ2602は、本開示で説明されたような任意の実施形態のステップ又は機能を提供するために利用されてよい。
プロセッサ2602は、1つ以上のユーザインタフェース入力装置2612、1つ以上のユーザインタフェース出力装置2614、及びネットワークインタフェースサブシステム2616とも通信できる。
バスサブシステム2604は、コンピューティング装置2600の種々のコンポーネント及びサブシステムが意図した通りに互いに通信できるようにするメカニズムを提供してよい。バスサブシステム2604は、単一のバスとして概略的に示されるが、バスサブシステムの代替の実施形態は、複数のバスを利用してよい。
ネットワークインタフェースサブシステム2616は、他のコンピューティング装置及びネットワークへのインタフェースを提供してよい。ネットワークインタフェースサブシステム2616は、幾つかの実施形態では、コンピューティング装置2600の他のシステムからデータを受信し及びそれへデータを送信するインタフェースとして機能してよい。例えば、ネットワークインタフェースサブシステム2616は、データ技術者が、装置をネットワークに接続することを可能にする。その結果、データ技術者は、データセンタのような遠隔地にいがなら、データを装置へ送信し、データを装置から受信できる。
ユーザインタフェース入力装置2612は、キーボード、統合型マウス、トラックボール、タッチパッド、又はグラフィックタブレットのような指示装置、スキャナ、バーコードスキャナ、ディスプレイに組み込まれたタッチスクリーン、音声認識システム、マイクロフォンのようなオーディオ入力装置、及び他の種類の入力装置のような、1つ以上のユーザ入力装置を含んでよい。通常、用語「入力装置」の使用は、コンピューティング装置2600に情報を入力する全ての可能な種類の装置及びメカニズムを含むことを意図する。
1つ以上のユーザインタフェース出力装置2614は、ディスプレイサブシステム、プリンタ、又は音声出力装置のような非視覚ディスプレイ、等を含んでよい。ディスプレイサブシステムは、陰極線管(CRT)、液晶ディスプレイ(LCD)、発光ダイオード(LED)ディスプレイ、又はプロジェクションのような平面装置、又は他のディスプレイ装置を含んでよい。通常、用語「出力装置」の使用は、コンピューティング装置2600から情報を出力する全ての可能な種類の装置及びメカニズムを含むことを意図する。1つ以上のユーザインタフェース出力装置2614は、例えば、ユーザインタフェースを提示して、ここに記載したプロセス及び変形を実行するアプリケーションとのユーザ相互作用が適切であるとき、そのような相互作用を実現するために使用されてよい。
記憶サブシステム2606は、本開示の少なくとも1つの実施形態の機能を提供する基本プログラミング及びデータ構造を記憶するコンピュータ可読記憶媒体を提供してよい。アプリケーション(例えば、プログラム、コードモジュール、命令)は、1つ以上のプロセッサにより実行されると、本開示の1つ以上の実施形態の機能を提供し、記憶サブシステム2606に格納されてよい。これらのアプリケーションモジュール又は命令は、1つ以上のプロセッサ2602により実行されてよい。記憶サブシステム2606は、更に、本開示に従い使用されるデータを格納するレポジトリを提供する。例えば、主メモリ2608及びキャッシュメモリ2602は、プログラム及びデータのための揮発性記憶を提供できる。永久記憶装置2610は、プログラム及びデータの永久(不揮発性)記憶を提供でき、磁気ハードディスクドライブ、取り外し可能媒体に関連付けられた1つ以上のフロッピディスクドライブ、取り外し可能媒体に関連付けられた1つ以上の光ドライブ(例えば、CD-ROM、又はDVD、又はBlue-Ray)ドライブ、及び他の同様の記憶媒体を含んでよい。このようなプログラム及びデータは、本開示に記載した1つ以上の実施形態のステップを実行するためのプログラム、及び本開示に記載したトランザクション及びブロックに関連付けられたデータを含み得る。
コンピューティング装置2600は、ポータブルコンピュータ装置、タブレットコンピュータ、ワークステーション、又は後述する任意の他の装置を含む種々のタイプのものであってよい。さらに、コンピューティング装置2600は、1つ以上のポート(例えば、USB、ヘッドフォンジャック、光コネクタ、等)を通じてコンピューティング装置2600に接続可能な別の装置を含み得る。コンピューティング装置2600に接続され得る装置は、光ファイバコネクタを受けるよう構成される複数のポートを含んでよい。従って、この装置は、光信号を、処理のために装置を接続するポートを通じてコンピューティング装置2600に送信される電気信号に変換するよう構成されてよい。コンピュータ及びネットワークの絶えず変化する特性により、図8に示したコンピューティング装置2600の説明は、装置の好適な実施形態を説明する目的の特定の例としてのみ意図される。図8に示したシステムより多くの又は少ないコンポーネントを有する多くの他の構成が可能である。
<列挙される例示的な実施形態>
(項1) 分散台帳に関連付けられたトランザクションのための1つ以上のクライアントのために支払いサービスを実施する、コンピュータにより実施される方法であって、前記方法は、
前記1つ以上のクライアントの中の所与のクライアントのためのエイリアスを提供するステップであって、前記エイリアスは前記所与のクライアントに固有であり、前記エイリアスはネットワーク識別子を含み又はそれに関連する、ステップと、
前記エイリアスを、ディレクトリ内の前記ネットワーク識別子に関連付けるステップと、
を含み、
前記関連付けるステップは、
前記ディレクトリ内の前記ネットワーク識別子に基づき、サービスレコードを生成するステップと、
前記支払いサービスが前記ネットワーク識別子に関連付けられたネットワークまたはドメインにより提供されることを示すよう、前記サービスレコードを更新するステップと、
前記支払いサービスを担うホストコンピューティングリソースの位置を示すよう、前記サービスレコードを更新するステップであって、前記ホストコンピューティングリソースは、前記エイリアスに関連するトランザクションに関する要求に応答して、前記エイリアスに関連付けられたデジタルウォレットの識別を実現するよう構成される、ステップと、
を含む、方法。
(項2) 前記1つ以上のクライアントのうちの各クライアントは、デジタルウォレットに関連付けられる、項1に記載の方法。
(項3) 前記エイリアスに関連付けられたトランザクションに関連する要求側エンティティからの要求に応答して、前記エイリアスに基づき前記ディレクトリの検索を実行するステップと、
前記ネットワーク識別子に関連する前記ディレクトリ内の前記支払いサービスの前記サービスレコードを識別するステップと、
前記支払いサービスのための前記ホストコンピューティングリソースの前記位置を返すステップであって、前記エイリアスに関連付けられた前記クライアントの公開アドレスは、前記返された位置に基づき決定され、前記公開アドレスは前記トランザクションの中で使用される、ステップと、
を含む項1又は2に記載の方法。
(項4) 分散台帳のためのトランザクションに関連する方法であって、エイリアスが1つ以上のクライアントの中の所与のクライアントのために提供され、前記エイリアスは前記所与のクライアントに固有であり、前記エイリアスはネットワーク識別子を含み又はそれに関連し、前記方法は、
要求側エンティティから、トランザクションに関連する要求を送信するステップであって、前記要求は前記エイリアスに関連付けられる、ステップと、
支払いサービスに関連付けられたホストコンピューティングリソースの位置を取得するステップであって、前記位置は、ディレクトリの検索において識別される前記ネットワーク識別子に関連するサービスレコードに基づく、ステップと、
を含み、
前記エイリアスに関連付けられた前記クライアントの公開アドレスは、前記位置に基づき決定され、前記公開アドレスは前記トランザクションの中で使用される、方法。
(項5) 前記1つ以上のクライアントのうちの各クライアントは、デジタルウォレットに関連付けられる、項4に記載の方法。
(項6) 前記ホストコンピューティングリソースの位置を返す又は取得する前記ステップは、ターゲット及びポートペアを返す又は取得するステップを含み、前記ターゲットは、前記ホストコンピューティングリソースの識別子を含み、前記ポートは、前記支払いサービスにより使用されるインターネットプロトコル通信ポートの識別子を含む、項3~5のいずれかに記載の方法。
(項7) 前記ホストコンピューティングリソースは、前記エイリアスのネットワーク識別子に関連付けられたネットワークと異なる支払いネットワークに関連付けられ、前記ネットワークに登録された1つ以上のエンティティの前記支払いサービスは、前記支払いネットワークに関連付けられた支払いドメインに委任される(delegated to)、項1~6のいずれかに記載の方法。
(項8) 前記ホストコンピューティングリソースは、支払いネットワークに関連付けられ、前記支払いネットワークの前記ドメインは、前記エイリアスの前記ネットワーク識別子に関連付けられた前記ネットワークの前記ドメインと同じである、項1~7のいずれかに記載の方法。
(項9) 分散台帳に関連付けられたトランザクションのための1つ以上のクライアントのための支払いサービスを実施する、コンピュータにより実施される方法であって、前記方法は、
前記支払いサービスに関連付けられた機械可読リソースを生成するステップであって、前記機械可読リソースは、
各クライアントのための前記支払いサービスの実施を担うホストコンピューティングリソースに関連付けられた少なくとも1つのエンドポイント識別子であって、各クライアントはエイリアスに関連付けられ、前記エイリアスはネットワーク識別子を含み又はそれに関連する、少なくとも1つのエンドポイント識別子と、
前記支払いサービスによりサポートされる複数の能力の中の少なくとも1つの能力に関連付けられたエントリと、
前記エイリアスに関連付けられた公開アドレスにアクセスする又はそれを取得するための命令及び/又は仕様であって、前記公開アドレスは、前記エイリアスに関連付けられたトランザクションを実現するために使用される、命令及び/又は仕様と、
を含む、ステップと、
前記支払いサービスに関連付けられた予測可能な又知られた位置において、前記機械可読リソースを提供するステップと、
を含む方法。
(項10) 前記1つ以上のクライアントのうちの各クライアントは、デジタルウォレットに関連付けられる、項9に記載の方法。
(項11) 前記複数の能力は、以下:
支払人エンティティ又は受取人エンティティ検証、
トランザクションのための複数のデジタル署名、
トランザクションのための受取人エンティティ認可、
電子メールプロトコルに関連する支払いトランザクション、
支払いトランザクションのための簡易支払いプロトコル又はフロー、及び/又は、
コールバック要求又は応答、
のうちの1つ以上を含む、項9又は10に記載の方法。
(項12) 項1~3、6~8のいずれかに記載の方法によりホストコンピューティングリソースの位置を決定するステップ、を更に含み、前記機械可読リソース内の前記エンドポイント識別子は、前記決定した位置に基づく、項9~11のいずれかに記載の方法。
(項13) エイリアスに関連付けられたトランザクションに関連する要求側エンティティから要求を受信することに応答して、前記方法は、
前記要求内の前記エイリアスに関連付けられた前記ネットワーク識別子に基づき、前記エイリアスに関連付けられた前記支払いサービスを識別するステップと、
前記識別された支払いサービスに基づき、前記予測可能な又は知られている位置から前記機械可読リソースにアクセスするステップと、
前記トランザクションのために必要な1つ以上の能力が前記機械可読リソース内に存在数rかどうかを識別することに応答して、前記機械可読リソースから前記支払いサービスのための前記ホストコンピューティングリソースのエンドポイント識別子を返すステップと、
前記機械可読リソース内の前記命令及び/又は仕様のうちの1つ以上に基づき、前記エイリアスに関連付けられた公開アドレスを取得するステップと、
を含む項9~12のいずれかに記載の方法。
(項14) 分散台帳のためのトランザクションに関連付けられた方法であって、エイリアスが1つ以上のクライアントの中の所与のクライアントのために提供され、前記エイリアスは前記所与のクライアントに固有であり、前記エイリアスはネットワーク識別子を含み又はそれに関連し、前記方法は、
要求側エンティティから、トランザクションに関連する要求を送信するステップであって、前記要求は前記エイリアスに関連付けられる、ステップと、
前記支払いサービスに関連付けられた位置から、前記機械可読リソースにアクセスするステップであって、前記支払いサービスは、前記エイリアス内の前記ネットワーク識別子に基づき識別され、前記機械可読リソースは項9に従い生成される、ステップと、
前記トランザクションのために必要な1つ以上の能力が前記機械可読リソース内に存在するかどうかを識別することに基づき、前記エイリアスに関連付けられた前記支払いサービスのための前記ホストコンピューティングリソースのエンドポイント識別子を受信するステップと、
前記機械可読リソース内の前記命令及び/又は仕様のうちの1つ以上を用いて、前記エイリアスに関連付けられた公開アドレスを取得するステップと、
を含む方法。
(項15) デジタルウォレットに関連付けられた各クライアントはネットワーク内の前記支払いサービスについて登録されたユーザ又はエンティティに関連付けられ、各デジタルウォレットは、前記分散台帳上のトランザクションのための非対称暗号鍵ペアの公開鍵及び秘密鍵に関連付けられた暗号通貨ウォレットであり、前記公開アドレスを取得する前記ステップは、前記エイリアスに関連付けられた前記デジタルウォレットの前記公開鍵を取得するステップを含む、項13又は14に記載の方法。
(項16) 前記エイリアスに関連付けられた前記公開アドレスは、前記エイリアスに関連付けられた前記デジタルウォレットの前記公開鍵の暗号ハッシュに基づく、項15に記載の方法。
(項17) 前記デジタルウォレットの前記公開鍵は、楕円曲線デジタル署名アルゴリズム(elliptic curve digital signature algorithm (ECDSA))公開鍵であり、前記公開鍵は、前記分散台帳に前に格納された又はそれに記入された任意のトランザクションの部分ではない、項15又は16に記載の方法。
(項18) 前記機械可読リソースの中の前記1つ以上の命令及び/又は仕様は、
PKI(public key infrastructure)エンドポイント識別子について、前記機械可読リソースからPKI要求テンプレートを取得することと、
前記エイリアス及び前記ネットワーク識別子を前記テンプレートに含めて、完全なPKI要求を生成することと、
前記エイリアスに関連付けられた公開鍵を取得するために、前記完全なPKI要求に基づき、HTTP GET要求を送信することと、
を含む、項13~17のいずれか一項に記載の方法。
(項19) 前記機械可読リソースの知られている又は予測可能な位置は、前記エンドポイント識別子、前記支払いサービスにより使用されるインターネットプロトコル通信ポート、及び/又は公衆アクセス可能なよく知られたドメインレポジトリに含まれる前記支払いサービスの構成仕様、のうちの少なくとも1つに基づく、項9~18のいずれかに記載の方法。
(項20) 前記機械可読リソースは、JSON(Java Script Object Notation)フォーマットを用いて生成される、項9~19のいずれかに記載の方法。
(項21) 前記エイリアスに関連付けられた前記公開アドレスを取得する前記ステップは、
エイリアスに関連付けられた受取人エンティティの支払先を取得するステップであって、前記支払先は、支払人エンティティから前記エイリアスへの暗号通貨支払いを行うトランザクションを構成する際に使用される、ステップを含み、
前記方法は、
前記支払いサービスのための前記機械可読リソースにアクセスするステップと、
前記機械可読ドキュメント内の1つ以上の命令及び/又は仕様に基づき、支払先エンドポイント識別子を返すステップと、
前記支払人エンティティから前記トランザクションの支払いの詳細を取得するステップであって、前記支払いの詳細は、前記受取人エンティティクライアントに関連付けられたエイリアス及び前記受取人に支払われるべき暗号通貨の額を含む、ステップと、
前記支払いの詳細を前記支払人エンティティに関連付けられた暗号鍵に関連付けるデジタル署名を取得するステップと、
前記エイリアスに関連付けられた前記支払先エンドポイント識別子に関連付けられたアウトプットスクリプトを生成するステップであって、前記アウトプットスクリプトは、前記分散台帳のためのトランザクションに埋め込むために提供される、ステップと、
を含む項13、15~20のいずれかに記載の方法。
(項22) 前記エイリアスに関連付けられた前記公開アドレスを取得する前記ステップは、
前記エイリアスに関連付けられた受取人エンティティの支払先を取得するステップであって、前記支払先は、支払人エンティティから前記エイリアスへの暗号通貨支払いを行うトランザクションを構成する際に使用される、ステップを含み、
前記トランザクションを構成するステップは、
前記支払人エンティティから、前記トランザクションに関する要求を送信するステップであって、前記要求は前記エイリアスに関連付けられる、ステップと、
前記支払いサービスに関連付けられた位置から前記機械可読リソースにアクセスするステップと、
前記機械可読リソース内の前記1つ以上の命令及び/又は仕様に基づき、支払先エンドポイント識別子を受信するステップと、
前記トランザクションの支払いの詳細を提供するステップであって、前記支払いの詳細は、前記受取人エンティティクライアントに関連付けられたエイリアスと前記受取人エンティティに支払われるべき暗号通貨の額とを含む、ステップと、
前記支払いの詳細を暗号鍵に関連付けるデジタル署名を提供するステップと、
前記エイリアスに関連付けられた前記支払先エンドポイント識別子に関連付けられたアウトプットスクリプトを受信するステップと、
前記分散台帳のためのトランザクションに前記受信したアウトプットスクリプトを埋め込むことにより、前記トランザクションを生成するステップと、
を含む、項14~20のいずれかに記載の方法。
(項23) 前記機械可読リソースの中の前記1つ以上の命令及び/又は仕様は、
支払先エンドポイント識別子について、前記機械可読リソースから支払先要求テンプレートを取得することと、
前記エイリアス及び前記ネットワーク識別子を前記テンプレートに含めて、完全な支払先要求を生成することと、
前記エイリアスに関連付けられた支払先エンドポイント識別子を取得するために、前記完全な支払先要求に基づき、HTTP POST要求を送信することと、
を含む、項21又は22に記載の方法。
(項24) 前記エイリアス及び前記支払人エンティティの前記公開アドレスは、それぞれ、前記受取人エンティティ及び前記支払人エンティティに関連付けられたそれぞれのデジタルウォレットの公開鍵を含み、前記デジタル署名が、前記支払人エンティティのアイデンティティを検証するために使用される、項21~23のいずれかに記載の方法。
(項25) 前記支払人エンティティ及び前記受取人エンティティの両者に関連付けられたデジタル署名は、前記生成されたトランザクションが前記分散台帳に格納される又は記入される前に、それぞれのエンティティの検証のために要求される、項21~24のいずれかに記載の方法。
(項26) 分散台帳に関連付けられたトランザクションのための1つ以上のクライアントのための支払いサービスを実施する、コンピュータにより実施される方法であって、前記方法は、
前記支払いサービスに関連付けられた機械可読リソースを更新するステップであって、前記機械可読リソースは、前記支払いサービスに関連付けられた予測可能な又は知られた位置において提供され又はそこからアクセス可能であり、前記機械可読リソースは項9に従い生成される、ステップを含み、
前記更新するステップは、前記支払いサービスによりサポートされる少なくとも1つの更なる能力を追加するステップであって、前記少なくとも1つの更なる能力は、前記1つ以上のクライアントの中の所与のクライアントのデジタルアセットを処理する簡易プロトコルを実施するステップを含む、方法。
(項27) 分散台帳に関連付けられたトランザクションのための支払いサービスを実施する、コンピュータにより実施される方法であって、前記支払いサービスに関連付けられた1つ以上のクライアントの中のクライアントにエイリアスが提供され、前記エイリアスは前記クライアントに固有であり、各クライアントはそれぞれのエイリアスを提供され、前記方法は、
支払人エンティティから、エイリアスに関連付けられた暗号通貨支払いのための支払い指示子を受信するステップであって、前記指示子は、前記支払いサービスに関連付けられた前記1つ以上のクライアントの中の受取人エンティティに関連し、前記受取人エンティティは前記支払い指示子の中の前記エイリアスに関連付けられる、ステップと、
項9に従い機械可読リソースに基づき支払い要求テンプレートを提供するステップであって、前記機械可読リソースは前記支払いサービスに関連付けられ、前記支払い要求テンプレートは前記受取人エンティティのためのアウトプットスクリプトを含む、ステップと、
前記支払人エンティティから、前記支払いテンプレートに基づき完全な支払いトランザクションを受信するステップであって、前記完全な支払いトランザクションは、前記エイリアス及び前記ネットワーク識別子に関連付けられる、ステップと、
前記完全な支払いトランザクションを前記分散台帳に提供するステップと、
を含む方法。
(項28) 前記受取人クライアントの前記支払いサービスは、項26に記載の方法により実施され、前記受取人クライアントの前記支払いサービスによりサポートされる前記少なくとも1つの能力は、項26の更新された機械可読リソースの中の少なくとも1つの更なる能力に基づく、項27に記載の方法。
(項29) 前記支払い要求テンプレート内の前記アウトプットスクリプトは、支払人エンティティから前記エイリアスへの暗号通貨支払いのためのトランザクションを構成する際に使用するための支払先を含み、前記アウトプットスクリプトは、以下:
前記支払いサービスのための前記機械可読リソースにアクセスするステップと、
前記機械可読ドキュメント内の前記1つ以上の命令及び/又は仕様に基づく支払先エンドポイント識別子を取得するステップと、
前記エイリアスが関連する前記受取人エンティティのための前記支払先エンドポイント識別子に関連付けられた前記アウトプットスクリプトを生成するステップと、
により提供される、項27又は28に記載の方法。
(項30) 前記支払人エンティティからHTTPS POST要求の形式で前記完全な支払いトランザクションを受信するステップであって、前記完全な支払いトランザクションは、
前記支払人エンティティからの前記支払いトランザクションの支払いの詳細であって、前記支払いの詳細は前記受取人エンティティに関連付けられた前記エイリアス及び前記受取人エンティティへ送信されるべき暗号通貨の額を含む、支払いの詳細と、
前記支払いの詳細を前記支払人エンティティに関連する暗号鍵に関連付けるデジタル署名と、を含む、ステップと、
前記分散台帳に前記完全な支払いトランザクションを提出するステップと、
を含む、項27又は29のいずれかに記載の方法。
(項31) 前記支払人エンティティへ、前記完全な支払いトランザクションの受信に対する肯定応答を送信するステップ、を含む項30に記載の方法。
(項32) 分散台帳のためのトランザクションに関連付けられた、コンピュータにより実施される方法であって、支払いサービスに関連付けられた1つ以上のクライアントの中のクライアントにエイリアスが提供され、前記エイリアスは前記クライアントに固有であり、各クライアントはそれぞれのエイリアスに関連付けられ、前記方法は、
前記支払いサービスに関連付けられた前記1つ以上のクライアントの中の受取人エンティティに関連するエイリアスに関連付けられた暗号通貨支払いのための支払い指示子を生成するステップと、
項9に記載の機械可読リソース内の1つ以上の命令及び/又は仕様に基づき、前記エイリアスへ前記支払い指示子を送信するステップであって、前記機械可読リソースは前記エイリアスの前記支払サービスに関連付けられる、ステップと、
前記エイリアスに関連する前記支払いサービスから支払い要求テンプレートを取得するステップであって、前記支払い要求テンプレートは前記受取人エンティティのためのアウトプットスクリプトを含む、ステップと、
前記取得した支払い要求テンプレートに基づき、以下:
前記支払いトランザクションに署名するために、支払人エンティティの公開鍵に関連付けられたデジタル署名を適用し、
前記エイリアスに支払われるべき暗号通貨の額を含む支払いを提供する、
ことにより、完全な支払いトランザクションを生成するステップと、
前記エイリアスに関連付けられた前記受取人エンティティへ、前記完全な支払いトランザクションを送信するステップと、
を含む方法。
(項33) 前記受取人エンティティに関連付けられた前記支払いサービスから前記暗号通貨支払いの肯定応答を受信するステップ、を含む項1に記載の方法。
(項34) 前記エイリアスは、クライアントに関連付けられた支払いハンドル(payment handle)である、項1~25のいずれかに記載の方法。
(項35) 要求側エンティティからクライアントに関連付けられたエイリアスへのトランザクションに関連する要求を生成するためのプレフィックスを構成する方法であって、前記方法は、
前記プレフィックス及び前記エイリアスを含む、前記要求側エンティティからの要求を受信することに応答して、前記エイリアスに基づき項1~34のいずれかに記載のステップをトリガするステップを含む方法。
(項36) コンピューティング装置又はコンピュータシステムであって、
プロセッサと、
前記プロセッサによる実行の結果として、前記システムに項1~35のいずれか一項に記載のコンピュータにより実施される方法を実行させる実行可能命令を含むメモリと、
を含むコンピューティング装置又はコンピュータシステム。
(項37) 実行可能命令を記憶した非一時的コンピュータ可読記憶媒体であって、前記実行可能命令は、コンピュータシステムのプロセッサにより実行された結果として、前記コンピュータシステムに、項1~35のいずれか一項に記載のコンピュータにより実施される方法を実行させる、非一時的コンピュータ可読記憶媒体。
上述の実施形態は、本開示を限定するのではなく、説明すること、及び当業者は添付の特許請求の範囲により定められる本開示の範囲から逸脱することなく多くの代替的実施形態を考案できることに留意すべきである。請求項において、括弧内の任意の参照符号は、請求項を限定すると考えられるべきではない。用語「有する」及び「含む」(comprising、comprises)等は、任意の請求項又は明細書全体に列挙されたもの以外の要素又はステップの存在を排除しない。本願明細書では、「有する」は「有する又は構成される」を意味し、「含む」は「含む又は構成される」を意味する。要素の単数の参照は、そのような要素の複数の参照を排除しない。逆も同様である。本開示は、幾つかの別個の要素を含むハードウェアにより、及び適切にプログラムされたコンピュータにより、実装できる。幾つかの手段を列挙する装置クレームでは、これらの手段のうちの幾つかは、1つの同じハードウェアアイテムにより具現化されてよい。単に特定の手段が相互に異なる従属請求項に記載されるという事実は、これらの手段の組み合わせが有利に使用されないことを示さない。

Claims (37)

  1. 分散台帳に関連付けられたトランザクションのための1つ以上のクライアントのために支払いサービスを実施する、コンピュータにより実施される方法であって、前記方法は、
    前記1つ以上のクライアントの中の所与のクライアントのためのエイリアスを提供するステップであって、前記エイリアスは前記所与のクライアントに固有であり、前記エイリアスはネットワーク識別子を含み又はそれに関連する、ステップと、
    前記エイリアスを、ディレクトリ内の前記ネットワーク識別子に関連付けるステップと、
    を含み、
    前記関連付けるステップは、
    前記ディレクトリ内の前記ネットワーク識別子に基づき、サービスレコードを生成するステップと、
    前記支払いサービスが前記ネットワーク識別子に関連付けられたネットワークまたはドメインにより提供されることを示すよう、前記サービスレコードを更新するステップと、
    前記支払いサービスを担うホストコンピューティングリソースの位置を示すよう、前記サービスレコードを更新するステップであって、前記ホストコンピューティングリソースは、前記エイリアスに関連するトランザクションに関する要求に応答して、前記エイリアスに関連付けられたデジタルウォレットの識別を実現するよう構成される、ステップと、
    を含む、方法。
  2. 前記1つ以上のクライアントのうちの各クライアントは、デジタルウォレットに関連付けられる、請求項1に記載の方法。
  3. 前記エイリアスに関連付けられたトランザクションに関連する要求側エンティティからの要求に応答して、前記エイリアスに基づき前記ディレクトリの検索を実行するステップと、
    前記ネットワーク識別子に関連する前記ディレクトリ内の前記支払いサービスの前記サービスレコードを識別するステップと、
    前記支払いサービスのための前記ホストコンピューティングリソースの前記位置を返すステップであって、前記エイリアスに関連付けられた前記クライアントの公開アドレスは、前記返された位置に基づき決定され、前記公開アドレスは前記トランザクションの中で使用される、ステップと、
    を含む請求項1又は2に記載の方法。
  4. 分散台帳のためのトランザクションに関連する方法であって、エイリアスが1つ以上のクライアントの中の所与のクライアントのために提供され、前記エイリアスは前記所与のクライアントに固有であり、前記エイリアスはネットワーク識別子を含み又はそれに関連し、前記方法は、
    要求側エンティティから、トランザクションに関連する要求を送信するステップであって、前記要求は前記エイリアスに関連付けられる、ステップと、
    支払いサービスに関連付けられたホストコンピューティングリソースの位置を取得するステップであって、前記位置は、ディレクトリの検索において識別される前記ネットワーク識別子に関連するサービスレコードに基づく、ステップと、
    を含み、
    前記エイリアスに関連付けられた前記クライアントの公開アドレスは、前記位置に基づき決定され、前記公開アドレスは前記トランザクションの中で使用される、方法。
  5. 前記1つ以上のクライアントのうちの各クライアントは、デジタルウォレットに関連付けられる、請求項4に記載の方法。
  6. 前記ホストコンピューティングリソースの位置を返す又は取得する前記ステップは、ターゲット及びポートペアを返す又は取得するステップを含み、前記ターゲットは、前記ホストコンピューティングリソースの識別子を含み、前記ポートは、前記支払いサービスにより使用されるインターネットプロトコル通信ポートの識別子を含む、請求項3~5のいずれかに記載の方法。
  7. 前記ホストコンピューティングリソースは、前記エイリアスのネットワーク識別子に関連付けられたネットワークと異なる支払いネットワークに関連付けられ、前記ネットワークに登録された1つ以上のエンティティの前記支払いサービスは、前記支払いネットワークに関連付けられた支払いドメインに委任される(delegated to)、請求項1~6のいずれかに記載の方法。
  8. 前記ホストコンピューティングリソースは、支払いネットワークに関連付けられ、前記支払いネットワークの前記ドメインは、前記エイリアスの前記ネットワーク識別子に関連付けられた前記ネットワークの前記ドメインと同じである、請求項1~7のいずれかに記載の方法。
  9. 分散台帳に関連付けられたトランザクションのための1つ以上のクライアントのための支払いサービスを実施する、コンピュータにより実施される方法であって、前記方法は、
    前記支払いサービスに関連付けられた機械可読リソースを生成するステップであって、前記機械可読リソースは、
    各クライアントのための前記支払いサービスの実施を担うホストコンピューティングリソースに関連付けられた少なくとも1つのエンドポイント識別子であって、各クライアントはエイリアスに関連付けられ、前記エイリアスはネットワーク識別子を含み又はそれに関連する、少なくとも1つのエンドポイント識別子と、
    前記支払いサービスによりサポートされる複数の能力の中の少なくとも1つの能力に関連付けられたエントリと、
    前記エイリアスに関連付けられた公開アドレスにアクセスする又はそれを取得するための命令及び/又は仕様であって、前記公開アドレスは、前記エイリアスに関連付けられたトランザクションを実現するために使用される、命令及び/又は仕様と、
    を含む、ステップと、
    前記支払いサービスに関連付けられた予測可能な又知られた位置において、前記機械可読リソースを提供するステップと、
    を含む方法。
  10. 前記1つ以上のクライアントのうちの各クライアントは、デジタルウォレットに関連付けられる、請求項9に記載の方法。
  11. 前記複数の能力は、以下:
    支払人エンティティ又は受取人エンティティ検証、
    トランザクションのための複数のデジタル署名、
    トランザクションのための受取人エンティティ認可、
    電子メールプロトコルに関連する支払いトランザクション、
    支払いトランザクションのための簡易支払いプロトコル又はフロー、及び/又は、
    コールバック要求又は応答、
    のうちの1つ以上を含む、請求項9又は10に記載の方法。
  12. 請求項1~3、6~8のいずれかに記載の方法によりホストコンピューティングリソースの位置を決定するステップ、を更に含み、前記機械可読リソース内の前記エンドポイント識別子は、前記決定した位置に基づく、請求項9~11のいずれかに記載の方法。
  13. エイリアスに関連付けられたトランザクションに関連する要求側エンティティから要求を受信することに応答して、前記方法は、
    前記要求内の前記エイリアスに関連付けられた前記ネットワーク識別子に基づき、前記エイリアスに関連付けられた前記支払いサービスを識別するステップと、
    前記識別された支払いサービスに基づき、前記予測可能な又は知られている位置から前記機械可読リソースにアクセスするステップと、
    前記トランザクションのために必要な1つ以上の能力が前記機械可読リソース内に存在数rかどうかを識別することに応答して、前記機械可読リソースから前記支払いサービスのための前記ホストコンピューティングリソースのエンドポイント識別子を返すステップと、
    前記機械可読リソース内の前記命令及び/又は仕様のうちの1つ以上に基づき、前記エイリアスに関連付けられた公開アドレスを取得するステップと、
    を含む請求項9~12のいずれかに記載の方法。
  14. 分散台帳のためのトランザクションに関連付けられた方法であって、エイリアスが1つ以上のクライアントの中の所与のクライアントのために提供され、前記エイリアスは前記所与のクライアントに固有であり、前記エイリアスはネットワーク識別子を含み又はそれに関連し、前記方法は、
    要求側エンティティから、トランザクションに関連する要求を送信するステップであって、前記要求は前記エイリアスに関連付けられる、ステップと、
    前記支払いサービスに関連付けられた位置から、前記機械可読リソースにアクセスするステップであって、前記支払いサービスは、前記エイリアス内の前記ネットワーク識別子に基づき識別され、前記機械可読リソースは請求項9に従い生成される、ステップと、
    前記トランザクションのために必要な1つ以上の能力が前記機械可読リソース内に存在するかどうかを識別することに基づき、前記エイリアスに関連付けられた前記支払いサービスのための前記ホストコンピューティングリソースのエンドポイント識別子を受信するステップと、
    前記機械可読リソース内の前記命令及び/又は仕様のうちの1つ以上を用いて、前記エイリアスに関連付けられた公開アドレスを取得するステップと、
    を含む方法。
  15. デジタルウォレットに関連付けられた各クライアントはネットワーク内の前記支払いサービスについて登録されたユーザ又はエンティティに関連付けられ、各デジタルウォレットは、前記分散台帳上のトランザクションのための非対称暗号鍵ペアの公開鍵及び秘密鍵に関連付けられた暗号通貨ウォレットであり、前記公開アドレスを取得する前記ステップは、前記エイリアスに関連付けられた前記デジタルウォレットの前記公開鍵を取得するステップを含む、請求項13又は14に記載の方法。
  16. 前記エイリアスに関連付けられた前記公開アドレスは、前記エイリアスに関連付けられた前記デジタルウォレットの前記公開鍵の暗号ハッシュに基づく、請求項15に記載の方法。
  17. 前記デジタルウォレットの前記公開鍵は、楕円曲線デジタル署名アルゴリズム(elliptic curve digital signature algorithm (ECDSA))公開鍵であり、前記公開鍵は、前記分散台帳に前に格納された又はそれにポストされた任意のトランザクションの部分ではない、請求項15又は16に記載の方法。
  18. 前記機械可読リソースの中の前記1つ以上の命令及び/又は仕様は、
    PKI(public key infrastructure)エンドポイント識別子について、前記機械可読リソースからPKI要求テンプレートを取得することと、
    前記エイリアス及び前記ネットワーク識別子を前記テンプレートに含めて、完全なPKI要求を生成することと、
    前記エイリアスに関連付けられた公開鍵を取得するために、前記完全なPKI要求に基づき、HTTP GET要求を送信することと、
    を含む、請求項13~17のいずれか一項に記載の方法。
  19. 前記機械可読リソースの知られている又は予測可能な位置は、前記エンドポイント識別子、前記支払いサービスにより使用されるインターネットプロトコル通信ポート、及び/又は公衆アクセス可能なよく知られたドメインレポジトリに含まれる前記支払いサービスの構成仕様、のうちの少なくとも1つに基づく、請求項9~18のいずれかに記載の方法。
  20. 前記機械可読リソースは、JSON(Java Script Object Notation)フォーマットを用いて生成される、請求項9~19のいずれかに記載の方法。
  21. 前記エイリアスに関連付けられた前記公開アドレスを取得する前記ステップは、
    エイリアスに関連付けられた受取人エンティティの支払先を取得するステップであって、前記支払先は、支払人エンティティから前記エイリアスへの暗号通貨支払いを行うトランザクションを構成する際に使用される、ステップを含み、
    前記方法は、
    前記支払いサービスのための前記機械可読リソースにアクセスするステップと、
    前記機械可読ドキュメント内の1つ以上の命令及び/又は仕様に基づき、支払先エンドポイント識別子を返すステップと、
    前記支払人エンティティから前記トランザクションの支払いの詳細を取得するステップであって、前記支払いの詳細は、前記受取人エンティティクライアントに関連付けられたエイリアス及び前記受取人に支払われるべき暗号通貨の額を含む、ステップと、
    前記支払いの詳細を前記支払人エンティティに関連付けられた暗号鍵に関連付けるデジタル署名を取得するステップと、
    前記エイリアスに関連付けられた前記支払先エンドポイント識別子に関連付けられたアウトプットスクリプトを生成するステップであって、前記アウトプットスクリプトは、前記分散台帳のためのトランザクションに埋め込むために提供される、ステップと、
    を含む請求項13、15~20のいずれかに記載の方法。
  22. 前記エイリアスに関連付けられた前記公開アドレスを取得する前記ステップは、
    前記エイリアスに関連付けられた受取人エンティティの支払先を取得するステップであって、前記支払先は、支払人エンティティから前記エイリアスへの暗号通貨支払いを行うトランザクションを構成する際に使用される、ステップを含み、
    前記トランザクションを構成するステップは、
    前記支払人エンティティから、前記トランザクションに関する要求を送信するステップであって、前記要求は前記エイリアスに関連付けられる、ステップと、
    前記支払いサービスに関連付けられた位置から前記機械可読リソースにアクセスするステップと、
    前記機械可読リソース内の前記1つ以上の命令及び/又は仕様に基づき、支払先エンドポイント識別子を受信するステップと、
    前記トランザクションの支払いの詳細を提供するステップであって、前記支払いの詳細は、前記受取人エンティティクライアントに関連付けられたエイリアスと前記受取人エンティティに支払われるべき暗号通貨の額とを含む、ステップと、
    前記支払いの詳細を暗号鍵に関連付けるデジタル署名を提供するステップと、
    前記エイリアスに関連付けられた前記支払先エンドポイント識別子に関連付けられたアウトプットスクリプトを受信するステップと、
    前記分散台帳のためのトランザクションに前記受信したアウトプットスクリプトを埋め込むことにより、前記トランザクションを生成するステップと、
    を含む、請求項14~20のいずれかに記載の方法。
  23. 前記機械可読リソースの中の前記1つ以上の命令及び/又は仕様は、
    支払先エンドポイント識別子について、前記機械可読リソースから支払先要求テンプレートを取得することと、
    前記エイリアス及び前記ネットワーク識別子を前記テンプレートに含めて、完全な支払先要求を生成することと、
    前記エイリアスに関連付けられた支払先エンドポイント識別子を取得するために、前記完全な支払先要求に基づき、HTTP POST要求を送信することと、
    を含む、請求項21又は22に記載の方法。
  24. 前記エイリアス及び前記支払人エンティティの前記公開アドレスは、それぞれ、前記受取人エンティティ及び前記支払人エンティティに関連付けられたそれぞれのデジタルウォレットの公開鍵を含み、前記デジタル署名が、前記支払人エンティティのアイデンティティを検証するために使用される、請求項21~23のいずれかに記載の方法。
  25. 前記支払人エンティティ及び前記受取人エンティティの両者に関連付けられたデジタル署名は、前記生成されたトランザクションが前記分散台帳に格納される又は記入される前に、それぞれのエンティティの検証のために要求される、項請求21~24のいずれかに記載の方法。
  26. 分散台帳に関連付けられたトランザクションのための1つ以上のクライアントのための支払いサービスを実施する、コンピュータにより実施される方法であって、前記方法は、
    前記支払いサービスに関連付けられた機械可読リソースを更新するステップであって、前記機械可読リソースは、前記支払いサービスに関連付けられた予測可能な又は知られた位置において提供され又はそこからアクセス可能であり、前記機械可読リソースは請求項9に従い生成される、ステップを含み、
    前記更新するステップは、前記支払いサービスによりサポートされる少なくとも1つの更なる能力を追加するステップであって、前記少なくとも1つの更なる能力は、前記1つ以上のクライアントの中の所与のクライアントのデジタルアセットを処理する簡易プロトコルを実施するステップを含む、方法。
  27. 分散台帳に関連付けられたトランザクションのための支払いサービスを実施する、コンピュータにより実施される方法であって、前記支払いサービスに関連付けられた1つ以上のクライアントの中のクライアントにエイリアスが提供され、前記エイリアスは前記クライアントに固有であり、各クライアントはそれぞれのエイリアスを提供され、前記方法は、
    支払人エンティティから、エイリアスに関連付けられた暗号通貨支払いのための支払い指示子を受信するステップであって、前記指示子は、前記支払いサービスに関連付けられた前記1つ以上のクライアントの中の受取人エンティティに関連し、前記受取人エンティティは前記支払い指示子の中の前記エイリアスに関連付けられる、ステップと、
    請求項9に従い機械可読リソースに基づき支払い要求テンプレートを提供するステップであって、前記機械可読リソースは前記支払いサービスに関連付けられ、前記支払い要求テンプレートは前記受取人エンティティのためのアウトプットスクリプトを含む、ステップと、
    前記支払人エンティティから、前記支払いテンプレートに基づき完全な支払いトランザクションを受信するステップであって、前記完全な支払いトランザクションは、前記エイリアス及び前記ネットワーク識別子に関連付けられる、ステップと、
    前記完全な支払いトランザクションを前記分散台帳に提供するステップと、
    を含む方法。
  28. 前記受取人クライアントの前記支払いサービスは、請求項26に記載の方法により実施され、前記受取人クライアントの前記支払いサービスによりサポートされる前記少なくとも1つの能力は、請求項26の更新された機械可読リソースの中の少なくとも1つの更なる能力に基づく、請求項27に記載の方法。
  29. 前記支払い要求テンプレート内の前記アウトプットスクリプトは、支払人エンティティから前記エイリアスへの暗号通貨支払いのためのトランザクションを構成する際に使用するための支払先を含み、前記アウトプットスクリプトは、以下:
    前記支払いサービスのための前記機械可読リソースにアクセスするステップと、
    前記機械可読ドキュメント内の前記1つ以上の命令及び/又は仕様に基づく支払先エンドポイント識別子を取得するステップと、
    前記エイリアスが関連する前記受取人エンティティのための前記支払先エンドポイント識別子に関連付けられた前記アウトプットスクリプトを生成するステップと、
    により提供される、請求項27又は28に記載の方法。
  30. 前記支払人エンティティからHTTPS POST要求の形式で前記完全な支払いトランザクションを受信するステップであって、前記完全な支払いトランザクションは、
    前記支払人エンティティからの前記支払いトランザクションの支払いの詳細であって、前記支払いの詳細は前記受取人エンティティに関連付けられた前記エイリアス及び前記受取人エンティティへ送信されるべき暗号通貨の額を含む、支払いの詳細と、
    前記支払いの詳細を前記支払人エンティティに関連する暗号鍵に関連付けるデジタル署名と、を含む、ステップと、
    前記分散台帳に前記完全な支払いトランザクションを提出するステップと、
    を含む、請求項27又は29のいずれかに記載の方法。
  31. 前記支払人エンティティへ、前記完全な支払いトランザクションの受信に対する肯定応答を送信するステップ、を含む請求項30に記載の方法。
  32. 分散台帳のためのトランザクションに関連付けられた、コンピュータにより実施される方法であって、支払いサービスに関連付けられた1つ以上のクライアントの中のクライアントにエイリアスが提供され、前記エイリアスは前記クライアントに固有であり、各クライアントはそれぞれのエイリアスに関連付けられ、前記方法は、
    前記支払いサービスに関連付けられた前記1つ以上のクライアントの中の受取人エンティティに関連するエイリアスに関連付けられた暗号通貨支払いのための支払い指示子を生成するステップと、
    請求項9に記載の機械可読リソース内の1つ以上の命令及び/又は仕様に基づき、前記エイリアスへ前記支払い指示子を送信するステップであって、前記機械可読リソースは前記エイリアスの前記支払サービスに関連付けられる、ステップと、
    前記エイリアスに関連する前記支払いサービスから支払い要求テンプレートを取得するステップであって、前記支払い要求テンプレートは前記受取人エンティティのためのアウトプットスクリプトを含む、ステップと、
    前記取得した支払い要求テンプレートに基づき、以下:
    前記支払いトランザクションに署名するために、支払人エンティティの公開鍵に関連付けられたデジタル署名を適用し、
    前記エイリアスに支払われるべき暗号通貨の額を含む支払いを提供する、
    ことにより、完全な支払いトランザクションを生成するステップと、
    前記エイリアスに関連付けられた前記受取人エンティティへ、前記完全な支払いトランザクションを送信するステップと、
    を含む方法。
  33. 前記受取人エンティティに関連付けられた前記支払いサービスから前記暗号通貨支払いの肯定応答を受信するステップ、を含む請求項1に記載の方法。
  34. 前記エイリアスは、クライアントに関連付けられた支払いハンドル(payment handle)である、項1~33のいずれかに記載の方法。
  35. 要求側エンティティからクライアントに関連付けられたエイリアスへのトランザクションに関連する要求を生成するためのプレフィックスを構成する方法であって、前記方法は、
    前記プレフィックス及び前記エイリアスを含む、前記要求側エンティティからの要求を受信することに応答して、前記エイリアスに基づき請求項1~34のいずれかに記載のステップをトリガするステップを含む方法。
  36. コンピューティング装置又はコンピュータシステムであって、
    プロセッサと、
    前記プロセッサによる実行の結果として、前記システムに請求項1~35のいずれか一項に記載のコンピュータにより実施される方法を実行させる実行可能命令を含むメモリと、
    を含むコンピューティング装置又はコンピュータシステム。
  37. 実行可能命令を記憶した非一時的コンピュータ可読記憶媒体であって、前記実行可能命令は、コンピュータシステムのプロセッサにより実行された結果として、前記コンピュータシステムに、請求項1~35のいずれかに記載のコンピュータにより実施される方法を実行させる、非一時的コンピュータ可読記憶媒体。
JP2021559650A 2019-04-15 2020-01-29 分散台帳のためのエイリアスに基づくアドレッシングを実施する、コンピュータにより実施されるシステム及び方法 Pending JP2022528710A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201916384696A 2019-04-15 2019-04-15
US16/384,696 2019-04-15
PCT/IB2020/050686 WO2020212766A1 (en) 2019-04-15 2020-01-29 Computer-implemented system and method for implementing alias-based addressing for a distributed ledger

Publications (1)

Publication Number Publication Date
JP2022528710A true JP2022528710A (ja) 2022-06-15

Family

ID=69528882

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021559650A Pending JP2022528710A (ja) 2019-04-15 2020-01-29 分散台帳のためのエイリアスに基づくアドレッシングを実施する、コンピュータにより実施されるシステム及び方法

Country Status (8)

Country Link
US (1) US20220198444A1 (ja)
EP (1) EP3956844A1 (ja)
JP (1) JP2022528710A (ja)
KR (1) KR20210154184A (ja)
CN (1) CN113728348A (ja)
SG (1) SG11202110617YA (ja)
TW (1) TW202105280A (ja)
WO (1) WO2020212766A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023046779A1 (en) * 2021-09-22 2023-03-30 Nchain Licensing Ag Blockchain based transaction protocol
US20240056525A1 (en) * 2022-08-12 2024-02-15 Unstoppable Domains, Inc. Securely controlling communication sessions using user domain

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10776761B2 (en) * 2014-03-18 2020-09-15 nChain Holdings Limited Virtual currency system
CN109274779B (zh) * 2017-07-17 2020-09-25 华为技术有限公司 一种别名管理方法及设备

Also Published As

Publication number Publication date
US20220198444A1 (en) 2022-06-23
TW202105280A (zh) 2021-02-01
CN113728348A (zh) 2021-11-30
EP3956844A1 (en) 2022-02-23
WO2020212766A1 (en) 2020-10-22
SG11202110617YA (en) 2021-10-28
KR20210154184A (ko) 2021-12-20

Similar Documents

Publication Publication Date Title
US11102011B2 (en) Domain name management scheme for cross-chain interactions in blockchain systems
US11531981B2 (en) Digital contracts in blockchain environments
JP6699861B2 (ja) ブロックチェーンシステム内でドメイン名方式を使用するクロスチェーン相互作用
JP6688939B2 (ja) ブロックチェーンシステム内のクロスチェーン相互作用に対するドメイン名方式
US10057207B2 (en) Smart navigation for shortened URLs
WO2022246193A1 (en) Lifecycle administration of domain name blockchain addresses
TW202042159A (zh) 與分散式帳本相關聯之目的地定址技術
JP2022528710A (ja) 分散台帳のためのエイリアスに基づくアドレッシングを実施する、コンピュータにより実施されるシステム及び方法
US20220270085A1 (en) Destination addressing associated with a distributed ledger
US11522995B2 (en) Number management system, number management method, and number management device
WO2021001876A1 (ja) 番号管理システム、番号管理方法、番号管理装置および番号管理プログラム
US11665275B2 (en) Number management system, number management method, number management device and number management program
US11683413B2 (en) Number management system, number management method, number management device and number management program
TW202130153A (zh) 區塊鏈交易之回叫機制
US12003615B2 (en) Lifecycle administration of domain name blockchain addresses

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230104

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20231227

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20240116

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240415