IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ティーゼロ・アイピー,エルエルシーの特許一覧

特許7389114取引システムを実施するネットワークノードのサブセット内の文脈ベースのフィルタリング
<>
  • 特許-取引システムを実施するネットワークノードのサブセット内の文脈ベースのフィルタリング 図1
  • 特許-取引システムを実施するネットワークノードのサブセット内の文脈ベースのフィルタリング 図2A
  • 特許-取引システムを実施するネットワークノードのサブセット内の文脈ベースのフィルタリング 図2B
  • 特許-取引システムを実施するネットワークノードのサブセット内の文脈ベースのフィルタリング 図2C
  • 特許-取引システムを実施するネットワークノードのサブセット内の文脈ベースのフィルタリング 図3A
  • 特許-取引システムを実施するネットワークノードのサブセット内の文脈ベースのフィルタリング 図3B
  • 特許-取引システムを実施するネットワークノードのサブセット内の文脈ベースのフィルタリング 図4
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-11-20
(45)【発行日】2023-11-29
(54)【発明の名称】取引システムを実施するネットワークノードのサブセット内の文脈ベースのフィルタリング
(51)【国際特許分類】
   G06F 15/00 20060101AFI20231121BHJP
【FI】
G06F15/00 470
【請求項の数】 20
(21)【出願番号】P 2021522081
(86)(22)【出願日】2019-10-08
(65)【公表番号】
(43)【公表日】2022-01-14
(86)【国際出願番号】 US2019055229
(87)【国際公開番号】W WO2020086261
(87)【国際公開日】2020-04-30
【審査請求日】2022-10-06
(31)【優先権主張番号】62/749,528
(32)【優先日】2018-10-23
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】521151175
【氏名又は名称】ティーゼロ・アイピー,エルエルシー
(74)【代理人】
【識別番号】100118902
【弁理士】
【氏名又は名称】山本 修
(74)【代理人】
【識別番号】100106208
【弁理士】
【氏名又は名称】宮前 徹
(74)【代理人】
【識別番号】100196508
【弁理士】
【氏名又は名称】松尾 淳一
(74)【代理人】
【識別番号】100162846
【弁理士】
【氏名又は名称】大牧 綾子
(72)【発明者】
【氏名】オフェルホルザー,スコット
【審査官】漆原 孝治
(56)【参考文献】
【文献】特表2018-528555(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 15/00
(57)【特許請求の範囲】
【請求項1】
ピアツーピアネットワークにおいて通信可能に結合されたネットワークノードを備えるシステムであって、前記ネットワークノードは、前記ネットワークノードの第1のサブセットと、前記ネットワークノードの第2のサブセットとを含み、
前記ネットワークノードの前記第1のサブセットは、少なくとも第1の外部のコンピューティングデバイスとインターフェースするように構成され、
前記ネットワークノードの前記第2のサブセットは、少なくとも第2の外部のコンピューティングデバイスとインターフェースするように構成され、
前記ネットワークノードの前記第1のサブセットは、前記第1の外部のコンピューティングデバイスから受信した要求に基づいて、第1のメッセージタイプを有する第1のメッセージを生成するように構成され、
前記ネットワークノードの前記第1のサブセットは、第1のイベントを前記ピアツーピアネットワークへ発行するように構成され、前記第1のイベントは、前記第1のメッセージタイプに基づくペイロードを有し、
前記ネットワークノードは、少なくとも1つの有向非巡回グラフ(DAG)を使用して、前記第1のイベントにおけるタイムスタンプに関するコンセンサスに達するように試みるように構成され、
前記ネットワークノードの前記第2のサブセットは、前記ピアツーピアネットワークから、異なるペイロードタイプを有するイベントを受信し、前記第1のメッセージタイプに基づく前記ペイロードを有する前記第1のイベントのいずれかをフィルタリングするように構成され、
前記ネットワークノードの前記第2のサブセットは、前記第1のメッセージタイプに基づく前記ペイロードを有する前記第1のイベントのいずれかが受信された場合、前記ペイロードを、前記第2の外部のコンピューティングデバイスへ送信される第2のメッセージへ変換するように構成される、システム。
【請求項2】
前記ネットワークノードの前記第2のサブセットは、前記第2の外部のコンピューティングデバイスから第3のメッセージを受信し、前記第3のメッセージを、第4のメッセージタイプを有する第4のメッセージへ変換するように構成され、
前記ネットワークノードの前記第2のサブセットは、第2のイベントを、前記ピアツーピアネットワークへ発行するように構成され、前記第2のイベントは、前記第4のメッセージタイプに基づくペイロードを有し、
前記ネットワークノードの前記第1のサブセットは、前記ピアツーピアネットワークから、前記異なるペイロードタイプを有するイベントを受信し、前記第4のメッセージタイプに基づく前記ペイロードを有する前記第2のイベントのいずれかをフィルタリングするように構成され、
前記ネットワークノードの前記第1のサブセットは、前記第4のメッセージタイプに基づく前記ペイロードを有する前記第1のイベントのいずれかが受信された場合、前記第2のイベントの少なくとも1つに基づいて通知を生成し、前記通知を、前記第1の外部のコンピューティングデバイスへ送信するように構成される、請求項1に記載のシステム。
【請求項3】
前記第1のメッセージは、前記第2のメッセージとは異なるフォーマットであり、前記第3のメッセージは、前記第4のメッセージとは異なるフォーマットである、請求項2に記載のシステム。
【請求項4】
前記ネットワークノードの前記第2のサブセットは、コンセンサスに達したタイムスタンプを有する前記第1のイベントのいずれかをフィルタリングするように構成される、請求項1に記載のシステム。
【請求項5】
前記ネットワークノードの前記第2のサブセットは、前記第1のメッセージタイプに基づく前記ペイロードを有する前記第1のイベントのいずれかをフィルタリングする場合、前記第1のイベントの前記ペイロードを分析するように構成される、請求項1に記載のシステム。
【請求項6】
前記ネットワークノードの前記第1のサブセットと、前記ネットワークノードの前記第2のサブセットとは相互に排他的である、請求項1に記載のシステム。
【請求項7】
前記有向非巡回グラフの少なくとも1つは、IOTAまたはハッシュグラフである、請求項1に記載のシステム。
【請求項8】
前記ネットワークノードは、サーバ、パーソナルコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、またはスマートフォンのうちの少なくとも1つから選択される、請求項1に記載のシステム。
【請求項9】
前記ネットワークノードは、グローバルに物理的に分散される、請求項1に記載のシステム。
【請求項10】
前記ネットワークノードは、少なくとも1つの有線ネットワークまたは少なくとも1つのワイヤレスネットワークのうちの少なくとも1つを使用して通信可能に結合される、請求項1に記載のシステム。
【請求項11】
システムのネットワークノードで実行される方法であって、前記方法は、
第1の外部のコンピューティングデバイスから受信した要求に基づいて、ピアツーピアネットワークにおける前記ネットワークノードの第1のサブセットにおいて、第1のメッセージタイプを有する第1のメッセージを生成するステップと、
第1のイベントを前記ピアツーピアネットワークへ発行するステップであって、前記第1のイベントは、前記第1のメッセージタイプに基づくペイロードを有する、発行するステップと、
少なくとも1つの有向非巡回グラフ(DAG)を使用して、前記第1のイベントにおけるタイムスタンプに関するコンセンサスに達するように試みるステップと、
前記ネットワークノードの第2のサブセットにおいて、前記ピアツーピアネットワークから、異なるペイロードタイプを有するイベントを受信し、前記第1のメッセージタイプに基づく前記ペイロードを有する前記第1のイベントのいずれかをフィルタリングするステップと、
前記ネットワークノードの前記第2のサブセットのうちの1つが、前記第1のメッセージタイプに基づくペイロードを有する前記第1のイベントのいずれかを受信した場合、前記ペイロードを、第2の外部のコンピューティングデバイスへ送信される第2のメッセージへ変換するステップとを備える、方法。
【請求項12】
前記ネットワークノードの前記第2のサブセットにおいて、前記第2の外部のコンピューティングデバイスから第3のメッセージを受信し、前記第3のメッセージを、第4のメッセージタイプを有する第4のメッセージへ変換するステップと、
第2のイベントを、前記ピアツーピアネットワークへ発行するステップであって、前記第2のイベントは、前記第4のメッセージタイプに基づくペイロードを有する、発行するステップと、
前記ネットワークノードの前記第1のサブセットにおいて、前記ピアツーピアネットワークから、前記異なるペイロードタイプを有するイベントを受信し、前記第4のメッセージタイプに基づくペイロードを有する前記第2のイベントのいずれかをフィルタリングするステップと、
前記ネットワークノードの前記第1のサブセットのうちの1つが、前記第4のメッセージタイプに基づくペイロードを有する前記第1のイベントのいずれかを受信した場合、前記第2のイベントの少なくとも1つに基づいて通知を生成し、前記通知を、前記第1の外部のコンピューティングデバイスへ送信するステップとをさらに備える、請求項11に記載の方法。
【請求項13】
前記第1のメッセージは、前記第2のメッセージとは異なるフォーマットであり、前記第3のメッセージは、前記第4のメッセージとは異なるフォーマットである、請求項12に記載の方法。
【請求項14】
さらに、前記ネットワークノードの前記第2のサブセットにおいて、コンセンサスに達したタイムスタンプを有する前記第1のイベントのいずれかをフィルタリングするステップを備える、請求項11に記載の方法。
【請求項15】
さらに、ネットワークノードの前記第2のサブセットにおいて、前記第1のメッセージタイプに基づく前記ペイロードを有する前記第1のイベントのいずれかをフィルタリングする場合、前記第1のイベントの前記ペイロードを分析するステップを備える、請求項11に記載の方法。
【請求項16】
前記ネットワークノードの前記第1のサブセットと、前記ネットワークノードの前記第2のサブセットとは相互に排他的である、請求項11に記載の方法。
【請求項17】
前記有向非巡回グラフの少なくとも1つは、IOTAまたはハッシュグラフである、請求項11に記載の方法。
【請求項18】
前記ネットワークノードは、サーバ、パーソナルコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、またはスマートフォンのうちの少なくとも1つから選択される、請求項11に記載の方法。
【請求項19】
前記ネットワークノードは、グローバルに物理的に分散される、請求項11に記載の方法。
【請求項20】
前記ネットワークノードは、少なくとも1つの有線ネットワークまたは少なくとも1つのワイヤレスネットワークのうちの少なくとも1つを使用して通信可能に結合される、請求項11に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
[0001]この出願は、2018年10月23日に出願され「CONTEXT BASED FILTERING WITHIN SUBSETS OF NETWORK NODES IMPLEMENTING A TRADING SYSTEM」(取引システムを実施するネットワークノードのサブセット内の文脈ベースのフィルタリング)と題された米国仮特許出願第62/749,528号(代理人整理番号270.024USPR)の利益を主張し、その全体は、参照により本明細書に組み込まれる。
【背景技術】
【0002】
[0002]市場および取引所は、買い手と売り手との間で株式、通貨、債券、商品などを取り引きするために使用することができる。
【発明の概要】
【発明が解決しようとする課題】
【0003】
[0003]ピアツーピアネットワークにおいて通信可能に結合された複数のネットワークノードを備えるシステムが開示される。ネットワークノードは、ネットワークノードの第1のサブセットと、ネットワークノードの第2のサブセットとを含む。ネットワークノードの第1のサブセットは、少なくとも第1の外部のコンピューティングデバイスとインターフェースするように構成される。ネットワークノードの第2のサブセットは、少なくとも第2の外部のコンピューティングデバイスとインターフェースするように構成される。ネットワークノードの第1のサブセットは、第1の外部のコンピューティングデバイスから受信した要求に基づいて、第1のメッセージタイプを有する第1のメッセージを生成するように構成される。ネットワークノードの第1のサブセットは、第1のイベントをピアツーピアネットワークへ発行するように構成され、第1のイベントは、第1のメッセージタイプに基づくペイロードを有する。ネットワークノードは、少なくとも1つの有向非巡回グラフ(DAG: directed acyclic graph)を使用して、第1のイベントにおけるタイムスタンプに関するコンセンサスに達するように試みるように構成される。ネットワークノードの第2のサブセットは、ピアツーピアネットワークから、異なるペイロードタイプを有するイベントを受信し、第1のメッセージタイプに基づくペイロードを有する第1のイベントをフィルタリングするように構成される。ネットワークノードの第2のサブセットは、第1のイベントが、第1のメッセージタイプに基づくペイロードを有する場合、ペイロードを、第2の外部のコンピューティングデバイスへ送信される第2のメッセージへ変換するように構成される。
【0004】
[0004]方法も開示される。この方法は、第1の外部のコンピューティングデバイスから受信した要求に基づいて、ピアツーピアネットワークにおけるネットワークノードの第1のサブセットにおいて、第1のメッセージタイプを有する第1のメッセージを生成することを含む。この方法はまた、第2のイベントをピアツーピアネットワークへ発行することを含み、第1のイベントは、第1のメッセージタイプに基づくペイロードを有する。この方法は、少なくとも1つの有向非巡回グラフ(DAG)を使用して、第1のイベントにおけるタイムスタンプに関するコンセンサスに達するように試みることも含む。この方法はまた、ネットワークノードの第2のサブセットにおいて、ピアツーピアネットワークから、異なるペイロードタイプを有するイベントを受信して、第1のメッセージタイプに基づくペイロードを有する第1のイベントをフィルタリングすることを含む。この方法はまた、ネットワークノードの第2のサブセットのうちの1つが、第1のメッセージタイプに基づくペイロードを有する第1のイベントを受信した場合、ペイロードを、第2の外部のコンピューティングデバイスへ送信される第2のメッセージへ変換することを含む。
【課題を解決するための手段】
【0005】
[0005]図面は例のみを示しており、したがって範囲を限定すると見なされるべきではないことを理解して、例は、添付の図面を使用することにより、追加の具体性および詳細を用いて説明される。
【図面の簡単な説明】
【0006】
図1】[0006]図1は、文脈ベースのフィルタリングを実行するネットワークノードのサブセットを備えた分散型取引システムの例示的な実施形態を示すブロック図である。
図2A】[0007]図2Aは、文脈ベースのフィルタリングを実行するネットワークノードのサブセットを備えた分散型取引システム内で使用されるネットワークノードの例示的な実施形態を示すブロック図である。
図2B】[0008]図2Bは、ピアツーピアネットワークによって受信された注文を照合する注文管理システムの例示的な実施形態を示すブロック図である。
図2C】[0009]図2Cは、エンドユーザデバイスから注文を受信し、注文をピアツーピアネットワークへ送信するクライアントを実施するコンピューティングデバイスの例示的な実施形態を示すブロック図である。
図3A】[0010]図3Aは、取引システムを実施するネットワークノードのサブセット内の文脈ベースのフィルタリングのための例示的な方法を示すフロー図である。
図3B】[0011]図3Bは、取引システムを実施するネットワークノードのサブセット内の文脈ベースのフィルタリングのための別の例示的な方法を示すフロー図である。
図4】[0012]図4は、本開示のいくつかの実施形態が利用され得る例示的なコンピュータシステムを示すブロック図である。
【発明を実施するための形態】
【0007】
[0013]一般的な慣行にしたがって説明される様々な特徴は、一定の縮尺で描かれていないが、例に関連する特定の特徴を強調するように描かれている。
[0014]以下の詳細な説明では、本明細書の一部を形成し、例示として特定の例示的な実施形態が示されている添付の図面を参照する。しかしながら、他の実施形態が利用され得、論理的、機械的、および電気的変化がなされ得ることが理解されるべきである。さらに、図面および明細書に提示される方法は、個々のステップが実行され得る時系列順(chronological order)を限定するものとして解釈されるべきではない。したがって、以下の詳細な説明は、限定的な意味で解釈されるべきではない。
【0008】
[0015]本明細書で使用される場合、「注文」という用語は、トランザクションを開始するための要求、またはトランザクションを開始するための要求を説明するデータを指す。注文は、証券、セキュリティトークン、ユーティリティトークン、債券、通貨(暗号通貨またはフィアット)、ファンド(取引所取引ファンド(「ETF」)、投資信託、インデクスファンド、オープンエンドファンド、クローズドエンドファンド、高利回り債券ファンド、企業債券ファンド、地方債ファンド、政府債券ファンド、債券ファンド、マネー市場ファンド、バランスファンド、エクイティファンド、固定収入ファンド(fixed income funds)、グローバルファンド、国際ファンド、スペシャリティファンド、インデクスファンド、商品ファンド、通貨ファンド、および/または不動産ファンドなど)、および/または他の資産を含むがこれらに限定されない、任意のタイプの資産の取引要求であり得る。例では、注文は、買い、売り、および/または保留注文のうちの少なくとも1つであり得る。例では、注文は、注文のタイプ(買い、売り、保留など)、取り引きされている資産の表示、および/または、取り引きされている資産の量など、取引に対する1つまたは複数の当事者に関する情報を含み得る。注文はまた、指値、ストップ価格、条件付きトリガ要件、注文の期間(たとえば、有効時間)、注文が部分的に約定され得るか否かなどのオプションの属性を示し得る。
【0009】
[0016]分散型取引システムは、(注文を投入する)エンドユーザと注文管理システムとの間の仲介として機能するノードのピアツーピアネットワークを使用して実施され得る。取引システムにおける注文管理システムは、注文がいつ行われたか、たとえば、注文がいつ取引システムにおいて受信されたのかに少なくとも部分的に基づいて、(注文の実行の準備として)注文を互いに照合し得る。オプションで、照合は、注文が行われた時間に加えて、注文における属性を含む他の基準に基づいても発生する。従来の集中型取引システムでは、単一のエンティティがすべての取引を受信し、それらを簡単にかつ時系列に順序付けることができる。分散型取引システムでは、照合中に公平性を提供するために、様々なネットワークノードから受信した取引を時系列に順序付ける公正な方法が望まれる。これは、ネットワークノードが、分散型取引システム内の信号の伝搬遅延や、他の遅延の差が大きい広いエリアに分散している場合に特に重要になる。したがって、取引システムにおいて、トラストレス、コンセンサスベースの公正な順序付け(trustless, consensus-based fair ordering)を実施することが望ましい場合がある。それに加えて、たとえば規制目的のために、取引システムにおけるトランザクションの監査可能な記録を維持することが望ましい場合がある。
【0010】
[0017]分散型台帳を使用して、コンセンサスベースの公正な順序付けを提供し、および/または、分散型取引システムにおけるトランザクションの監査可能な記録を維持し得る。本明細書で使用される場合、「コンセンサスベースの公正な順序付け」は、ノードのネットワーク内のイベントの時系列順でのノードのネットワーク内の、ある程度の合意を指す。分散型台帳は、相互接続された複数のネットワークノードに分散された電子台帳であり、複数のネットワークノードが、台帳のコピーを格納し得る。例では、分散型台帳は、有向非巡回グラフ(DAG)、たとえばIOTAまたはハッシュグラフを使用して実施され得る。DAGでは、プルーフオブワークなしでコンセンサスに達する可能性があり、代わりにプルーフオブステークを使用できる。
【0011】
[0018]ハッシュグラフは、ピアツーピア(P2P)ネットワークにおけるネットワークノードが、ゴシッププロトコル(gossip protocol)を使用して互いに情報を交換する、すなわち、各ネットワークノードによって、繰り返し、別のネットワークノードを、ランダムに選択することによって、情報(ゴシップ)が拡散し、知っていることをすべて伝えるプラットフォーム/ライブラリである。この情報交換は、「gossip about gossip」プロトコルを使用して、トランザクションに関する情報(ゴシップ)のみを共有することに加えて、ネットワークノードが、ゴシップ自体(ゴシップに関するゴシップ)の履歴に関する情報も共有するハッシュグラフデータ構造(すなわち、誰が誰に、どういう順序でゴシップを流したのかを記録するデータ構造)を、自動的に構築する。
【0012】
[0019]具体的には、ノード(「ゴシップ」)間のトランザクション(「メッセージ」または「ペイロード」とも呼ばれる)の共有は、以下のように実施され得る。ノードは、別のノードからトランザクションを受信すると、そのトランザクションが、いつ生じたのかの記録を作成し得る。その後、ネットワークノードは、(たとえば、ゴシップの義務として)トランザクションを他のノードに転送するのみならず、作成したレコードを、「ゴシップ」して、現在渡されているトランザクションをいつ受信したかを示す。ネットワークノードは、「裸の(naked)」トランザクションをゴシップするのではなく、「イベント」と呼ばれるデータ構造にいくつかのトランザクションを束ねる。トランザクションペイロードに加えて、ノードは、作成する任意のイベントに、2つのハッシュ、(1)ネットワークノードが別のノードから受信した最後のイベントのハッシュ、および(2)ネットワークノードが作成した最後のイベントのハッシュを追加し得る。ノードは、(イベントがピアツーピアネットワークへ発行されたときの)タイムスタンプを追加し、別のノードにゴシップする前に、完全なイベント構造に電子署名し得る。
【0013】
[0020]このゴシッププロセスは、高度に組織化され、文書化され、そして効率的である。2つのハッシュにより、新規のイベントのすべての受信者は、他のノードが、内部のトランザクションについて知っていることを再構築できる。これにより、ネットワークノードは、どのトランザクションが行われ、いつ発生したのかをすばやく知ることができる。そのような情報を使用して、ノードのP2Pネットワークにおけるイベントの時系列順に関し、非常に迅速にコンセンサスに達することができる。
【0014】
[0021](ノードのP2Pネットワーク内の)すべてのネットワークノードが、ハッシュグラフの同一のコピーを有する場合、トランザクションの時系列順は、ハッシュグラフに基づく任意の決定論的機能を使用して決定され得る。(たとえば、最近のトランザクションがすべてのネットワークノードによってまだ受信されていないため)ハッシュグラフのコピーが異なる場合、仮想投票(virtual voting)を使用して、ノードのP2Pネットワークがコンセンサスに達する可能性がある。すべてのネットワークノードは、他のネットワークノードが(たとえば、トランザクションの順序に関して)どのように投票するかを(ハッシュグラフに基づいて)計算/シミュレートできるため、ネットワークノードは、実際にトランザクションのタイムスタンプについて投票する必要はなく、すなわち、投票は、仮想的である。したがって、ネットワークノードは、仮想投票による一連の選択を使用して、トランザクションのタイムスタンプに基づいて、トランザクションの時系列順を決定し得る。例では、仮想投票は、1つまたは複数の外れ値投票の破棄、および/または、ノードのP2Pネットワークにおけるイベントのタイムスタンプの中央値の採用を含み得る。タイムスタンプの中央値が推奨されるが、タイムスタンプの平均または高/低中点を使用できる。本明細書で使用される場合、「コンセンサス」という用語は、少なくとも((2/3)+1)、圧倒的多数((2/3)+1)、単純過半数((1/2)+1)、またはノードのネットワークにおけるアクティブなネットワークノードの別の事前定義されたパーセンテージによる合意を指し、つまり、「コンセンサス」という用語は、ノードのネットワークにおけるネットワークノードの100%を必要とする訳ではない。
【0015】
[0022]例では、本明細書で参照されるハッシュグラフは、参照により本明細書に組み込まれる「THE SWIRLDS HASHGRAPH CONSENSUS ALGORITHM:FAIR、FAST、BYZANTINE FAULT TOLERANCE」(スワールズハッシュグラフコンセンサスアルゴリズム:公正で高速なビザンチンフォールトトレランス)(http://www.swirlds.com/downloads/SWIRLDS-TR-2016-01.pdfで入手可能)と題されたLeemon Bairdによる2016年5月31日付けのSwirlds Tech Reportに説明されているように動作する。
【0016】
[0023]ノードのピアツーピア(P2P)ネットワークを使用して実施される分散型取引システムにおいて、DAG(たとえば、ハッシュグラフ)を使用して、公正な順序付け(たとえば、注文管理システムからクライアント(および、オプションで、実行レポート)から受信した買い/売り/保留注文の順序付け)を提供することができる。例では、(DAGを実施する)ネットワークノードが連携して、分散型取引システム内の様々なネットワークノードにおいて、市場取引要求(注文)が受信された時系列順(および/または注文のタイムスタンプ)についてコンセンサスに達することができる。例では、ネットワークノードは、注文データを生成し、相互間で注文データを検証できる。その後、注文データを注文管理システムで使用して、注文を相互に照合(および、オプションで、実行)することができる。
【0017】
[0024]例では、ネットワークノードの第1のサブセットは、クライアント(たとえば、ウェブクライアント)から新規注文を受信し、新規注文をピアツーピアネットワークへ発行する取引サービスノードである。ピアツーピアネットワークは、新規注文が受信された時系列順、および/または、ピアツーピアネットワークにおける受信のタイムスタンプに関し、コンセンサスに達することができる。ゲートウェイノードは、ピアツーピアネットワークから出力された新規注文を、文脈的にフィルタリングして、注文管理システムに渡す、ネットワークノードの第2のサブセットである。ゲートウェイノードは、注文管理システムから、注文実行レポートを受信し、注文実行レポートをピアツーピアネットワークへ発行し得る。取引サービスノードは、実行レポートを文脈的にフィルタリングする(そして、クライアントに転送する)ことができる。好ましくは、ネットワークノードの第1のサブセットは、ネットワークノードの第2のサブセットから相互に排他的であるが、(少なくとも1つの取引サービスノードも、ゲートウェイノードである)他の構成が可能である。
【0018】
[0025]「フロントランニング」という用語およびその変形は、大規模な保留中のトランザクションに関する非公開の知識から利益を得るために、新規注文を投入することを指す。公正な順序付けがない場合、分散型取引システムは、ネットワークノードのうちの少なくとも1つが、(たとえば、処理負荷、ネットワーク輻輳、ハードウェア誤動作などに基づいて)より高速に実行している場合、および/または、地理的に、そのピアよりも注文管理システムに近い場合、フロントランニングの影響を受け易くなり得る。本明細書で説明される分散型取引システムは、新規注文の公正な順序を(たとえば、ノードのネットワークにおいて注文が受信された時間に関して)提供するため、フロントランニングを防ぐという利点を有する。
【0019】
[0026]本明細書で説明される分散型取引システムの別の利点は、新規注文(および、オプションで、実行レポート)が、DAGにおいて受信された時間および/または時系列順に関し、DAGが、コンセンサスに達するので、トランザクションの監査可能な記録が自動的に作成されることである。このデータは、システム内の不正を減らし、たとえば、証券取引委員会(SEC)および/または金融業界規制当局(FINRA)による、様々な規制要件への準拠を支援するために使用できる。
【0020】
[0027]本システムおよび方法は、取引システムの観点から説明されているが、本システムおよび方法は、トラストレス、コンセンサスベースの公正な順序付けを提供し、オプションで、分散型システムにおけるトランザクションの監査記録を維持するために、他の文脈で使用され得ることに留意されたい。
【0021】
[0028]図1は、文脈ベースのフィルタリングを実行するネットワークノード102~104のサブセットを備えた、分散型取引システム100の例示的な実施形態を示すブロック図である。分散型取引システム100は、複数のネットワークノード102(N個の取引サービスノード102、M個のゲートウェイノード103、および任意の数のオプションのオブザーバノード104A~Cなど)、少なくとも1つのクライアント110、および、少なくとも1つの注文管理システム112を含む。分散型取引システム100は、任意の数(N個)の取引サービスノード102、および任意の数(M個)のゲートウェイノード103を含み得る(ここで、MはNに等しい場合も、そうでない場合もある)。
【0022】
[0029]例では、ネットワークノード102は、分散型台帳を実施するピアツーピアネットワーク114において互いに通信可能に結合されている。好ましくは、ピアツーピアネットワーク114は、プライベート台帳(たとえば、ハッシュグラフライブラリを実施するプライベートピアツーピアネットワーク114)を実施するが、パブリック台帳(たとえば、ハッシュグラフプラットフォーム/ライブラリを実施するパブリックヘデラピアツーピアネットワーク114)が使用される他の構成が可能である。ネットワークノード102~104は、ピアツーピアネットワーク114に参加するときに、たとえば、パスワード、暗号鍵などを交換するときに、追加のセキュリティプロトコルを実施し得る。
【0023】
[0030]例では、ネットワークノード102~104、クライアント110を実施するコンピューティングデバイス、および/または注文管理システム112は、モバイル電話、タブレットコンピュータ、モバイルメディアデバイス、モバイルゲームデバイス、ラップトップコンピュータ、車両ベースのコンピュータなどのモバイルコンピューティングデバイス、または、専用端末、公共端末、キオスク、サーバ、またはデスクトップコンピュータなどの非モバイルデバイス、のうちのいずれかとすることができる。ネットワークノード102~104のおのおの、クライアント110を実施する外部のコンピューティングデバイス、および/または、注文管理システム112は、単一の物理的ハウジング、または複数の物理的ハウジングに収容され得る。
【0024】
[0031]例では、ネットワークノード102~104のおのおの、クライアント110を実施する外部のコンピューティングデバイス、および/または、注文管理システム112は、同様のコンポーネントを有することができる。例では、ネットワークノード102~104のおのおの、クライアント110を実施する外部のコンピューティングデバイス、および/または、注文管理システム112は、少なくとも1つのメモリ、少なくとも1つのプロセッサ、少なくとも1つのオプションのディスプレイデバイス、少なくとも1つのオプションの入力デバイス、少なくとも1つのオプションのネットワークインターフェース、および少なくとも1つの電源を含む。
【0025】
[0032]ピアツーピアネットワーク114におけるネットワークノード102~104は、情報を共有して、少なくとも1つのネットワークノード102~104に格納された少なくとも1つのハッシュグラフデータ構造を構築し得る(いくつかの構成では、別個のハッシュグラフデータ構造が、各ネットワークノード102~104において生成され、オプションで格納される)。ハッシュグラフデータ構造は、ピアツーピアネットワーク114におけるネットワークノード102~104によって形成されたコンセンサスに基づいて、ピアツーピアネットワーク114において新規注文が受信される時系列順の記録として機能し得る。ピアツーピアネットワーク114におけるネットワークノード102~104はおのおの、コンセンサスに達するための機能を含むハッシュグラフライブラリを実施し得る。それに加えて、ネットワークノード102~104はまた、各タイプのネットワークノード102~104の特定の機能に関連するイベント内のペイロードを迅速に識別するために、ネットワークノード102~104間で渡されるイベントを文脈的にフィルタリングするように構成され得る。
【0026】
[0033]例では、ネットワークノード102~104は、ネットワーク106を使用して通信可能に結合される。例では、有線ネットワークとワイヤレスネットワークとの任意の組合せを使用して、ネットワークノード102~104をともに結合することができる。例では、ネットワークノード102~104は、少なくとも1つのローカルエリアネットワーク(LAN)、少なくとも1つの広域ネットワーク(WAN)、またはインターネットのうちの少なくとも1つを介して通信可能に結合される。例では、ローカルエリアネットワーク、広域ネットワーク、およびインターネットの任意の組合せを使用して、ネットワークノード102~104をともに結合する。ピアツーピアネットワーク114におけるネットワークノード102~104は、世界中に物理的に分散され得ることに留意されたい。
【0027】
[0034]クライアント110(たとえば、ウェブクライアント)は、コンピューティングデバイスにおいて実行している1つまたは複数のプロセッサによって実行される命令のセットであり得る。クライアント110は、たとえば、モバイルコンピューティングデバイスおよび/または非モバイルデバイスである、エンドユーザデバイスと通信し得る。クライアント110は、注文を投入するためにユーザにユーザインターフェースを提示し得る。ユーザインターフェースは、注文のタイプ(買い、売り、保留など)、資産識別子(たとえば、統一証券識別手順委員会(CUSIP)番号、ティッカシンボルなど)、取り引きされている資産の量、指値、ストップ価格、条件付きトリガ要件、注文期間(たとえば、有効時間)、および/または、注文が部分的に約定される可能性があるか否かを示すフィールドを含み得る。ユーザは、クライアントによって提示されたユーザインターフェースとインタラクトして、新規注文要求に関する関連情報(たとえば、注文属性)を投入し得る。
【0028】
[0035]例では、クライアント110は、たとえば、ネットワーク(図示せず)を介して、少なくとも1つの取引サービスノード102に通信可能に結合された第1の外部のコンピューティングデバイスにおいて実施される。オプションで、クライアント110は、第1のインターフェース108を介して、少なくとも1つの取引サービスノード102と通信する。第1のインターフェース108は、たとえば、媒体、VPN、WAN、リンクのように、データを伝送するために使用される通信層(たとえば、ネットワーク層および/または物理層)であり得る。第1のインターフェース108は、取引サービスノード102において、および/または、クライアント110の一部として(プロセッサにおいて)実行される命令を含み得る。例では、第1のインターフェース108は、クライアント110が取引サービスノード102と通信する方法に関する機能(たとえば、アプリケーションプログラミングインターフェース)のライブラリを利用することができ、たとえば、ライブラリは、取引サービスノード102において、および/または、クライアント110の一部として実行され得る。例では、第1のインターフェース108は、たとえば、トランスポート層セキュリティ(TLS)、ウェブソケット、またはハイパテキストトランスファープロトコルセキュア(HTTPS)セッションである伝送セッションを、開始、使用、および/または終了する命令を含み得る。
【0029】
[0036]クライアント110は、たとえば、第1のインターフェース102を介して、(ユーザからの入力に基づいて生成された)新規注文要求を、取引サービスノード102のうちの1つへ送信し得る。(市場のタイミングがユーザにとって重要であるような)例では、新たな各注文要求は、クライアント110から、分散型取引システム100内の取引サービスノード102のうちの1つへ即座に送信することができる。あるいは、新規注文要求は、クライアント110から、取引サービスノード102のうちの1つに、バッチで送信することができる。
【0030】
[0037]取引サービスノード102は、たとえば、ブローカディーラ、保管人、または任意の他のタイプの金融サービスエンティティによって、またはそれらの代わりに、所有および/または運用されるような、ピアツーピアネットワーク114におけるコンピューティングデバイスの第1のサブセットであり得る。取引サービスノード102は、たとえば、オプションの第1のインターフェース108を介して、クライアント110から新規注文要求を受信するように構成され得る。新規注文要求を受信すると、取引サービスノード102は、新規注文要求に対する処理を実行するように構成され得る。例では、処理は、クライアント110からの新規注文要求から、新規注文の単一メッセージを生成することを含む。例では、新規注文要求は、任意の適切なフォーマットで受信され得る。例では、新規注文の単一メッセージは、たとえば、金融情報交換(FIX)メッセージのシリアル版としてモデル化されたJavaScript Object Notation(JSON)のような、第1のフォーマットで生成され得る。
【0031】
[0038]取引サービスノード102は、たとえば、ピアツーピアネットワーク114へ発行された(イベントにおける)新規注文の単一メッセージのタイムスタンプに関し、コンセンサスを形成するためにピアツーピアネットワーク114へ発行されるイベントに、ペイロードとして新規注文の単一メッセージを挿入するように構成され得る。したがって、例では、イベントにおけるペイロードは、FIXの新規注文の単一メッセージのJSON表現であり得る。
【0032】
[0039]例では、ピアツーピアネットワーク114にイベントを発行することは、取引サービスノード102が、(ピアツーピアネットワーク114におけるネットワークノード102~104において実行している)ハッシュグラフライブラリにおける発行機能に、新規注文の単一メッセージを渡すことを含み得る。発行機能は、一旦呼び出されると、取引サービスノード102に対して、ピアツーピアネットワーク114における別のネットワークノード102~104に、イベントを(ペイロードとしての新規注文の単一メッセージとともに)送信させ得る。イベントは、(1)取引サービスノード102が別のノード102~104から受信した最後のイベントのハッシュと、(2)取引サービスノード102が作成した最後のイベントのハッシュとを含み得る。イベントはまた、ピアツーピアネットワーク114への発行のタイムスタンプ、および/または、電子署名を含み得る。
【0033】
[0040]ピアツーピアネットワーク114における各ネットワークノード102~104がイベントを受信すると、受信ネットワークノード102~104において格納されたハッシュグラフデータ構造は、イベントに基づいて更新される。仮想投票の後、受信ノード102~104におけるハッシュグラフライブラリは、以下の引数、すなわち、(1)イベントにおけるペイロード(またはペイロードから導出されたデータ)、(2)イベントにおけるタイムスタンプについて(ピアツーピアネットワーク114によって)コンセンサスに達したか否かを示すブール引数(たとえば、isConsensusフラグ)、(3)イベントからのタイムスタンプ、(4)イベントID、および/または、(5)アドレスのうちの1つまたは複数を用いて、戻りトランザクション機能(たとえば、handleTransaction())を呼び出し得る。戻りトランザクション機能(たとえば、handleTransaction())は、ピアツーピアネットワーク114における各ネットワークノード102~104におけるハッシュグラフライブラリとは別のアプリケーションにおいて実施され得る。どのように実施されるのかに応じて、戻りトランザクション機能(たとえば、handleTransaction())が呼び出されるネットワークノード102~104は、イベントのペイロードを異なる方式で処理し得る。たとえば、ネットワークノード102~104は、以下に説明するように、他のタイプではなく、特定のタイプのペイロードを有するイベントを、文脈的にフィルタリングし得る。
【0034】
[0041]ゲートウェイノード103は、たとえば、ブローカディーラ、保管人、または他の任意のタイプの金融サービスエンティティによって、またはその代わりに、所有および/または運用されるような、ピアツーピアネットワーク114におけるコンピューティングデバイスの第2のサブセットであり得る。ゲートウェイノード103は、ピアツーピアネットワーク114の一部であるため、ピアツーピアネットワーク114へ発行されたイベントを受信するように構成され得る。ゲートウェイノード103は、異なるタイプのペイロードを含むイベントを受信し得るが、すべてのタイプのペイロードのサブセットを有するイベントについてのみ文脈的にフィルタリングし得る。例では、ピアツーピアネットワーク114へ発行され、ピアツーピアネットワーク114から出力されるイベントにおけるペイロードのタイプは、新規注文の単一メッセージ、実行レポート、注文キャンセル要求、および/または、注文ステータス要求を含む(ただし、これらに限定されない)。
【0035】
[0042]本明細書で使用される文脈的フィルタリングは、ピアツーピアネットワーク114から受信したイベントにおいて、ペイロードを(ネットワークノード102~104のうちの1つによって)識別、選択、決定、導出、調査、確認、アクセス、解決、選定、分離、および/または他の方法で処理することを指す。例では、ゲートウェイノード103は、実行レポートペイロードではなく、(ピアツーピアネットワーク114へ発行されたイベントにおける)新規注文の単一メッセージペイロードを、文脈的にフィルタリングし得る。あるいは、ゲートウェイノード103は、他のタイプのペイロード(たとえば、実行レポートペイロード)ではなく、新規注文の単一メッセージペイロード、注文キャンセル要求ペイロード、および注文ステータス要求ペイロードを有するイベントを、文脈的にフィルタリングし得る。オプションで、ゲートウェイノード103はまた、イベントにおいてタイムスタンプについてコンセンサスに達したか否か、たとえば、受信したイベントにおいて、isConsensusフラグが真であるか否かに基づいて、イベントを文脈的にフィルタリングし得る。
【0036】
[0043]ペイロードタイプに基づく文脈的フィルタリングは、受信したイベント(または、受信したイベントにおけるペイロード)に含まれるタイプフィールドに基づいて実行され得る。例では、ゲートウェイノード103は、イベントまたはペイロードにおけるフィールドが、ペイロードを、新規注文の単一メッセージとして識別すると判定することに応答して、さらなる処理のために、新規注文の単一メッセージペイロードを、文脈的にフィルタリング(たとえば、識別)し得る。言い換えれば、ゲートウェイノード103は、ペイロードタイプを判定するために、文脈的フィルタリング中に、イベントペイロードの内容を検査/分析/解釈し得る。
【0037】
[0044]イベントのペイロード(または、イベント内のペイロード)が、ネットワークノード102~104のための正しいタイプである(および、オプションで、タイムスタンプについてコンセンサスに達した)場合、ネットワークノード102~104における戻りトランザクション機能はさらに、ペイロードを処理し得る。例では、ゲートウェイノード103が、新規注文の単一メッセージペイロード(および、オプションで、コンセンサスに達したタイムスタンプ)を有するイベントを受信すると、ゲートウェイノード103は、新規注文の単一メッセージペイロードを、第2のフォーマット(たとえば、FIX)へ変換し、たとえばFIXセッションにおいて、注文管理システム112へ送信するように構成され得る。
【0038】
[0045]ゲートウェイノード103は、文脈的にフィルタリングされないペイロードを有する(および、オプションで、コンセンサスに達していないタイムスタンプを有する)イベントを、(ピアツーピアネットワーク114から)受信し得ることに留意されたい。文脈的にフィルタリングされていないペイロードタイプ(または、オプションで、コンセンサスに達していないタイムスタンプ)を有するイベントを受信すると、ゲートウェイノード103における戻りトランザクション機能は、それ以上のアクションを講じることができないが、ハッシュグラフライブラリは、(ゴシッププロトコルによって示されている)さらなるノード102~104へイベントを渡し得る。
【0039】
[0046]ゲートウェイノード103は、注文管理システム112に接続するアクタシングルトン(actor singleton)(ゲートウェイノード103の1つで実行しているサービスにおける単一のアクティブな実行スレッド)を指定する、クラスタリングソフトウェア(たとえば、Akkaライブラリ)をさらに実行し得ることに留意されたい。(アクタシングルトンを実行している)ゲートウェイノード103がダウンすると、クラスタリングソフトウェアは、新規のアクタシングルトンが実行できる新規のゲートウェイノード103を自動的に指定し得る。FIXプロトコルは、シーケンス番号を含む実行状態に関するメタデータを格納し得るので、FIXセッションを新規のアクタシングルトンにおいて復元できる。例では、ゲートウェイノード103のうちの少なくとも1つ(たとえば、すべて)は、FIXセッションメタデータを格納するデータベース(図示せず)と通信し得る。例では、分散型取引システム100は、冗長性のために、3つのゲートウェイノード103のクラスタを含み得る。さらに、一度に1つのアクタシングルトンのみが注文管理システム112と通信する場合でも、(アクタシングルトンスレッドを実行していない)他のゲートウェイノード103は、ピアツーピアネットワーク114における他のネットワークノード102~104とのコンセンサスに達することに関与し得る。
【0040】
[0047]例では、注文管理システム112は、少なくとも1つのゲートウェイノード103に通信可能に結合されている。オプションで、注文管理システム112は、第2のインターフェース109を介して、少なくとも1つのゲートウェイノード103と通信し得る。第2のインターフェース109は、たとえば、媒体、VPN、WAN、リンクのように、データを伝送するために使用される通信層(たとえば、ネットワーク層および/または物理層)であり得る。第2のインターフェース109は、ゲートウェイノード103および/または注文管理システム112において(プロセッサにおいて)実行される命令を含み得る。例では、少なくとも1つのゲートウェイノード103は、第1のフォーマットにおいて(たとえば、JSONフォーマットにおいて)新規注文の単一メッセージペイロードを有するイベントを受信し、このペイロードを、第2のフォーマット(たとえば、FIXフォーマット)へ変換し得る。FIXプロトコルは、証券トランザクションおよび市場に関する情報のリアルタイム交換のために使用される。例では、第2のインターフェース109は、たとえば、FIXセッションである伝送セッションを、開始、使用、および/または終了する命令を含み得る。
【0041】
[0048]注文管理システム112は、注文帳を維持し得る。本明細書で使用される場合、「注文帳」という用語は、注文の集合を指す。注文帳は、たとえば、1つまたは複数のディスクドライブ、フラッシュドライブ、1つまたは複数のデータベース、1つまたは複数のテーブル、1つまたは複数のファイル、ローカルキャッシュメモリ、プロセッサキャッシュメモリ、リレーショナルデータベース、フラットデータベースなどのメモリに格納され得る。注文帳における注文は、取引実行のためにともに照合され得る。
【0042】
[0049]例では、有線ネットワークとワイヤレスネットワークとの任意の組合せ(図示せず)を使用して、注文管理システム112を、少なくとも1つのゲートウェイノード103に通信可能に結合することができる。例では、注文管理システム112は、少なくとも1つのローカルエリアネットワーク(LAN)、少なくとも1つの広域ネットワーク(WAN)、またはインターネットのうちの少なくとも1つを介して、少なくとも1つのゲートウェイノード103に通信可能に結合される。オプションで、任意の数の中間デバイスが、注文管理システム112と、注文管理システム112が通信可能に結合されているゲートウェイノード103との間の通信経路に配置され得、中間デバイスは、注文管理システム112とゲートウェイノード103との間で、メッセージ(たとえば、FIXメッセージ)の転送、中継、および/またはルーティングを実行する。注文管理システム112は、ピアツーピアネットワーク114における複数のゲートウェイノード103に通信可能に結合することができる。
【0043】
[0050]注文管理システム112は、少なくとも1つのゲートウェイノード103から(たとえば、FIXプロトコルにしたがって)新規注文の単一メッセージを受信するように構成され得る。新規注文の単一メッセージを受信すると、注文管理システム112は、注文のタイプ(買い、売り、保留など)、資産識別子(たとえば、CUSIP番号、ティッカシンボルなど)、取り引きされている資産の量、指値、ストップ価格、条件付きトリガ要件、注文期間(たとえば、有効時間)、および/または、注文が部分的に約定される可能性があるか否かに基づいて、注文を(別の注文と)照合し得る。注文が成功裡に照合された場合、注文管理システム112は、新規注文の単一メッセージによって要求された取引を実行し得る。あるいは、注文管理システム112は、実行のために、照合されたメッセージを、たとえば、資産交換デバイスである別のデバイス(図示せず)へ送信し得る。
【0044】
[0051]実行されると、注文管理システム112は、実行レポートを生成し得る。実行レポートは、実行のタイムスタンプ、決済予定日、資産識別子(たとえば、CUSIP番号、ティッカシンボルなど)、量、価格、注文のタイプ、収益額、請求される手数料、および/または、取引実行のために請求される他の手数料のうちのいずれかを含み得る。あるいは、取引の実行が、別のデバイス(たとえば、資産交換デバイス)によって実行される場合、実行レポートは、実行デバイスによって生成され、実行デバイスから受信され得る。注文管理システム112は、実行レポートを、ゲートウェイノード103のうちの1つ、たとえば、新規注文の単一メッセージを送信したものと同じまたは異なるゲートウェイノード103へ送信し得る。例では、注文管理システム112は、新規注文の単一メッセージが受信されたのと同じFIXセッションにおいて、実行レポートを送信し得る。したがって、実行レポートは、新規注文の単一メッセージとは逆方向に、第2のインターフェースを通過し得る。オプションで、注文管理システム112は、複数の実行された注文のための情報を含む単一の実行レポートを生成し得る。
【0045】
[0052]ゲートウェイノード103は、実行レポートを(たとえば、FIXセッションにおいて)受信し、実行レポートを第2のフォーマット(たとえば、FIXフォーマット)から、第1のフォーマット(たとえば、JSON)へ変換するように構成され得る。各ゲートウェイノード103はまた、たとえば、ピアツーピアネットワーク114におけるネットワークノード102~104において実行している、ハッシュグラフライブラリにおける発行機能を呼び出すことによって、ピアツーピアネットワーク114へ発行されるイベントに、ペイロードとして変換された実行レポートを挿入するように構成され得る。イベントは、(1)ゲートウェイノード103が別のノード102~104から受信した最後のイベントのハッシュ、および、(2)ゲートウェイノード103が作成した最後のイベントのハッシュを含み得る。イベントはまた、ピアツーピアネットワーク114への発行のタイムスタンプ、および/または、電子署名を含み得る。
【0046】
[0053]例では、ピアツーピアネットワーク114は、主に、実行レポートペイロードを有するイベントのための伝送メカニズムとして機能し得る(ただし、実行レポートペイロードを有するイベントにおけるタイムスタンプについて、コンセンサスに達することができる)。したがって、各ゲートウェイノード103は、(1)コンセンサスに達した新規注文の単一メッセージペイロードおよび/またはタイムスタンプを有する受信イベントを文脈的にフィルタリングし、(2)新規注文の単一メッセージを、第1のフォーマット(たとえば、FIXのJSON表現)から、第2のフォーマット(たとえば、FIX)へ変換し、(3)(たとえば、第2のフォーマットにおける)新規注文の単一メッセージを、注文管理システム112へ発行し、(4)(たとえば、FIXセッションにおいて)注文管理システム112から実行レポートを受信し、(5)受信した実行レポートを、第2のフォーマット(たとえば、FIX)から、第1のフォーマット(たとえば、FIXのJSON表現)へ変換し、(6)(たとえば、第1のフォーマットにおける)実行レポートペイロードを有するイベントを、(たとえば、主に伝送メカニズムとして)ピアツーピアネットワーク114へ発行するように構成され得る。
【0047】
[0054]それらはピアツーピアネットワーク114の一部であるため、取引サービスノード102は、ピアツーピアネットワーク114へ発行されたイベントを受信し得る。取引サービスノード102においてイベントを受信すると、取引サービスノード102における戻りトランザクション機能(たとえば、handleTransaction())は、以下の引数、すなわち、(1)イベントにおけるペイロード(または、ペイロードから導出されたデータ)、(2)イベントにおけるタイムスタンプについて(ピアツーピアネットワーク114によって)コンセンサスに達したか否かを示すブール引数(たとえば、isConsensus)、(3)イベントからのタイムスタンプ、(4)イベントID、および/または、(5)アドレスのうちの1つまたは複数を用いて呼び出され得る。戻りトランザクション機能(たとえば、handleTransaction())は、ピアツーピアネットワーク114における各取引ノード102~104におけるハッシュグラフライブラリとは別のアプリケーションにおいて実施され得る。
【0048】
[0055]例では、取引サービスノード102は、新規注文の単一メッセージペイロード、注文キャンセル要求ペイロード、または注文ステータス要求ペイロードではなく、(ピアツーピアネットワーク114へ発行されたイベントにおける)実行レポートペイロードを、文脈的にフィルタリングし得る。オプションで、取引サービスノード102はまた、イベントにおけるタイムスタンプについてコンセンサスに達したか否か、たとえば、受信されたイベントにおけるisConsensusフラグが真であるか否かに基づいて、イベントを文脈的にフィルタリングし得る。
【0049】
[0056]取引サービスノード102は、イベントまたはペイロードにおけるフィールドが、ペイロードを、実行レポートペイロードとして識別すると判定することに基づいて、実行レポートペイロードを有するイベントを、文脈的にフィルタリングし得る。言い換えれば、取引サービスノード102は、ペイロードタイプを判定するために、文脈的フィルタリング中に、イベントペイロードの内容を、検査/分析/解釈し得る。
【0050】
[0057]取引サービスノード102のうちの1つが、実行レポートペイロードを有するイベントを識別したとき(および、オプションで、タイムスタンプについてコンセンサスに達したとき)、取引サービスノード102は、実行レポートペイロードに基づいて通知を生成し、この通知を、たとえば、TLS、ウェブソケット、またはHTTPSセッションにおいて、クライアント110に送信するように構成され得る。イベントにおける実行レポートペイロードは、第1のフォーマット(たとえば、FIXメッセージのJSON表現)であり得るが、通知は、別のフォーマットである。
【0051】
[0058]取引サービスノード102は、(ピアツーピアネットワーク114から)文脈的にフィルタリングされないペイロードを有する(および、オプションで、コンセンサスに達していないタイムスタンプを有する)イベントを受信し得ることに留意されたい。文脈的にフィルタリングされていないペイロードタイプ(または、オプションで、コンセンサスに達していないタイムスタンプ)を有するイベントを受信すると、取引サービスノード102における戻りトランザクション機能は、それ以上のアクションを講じることができないが、ハッシュグラフライブラリは、(ゴシッププロトコルによって示される)さらなるノード102~104へイベントを渡し得る。
【0052】
[0059]したがって、各取引サービスノード102は、(1)クライアント110から新規注文要求を受信し、(2)新規注文要求に基づいて、第1のフォーマット(たとえば、FIXメッセージのJSON表現)において新規注文要求を生成し、(3)(新規注文要求に基づいて生成された)新規注文の単一メッセージペイロードを有するイベントを、ピアツーピアネットワーク114へ発行し、(4)実行レポートペイロード(および、オプションで、コンセンサスに達したタイムスタンプ)を有する受信イベントを、文脈的にフィルタリングし、(5)実行レポートペイロードを有するイベントに基づいて通知を生成し、および/または、(6)通知を、1つまたは複数のクライアント110に送信するように構成され得る。
【0053】
[0060]オプションで、取引サービスノード102は、(クライアント110からのそれぞれの新規注文要求から)作成する各新規注文の単一メッセージのステータスを追跡し得る。したがって、各取引サービスノード102は、オプションで、新規注文の単一メッセージペイロードを有する受信イベントにおける実行レポートペイロードを、以前に生成されピアツーピアネットワーク114へ発行されたイベントと関連付け得る。
【0054】
[0061](実行レポートペイロードを有するイベントに関連付けられた)新規注文の単一メッセージペイロードを有するイベントを送信した、同じまたは異なる取引サービスノード102が、実行レポートペイロードを有するイベントを受信および処理し得ることにも留意されたい。クライアント110は、通知を受信し、通知をユーザに(たとえば、ユーザインターフェースにおいて)提示し、および/または、たとえば、電話、テキスト、電子メールなどを介して、ユーザに通知を送信し得る。
【0055】
[0062]オプションで、様々なユーザは、たとえば、ユーザインターフェース、クライアント110、および/またはAPIを介して、分散型取引システム100の一部として生成する取引サービスノード102のうちの1つまたは複数、およびデータにアクセスし得る。異なるユーザは、取引サービスノード102において異なる特権を有し得る。例では、個々の投資家は、彼らが彼ら自身に代わって注文要求を出し、修正し、ステータスを受信し、および/または、キャンセルすることを許可する、制限された特権を有し得る。しかしながら、機関投資家、ブローカディーラ、および/または保管人は、自分自身で、または、クライアントに代わって行われた注文要求を出し、修正し、ステータスを受信し、および/または、キャンセルすることを許可する、より広い特権を有し得る。さらに、管理者は、オプションで、任意の注文要求を出し、修正し、ステータスを受信し、および/または、キャンセルすることを許可する、管理者特権を有し得る。
【0056】
[0063]取引サービスノード102およびゲートウェイノード103に加えて、ピアツーピアネットワーク114は、1つまたは複数のオブザーバノード104を含み得る。オブザーバノード104は、管理(たとえば、管理ノード104A)、規制(たとえば、規制ノード104B)、アーカイブ、および/または電子署名機能を実行し得る。
【0057】
[0064]オプションの少なくとも1つの管理ノード104Aは、ピアツーピアネットワーク114における一種のオブザーバノード104であり得る。管理ノード104Aは、分散型取引システム100の管理者、または、サードパーティのデータサービスプロバイダによって、またはそれに代わって、所有および/または運用され得る。ピアツーピアネットワーク114におけるペイロードタイプのサブセットのみを有するイベントを、文脈的にフィルタリングする取引サービスノード102およびゲートウェイノード103とは対照的に、管理ノード104Aは、ピアツーピアネットワーク114へ発行されたすべてのタイプのペイロードを有するイベントを、文脈的にフィルタリングし得る。あるいは、管理ノード104Aは、ピアツーピアネットワーク114へ発行されたペイロードのタイプのサブセットのみを有するイベントを、文脈的にフィルタリングし得る。さらに、管理ノード104Aは、ピアツーピアネットワーク114へ発行されたイベントのオブザーバであり得るが、好ましくは、ピアツーピアネットワーク114にイベントを発行しない(ただし、管理ノード104Aは、ピアツーピアネットワーク114の外部の他のコンピューティングデバイスおよび/またはシステムと通信し得る)。
【0058】
[0065]管理ノード104Aは、分散型取引システム100におけるトランザクションに関する1つまたは複数のサービスを提供し得る。サービスは、管理ノード104Aにおける少なくとも1つのプロセッサにおいて実行する命令のセットであり得る。例では、管理ノード104Aは、顧客アカウントにおける残高を計算および/または更新するアカウントサービスを実行し得る。アカウントサービスは、ピアツーピアネットワーク114へ発行された新規注文の単一メッセージペイロードおよび/または実行レポートペイロードを有するイベントを、文脈的にフィルタリングし得る。
【0059】
[0066]例では、限定されないが、顧客アカウントは、ウォレットを利用し得る。「ウォレット」という用語は、セキュリティトークン102などのデジタル資産を格納および/または管理するために使用されるソフトウェアプログラム、デジタルファイル、および/またはメモリを指す。例では、ウォレットは、1つまたは複数の秘密鍵、1つまたは複数の秘密鍵から導出された1つまたは複数の公開鍵、ならびに/もしくは、1つまたは複数の秘密鍵および/または1つまたは複数の公開鍵から導出された1つまたは複数のトランザクションアドレス、によって定義され得る。例では、ウォレットは、1つまたは複数の秘密アカウント鍵(およびオプションの、対応する公開アカウント鍵)によって定義され得、鍵のおのおのは、1つまたは複数の子、および/または、孫のトランザクション鍵を有し得る。
【0060】
[0067]例では、管理ノード104Aは、証券の所有権の変更を記録する名義変更エージェントサービス(transfer agent service)を実行し得る。例では、名義変更エージェントサービスは、(1)保管資産の有益な所有権、および/または、(2)顧客が直接保有する資産の登録所有権、における変更を記録し得る。例では、名義変更エージェントサービスは、たとえば、複数の実行レポートのバッチを、定期的にサードパーティシステムへ送信することによって、実行された取引を(たとえば、実行レポートに基づいて)(ピアツーピアネットワーク114の外部の)サードパーティシステムにレポートし得る。名義変更エージェントサービスは、たとえば、注文ステータス要求および/または注文キャンセル要求ではなく、ピアツーピアネットワーク114へ発行された新規注文の単一メッセージペイロードおよび/または実行レポートペイロードを有するイベントを、文脈的にフィルタリングし得る。
【0061】
[0068]オプションの少なくとも1つの規制ノード104Bは、ピアツーピアネットワーク114における一種のオブザーバノード104であり得る。規制ノード104Bは、たとえば、SECおよび/またはFINRAである、1つまたは複数の規制機関によって、またはそれらに代わって、所有および/または運用され得る。管理ノード104Aと同様に、規制ノード104Bは、ピアツーピアネットワーク114へ発行されたすべてのタイプのペイロードを有するイベントを、文脈的にフィルタリングし得る。あるいは、規制ノード104Bは、ピアツーピアネットワーク114へ発行されたペイロードのタイプのサブセットのみを有するイベントを、文脈的にフィルタリングし得る。さらに、規制ノード104Bは、ピアツーピアネットワーク114へ発行されたイベントのオブザーバであり得るが、好ましくは、ピアツーピアネットワーク114へイベントを発行しない(ただし、規制ノード104Bは、ピアツーピアネットワーク114の外部の他のコンピューティングデバイスおよび/またはシステムと通信し得る)。
【0062】
[0069]規制ノード104Bは、関連する証券法および規制への準拠のために、分散型取引システム100におけるトランザクションを監視する規制サービスを実行し得る。規制サービスは、ピアツーピアネットワーク114から出力された新規注文のメッセージペイロードおよび/または実行レポートペイロードを有するイベントを、文脈的にフィルタリングし得る。例では、(規制ノード104Bは、ピアツーピアネットワーク114を実施するネットワークノード102~104のうちの1つであるため)規制サービスは、ハッシュグラフを構築し得る。規制ノード104Bはまた、ピアツーピアネットワーク114におけるトランザクションの少なくとも1つの電子署名されたハッシュを(ピアツーピアネットワーク114における少なくとも1つの他のネットワークノード102~104から)受信し得る。例では、規制サービスは、そのハッシュグラフから決定されたトランザクションの時系列順を、少なくとも1つの他のネットワークノード102~104からの電子署名されたハッシュと比較して、注文が、注文管理システム112の注文帳においてなされたか、および/または、ピアツーピアネットワーク114によって決定されたものと同じ時系列で実行されたかを判定し得る。
【0063】
[0070]したがって、分散型取引システム100は、集中型取引システム(および他の分散型取引システム)に対していくつかの利点を提供するピアツーピアネットワーク114を利用し得る。たとえば、分散型取引システム100は、ピアツーピアネットワーク114において発生するトランザクションの時系列順、たとえば、新規注文の単一メッセージペイロードを有するイベントが、ピアツーピアネットワーク114によって受信された時系列順について、コンセンサスに達することによって、公正な順序付けを提供し得る。ネットワークノード102~104のおのおのは、ピアツーピアネットワーク114におけるトランザクションを注文するために使用することができる情報(たとえば、コンセンサスに達したイベントタイムスタンプ)、たとえば、イベントが、ピアツーピアネットワーク114へ発行された時系列順を含み得る。(たとえば、注文が、ピアツーピアネットワーク114において受信されたタイムスタンプに関して)新規注文の公正な順序付けを提供することにより、フロントランニングを防止するという利点を有する。
【0064】
[0071]さらに、ピアツーピアネットワーク114におけるネットワークノード102~104によって構築されたハッシュグラフは、ピアツーピアネットワーク114におけるトランザクションの記録を保存し得る。あるいは、ピアツーピアネットワーク114における1つまたは複数のネットワークノード102~104(たとえば、管理ノード104A)は、たとえば、従来のデータベースにおける、または、ビットコインブロックチェーンのようなブロックチェーンにおけるストレージのために、トランザクションのハッシュに定期的に電子署名し得る。ハッシュグラフおよび/または電子署名されたハッシュは、(規制順守のため)規制当局によって、または別のサードパーティによって、たとえば、リアルタイム、ほぼリアルタイム、または非リアルタイムでの監査証跡として使用され得る。
【0065】
[0072]図2Aは、文脈ベースのフィルタリングを実行するネットワークノード102~104のサブセットを備えた分散型取引システム100内で使用されるネットワークノード200の例示的な実施形態を示すブロック図である。ネットワークノード200は、少なくとも1つのメモリ202、少なくとも1つのプロセッサ204、オプションの少なくとも1つのDAGモジュール206、オプションの文脈的フィルタリングモジュール208、オプションの少なくとも1つのディスプレイデバイス210、オプションの少なくとも1つの入力デバイス212、オプションのネットワークインターフェース214、およびオプションの電源216を含む。例では、ネットワークノード200は、ピアツーピアネットワーク114において、取引サービスノード102、ゲートウェイノード103、管理ノード104A、および/または規制ノード104Bを実施するために使用され得る。
【0066】
[0073]例では、少なくとも1つのメモリ202は、情報を格納するために使用される任意のデバイス、メカニズム、または投入されたデータ構造であり得る。例では、少なくとも1つのメモリ202は、任意のタイプの揮発性メモリ、不揮発性メモリ、および/または動的メモリであり得るか、またはそれらを含み得る。たとえば、少なくとも1つのメモリ202は、ランダムアクセスメモリ、メモリストレージデバイス、光メモリデバイス、磁気媒体、フロッピーディスク、磁気テープ、ハードドライブ、消去可能プログラマブル読取専用メモリ(EPROM)、電気的消去可能プログラマブル読取専用メモリ(EEPROM)、光学媒体(コンパクトディスク、DVD、Blu-rayディスクなど)などとすることができる。いくつかの実施形態によれば、少なくとも1つのメモリ202は、1つまたは複数のディスクドライブ、フラッシュドライブ、1つまたは複数のデータベース、1つまたは複数のテーブル、1つまたは複数のファイル、ローカルキャッシュメモリ、プロセッサキャッシュメモリ、リレーショナルデータベース、フラットデータベースなどを含み得る。それに加えて、当業者は、少なくとも1つのメモリ202として使用することができる情報を格納するための多くの追加のデバイスおよび技法を認識するであろう。少なくとも1つのメモリ202は、少なくとも1つのプロセッサ204において1つまたは複数のアプリケーションまたはモジュールを実行するための命令を格納するために使用され得る。たとえば、少なくとも1つのメモリ202は、1つまたは複数の実施形態において、オプションの少なくとも1つのDAGモジュール206、および/または、オプションの少なくとも1つの文脈的フィルタリングモジュール208の機能を実行するために必要な命令のすべてまたは一部を収容するために使用できる。
【0067】
[0074]例では、少なくとも1つのプロセッサ204は、汎用プロセッサ(GPP)または特殊目的(フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、または他の集積回路または回路構成など)、または任意のプログラマブルロジックデバイスのような任意の周知のプロセッサとすることができる。例では、オプションの少なくとも1つのDAGモジュール206および/またはオプションの少なくとも1つの文脈的フィルタリングモジュール208は、少なくとも1つのプロセッサ204および少なくとも1つのメモリ202によって実施される。
【0068】
[0075]例では、オプションの少なくとも1つのディスプレイデバイス210は、発光ダイオード(LED)、液晶ディスプレイ(LDC)、発光ダイオード(LED)ディスプレイ、有機発光ダイオード(OLED)ディスプレイ、e-inkディスプレイ、フィールドエミッションディスプレイ(FED)、表面伝導電子エミッタディスプレイ(SED)、またはプラズマディスプレイのうちの少なくとも1つを含む。例では、オプションの少なくとも1つの入力デバイス212は、(容量性および抵抗性タッチスクリーンを含む)タッチスクリーン、タッチパッド、容量性ボタン、機械式ボタン、スイッチ、ダイヤル、キーボード、マウス、カメラ、バイオメトリックセンサ/スキャナなどのうちの少なくとも1つを含む。例では、オプションの少なくとも1つのディスプレイデバイス210およびオプションの少なくとも1つの入力デバイス212は、コンピューティングデバイス104Aとのユーザインタラクションのために、ヒューマンマシンインターフェース(HMI)に組み合わされる。
【0069】
[0076]例では、少なくとも1つのオプションのネットワークインターフェース214は、ネットワークと通信するための少なくとも1つのオプションのアンテナを含むか、またはそれに結合される。例では、少なくとも1つのオプションのネットワークインターフェース214は、イーサネットインターフェース、セルラー無線アクセス技術(RAT)無線、Wi-Fi無線、Bluetooth無線、または近距離無線通信(NFC)無線のうちの少なくとも1つを含む。例では、少なくとも1つのオプションのネットワークインターフェース214は、ローカルエリアネットワーク(LAN)または広域ネットワーク(WAN)を使用して、リモートサーバとの十分な速度を有するセルラーデータ接続(モバイルインターネット)を確立するように構成されたセルラー無線アクセス技術無線を含む。例では、セルラー無線アクセス技術は、パーソナル通信サービス(PCS)、特殊移動無線(SMR)サービス、拡張特殊移動無線(ESMR)サービス、高度ワイヤレスサービス(AWS)、符号分割多元接続(CDMA)、グローバル移動体通信システム(GSM)サービス、広帯域符号分割多元接続(W-CDMA)、ユニバーサルモバイルテレコミュニケーションシステム(UMTS)、ワールドワイドインタオペラビリティフォーマイクロウェーブアクセス(WiMAX)、第3世代パートナシッププロジェクト(3GPP)ロングタームエボリューション(LTE)、高速パケットアクセス(HSPA)、第3世代(3G)第4世代(4G)、第5世代(5G)など、または他の適切な通信サービスまたはそれらの組合せのうちの少なくとも1つを含む。例では、少なくとも1つのオプションのネットワークインターフェース214は、広域ネットワークではなく、リモートサーバと通信するワイヤレスローカルエリアネットワークと通信するように構成されたWi-Fi(IEEE 802.11)無線を含む。例では、少なくとも1つのオプションのネットワークインターフェース214は、パッシブ近距離無線通信(NFC)タグ、アクティブ近距離無線通信(NFC)タグ、パッシブ無線周波数識別(RFID)タグ、アクティブ無線周波数識別(RFID)タグ、近接カード、または他のパーソナルエリアネットワークデバイスなど、近接通信に限定される近距離無線通信デバイスを含む。例では、同じ少なくとも1つのオプションのネットワークインターフェース214もまた、ネットワークへの外部のゲートウェイデバイス(NFC決済端末など)との通信のために使用される。
【0070】
[0077]例では、ネットワークノード200の様々なコンポーネントに電力を提供するために、少なくとも1つのオプションの電源216が使用される。
[0078](ピアツーピアネットワーク114における)各ネットワークノード200は、少なくとも1つのクライアント110から受信された新規注文の時系列順に関与し得る。この順序付けは、各ネットワークノード200によって構築されたDAG(たとえば、ハッシュグラフデータ構造)に基づき得る。オプションのDAGモジュール206は、(1)(たとえば、ネットワークノード200において実行しているハッシュグラフライブラリにおける発行機能を使用して)ピアツーピアネットワーク114に新規注文を発行し、(2)(たとえば、ピアツーピアネットワーク114における他のネットワークノードにおいて受信された新規注文を含む)ピアツーピアネットワーク114から受信されたイベントに基づいて、DAGデータ構造(たとえば、ハッシュグラフ)を構築し、および/または、(3)ピアツーピアネットワーク114において発生するイベントの時系列順、たとえば、DAGデータ構造(たとえば、ハッシュグラフ)に基づいて、ピアツーピアネットワーク114において新規注文が受信された時系列順を決定するために使用され得る。オプションのDAGモジュール206は、ネットワークインターフェース214を利用して、ピアツーピアネットワーク114内の他のネットワークノード102~104との間でデータを送受信することができる。
【0071】
[0079]ピアツーピアネットワーク114における各ネットワークノード200はまた、文脈的フィルタリングモジュール208を含み得る。配置されているネットワークノード200のタイプに応じて、各ネットワークノード200における文脈的フィルタリングモジュール208は、1つまたは複数のタイプのペイロードを有するイベントを文脈的にフィルタリングし得、たとえば、各ネットワークノード200は、ピアツーピアネットワーク114へ発行されたすべてのタイプのペイロードを有するイベントを受信し得るが、ペイロードのタイプのサブセットのみを有するイベントを選択的に処理し得る。例では、取引サービスノード102における文脈的フィルタリングモジュール208は、他のタイプのペイロードではなく、ピアツーピアネットワーク114から出力された実行レポートペイロードを有するイベントを、文脈的にフィルタリングし得る。例では、ゲートウェイノード103における文脈的フィルタリングモジュール208は、他のタイプのペイロードではなく、新規注文の単一メッセージペイロードを有するイベントを、文脈的にフィルタリングし得る。あるいは、またはそれに加えて、ゲートウェイノード103における文脈的フィルタリングモジュール208は、注文キャンセル要求ペイロードおよび/または注文ステータス要求ペイロード(ただし、すべてのタイプのペイロードよりも少ない)を有するイベントを、文脈的にフィルタリングし得る。例では、オブザーバノード104における文脈的フィルタリングモジュール208は、新規注文の単一メッセージペイロードおよび実行レポートペイロード(および、オプションで、注文キャンセル要求ペイロードおよび/または注文ステータス要求ペイロード)を有するイベントを、文脈的にフィルタリングし得る。
【0072】
[0080]図2Bは、ピアツーピアネットワーク114によって受信された注文を照合する注文管理システム112の例示的な実施形態を示すブロック図である。注文管理システム112は、少なくとも1つのメモリ202と、少なくとも1つのプロセッサ204と、オプションの少なくとも1つのディスプレイデバイス210と、オプションの少なくとも1つの入力デバイス212と、オプションのネットワークインターフェース214と、オプションの電源216とを含み、これらは、図2Aにおけるネットワークノード200に関連して説明されたものと同様の原理および方法にしたがって動作する。
【0073】
[0081]ネットワークノード200とは異なり、注文管理システム112は、照合モジュール207を含み得る。新規注文の単一メッセージを受信すると、照合モジュール207は、注文のタイプ(買い、売り、保留など)、資産識別子(たとえば、CUSIP番号、ティッカシンボルなど)、取り引きされている資産の量、指値、ストップ価格、条件付きトリガ要件、注文期間(たとえば、有効時間)、および/または、注文が部分的に約定される可能性があるか否かに基づいて、新規注文を(別の注文と)照合し得る。注文管理システム112は、(ネットワークノード102~104のおのおのについて一貫した単一の注文で注文された)注文された市場取引要求を、互いに照合するように構成され得る。新規注文の単一メッセージは、ゲートウェイノード103によって注文管理システム112へ送信される。例では、送信ゲートウェイノード103はまた、新規注文の単一メッセージが、ピアツーピアネットワーク114によって受信された時系列順を示し得る。
【0074】
[0082](たとえば、注文帳における)注文が、照合モジュール207によって成功裡に照合された場合、注文管理システム112は、(たとえば、FIXフォーマットで)新規注文の単一メッセージによって要求された取引を実行し得る。あるいは、注文管理システム112は、実行のために、照合されたメッセージを、たとえば資産交換デバイスである、別のデバイス(図示せず)へ送信し得る。
【0075】
[0083]ネットワークノード200とは異なり、注文管理システム112はまた、実行された取引の実行レポートを生成する(または、別のデバイスから受信する)実行レポートモジュール209を含み得る。実行レポートは、実行のタイムスタンプ、決済予定日、資産識別子(たとえば、CUSIP番号、ティッカシンボルなど)、量、価格、注文のタイプ、収益額、請求される手数料、および/または請求される他の手数料のうちのいずれかを含み得る。あるいは、取引の実行が別のデバイス(たとえば、資産交換デバイス)によって実行される場合、実行レポートは、実行デバイスによって生成され、実行デバイスから受信され得る。注文管理システム112は、実行レポートを、ゲートウェイノード103のうちの1つ、たとえば、実行レポートに関連付けられた新規注文の単一メッセージを送信した、同じまたは異なるゲートウェイノード103へ送信し得る。
【0076】
[0084]図2Cは、エンドユーザデバイスから注文を受信し、注文をピアツーピアネットワーク114へ送信するクライアント110を実施するコンピューティングデバイス201の例示的な実施形態を示すブロック図である。コンピューティングデバイス201(たとえば、モバイルまたは非モバイルコンピューティングデバイス)は、少なくとも1つのメモリ202と、少なくとも1つのプロセッサ204と、オプションの少なくとも1つのディスプレイデバイス210と、オプションの少なくとも1つの入力デバイス212と、オプションのネットワークインターフェース214と、オプションの電源216とを含み、これらは図2Aおよび図2Bそれぞれにおいて、ネットワークノード200および注文管理システム112に関連して説明されたものと同様の原理および方法にしたがって動作する。
【0077】
[0085]コンピューティングデバイス201は、ユーザインターフェースをユーザに提示するウェブクライアントを実施し得る。ユーザインターフェースは、新規注文要求、たとえば、注文のタイプ(買い、売り、保留など)、資産識別子(たとえば、統一証券識別手順委員会(CUSIP)番号、ティッカシンボルなど)、取り引きされている資産の量、指値、ストップ価格、条件付きトリガ要件、注文期間(たとえば、有効時間)、および/または注文が部分的に約定される可能性があるか否か、に関するフィールドを含み得る。ユーザは、たとえば、入力デバイス212を介して、新規注文要求に関する関連情報(たとえば、注文属性)を投入するために、クライアントによって提示されるユーザインターフェースとインタラクトし得る。ユーザ入力を受信すると、コンピューティングデバイス201は、新規注文要求を生成し、新規注文要求をピアツーピアネットワーク114における取引サービスノード102へ送信し得る。
【0078】
[0086]図3Aは、取引システム100を実施するネットワークノード102~104のサブセット内の文脈ベースのフィルタリングのための例示的な方法300Aを示すフロー図である。例では、ネットワークノードの少なくとも2つ(および、オプションで3つ以上)の異なるサブセットが、ピアツーピアネットワーク114を実施するために使用される。複数のノード102~104のおのおのは、ハッシュグラフを構築して、ピアツーピアネットワーク114内のイベントの順序に関するコンセンサス、たとえば、イベントがピアツーピアネットワーク114へいつ発行されたかを示すタイムスタンプに関するコンセンサスを構築し得る。各ネットワークノード102~104は、少なくとも1つのメモリに格納された命令を実行する少なくとも1つのプロセッサを含み得る。
【0079】
[0087]好ましくは、ネットワークノード102~104の第1のサブセット(たとえば、取引サービスノード102)は、ネットワークノード102~104の第2のサブセット(たとえば、ゲートウェイノード103)から相互に排他的であるが、(第1のサブセットにおける少なくとも1つのネットワークノード102~104も、第2のサブセットにある)他の構成も可能である。ピアツーピアネットワーク114に加えて、取引システム100は、少なくとも第1の外部のコンピューティングデバイス110(たとえば、クライアント110を実施するコンピューティングデバイス201)および第2の外部のコンピューティングデバイス112(たとえば、注文管理システム112)を含み得る。
【0080】
[0088]例示的な方法300Aは、ブロック302で始まり、ネットワークノード102~104の第1のサブセット(のうちの少なくとも1つ)において、第1の外部のコンピューティングデバイス110から受信した要求に基づいて、第1のメッセージタイプを有する第1のメッセージを生成する。例では、要求は、新規注文要求、注文キャンセル要求、および/または注文ステータス要求である。新規注文要求(ならびに/もしくは、新規注文要求に基づいて生成される後続のイベントおよび/またはペイロード)は、注文のタイプ(買い、売り、保留など)、資産識別子(たとえば、CUSIP番号、ティッカシンボルなど)、取り引きされている資産の量、指値、ストップ価格、条件付きトリガ要件、注文期間(たとえば、有効時間)、および/または、注文が部分的に約定される可能性があるか否かを示すフィールドを含み得る。
【0081】
[0089]オプションで、第1の外部のコンピューティングデバイス110は、第1のインターフェース108を介してネットワークノード102の第1のサブセットと通信する。第1のインターフェース108は、たとえば、媒体、VPN、WAN、リンクのように、データを伝送するために使用される通信層(たとえば、ネットワーク層および/または物理層)であり得る。第1のインターフェース108は、ネットワークノード102の第1のサブセットにおいて、および/または、第1の外部のコンピューティングデバイス110の一部として(プロセッサにおいて)実行される命令を含み得る。例では、第1のインターフェース108は、第1の外部のコンピューティングデバイス110が、ネットワークノード102の第1のサブセットと通信する方法に関する機能(たとえば、アプリケーションプログラミングインターフェース)のライブラリを利用し得る。例では、第1のインターフェース108は、たとえば、トランスポート層セキュリティ(TLS)、ウェブソケット、またはハイパテキストトランスファープロトコルセキュア(HTTPS)セッションである伝送セッションを、開始、使用、および/または終了する命令を含み得る。
【0082】
[0090]例示的な方法300Aは、ブロック304に進み、ここでは、第1のイベントは、ピアツーピアネットワーク114へ発行され、第1のイベントは、第1のメッセージタイプに基づくペイロードを有する。したがって、ネットワークノード102~104へ第1のイベントを発行することは、ネットワークノード102の第1のサブセットのうちの1つが、(1)第1のメッセージタイプに基づくペイロードを有する第1のイベントを生成すること、および、(2)第1のイベントを、ピアツーピアネットワーク114における別のネットワークノード102~104へ送信することを含み得、第1のイベントを、別のネットワークノード102~104へ送信するなどを行う。
【0083】
[0091]第1のイベントは、第1のメッセージ(たとえば、新規注文の単一メッセージ)を、(ネットワークノード102の第1のサブセットのうちの1つで実行している)ハッシュグラフライブラリにおける発行機能へ渡すことによって生成され得る。(第1のメッセージタイプに基づく)ペイロードに加えて、各第1のイベントは、(1)別のノード102~104から受信したネットワークノード102の第1のサブセットのうちの1つである最後のイベントのハッシュと、(2)ネットワークノード102の第1のサブセットのうちの1つが作成した最後のイベントのハッシュと、および/または、(3)ピアツーピアネットワーク114への発行のタイムスタンプ、および/または、電子署名とを含み得る。
【0084】
[0092]例示的な方法300Aは、ブロック306に進み、ここでは、少なくとも1つの有向非巡回グラフ(DAG)が、第1のイベントにおいて、タイムスタンプに関するコンセンサスに達するように試みるために使用される。例では、DAGはハッシュグラフである。第1のイベントが、ピアツーピアネットワーク114におけるネットワークノード102~104間で通信されると、各ネットワークノード102~104において格納されたハッシュグラフデータ構造が、メッセージで更新される。上記のように、ピアツーピアネットワーク114内で渡されたイベントに基づく仮想投票を使用してコンセンサスに達することができる。
【0085】
[0093]例示的な方法300Aは、ブロック308に進み、ここでは、ネットワークノード102~104内のネットワークノード103の第2のサブセット(のうちの少なくとも1つ)が、ピアツーピアネットワーク114から、複数のペイロードタイプを有するイベントを受信し、(たとえば、少なくともいくつかの他のタイプのペイロードではなく)少なくとも第1のメッセージタイプに基づくペイロードを有する第1のイベントをフィルタリングする。例では、ピアツーピアネットワーク114へ発行され、ピアツーピアネットワーク114から出力されるイベントは、新規注文の単一メッセージ、実行レポート、注文キャンセル要求、および/または注文ステータス要求を含む(がこれらに限定されない)ペイロードタイプを有する。
【0086】
[0094]フィルタリングは、(たとえば、第1のイベントであるイベントを受信すると)、以下の引数、すなわち、(1)第1のイベントにおけるペイロード(または、ペイロードから導出されたデータ)、(2)第1のイベントにおけるタイムスタンプについて(ピアツーピアネットワーク114によって)コンセンサスに達したか否かを示すブール引数(たとえば、isConsensus)、(3)第1のイベントからのタイムスタンプ、(4)第1のイベントのイベントID、および/または、(5)アドレスのうちの1つまたは複数を用いて(受信ノード102~104におけるハッシュグラフライブラリにおける)戻りトランザクション機能(たとえば、handleTansaction())を呼び出すことによって実行され得る。戻りトランザクション機能(たとえば、handleTransaction())は、ピアツーピアネットワーク114における各取引ノード102~104におけるハッシュグラフライブラリとは別のアプリケーションにおいて実施され得る。
【0087】
[0095]例では、ネットワークノードの第2のサブセット(たとえば、ゲートウェイノード103)は、少なくとも1つの他のタイプのペイロードを有するイベントではなく、第1のメッセージタイプに基づくペイロードを有する第1のイベントをフィルタリングし得、たとえば、ネットワークノード103の第2のサブセットは、注文実行レポートペイロードではなく、新規注文の単一メッセージペイロード(および、オプションで、注文キャンセル要求ペイロード、および/または、注文ステータス要求ペイロード)を有するイベントをフィルタリングし得る。したがって、ネットワークノード103の第2のサブセットは、ペイロードタイプを判定するために、フィルタリング中に(たとえば、第1のイベントにおいて)、イベントペイロードの内容を検査/分析/解釈し得る。オプションで、ネットワークノードの第2のサブセット(たとえば、ゲートウェイノード103)はまた、イベントにおけるタイムスタンプについてコンセンサスに達したか否か、たとえば、受信したイベントにおけるisConsensusフラグが真であるか否かに基づいて、イベントを文脈的にフィルタリングし得る。
【0088】
[0096]例示的な方法300Aは、ブロック310に進み、ここでは、ネットワークノード103の第2のサブセットのうちの1つが、第1のメッセージタイプ(およびオプションで、コンセンサスに達したタイムスタンプ)に基づくペイロードを有する第1のイベントを受信した場合、ネットワークノード103は、ペイロードを(第1のイベントのペイロードに基づいて)、たとえば、FIXセッションにおいて、第2の外部のコンピューティングデバイス112へ送信される第2のメッセージへ変換し得る。ネットワークノード103は、第1のイベントのペイロードを、第1のフォーマット(たとえば、JOSNの新規注文の単一メッセージ)から第2のフォーマット(たとえば、FIXの新規注文の単一メッセージ)へ変換し得る。
【0089】
[0097]オプションで、ネットワークノード103の第2のサブセットは、第2のインターフェース109を介して、第2の外部のコンピューティングデバイス112と通信し得る。第2のインターフェース109は、たとえば、媒体、VPN、WAN、リンクのように、データを伝送するために使用される通信層(たとえば、ネットワーク層および/または物理層)であり得る。第2のインターフェース109は、ネットワークノード103の第2のサブセットにおいて、および/または、第2の外部のコンピューティングデバイス112の一部として、(プロセッサにおいて)実行される命令を含み得る。例では、第2のインターフェース109は、ネットワークノード103の第2のサブセットが、第2の外部のコンピューティングデバイス112と通信する方法に関する機能(たとえば、アプリケーションプログラミングインターフェース)のライブラリを利用し得る。例では、第2のインターフェース109は、たとえば、FIXセッションである交換プロトコルセッションを、開始、使用、および/または終了する命令を含み得る。
【0090】
[0098]ネットワークノード103の第2のサブセットは、(ピアツーピアネットワーク114から)、文脈的にフィルタリングされないペイロードを有する(そして、オプションで、コンセンサスに達していないタイムスタンプを有する)イベントを受信し得ることに留意されたい。文脈的にフィルタリングされていないペイロードタイプ(または、オプションで、コンセンサスに達していないタイムスタンプ)を有するイベントを受信すると、各ノード103における戻りトランザクション機能は、それ以上のアクションを講じることができないが、ハッシュグラフライブラリは、(ゴシッププロトコルによって示される)さらなるノード102~104へイベントを渡し得る。
【0091】
[0099]図3Bは、取引システム100を実施するネットワークノード102~104のサブセット内の文脈ベースのフィルタリングのための別の例示的な方法300Bを示すフロー図である。図3Aにおける方法300Aと同様に、ネットワークノードの少なくとも2つ(および、オプションで3つ以上)の異なるサブセットが、図3Bにおける方法300Bを実行するピアツーピアネットワーク114を実施するために使用される。複数のノード102~104のおのおのは、ハッシュグラフを構築して、ピアツーピアネットワーク114内のイベントの順序に関するコンセンサス、たとえば、イベントがピアツーピアネットワーク114へいつ発行されたかを示すタイムスタンプに関するコンセンサスを構築し得る。各ネットワークノード102~104は、少なくとも1つのメモリに格納された命令を実行する少なくとも1つのプロセッサを含み得る。オプションで、図3Bの方法300Bは、たとえば、ネットワークノード102~104の同じ第1のサブセット(たとえば、取引サービスノード102)、ネットワークノード102~104の第2のサブセット(たとえば、ゲートウェイノード103)、第1の外部のコンピューティングデバイス110(たとえば、クライアント110を実施するコンピューティングデバイス201)、および、第2の外部のコンピューティングデバイス112(たとえば、注文管理システム112)を使用して、図3Aの方法300Aと順次および/または並行して実行され得る。
【0092】
[0100]例示的な方法300は、ブロック312で始まり、ここでは、(ピアツーピアネットワーク114における)ネットワークノード103の第2のサブセット(のうちの少なくとも1つ)が、第2の外部のコンピューティングデバイス112から第3のメッセージを受信し、第3のメッセージを、第4のメッセージタイプを有する第4のメッセージへ変換する。例では、ネットワークノード103の第2のサブセットは、第2のフォーマット(たとえば、FIXフォーマット)の第3のメッセージ(たとえば、実行レポート)を、第1のフォーマット(たとえば、FIXフォーマットのJSON表現)の第4のメッセージ(たとえば、実行レポート)へ変換するように構成され得る。実行レポートは、実行のタイムスタンプ、決済予定日、資産識別子(CUSIP番号、ティッカシンボルなど)、量、価格、注文のタイプ、収益額、請求される手数料、および/または、取引実行のために請求される他の手数料のうちのいずれかを含み得る。オプションで、第3のメッセージは、上記のように、第2のインターフェース109を介して送信され得る。
【0093】
[0101]例示的な方法300は、ブロック314に進み、ここでは、第2のイベントは、ピアツーピアネットワーク114へ発行され、第2のイベントは、第4のメッセージタイプに基づくペイロードを有する。したがって、第2のイベントをネットワークノード102~104へ発行することは、ネットワークノード103の第2のサブセットのうちの1つが、(1)第4のメッセージタイプに基づくペイロードを有する第2のイベントを生成すること、および、(2)第2のイベントを、ピアツーピアネットワーク114における別のネットワークノード102~104へ送信することを含み得、第2のイベントを、別のネットワークノード102~104へ送信するなどを行う。
【0094】
[0102]第2のイベントは、第4のメッセージ(たとえば、実行レポート)を、(ネットワークノード103の第2のサブセットのうちの1つで実行している)ハッシュグラフライブラリにおける発行機能に渡すことによって生成され得る。(第4のメッセージタイプに基づく)ペイロードに加えて、各第2のイベントは、(1)別のノード102~104から受信したネットワークノード103の第2のサブセットのうちの1つである最後のイベントのハッシュと、(2)ネットワークノード103の第2のサブセットのうちの1つが作成した最後のイベントのハッシュと、および/または、(3)ピアツーピアネットワーク114への発行のタイムスタンプ、および/または、電子署名とを含み得る。
【0095】
[0103]例示的な方法300は、ブロック316に進み、ここでは、ネットワークノード102の第1のサブセット(のうちの少なくとも1つ)は、ピアツーピアネットワーク114から、異なるペイロードタイプを有するイベントを受信し、(たとえば、他のタイプのペイロードではなく)第4のメッセージタイプに基づくペイロードを有する第2のイベントをフィルタリングする。例では、ピアツーピアネットワーク114へ発行され、ピアツーピアネットワーク114から出力されるイベントは、新規注文の単一メッセージ、実行レポート、注文キャンセル要求、および/または、注文ステータス要求を含む(が、これらに限定されない)ペイロードタイプを有する。
【0096】
[0104]フィルタリングは、(たとえば、第2のイベントであるイベントを受信すると)、以下の引数、すなわち、(1)第2のイベントにおけるペイロード(または、ペイロードから導出されたデータ)、(2)第2のイベントにおけるタイムスタンプについて(ピアツーピアネットワーク114によって)コンセンサスに達したか否かを示すブール引数(たとえば、isConsensus)、(3)第2のイベントからのタイムスタンプ、(4)第2のイベントのイベントID、および/または、(5)アドレスのうちの1つまたは複数を用いて(受信ノード102~104におけるハッシュグラフライブラリにおける)戻りトランザクション機能(たとえば、handleTransaction())を呼び出すことによって実行され得る。戻りトランザクション機能(たとえば、handleTransaction())は、ピアツーピアネットワーク114における各取引ノード102~104におけるハッシュグラフライブラリとは別のアプリケーションにおいて実施され得る。
【0097】
[0105]例では、ネットワークノードの第1のサブセット(たとえば、取引サービスノード102)は、少なくとも1つの他のタイプのペイロードを有するイベントではなく、第4のメッセージタイプに基づくペイロードを有する第2のイベントをフィルタリングし得、たとえば、ネットワークノード102の第1のサブセットは、新規注文の単一メッセージペイロード、注文キャンセル要求ペイロード、および/または注文ステータス要求ペイロードではなく、実行レポートペイロードを有するイベントをフィルタリングし得る。したがって、ネットワークノード102の第1のサブセットは、ペイロードのタイプを判定するために、フィルタリング中に(たとえば、第2のイベントにおいて)、イベントペイロードの内容を検査/分析/解釈し得る。オプションで、ネットワークノードの第1のサブセット(たとえば、取引サービスノード102)はまた、イベントにおけるタイムスタンプについてコンセンサスに達したか否か、たとえば、受信したイベントにおけるisConsensusフラグが真であるか否かに基づいて、イベントを文脈的にフィルタリングし得る。
【0098】
[0106]例示的な方法300は、ブロック318に進み、ここでは、ネットワークノード102の第1のサブセットのうちの1つが、第4のメッセージタイプ(および、オプションで、コンセンサスに達したタイムスタンプ)に基づくペイロードを有する第2のイベントを受信した場合、ネットワークノード102は、第2のイベントに基づいて通知を生成し、たとえば、TLS、ウェブソケット、またはHTTPSセッションにおいて、通知を、第1の外部のコンピューティングデバイス110へ送信し得る。通知は、第2のイベントのペイロードとは異なるフォーマットで生成され得る。オプションで、ネットワークノード102の第1のサブセットは、上記のように、第1のインターフェース108を介して第1の外部のコンピューティングデバイス110と通信し得る。
【0099】
[0107]本明細書で紹介される技法は、専用ハードウェア(回路構成など)として、ソフトウェアおよび/またはファームウェアで適切にプログラムされたプログラマブル回路構成として、または専用回路構成とプログラマブル回路構成との組合せとして具体化することができる。したがって、実施形態は、プロセスを実行するようにコンピュータ(または他の電子デバイス)をプログラムするために使用され得る命令を格納した機械可読媒体を含み得る。機械可読媒体は、たとえば、フロッピーディスク、光ディスク、コンパクトディスク読取専用メモリ(CD-ROM)、磁気光学ディスク、読取専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、消去可能プログラマブル読取専用メモリ(EPROM)、電気的消去可能プログラマブル読取専用メモリ(EEPROM)、磁気カードまたは光学カード、フラッシュメモリ、または電子命令の格納に適した他のタイプの媒体/機械読取可能媒体を含み得る。
コンピュータシステムの概要
[0108]本開示の実施形態は、上記で説明された様々なステップおよび動作を含む。これらの様々なステップおよび動作は、ハードウェアコンポーネントによって実行され得るか、またはこれら命令でプログラムされた汎用または専用プロセッサに対してステップを実行させるために使用され得る機械実行可能命令で具体化され得る。あるいは、ステップは、ハードウェア、ソフトウェア、および/またはファームウェアの組合せによって実行され得る。したがって、図4は、本開示のいくつかの実施形態が利用され得る例示的なコンピュータシステムを示すブロック図である。本例によれば、コンピュータシステム400は、相互接続402、少なくとも1つのプロセッサ404、少なくとも1つの通信ポート406、少なくとも1つのメインメモリ408、少なくとも1つのリムーバブルストレージ媒体410、少なくとも1つの読取専用メモリ412、および少なくとも1つの大容量ストレージデバイス414を含む。
【0100】
[0109]少なくとも1つのプロセッサ404は、任意で周知のプロセッサとすることができる。少なくとも1つの通信ポート406は、たとえば、モデムベースのダイヤルアップ接続で使用するためのRS-232ポート、10/100イーサネットポート、または銅またはファイバを使用するギガビットポートのうちのいずれかであり得るか、またはそれらを含み得る。少なくとも1つの通信ポート406の性質は、ローカルエリアネットワーク(LAN)、広域ネットワーク(WAN)、またはコンピュータシステム400が接続する任意のネットワークなどのネットワークに応じて選択され得る。少なくとも1つのメインメモリ408は、ランダムアクセスメモリ(RAM)、または当技術分野で一般に知られている他の任意の動的ストレージデバイスであり得る。少なくとも1つの読取専用メモリ412は、少なくとも1つのプロセッサ80の命令などの静的情報を格納するためのプログラマブル読取専用メモリ(PROM)チップなどの任意の静的ストレージデバイスであり得る。
【0101】
[0110]少なくとも1つの大容量ストレージデバイス414を使用して、情報および命令を格納することができる。たとえば、SCSIドライブのAdaptec(登録商標)ファミリなどのハードディスク、光ディスク、RAIDドライブのAdaptecファミリなどのRAIDのようなディスクのアレイ、または、他の任意の大容量ストレージデバイスが使用され得る。相互接続402は、1つまたは複数のバス、ブリッジ、コントローラ、アダプタ、および/またはポイントツーポイント接続であり得るか、またはそれらを含み得る。相互接続402は、少なくとも1つのプロセッサ404を、他のメモリ、ストレージ、および通信ブロックと通信可能に結合する。相互接続402は、使用されるストレージデバイスに応じて、PCI/PCI-XまたはSCSIベースのシステムバスとすることができる。少なくとも1つのリムーバブルストレージ媒体410は、任意の種類の外付けのハードドライブ、フロッピードライブ、コンパクトディスク読取専用メモリ(CD-ROM)、コンパクトディスク再書込可能(CD-RW)、デジタルビデオディスク読取専用メモリ(DVD-ROM)とすることができる。
【0102】
[0111]上記のコンポーネントは、いくつかのタイプの可能性を例示することが意図される。
前述の例は単なる例であるため、開示を限定するものではない。
【0103】
[0112]用語
[0113]本出願全体で使用される用語、略語、および句の簡単な定義を以下に示す。
[0114]「判定すること」という用語は、計算すること、コンピューティングすること、生成すること、処理すること、導出すること、調査すること、検索すること(たとえば、テーブル、データベース、または別のデータ構造において検索すること)、確認することなどを含み得る。また、「判定すること」はまた、受信すること(たとえば、情報を受信すること)、アクセスすること(たとえば、メモリにおけるデータへアクセスすること)などを含み得る。また、「判定すること」は、解決すること、選択すること、選定すること、確立することなどを含み得る。
【0104】
[0115]「~に基づく」という句は、特に明記しない限り、「~のみに基づく」を意味するものではない。言い換えれば、「~に基づく」という句は、「~のみに基づく」と、「少なくとも~に基づく」との両方を表す。それに加えて、「~に基づく」という句は、中間ステップを排除するものではなく、たとえば、AはCに基づくは、BがCに基づき、AがBに基づくことを意味し得る。それに加えて、「および/または」という用語は、「および」または「または」を意味する。例では、「Aおよび/またはB」は、「A」、「B」、または「AおよびB」を意味することができる。それに加えて、「A、B、および/またはC」は、「Aのみ」、「Bのみ」、「Cのみ」、「AおよびB」、「AおよびC」、「BおよびC」、または「A、B、およびC」を意味することができる。
【0105】
[0116]「接続された」、「結合された」、および「通信可能に結合された」という用語および関連する用語は、動作上の意味で使用され、必ずしも直接の物理的接続または結合に限定されない。したがって、たとえば、2つのデバイスは、直接、または1つまたは複数の中間媒体またはデバイスを介して結合され得る。別の例として、デバイスは、互いに任意の物理的な接続を共有せずに、情報がそれらの間で受け渡されるように結合され得る。本明細書で提供される開示に基づいて、当業者は、前述の定義にしたがって接続または結合が存在する様々な手法を認識するであろう。
【0106】
[0117]「例において」、「例示的な実施形態において」、「いくつかの実施形態において」、「いくつかの実施形態にしたがって」、「示された実施形態において」、「他の実施形態において」、「実施形態」などの句は、一般に、句に続く特定の特徴、構造、または特性が、本開示の少なくとも1つの実施形態に含まれ、本開示の2つ以上の実施形態に含まれ得ることを意味する。それに加えて、そのような句は、必ずしも同じ実施形態または異なる実施形態を指すとは限らない。
【0107】
[0118]明細書が、コンポーネントまたは特徴が含まれるか、または特性を有する場合がある(「may」、「can」、「could」、または「might」)と記述している場合、特定のコンポーネントまたは特徴は、その特性に含まれることも、またはその特性を有することも必要とされない。
【0108】
[0119]「応答する」という用語は、完全にまたは部分的に応答することを含む。
[0120]「モジュール」という用語は、ソフトウェア、ハードウェア、またはファームウェア(または、それらの任意の組合せ)のコンポーネントを広く指す。モジュールは通常、指定された入力を使用して有用なデータまたは他の出力を生成できる機能コンポーネントである。モジュールは、自己完結型である場合と、そうでない場合とがある。(「アプリケーション」とも呼ばれる)アプリケーションプログラムは、1つまたは複数のモジュールを含み得るか、またはモジュールは、1つまたは複数のアプリケーションプログラムを含むことができる。
【0109】
[0121]「ネットワーク」という用語は、一般に、情報を交換することができる相互接続されたデバイスのグループを指す。ネットワークは、ローカルエリアネットワーク(LAN)における数台のパーソナルコンピュータのような小さなもの、または、コンピュータの世界的なネットワークであるインターネットのような大きなものであり得る。本明細書で使用される場合、「ネットワーク」は、あるエンティティから別のエンティティに情報を送信することができる任意のネットワークを包含することが意図される。場合によっては、ネットワークは、複数のネットワークから、さらには、様々なネットワーク間の通信を容易にするように動作可能なゲートウェイを介して相互接続された、1つまたは複数の境界ネットワーク、音声ネットワーク、ブロードバンドネットワーク、金融ネットワーク、サービスプロバイダネットワーク、インターネットサービスプロバイダ(ISP)ネットワーク、および/または、公衆交換電話網(PSTN)のような複数のヘテロジニアスなネットワークからさえも構成され得る。
【0110】
[0122]また、例示のために、本開示の様々な実施形態は、現代のコンピュータネットワーク内のコンピュータプログラム、物理的コンポーネント、および論理的インタラクションの文脈で本明細書において説明されている。重要なことに、これらの実施形態は、現代のコンピュータネットワークおよびプログラムに関連して本開示の様々な実施形態を説明するが、本明細書で説明される方法および装置は、当業者が理解するように、他のシステム、デバイス、およびネットワークに等しく適用可能である。したがって、本開示の実施形態の例示された用途は、限定を意味しておらず、例である。本開示の実施形態が適用可能である他のシステム、デバイス、およびネットワークは、たとえば、他のタイプの通信およびコンピュータデバイスおよびシステムを含む。より具体的には、実施形態は、セル電話ネットワークおよび互換性のあるデバイスのような、通信システム、サービス、およびデバイスに適用可能である。それに加えて、実施形態は、パーソナルコンピュータから、大規模ネットワークのメインフレームおよびサーバまでのすべてのレベルのコンピューティングに適用可能である。
【0111】
[0123]結論として、本開示は、取引システムを実施するネットワークノードのサブセット内での文脈ベースのフィルタリングのための新規のシステム、方法、および構成を提供する。本開示の1つまたは複数の実施形態の詳細な説明が上記で与えられているが、様々な代替、修正、および均等物は、本開示の精神から変化することなく、当業者に明らかであろう。たとえば、上記の実施形態は、特定の特徴に言及しているが、本開示の範囲はまた、特徴の異なる組合せを有する実施形態、および説明された特徴のすべてを含む訳ではない実施形態を含む。したがって、本開示の範囲は、特許請求の範囲内にあるようなすべての代替、修正、および変形を、それらのすべての均等物とともに包含することが意図されている。したがって、上記の説明は限定として見なされるべきではない。
例示的な実施形態
[0124]例1は、ピアツーピアネットワークにおいて通信可能に結合された複数のネットワークノードを備えるシステムを含み、ネットワークノードは、ネットワークノードの第1のサブセットと、ネットワークノードの第2のサブセットとを含み、ネットワークノードの第1のサブセットは、少なくとも第1の外部のコンピューティングデバイスとインターフェースするように構成され、ネットワークノードの第2のサブセットは、少なくとも第2の外部のコンピューティングデバイスとインターフェースするように構成され、ネットワークノードの第1のサブセットは、第1の外部のコンピューティングデバイスから受信した要求に基づいて、第1のメッセージタイプを有する第1のメッセージを生成するように構成され、ネットワークノードの第1のサブセットは、第1のイベントをピアツーピアネットワークへ発行するように構成され、第1のイベントは、第1のメッセージタイプに基づくペイロードを有し、ネットワークノードは、少なくとも1つの有向非巡回グラフ(DAG)を使用して、第1のイベントにおけるタイムスタンプに関するコンセンサスに達するように試みるように構成され、ネットワークノードの第2のサブセットは、ピアツーピアネットワークから、異なるペイロードタイプを有するイベントを受信し、第1のメッセージタイプに基づくペイロードを有する第1のイベントをフィルタリングするように構成され、ネットワークノードの第2のサブセットは、第1のイベントが、第1のメッセージタイプに基づくペイロードを有する場合、ペイロードを、第2の外部のコンピューティングデバイスへ送信される第2のメッセージへ変換するように構成される。
【0112】
[0125]例2は、例1のシステムを含み、ネットワークノードの第2のサブセットは、第2の外部のコンピューティングデバイスから第3のメッセージを受信し、第3のメッセージを、第4のメッセージタイプを有する第4のメッセージへ変換するように構成され、ネットワークノードの第2のサブセットは、第2のイベントを、ピアツーピアネットワークへ発行するように構成され、第2のイベントは、第4のメッセージタイプに基づくペイロードを有し、ネットワークノードの第1のサブセットは、ピアツーピアネットワークから、異なるペイロードタイプを有するイベントを受信し、第4のメッセージタイプに基づくペイロードを有する第2のイベントをフィルタリングするように構成され、ネットワークノードの第1のサブセットは、第1のイベントが、第4のメッセージタイプに基づくペイロードを有する場合、第2のイベントに基づいて通知を生成し、通知を、第1の外部のコンピューティングデバイスへ送信するように構成される。
【0113】
[0126]例3は、例2のシステムを含み、第1のメッセージは、第2のメッセージとは異なるフォーマットであり、第3のメッセージは、第4のメッセージとは異なるフォーマットである。
【0114】
[0127]例4は、例1~例3のいずれかのシステムを含み、ネットワークノードの第2のサブセットは、コンセンサスに達したタイムスタンプを有する第1のイベントをフィルタリングするように構成される。
【0115】
[0128]例5は、例1~例4のいずれかのシステムを含み、ネットワークノードの第2のサブセットは、第1のメッセージタイプに基づくペイロードを有する第1のイベントをフィルタリングする場合、第1のイベントのペイロードを分析するように構成される。
【0116】
[0129]例6は、例1~例5のいずれかのシステムを含み、ネットワークノードの第1のサブセットと、ネットワークノードの第2のサブセットとは相互に排他的である。
[0130]例7は、例1~例6のいずれかのシステムを含み、有向非巡回グラフは、IOTAまたはハッシュグラフである。
【0117】
[0131]例8は、例1~例7のいずれかのシステムを含み、ネットワークノードは、サーバ、パーソナルコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、またはスマートフォンのうちの少なくとも1つから選択される。
【0118】
[0132]例9は、例1~例8のいずれかのシステムを含み、ネットワークノードは、世界中に物理的に分散される。
[0133]例10は、例1~例9のいずれかのシステムを含み、ネットワークノードは、少なくとも1つの有線ネットワークまたは少なくとも1つのワイヤレスネットワークのうちの少なくとも1つを使用して通信可能に結合される。
【0119】
[0134]例11は、第1の外部のコンピューティングデバイスから受信した要求に基づいて、ピアツーピアネットワークにおけるネットワークノードの第1のサブセットにおいて、第1のメッセージタイプを有する第1のメッセージを生成することと、第2のイベントをピアツーピアネットワークへ発行することであって、第1のイベントは、第1のメッセージタイプに基づくペイロードを有する、発行することと、少なくとも1つの有向非巡回グラフ(DAG)を使用して、第1のイベントにおけるタイムスタンプに関するコンセンサスに達するように試みることと、ネットワークノードの第2のサブセットにおいて、ピアツーピアネットワークから、異なるペイロードタイプを有するイベントを受信し、第1のメッセージタイプに基づくペイロードを有する第1のイベントをフィルタリングすることと、ネットワークノードの第2のサブセットのうちの1つが、第1のメッセージタイプに基づくペイロードを有する第1のイベントを受信した場合、ペイロードを、第2の外部のコンピューティングデバイスへ送信される第2のメッセージへ変換することとを備える方法を含む。
【0120】
[0135]例12は、例11の方法を含み、ネットワークノードの第2のサブセットにおいて、第2の外部のコンピューティングデバイスから第3のメッセージを受信し、第3のメッセージを、第4のメッセージタイプを有する第4のメッセージへ変換することと、第2のイベントを、ピアツーピアネットワークへ発行することであって、第2のイベントは、第4のメッセージタイプに基づくペイロードを有する、発行することと、ネットワークノードの第1のサブセットにおいて、ピアツーピアネットワークから、異なるペイロードタイプを有するイベントを受信し、第4のメッセージタイプに基づくペイロードを有する第2のイベントをフィルタリングすることと、ネットワークノードの第1のサブセットのうちの1つが、第4のメッセージタイプに基づくペイロードを有する第1のイベントを受信した場合、第2のイベントに基づいて通知を生成し、通知を、第1の外部のコンピューティングデバイスへ送信することとをさらに備える。
【0121】
[0136]例13は、例11~例12のいずれかの方法を含み、第1のメッセージは、第2のメッセージとは異なるフォーマットであり、第3のメッセージは、第4のメッセージとは異なるフォーマットである。
【0122】
[0137]例14は、例11~例13のいずれかの方法を含み、ネットワークノードの第2のサブセットは、コンセンサスに達したタイムスタンプを有する第1のイベントをフィルタリングするように構成される。
【0123】
[0138]例15は、例11~例14のいずれかの方法を含み、ネットワークノードの第2のサブセットは、第1のメッセージタイプに基づくペイロードを有する第1のイベントをフィルタリングする場合、第1のイベントのペイロードを分析するように構成される。
【0124】
[0139]例16は、例11~例15のいずれかの方法を含み、ネットワークノードの第1のサブセットと、ネットワークノードの第2のサブセットとは相互に排他的である。
[0140]例17は、例11~例16のいずれかの方法を含み、有向非巡回グラフは、IOTAまたはハッシュグラフである。
【0125】
[0141]例18は、例11~例17のいずれかの方法を含み、ネットワークノードは、サーバ、パーソナルコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、またはスマートフォンのうちの少なくとも1つから選択される。
【0126】
[0142]例19は、例11~例18のいずれかの方法を含み、ネットワークノードは、世界中に物理的に分散される。
[0143]例20は、例11~例19のいずれかの方法を含み、ネットワークノードは、少なくとも1つの有線ネットワークまたは少なくとも1つのワイヤレスネットワークのうちの少なくとも1つを使用して通信可能に結合される。
図1
図2A
図2B
図2C
図3A
図3B
図4