(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-06-28
(45)【発行日】2023-07-06
(54)【発明の名称】ブロックチェーン確率的タイマー・トランザクション同期化
(51)【国際特許分類】
G06F 15/00 20060101AFI20230629BHJP
G06Q 40/04 20120101ALI20230629BHJP
【FI】
G06F15/00 470
G06Q40/04
(21)【出願番号】P 2020560743
(86)(22)【出願日】2019-05-13
(86)【国際出願番号】 EP2019062137
(87)【国際公開番号】W WO2019224026
(87)【国際公開日】2019-11-28
【審査請求日】2021-09-27
(32)【優先日】2018-05-23
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【氏名又は名称】太佐 種一
(72)【発明者】
【氏名】フライ、ジョナサン
(72)【発明者】
【氏名】ペニー、クリストファー
(72)【発明者】
【氏名】デマレスト、ジェームス、ジョン
(72)【発明者】
【氏名】ベルゲンダール、マーク
(72)【発明者】
【氏名】ウィン、ジャン
(72)【発明者】
【氏名】ワスキエウィチ、クリストファー
【審査官】坂東 博司
(56)【参考文献】
【文献】米国特許出願公開第2016/0112200(US,A1)
【文献】米国特許第10491578(US,B1)
【文献】Is Proof-Of-Work simply a decentralized clock?,Bitcoin Stack Exchange,2018年02月13日,https://bitcoin.stackexchange.com/questions/70744/is-proof-of-work-simply-a-decentralized-clock,2022年7月27日検索
【文献】Gregory Trubetskoy,Blockchain Proof-of-Work Is a Decentralized Clock,2018年01月23日,https://grisha.org/blog/2018/01/23/explaining-proof-of-work/,2022年7月27日検索
【文献】Jia Liu,How to build time-lock encryption,2018年02月03日,https://eprint.iacr.org/2015/482.pdf,2022年7月27日検索
【文献】Ricardo Perez-Marco,BLOCKCHAIN TIME AND HEISENBERG UNCERTAINTY PRINCIPLE,Science and Information Conference, Intelligent Computing,2018年07月11日,https://webusers.imj-prg.fr/~ricardo.perez-marco/publications/articles/Heisenberg.pdf,2022年7月27日検索
(58)【調査した分野】(Int.Cl.,DB名)
G06F 15/00
G06Q 40/04
(57)【特許請求の範囲】
【請求項1】
コンピュータ実施方法であって、
ブロックチェーン・ネットワーク内で
ブロックチェーン上のブロック
の解
が発見されたことを識別すること
、および
前記ブロック
の解が
発見されたことを識別したことに応答して、前記ブロックチェーン・ネットワークから、
前記ブロックチェーン・ネットワークとは別個の2次ネットワークに確率的タイミング信号を提供する
こと
を含み、前記確率的タイミング信号
が提供されたことに応答して、前記2次ネットワークの1つまたは複数のプロセスの中の1つまたは複数のイベント
がトリガ
される、コンピュータ実施方法。
【請求項2】
前記2次ネットワークの前記1つまたは複数のプロセスの1つまたは複数の参加者ノードが、前記ブロックチェーン
上の前記ブロックの解を発見することを試みることを含む、請求項1に記載の方法。
【請求項3】
前記2次ネットワークの前記1つまたは複数のプロセスの前記2次ネットワークの参加者ノードによって前記ブロック
の解
が発見
されることが、前記2次ネットワーク内での一時的な優位性を前記参加者ノードに提供する、請求項2に記載の方法。
【請求項4】
前記2次ネットワークの前記1つまたは複数のプロセスが、前記ブロックチェーン・ネットワークとは無関係である、請求項1~3のいずれか1項に記載の方法。
【請求項5】
前記2次ネットワークが取引所であり、前記確率的タイミング信号が、実行のために前記取引所に対して出された取引注文をロックする、請求項1~4のいずれか1項に記載の方法。
【請求項6】
前記2次ネットワークがオークション・ネットワークであり、前記ブロックチェーン・ネットワークからの前記確率的タイミング信号が、前記オークション・ネットワークのカウントダウン・タイマーを提供する、請求項1~4のいずれか1項に記載の方法。
【請求項7】
参加者ノードによる前記オークション
・ネットワークのオークションへの参加が、前記参加者ノードが、前記ブロックチェーン・ネットワークのブロックの解を発見することを試みていることを条件とする、請求項6に記載の方法。
【請求項8】
システムであって、
ブロックチェーン・ネットワーク内で
ブロックチェーン上のブロック
の解
が発見されたことを識別し、前記ブロック
の解が
発見されたことを識別したことに応答して、前記ブロックチェーン・ネットワークから、
前記ブロックチェーン・ネットワークとは別個の2次ネットワークに確率的タイミング信号を提供する
ように構成されたプロセッサ
を含み、前記確率的タイミング信号
が提供されたことに応答して、前記2次ネットワークの1つまたは複数のプロセスの中の1つまたは複数のイベント
がトリガ
される、システム。
【請求項9】
前記2次ネットワークの前記1つまたは複数のプロセスが、前記ブロックチェーン・ネットワークとは無関係である、請求項8に記載のシステム。
【請求項10】
前記ブロックチェーン・ネットワークが複数の処理ノードを備え、前記処理ノードのうちの1つまたは複数の処理ノードが、前記ブロックチェーン
上の前記ブロックの解
を発見するための計算リソースを提供し、前記処理ノードのうちの1つまたは複数の処理ノードが、前記2次ネットワークの前記1つまたは複数のプロセスに参加する、請求項8または9に記載のシステム。
【請求項11】
前記2次ネットワークの前記1つまたは複数のプロセスの参加者によって前記
ブロックチェーン上の前記ブロックが発見されたときに、前記参加者に、前記2次ネットワークの前記1つまたは複数のプロセスの他の参加者を越えた優位性が提供される、請求項10に記載のシステム。
【請求項12】
1人または複数の参加者による前記2次ネットワークへの参加が、前記1人または複数の参加者が前記ブロックチェーン・ネットワークのブロックを処理していることを条件とする、請求項8~11のいずれか1項に記載のシステム。
【請求項13】
前記2次ネットワークが取引所であり、前記確率的タイミング信号が、実行のために前記取引所に対して出された取引注文をロックする、請求項8~12のいずれか1項に記載のシステム。
【請求項14】
前記2次ネットワークがオークション・ネットワークであり、前記ブロックチェーン・ネットワークからの前記確率的タイミング信号が、前記オークション・ネットワークのカウントダウン・タイマーを提供する、請求項8~12のいずれか1項に記載のシステム。
【請求項15】
プロセッサに、
ブロックチェーン・ネットワーク内で
ブロックチェーン上のブロック
の解
が発見されたことを
識別すること
、および
前記ブロック
の解
が発見されたことを識別した生成されたことに応答して、前記ブロックチェーン・ネットワークから
、前記ブロックチェーン・ネットワークとは別個の2次ネットワークに確率的タイミング信号を提供すること
を実行させ、前記確率的タイミング信号
が提供されたことに応答して、前記2次ネットワークの1つまたは複数のプロセスの中の1つまたは複数のイベント
がトリガ
される、コンピュータ・プログラム。
【請求項16】
前記2次ネットワークの前記1つまたは複数のプロセスの1つまたは複数の参加者ノードが、前記ブロックチェーン
上の前記ブロックの解を発見することを試みる
ように構成される、請求項15に記載のコンピュータ・プログラム。
【請求項17】
前記2次ネットワークの前記1つまたは複数のプロセスの前記2次ネットワークの参加者ノードによって前記ブロック
の解を
発見することが、前記2次ネットワーク内での一時的な優位性を前記参加者ノードに提供する、請求項16に記載のコンピュータ・プログラム。
【請求項18】
前記2次ネットワークの前記1つまたは複数のプロセスが、前記ブロックチェーン・ネットワークとは無関係である、請求項15~17のいずれか1項に記載のコンピュータ・プログラム。
【請求項19】
前記2次ネットワークが取引所であり、前記確率的タイミング信号が、実行のために前記取引所に対して出された取引注文をロックする、請求項15~18のいずれか1項に記載のコンピュータ・プログラム。
【請求項20】
前記2次ネットワークがオークション・ネットワークであり、前記ブロックチェーン・ネットワークからの前記確率的タイミング信号が、前記オークション・ネットワークのカウントダウン・タイマーを提供する、請求項15~18のいずれか1項に記載のコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本出願は、一般にトランザクション(transaction)の同期化およびタイミングに関し、より詳細には、ブロックチェーン(blockchain)から生成された確率的タイマー(stochastic timer)に基づくトランザクションの同期化に関する。
【背景技術】
【0002】
台帳(ledger)は一般的に、トランザクションが記録された記入用の帳簿と定義される。分散型台帳(distributed ledger)は、その全体または一部が多数のコンピュータに複製された台帳である。暗号分散型台帳(Cryptographic Distributed Ledger)(CDL)は、不可逆性であること(トランザクションが記録された後はそれを取り消すことができない)、アクセス可能性を有すること(どの当事者も、CDLの全体または一部にアクセスすることができる)、経時的でタイムスタンプが付けられていること(全ての当事者が、トランザクションがいつ台帳に追加されたのかを知っている)、コンセンサス(consensus)に基づくこと(トランザクションは、ネットワーク上で、当事者によって、通常は全員一致で承認された場合にのみ追加される)、検証可能性を有すること(全てのトランザクションを暗号によって検証することができる)、という特性のうちの少なくとも一部の特性を有しうる。ブロックチェーンはCDLの一例である。本明細書の説明および図は、ブロックチェーンに関して記述されているが、本出願は、あらゆるCDLに等しく適用される。
【0003】
分散型台帳は、継続的に増大するレコードのリストであり、レコードは通常、他のブロックに関する暗号ハッシュを記憶するなどの暗号技法を適用する。ブロックチェーンは、分散型台帳の一般的な1つの事例であり、情報を記憶するためのパブリックな(public)台帳として使用することができる。ブロックチェーンは、主に金融取引に使用されるが、商品およびサービス(すなわち製品、パッケージ、状態(status)など)に関する種々の情報を記憶することができる。非集中型スキームが、非集中型ネットワークに権限および信用を付与し、ネットワークのノードが、そのノードのトランザクションをパブリックな「ブロック」に継続的かつ逐次的に記録することを可能にし、ブロックチェーンと呼ばれる固有の「チェーン」を生成する。暗号は、トランザクションのソースの認証を保護するために、ハッシュ・コードを介して使用され、中央仲介者(central intermediary)を排除する。ブロックチェーンは、ブロックチェーン・ブロック内の継続的に増大するレコードのリストを維持する分散型データベースであり、レコードは、その変更不可能な(immutable)特性のため、改ざんおよび改訂から保護される。それぞれのブロックは、タイムスタンプおよび前のブロックへのリンクを含む。ブロックチェーンを使用して、情報を保持、追跡、転送および検証することができる。ブロックチェーンは分散型システムであるため、トランザクションをブロックチェーン台帳に追加する前に、全てのピアが、コンセンサス状態に達している必要がある。
【0004】
ブロックチェーンは、通常、ブロックチェーン内の特定のブロックの「解を発見する」ハッシュ・コードの生成は計算的に難しいが、ネットワーク・ピアによるその検証は比較的に容易である、プルーフ・オブ・ワーク(Proof-of-Work)原理またはある同様の原理に基づいて動作する。多くの暗号通貨がブロックチェーンを使用して流通している。暗号通貨ネットワークでは、解の探索がネットワークの全てのノードにわたる競争プロセスであるとして、ブロック解(block solution)が生成されると、解を最初に発見した者に報酬として暗号通貨が発行される。したがって、暗号通貨ネットワーク内のブロックの解を発見することに計算リソースを投入する直接的な金銭的動機が存在する。
【0005】
このワークファンクション(work function)の解の発見には、無料ではない計算サイクルおよび電気が必要である。ブロックチェーン技術の暗号通貨以外の実施態様に関しては、ワークファンクションの解を発見することに対する動機がほとんど存在しない。したがって、ノードがブロックの解を発見するためには、ロバストなトランザクション・レコードを欲すること以外の動機が必要である。
【0006】
さらなる問題は、ノードの数が少ないブロックチェーン・ネットワークは攻撃に対して脆弱であることである。ロバスト性能に関しては、分散型クラスタ内のノードの数が多いことがより望ましい。
【0007】
ブロックチェーンを機能させるシステムおよび方法であって、これらの制限を克服する改良されたシステムおよび方法が求められている。
【発明の概要】
【0008】
ブロックチェーンを確率的タイマーとして使用することができる。検証のためのブロックチェーン解の記帳(posting)を、イベント・スケジュールを決定するトリガとすることができる。解がいつ記帳されるのかを知っている唯一のエンティティは、解を発見したエンティティであるため、解を発見したエンティティは、報酬として、この知識を潜在的に利用する能力を受け取ることができる。しかしながら、ブロックチェーンの解の発見は競争プロセスであるため、解を発見したエンティティが、より大きな利益を得ようとして解を保持し続けた場合には、別のエンティティが解を記帳し、したがってその利益を得てしまう危険性がある。したがって、ブロックチェーンの確率的タイマーは、ブロックチェーンの解の発見に計算リソースを投入するための必要な動機をエンティティに提供しうる。
【0009】
例示的な1つの実施形態は、ブロックチェーン・ネットワーク内でブロック解を生成すること、ブロック解が生成されたことに応答して、ブロックチェーン・ネットワークから2次ネットワーク(secondary network)に確率的タイミング信号を提供すること、および、確率的タイミング信号によって、2次ネットワークの1つまたは複数のプロセスの中の1つまたは複数のイベントをトリガすることのうちの1つまたは複数を含む方法を提供することができる。
【0010】
例示的な別の実施形態は、ブロックチェーン・トランザクションをブロックチェーンのブロックに処理するためのブロック解を必要とするブロックチェーン・ネットワークと、1つまたは複数のプロセスを実行する2次ネットワークとを含むシステムを提供することができる。このブロックチェーン・ネットワークは、ブロックチェーン・ネットワーク内でブロック解が生成されたことに応答して、2次ネットワークに確率的タイミング信号を提供するように構成されていてもよい。
【0011】
別の例示的な実施形態は、命令を含む非一過性コンピュータ可読媒体であって、これらの命令が、プロセッサによって読まれたときに、プロセッサに、ブロックチェーン・ネットワーク内でブロック解を生成すること、ブロック解が生成されたことに応答して、ブロックチェーン・ネットワークから2次ネットワークに確率的タイミング信号を提供すること、および、確率的タイミング信号によって、2次ネットワークの1つまたは複数のプロセスの中の1つまたは複数のイベントをトリガすることのうちの1つまたは複数を実行させる、非一過性コンピュータ可読媒体を提供することができる。
【図面の簡単な説明】
【0012】
【
図1】例示的な実施形態による、2次ネットワークに確率的タイミング信号を提供するブロックチェーン・ネットワークのネットワーク図である。
【
図2A】例示的な実施形態による、アセットシェアリング(asset sharing)シナリオのための例示的なピア・ノード・ブロックチェーン・アーキテクチャ構成を示す図である。
【
図2B】例示的な実施形態による、例示的なピア・ノード・ブロックチェーン構成を示す図である。
【
図3】例示的な実施形態による、許可型ブロックチェーン・ネットワーク(permissioned blockchain network)を示す図である。
【
図4】例示的な実施形態による、ブロックチェーンを確率的タイマーとして使用するためのプロセスのフロー図である。
【
図5A】例示的な実施形態による、ブロックチェーンからのトランザクション同期信号を使用する取引所(exchange)の実施形態を示す図である。
【
図5B】例示的な実施形態による、ブロックチェーンからのトランザクション同期信号を使用する取引所の例示的な方法のフロー図である。
【
図6A】例示的な実施形態による、本明細書に記載された1つまたは複数の動作に従ってブロックチェーン上で種々の動作を実行するように構成された例示的な物理インフラストラクチャを示す図である。
【
図6B】例示的な実施形態による、契約当事者間の例示的なスマート・コントラクト構成およびブロックチェーン上でスマート・コントラクト条項を執行するように構成された仲介サーバを示す図である。
【
図7】1つまたは複数の例示的な実施形態をサポートするように構成された例示的なコンピュータ・システムを示す図である。
【発明を実施するための形態】
【0013】
本明細書の図に概括的に記載され示された本出願の構成要素は、多種多様な異なる構成で配置および設計することができることは容易に理解されよう。したがって、添付図に示された方法、装置、非一過性コンピュータ可読媒体およびシステムのうちの少なくとも1つの実施形態の以下の詳細な説明が、特許請求の範囲に記載された本出願の範囲を限定することは意図されておらず、詳細な説明は、単に、選択された実施形態を示しているだけである。
【0014】
1つまたは複数の実施形態では、本明細書の全体を通じて説明される本出願の特徴、構造または特性を適当な方式で結合することができる。例えば、本明細書の全体を通じて、句「例示的な実施形態」、「いくつかの実施形態」または他の同様の言い回しの使用は、その実施形態に関連して記載された特徴、構造または特性が、少なくとも1つの実施形態に含まれることがあることを示す。したがって、本明細書の全体を通じて、句「例示的な実施形態」、「いくつかの実施形態では」、「他の実施形態では」または他の同様の言い回しの出現は、その全てが、同じグループの実施形態を指しているというわけではなく、1つまたは複数の実施形態では、記載された特徴、構造または特性を適当な方式で組み合わせることができる。
【0015】
さらに、実施形態の説明で用語「メッセージ」が使用されていることがあるが、本出願は、パケット、フレーム、データグラムなどの多くの種類のネットワーク・データに適用することができる。用語「メッセージ」はさらに、パケット、フレーム、データグラムおよびこれらの一切の等価物を含む。さらに、例示的な実施形態に、あるタイプのメッセージおよび信号が示されていることがあるが、それらは、あるタイプのメッセージに限定されず、本出願は、あるタイプの信号に限定されない。
【0016】
例示的な実施形態は、ブロックチェーン・ネットワークを使用してトランザクション・ネットワークに確率的信号を提供する方法、デバイス、ネットワークもしくはシステム、またはこれらの組合せを提供する。ブロックチェーンのワーク・ファンクションの解を発見するコストを外部化または補助することを追求するシステムおよび方法も説明される。
【0017】
ブロックチェーンは、互いに通信する多数のノードを含む分散型システムである。ブロックチェーンは、チェーンコードと呼ばれるプログラム(例えばスマート・コントラクトなど)を操作し、状態および台帳データを保持し、トランザクションを実行する。いくつかのトランザクションは、チェーンコード上に呼び出される演算である。一般に、ブロックチェーン・トランザクションは通常、あるブロックチェーン・メンバーによって「エンドースされて(endorsed)」いなければならず、エンドースされたトランザクションだけが、ブロックチェーンにコミットされ、ブロックチェーンの状態に対する効果を有することができる。エンドースされていない他のトランザクションは無視される。管理機能およびパラメータのための1つまたは複数の特殊なチェーンコードが存在することがあり、それらはひとまとめにしてシステム・チェーンコードと呼ばれる。
【0018】
ノードは、ブロックチェーン・システムの通信エンティティである。同じ物理サーバ上で異なるタイプの多数のノードが動作することができるという意味で、「ノード」は論理機能を実行することができる。ノードは、いくつかの信用ドメインにグループ分けされ、種々のやり方でノードを制御する論理エンティティに関連づけされる。ノードは、トランザクション呼出しをエンドーサ(例えばピア)に提出し、トランザクション・プロポーザルを順序付けサービス(例えば、順序付けノード)にブロードキャストするクライアントまたは提出クライアント・ノードなど、種々のタイプのノードを含むことができる。別のタイプのノードは、クライアントが提出したトランザクションを受信し、それらのトランザクションをコミットし、ブロックチェーン・トランザクションの台帳の状態およびコピーを維持することができるピア・ノードである。ピアは、エンドーサの役割を有することもできるが、それは必須ではない。順序付けサービス・ノードまたはオーダラー(orderer)は、全てのノードの通信サービスを実行するノードであって、トランザクションをコミットし、ブロックチェーンのワールドステート(world state)を変更したときに、システム内のそれぞれのピア・ノードへのブロードキャストなどの送達保証を実現するノードであり、それは、初期のブロックチェーン・トランザクションの別名であり、普通は、制御情報およびセットアップ情報を含む。
【0019】
台帳は、ブロックチェーンの全ての状態遷移の順序付けされた耐改ざん性のレコードである。状態遷移は、参加している当事者(例えばクライアント・ノード、順序付けノード、エンドーサ・ノード、ピア・ノードなど)によって提出されたチェーンコード呼出し(すなわちトランザクション)に起因することがある。トランザクションが、生成、更新、削除などの1つまたは複数のオペランドとして、台帳にコミットされる一組のアセット・キー-バリュー対をもたらし得る。台帳は、変更不可能な順序付けされたレコードをブロックに記憶するために使用されるブロックチェーン(チェーンとも呼ぶ)を含む。台帳はさらに、ブロックチェーンの現在の状態を維持する状態データベースを含む。通常は、1チャネルにつき1つの台帳が存在する。それぞれのピア・ノードは、ピア・ノードがメンバーになっているチャネルごとに、台帳のコピーを維持する。
【0020】
チェーンは、ハッシュがリンクされたブロックとして構造化されたトランザクション・ログであり、それぞれのブロックは、Nが1以上であるとして、N個の一連のトランザクションを含む。ブロック・ヘッダは、そのブロックのトランザクションのハッシュ、および、直前のブロックのヘッダのハッシュを含む。このようにすると、台帳の全てのトランザクションを順序付けし、暗号によって一緒にリンクすることができる。したがって、ハッシュ・リンクを破壊することなく台帳データを改ざんすることはできない。最も最近に追加されたブロックチェーン・ブロックのハッシュは、それ以前に発生したチェーン上の全てのトランザクションを表し、このことは、全てのピア・ノードが一貫した信頼できる状態にあることを保証することを可能にする。チェーンは、ピア・ノード・ファイル・システム(すなわち、取り付けられたローカル・ストレージ、クラウドなど)に記憶することができ、このことは、ブロックチェーン・ワークロードの追記のみの特性を効率的にサポートする。
【0021】
変更不可能な台帳の現在の状態は、チェーン・トランザクション・ログに含まれる全てのキーの最新のバリューを表す。現在の状態は、チャネルに知られている最新のキーバリューを表すため、時にワールドステートと呼ばれる。チェーンコード呼出しは、台帳の現在状態データに対してトランザクションを実行する。これらのチェーンコードの相互作用を効率的にするために、キーの最新のバリューを、状態データベースに記憶することができる。状態データベースは簡便には、チェーンのトランザクション・ログへの索引付きのビューとすることができ、したがって、チェーンからいつでも再生成することができる。状態データベースは、ピア・ノードの始動時およびトランザクションが受け入れられる前に自動的に回復すること(または必要ならば生成する)ことができる。
【0022】
図1は、例示的な実施形態による、ブロックチェーン・ネットワークに基づく確率的タイマー・システムの論理ネットワーク図を示す。
図1を参照すると、システム100は、ブロックチェーン・ネットワーク110を含む。ブロックチェーン・ネットワーク110は、以下で説明するように、
図2Aのネットワーク200と同様のネットワークとすることができ、
図2Bを参照して示し説明するように動作することができる。ブロックチェーン・ネットワーク110を、
図3を参照して後に示し説明する許可型ブロックチェーン・ネットワークとすることもできる。ブロックチェーン・ネットワーク110は通常、トランザクションを生成する複数のクライアント・ノード、トランザクションを処理するピア・ノード、ならびに計算リソース、例えば計算サイクルおよび電力を投入してブロックチェーンのブロックを処理する複数の解発見ノード(またはマイニング・ノード)を含む。ブロックチェーン・ネットワーク110の特定の詳細が本実施形態に関係するとはみなされず、多くの形態のブロックチェーン・ネットワークが適しているであろう。さらに、ブロックチェーン・ネットワーク内で実施されるトランザクションの特定のタイプおよび性質も、本開示の最も広い実施形態に関係しない。ブロックチェーン・ネットワーク110は、それ自体の内部動作、トランザクションなどに加えて、ブロックチェーン・ティック(blockchain tick)に基づく確率的信号115を出力することができる。
【0023】
システム100はさらに、2次トランザクション・ネットワーク130を含む。2次トランザクション・ネットワークは、1つまたは複数のプロセス132を操作する。最も広い形態では、2次トランザクション・ネットワーク130を、確率的タイミング信号またはある同様のエントロピー源(source of entropy)を必要とするネットワークとすることができる。2次ネットワーク130は、プロセス132内のアクションをトリガするブロックチェーン・ティックを受信する。ブロックチェーン・ネットワーク110のノードのうちの1つまたは複数のノードが、これらのプロセス132の参加者であってもよい。プロセス132の1人または複数の参加者が、ブロックチェーン・ネットワーク110内で利用されてもよい。2次ネットワーク130は、概ね独立していてもよく、ブロックチェーン・ネットワーク110とは無関係であってもよい。2次ネットワーク130は、このブロックチェーン・ネットワークをタイマーとして使用するだけである。
【0024】
図2Aは、例示的な実施形態による、ブロックチェーン・アーキテクチャ構成200を示す。
図2Aを参照すると、ブロックチェーン・アーキテクチャ200は、あるブロックチェーン要素、例えば一群のブロックチェーン・ノード202を含むことができる。ブロックチェーン・ノード202は、1つまたは複数のノード204~210を含むことができる(単なる例として4つのノードが示されている)。これらのノードは、ブロックチェーン・トランザクションの追加および有効性検証(validation)プロセス(コンセンサス)など、いくつかのアクティビティに参加する。ブロックチェーン・ノード204~210のうちの1つまたは複数のノードは、トランザクションにエンドースすることができ、アーキテクチャ200内の全てのブロックチェーン・ノードに順序付けサービスを提供することができる。ブロックチェーン・ノードは、ブロックチェーン認証を開始することができ、ブロックチェーン層216に記憶された変更不可能なブロックチェーン台帳に書き込もうとすることができ、そのコピーが基礎をなす物理インフラストラクチャ214にも記憶されてもよい。このブロックチェーン構成は、記憶されたプログラム/アプリケーション・コード220(例えばチェーンコード、スマート・コントラクトなど)にアクセスするため、およびそれを実行するためにアプリケーション・プログラミング・インタフェース(API)222にリンクされた1つまたは複数のアプリケーション224を含むことができ、プログラム/アプリケーション・コード220は、参加者によって求められたカスタマイズされた構成に従って生成することができ、それら自体の状態を維持し、それら自体のアセットを制御し、外部情報を受信することができる。これは、トランザクションとしてデプロイ(deploy)されてよくおよび分散型台帳に追加することにより全てのブロックチェーン・ノード204~210にインストールされてよい。
【0025】
ブロックチェーン・ベースまたはプラットホーム212は、ブロックチェーン・データ、サービス(例えば暗号信用サービス、仮想実行環境など)、および基礎をなす物理コンピュータ・インフラストラクチャの種々の層を含むことができ、これらの層を使用して、新たなトランザクションを受信および記憶すること、ならびにデータ・エントリにアクセスしようとしている監査者(auditor)にアクセスを提供することができる。ブロックチェーン層216は、プログラム・コードを処理し、物理インフラストラクチャ214を働かせるために必要な仮想実行環境へのアクセスを提供するインタフェースを公開することができる。暗号信用サービス218を使用して、アセット交換トランザクションなどのトランザクションを検証することおよび情報を秘密にしておくことができる。
【0026】
図2Aのブロックチェーン・アーキテクチャ構成は、ブロックチェーン・プラットホーム212により、公開された1つまたは複数のインタフェースおよび提供されたサービスを介して、プログラム/アプリケーション・コード220を処理および実行することができる。コード220は、ブロックチェーンアセットを制御することができる。例えば、コード220は、データを記憶および転送することができ、ノード204~210によって、条件または実行の対象となる他のコード要素とともに、スマート・コントラクトおよび関連チェーンコードの形態で実行することができる。非限定的な例として、リマインダ(reminder)、更新、もしくは変更、更新などの対象となる他の通知またはこれらの組合せを実行するために、スマート・コントラクトを生成することができる。スマート・コントラクト自体を使用して、許可(authorization)およびアクセスの要件ならびに台帳の使用に関連した規則を識別することができる。例えば、ブロックチェーン層216に含まれる1つまたは複数の処理エンティティ(例えば仮想機械)によってトランザクション照会(query)226を処理することができる。照会の結果228は、トランザクション、交換、当事者などの詳細を含むことがある。物理インフラストラクチャ214を利用して、本明細書に記載された任意のデータまたは情報を取り出すことができる。
【0027】
チェーンコード内で、高水準アプリケーションおよびプログラミング言語によってスマート・コントラクトを生成し、次いでそれをブロックチェーン内のブロックに書き込むことができる。スマート・コントラクトは、ブロックチェーン(例えばブロックチェーン・ピアの分散型ネットワーク)によって登録、記憶もしくは複製され、またはこれらの組合せが実行される実行可能コードを含んでいてもよい。1つのトランザクションは、スマート・コントラクトに関連した条件が満たされたことに応答して実行されうるスマート・コントラクト・コードの実行である。スマート・コントラクトの実行は、ディジタル・ブロックチェーン台帳の状態に対する信頼できる変更をトリガすることがある。スマート・コントラクト実行によって引き起こされるブロックチェーン台帳に対する変更は、1つまたは複数のコンセンサス・プロトコルによって、ブロックチェーン・ピアの分散型ネットワークの全体にわたって自動的に複製されることがある。
【0028】
スマート・コントラクトは、キー-バリュー対のフォーマットでブロックチェーンにデータに書き込むことができる。さらに、スマート・コントラクト・コードは、ブロックチェーンに記憶された値を読み出し、アプリケーション演算においてそれらを使用することができる。スマート・コントラクト・コードは、種々の論理演算の出力をブロックチェーンに書き込むことができる。このコードを使用して、仮想機械または他の計算プラットホーム内に一時的データ構造を生成することができる。ブロックチェーンに書き込まれたデータは、パブリック・データとすることができ、もしくは暗号化してプライベート・データとして維持することができ、またはその両方とすることができる。スマート・コントラクトによって使用/生成されたこの一時的データは、供給された実行環境によってメモリ内に保持され、次いでブロックチェーンに必要なデータが識別された後に消去される。
【0029】
チェーンコードは、追加の機能とともに、スマート・コントラクトのコード解釈を含んでいてもよい。本明細書に記載されているとおり、チェーンコードは、計算ネットワーク上にデプロイされたプログラム・コードであってもよく、これは、コンセンサス・プロセス中に実行され、同時にチェーン・バリデータ(chain validator)によって有効性が検証される。チェーンコードはハッシュを受信し、以前に記憶された特徴抽出機能(feature extractor)の使用によって生成されたデータ・テンプレートに関連したハッシュを、ブロックチェーンから取り出す。ハッシュ識別子のハッシュと記憶された識別子テンプレート・データから生成されたハッシュとが一致した場合、チェーンコードは、リクエストされたサービスに許可鍵を送信する。チェーンコードは、暗号の詳細に関連したデータをブロックチェーンに書き込むことができる。
図2Aでは、例示的なアクションが、「リリースを更新しスマート・コントラクトを取得すること(Update Release and Acquire Smart Contract)」または「トランザクションをコミットすること(Commit Transactions)」でありうる。1つの機能は、ノード204~210のうちの1つまたは複数のノードに提供されることがある、「有効性検証のためにトランザクションを提出すること(Submit Transactions for Validation)」、または「リクエスト側エンティティにアクセスを提供すること(Provide Access To Requesting Entity)」でありうる。
【0030】
図2Bは、例示的な実施形態による、ブロックチェーンのノード間のトランザクション・フロー250の一例を示す。
図2Bを参照すると、トランザクション・フローは、アプリケーション・クライアント・ノード260によってエンドーサ・ピア・ノード281に送信されたトランザクション・プロポーザル291を含むことができる。エンドーサピア281は、クライアント署名を検証し、チェーンコード機能を実行してトランザクションを開始することができる。出力は、チェーンコード結果、チェーンコードにおいて読み出されたキー/バリューのバージョンのセット(読出しセット)、およびチェーンコードに書き込まれたキー/バリューのセット(書込みセット)を含むことができる。承認された場合、プロポーザル応答292が、エンドースメント署名とともにクライアント260に送信される。クライアント260は、このエンドースメントをトランザクション・ペイロード293に組み入れ、これを順序付けサービス・ノード284にブロードキャストする。次いで、順序付けサービス・ノード284が、順序付けされたトランザクションを、ブロックとして、チャネル上の全てのピア281~283に送達する。ブロックチェーンへのコミットの前に、それぞれのピア281~283は、トランザクションの有効性を検証することができる。例えば、これらのピアは、指定されたピアの正しい割当てがその結果に署名し、トランザクション・ペイロード293に対する署名を認証したことを保証するために、エンドースメントポリシー(policy)をチェックすることができる。
【0031】
図2Bを再び参照すると、クライアント・ノード260は、リクエストを構築し、エンドーサであるピア・ノード281に送信することによって、トランザクション291を開始する。クライアント260は、NODE、JAVA(登録商標)、PYTHONなどのサポートされたソフトウェア開発キット(SDK)を活用するアプリケーションを含むことができ、これは、使用可能なAPIを利用してトランザクション・プロポーザルを生成する。このプロポーザルは、データを読み出し、もしくは台帳に書き込み(すなわち、アセットのための新たなキーバリュー対を書き込み)、またはその両方を実行することができるように、チェーンコード機能を呼び出すリクエストである。SDKは、トランザクション・プロポーザルを、適正に設計されたフォーマット(例えばリモート・プロシージャ・コール(RPC)上のプロトコル・バッファ)にパッケージ化し、クライアントの暗号証明書をとって、トランザクション・プロポーザルに対する固有の署名を生成するためのシム(shim)の役割をすることができる。
【0032】
これに応答して、エンドーサ・ピア・ノード281は、(a)トランザクション・プロポーザルが適切に形成されていること、(b)そのトランザクションが、過去に既に提出されていないこと(リプレイ・アタック保護)、(c)署名が有効であること、および(d)提出者(この例ではクライアント260)が提案された動作をそのチャネル上で実行することが適正に許可されていることを検証することができる。エンドーサ・ピア・ノード281は、トランザクション・プロポーザル入力を、呼び出されたチェーンコード機能への引数としてとることができる。次いで、応答値、読出しセットおよび書込みセットを含むトランザクション結果を生み出すために、チェーンコードが、現在の状態データベースに対して実行される。しかしながら、この時点では台帳への更新は実行されない。292で、これらのバリューのセットが、エンドーサ・ピア・ノード281の署名とともに、プロポーザル応答292として、アプリケーションが消費するペイロードを解析するクライアント260のSDKに返される。
【0033】
これに応答して、クライアント260のアプリケーションは、エンドーサピア署名を検査/検証し、プロポーザル応答を比較して、プロポーザル応答が同じかどうかを判定する。チェーンコードが台帳に照会するだけだった場合、アプリケーションは、照会応答を検査し、通常は、トランザクションを順序付けノード・サービス284に提出しないであろう。クライアント・アプリケーションが、台帳を更新するために順序付けノード・サービス284にトランザクションを提出することを意図している場合、アプリケーションは、提出前に、指定されたエンドースメントポリシーが満足されるかどうか(すなわち、トランザクションのために必要な全てのピア・ノードがトランザクションにエンドースしたかどうか)を判定する。ここで、クライアントは、トランザクションに対する複数の当事者のうちの1当事者だけを含むことができる。この場合、それぞれのクライアントは、それ自体のエンドーサノードを有することができ、それぞれのエンドーサノードがトランザクションにエンドースする必要がある。このアーキテクチャは、応答を検査しないことをアプリケーションが選択した場合、または、他の形で、エンドースされていないトランザクションを転送する場合であっても、エンドースメントポリシーが依然としてピアによって執行され、コミット有効性検証(commit validation)段階において支持されるようなアーキテクチャである。
【0034】
検査に成功した後、クライアント260は、ステップ293で、トランザクションにエンドースメントを組み入れ、トランザクション・メッセージ内のトランザクション・プロポーザルおよび応答を順序付けノード284にブロードキャストする。トランザクションは、読出し/書込みセット、エンドーサピア署名およびチャネルIDを含むことができる。順序付けノード284は、その動作を実行するのに、トランザクションの内容全体を検査する必要はなく、その代わりに、順序付けノード284は、ネットワーク内の全てのチャネルから単純に受信し、チャネルによってそれらのトランザクションを経時的に順序付け、チャネルごとにトランザクションのブロックを生成することができる。
【0035】
トランザクションのブロックは、順序付けノード284からチャネル上の全てのピア・ノード281~283に送達される。エンドースメントポリシーが満足されることを保証し、かつ、トランザクション実行によって読出しセットが生成されて以降、台帳状態に対する読出しセット変数の変更がなかったことを保証するために、ブロック内のトランザクション294の有効性が検証される。ブロック内のトランザクションには有効または無効のタグが付けられる。さらに、ステップ295で、それぞれのピア・ノード281~283は、ブロックをチャネルのチェーンに追加し、有効なトランザクションごとに、書込みセットが現在の状態データベースにコミットされる。トランザクション(呼出し)がチェーンに変更不可能に追加されたことをクライアント・アプリケーションに知らせるため、および、トランザクションが有効と検証されたのかまたは無効と検証されたのかを知らせるために、イベントが発せられる。
【0036】
図3は、分散型、非集中型のピア・ツー・ピア・アーキテクチャを特徴とする許可型ブロックチェーン・ネットワーク300、ならびにユーザの役割および許可を管理する認証局318の一例を示す。この例では、ブロックチェーン・ユーザ302が、許可型ブロックチェーン・ネットワーク310にトランザクションを提出することができる。この例では、トランザクションが、デプロイ、呼出しまたは照会であることができ、SDKを利用するクライアント側アプリケーションを通して、またはREST APIを通して直接に、またはその他の手法によって、トランザクションを発行することができる。信頼できるビジネス・ネットワークは、監査者(例えば米国株式市場における証券取引委員会)などの規制者(regulator)システム314へのアクセスを提供することができる。一方で、ノードのブロックチェーン・ネットワーク運営者システム308は、規制者システム314を「監査者」としての登録し、ブロックチェーン・ユーザ302を「クライアント」として登録するなど、メンバーの許可を管理する。監査者を、台帳を照会することだけに限定することができ、一方で、クライアントには、あるタイプのチェーンコードをデプロイし、呼び出し、あるタイプのチェーンコードに照会する許可を与えることができる。
【0037】
ブロックチェーン開発者システム316は、チェーンコードおよびクライアント側アプリケーションを書く。ブロックチェーン開発者システム316は、RESTインタフェースを通して、ネットワークにチェーンコードを直接にデプロイすることができる。従来のデータ源330からの証明書をチェーンコードに含めるため、開発者システム316は、アウトオブバンド接続を使用してデータにアクセスすることができる。この例では、ブロックチェーン・ユーザ302が、ピア・ノード312を通してネットワークに接続する。トランザクションを続行する前に、ピア・ノード312は、ユーザ登録およびトランザクション証明書を認証局318から取り出す。いくつかのケースでは、許可型ブロックチェーン・ネットワーク310上で取引を行うために、ブロックチェーン・ユーザがこれらのディジタル証明書を所有していなければならない。一方で、チェーンコードを駆動しようとしているユーザは、従来のデータ源330に基づいてそれらの証明書を検証するよう求められることがある。ユーザの許可を確認するために、チェーンコードは、従来の処理プラットホーム320を通して、このデータへのアウトオブバンド接続を使用することができる。
【0038】
ブロックチェーンは、チェーン内の直前のブロックへの暗号リンク、例えば暗号ハッシュを介して、その変更不可能性を獲得する。暗号ハッシュを生成するために必要な作業量は、異なるブロックチェーン・システムの動作原理によって異なりうる。異なる方法は、プルーフオブワーク、プルーフオブステート(proof-of-state)またはコンセンサス・フレームワークを含む。いずれにせよ、チェーン内の次のブロックの暗号ハッシュを生成するためには計算労力(コンピュータ・サイクルおよび電力)が必要である。
【0039】
現在のブロックの必要な暗号ハッシュを生成するプロセスは、ブロックの「解を発見する」プロセスであると考えられる。ブロックチェーン・システムの完全性は、解の発見が、その実施は複雑だが、検証は比較的に簡単であることを要求する。ブロックチェーン・システムは、処理ノード、例えば採掘ノード、順序付けノードなどを使用して、ブロックを処理または「クランチ(crunch)」し、それによって暗号ハッシュを生成する。ブロックの解の発見にはかなりの計算リソースおよびエネルギーがかかり、したがって、処理ノードは、これを行うための動機を有していなければならない。暗号通貨ネットワークでは、ノードがブロックの解を発見したときに、そのノードに、新たな暗号通貨が報酬として発行される。したがって、そのノードは、その労力に対して支払いを受ける。いくつかのトランザクション・ブロックチェーン・システムでは、それぞれのトランザクションが、トランザクション当事者のうちの1人または複数のトランザクション当事者によりそのトランザクションを含むブロックの解を発見したノードに支払われる、関連した報酬を有することがある。したがって、この場合も、解を発見したノードは、プルーフオブワークの実施に対して支払いを受ける。しかしながら、暗号分散型台帳としてのブロックチェーン・システムのこの利益は、ブロックの解を発見するのに必要な計算リソースに投入するための動機をノードに与えるためには、支払い以外の動機が必要となることがあることを意味する。
【0040】
ブロックの解の発見はランダム・プロセスである。ブロックの解がいつ発見されるのか、またはどのノードがブロックの解を発見するのかは正確には分からない。しかしながら、ある数の処理ノード、ある量の計算パワーおよびある暗号ハッシュ難度が与えられた場合には、ブロックの解を発見するのにかかる平均時間が、不正確とはいえ予想可能になる。全てのブロック解が「ティック(時を刻む音)」とみなされる場合には、ブロックチェーン・システムを確率的タイマーとみなすことができる。
図1に示されているように、時間ベースのプロセスを実行するために確率的タイマー入力が必要な2次ネットワークにブロックチェーン・システムを結合することができる。より一般的には、ブロックチェーン・ティックをエントロピー源とみなすことができ、エントロピー源を必要としているシステムへの入力として、ブロックチェーン・ティックを使用することができる。
【0041】
図1のシステム100は、
図4に示されたプロセス・フロー400に従って動作することができる。一般的な状態において、ブロックチェーン・ネットワーク110は、2次ネットワーク130の処理132と並列に動作していると仮定することができる。ステップ401で、ピア・ノードのうちの1つまたは複数のピア・ノードが、ブロックチェーン・ネットワーク110の現在ブロックの解を、ブロックチェーン・ネットワークの要件に従って発見することを試みる。解が発見されたとして現在のブロックの結果が示されると(402)、ブロックチェーン・ネットワーク110から2次トランザクション・ネットワーク130に信号が提供される(ステップ403)。この信号は、検証のために解発見ノードがそのブロック解をリリースしたときに送信されることがあり、または、残りのノードがそのブロック解を検証し、そのブロックがブロックチェーンに組み込まれた後に送信されることもある。プロセス132は、プロセス132内のアクションをトリガするこの信号を受信する(ステップ404)。
【0042】
ブロックチェーン・ネットワークに計算リソースを提供するように、すなわちブロックチェーン・ネットワークの解発見ノードとして行動するように、2次ネットワークの処理132の参加者に促しまたは求めることができる。種々の実施形態において、ブロックチェーンのブロックの解の発見は、2次ネットワーク130の処理132内においてプロセス132の他の参加者を越える優位性を参加者に与えることができる。例えば、プロセス132のタイミングを知っていることが、参加者にとって一時的に有利であることがある。
【0043】
一実施形態では、ブロックチェーン・ネットワークのピア・ノードへの中央通信(central communications)を提供する順序付けノードが、トランザクション・ネットワーク130に信号を提供することも担うことができる。
【0044】
特定の一実施形態では、トランザクション・ネットワーク130を、電子証券取引所、両替所などの取引所とすることができる。取引所内で動作する時間ベースのプロセスが、株式、通貨などの取引(trade)の清算であることがある。従来のディジタル金融市場(株式取引所、両替所)は、大量の資産流動性を提供し、このことは一般に望ましい。しかしながら、ミリ秒の定量的取引機能およびハイパワーの計算が与えられた場合、市場に物理的に近いことおよび生身の計算能力(raw computing power)は、あるプレーヤーに、価格を操る際の不公平な優位性を与える。優位性は、人々をブザービートすること(beating people to the buzzer)、第三者が注文を出すよりも速く注文を実行および取り消すこと、および注文を阻止することを含みうる。これによって、市場が不安定性になり、株および通貨の価格が、それらの価格が表す基礎となる商品およびサービスよりもはるかに急速に変化することが起こりうる。さらに、交差交換裁定取引(cross-exchange arbitrage)の利益を最大にするために取引所コンピュータに対してコンピュータを配置するのに理想的な地理的位置の数は有限である。信号の飛行時間を最小化するために、中央取引所サーバに物理的にできるだけ近い位置に自身のコンピュータを置くことは、エンティティにとってしばしば割に合う。新規参入者は、このような自身の手段を容易に「買う」ことはできず、このことは創造的破壊を制限し、これが公開市場における成長をひどく限定する。
【0045】
ブロックチェーン・ネットワークを使用して取引所ネットワークに確率的タイミング信号を提供すると、時計時刻(clock time)ではなくブロックチェーン解ティックに基づいてトランザクションを確定することができる。1つのティックは、一組のトランザクション/入札をロックし、それらのトランザクション/入札が実行される。例えばブロック解の難度を調整することによって、クロック・ティックが、時計時刻と類似したものになるのに十分な頻度で生成されるように、かつ、しかしながら現在の取引所アーキテクチャのようには情報飛行時間の格差を生み出さないように、ブロックチェーン・ネットワークを構成することができる。
【0046】
図5Aには、ブロックチェーン・ネットワーク510と協働する取引所ネットワーク530を含むシステム500の例示的な実施形態が示されている。ブロックチェーン510は、複数の処理ノード512を含む計算リソース511の分散型プールを含むことができる。プール511は、通常クライアント・ノード516によって生成されるトランザクション515をブロックチェーン520の新たなブロック524に処理する。新たなブロックBlock_n+1 524を生成することは、プールが最後のブロックBlock_n 522の「解を発見する」必要があり、それには通常、ターゲット値よりも小さいBlock_nヘッダの暗号ハッシュが必要である。この方法は、ブロックチェーンの単なる1つの方法であり、当業者には解の他の要件が明白であろう。一般的に、多くのブロックチェーン・ネットワークでは、ブロックの解を発見するこのプロセスが計算集約的であり、すなわち、このプロセスは、動作時間枠内で暗号ハッシュを生成するためにかなりの計算能力およびエネルギーを必要とする。
【0047】
取引所ネットワーク530は、データストアまたは取引所台帳536内に取引所レコードを維持する1つまたは複数の取引所サーバ534を含むことができる。取引所内の参加者542は、取引を生成し、それらの取引544を、取引所ネットワークを通して取引所サーバに電子的に提出する。取引は、株、オプション、先物、通貨または任意の商品などの売買を含むことがある。取引所サーバは、取引544を受け入れ、取引所の規則およびポリシーに従って取引所台帳536を更新する。取引所ネットワーク530は、従来の電子取引所アーキテクチャ上に実装されたものであってもよく、または取引所ネットワーク530自体がブロックチェーン・ネットワークであってもよい。取引所内の参加者は、1もしく複数の直接のクライアント、1もしく複数のブローカ、1つもしく複数の高頻度取引プラットホームまたは1つもしく複数の裁定取引プラットホーム、あるいはこれらの組合せを含みうる。参加者542のうちの1人または複数の参加者が自動取引プラットホームであってもよい。
【0048】
それぞれの参加者542は、取引所に取引を電子的に提出するのに必要な最小限の計算パワーを有するであろう。自動取引プラットホームなど参加者542のうちの1人または複数の参加者は、取引所に物理的に近い位置に位置し、ケーブルによって取引所サーバに接続されていることがあり、一方、他の参加者は、取引所から離れた位置に位置し、インターネットなどのワイド・エリア・ネットワークを介して取引所に接続していることがある。取引所サーバ534は、それによって取引を取引所に提出することおよびそれによって取引所データ、台帳状態などに関する照会を提出することができるインタフェースもしくはAPIまたはその両方を提供することができる。
【0049】
クライアント・ノード516によって生成されるトランザクション515は、ブロックチェーンのための任意のトランザクションであることができること、および、ブロックチェーン方法は、全てのデータ方式に対する分散型台帳としての使用に関して急速に成長していることに留意すべきである。種々の実施形態において、ブロックチェーン・ネットワーク510のトランザクションは、独立していてもよく、取引所530のトランザクションとは全く無関係であってもよい。代替実施形態では、トランザクション515が、取引所ネットワーク530と関係していてもよく、したがって、ブロックチェーン・ネットワーク510上に取引所ネットワーク530を実施することができ、暗号分散型台帳として台帳536を実施することができる。
【0050】
種々の実施形態において、ブロックチェーン・ネットワークの処理ノード512のうちの1つまたは複数の処理ノードは、例えば取引所サーバ534に取引を提出することによって、取引所ネットワークに参加することができる。同様に、参加者542のうちの1人または複数の参加者は、ブロックチェーン・ネットワーク510の処理プール511に加わることができ、ブロックチェーンのブロックの解を発見することを試みることができる。
図5Aは、取引所530の参加者でもあり、処理プール511のメンバーでもある例示的なノード550を示す。そのため、ノード550は、解を発見する対象であるブロック552を受信し、ブロック解554を提供する。同時に、ノード550は、取引所サーバ534に取引556を送信することができる。システム500内にはノード550が複数、存在することができる。さらに、取引所ネットワークが、ブロックチェーンの解の発見に参加するようノードに動機付けし、もしくは参加の条件としてブロックチェーンの解の発見に参加することをノードに要求してもよく、またはそうしなくてもよい。取引所オペレーションおよびチェーンコードが、一致するハードウェア、支援システムまたはネットワーク上にある必要はない。
【0051】
時計時刻に基づいて動作する従来の取引所とは違い、取引所サーバ534は、ブロックチェーン・ネットワーク510からタイミング信号528を受信するように構成されており、これらのタイミング信号は、取引が清算されるとき、台帳更新が実行されるときなどを決定するために使用される。このタイミング信号または「ティック」は、ブロック解が生成されたことに応答して生成される。例えばハッシュの難度を設定することによって、ブロック解が、タイミング信号として使用するのに十分な頻度で、しかしながら、トランザクションがいつ閉まるのかを買い手および売り手が正確には知らず、したがってシステムを悪意をもって操作することができない十分なランダムさで生成されるように、ブロックチェーン・ネットワークを構成することができる。「ティック」の頻度は、適切な平均「ティック」値が得られるように、取引所の支配機構が設定することができる。この頻度は、必要に応じて、ミリ秒から数分、数時間の範囲にわたりうる。したがって、ブロック解「ティック」から誘導された確率的タイマーに基づいて取引所を動作させることは、取引所サーバ534までの信号距離が短いことにより1人または複数の参加者542が得ることができる優位性を低減させまたは排除する。
【0052】
逆に、ブロックの解を発見することは、参加者に一時的な優位性を与えることができる。これは、この参加者だけが次の解ティックがいつ発せられるのかを知っており、この参加者は、潜在的に、解を記帳し、現在の全ての取引をロックする前に、取引所内で1つまたは複数の追加の入札または撤退をすることができるためである。しかしながら、多数のエンティティが解を発見しようと働いているため、知っている解を保持し続けることは、取引所に対する物理的位置のようには長期にわたる利益を提供しない。別のエンティティがブロックの解を発見し、解を記帳した場合、最初のエンティティの優位性は失われるであろう。
【0053】
取引自体がブロックチェーンの部分である必要は必ずしもないため、取引所およびその参加者は、他の目的でブロックをクランチすることができ、したがってブロックチェーン・ネットワークのブロックのコストを外部化し、取引所を運営するコストを補助することができる。
【0054】
取引所内の全ての参加者がブロックをクランチする必要があるわけではなく、ブロックをクランチする全てのノードが取引所の参加者である必要もない。取引所自体がブロックチェーン・ネットワークである必要はない。
【0055】
図5Bは、取引所内で使用するプロセス・フロー5000を示す。このプロセスは、直前のブロックチェーン解がコンセンサス・アルゴリズムによって検証され、新たなブロックがリリースされたことによって始まる。ブロックチェーン・ネットワーク510は、解の探索を開始し(5001)、新たな注文および取引のために取引所530が開かれる(5002)。
【0056】
取引所内では、種々のエンティティが、注文の発出および取り消し、価格設定などを実行する(5004)が、それらの注文は確定または実行されることはなく、単にパブリック・レコードとして保持されるだけである。取引所の参加者であるエンティティは、現在出されている取引を強制的にロックするために、現在のブロックの解を発見することを試みる(5003)選択肢を有する。
【0057】
最終的に、1つの処理エンティティが現在のブロックの解を発見する。解を発見したエンティティは、取引所に参加しているエンティティであることもあり、またはそうでないこともある。このエンティティは、ブロックを直ちにリリースしてもよい。
【0058】
解を発見したエンティティが取引所の参加者である場合、このエンティティはブロックを保持することができ、ブロックをリリースする前に、注文に対して最後のわずかな瞬間の調整を実行することができる。解を発見したエンティティは、この時間枠内に第2のエンティティがブロックの解を発見し、解をリリースし、したがってその優位性を帳消しにする/限定する可能性があるというリスクを冒している。取引所自体(「利害関係のない当事者」)が、ブロックの解を発見することを試みている場合もある。
【0059】
解のリリース(5005)は、ブロックチェーン・ネットワーク内のそのブロックのコンセンサス段階を開始するタイミング信号である。この時点では、取引所ネットワーク内で取引はロックされ、処理されない(5006)。
【0060】
ブロックが有効でない場合5007、発信元エンティティにはペナルティが課せられる(5008)。これは、取引所からの一時的なまたは恒久的な取引禁止または他のペナルティの形態をとりうる。取引のロックは解除され(5010)、そのブロックの解の探索が続く(5003/5004)。
【0061】
ブロックが有効である場合には、注文が実行され、取引はロックされた価格で処理される(5012)。ブロックチェーン・ネットワーク609内で新たなブロックがリリースされ、次いでプロセスは始めに戻る(5001/5002)。
【0062】
複数の無効ブロックの場合には、現在のブロックを放棄し(toss)、新たなブロックをリリースすることができる。
【0063】
上記の方法は、有効なそれぞれのブロック解が、出された取引をロックおよび清算するよう取引所に伝えるティックを生み出すことを示している。他の実施形態では、追加のカウンタを利用して、ある複数のブロック解ごとに、例えば3ブロック解ごとに「ティック」が生じるようにすることができる。
【0064】
ブロックは、当面のトランザクションに関係していなくてもよく、単なる確率的計時源である。たとえ取引所エンティティがブロック・クランチングに関与していない場合でも、ブロックチェーン・ネットワークと取引所ネットワークとの結合は、確率的時間信号が取引所に提供されることを可能にし、信号時間の格差に起因して取引所の一部の参加者が経験する可能性がある格差を克服する。しかしながら、取引所参加者は、ブロックの解を発見し、したがって次の取引期間がいつ閉じるのかを知ることによって、一時的な優位性を獲得することができる。この一時的な優位性は、ブロックチェーン・ネットワークのためにブロックをクランチする動機を取引所参加者に提供する。
【0065】
取引所とブロックチェーンは別個のエンティティとして示されているが、種々の実施形態において、ブロックチェーンのブロックに組み込まれたトランザクションが、取引所に出された取引であることがある。したがって、システム500およびプロセス・フロー600を使用して、ブロックチェーン上に証券取引所を実施することができ、取引所ブロックチェーンを処理するコストは、部分的または一時的な取引優位性に対する見返りとして、参加者によって負担される。
【0066】
別の実施形態では、2次ネットワークがオークション(auction)を実現するものであってもよい。この実施形態では、ブロックチェーンが、オンライン・オークション・プロセスの確率的タイマーとして使用される。ブロックチェーンのブロックをクランチするよう2次ネットワークの参加者に動機付けするのではなしに、このシステムは、オークションに参加する条件として、ブロックを処理することを要求してもよい。例えば、オークションで入札を維持するために、ユーザは、計算サイクルを専らブロックの解の発見に充てなければならない。ブロック・コンセンサス段階の間、ユーザ・アクションがロックされてもよい。解を発見する対象であるブロックを単一のオークションだけに限定することができ(例えば、単一のユーザが、キューの速度を上げることにかなりの計算パワーを充当することを可能にする)、または、多数のオークションにわたってブロックを共用することができる(より確率的であり、個人によって調節することがより困難になる)。
【0067】
別の例では、この確率的ブロックチェーン・タイマーを、オークションのカウントダウン・タイマーとして使用することができる。
【0068】
別の実施形態では、2次ネットワークが「ペニー」オークションを実現するものであってもよい。この実施形態では、時計時刻ではなく、ワークファンクションブロックキューが、カウントダウンの役目を果たす。例えば、設定された数のブロック、例えば240個のブロックの間続くように、オークションを構成することができる。このことは、決定論的なカウントダウン・タイマーではなく確率論的なカウントダウン・タイマーを生み出し、同時に興奮を増大させ、一方で、入札プロセスの最後の瞬間の操作である「スナイピング(sniping)」の可能性を限定する。任意選択で、ブロック処理に貢献したユーザは、値を競り上げる能力、キューにブロックを追加する能力、または解の難度(例えば解ハッシュはXよりも小さいものとする)を調節してオークションの速度を調節する能力などのアクションを購入してもよい。
【0069】
公平性を調節するために、これらのアクションは、現在のブロックではなく次のブロック以降に限って適用するようにしてもよく、全てのユーザ・アクション/変更がパブリック・レコードに対して実行されるようにしてもよい。
【0070】
図6Aは、例示的な実施形態による、例示的な動作方法のうちの1つまたは複数の方法に従ってブロックチェーン上で種々の動作を実行するように構成された例示的な物理インフラストラクチャを示す。
図6Aを参照すると、例示的な構成600は、ブロックチェーン620とスマート・コントラクト640とを含む物理インフラストラクチャ610を含み、物理インフラストラクチャ610は、任意の例示的な実施形態に含まれる動作ステップ612のうちの任意の動作ステップを実行することができる。ステップ/動作612は、1つもしくは複数のフロー図もしくは論理図またはその両方に記載されまたは示されたステップのうちの1つまたは複数のステップを含むことができる。これらのステップは、コンピュータ・システム構成の物理インフラストラクチャ610上にある1つもしくは複数のスマート・コントラクト640またはブロックチェーン620あるいはその両方から書き込まれ、または読み出された、出力された情報または書き込まれた情報を表すことがある。データは、実行されたスマート・コントラクト640もしくはブロックチェーン620またはその両方から出力されうる。物理インフラストラクチャ610は、1つもしくは複数のコンピュータ、サーバ、プロセッサ、メモリもしくは無線通信デバイスまたはこれらの組合せを含むことがある。
【0071】
図6Bは、例示的な実施形態による、契約当事者間の例示的なスマート・コントラクト構成、およびブロックチェーン上でスマート・コントラクト条項を執行するように構成された仲介サーバを示す。
図6Bを参照すると、構成650は、通信セッション、アセット移転セッション、または、1つまたは複数のユーザ・デバイス652もしくは656またはその両方を明確に識別するスマート・コントラクト640によって駆動されるプロセスもしくは手順を表すことがある。スマート・コントラクト実行の実行、動作および結果は、サーバ654によって管理することができる。スマート・コントラクト640の内容は、スマート・コントラクト・トランザクションの当事者であるエンティティ652および656のうちの1つまたは複数のエンティティによるディジタル署名を要求することがある。スマート・コントラクト実行の結果は、ブロックチェーン・トランザクションとしてブロックチェーンに書き込むことができる。
【0072】
上記の実施形態は、ハードウェアとして、プロセッサによって実行されるコンピュータ・プログラムとして、ファームウェアとして、または上記の組合せとして実装することができる。コンピュータ・プログラムは、ストレージ媒体などのコンピュータ可読媒体上で具体化することができる。例えば、コンピュータ・プログラムは、ランダム・アクセス・メモリ(「RAM」)、フラッシュ・メモリ、リードオンリー・メモリ(「ROM」)、消去可能なプログラマブル・リードオンリー・メモリ(「EPROM」)、電気的に消去可能なプログラマブル・リードオンリー・メモリ(「EEPROM」)、レジスタ、ハード・ディスク、リムーバブル・ディスク、コンパクト・ディスク・リードオンリー・メモリ(「CD-ROM」)、または当技術分野で知られている他の形態のストレージ媒体に置くことができる。
【0073】
例示的なストレージ媒体は、プロセッサがストレージ媒体から情報を読み出し、ストレージ媒体に情報を書き込むことができるような形でプロセッサに結合されたものとすることができる。代替実施形態では、ストレージ媒体がプロセッサと一体であってもよい。プロセッサおよびストレージ媒体は、特定用途向け集積回路(「ASIC」)に存在してもよい。代替実施形態では、プロセッサおよびストレージ媒体が個別構成要素として存在してもよい。例えば、
図7は、例示的なコンピュータシステム・アーキテクチャ700を示し、コンピュータシステム・アーキテクチャ700は、上記の構成要素のうちの任意の構成要素などを表すものであってもよく、または上記の構成要素のうちの任意の構成要素などに統合されていてもよい。
【0074】
図7が、本明細書に記載された出願の実施形態の使用または機能の範囲に関する限定を示唆することは意図されていない。それにも関わらず、計算ノード700は、実装されること、もしくは上に記載された任意の機能を実行すること、またはその両方を実行することができる。
【0075】
計算ノード700にはコンピュータ・システム/サーバ702が存在し、コンピュータ・システム/サーバ702は、他の多数の汎用または専用計算システム環境または構成ともに動作可能である。コンピュータ・システム/サーバ702とともに使用するのに適していることがある、よく知られた計算システム、環境もしくは構成またはこれらの組合せの例は、限定はされないが、パーソナル・コンピュータ・システム、サーバ・コンピュータ・システム、シン・クライアント、シック・クライアント、ハンドヘルドまたはラップトップ・デバイス、マルチプロセッサ・システム、マイクロプロセッサ・ベースのシステム、セット・トップ・ボックス、プログラム可能なコンシューマ電子機器、ネットワークPC、ミニコンピュータ・システム、メインフレーム・コンピュータ・システム、および上記のいずれかのシステムまたはデバイスなどを含む分散型クラウド・コンピューティング環境などを含む。
【0076】
コンピュータ・システム/サーバ702は、コンピュータ・システムによって実行されているプログラム・モジュールなどのコンピュータ・システム実行可能命令の一般的な文脈で説明されることがある。一般に、プログラム・モジュールは、特定のタスクを実行する、または特定の抽象データ型を実装した、ルーチン、プログラム、オブジェクト、コンポーネント、ロジック、データ構造などを含むことができる。コンピュータ・システム/サーバ702は、通信ネットワークを介してリンクされた遠隔処理デバイスによってタスクが実行される分散型クラウド・コンピューティング環境で使用することができる。分散型クラウド・コンピューティング環境では、ローカル・コンピュータ・システム・ストレージ媒体と遠隔コンピュータ・システム・ストレージ媒体の両方にプログラム・モジュールを置くことができる。このストレージ媒体にはメモリ・ストレージ・デバイスが含まれる。
【0077】
図7に示されているとおり、クラウド・コンピューティング・ノード700のコンピュータ・システム/サーバ702は、汎用計算デバイスの形態で示されている。コンピュータ・システム/サーバ702の構成要素は、限定はされないが、1つまたは複数のプロセッサまたは処理ユニット704、システム・メモリ706およびバスを含むことができ、バスは、システム・メモリ706を含む種々のシステム構成要素をプロセッサ704に結合する。
【0078】
バスは、メモリ・バスまたはメモリ・コントローラ、周辺バス、加速グラフィクス・ポート、およびプロセッサ・バスまたはローカル・バスを含む、種々のバス・アーキテクチャを使用したいくつかのタイプのバス構造体のうちの1つまたは複数の任意のバス構造体を表す。例として、限定はされないが、このようなアーキテクチャは、インダストリ・スタンダード・アーキテクチャ(ISA)バス、マイクロ・チャネル・アーキテクチャ(MCA)バス、エンハンストISA(EISA)バス、ビデオ・エレクトロニクス・スタンダーズ・アソシエーション(VESA)ローカル・バス、およびペリフェラル・コンポーネント・インターコネクツ(PCI)バスを含む。
【0079】
コンピュータ・システム/サーバ702は通常、種々のコンピュータ・システム可読媒体を含む。このような媒体は、コンピュータ・システム/サーバ702がアクセス可能な使用可能な任意の媒体とすることができ、揮発性媒体と不揮発性媒体の両方、取外し可能媒体と非取外し可能媒体の両方を含む。一実施形態では、システム・メモリ706が、他の図のフロー図を実施する。システム・メモリ706は、ランダム・アクセス・メモリ(RAM)710もしくはキャッシュ・メモリ712またはその両方など、揮発性メモリの形態のコンピュータ・システム可読媒体を含むことができる。コンピュータ・システム/サーバ702はさらに、他の取外し可能/非取外し可能な揮発性/不揮発性のコンピュータ・システム・ストレージ媒体を含むことができる。単なる例として、ストレージ・システム714は、非取外し可能な不揮発性の磁気媒体(図示せず。通常は「ハード・ドライブ」と呼ばれる)からの読取り用および非取外し可能な不揮発性の磁気媒体への書込み用に提供することができる。図示されてはいないが、取外し可能な不揮発性磁気ディスク(例えば「フロッピー(登録商標)・ディスク」)からの読取り用および取外し可能な不揮発性磁気ディスクへの書込み用の磁気ディスク・ドライブ、ならびにCD-ROM、DVD-ROMまたは他の光学式媒体などの取外し可能な不揮発性光ディスクからの読取り用および取外し可能な不揮発性光ディスクへの書込み用の光ディスク・ドライブを提供することもできる。そのような場合には、それぞれを、1つまたは複数のデータ媒体インタフェースによってバスに接続することができる。後にさらに示し、説明するが、メモリ706は、本出願の種々の実施形態の機能を実行するように構成された一組の(例えば少なくとも1つの)プログラム・モジュールを有する少なくとも1つのプログラム製品を含むことができる。
【0080】
一組の(少なくとも1つの)プログラム・モジュール718、例えば、限定はされないが、オペレーティング・システム、1つまたは複数のアプリケーション・プログラム、他のプログラム・モジュールおよびプログラム・データなどを有するプログラム/ユーティリティ716を、メモリ706に記憶することができる。このオペレーティング・システム、1つまたは複数のアプリケーション・プログラム、他のプログラム・モジュールおよびプログラム・データまたはこれらのある組合せはそれぞれ、ネットワーキング環境の実施態様を含むことができる。プログラム・モジュール718は一般に、本明細書に記載された本出願の種々の実施形態の機能もしくは方法またはその両方を実行する。
【0081】
当業者には理解されるであろうが、本出願の諸態様は、システム、方法またはコンピュータ・プログラム製品として具体化することができる。したがって、本出願の諸態様は、全体がハードウェアの実施形態、(ファームウェア、常駐ソフトウェア、マイクロコードなどを含む)全体がソフトウェアの実施形態、またはソフトウェア態様とハードウェア態様とを組み合わせた実施形態の形態をとることができ、本明細書では、これらの全ての実施形態を、一般的に、「回路」、「モジュール」または「システム」と呼ぶことがある。さらに、本出願の諸態様は、コンピュータ可読プログラム・コードがその上に具体化された1つまたは複数のコンピュータ可読媒体の中に具体化されたコンピュータ・プログラム製品の形態をとることができる。
【0082】
コンピュータ・システム/サーバ702はさらに、キーボード、ポインティング・デバイス、ディスプレイ722など;ユーザがコンピュータ・システム/サーバ702と対話することを可能にする1つもしくは複数のデバイス;またはコンピュータ・システム/サーバ702が1つもしくは複数の他の計算デバイスと通信することを可能にする任意のデバイス(例えばネットワーク・カード、モデムなど)、あるいはこれらの組合せなどの、1つまたは複数の外部デバイス720と通信することができる。そのような通信は、I/Oインタフェース724を介して実行することができる。さらに、コンピュータ・システム/サーバ702は、ネットワーク・アダプタ726を介して、ローカル・エリア・ネットワーク(LAN)、一般的なワイド・エリア・ネットワーク(WAN)もしくは公衆ネットワーク(例えばインターネット)などの1つまたは複数のネットワークと通信することができる。図示されているように、ネットワーク・アダプタ726は、バスによってコンピュータ・システム/サーバ702の残りの構成要素と通信する。示されてはいないが、他のハードウェア構成要素もしくはソフトウェア構成要素またはその両方を、コンピュータ・システム/サーバ702とともに使用することができることを理解すべきである。このような構成要素の例は、限定はされないが、マイクロコード、デバイス・ドライバ、冗長処理ユニット、外部ディスク・ドライブ・アレイ、RAIDシステム、テープ・ドライブ、データ・アーカイブ・ストレージ・システムなどを含む。
【0083】
システム、方法および非一過性コンピュータ可読媒体のうちの少なくとも1つの例示的な実施形態を添付図面に示し、上記の詳細な説明で説明したが、本出願は開示された実施形態だけに限定されず、本出願は、下記の特許請求の範囲によって説明および定義された多数の再配置、変更および置換を受け入れることできることが理解されよう。例えば、本明細書に記載されたモジュールもしくは構成要素のうちの1つもしくは複数のモジュールもしくは構成要素によって、または分散型アーキテクチャにおいて、種々の図のシステムの機能を実行することができ、種々の図のシステムの機能は、送信器、受信器またはこれらの両方の対を含むことができる。例えば、個々のモジュールによって実行される機能の全部または一部は、これらのモジュールのうちの1つまたは複数のモジュールによって実行されてもよい。さらに、本明細書に記載された機能は、種々の時点で、さまざまなイベントに関して、モジュールまたは構成要素の内部または外部で実行されてもよい。さらに、種々のモジュール間で送信される情報は、データ・ネットワーク、インターネット、音声ネットワーク、インターネット・プロトコル・ネットワーク、無線デバイス、有線デバイスもしくは複数のプロトコル、またはこれらの組合せのうちの少なくとも1つを介してモジュール間で送信することができる。さらに、これらのモジュールのうちの任意のモジュールによって送信または受信されるメッセージは、直接に送信もしくは受信されてもよく、または1つもしくは複数の他のモジュールを介して送信もしくは受信されてもよく、あるいはこの両方で送信もしくは受信されてもよい。
【0084】
「システム」は、パーソナル・コンピュータ、サーバ、コンソール、パーソナル・ディジタル・アシスタント(PDA)、携帯電話、タブレット計算デバイス、スマートフォン、もしくは適当な他の計算デバイス、またはデバイスの組合せとして具体化することができることを当業者は理解するであろう。「システム」によって実行されるものとして上記の機能を示していることが、いかなる形であれ本出願の範囲を限定することは意図されておらず、その意図は、多くの実施形態の一例を提供することである。実際、本明細書に開示された方法、システムおよび装置は、計算技術と整合した限局された形態および分散された形態で実施することができる。
【0085】
本明細書に記載された一部のシステム特徴は、その実施態様の独立性を特に強調するために、モジュールとして示されていることに留意すべきである。例えば、モジュールは、特注の超大規模集積化(VLSI)回路またはゲートアレイ、市販の半導体、例えば論理チップ、トランジスタまたは他の個別構成部品を含むハードウェア回路として実装することができる。モジュールは、フィールド・プログラマブル・ゲートアレイ、プログラマブル・アレイ・ロジック、プログラマブル・ロジック・デバイス、グラフィクス処理ユニットなどのプログラム可能なハードウェア・デバイスとして実装することもできる。
【0086】
モジュールは、少なくとも部分的に、種々のタイプのプロセッサによって実行されるソフトウェアとして実装することもできる。実行可能コードの識別されたユニットは、例えば、例えばオブジェクト、手順または関数として編成されていることがあるコンピュータ命令の1つまたは複数の物理または論理ブロックを含むことができる。それにもかかわらず、識別されたモジュールの複数の実行可能形態は、物理的に一緒に位置する必要はなく、異なる位置に記憶された異種の命令を含むことができ、それらの命令は、論理的に一緒に結合されたときに、そのモジュールを構成し、そのモジュールの明示された目的を達成する。さらに、モジュールは、コンピュータ可読媒体に記憶することができ、コンピュータ可読媒体は、例えば、ハード・ディスク・ドライブ、フラッシュ・デバイス、ランダム・アクセス・メモリ(RAM)、テープ、またはデータを記憶するために使用される他の同様の媒体であることができる。
【0087】
実際、実行可能コードのモジュールは、単一の命令または多くの命令であることができ、さらには、いくつかの異なるコード・セグメントにわたって、異なるプログラムの間で、いくつかのメモリ・デバイスを横切って分散させることができる。同様に、本明細書では、演算データが、モジュール内で識別され、示されていることがあり、演算データは、適当な任意の形態で具体化することができ、適当な任意のタイプのデータ構造内に編成することができる。演算データは、単一のデータ・セットとして収集することができ、または、異なるストレージ・デバイスを含む異なる位置に分散させることができ、少なくとも部分的に、システムまたはネットワーク上の単なる電子信号として存在することができる。
【0088】
本明細書の図に概括的に記載され示された本出願の構成要素は、広範囲にわたる異なる種々の構成で配置および設計することができることは容易に理解されよう。したがって、実施形態の詳細な説明が、特許請求の範囲に記載された本出願の範囲を限定することは意図されておらず、詳細な説明は、単に、本出願の選択された実施形態を示しているだけである。
【0089】
以上の内容は、異なる順序のステップを使用して、もしくは開示された構成とは異なる構成ハードウェア要素を使用して、またはこの両方を使用して実施することができることは、当業者には容易に理解されよう。したがって、これらの好ましい実施形態に基づいて本出願を説明したが、当業者には、ある種の変更、変形および代替構造が明白であろう。
【0090】
本出願の好ましい実施形態を説明したが、説明した実施形態は単に例示が目的であること、ならびに、本出願の範囲は、その等価物および変更物(例えばプロトコル、ハードウェア・デバイス、ソフトウェア・プラットホームなど)の完全な範囲が考慮されたときに、添付の特許請求の範囲のみによって定義されることを理解すべきである。