(57)【要約】  例えば、未使用トランザクション（ＵＴＸＯ）、ブロックチェーン及びコントラクトの決定性有限オートマトン（ＤＦＡ）実装、並びにこれらの中の状態の決定の文脈の中で、機械実行可能コントラクトの状態に関する情報を確立する、コンピュータにより実装されるシステム及び方法が詳述される。段階は、関心情報及び該情報を識別するコード又はタグを決定するステップと、該コード又はタグに関連付けられたメタデータを構成するステップと、これを前記情報に関連付けられるエージェントの公開鍵と結合するステップと、を含み得る。各スクリプトのscriptPubKey値は、外部データベースを構成する際に、より具体的には、関心情報にリンクされたscriptPubKey値からの鍵をマッピングする際に、使用するための鍵を提供するために使用されてよい。結合の他の半分を取得するために、デジタルウォレットを投入するために使用される、scriptPubKey値からのスクリプトハッシュアドレスの導出がある。検索及び照合アルゴリズムは、次に、ブロックチェーン上のスクリプトハッシュアドレスを照合することによりＵＴＸＯを見付けるために使用される。これらは、次に、前述のデータベースに、スクリプトハッシュアドレスに、したがって結合を完成させるための鍵に一致するＵＴＸＯを投入する。一致は、最も信頼できる方法で状態を示す。
2020516976.tif 000002
【特許請求の範囲】
【請求項１】
ブロックチェーン上で実施される機械実行可能コントラクトの状態を決定する方法であって、前記方法は、
（ａ）関心情報を決定し、該関心情報に関連する暗号鍵を生成するステップと、
（ｂ）前記暗号鍵に関連する検索語を構成するステップと、
（ｃ）前記検索語に一致する未使用アウトプット（ＵＴＸＯ）について前記ブロックチェーンを検索するステップと、
を含み、前記関心情報は、機械実行可能スマートコントラクトの状態であり、
前記方法は、
（ｄ）前記検索語に一致する前記未使用アウトプット（ＵＴＸＯ）から情報を抽出するステップと、
（ｅ）前記抽出した情報から前記機械実行可能スマートコントラクトの前記状態を決定するステップと、
を更に含む方法。
【請求項２】
前記機械実行可能スマートコントラクトは、決定性有限オートマトンを用いて実施され、前記機械実行可能スマートコントラクトの前記状態を決定する前記ステップは、前記決定性有限オートマトンの状態を決定するステップを含む、請求項１に記載の方法。
【請求項３】
前記暗号鍵は、前記関心情報に再生可能処理を適用することにより生成され、同じ再生可能処理が、検索されている前記ブロックチェーンの未使用アウトプット（ＵＴＸＯ）に含まれる前記情報を生成している、請求項１又は２に記載の方法。
【請求項４】
前記検索語は、前記暗号鍵から構成される、請求項１乃至３のいずれかに記載の方法。
【請求項５】
検索する前記ステップは、検索及び照合段階により提供され、前記検索語に一致する未使用アウトプット（ＵＴＸＯ）は、前記暗号鍵及び／又は前記関心情報とペアにされる、請求項１乃至４のいずれかに記載の方法。
【請求項６】
前記ペアにされることは、データベース内で提供される、請求項５に記載の方法。
【請求項７】
前記方法は、指定段階を含み、前記指定段階は、前記関心情報を選択し、コード又はタグ指定段階を含むステップを含む、請求項１乃至６のいずれかに記載の方法。
【請求項８】
前記方法は、メタデータ構成段階を含み、前記関心情報及び／又は前記コード又はタグは、メタデータに変換される、請求項１乃至７のいずれかに記載の方法。
【請求項９】
前記メタデータは、情報公開鍵に指定された公開鍵に組み込まれる、請求項８に記載の方法。
【請求項１０】
エージェント関連付け段階が設けられ、選択されたエージェントのうちの１つ以上又は全部は、指定されたエージェント公開鍵に公開鍵を提供する、請求項１乃至９のいずれかに記載の方法。
【請求項１１】
前記方法は、結合段階を設け、前記結合段階は、前記情報公開鍵を１つ以上のエージェント公開鍵と結合し、ロックスクリプトを生成する、請求項９に従属する請求項１０に記載の方法。
【請求項１２】
前記結合段階は、前記ロックスクリプトのハッシュを生成する、請求項１１に記載の方法。
【請求項１３】
前記方法は、ロックスクリプト又はロックスクリプトのハッシュから値を取得して、前記暗号鍵を提供する値取得段階を含む、請求項１乃至１２のいずれかに記載の方法。
【請求項１４】
前記方法は、データベース化段階を含み、前記データベース化段階は、関心情報を暗号鍵にマッピングするステップを含み、前記暗号鍵への情報のマッピングは、前記暗号鍵への結合のマッピングの半分を提供する、請求項１乃至１３のいずれかに記載の方法。
【請求項１５】
前記方法は、アドレス導出段階を含み、アドレスは、ロックスクリプトから又はロックスクリプトのハッシュから導出される、請求項１乃至１４のいずれかに記載の方法。
【請求項１６】
前記方法は検索及び照合段階を含み、前記検索及び照合段階は、前記ブロックチェーン内を、１つ以上のアドレスとの１つ以上の一致について探すステップを含み、前記検索及び照合段階は、前記検索で使用された前記１つ以上のアドレスに一致する、前記ブロックチェーン内のＵＴＸＯの詳細を取得する、請求項１乃至１５のいずれかに記載の方法。
【請求項１７】
検索及び照合段階、及び／又はデータベース化段階は、アドレスに一致するＵＴＸＯの取得した詳細を前記暗号鍵にマッピングし、前記マッピングは、前記暗号鍵に関連する前記結合の他の半分を提供する、請求項１乃至１６のいずれかに記載の方法。
【請求項１８】
システムであって、請求項１乃至１７のいずれかに記載の方法を実行するよう構成された、望ましくはコンピュータにより実装される、システム。
【請求項１９】
ブロックチェーンを介してＤＦＡを実施するよう構成される少なくとも１つの計算エージェントと、
ブロックチェーンプラットフォームと、
を更に含む請求項１８に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、概して、コンピュータにより実装されるシステム及び方法のようなシステムに関し、特に、状態に関する情報を確立するコンピュータにより実装されるシステム及び方法に関する。本発明は、特に、ブロックチェーンにおける使用、及びコントラクトの決定性有限オートマトン（ＤＦＡ）実装、並びにそれらの中での状態の決定に適する。
【背景技術】
【０００２】
本願明細書で、用語「ブロックチェーン」は、あらゆる形式の電子的な、コンピュータに基づく、分散台帳を含むよう使用される。これらは、限定ではないが、ブロックチェーン及びトランザクションチェーン技術、許可及び未許可台帳、共有台帳、及びそれらの変形を含む。最も広く知られているブロックチェーン技術の用途はビットコイン台帳であるが、他のブロックチェーンの実装が提案され開発されている。ビットコインは便宜上及び説明を目的として本願明細書において言及されるが、本発明はビットコインのブロックチェーンと共に使用することに限定されず、代替のブロックチェーンの実装及びプロトコルが本発明の範囲に含まれることに留意すべきである。
【０００３】
ブロックチェーンは、ブロックにより構成される、コンピュータに基づく非集中型の分散型システムとして実装される総意に基づく電子台帳である。また、ブロックはトランザクションにより構成される。各トランザクションは、ブロックチェーンシステム内で参加者間のデジタルアセットの制御の転送を符号化するデータ構造であり、少なくとも１つのインプット及び少なくとも１つのアウトプットを含む。各ブロックは前のブロックのハッシュを含み、ブロックは共にチェーンになって、その発端からブロックチェーンに書き込まれている全てのトランザクションの永久的な変更不可能なレコードを生成する。トランザクションは、そのインプット及びアウトプットに埋め込まれたスクリプトとして知られる小さなプログラムを含む。スクリプトは、トランザクションのアウトプットがどのように及び誰によりアクセス可能かを指定する。ビットコインプラットフォーム上で、これらのスクリプトは、スタックに基づくスクリプト言語を用いて記述される。
【０００４】
トランザクションがブロックチェーンに書き込まれるために、「検証され」なければならない。ネットワークノード（マイナー）は、各トランザクションが有効であることを保証するために作業を実行し、無効なトランザクションはネットワークから拒否される。ノードにインストールされたソフトウェアクライアントは、自身のロック及びアンロックスクリプトを実行することにより、この検証作業を未使用トランザクション（ＵＴＸＯ）に対して実行する。ロック及びアンロックスクリプトの実行が真と評価した場合、トランザクションは有効であり、トランザクションはブロックチェーンに書き込まれる。したがって、トランザクションがブロックチェーンに書き込まれるためには、トランザクションは、ｉ）トランザクションを受信した第１ノードにより検証され、トランザクションが検証された場合に、ノードは該トランザクションをネットワーク内の他のノードに中継し、ｉｉ）マイナーにより構築された新しいブロックに追加し、ｉｉｉ）マインされ、つまり過去のトランザクションの公開台帳に追加されなければならない。
【０００５】
ブロックチェーン技術は、暗号通貨実装の使用で最も広く知られているが、デジタル起業家が、新しいシステムを実装するために、ビットコインの基づく暗号通貨セキュリティシステム、及びブロックチェーンに格納可能なデータの両方の使用を探索し始めている。ブロックチェーンが、暗号通貨の領域に限定されない自動タスク及びプロセスのために使用できれば、非常に有利である。このようなソリューションは、それらの用途において一層多様でありながら、ブロックチェーンの利点（例えば、永久的、イベントの耐タンパレコード、分散プロセス、等）を利用できる。
【０００６】
現在の研究の一分野は、「スマートコントラクト（smart  contracts）」の実装のためのブロックチェーンの使用である。これらは、機械可読取引又は合意の条件の実行を自動化するために設計されたコンピュータプログラムである。自然言語で記述され得る従来の取引と異なり、スマートコントラクトは、結果を生成するためにインプットを処理できるルールを含み、該結果に依存して動作を実行させることのできる、機械実行可能プログラムである。
【０００７】
ブロックチェーンに関連する関心の他の分野は、ブロックチェーンを介する現実世界のエンティティの表現及び転送のための「トークン」（又は「カラードコイン」）の使用である。潜在的に機密な又は秘密のアイテムは、識別可能な意味又は値を有しないトークンにより表現できる。したがって、トークンは、現実世界のアイテムをブロックチェーンから参照できるようにする識別子として機能する。
【０００８】
ブロックチェーン技術に伴う１つの問題は、ブロックチェーン上で関心情報を発見可能であることである。多数の従来技術の文献は、ブロックチェーン上で関心情報を発見することに関する方法を開示している。このような従来の方法の例は以下に簡単に記載される。
【０００９】
Chris  Pacia他による、プレゼンテーション「OpenBazaar−Ratings,  reviews  and  reputation」は、ブロックチェーンに基づく評価システムを開示する。買いトランザクションが生じると、買い手と売り手の間で金銭が交換される。買い手は、他者に提供されるサービスのレビューを見えるように残すこともできる。ベンダＧＵＩＤ（Globally  Unique  Identifier）、連続する評価、及びコントラクトハッシュのようなデータは、OP_RETURNに追加される。スライドは、ベンダがタグ付けされたブロックチェーンのOP_RETURNアウトプットをクエリすることにより、ユーザにより残されたレビューを検索する機能を開示する。
【００１０】
ＵＳ２０１６２９２６７２は、ブロックチェーン記憶システムを利用する取引システムを開示する。取引システムが、ブロックチェーンシステムにクエリして、取引を実施する前に、取引パーティが取引されるべき株式を所有することをチェックすることが開示されている。これは、取引されるべき株式に対応する、トレーダにより所有される未使用トランザクションが存在するかどうかを決定することにより達成される。
【００１１】
ＵＳ２０１７００５８０４は、金融取引を行いたいと望む特定人物により所有されるアセットについてブロックチェーンが検索されるシステムを開示する。この検証は、ブロックチェーンにアクセスし、ソース参加者が、十分な量の対象アセットにリンクされている未使用アウトプットブロックチェーントランザクションに関連付けられていると決定することにより達成される。この処理は、ソース参加者に関連付けている複数の異なるブロックチェーントランザクションを合計して、ソース参加者により「所有されている」合計アセット量を決定することを含んでよい。
【発明の概要】
【００１２】
既存のシステム及び方法に伴う課題は、ブロックチェーン上で実施される機械実行可能コントラクトの状態のような特定種類の情報の抽出が、可能ではないこと、又は、少なくとも効率的方法で達成困難であることである。これは、例えば決定性有限オートマトン（deterministic  finite  automaton：ＤＦＡ）の使用を通じた機械実行可能コントラクトの実施を一層困難にする。
【００１３】
したがって、ブロックチェーンにブロードキャストされる情報が時間により変化する重大な変化にも拘わらず、情報の抽出を可能にするソリューションを提供することが望ましい。
【００１４】
このような改良されたソリューションが考案される。本発明は、添付の請求項及び／又は本発明の記述、及び／又は本願明細書に説明される特徴、オプション、及び可能性において、定められる。
【００１５】
第１の態様によると、本発明は、ブロックチェーンの未使用アウトプット（ＵＴＸＯ）に含まれる情報を検索する方法を提供する。当該方法は、
（ａ）関心情報を決定し、該関心情報に関連する鍵を取得するステップと、
（ｂ）前記鍵に関連する検索語を構成するステップと、
（ｃ）前記検索語に一致する未使用アウトプット（ＵＴＸＯ）について前記ブロックチェーンを検索するステップと、を含む。
【００１６】
前記方法は、機械実行可能スマートコントラクトの状態を検索する方法を提供し得る。前記方法は、ＤＦＡで実装された機械実行可能スマートコントラクトの状態を検索する方法を提供し得る。例えば、ブロックチェーン上で実施される機械実行可能コントラクトの状態を決定する方法が提供され得る。前記方法は、
（ａ）関心情報を決定し、該関心情報に関連する暗号鍵を生成するステップと、
（ｂ）前記暗号鍵に関連する検索語を構成するステップと、
（ｃ）前記検索語に一致する未使用アウトプット（ＵＴＸＯ）について前記ブロックチェーンを検索するステップと、を含み、
前記関心情報は、機械実行可能スマートコントラクトの状態であり、前記方法は、
（ｄ）前記検索語に一致する前記未使用アウトプット（ＵＴＸＯ）から情報を抽出するステップと、
（ｅ）前記抽出した情報から前記機械実行可能スマートコントラクトの前記状態を決定するステップと、を含み、
前記機械実行可能スマートコントラクトは、決定性有限オートマトンを用いて実装されてよく、前記機械実行可能スマートコントラクトの前記状態を決定する前記ステップは、前記決定性有限オートマトンの状態を決定するステップを含んでよい。
【００１７】
前記方法は、前記鍵が、１つ以上の段階を通じて前記関心情報を処理することにより取得されることを提供し得る。前記鍵を取得するための前記１つ以上の段階は、指定段階、メタデータ構成段階、エージェント関連付け段階、結合段階、値取得段階を含んでよい。前記鍵は、前記値取得段階からのアウトプットであってよい。
【００１８】
前記方法は、前記鍵が、前記関心情報に再生可能処理を適用することにより取得され、同じ再生可能処理が、検索されているブロックチェーンの未使用アウトプット（ＵＴＸＯ）に含まれる前記情報を生成している、ことを提供し得る。
【００１９】
前記方法は、前記検索語が前記鍵から、例えばアドレス導出段階を通じて構成されることを提供し得る。
【００２０】
前記方法は、検索する前記ステップが、検索及び照合段階により提供されることを提供し得る。
【００２１】
前記方法は、前記検索語に一致する未使用アウトプット（ＵＴＸＯ）が、前記鍵と及び／又は前記関心情報とペアにされることを提供し得る。ペアにすることは、データベース及び／又はデ―タベース段階の中で提供され得る。
【００２２】
前記方法は、指定段階、メタデータ構成段階、エージェント関連付け段階、結合段階、値取得段階、データベース化段階、及びアドレス導出段階、ウォレット形成段階、検索及び照合段階、のうちの１つ以上を含んでよい。
【００２３】
上記段階のうちの各々の可能性は、以下に詳述される。
【００２４】
本発明の第１の態様は、本願明細書の他の場所に記載される特徴、オプション、及び可能性のうちの任意のものを含んでよい。
【００２５】
第２の態様によると、本発明は、本発明の第１の態様の方法を実施するよう構成される、場合によっては本願明細書の他の場所に記載される機能、オプション、及び可能性のうちの任意のものを実行するよう構成されるシステムを含む、システム、望ましくはコンピュータにより実装されるシステム、を提供する。
【００２６】
前記システムは、
ブロックチェーンを介してＤＦＡを実施するよう構成される少なくとも１つの計算エージェントと、
ブロックチェーンプラットフォームと、を更に含んでよい。
【００２７】
本発明の第２の態様は、本願明細書の他の場所に記載される特徴、オプション、及び可能性のうちの任意のものを含んでよい。
【００２８】
したがって、本発明によると、以下の中から、オプション、可能性、及び特徴が提供され又は更に提供されてよい。
【００２９】
方法及び／又はシステムは、指定段階を含んでよい。指定段階は、関心情報を選択するステップを含み得る。指定段階は、識別子指定段階を含み又は該段階であってよい。前記指定段階は、コード又はタグ指定段階を含み又は該段階であってよい。
【００３０】
前記関心情報は、前記情報セットからの選択であってよい。前記関心情報は、状態、望ましくは決定性有限オートマトンの状態、最も望ましくは機械実行可能スマートコントラクトの状態であってよい。前記情報セットは、例えばＤＦＡの限られた可能な状態に限定されてよい。
【００３１】
前記関心情報はユーザにより選択されてよい。前記関心情報はＤＦＡにより選択されてよい。前記関心情報はネットワーク内の１つ以上のエージェントにより選択されてよい。
【００３２】
前記関心情報の１つ以上の識別子が決定されてよい。識別子はコードであってよい。識別子はタグであってよい。コードは、１つの状態のような、１つの関心情報のみを示してよい。タグは、１つの状態のような、１つの関心情報のみを示してよい。
【００３３】
方法及び／又はシステムは、メタデータ構成段階を含んでよい。前記関心情報は、より望ましくはコード又はタグは、したがって、メタデータに変換されてよい。前記関心情報、より望ましくは前記コード又はタグは、したがって、暗号ハッシュにより処理されてよい。理想的には、２回のこのような暗号ハッシュが直列に適用される。メタデータ、特にハッシュメタデータは、後にフォーマットされてよい。前記関心情報は、より望ましくは前記コード又はタグは、したがって、より望ましくはそのメタデータは、公開鍵に組み込まれてよい。公開鍵は、情報公開鍵を指定されてよい。
【００３４】
前記方法及び／又はシステムは、エージェント関連付け段階を含んでよい。前記エージェント関連付け段階は、１つ以上のエージェント、望ましくはＵＴＸＯ、例えば機械実行可能スマートコントラクトからのＵＴＸＯ、望ましくはＤＦＡにより実施されたものに関連付けられたエージェント、を実行するよう構成された１つ以上のエージェント選択したエージェントのうちの１つ以上又は全部は、公開鍵を提供してよい。１つ以上の公開鍵は、指定されたエージェント公開鍵であってよい。
【００３５】
方法及び／又はシステムは、結合段階、望ましくは公開鍵結合段階を提供してよい。結合段階は、情報公開鍵を１つ以上のエージェント公開鍵と結合してよい。前記結合段階は、Ｐ２ＳＨマルチシグネチャＲｅｄｅｅｍスクリプトのようなマルチシグネチャＲｅｄｅｅｍスクリプトを生成してよい。結合段階は、理想的には前記情報公開鍵及び前記１つ以上のエージェント公開鍵から、ロックスクリプトを提供してよい。前記結合段階は、前記ロックスクリプトのハッシュを生成してよい。前記ロックスクリプトの前記ハッシュは、scriptPubKeyを指定されてよい。
【００３６】
前記方法及び／又はシステムは、値を取得するための値取得段階を含んでよい。前記方法及び／又はシステムは、ロックスクリプト値のような値を取得するためのロックスクリプト値取得段階を含んでよい。前記方法及び／又はシステムは、例えばロックスクリプト値又はscriptpubKey値のような値を取得するためのscriptPubKey値取得段階を含んでよい。前記値取得段階は、ロックスクリプトの又はより望ましくは前記ロックスクリプトのハッシュ、及び更に望ましくはscriptPubKeyの値を取得してよい。
【００３７】
前記方法及び／又はシステムは、例えばデータベースの構成を提供するためのデータベース化段階を含んでよい。
【００３８】
前記データベースは前記ブロックチェーンの外部にあってよい。前記データベースは集中型であってよい。前記データベースは、例えばネットワーク内で、場合によっては分散型ハッシュテーブルのように、分散型であってよい。前記データベース化は、Ｐｙｔｈｏｎ辞書を用いて行われてよい。前記データベースは、望ましくは、分散型ネットワークのようなネットワーク内の各ノードにアクセス可能である。１つ以上又は全部のノードは、計算エージェントを設けられてよい。
【００３９】
前記データベース化段階は、関心情報を鍵にマッピングするステップを含んでよい。前記鍵は、前記ロックスクリプトの値、より望ましくはscriptPubKeyの値のような、前記値取得段階からの値であってよい。鍵は単一の値にリンクされてよい。鍵は単一のコード又はタグにリンクされてよい。鍵は単一の関心情報にリンクされてよい。情報を前記鍵にマッピングするステップは、結合の前記鍵へのマッピングの半分を提供してよい。前記結合のもう半分は、検索及び照合段階で、前記鍵にマッピングされてよい。前記データベース化段階及び／又はマッピングは、ハッシュテーブルとして実装されてよい。
【００４０】
前記方法及び／又はシステムは、スクリプトハッシュアドレス導出段階のような、アドレス導出段階を含んでよい。前記アドレスは、前記情報公開鍵及びエージェント公開鍵から、望ましくはロックスクリプトから、更に望ましくはロックスクリプトのハッシュから、及び理想的にはscriptPubKeyから、導出されてよい。アドレスは、Ｐ２ＳＨアドレスのようなスクリプトハッシュアドレスであってよい。
【００４１】
方法及び／又はシステムは、ウォレット形成段階を含んでよい。前記ウォレット形成段階は、スクリプトハッシュアドレスのような前記アドレスのうちの１つ以上又は全部を、ウォレットに、望ましくは前記ウォレット内のアカウント又はフォルダに、追加するステップを含んでよい。
【００４２】
前記方法及び／又はシステムは、検索及び照合段階を含んでよい。前記検索及び照合段階は、アルゴリズムにより実施されてよい。前記検索及び照合段階は、前記スクリプトハッシュアドレスのような前記アドレスとの１つ以上の一致について、前記ブロックチェーン内を探すステップを含んでよい。前記検索及び照合段階は、ウォレットから、理想的には前記ウォレット形成段階の前記ウォレットから、前記スクリプトハッシュアドレスのような前記アドレスを取得してよい。前記検索及び照合段階は、前記検索で使用される前記アドレスに一致する、前記ブロックチェーン内のＵＴＸＯの詳細を取得してよい。
【００４３】
前記方法及び／又はシステムは、場合によっては、前記検索及び照合段階内に及び／又は前記データベース化段階内に、アドレスに一致するＵＴＸＯの取得した詳細を鍵にマッピングするステップを含んでよい。前述のように、該マッピングの生じる鍵は、単一の値に、又は単一のコード又はタグに、又は単一の関心情報に、リンクされてよい。結果として、前記鍵への前記結合の網半分のマッピングが、検索及び照合段階で提供される。
【００４４】
一致が得られると、前記方法及び／又はシステムは、タグ又は状態のような、どの関心情報がＵＴＸＯ内に存在するかを明白に決定したものと考えられ得る。
【００４５】
前記方法及び／又はシステムは、同時に１つより多くの関心情報との一致を探してよい。
【００４６】
したがって、例えば、未使用トランザクション（ＵＴＸＯ）、ブロックチェーン及びコントラクトの決定性有限オートマトン（ＤＦＡ）実装、並びにこれらの中の状態の決定の文脈の中で、機械実行可能コントラクトの状態に関する情報を確立する、コンピュータにより実装されるシステム及び方法が詳述される。段階は、関心情報及び該情報を識別するコード又はタグを決定するステップと、該コード又はタグに関連付けられたメタデータを構成するステップと、これを前記情報に関連付けられるエージェントの公開鍵と結合するステップと、を含み得る。各スクリプトのscriptPubKey値は、外部データベースを構成する際に、より具体的には、関心情報にリンクされたscriptPubKey値からの鍵をマッピングする際に、使用するための鍵を提供するために使用されてよい。結合の他の半分を取得するために、デジタルウォレットを投入するために使用される、scriptPubKey値からのスクリプトハッシュアドレスの導出がある。検索及び照合アルゴリズムは、次に、ブロックチェーン上のスクリプトハッシュアドレスと一致するＵＴＸＯを見付けるために使用される。これらは、次に、前述のデータベースに、スクリプトハッシュアドレスに、したがって結合を完成させるための鍵に一致するＵＴＸＯを投入する。一致は、最も信頼できる方法で状態を示す。
【図面の簡単な説明】
【００４７】
本発明の上述の及び他の態様は、本願明細書に記載される実施形態から明らかであり、それらの実施形態を参照して教示される。本発明の実施形態は、単なる例として添付の図面を参照して以下に説明される。
【図１】Ｐ２ＳＨトランザクションにおける、scriptPubKeyを含むブロックチェーントランザクションを示す。
【図２】本発明の一実施形態における、メタデータの構成、Ｐ２ＳＨ  Ｒｅｄｅｅｍスクリプト、scriptPubKey及びビットコインアドレスを示す擬似コードを示す。
【図３】本発明の一実施形態による、ＵＴＸＯの外部データベースに含まれる情報へのマッピングを記載する図である。
【図４】本発明が組み込まれ得るシステムの概略を示す。
【図５】ブロックチェーンに基づくＤＦＡ実装を示す。
【発明を実施するための形態】
【００４８】
未使用トランザクションアウトプット（Unspent  transaction  outputs：ＵＴＸＯ）は、ブロックチェーンの基本的特徴である。非常に様々なアセットの非常に様々なトランザクションが、ブロックチェーンを通じて可能である。ＵＴＸＯの数は膨大であり、それらは、各フルノード（full−node）ビットコインクライアントに及び全体としてＵＴＸＯセット又はＵＴＸＯプールとして知られている。
【００４９】
ＵＴＸＯは、ビットコイン額、及び標準的には特定ユーザアドレスに関連するロックスクリプト又は債務（encumbrance）の形式である。多くのトランザクションの多様さについて、情報をブロックチェーントランザクションに組み込むためのデータ部分がＵＴＸＯ内にも存在する。データ部分は、コード、タグ、又はメタデータの形式であってよい。特定のコード、タグ、又はメタデータを発見する能力、及び／又は一般的なブロックチェーンに格納された情報を系統的に発見し抽出する能力は、現在実行可能ではなく、特に本発明が解決しようとする潜在的課題である。
【００５０】
本発明は、これを解決し、可能な情報をブロックチェーンから抽出することにより該情報へのアクセスを提供しようとする。
【００５１】
コード、タグ、又はメタデータを発見する際の、及び更には情報を抽出する際の困難は、ＵＴＸＯ及びそのデータ部分の内容がどのように生じるかを考慮することから明らかである。
【００５２】
一般に、ブロックチェーントランザクションのフォーマットは、それに格納された情報が長いバイトチェーンの形式で生じることを強いる。この情報は、有用になる前に、フィルタリングされ処理されなければならない。さらに、セキュリティ、プライバシ、及び技術的理由から、チェーンは実際には（複数の）ハッシュの何らかの形式であるので、元の情報、例えばこれらのバイトチェーンからの有意義なメッセージを再構成することは実現不可能である。例えば、ビットコインアドレスは、次にフォーマットされる複数のハッシュを有する、公開鍵の複数のハッシュである。同様の状況が、同様の処理により得られた署名スクリプト又はブロックチェーントランザクションパズルに適用される。これは、それらをネットワークによりアクセス可能にし、例えば、暗号公開鍵、等の形式を有する必要がある。
【００５３】
以下で本発明の実装を例証するために使用される特定の実施形態は、ブロックチェーンに基づく決定性有限オートマトンＤＦＡであり、これに関連して、関心情報はＤＦＡの状態である。特定の例では、関心のあるＵＴＸＯはＰ２ＳＨ（typepay−to−script−hash）型であると仮定する。状態機械の特定の状態に関連付けられたトランザクションを実行する（使用する）ために、１つのエージェントが割り当てられることが更に考慮される。
【００５４】
この特定の実施形態における第１ステップでは、情報（ＤＦＡの状態を識別するタグ又はコード）は、先ず、公開鍵に含まれるメタデータフィールドを構成するために、ハッシュされる。公開鍵のフォームの中のメタデータフィールドは、（債務を提供する）責任のあるエージェントの公開鍵と結合される。結果は、Ｐ２ＳＨの２つのうちの１つのマルチシグネチャＲｅｄｅｅｍスクリプトの中に置かれる。このＲｅｄｅｅｍスクリプトは、また、ブロックチェーントランザクションを形成するバイトチェーンの部分として最終的に配置されるロックスクリプト（scriptPubKey）を導出するために、ハッシュされ、追加情報を伝達する他のバイトと結合される。
【００５５】
これらのステップを通ること、及びネットワークに格納されたものから元の情報を復元することは、この特定の実施形態におけるこの時点では、より一般的な場合と同様に、むしろ望みのない作業であることが、明らかにされるべきである。
【００５６】
本発明及びその特定の実施形態の詳細は、以下に議論される。本発明の動作の概略がこの段階で提供される。動作は、以下の一般的ステップを提供する。
１．関心情報を決定し、該情報を識別するコード又はタグを指定する。以下に詳細に議論するＤＦＡの実施形態では、これは、ブロックチェーンに基づくＤＦＡとして具現化される特定コントラクトの特定状態であってよい。
２．該コード又はタグに関連付けられたメタデータを構成する。ＤＦＡの実施形態では、これは、関心のある特定状態の、場合によっては関心のある特定コントラクト種別に特有のコード又はタグであってよい。
３．どのエージェント（又はエージェントのセット）が情報に関連付けられるかを決定する。ここでも、ＤＦＡの実施形態では、これは、関心のある特定状態に対応するＵＴＸＯを使用するよう割り当てられたエージェントであってよい。
４．これらのコード又はタグに関連付けられたメタデータを含む公開鍵を、関連エージェントの公開鍵と結合し、スクリプトを与える。ＤＦＡの実施形態では、これは、メタデータを有する公開鍵、及びエージェントからの公開鍵であってよく、次にＰ２ＳＨマルチシグネチャＲｅｄｅｅｍスクリプトに結合される。
５．照合に関連する外部データベースの中で使用する鍵を提供するために、各スクリプトのscriptPubKeyを導出する。ＤＦＡの実施形態では、これは、コードに、したがって関心状態にリンクする鍵として表される値であってよい。
６．scriptPubKey値からの鍵がマッピングされ、後の段階に入るために結合の他の半分を有する関心情報にリンクされ得るデータベースを構成する。
ＤＦＡの実施形態では、鍵は、やがて発見され、照合され、及び追加されるＵＴＸＯと共に、コード、従って関心状態にマッピングされる。
７．scriptPubKey値からスクリプトハッシュアドレスを導出する。ＤＦＡの実施形態では、これは以下も適用する；
８．これらのスクリプトハッシュアドレスを有するデジタルウォレットを投入する。ＤＦＡの実施形態では、これは以下も適用する；
９．検索及び照合アルゴリズムを用いて、ブロックチェーン上のスクリプトハッシュアドレスを照合することによりＵＴＸＯを見付ける。
ＤＦＡの実施形態では、これは以下も適用する；
１０．前述のデータベースに、スクリプトハッシュアドレスに、したがって結合を完成させるための鍵に一致するＵＴＸＯを投入する。ＤＦＡの実施形態では、これは、アルゴリズムが、一致するＵＴＸＯのスクリプトハッシュアドレスを発見すると、システムが、どの状態タグがＵＴＸＯ内に存在するかを明白に決定していることを意味する。つまり、実質的に、状態が検出されている。
【００５７】
ブロックチェーン内の情報からの情報の完全な復元は絶望的な作業であるが、予め知られている情報については、特定のタグが暗号通貨のＵＴＸＯ内に存在するか否かを依然として決定できることに留意すべきである。これは、ＤＦＡシステム内でタグを示す状態に当てはまる。したがって、ＤＦＡマシンがその許可された状態のうちの１つにあるか否かをこれに基づき検出することが可能である。
【００５８】
ここで、構造により、ＤＦＡは、一度に、有限状態セットのうちの１つにのみ存在できることに言及する価値がある。しかしながら、検出器は、同等に、任意の数のタグ又は他の種類の知られている情報を検出するのに適する。
【００５９】
初期段階は、情報からロックスクリプトに組み込まれたメタデータへ遷移する、概略で上述した段階を反映する。
【００６０】
したがって、初期ステップであるコード指定段階では、関心情報が選択される。この情報は、関心のある状態であってよい。検索されるべき（特定状態のような）該情報を識別するこれらのコード又はタグが次に指定される。これらは、状態遷移テーブルにおいて詳述される全ての状態の、コード又はタグの完全なセットから選択されたコード又はタグであってよい。したがって、コード指定段階は、表記ステップであり、直ちに実装可能である。
【００６１】
これらのコード又はタグは、第２ステップであるメタデータ構成段階への入力を形成する。このステップでは、コード又はタグのダブルハッシュは、コード又はタグを、これらを反映したメタデータフォーマットに変換する。このメタデータは、次に、フォーマットされ、情報公開鍵内に置かれる。
【００６２】
コントラクトの特定の状態に関連付けられた可能なエージェントに関して、更なる選択が行われる：エージェント関連付け段階。１又は複数のエージェントは、ＵＴＸＯを実行する（使用する）よう割り当てられたパーティである。関連付けられたエージェントは、１又は複数のエージェント公開鍵を提供する。１又は複数のエージェントは、ＤＦＡの文脈では状態に依存する可能性がある。１又は複数のエージェントは、全エージェントのうちの部分集合であってよい：リスティング。１又は複数のエージェントは、後述のように、ＤＦＡとインタフェースするために使用される計算エージェントと異なる。したがってエージェント関連付け段階は、割り当てステップであり、直ちに実装可能である。
【００６３】
メタデータ構成段階からの出力である、中にメタデータを有する情報公開鍵、及び、エージェント関連付け段階からのエージェント公開鍵は、次の段階である結合段階で使用される。結合段階では、２つの公開鍵（及びしたがって、情報公開鍵内のメタデータ）は、Ｐ２ＳＨマルチシグネチャＲｅｄｅｅｍスクリプト内で結合される。公開鍵は、ロックスクリプトを生成するために使用される。ロックスクリプトは、次に、また、ロックスクリプトのハッシュであるscriptPubKeyにより置換される。
【００６４】
次の段階である、scriptPubKey値取得段階で、結合段階からの１つ以上のハッシュされたロックスクリプトのscriptPubKey値が確立される。図１は、Ｐ２ＳＨトランザクションの文脈で、値が直接取得できるscriptPubKeyの構成を示す。これらのscriptPubKey値は、次に、最終的にマッピングされる結合に対して鍵として動作する。この段階で、鍵は、それぞれの関心のあるコード又はタグに対する知られている関係を有する。最終的にマッピングされる結合の他の部分は、後述する検索及び照合段階で発見される。
【００６５】
結合のマッピングは、検索語データベース内に構成される：データベース化段階。検索語データベースは、ブロックチェーンの外部にある。結果として、scriptPubKeyからの値を表す鍵をそれぞれの関心のあるコード又はタグと共にマッピングすることにより、辞書が提供される。鍵のセットを値にマッピングできる構造である辞書は、ハッシュテーブルとしてより自然に実施される。
【００６６】
留意すべきことに、使用される特定データベースの形式は、本発明にとって本質的ではなく、本発明の範囲を限定すべきではない。
【００６７】
問題のシステムが、図４のＤＦＡ実装の場合に、分散化されている場合、ネットワークの各ノードは、検索語データベースに（ローカルに又はリモートで）アクセス可能であるか、又は標準的に分散ハッシュテーブルとして分散方法で実装されることも可能である。
【００６８】
データベース化段階５１０は、Ｐｙｔｈｏｎ  ｄｉｃｔｉｏｎａｒｙ、ハッシュテーブルの概念を実施するビルトインデータ型を用いて実行できる。
【００６９】
次の段階であるスクリプトハッシュアドレス導出段階で、scriptPubKey値からスクリプトハッシュアドレスを導出する（段階５１２）。例示的アプローチでは、Ｐ２ＳＨについて、スクリプトハッシュアドレスを生成するとき、ＨＡＳＨ１６０を使用する（最初にＳＨＡ２５６を、次にＲＩＰＥＭＤ１６０を適用することを意味する）。これらの演算の結果に、ネットワーク１が使用されていること（mainnet、testtet、等）を示す「versionbyte」値を（ストリングの始めに）付加する。次に、「チェックサム（checksum）」の計算がある。これは、全体のＨＡＳＨ２５６である。次に、処理は、両方のストリングを連結し、ベース５８内の結果を符号化する。これはＰ２ＳＨアドレスである。スクリプトに対して別の方法を使用する場合、これら全てが変わる。したがって、これは本発明の本質ではなく、本発明の範囲を限定しない。
【００７０】
技術的レベルでのステップの説明により、（疑似）コードの簡略化されたスクリプトが与えられる。これらのスクリプトで使用された言語はＰｙｔｈｏｎ３であるが、通常、これは本発明範囲又はその開発方法の限定を意味すべきではない。図２は、メタデータの構成、エージェントの公開鍵を有する該メタデータのＰ２ＳＨ  Ｒｅｄｅｅｍスクリプトへの結合、及びscriptPubKey及びアドレスの擬似コードを提示する。実際には、上述のメタデータ構成段階、結合段階、scripPubKey値取得段階、及びスクリプトハッシュアドレス導出段階である。
【００７１】
スクリプトハッシュアドレスを取得すると、処理は、該アドレスをウォレットに追加することに進む：ウォレット形成段階。アドレスは、使用されるウォレット内の特定コントラクトアカウントに追加されることが望ましい。
【００７２】
利用される検索及び照合アルゴリズムは、次に、これらのアドレスと一致するＵＴＸＯを検索するために、ウォレットから開始され得る：検索及び照合段階。照合は、一致するエージェントだけでなく、一致するコントラクト状態も反映する。検索及び照合段階は、標準的なビットコインコアクライアントコマンドにより達成できる。多くの検索及び照合アルゴリズムは、この目的に適している。例えば、全てのＵＴＸＯは、ループを用いて検索され得る。
【００７３】
アルゴリズムが、検索中のスクリプトハッシュアドレスに一致する、ＵＴＸＯセット内のスクリプトハッシュアドレスを発見すると、関心のあるＵＴＸＯセット内のscriptPubKeyが発見される。これは、抽出され、次に上述の外部データベースにマッピングされ得る。ＵＴＸＯは、自身のscriptPubKeyにより鍵にマッピングされ、したがって、コード又はタグに、したがって関心のある元の情報に戻り、好適な実施形態では特定状態を表す。
【００７４】
この最後の段階における照合は、システムが、どの状態タグがＵＴＸＯ内に存在するかを明白に決定することを提供する。つまり、実質的に、状態が検出される（detected）。照合処理は、一致するスクリプトハッシュアドレス、したがって鍵、したがって状態タグを有する全てのＵＴＸＯについて繰り返す。
【００７５】
実際に知られている情報、つまり値（values）（私達の例ではコントラクト及び状態タグ）のブロックチェーンＵＴＸＯに格納された鍵（keys）への、事実上は値へのポインタの、このマッピングの説明は図３に与えられる。データベースのために使用される構造がハッシュテーブルである場合、鍵の追加ハッシングは、所望の情報の値にアクセスする前に、生じることに留意する。これは、一般的な場合を表すことを意味するので、図示されない。
【００７６】
今度の場合も、マッピングは事実上、辞書生成処理であるので、これはＰｙｔｈｏｎ  ｄｉｃｔｉｏｎａｒｙ、ハッシュテーブルの概念を実施するビルトインデータ型を用いて実行できる。
【００７７】
検索ウォレット変更
非慣例的／特別なソフトウェアが、状態遷移検出器の実装、又はより一般的に知られている情報検索で回避されるならば、全体的な簡易性及び実装の容易さにおいて有利である。もちろん、このようなソフトウェアは代替として提供され得る。
【００７８】
この文脈では、ビットコインコアクライアント（使用するのに好適な標準的ユーザインタフェース）を通じてアクセス可能なＵＴＸＯのみが、ユーザのビットコインウォレットに含まれるアドレスに関連付けられてものであることに留意することが重要である。検索処理では、探し求められている鍵は、必ずしもその基準を満たさない。これに立ち向かうために、外部データベースにも含まれる鍵についてＵＴＸＯデータベースを検索するためにウォレットが使用可能になる前に、対応するscriptPubKey値に関連付けられたビットコインアドレスを構成する必要がある。これは、上述したハッシング及びフォーマット処理により達成される。それらを構成すると、次に、それらを検索ユーザのビットコインウォレットに追加する必要がある。
【００７９】
特定コントラクトを実施する、ブロックチェーンに基づくＤＦＡの私達の実施例の場合には、さらに、コントラクトに関連するアドレスを、一方で特定アカウント（account）、ウォレットの部分集合に関連付けあることが、自然であり且つ都合がよい。しかしながら、この最後のステップは、厳格に必要ではなく、限定ではなく追加の効果及び構造を提供する私達の設計の特定の特徴として取り入れることができる。したがって、これは本発明の範囲を限定すること意味しない。
【００８０】
本発明の使用のコンテキスト
知られている情報を抽出する能力は、多くのコンテキストにおいて望ましい。このようなコンテキストは、メタデータがブロックチェーンに組み込まれる状況を含み得る。例は、他のアセット、例えば株式、証券、クーポン、所有権、商品、トークン、データなどを表すために使用される、トークン化の場合又は「カラードコイン（colored  coins）」を含み得る。
【００８１】
情報を発見し抽出する能力が重要である１つの特定のコンテキストは、情報が機械の状態であり得る、ブロックチェーンに基づくＤＦＡである。
【００８２】
スマートコントラクトの実装におけるＤＦＡの使用の更なる詳細は、次章で与えられる。
【００８３】
ＤＦＡの使用
本章は、ＤＦＡがどれだけ有用であるかについての背景を与えるために、スマートコントラクトを実装するＤＦＡを参照して、提供される。
【００８４】
この説明のためのコンテキストでは、コントラクトのような処理又はタスクをモデル化するＤＦＡの定義が与えられる。ＤＦＡは、計算エージェント又は「ボット」と呼ばれてもよい計算リソースの関連システムと相互作用する。これらの計算エージェントは、トランザクションを生成しそれらをブロックチェーンに提出するよう構成される。このＤＦＡの実施形態はコントラクトに関するが、ＤＦＡの使用はコントラクトに限定されない。
【００８５】
図４を参照すると、本発明は、ハードウェア及びソフトウェアコンポーネントを含むコンピューティングプラットフォーム−ブロックチェーン−上で具現化される抽象ＤＦＡとして処理の実現を提供する。
【００８６】
図４は、本発明の説明のための実施形態に従い構成されたシステムの概観を提供する。システムは、命令を受信するために他のエンティティ４（例えば、人間又は他のコンピュータ）と相互作用可能な計算エージェント３を有する。これらの命令は、例えばどのスマートコントラクトを生成し及び実行すべきかであり得る。したがって、計算エージェント３は、物理的世界と相互作用して、それら自身の外部で、「現実世界」において、イベントに応答し及びイベントを生じることにより、本発明を実施する。
【００８７】
コントラクト自体の仕様は、任意の機械実行可能フォーマット、例えばｘＢＲＬで提供され、セキュア且つ非集中的方法で、例えばトレント（torrent）ネットワーク上の分散ハッシュテーブル（distributed  hash  table：ＤＨＴ）５内に、格納され得る。コントラクトの仕様から、計算エージェントはＤＦＡ２を構成する。ＤＦＡ２は、１つ以上エージェントによりブロックチェーン１上で後に具現化される。
【００８８】
ＤＦＡ２自体は、有限セット｛Ｓ，Ｉ，ｔ，ｓ０，Ｆ｝として指定される。ここで、Ｓは、コントラクト／ＤＦＡが存在し得る可能な状態の（有限）集合であり、Ｉは、本願明細書の文脈ではコントラクトと関連して生じ得る任意のイベント又は条件、例えば支払が行われる、証券の満期に達する、契約相手の債務不履行、等を意味するインプット（アルファベットとしても知られる）の（有限）集合である。本願のメカニズムでは、これらのインプット信号は、１つ以上のエージェントにより受信され／生成され、該エージェントは次にシステムの次の状態（場合によっては同じ状態）を決定する。
【００８９】
ＤＦＡの第３コンポーネントは、遷移関数ｔ：Ｓ×Ｉ→Ｓである。「ＤＦＡ」における用語「決定性」は、決定の一意性：状態及びインプットが与えられると、唯一の新しい状態（場合によっては同じ状態）が存在する、を表す。したがって、初期状態（Ｓ０）及びインプットの履歴が与えられると、計算（コントラクト）の結果は、全ての可能な最終結果の集合の中のユニークな１つである（Ｆ⊆Ｓ）。全てのこれらの要素が確立されると、ＤＦＡは、遷移テーブルにより完全に定められ、全ての可能な現在状態及びインプット信号についての将来の状態を指定する。ＤＦＡの状態は、それ自体が、ブロックチェーン上の未使用トランザクションアウトプット（ＵＴＸＯ）に関連付けられる。従来知られているように、ビットコインネットワークは、全ての利用可能ＵＴＸＯを絶えず追跡する。実施形態によると、ＤＦＡがある状態から別の状態へ移行するメカニズムは、ブロックチェーントランザクションにより本発明に従い具現化される（実施される）。事実上、ブロックチェーン上のトランザクションはある状態（前のトランザクションのインプット）に関連付けられたＵＴＸＯを使用し、次の状態（アウトプット）に関連付けられたＵＴＸＯを生成する。
【００９０】
＜例：割引（ゼロクーポン）債券＞
説明のために、以下では、通常、ある価格で（通常はその額面価格に対して割引して）購入され次にその元金が満期時に返金されるまでの特定時間の間保持される単純な債券類である、割引（ゼロクーポン）債券を検討する。検討する可能な状態はＳ＝｛ｓ０，ｆ０，ｆ１｝であり、それぞれ保持状態（ｓ０）、コントラクトの正常終了（幸運な経路を辿った場合）又は幸せな結末（ｆ０）、及び失敗した、例えば訴訟、の状態（ｆ１）を示す。システムの最終状態は、したがってＦ＝｛ｆ０，ｆ１｝である。検討するアルファベットは、Ｉ＝｛ｒ，ｄ，ｅ｝であり、それぞれ満了時（又は前）の元金の返済金（ｒ）、満了時（又は前）の発行人の債務不履行（ｄ）、及び返金を伴わないコントラクトの満了（ｅ）を示す。この単純なコントラクトの遷移マトリクスは表１に示される。
【００９１】
［表１］ゼロクーポン債券を表すＤＦＡの遷移テーブル
【００９２】
【表１】
2020516976.tif 000003
留意すべきことに、最終状態はコントラクトの完了を表し、したがってそれらから更なる状態が指定される必要はない（現在、遷移テーブル内の「−」として示されるが、これらの線は省略され得る）。原則として、より多くの状態及び／又はインプット（並びにアクション）がこの証券について定められ得るが、これは、コントラクトの複雑性に関連する邪魔な詳細事項を挿入するのではなく、本発明の基本的な新規な態様を説明するために、単純性及び明確性のために本願明細書において行われていない。
【００９３】
図５は、（ビットコイン）ブロックチェーン上のゼロクーポン債券ＤＦＡの実施形態を表す。状態は円により表され、機械をある状態から他の状態へ移行させるビットコイントランザクションは青色三角形により表される。図５ではエージェントにより受信されるインプットは省略されるが、各状態において、これらのインプットに従い１つ又は他の遷移が生じるべきであり、これが１つ又は他のビットコイントランザクション（例えば、状態ｓ０の中のｔ０又はｔ１）の構成により図中に反映されること、状態を変えない遷移にはトランザクションが必要ないこと、したがってそれらは省略されることに留意する。ＤＦＡの遷移トランザクション（ｔｉ）に加えて、初期発生トランザクション（ｏ）、及びコントラクトの完了に対応するトランザクション（ｃｉ）が考えられる。
【００９４】
以下では、トランザクション（発生、遷移、及び完了）における資金の流れに注意を向ける。重要なことに、ＤＦＡ及び（金融）コントラクトの有限性により、プロセスは多数の遷移の後に完了することに気付く。これは、コントラクトの確立及び実行の最大コストが結合され、予め、例えばＤＦＡの確立時に、決定できることを必ずしも意味しない（関与する計算エージェント及びビットコインマイナーのための幾つかの有限料金を想定する）。これは、考えられる最長経路を辿るコントラクトを実行するために必要な合計資金額により与えられる。これは、勿論、実行中の無限ループの可能性を排除するが、しかし、これは現在の（金融）コントラクトに関連しないこと、永久拘束のようなコントラクトでさえ、その名称にも拘わらず将来の特定時点で完了すべき債券であること、例えば負債のあるエンティティが消滅する又はインフレにより支払が無視できるほど小さくなること、に留意する。
【００９５】
留意すべきことに、上述の実施形態は、本発明を限定するのではなく、当業者は添付の請求項により定められる本発明の範囲から逸脱することなく多数の代替の実施形態を考案できる。請求項中、括弧内に記載された如何なる参照符号も、請求項を制限すると見なされるべきではない。用語「有する（comprising又はcomprises）」等は、全体としていかなる請求項中に及び明細書に列挙された以外の要素又はステップの存在を排除するものではない。本願明細書において、「有する（comprises）」は「含む（includes）又は構成される（consists  of）」を意味し、「有する（comprising）」は「含む（including）又は構成される（including  of）」を意味する。要素の単数の参照は、該要素の複数の存在を排除するものではなく、逆も同様である。本発明は、複数の別個の要素を有するハードウェアにより又は適切にプログラムされたコンピュータにより、実施され得る。複数の手段を列挙している装置の請求項では、これらの複数の手段は、１つの同一のハードウェア要素により実装することができる。特定の量が相互に異なる従属請求項に記載されるという事実は、これらの量の組合せが有利に用いることが出来ないことを示すものではない。
【図１】
2020516976.tif 000004
【図２】
2020516976.tif 000005
【図３】
2020516976.tif 000006
【図４】
2020516976.tif 000007
【図５】
2020516976.tif 000008
【国際調査報告】
2020516976.tif 000009
2020516976.tif 000010