(57)【要約】本明細書で説明されるシステム及び方法は、複数の参加者が各々、共有秘密を公開することなく、共有秘密（例えば共有秘密のべき乗）に基づく数量を生成及び交換する技術に関する。プロトコルによると、２以上の当事者は、該２以上の当事者の各々によって使用できる多項式に対して生成された楕円曲線点のセットを交換して、共有秘密のべき乗を決定し得る。プロトコルは、ブロックチェーンネットワーク（例えばビットコイン）にブロードキャストされるスマートコントラクトのパラメータを決定することの一部として利用されてよい。プロトコルに基づいて、追加の当事者（例えば２以上の当事者とは異なる）が、スマートコントラクトの実行のような計算タスクを実行してよい。
2021507562.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータ実施方法であって、
複数の参加者のうちのある参加者において、有限フィールド要素をマップするために使用可能な関数を決定するステップと；
参加者の数に基づいて、点のセットで評価される多項式を生成するステップと；
前記多項式を、前記複数の参加者のうちの対応する参加者に分配するステップと；
前記複数の参加者の各参加者の多項式の和を決定するステップであって、前記和は秘密の累乗に対応する、ステップと；
前記複数の参加者の間で前記秘密に基づいてブロックチェーントランザクションを集合的に生成するステップと；
を含む、方法。
【請求項２】
前記点のセットは、楕円曲線点のセットである、
請求項１に記載の方法。
【請求項３】
前記多項式の前記和を決定することは、ラグランジュ補間に基づく、
請求項１又は２に記載の方法。
【請求項４】
前記秘密の前記累乗に少なくとも部分的に基づいて、前記複数の参加者によって決定可能な共通参照文字列を決定するステップ、
を更に含む、請求項１乃至３のいずれかに記載の方法。
【請求項５】
前記複数の参加者の各参加者から、多項式の対応する値を受け取るステップ、
を更に含む、請求項１乃至４のいずれかに記載の方法。
【請求項６】
オフチェーン通信が、前記対応する参加者に前記多項式の値を分配する際に利用される、
請求項１乃至５のいずれかに記載の方法。
【請求項７】
前記有限フィールド要素をマップするために使用可能な前記関数は、グループのジェネレータの係数又は指数として機能する、
請求項１乃至６のいずれかに記載の方法。
【請求項８】
前記複数の参加者は、正確に２人の参加者である、
請求項１乃至７のいずれかに記載の方法。
【請求項９】
前記秘密は、特定の点で評価される多項式の前記和に基づいて決定される、
請求項１乃至８のいずれかに記載の方法。
【請求項１０】
前記特定の点は、交点である、
請求項９に記載の方法。
【請求項１１】
前記点のセットは、交点を除外する、
請求項１乃至１０のいずれかに記載の方法。
【請求項１２】
前記点のセットで評価される前記多項式は、少なくとも２次数のものである、
請求項１乃至１１のいずれかに記載の方法。
【請求項１３】
前記点のセットの各点は、異なる点である、
請求項１乃至１２のいずれかに記載の方法。
【請求項１４】
システムであって、
プロセッサと；
前記プロセッサによる実行の結果として、当該システムに請求項１乃至１３のいずれかに記載のコンピュータ実施方法を実行させる実行可能命令を含む、メモリと；
を含む、システム。
【請求項１５】
コンピュータシステムのプロセッサによって実行されている結果として、前記コンピュータシステムに請求項１乃至１３のいずれかに記載のコンピュータ実施方法を少なくとも実行させる実行可能命令を格納する、非一時的コンピュータ読取可能記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、コンピュータセキュリティ及び検証に関し、より具体的には、指数（ｅｘｐｏｎｅｎｔ）及び乗算係数（ｍｕｌｔｉｐｌｉｃａｔｉｖｅ  ｃｏｅｆｆｉｃｉｅｎｔ）が共有秘密のべき乗（ｐｏｗｅｒｓ  ｏｆ  ａ  ｓｈａｒｅｄ  ｓｅｃｒｅｔ）に依存するグループの要素を、複数の（例えば２人より多くの）当事者が共有することを可能にする技術に関する。数量（ｑｕａｎｔｉｔｉｅｓ）は、複数の当事者が、共有秘密を公開することなく、共有秘密（例えば共有秘密のべき乗）に基づく数量を交換するように共有され得る。本発明は、限定ではないが、スマートコントラクトにおける使用に特に適しており、この場合、複数の当事者は、スマートコントラクトのパラメータに合意する、スマートコントラクトのそれぞれの当事者であってよい。本発明は、暗号化及び数学的技術を利用して、セキュリティ関連の利点のために数量を共有してよい。
【背景技術】
【０００２】
ブロックチェーンは、ブロックにより構成される、コンピュータベースの非集中型の分散システムとして実装されるピアツーピア電子台帳を指すことがあり、ブロックはトランザクション及び他の情報により構成され得る。いくつかの例において、「ブロックチェーントランザクション」は、データ及び条件のセットを含むフィールド値の構造化されたコレクションを符号化する入力メッセージを指し、この場合、条件のセットを満たすことは、フィールドのセットがブロックチェーンデータ構造に書き込まれるための前提条件である。例えばビットコインでは、各トランザクションは、ブロックチェーンシステムの参加者間のデジタル資産の制御の移転を符号化し、少なくとも１つの入力及び少なくとも１つの出力を含む、データ構造である。いくつかの実施形態において、「デジタル資産」は、使用権に関連付けられるバイナリデータを指す。デジタル資産の例は、ビットコイン、イーサ、ライトコインを含む。いくつかの実装において、デジタル資産の制御を移転することは、デジタル資産の少なくとも一部を第１エンティティから第２エンティティに再関連付け（ｒｅａｓｓｏｃｉａｔｉｎｇ）することによって実行され得る。ブロックチェーンの各ブロックは、ブロックが一緒にチェーン化されることになり、その始めからブロックチェーンに書き込まれたすべてのトランザクションの永続的で変更不能なレコードを作成するように、以前のブロックのハッシュを含んでよい。トランザクションは、それらの入力及び出力に組み込まれるスクリプトとして知られる小さなプログラムを含み、トランザクションの出力が、どのように何によってアクセスされ得るかを指定する。ビットコインプラットフォームでは、これらのスクリプトは、スタックベースのスクリプト言語を使用して書かれる。
【０００３】
ブロックチェーン技術は、暗号通貨実装の使用について最も広く知られているが、デジタル起業家達は、新たなシステムを実装するために、ビットコインが基づいている暗号通貨セキュリティシステムと、ブロックチェーン上に格納することができるデータとの双方の使用を探求し始めている。暗号通貨の領域に限定されない自動化タスク及びプロセスにブロックチェーンを使用することができれば非常に有利であろう。そのようなソリューションは、それらの用途はより多方面にわたるが、ブロックチェーンの利点（例えば永続性、イベントの改ざん防止レコード、分散処理等）を利用することができるであろう。
【０００４】
本開示は、１つ以上のブロックチェーンベースのコンピュータプログラムの技術的側面を説明する。ブロックチェーンベースのコンピュータプログラムは、ブロックチェーントランザクション内に記録される機械読取可能で実行可能なプログラムであってよい。ブロックチェーンベースのコンピュータプログラムは、結果を生成するために入力を処理することができ、次いで、それらの結果に依存してアクションを実行させることができるルールを含んでよい。現在の研究の１つの分野は、「スマートコントラクト」の実装のためのブロックチェーンベースのコンピュータプログラムの使用である。自然言語で書かれる伝統的な契約とは異なり、スマートコントラクトは、機械読み取り可能な契約又は合意の条件の実行を自動化するように設計されるコンピュータプログラムであってよい。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
したがって、２以上の当事者間で共有秘密のべき乗を決定するために使用することができる数量を交換することによって、ブロックチェーン上に複数当事者の検証鍵を記録するためのプロトコルを提供することが望まれる。様々な実施形態において、スマートコントラクトの２以上の当事者が、検証鍵及び評価鍵を含む共通参照文字列を決定するために使用可能な数量を交換することが望ましいことがある。様々な実施形態において、本明細書で説明される技術は、２以上の当事者が、暗号化のような暗号技術を使用することなく、共有秘密のべき乗を交換することを可能にし、さらに、それらの当事者が、通信チャネルを介して交換されるデータの暗号的に検証可能な保証の機密性を必要とする通信チャネルを確立することを必要としない。したがって、本発明は、改善されたセキュリティ及び検証ソリューションを提供する。
【０００６】
そのような改善されたソリューションが考案されている。
【課題を解決するための手段】
【０００７】
したがって、本明細書によると、添付の特許請求の範囲で定義されるシステム及び方法が提供される。
【０００８】
本発明によると、ブロックチェーンネットワークのノードのためにコンピュータ実施方法が提供されてよく、コンピュータ実施方法は、複数の参加者のうちのある参加者において、有限フィールド要素をマップするために使用可能な関数を決定するステップと；参加者の数に基づいて、点のセットで評価される多項式を生成するステップと；多項式を、複数の参加者のうちの対応する参加者に分配するステップと；複数の参加者の各参加者の多項式の和を決定するステップであって、和は秘密の累乗（ａ  ｐｏｗｅｒ  ｏｆ  ａ  ｓｅｃｒｅｔ）に対応する、ステップと；複数の参加者の間で秘密に基づいてブロックチェーントランザクションを集合的に生成するステップと、を含む。
【０００９】
好ましくは、点のセットは、楕円曲線点（ｅｌｌｉｐｔｉｃ  ｃｕｒｖｅ  ｐｏｉｎｔｓ）のセットである。
【００１０】
好ましくは、多項式の和の決定は、ラグランジュ補間に基づく。
【００１１】
本明細書で説明される方法は、秘密の累乗に少なくとも部分的に基づいて、複数の参加者によって決定可能な共通参照文字列を決定するステップを更に含んでよい。
【００１２】
本明細所で説明される方法は、複数の参加者の各参加者から、多項式の対応する値を受け取るステップを更に含んでよい。
【００１３】
好ましくは、オフチェーン通信が、対応する参加者に多項式の値を分配する際に利用される。オフチェーン通信は、ブロックチェーンネットワークにブロードキャストされない、かつ／又はブロックチェーンネットワークによって検証可能でないデータ通信を指してよい。
【００１４】
好ましくは、有限フィールド要素をマップするために使用可能な関数は、グループのジェネレータ（ｇｅｎｅｒａｔｏｒ）の係数又は指数として機能する。
【００１５】
好ましくは、複数の参加者は、正確に２人の参加者である。
【００１６】
秘密は、特定の楕円曲線点のような特定の点で評価される多項式の和に基づいて決定されてよい。
【００１７】
特定の点は、各参加者の多項式の和が（マスター（ｍａｓｔｅｒ））多項式を構成するような、交点（ｉｎｔｅｒｓｅｃｔｉｏｎ  ｐｏｉｎｔ）であってよく、そのｙ軸との交点は秘密である。
【００１８】
点のセットは、交点を除外してよい。言い換えると、少なくとも一部の場合には、交点は、点のセットのメンバではない。
【００１９】
点のセットで評価される多項式は、少なくとも２次数のものであってよい。
【００２０】
好ましくは、点のセットの各点は、点のセット内に重複する点が存在しないように、異なる点である。
【００２１】
また、プロセッサと、該プロセッサによる実行の結果として、システムに、特許請求に係る方法のいずれかを実行させる実行可能命令を含むメモリとを備えるシステムを提供することが望ましい。
【００２２】
また、コンピュータシステムの１つ以上のプロセッサによる実行の結果として、コンピュータシステムに、特許請求に係る方法のいずれかを少なくとも実行させる実行可能命令を格納している非一時的コンピュータ読取可能記憶媒体を提供することが望ましい。
【図面の簡単な説明】
【００２３】
本発明のこれら及び他の態様は、本明細書で説明される実施形態から明らかになり、実施形態に関連して解明されるであろう。本発明の実施形態は、次に単なる例示として、添付の図面に関連して説明される：
【図１】スマートコントラクトの複数当事者が、スマートコントラクトを実行するために第３当事者と合意する、コンピューティング環境を示す図である。
【図２】第１コンピューティングエンティティと第２コンピューティングエンティティが、２以上の当事者間で共有秘密のべき乗を決定するため使用することができる数量を交換する、コンピューティング環境を示す図である。
【図３】第１コンピューティングエンティティと第２コンピューティングエンティティが、ゼロ知識（ｚｅｒｏ−ｋｎｏｗｌｅｄｇｅ）を提示（ｒｅｎｄｅｒ）するパラメータのセットを交換する、コンピューティング環境を示す図である。
【図４】２当事者共通参照文字列（ＣＲＳ：ｃｏｍｍｏｎ  ｒｅｆｅｒｅｎｃｅ  ｓｔｒｉｎｇ）と、対応する正当性のプルーフ（ＰＯＣ：ｐｒｏｏｆ−ｏｆ−ｃｏｒｒｅｃｔｎｅｓｓ）又は正しい実行のプルーフとに基づく、プロトコルの図である。
【図５】一実施形態に従って、検証鍵及び評価鍵を含む２当事者共通参照文字列を生成するためのプロセスを示す図である。
【図６】少なくとも一実施形態に従って、複数当事者間で共有秘密のべき乗を共有するためのプロセスを示す図である。
【図７】本開示の少なくとも一実施形態を実施するために使用することができるコンピューティングデバイスの簡略化されたブロック図である。
【発明を実施するための形態】
【００２４】
図１は、様々な実施形態を実装することができるブロックチェーン環境を図示している。
【００２５】
本開示は、指数又は乗算係数が共有秘密のべき乗に依存するグループの要素を、複数の当事者が安全に共有することを可能にする、システム及び方法を実装するために利用され得る技術を説明する。複数の当事者が、共有秘密を公開することなく、共有秘密（例えば共有秘密のべき乗）に基づく数量を交換するように、数量が共有されてよい。したがって、様々な実施形態において。複数のｎ参加者は、共有秘密のべき乗の表現（例えば乗算的ケースでは〈Ｓｉ〉Ｇを確立する。
【００２６】
実施形態において、本明細書で説明されるプロトコル利用技術及び方法は、スマートコントラクトの２当事者によって、秘密自体を共有せず、かつ別のコンピューティングエンティティ（例えばスマートコントラクトへの当事者でないコンピューティングエンティティ）がその秘密を決定することを可能にする情報を明らかにせずに、これらの当事者によって使用され得る数量を共有し、共有秘密のべき乗を決定するために使用される。一実施形態において、プロトコルは、スマートコントラクトの第１当事者が、スマートコントラクトの第２当事者に送信されるパラメータの第１セットを計算することと、第２当事者が、パラメータの第２セットを計算し、これらのパラメータを第１当事者に提示することを含み、ここで上述のようなパラメータの交換時に、両当事者は、検証鍵を含む同一の共通参照文字列を計算することができる。当事者は、次いで、トランザクションに合意してよく、そのようなトランザクションでは、当事者は、アドレス（例えばブロックチェーンネットワークの作業者ノードのアドレス）に対してロックされ、アンロック（例えば使用）することができる、スマートコントラクトに対してデジタル資産の比例的寄与（ｐｒｏｐｏｒｔｉｏｎａｔｅ  ｃｏｎｔｒｉｂｕｔｉｏｎｓ）を行う。一実施形態において、スマートコントラクトの当事者間のオフチェーン通信は、共通参照文字列を生成するために使用されるパラメータの交換に限定されるが、セキュリティ保証は維持される（例えばスマートコントラクトに対する当事者ではない、相手（ａｄｖｅｒｓａｒｙ）又は他のコンピューティングエンティティによって交換されたパラメータに基づいて、秘密鍵は開かされず又は他の方法で決定可能でない）。一実施形態において、２当事者（又はより一般的な場合では、２以上の当事者）は、本明細書の他の箇所、例えば図１〜図７に関連して説明されるような方法で、共有秘密のべき乗を共有する技術を利用する。
【００２７】
本開示の様々な実施形態が実施され得る例示のコンピューティング環境を図示している図１を参照することができる。本明細書で説明されるシステム及び方法は、第１及び第２コンピューティングエンティティが同一の共通参照文字列を計算するために使用することができる数量を、スマートコントラクトの当事者が交換するためのプロトコルに関連し得る。図１は、パラメータのセットを交換する第１コンピューティングエンティティ１０２と第２コンピューティングエンティティ１０４を含む、コンピューティング環境１００を図示している。そのようなパラメータのセットは、第１コンピューティングエンティティと第２コンピューティングエンティティの双方が、共通参照文字列１０８を決定することを可能にする。共通参照文字列は、コンピューティングエンティティのいずれか又は双方がトランザクション入力として寄与するデジタル資産をロックするスマートコントラクト１１０を生成するために、当事者によって使用されてよい。共通参照文字列は、評価鍵１１２と検証鍵１１４を含んでよい。スマートコントラクト１１０は、図１に図示されるブロックチェーン１１８のようなブロックチェーンに対して発行されてよい。スマートコントラクト１１０は、該スマートコントラクト１１０に対する当事者ではない、第３コンピューティングエンティティ１０６によって実行されてよい。スマートコントラクトの実行の一部として又はそれに関連して、第３コンピューティングエンティティ（例えば作業者（ｗｏｒｋｅｒ））は、共通参照文字列の評価鍵に少なくとも部分的に基づいて、スマートコントラクトの正しい実行のプルーフ（ｐｒｏｏｆ  ｏｆ  ｃｏｒｒｅｃｔ  ｅｘｅｃｕｔｉｏｎ）１１６を生成してよい。正しい実行のプルーフ１１６は、任意の適切なコンピューティングシステム（例えばスマートコントラクトの当事者、あるいは検証者ノードとして動作するブロックチェーンネットワークのノード）によって計算的に検証可能であり得る。実施形態において、検証鍵１１４は、第４コンピューティングエンティティ（例えば検証者コンピュータシステム）によって、ブロックチェーンネットワーク１１８に発行されたプルーフが正しいことを検証するために使用される。
【００２８】
第１コンピューティングエンティティ１０２及び第２コンピューティングエンティティ１０４は、少なくとも１つの実施形態によると、スマートコントラクトに対する当事者であるコンピュータシステムである。スマートコントラクトの当事者は、スマートコントラクトの実行に対する条件に（例えば関連するユーザ入力デバイスを通して提供されるユーザ入力に従って）合意する２つ以上のコンピューティングエンティティを指してよい。第１コンピューティングエンティティ１０２及び第２コンピューティングエンティティ１０４は双方ともスマートコントラクトに合意し、スマートコントラクトにトランザクション入力を寄与してよく、これにより、スマートコントラクトのそれぞれのトランザクション入力は、作業者ノードがスマートコントラクトの正しい実行のプルーフを提供した結果としてアンロック（例えば使用）できる、ロッキングスクリプトによって妨害される。本明細書で説明されるシステム及び方法は、ロッキングスクリプトが検証鍵ＶＫを変更から保護することを可能にし、プルーフπの妥当性をチェックし、それにより、トランザクション検証中にブロックチェーンに対するゼロ知識プロトコルの実行を可能にすることに関する。
【００２９】
様々な実施形態において、第１コンピューティングエンティティ１０２及び第２コンピューティングエンティティ１０４は、一実施形態では、スマートコントラクトの実行を制御するために使用される、日付、時間、条件及びアクション（例えばデジタル資産の制御の移転）のようなスマートコントラクトのパラメータを符号化するメッセージのセットを交換することによって、スマートコントラクトに合意する。例えばスマートコントラクト（例えば実行可能プログラム）は、特定のフライトの遅延に対する当事者の保険を引き受けることがあり、プログラムの実行は、特定の日における特定の商用フライトのフライト情報のような外部データを使用して、その特定のフライトが遅れたかどうかを判断することを含んでよい。フライトが遅れた場合、プログラムの当事者は、資産の移転を受け取ってよい（例えば遅延に対する旅行保険を提供するスマートコントラクト）。
【００３０】
一実施形態において、スマートコントラクト１１０は、Ｃ、Ｃ＋＋又はＪａｖａ（登録商標）のような高レベルのプログラミング言語でソースコードとして符号化される。これらは単に説明的な例であり、スマートコントラクトは、他の適切なプログラミング言語を使用して符号化されてよい。一実施形態では、コンパイラ、インタプリタ及び／又はアセンブラのようなソフトウェアを使用して、スマートコントラクト１１０を、フィールド
【数１】
2021507562.tif 000003
からの値を担持し、かつ加算ゲートと乗算ゲートを接続する、「ワイヤ」からなる演算回路に変換してよい。演算回路は、（例えば７４００シリーズゲート、フリップフロップ、バッファ、デコーダ、マルチプレクサ等のトランジスタ−トランジスタロジック（ＴＴＬ）集積回路を使用して）物理ワイヤによって接続される一連の物理ゲートを含む物理回路によって実装され得る論理回路を指してもよいことに留意されたい。スマートコントラクト１１０の実行が図１の文脈又は他の箇所で説明されるが、スマートコントラクトの使用は、算術回路に変換することができるソースコードの非限定的な一例にすぎない。一実施形態では、クライアントは（例えば第１コンピューティングエンティティ１０２単独で、あるいは第２コンピューティングエンティティ１０４とともに）、オペレーションのセットによって定義されるタスクを実行するためのソースコードを決定し、ここで、タスクの実行は、第３コンピューティングエンティティ１０６（作業者又は証明者（ｐｒｏｖｅｒ）と呼ばれる）に委任される。一般的に言うと、検証者は、証明者によって生成された正しい実行のプルーフ１１６の妥当性を確かめること等によって、証明者がタスクを正しく実行したことを決定することに関連するタスクを実行してよい。
【００３１】
検証可能な計算は、計算のプルーフの生成を可能にする技術である。一実施形態において、そのような技術は、クライアントによって、本明細書で証明者と呼ばれる別のコンピューティングエンティティに、入力ｘに対する関数ｆの評価をアウトソースするために利用される。場合によっては、クライアントは計算的に制限されるため、クライアントが関数の評価を実行することは不可能であるが（例えばクライアントに利用可能なコンピューティングリソースを用いる計算の予測されるランタイムが、許容可能な最大閾値を超える）、必ずしもそうである必要はなく、クライアントは、一般的に言うと、計算ランタイム、計算コスト（例えば関数の評価を実行するためにコンピューティングリソースを割り当てる金融コスト）等のような任意の適切な基準に基づいて入力ｘに対する関数ｆの評価を委任してよい。
【００３２】
証明者は、一実施形態では、本開示の他の箇所で更に詳細に説明されるブロックチェーンノードのような、任意の適切なコンピューティングエンティティである。一実施形態において、証明者（例えばブロックチェーンノード）は、入力ｘに対して関数ｆを評価し、出力ｙと、上述のようなクライアント及び／又はブロックチェーンネットワークの他のノードのような他のコンピューティングエンティティによって検証できる出力ｙの正しさのプルーフπとを生成する。プルーフは、引数とも呼ばれることがあるが、実際の計算を行うよりも早く検証することができ、したがって、上述の証明者によって生成された出力の正しさを判断するために、入力ｘに対して関数ｆを再計算する代わりにプルーフの正しさを検証することにより、計算的オーバーヘッドを低減することができる（例えば電力オーバーヘッドと、コンピューティングリソースの電力供給（ｐｏｗｅｒｉｎｇ）及び実行に関連付けられるコストを低減する）。ゼロ知識検証可能な計算において、証明者は、該証明者が、特定の特性を有する入力を知っていることの証明をクライアントに提供する。
【００３３】
知識のゼロ知識プルーフ（ｚｅｒｏ−ｋｎｏｗｌｅｄｇｅ  ｐｒｏｏｆ  ｏｆ  ｋｎｏｗｌｅｄｇｅ）の有効な変形はｚｋ＿ＳＮＡＲＫ（Ｓｕｃｃｉｎｃｔ  Ｎｏｎ−ｉｎｔｅｒａｃｔｉｖｅ  ＡＲｇｕｍｅｎｔ  ｏｆ  Ｋｎｏｗｌｅｄｇｅ）である。一実施形態において、全ペアリングベースのｚｋ＿ＳＮＡＲＫｓ（ａｌｌ  ｐａｉｒｉｎｇｓ−ｂａｓｅｄ  ｚｋ−ＳＮＡＲＫｓ）は、証明者が、一般的なグループオペレーションを使用して複数のグループ要素を計算し、検証者が、複数のペアリング積の方程式（ｐａｉｒｉｎｇ  ｐｒｏｄｕｃｔ  ｅｑｕａｔｉｏｎｓ）を使用してプルーフをチェックするプロセスを含む。一実施形態において、線形対話型プルーフは有限フィールドに対して機能し、証明者の及び検証者のメッセージは、フィールド要素のベクトルを決定するために使用可能な情報を含むか、符号化し、参照し、あるいは他の方法で含む。
【００３４】
一実施形態において、第１コンピューティングエンティティ及び／又は第２コンピューティングエンティティは、メッセージのセットを交換することによって、スマートコントラクトの実行の条項について合意する。そのようなメッセージは、例えば満たされている条件に基づいて、実行すべきスマートコントラクト及びオペレーションのセットを実施するかどうか及び／又はどのように実施するかを決定する、条件のセットを符号化する１つ以上のブール式のようなスマートコントラクトの実行のための提案されるパラメータを符号化する。一実施形態において、あるコンピューティングエンティティは、パラメータのセットをプロトコルの一部として第２コンピューティングエンティティに送信し、第２コンピューティングエンティティは、それらのパラメータがスマートコントラクトにとって受け入れ可能であるかどうかを判断する。パラメータが受け入れられない場合、第２コンピューティングエンティティは、スマートコントラクトの実行のための提案されるパラメータの第２セットとして、異なるパラメータのセットを第１コンピューティングエンティティに提供してよい。また、第２コンピューティングエンティティは、パラメータの第１セットが受け入れ可能でなかったという信号を提供してよく、第１コンピューティングエンティティは、提供すべきパラメータの第２セットを決定する。いずれかの場合において、すべての当事者がパラメータに対する合意を信号伝達すると、いずれかのコンピューティングエンティティは、一実施形態において、ロッキングトランザクションを生成することができ、ここで、出力のうちの１つがプログラム（例えばスマートコントラクトスクリプト）によってロックされ、それを、スマートコントラクトの相手方に送信する。ロッキングトランザクションは、アンロッキングトランザクションを有効にすることができる制約を初期化するトランザクションを指してよい。いくつかの例において、「アンロッキングトランザクション」は、以前のトランザクションのＵＴＸＯによって示されるデジタル資産の少なくとも一部を、ブロックチェーンアドレスに関連付けられるエンティティに再関連付けする（例えば所有権及び制御を移転する）、ブロックチェーントランザクションを指す。
【００３５】
一実施形態において、第１コンピューティングエンティティは、ロッキングトランザクションを生成し、作業者フリー（ｗｏｒｋｅｒ  ｆｅｅ）の部分を網羅するトランザクション入力を追加する。この時点では、ロッキングトランザクションはまだ有効ではないことに留意されたい。なぜなら、トランザクション入力の値は、ロッキングトランザクションのトランザクション出力の値に等しくないからである。例を続けると、第２コンピューティングエンティティがロッキングトランザクションを受け取ると、第２コンピューティングエンティティは、スマートコントラクトを確認（例えば共通参照文字列及びスマートコントラクトの実行のためのパラメータを確認）し、入力をロッキングトランザクションに追加し、ＵＴＸＯをアンロックして、デジタル資産に合意し、かつプログラム（例えばスマートコントラクト）の実行のために作業者に支払われるべき報酬及び該作業者に対する報酬の値を有する出力にも合意した発行者に転送する。第１コンピューティングエンティティと第２コンピューティングエンティティの双方がトランザクション入力をスマートコントラクトに寄与する場合、スマートコントラクトは、両当事者によって共同で所有されることがあり、スマートコントラクトの移転（例えば交換又は販売）は、両当事者からの証明書を必要とすることがある。
【００３６】
スマートコントラクト１１０は、ブロックチェーンネットワークのノードのような第３コンピューティングエンティティ１０６によって実行されてよい。第３コンピューティングエンティティ１０６は、作業者又は証明者と呼ばれることがある。一実施形態において、作業者は、入力に対する関数の計算を伴う計算タスクを少なくとも実行することによって、スマートコントラクトを実行する。一実施形態において、作業者は、スマートコントラクトの所有者が計算タスクを委任し得る任意の適切なコンピュータシステムである。入力は、一実施形態では、作業者の身元を証明する情報、例えば作業者に関連付けられる秘密鍵を使用して生成されたデジタル署名等を含む。一実施形態において、作業者は、第１及び第２コンピューティングエンティティが、計算タスクを成功裏に完了した見返りにデジタル資産を移転するよう合意したコンピューティングエンティティである。スマートコントラクトの所有者は、一実施形態では、入力ｘ及び評価鍵ＥＫ１１２を証明者に提供し、証明者は、計算ルーチンに対して評価モジュールを使用して出力ｙを計算し（すなわち、ｙ＝ｆ（ｘ）、ここで、入力はｘ、関数はｆである）、評価鍵ＥＫを使用して、正しい実行のプルーフ１１６を生成する。正しい実行のプルーフ１１６は、本明細書の他の箇所では、正当性のプルーフと呼ばれることもある。実施形態において、作業者は、コンピュータシステムの１つ以上のプロセッサによって実行されると、コンピュータシステムにＱＡＰの内部回路ワイヤの値を評価させ、ＱＡＰの出力ｙを生成させる命令を含む、ハードウェア及び／又はソフトウェアを備えるコンピュータシステムである。
【００３７】
実施形態において、出力ｙ、内部回路ワイヤの値（又はそのサブセット）及び評価鍵ＥＫは、正当性のプルーフを生成するために使用される。プルーフπをブロックチェーンに格納することができ、作業者が複数の当事者と別個に対話する必要なく、複数の当事者によって確認することができる。このようにして、第４コンピューティングエンティティ（例えば検証者コンピュータシステム）は、公開検証鍵ＶＫ１１４及びプルーフπを使用して、ブロードキャストされたトランザクションを検証することができ、それにより、スマートコントラクトを検証することができる。場合によっては、スマートコントラクトの所有者は、検証が失敗した場合に、ブロードキャストされたトランザクションによって妨害されているデジタル資産を取り戻してもよい。場合によっては、スマートコントラクトの所有者は、プルーフの検証を実行することができる。
【００３８】
一実施形態において、検証鍵１１４及び対応するプルーフ１１６は、上記及び／又は下記で説明される技術に従って生成される。したがって、検証者は、該検証者が、複数の楕円曲線乗算（ｅｌｌｉｐｔｉｃ  ｃｕｒｖｅ  ｍｕｌｔｉｐｌｉｃａｔｉｏｎｓ）（例えば各公開入力変数に対して１つ）及び５つのペアチェックを計算し、５つのペアチェックのうちの１つが、追加のペアリング乗算を含むように、次の検証鍵ＶＫ及びプルーフπを与えられる：
【数２】
2021507562.tif 000004
【００３９】
検証鍵ＶＫ、プルーフπ及び（ａ１，ａ２，．．．，ａＮ）を所与として、t（ｘ）がｐ（ｘ）を割ること、したがって、（ｘＮ＋１，．．．，ｘｍ）＝ｆ（ｘ０，．．．，ｘＮ）であることを確認するために、検証者は次のように進む。まず、すべての３つのα項をチェックする：
ｅ（αｖｒｖＶｍｉｄ（ｓ）Ｐ，Ｑ）＝ｅ（ｒｖＶｍｉｄ（ｓ）Ｐ，αｖＱ）
ｅ（αｗｒｗＷｍｉｄ（ｓ）Ｐ，Ｑ）＝ｅ（αｗＰ，ｒｗＷｍｉｄ（ｓ）Ｑ）
ｅ（αｙｒｙＹｍｉｄ（ｓ）Ｐ，Ｑ）＝ｅ（ｒｙＹｍｉｄ（ｓ）Ｐ，αｙＱ）
ここで、
【数３】
2021507562.tif 000005
【数４】
2021507562.tif 000006
【数５】
2021507562.tif 000007
である。次いで、検証者は、項βをチェックする：
ｅ（ｒｖＶｍｉｄ（ｓ）Ｐ＋ｒｙＹｍｉｄ（ｓ）Ｐ，βＱ）・ｅ（βＰ，ｒｗＷｍｉｄ（ｓ）Ｑ）＝ｅ（Ｚｍｉｄ（ｓ）Ｐ，Ｑ）及び
【数６】
2021507562.tif 000008
である。最後に、検証者は、可分性要件をチェックする：
ｅ（ｒｖＶ（ｓ）Ｐ，ｒｗＷ（ｓ）Ｑ）＝ｅ（ｒｙＹ（ｓ）Ｐ，Ｑ）・ｅ（ｒｙｔ（ｓ）Ｐ，ｈ（ｓ）Ｑ）
ここで、
【数７】
2021507562.tif 000009
【数８】
2021507562.tif 000010
【数９】
2021507562.tif 000011
【数１０】
2021507562.tif 000012
である。
【００４０】
したがって、上述のセクションからの表記及び本開示で説明される例を考えると、検証は、一実施形態によると、以下の要素のペアチェックのセットを含む：
【数１１】
2021507562.tif 000013
【００４１】
図２は、第１コンピューティングエンティティ２０２と第２コンピューティングエンティティ２０４が、２以上の当事者間で共有秘密のべき乗を決定するために使用できる数量を交換するコンピューティング環境２００を図示している。第１コンピューティングエンティティと第２コンピューティングエンティティ２０４は、（図２に図示される水平の矢印の下に図示されるように）同一の共通参照文字列を計算するために使用される数量を交換してよい。一実施形態において、第１コンピューティングエンティティ及び第２コンピューティングエンティティは、図１に関連して説明されたものに従うブロックチェーンネットワークのノードである。少なくとも一実施形態によると、
【数１２】
2021507562.tif 000014
をフィールドにおける関数であるとし、Ｃを対応する演算回路とし、Ｑ＝（ｔ（ｘ）、Ｖ，Ｗ，Ｙ）、サイズｍの対応するＱＡＰ（ｑｕａｄｒａｔｉｃ  ａｒｉｔｈｍｅｔｉｃ  ｐｒｏｇｒａｍ）、次数ｄとする。さらに、
【数１３】
2021507562.tif 000015
を双線形マッピングであるとし、Ｇを
【数１４】
2021507562.tif 000016
のジェネレータとする。一実施形態では、（指数表現とは反対に）加法表現が選択される。一実施形態では、評価鍵及び検証鍵は、ランダムな
【数１５】
2021507562.tif 000017
を選択し、ｒｙ＝ｒｖ・ｒｗ，ｒｖ・Ｇ＝〈ｇｖ〉（一般に：〈ａ〉＝ａ・Ｇ）及び対応して〈ｇｗ〉〈ｇｙ〉を設定して鍵を再構築することによって、選択される：
【数１６】
2021507562.tif 000018
ここで、Ｎ＝Ｎｉｎ＋Ｎｏｕｔ、すなわち、入力と出力の数である。非対称のペアリングを検討する一実施形態では、ペアリングマッピングは、次のように定義される：
【数１７】
2021507562.tif 000019
Ｇｉは
【数１８】
2021507562.tif 000020
のジェネレータであり、ｉ＝１、２である。そのような場合、ＣＲＳはわずかに変化し、ＶＫは以下のようになる：
【数１９】
2021507562.tif 000021
ここで、ｒｙ＝ｒｖ・ｒｗであり、〈ａ〉ｉ＝ａ・Ｇｉである。
【００４２】
示されるように、回路は多項式ｖ、ｗによって記述され、これらの多項式は、それらの回路及び対応するＱＡＰを所有／作成する当事者（例えばスマートコントラクトの所有者）にのみ知られている秘密ｓで評価される。
【００４３】
より正確には、上述のように、クライアントは要素を生成する：
【数２０】
2021507562.tif 000022
【００４４】
一方、提案されるソリューションのセキュリティは、パラメータｓに依拠し、いくつかの実施形態では、残りの（ｒｖ，ｒｗ，αｖ，αｗ，αｙ，β，γ）を公開することは、システムにゼロ知識を提示しない情報及び／又はクライアントが他のエンティティに知らせたくない情報を明らかにする可能性がある。
【００４５】
一実施形態では、作業者が正当性のプルーフを提供することを必要とするソリューションでは、検証鍵に対して正当性のプルーフを確認するためのオペコード（又は同等のもの）が存在してよい。
【００４６】
本開示全体を通して、別段の記載がない限り、本明細書における多項式は、フィールド
【数２１】
2021507562.tif 000023
に対して定義される。したがって、
【数２２】
2021507562.tif 000024
をフィールドとする。したがって、
【数２３】
2021507562.tif 000025
に対する多項式は、
【数２４】
2021507562.tif 000026
によって与えられる：
【数２５】
2021507562.tif 000027
ここで、
【数２６】
2021507562.tif 000028
である。
【００４７】
一実施形態では、共通参照文字列は、形式：
ｖ（ｓ）＝ａ０＋ａ１ｓ＋ａ２ｓ２＋・・・＋ａｎｓｎ
ｗ（ｓ）＝ｂ０＋ｂ１ｓ＋ｂ２ｓ２＋・・・＋ｂｎｓｎ
で表される、秘密ｓで評価される多項式ｖ（ｘ）、ｗ（ｘ）によって表される。
【００４８】
一実施形態において、本明細書で説明される技術は、関連するグループ（例えば楕円曲線点）のジェネレータについて、形式：〈ｖ（ｓ）〉Ｇ＝〈ａ０〉Ｇ＋〈ａ１ｓ〉Ｇ＋〈ａ２ｓ２〉Ｇ＋・・・の楕円曲線点を決定して共有するために利用される。したがって、一実施形態では、本明細書で説明されるシステム及び方法は、任意の整数べき乗ｒについて、ｓｒＧ＝〈ｓｒ〉Ｇを決定して分配するために利用される。
【００４９】
少なくとも一実施形態による、〈ｓｒ〉Ｇを共有して分配するための技術が図２に図示されている。一例として、ｎ＝２の場合が、図２に関連して以下で更に詳細に説明されており、スマートコントラクトの当事者間で秘密のべき乗を共有する非限定的な例と見なされるべきである。さらに、本明細書で説明される様々な実施形態では、閾値に相当するものが予め与えられ、必要な数の参加者が最初に合意すると想定されることに留意されたい。
【００５０】
図２は、少なくとも一実施形態による、２参加者間の場合に共有秘密のべき乗を共有及び分配するための技術を図示している。図２に図示されるように、少なくとも一実施形態によると、正確に２人の当事者が、共有秘密のべき乗を共有する参加者である（すなわち、ｎ＝２の場合）。第１及び第２コンピューティングエンティティは、それぞれ、Ａ及びＢと呼ばれることがある。一実施形態において、Ａ及びＢは、以下の情報を交換してよい：Ａは〈ｐ１（ｘｉ）〉ＧをＢに送信し、代わりに〈ｐ２（ｘｉ）〉Ｇを受け取る（ｉ∈｛１，２｝）。このようにして、双方が計算することができる：
〈ｐ（ｘｉ）〉Ｇ＝〈ｐ１（ｘｉ）＋ｐ２（ｘｉ）〉Ｇ
【００５１】
ラグランジュ補間（ラグランジュ多項式、ｎ．ｄ．）を使用して、ｐを、ｐ（ｘ１）及びｐ（ｘ２）に関して、そして〈ｐ（ｘｉ）〉Ｇによって、拡張〈ｐ（ｘ）〉Ｇにより表すことができる（WP0559を参照されたい）：
【数２７】
2021507562.tif 000029
参加者は、ｐ（ｘ）を再構築することはできないが、交換された点〈ｐｉ（ｘｊ）〉Ｇによって、〈ｐ（ｘ）〉Ｇ（特に〈ｐ（０）〉Ｇ）を再構築することができる。これは、同様に、〈ｐｎ（ｘ）〉Ｇのより高いべき乗についても当てはまる。多項方程式（多項定理、ｎ．ｄ．）の結果として、
【数２８】
2021507562.tif 000030
である。ｍ＝２について、これは次のようになる：
【数２９】
2021507562.tif 000031
次に、以下の項の「タワー」（ｔｏｗｅｒ）が得られる（ここで、ｉ＝１、２）：
【表１】
2021507562.tif 000032
【００５２】
模式的に、交換は（何らかのｘｉについて）以下のように見えることがある：
【表２】
2021507562.tif 000033
【００５３】
この交換の後（特定の予め予定された変換に続いて）、両当事者は〈ｐｎ（ｘｊ）〉Ｇ、特に〈ｐｎ（０）〉Ｇ＝〈ｓｎ〉Ｇを計算することができる。
【００５４】
図３は、第１コンピューティングエンティティ３０２と第２コンピューティングエンティティ３０４が、図１に関連して説明されるもののようなプロトコルにゼロ知識を提示するパラメータのセットを交換する、コンピューティング環境３００を図示している。様々な実施形態によると、公開検証鍵は、以下の形式を持ってよい：
【数３０】
2021507562.tif 000034
【００５５】
一方、提案されるソリューションのセキュリティは、パラメータｓに依拠し、いくつかの実施形態では、残りの（ｒｖ，ｒｗ，αｖ，αｗ，αｙ，β，γ）を公開することは、システムにゼロ知識を提示しない情報及び／又はクライアントが他のエンティティに知らせたくない情報を明らかにする可能性がある。したがって、一実施形態では、検証鍵３０６を生成するために使用される残りのパラメータの一部又はすべてが、図３に関連して説明される技術を使用して共有される。
【００５６】
一実施形態において、多項式は、例えば図１、図２及び図４に関連して説明されるもののような、本開示の他の箇所で説明される技術に従って、第１コンピューティングエンティティ３０２と第２コンピューティングエンティティ３０４（それぞれＡ及びＢと呼ばれることもある）との間で交換される。したがって、一実施形態において、第１コンピューティングエンティティ３０２は、楕円曲線点のセット
【数３１】
2021507562.tif 000035
を計算して第２コンピューティングエンティティ３０４に共有し、第２コンピューティングエンティティ３０４は、楕円共有点のセット
【数３２】
2021507562.tif 000036
を計算して第１コンピューティングエンティティ３０２に共有する。加えて、検証鍵３０６を生成するために使用される他のパラメータは、平文フォーマットでは通信チャネルを介して明らかにされず、代わりに、以下で説明される技術を使用して伝送されてよい。
【００５７】
一実施形態によると、Ｇｉを
【数３３】
2021507562.tif 000037
のジェネレータ、ｉ＝１，２であるとし、ｐ＝ｖ，ｗ，ｙについて、〈ｐｋ（ｓ）〉ｉ＝ｒｐ・ｐｋ（ｓ）・Ｇｉとする。さらに、一実施形態では、
【数３４】
2021507562.tif 000038
が共有され、他のパラメータは、該パラメータの秘密性（例えば暗号化又は他の隠蔽技術）を保証する方法で伝搬される。参加者のいずれかは、反対に、パラメータ
【数３５】
2021507562.tif 000039
を生成し、それらを、他のオフライン又はオンライン（例えばオンチェーン）のものに転送してよいことに留意されたい。前者、すなわち、他のパラメータの秘密性を保証することに関して、様々な技術が利用されてよい。例えばシャミアの秘密分散法（Ｓｈａｍｉｒ’ｓ  Ｓｅｃｒｅｔ  Ｓｈａｒｉｎｇ  Ｓｃｈｅｍｅ：４Ｓ）を使用することによって、要素〈αｖ〉２，〈αｗ〉２，〈αｗ〉１，〈αｙ〉２（及び場合によっては、実装／プロトコルに依存して〈β〉１，〈β〉２）を共有し、かつ／又はｒｖ，ｒｗ，β，γについてディフィー・ヘルマンのような秘密生成を使用する。
【００５８】
一実施形態において、要素〈αｖ〉２，〈αｗ〉２，〈αｗ〉１，〈αｙ〉２，〈β〉１，〈β〉２又はこれらの何らかの組合せは、〈ａ〉ｉ＝ａ・Ｇｉの形式のものである。ｓの場合と同様に、ｉは、多項式ｑｉを生成し、それをｘｊ、ｊ∈｛１，．．．，ｍ｝で評価し、参加者ｊと対応するｑｉ（ｘｊ）を共有する。各参加者は、
【数３６】
2021507562.tif 000040
特にｑ（０）・Ｇｉ＝〈ｑ（０）〉ｉ
を決定することができ、ここで、ｑ（０）は、αｖ，αｗ，αｙ，β又はその何らかの組合せとすることができ、その特定の組合せは、ｚｋ_ＳＮＡＲＫｓプロトコルのようなプロトコル／変換に基づいてよい。
【００５９】
一実施形態において、αパラメータは、楕円曲線点によって共有され、一方、他のパラメータはスカラー値によってなされる。そのような値について、少なくとも一実施形態によると、パラメータ自体を共有する必要なく、ディフィー・ヘルマン法（Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎ  ｓｃｈｅｍｅ）を使用して２つのコンピューティングエンティティ間でスカラーパラメータを共有する。したがって、一実施形態によると、Ｐ＝｛ｔ１，．．．，ｔＮ｝をＮパラメータのセットとする。一実施形態では、Ａ及びＢが、法（ｍｏｄｕｌｕｓ）μ及びジェネレータγの乗法群Ｉ’を使用して合意しており、参加者（Ａ及びＢ）は以下のステップに続くと想定する（ここでは指数表現が説明的例として使用されるが、他の適切な表現が利用されてよい）：各ｉ∈｛１，．．．，Ｎ｝について、第１及び第２コンピューティングエンティティは、それぞれ、（秘密の）ランダム数ｖＡ，ｉ、ｖＢ，ｉを作成し、双方が（公開）要素：
【数３７】
2021507562.tif 000041
を導出する。コンピューティングエンティティは、次いで
【数３８】
2021507562.tif 000042
を交換し、
【数３９】
2021507562.tif 000043
をそれぞれ計算する。したがって、パラメータは、
【数４０】
2021507562.tif 000044
を設定される。
【００６０】
したがって、上記技術は、第１及び第２コンピューティングエンティティが、パラメータを交換する必要なく、代わりに、
【数４１】
2021507562.tif 000045
を交換することによって、パラメータｔｉを共有することを証明した。少なくとも一実施形態によると、参加者の数は、少なくとも１つのパラメータが前述の方法で交換された結果として、ｎ＝２に限定されることに留意されたい。
【００６１】
図４は、２当事者の共通参照文字列（ＣＲＳ）と、対応する正当性のプルーフ（ＰＯＣ）又は正しい実行のプルーフに基づくプロトコルの図４００を図示している。図４００は、第１コンピューティングエンティティ４０２、第２コンピューティングエンティティ４０４及び第３コンピューティングエンティティ４０６を図示しており、第１コンピューティングエンティティ４０２及び第２コンピューティングエンティティ４０４は一緒に、スマートコントラクトの実行後に第３コンピューティングエンティティ４０６によってアンロックできるスマートコントラクトに対する寄与を行う。一実施形態において、プロトコルは、少なくとも部分的にブロックチェーンネットワークを使用して実装される。
【００６２】
本開示によると、（例えば図４に関連して）更に詳細に説明されるように、２参加者Ａ及びＢのためのスキーム及びプロトコルが、共有秘密を生成し、したがって、関連する回路の正しい実行を確認するために使用できる共有の共通参照文字列（ＣＲＳ）を生成するために利用されてよい。一実施形態において、スキームは、最初にＡとＢの間で、次に、Ａ＋Ｂ（又はいずれか）と、Ａ又はＣの少なくとも一方の代わりに計算タスクを実行する作業者Ｃとの間でのデータのオフチェーン交換を想定している。作業者Ｃに計算タスク（例えばスマートコントラクトの実行）を実行させるために、Ａ及びＢは双方、作業者Ｃが正当性のプルーフを提供し、資金をアンロックするために正しい検証鍵（ＶＫ）の所持を証明することを要するトランザクション（特定のＰ２ＳＨタイプのリディームスクリプト（ｒｅｄｅｅｍ  ｓｃｒｉｐｔ）を含んでも含まなくてもよい）に署名する。
【００６３】
本開示で提示されるプロトコルを実装するための技術は、いくつかの実施形態では、（例えば既にサポートされている既存のコマンドを使用して、ビットコインベースのブロックチェーン上に実装され得る）既存のブロックチェーンネットワークに対するいかなるプロトコルの変更も必要としない。いくつかの実施形態では、ビットコインプロトコルによってサポートされる既存のコマンドのセットに対する拡張も本明細書で議論される−拡張は、スマートコントラクトの実行の効率を改善することや、スマートコントラクトのサイズを減らすこと（正しく動作するためにブロックチェーンネットワークのノードによって必要とされるストレージ空間の量を減らすことができる）等といった、様々な利点を有し得る新たなコマンド（例えば新たなオペコード）を含んでもよい。いくつかの実施形態において、ブロックチェーンに対してスマートトランザクションを確認するコストは、スマートコントラクトのサイズに少なくとも部分的に基づく。
【００６４】
一実施形態において、楕円曲線点及び共通参照文字列に関連する他のデータの交換及び移転は、オフチェーンで転送される。一実施形態において、検証鍵は最終的に、作業者Ｃとスマートコントラクトの評価を望んでいる２当事者（Ａ及びＢ）によって実行される作業（例えばスマートコントラクトの実行）のために、デジタル資産の交換を介してブロードキャストされるか、他の方法でオンチェーンに利用可能にされる。本明細書で説明されるように、いくつかのスキームが可能である。例えばＡ及びＢは、ロッキングトランザクションを準備するときに、双方がＶＫ又はＶＫのハッシュを供給しても、しなくてもよい。言い換えると、一実施形態では、キャパシティ集中型のワークロードの大部分はオフチェーンで行われる。
【００６５】
一実施形態において、プロトコルは、図４に図示される点線によって示されるように、オフチェーンとオンチェーンコンポーネントの双方を含む。オフチェーンコンポーネントは、ブロックチェーン台帳にデータを格納することなく起こり得る、データ及び情報の通信及び交換を含んでよい。例えばプロトコルのオフチェーンコンポーネントは、ソースと宛先との間でのＩＰパケットの交換を含んでよい（例えば第１コンピューティングエンティティ４０２は、第１パラメータのセットを宛先、すなわち第２コンピューティングエンティティ４０４に送信するソースである）。例えばプロトコルのオンチェーンプロトコルは、ブロックチェーンネットワークのノードに利用可能にされるブロックチェーン台帳にデータをボロードキャストすることを含んでよい。
【００６６】
一実施形態において、第１コンピューティングエンティティ４０２は、第１多項式に少なくとも部分的に基づいて、楕円曲線点のセット
【数４２】
2021507562.tif 000046
を計算する。第１コンピューティングエンティティ４０２は、楕円曲線点のセットの少なくとも一部を含む第２コンピューティングエンティティ４０４にデータを送信してよい。例えば第１コンピューティングエンティティ４０２は、楕円曲線点の完全なセットを送信してもよい。第２の例として、第１コンピューティングエンティティ４０２は、楕円曲線点のサブセット
【数４３】
2021507562.tif 000047
を送信してもよい。
【００６７】
いくつかの実施形態において、共有秘密ｓの秘密性を維持するためには必要とされないが、システムにゼロ知識を提示するために必要とされる可能性がある、追加のデータが送信される。例えば
【数４４】
2021507562.tif 000048
又はその何らかの組合せも計算され（例えば図３に関連して上述したように）、共通参照文字列を決定することの一部として使用することができる追加のパラメータを生成してもよい。一実施形態において、
【数４５】
2021507562.tif 000049
は、スカラー値のセットである。一実施形態において、ｑ１，Ｉ（Ｉ＝ｖ，ｗ，ｙ）は楕円曲線点のセットを指す。
【００６８】
一実施形態において、第２コンピューティングエンティティ４０４は同様に、第１コンピューティングエンティティ４０２によって使用されたものとは異なり得る多項式に基づいて、楕円曲線点のセット
【数４６】
2021507562.tif 000050
を計算する。第２コンピューティングエンティティ４０４は、生成された楕円曲線点のサブセット
【数４７】
2021507562.tif 000051
を第１コンピューティングエンティティ４０２に送信してよい。加えて、一実施形態では、
【数４８】
2021507562.tif 000052
又はその何らかの組合せのようなオプションのパラメータが交換されてよい。このようなオプションのパラメータは、共有秘密ｓの秘密性を維持するために必ずしも必要ではないが、プロトコルがゼロ知識であることを保証するため利用され得る。
【００６９】
一実施形態において、交換された数量を、第１コンピューティングエンティティ４０２と第２コンピューティングエンティティ４０４の双方により、同一の共通参照文字列を計算するために利用することができる。第３コンピューティングエンティティ４０６は、後に正しい検証鍵の所有を証明しなければならないので、それらは、第３コンピューティングエンティティ（例えば作業者）に共通参照文字列を提供しても、しなくてもよい。第１及び第２コンピューティングエンティティによる同じ共通参照文字列の決定は、オフチェーンで実行されてよい。
【００７０】
プロトコルを続けると、一実施形態によると、第１及び第２コンピューティングエンティティは、それらがスマートコントラクトの実行のために比例する寄与を行うトランザクションに合意する。一実施形態において、第１及び第２コンピューティングエンティティは寄与の割合に合意し、各々、スマートコントラクトに対して妨害され、かつスマートコントラクトの実行時に第３コンピューティングエンティティによってアンロックできる、トランザクション入力を提供する。これは、第１及び第２コンピューティングエンティティが両方とも同じアドレス（Ｃのアドレス）に資金を転送する場合、Ｐ２ＳＨ（ｐａｙ−ｔｏ−ｓｃｒｉｐｔ−ｈａｓｈ）タイプの合意であってよく、そうでなくてもよい。Ｐ２ＳＨタイプのスクリプトは、検証鍵の要素又は検証鍵のハッシュ値、すなわち、ｈｉ＝ＨＡＳＨ（ＶＫｉ）を含んでもよく、含まなくてもよい。一実施形態において、鍵はチャンクに分割されている。スマートコントラクトは、第１及び第２コンピューティングエンティティによって合意された比で支払われる作業者報酬として機能する、第１コンピューティングエンティティ４０２によって寄与される第１トランザクション入力と第２コンピューティングエンティティ４０４によって寄与される第２トランザクション入力とを有する第１トランザクション４１０として、ブロックチェーンにブロードキャストされてよい。
【００７１】
一実施形態において、作業者とも呼ばれる第３コンピューティングエンティティ４０６は、英国特許出願第1719998.5号及び／又は英国特許出願第1720768.9号におけるプロトコルに従って、第２トランザクション４１０内の報酬をアンロックし、第３コンピューティングエンティティ４０６は、作業（回路の正しい実行）のため報酬をアンロックし、そのようにする際に、（ａ）正しい検証鍵と、（ｂ）正当性の有効なプルーフを所有していることを証明する。検証は、別のコンピュータシステム（例えば検証者であるブロックチェーンのノード）によって及び／又はスマートコントラクトへの参加者であるコンピューティングエンティティの双方又はいずれかによって実行されてよい。
【００７２】
図５は、一実施形態に従って、検証鍵と評価鍵を含む２当事者の共通参照文字列を生成するためのプロセス５００の説明的例を示している。プロセス５００の一部又はすべて（あるいは本明細書で説明される任意の他のプロセス又はその変形及び／又は組合せ）が、コンピュータ実行可能命令を用いて構成される１つ以上のコンピュータシステムの制御下で実行されてよく、ハードウェア、ソフトウェア又はその組合せによって１つ以上のプロセッサ上で一緒に動作するコード（例えばコンピュータ実行可能命令、１つ以上のコンピュータプログラム又は１つ以上のアプリケーション）として実装されてよい。コードは、例えば１つ以上のプロセッサによって実行可能な複数のコンピュータ読取可能命令を含むコンピュータプログラムの形式で、コンピュータ読取可能記憶媒体上に格納されてよい。コンピュータ読取可能記憶媒体は、非一時的コンピュータ読取可能媒体であってよい。いくつかの実施形態において、プロセス５００を実行するために使用可能なコンピュータ読取可能命令の少なくとも一部は、単に一時的信号（例えば伝搬する一時的電気又は電磁気伝送）を使用して格納されない。非一時的コンピュータ読取可能媒体は、一時的信号のトランシーバ内部に非一時的データ記憶回路（例えばバッファ、キャッシュ及びキュー）を含んでよい。
【００７３】
一実施形態において、プロセス５００を実行するシステムは、システム及びスマートコントラクトの当事者によって同一の共通参照文字列を計算するために使用できる情報を少なくとも確立するために、プロセスを実行するスマートコントラクトに対する当事者であるコンピューティングエンティティである。プロセス５００に関連して説明される共通参照文字列は、例えば図１〜図４に関連して議論されるものに従うものであってよい。一実施形態において、共通参照文字列は：
ｖ（ｓ）＝ａ０＋ａ１ｓ＋ａ２Ｓ２＋・・・＋ａｎｓｎ
ｗ（ｓ）＝ｂ０＋ｂ１ｓ＋ｂ２Ｓ２＋・・・＋ｂｎｓｎ
の形式の秘密ｓで評価される多項式ｖ（ｘ）、ｗ（ｘ）によって表される。
【００７４】
一実施形態において、第１コンピューティングエンティティは、楕円曲線値の第１セットを生成するために、第１多項式を決定する５０２。一実施形態において、システムは、関連するグループの（例えば楕円曲線点の）何らかのジェネレータＧについて、〈ｖ（ｓ）〉Ｇ＝〈ａ０〉Ｇ＋〈ａ１ｓ〉Ｇ＋〈ａ２ｓ２〉Ｇ＋・・・，の形式の楕円曲線点を生成する。特段の記載がない限り、このプロセス５００における多項式は、フィールド
【数４９】
2021507562.tif 000053
に対して定義される。したがって、
【数５０】
2021507562.tif 000054
をフィールドであるとする。次いで、
【数５１】
2021507562.tif 000055
に対する多項式が、
【数５２】
2021507562.tif 000056
及び
【数５３】
2021507562.tif 000057
によって与えられ、ここで、
【数５４】
2021507562.tif 000058
である。楕円曲線点のセットは、
【数５５】
2021507562.tif 000059
として表されてよい。
【００７５】
第１コンピューティングエンティティは、楕円曲線点のセットを第２コンピューティングエンティティに利用可能にしてよい５０４。一実施形態において、システムは、楕円曲線点のセット全体を第２コンピューティングエンティティに利用可能にする必要はなく、むしろ一実施形態では、システムは、楕円曲線点のサブセット
【数５６】
2021507562.tif 000060
を伝送する。
【００７６】
例えば少なくとも一実施形態によると、ｎ＝２の場合、第１コンピューティングエンティティは、
【数５７】
2021507562.tif 000061
を計算し、第２コンピューティングエンティティと
【数５８】
2021507562.tif 000062
を共有する。残りの数量
【数５９】
2021507562.tif 000063
は、第１コンピューティングエンティティによって、共通参照文字列を計算するために利用されてよい。
【００７７】
第２コンピューティングエンティティもスマートコントラクトに対する当事者であるが、同じ入力点に対する楕円曲線点のセットを別個に生成（例えば楕円曲線点
【数６０】
2021507562.tif 000064
を生成）し、生成された点のすべて又は一部を第１コンピューティングエンティティに提供してよい。第１コンピューティングエンティティは、第２コンピューティングエンティティから、該第２コンピューティングエンティティによって生成された楕円曲線点の一部又はすべてに対応する楕円曲線点の第２セットを受け取ってよく５０６、ここで、サブセットは、本開示の他の箇所で（例えば図２及び図６に関連して）説明される技術に基づいて決定されてよい。
【００７８】
一実施形態において、システムは、楕円曲線点の第１及び第２セットの少なくとも一部に基づいて、同一の共通参照文字列を決定する５０８。例えば楕円曲線点の交換後、ラグランジュ補間を利用して、ｐ（ｘ１）及びｐ（ｘ２）に関してｐを表してよい。一実施形態において、スマートコントラクトの両当事者は、交換された点〈ｐｉ（ｘｊ）〉Ｇによって、べき乗〈ｐｎ（ｘ）〉Ｇ（特に、〈ｐｎ（０）〉Ｇ＝〈ｓｎ〉Ｇ）を再構築することができる。べき乗〈ｐｎ（ｘ）〉Ｇについて、上述の多項方程式が利用されてよい：
【数６１】
2021507562.tif 000065
【００７９】
例えばｍ＝２では、これは次のようになる：
【数６２】
2021507562.tif 000066
【００８０】
一実施形態では、追加のパラメータ（例えばスカラー値及び／又は楕円曲線点）が、例えば図３に関連して説明された方法等で第１コンピューティングエンティティと第２コンピューティングエンティティとの間で交換され、それらのパラメータは、共有秘密の累乗〈ｓｎ〉Ｇとともに、検証鍵及び／又は評価鍵を計算するために利用される。一実施形態では、パラメータは、暗号化に対する依存なしに、かつ／又は機密性の暗号的に検証可能な保証を提供する通信チャネルに対する依存なしに交換される。
【００８１】
一実施形態において、第１及び第２コンピューティングエンティティはトランザクションに合意し、スマートコントラクトを正しく実行する第３コンピューティングエンティティ（例えば作業者）によってアンロックできる、スマートコントラクトのそれぞれのトランザクション入力に対する寄与を各々作成する５１０。一実施形態において、コンピューティングエンティティのいずれかが、比例作業者フリー（ｐｒｏｐｏｒｔｉｏｎａｔｅ  ｗｏｒｋｅｒ  ｆｅｅ）を提供する。Ｐ２ＳＨタイプの合意が存在することも、存在しないこともあるが、この合意では、その双方が、同じアドレス（例えば作業者用のアドレス）に寄与する。一実施形態において、Ｐ２ＳＨスクリプトは、検証鍵の要素又は検証鍵のハッシュ値を含む。例えば英国特許出願第1719998.5及び／又は英国特許出願第1720768.9に関連して説明される技術を使用することにより、作業者（例えば第３コンピューティングエンティティ）は、該作業者が正しい検証（ｃｏｒｒｅｃｔ  ｖｅｒｉｆｉｃａｔｉｏｎ）を有しており、かつ正当性の有効なプルーフを提供することの計算的に検証可能な証明書を提供することによって、寄与をアンロック（例えばアンロック）してよい。
【００８２】
図６は、少なくとも一実施形態に従って、ｎ当事者（例えばｎ＞２）の間で共有秘密のべき乗を共有するためのプロセス６００の説明的例を示している。プロセス６００の一部又はすべて（あるいは本明細書で説明される任意の他のプロセス又はその変形及び／又は組合せ）が、コンピュータ実行可能命令を用いて構成される１つ以上のコンピュータシステムの制御下で実行されてよく、ハードウェア、ソフトウェア又はその組合せによって１つ以上のプロセッサ上で一緒に動作するコード（例えばコンピュータ実行可能命令、１つ以上のコンピュータプログラム又は１つ以上のアプリケーション）として実装されてよい。コードは、例えば１つ以上のプロセッサによって実行可能な複数のコンピュータ読取可能命令を含むコンピュータプログラムの形式で、コンピュータ読取可能記憶媒体上に格納されてよい。コンピュータ読取可能記憶媒体は、非一時的コンピュータ読取可能媒体であってよい。いくつかの実施形態において、プロセス６００を実行するために使用可能なコンピュータ読取可能命令の少なくとも一部は、単に一時的信号（例えば伝搬する一時的電気又は電磁気伝送）を使用して格納されない。非一時的コンピュータ読取可能媒体は、一時的信号のトランシーバ内部に非一時的データ記憶回路（例えばバッファ、キャッシュ及びキュー）を含んでよい。一実施形態では、閾値に相当するもの（equivalent）が事前に与えられ、必要な数の参加者が最初に合意すると想定される。これは、シャミアの秘密分散法（４Ｓ）で説明されるような様々な既存の技術とは異なり、秘密の共有は、所与の閾値に到達する制限下でのみ機能する。
【００８３】
秘密の共有は、様々な実施形態によると、任意の数の当事者に対して有効である。一実施形態において、本開示で説明される形式主義（ｆｏｒｍａｌｉｓｍ）の大部分を、複数当事者（ｎ＞２）シナリオに適用することができる。いくつかの実施形態において、複数当事者システム（ｎ＞２）は、特定の他のパラメータ（例えば以下の非楕円曲線（例えばスカラー）パラメータ：ｒｖ、ｒｗ、αｖ、αｗ、αｙ、β、γの一部又はすべて）を隠す必要がない。しかしながら、これらのパラメータが、プロトコルに従ってプライベートのままである場合、例えば図３に関連して説明されるもののような異なるアプローチを利用して、ｒｖ、ｒｗのようなパラメータを隠してもよい。
【００８４】
一実施形態において、すべての参加者は、有限フィールド要素を他の有限フィールド要素にマップする関数
【数６３】
2021507562.tif 000067
に合意６０２し、かつ／又はこれに対するアクセスを有する。関数は、一実施形態では、グループのジェネレータの係数／指数として機能する。例示の目的のために、我々が関心のある関数を、テイラー級数の一般化によって多項式で表すことができるので、以下で説明される実施形態は多項式に焦点を当てる。特に、様々な実施形態において、関与する当事者は、それらの周囲の間で値を渡すことなく、同じ値で関数を評価する。例えば次数１の多項式の場合、これは、シャミアの秘密分散法を使用することになる。より高い次数（ｎ＞１）では、当事者は、
ｆ（ｓ）＝ａ０＋ａ１ｓ＋ａ２ｓ２＋・・・＋ａｎｓｎ
の形式の表現を取り扱っている。
【００８５】
したがって、本明細書で説明される技術を利用して、すべての参加者が同じ〈ｆ（ｓ）〉Ｇを有することを保証することができる。例えば少なくとも一実施形態に従って説明されるプロトコルでは、〈ｆ（ｓ）〉Ｇ＝〈ａ０〉Ｇ＋〈ａ１ｓ〉Ｇ＋〈ａ２Ｓ２〉Ｇ＋・・・，なので、任意の整数べき乗ｒについて、〈ｓｒ〉Ｇの形式で点を公的に分配することによって、同じＥＱ＿ＦＳＧを、２人以上の参加者（すなわち、ｎ＞１）の間で共有することができ、ここで、Ｇは、議論されているグループの（例えば楕円曲線点の）ジェネレータである。
【００８６】
一実施形態において、各参加者は、ｘｉ≠０∀ｉの点のセット（ｘ１，ｘ２，．．．）で評価される多項式を生成することができ６０４、点はすべての当事者に知られ得る。一実施形態において、各参加者の多項式の和は、（マスター）多項式を構成し、そのｙ軸との交差は秘密であり、すなわち、
【数６４】
2021507562.tif 000068
ただし、Ｐ（０）＝ｓであり、ここで、ｍは参加者の数である。上述のｙ軸との交差は、交点と呼ばれてよい。
【００８７】
ｓを確立するために、各参加者は、異なる点（ｘ１，ｘ２，．．．）で評価された、対応する多項式を共有する６０６。より具体的には、参加者ｉは、ｉ，ｊ∈｛１，．．．，ｍ｝についてｐｉ（ｘｊ）を作成／計算し、〈ｐｉ（ｘｊ）〉Ｇをｊに送り出す。これらの数量が共有されると、各参加者は、共有秘密の累乗ｓｒを計算するか、他の方法で決定することができる６０８。
【００８８】
ｓｒを検討するとき、これは、
【数６５】
2021507562.tif 000069
の表現を共有することになるので、もう少し精査する必要がある。
【００８９】
〈ｐｉ（ｘｊ）〉Ｇのべき乗を計算することができない可能性がある。なぜなら、ジェネレータのべき乗は一般的に定義されていないからである。しかしながら、すべての参加者は、交換された〈ｐｉ（ｘｊ）〉Ｇによって〈ｓ〉Ｇを推論することができるので、（マスター多項式は、一般に、ラグランジュ補間（ラグランジュ多項式、ｎ．ｄ．）によって構築できるので）ラグランジュ補間多項式Ｌ（ｘ）のべき乗を検査することによって開始することが可能である。ラグランジュ補間を
【数６６】
2021507562.tif 000070
と書くことができ、ここで、
【数６７】
2021507562.tif 000071
であり、したがって、
【数６８】
2021507562.tif 000072
であり、ここで、
【数６９】
2021507562.tif 000073
は、多項係数（多項定理、ｎ．ｄ．）である。したがって、ｌｊ（ｘ）多項式を、各参加者によって独立に計算することができる。次に、各参加者は、
【数７０】
2021507562.tif 000074
を計算することができるので、
【数７１】
2021507562.tif 000075
となり、これは、（多項拡張を使用して）
【数７２】
2021507562.tif 000076
と書き直すことができる。
【００９０】
これは、（多項式ｐｉの所有者／作成者である）参加者ｉが、参加者ｊに〈ｐｉ（ｘｊ）〉Ｇのべき乗、すなわち、セット：
【数７３】
2021507562.tif 000077
を提供することができることを意味する。
【００９１】
これは、参加者ｊが、
【数７４】
2021507562.tif 000078
（及び同様に、
【数７５】
2021507562.tif 000079
）等を計算することを可能にする。一実施形態において、参加者は、
【数７６】
2021507562.tif 000080
の形式における表現を計算する。
【００９２】
少なくとも一実施形態による、参加者が楕円曲線を使用し、Ｇが、対応する掛け算表現におけるジェネレータである例を考える。２参加者Ａ及びＢの場合、Ａは〈ｐ１（ｘ２）〉ＧをＢに送信し、代わりに〈ｐ２（ｘ１）〉Ｇを受け取る。したがって、参加者Ａは、
〈ｐ（ｘ１）〉Ｇ＝〈ｐ１（ｘ１）＋ｐ２（ｘ１）〉Ｇ
を計算することができ、同様に、参加者Ｂは、
〈ｐ（ｘ２）〉Ｇ＝〈ｐ１（ｘ２）＋ｐ２（ｘ２）〉Ｇ
を計算することができる。
【００９３】
ラグランジュ補間を使用して、ｐ（ｘ１）及びｐ（ｘ２）に関してｐを表現することができる：
【数７７】
2021507562.tif 000081
【００９４】
各参加者は、交換された点〈ｐｉ（ｘｊ）〉Ｇによって、〈ｐ（ｘ）〉Ｇ（特に〈ｐ（０）〉Ｇ）を再構築することができる。〈ｐｎ（ｘ）〉Ｇのより高いべき乗について、以前のセクションからの多項方程式が利用されてよい：
【数７８】
2021507562.tif 000082
【００９５】
ｍ＝２について、これは次のようになる：
【数７９】
2021507562.tif 000083
【００９６】
この交換の後（特定の予め予定された変換に続いて）、両当事者は〈ｐｎ（ｘｊ）〉Ｇ、特に〈ｐｎ（０）〉Ｇ＝〈ｓｎ〉Ｇを計算することができる。
【００９７】
プロセス６００によるプロトコルが、以下で説明される。各参加者は、
【数８０】
2021507562.tif 000084
の形式の式を取得できる必要があるので、点を交換するときに、順序付け（ｏｒｄｅｒｉｎｇ）が必要となることがある。ここで、我々はそのようなソリューションを説明する。
【００９８】
一般性を失うことなく、少なくとも一実施形態によると、参加者１は、第１楕円曲線点を提示するものである。プロトコルは、一実施形態では、以下のステップに従う：
１．参加者１は、
【数８１】
2021507562.tif 000085
をｉ≠１のすべての参加者に分配し、ここで、ｋ１＝１，．．．，ｎ及びｊ＝１，．．．，ｍであり、ｍは、ここでは参加者の数である。
２．参加者２は、、ｋ１＝０，．．．，ｎ−１、ｋ２＝１，．．．，ｎ及びｊ＝１，．．．，ｍについて、
【数８２】
2021507562.tif 000086
をｉ≠２のすべての参加者に分配する。
３．参加者３は、、ｋ１＝０，．．．，ｎ−１、ｋ２＝０，．．．，ｎ−１、ｋ３＝１，．．．，ｎ及びｊ＝１，．．．，ｍについて、
【数８３】
2021507562.tif 000087
をｉ≠３のすべての参加者に分配する。
４．  ．．．（各参加者について同様である）。
【００９９】
シーケンス内のｌ番目の参加者は、ｉ∈｛１，．．．，ｌ−１｝に対するｋｉ＝０，．．．，ｎ−１、ｋｌ＝１，．．．，ｎ及びｊ＝１，．．．，ｍについて、
【数８４】
2021507562.tif 000088
をすべてのｉ≠ｌに分配する。最後の参加者ｍが、彼／彼女の点を分配するとき、すべての参加者は、〈ｓｎ〉Ｇ＝〈ｐｎ（０）〉Ｇを計算するために、必要なコンポーネントを有する。
【０１００】
一実施形態において、プロセス６００は、形式
【数８５】
2021507562.tif 000089
の点のセットを交換する複数のｍ参加者（例えば２人より多くの参加者）を含み、ここで、点は、各参加者によって〈ｐｋ（ｘｊ）〉Ｇを計算するために使用される。参加者は、次いで〈ｐｋ（ｘｊ）〉Ｇをラグランジュ補間とともに使用して、〈ｐｋ（ｘ）〉Ｇ及び特に〈ｓｋ〉Ｇ＝〈ｐｋ（０）〉Ｇを取得し得る。一実施形態において、点は、楕円曲線点であり、ｘｊ≠０∀ｊである。
【０１０１】
本明細書及び図面は、したがって、限定的な意味ではなく、例示的なもの見なされるべきである。しかしながら、特許請求の範囲に記載される本発明の範囲から逸脱することなく、様々な修正及び変更がそれに行われてもよいことは明らかである。同様に、他の変形も本開示の範囲内である。したがって、開示される技術は、様々な修正及び代替的構造の影響を受けやすいが、その特定の例示的実施形態が図面に示され、上記に詳細に説明されている。しかしながら、開示される１つ又は複数の特定の実施形態に本発明を限定する意図はなく、反対に、添付の特許請求の範囲内で定義される本発明の範囲内にある、すべての修正、代替的構造及び均等物を網羅するよう意図されることを理解されたい。
【０１０２】
「セット」（例えば「アイテムのセット」）又は「サブセット」という用語の使用は、特段の記載がない限り又は文脈によって矛盾しない限り、１つ以上のメンバを含む、空でない集合として解釈されるべきである。さらに、特段の記載がない限り又は文脈によって矛盾しない限り、対応するセットの「サブセット」という用語は、必ずしも、対応するセットの正確なサブセットを示さないが、サブセット及び対応するサブセットは等しくてもよい。
【０１０３】
「Ａ、Ｂ、及びＣのうちの少なくとも１つ」又は「Ａ、Ｂ及びＣのうちの少なくとも１つ」という形の句のような連結語は、特段の記載がない限り又は文脈によって明らかに矛盾しない限り、アイテム、用語等がＡ又はＢ又はＣのいずれか、あるいはＡ及びＢ及びＣのセットのうちの任意の空でないサブセットであり得ることを示すために、一般的に使用されるような文脈で理解される。例えば３つのメンバを有するセットの説明的例では、「Ａ、Ｂ、及びＣのうちの少なくとも１つ」及び「Ａ、Ｂ及びＣのうちの少なくとも１つ」という連結句は、以下のセット：すなわち、｛Ａ｝、｛Ｂ｝、｛Ｃ｝、｛Ａ，Ｂ｝、｛Ａ，Ｃ｝、｛Ｂ，Ｃ｝、｛Ａ，Ｂ，Ｃ｝のいずれかを指す。したがって、そのような連結語は、一般に、特定の実施形態が、Ａのうちの少なくとも１つ、Ｂのうちの少なくとも１つ及びＣのうちの少なくとも１つが各々提示されること要することを暗示するように意図されていない。さらに、特段の記載がない限り又は文脈から明らかでない限り、「基づいて」という句は、「のみに基づいて」ではなく、「少なくとも部分的に基づいて」を意味する。
【０１０４】
説明されるプロセスのオペレーションは、特段の記載がない限り又は文脈によって明らかに矛盾しない限り、任意の適切な順序で実行され得る。説明されるプロセス（又はその変形及び／又は組合せ）を、実行可能命令とともに構成される１つ以上のコンピュータシステムの制御下で実行することができ、ハードウェア又はその組合せによって１つ以上のプロセッサ上で集合的に動作するコード（例えば実行可能命令、１つ以上のコンピュータプログラム又は１つ以上のアプリケーション）として実装することができる。いくつかの実施形態において、コードを、例えば１つ以上のプロセッサによって実行可能な複数の命令を含むコンピュータプログラムの形で、コンピュータ読取可能記憶媒体上に格納することができる。いくつかの実施形態において、コンピュータ読取可能記憶媒体は非一時的である。
【０１０５】
提供される任意の及びすべての例又は例示的言語（例えば「のような」）の使用は単に、本発明の実施形態をよりよく説明するように意図されるものにすぎず、別段の請求がない限り、本発明の範囲に対する限定を課するものではない。本明細書におけるいかなる言語も、いずれかの特許請求されていない要素を、本発明の実施に必須であるものとして示すように解釈されるべきではない。
【０１０６】
本発明を実行するために本発明者らに知られているベストモードを含め、本開示の実施形態が説明されている。これらの実施形態の変形は、前述の説明を読むと、当業者に明らかになるであろう。本発明者らは、当業者がそのような変形を適切に使用することを期待し、本発明者らは、本発明の実施形態が、具体的に説明されるもの以外の他の方法で実施されることを意図している。したがって、本開示の範囲は、適用可能な法律で許容されるように、添付の特許請求の範囲に記載される主題のすべての修正及び均等物を含む。さらに、そのすべての可能な変形における上述の要素の任意の組合せは、特段の記載がない限り又は文脈によって明らかに矛盾しない限り、本開示の範囲によって包含される。
【０１０７】
引用された刊行物、特許出願及び特許を含むすべての参照文献は、各参照文献が、参照によって個々に具体的に組み込まれることが示され、その全体が説明されている場合と同程度に、参照によって組み込まれる。
【０１０８】
上述の実施形態は、本発明を限定するものではなく例示するものであり、当業者は、添付の特許請求の範囲によって定義される本発明の範囲から逸脱することなく、多くの代替的な実施形態を設計することができることに留意されたい。特定の手段が相互に異なる従属請求項に記載されているという単なる事実は、それらの手段の組合せを有利に使用することができないことを示すものではない。
【図１】
2021507562.tif 000090
【図２】
2021507562.tif 000091
【図３】
2021507562.tif 000092
【図４】
2021507562.tif 000093
【図５】
2021507562.tif 000094
【図６】
2021507562.tif 000095
【図７】
2021507562.tif 000096
【国際調査報告】
2021507562.tif 000097
2021507562.tif 000098
2021507562.tif 000099