(57)【要約】  本発明は、単独のブロックチェーン（例えば、ビットコイン）トランザクション（ＴＸ）のアウトプット（ＵＴＸＯ）を保護するソリューションを含み、その結果、トランザクションのロッキング・スクリプトに供給される外部データに従って、許可された時間に、権能のある者によってのみロック解除されることが可能である。本発明は、ＵＴＸＯのロッキング・スクリプト内で提供されるレディーム・スクリプト内で実装される以下の２つのステップを含むことが可能である：１）提供される外部データを利用して時間に関連する値（Ｔｓｕｐｐｌｉｅｄと呼ぶことにする）を計算すること；及び２）ロック解除が所定の時間で生じることを保証するために、時間ロック技術において、算出されたＴｓｕｐｐｌｉｅｄ値を利用すること。本発明はブロックチェーンにおけるトランザクションの時間ロック制御に、外部データが導入されることを許容する。また本願は絶対及び相対時間ロックを組み合わせた技術（例えば、ビットコイン・プロトコルで知られているようなＣＬＴＶ及びＣＳＶの組み合わせ）も含む。
2020533671.tif 000002
【特許請求の範囲】
【請求項１】
ブロックチェーン・トランザクション（Ｔ０）におけるアウトプット（ＵＴＸＯ）を保護又はロック解除する方法であって：
前記アウトプット（ＵＴＸＯ）が何時ロック解除され得るかを制御する又は影響を及ぼすために時間ロック機構を使用するステップ；
を有し、前記時間ロック機構は、前記ブロックチェーン・トランザクション（ＴＸ０）に対して外的なソースにより供給された入力（Ａ）を使用する計算の結果として生成された値（Ｔｓｕｐｐｌｉｅｄ）を使用する、方法。
【請求項２】
入力（Ａ）は：
前記ブロックチェーン・トランザクション（ＴＸ０）；及び／又は
前記アウトプット（ＵＴＸＯ）に関連するロッキング・スクリプト（ＬＳ）；
に対して外的なソースにより供給される、請求項１に記載の方法。
【請求項３】
前記時間ロック機構は、所望の時間又は時間範囲に達した場合に、前記出力（ＵＴＸＯ）のロック解除を許可するだけである、請求項１又は２に記載の方法。
【請求項４】
前記計算は数学的なオペレータを含み、好ましくは：
前記計算は複数のオペランドに作用し、前記オペランドのうちの１つは前記入力（Ａ）である、請求項１−３のうちの何れか１項に記載の方法。
【請求項５】
他のオペランドのうちの少なくとも１つはハッシュ関数である、請求項４に記載の方法。
【請求項６】
前記時間ロック機構は、ビットコインＣＳＶ及び／又はＣＬＴＶオペレーション、又はビットコイン以外のブロックチェーン・プロトコルからの機能的に類似する他のオペレーションを含む、請求項１−５のうちの何れか１項に記載の方法。
【請求項７】
前記値（Ｔｓｕｐｐｌｉｅｄ）は：
ブロック番号若しくは高さ、又はその範囲；又は
タイムスタンプ、特定の時間の数値表現、又はそれらの範囲；
に関連する、含む又は表現する、請求項１−６のうちの何れか１項に記載の方法。
【請求項８】
前記計算で使用される前に入力（Ａ）を処理、操作又は使用するために論理の一部を使用するステップを有し、好ましくは：
ｉ）前記論理の一部は前記アウトプット（ＵＴＸＯ）に関連するロッキング・スクリプトで提供され、及び／又は
ｉｉ）前記論理の一部はブール演算を含む、請求項１−７のうちの何れか１項に記載の方法。
【請求項９】
ｉ）前記計算は前記アウトプット（ＵＴＸＯ）に関連するロッキング・スクリプトで提供され；及び／又は
ｉｉ）入力（Ａ）は、別のブロックチェーン・トランザクション（ＴＸ１）の入力（Ｉｎ）に関連するロック解除スクリプトを介して提供される、請求項１−８のうちの何れか１項に記載の方法。
【請求項１０】
条件付きオペレーションがＴＲＵＥと評価した場合にイベントがトリガされるように、前記時間ロック機構を使用して前記条件付きオペレーションの結果を評価するステップを更に有する請求項１−９のうちの何れか１項に記載の方法。
【請求項１１】
前記計算は、入力（Ａ）に対する特定値の下で値（Ｔｓｕｐｐｌｉｅｄ）に対する所定値を生成するように、取り決められ及び／又は選択されている、請求項１−９のうちの何れか１項に記載の方法。
【請求項１２】
前記時間ロック機構はコードの部分を含み、コードは：
【数５】
2020533671.tif 000008
を含む、請求項１−１１のうちの何れか１項に記載の方法。
【請求項１３】
ブロックチェーン・トランザクション（ＴＸ０）のアウトプット（ＵＴＸＯ）を保護する方法であって：
ｉ）結果（Ｔｓｕｐｐｌｉｅｄ）を出力するために計算に入力（Ａ）を提供するステップ；及び／又は
入力（Ａ）に基づいて結果（Ｔｓｕｐｐｌｉｅｄ）を生成するために計算を行う又は使用するステップ；及び
ｉｉ）前記アウトプット（ＵＴＸＯ）が何時ロック解除され得るかを制御する又は影響を及ぼすように構成された時間ロック機構に対するパラメータとして結果（Ｔｓｕｐｐｌｉｅｄ）を使用するステップ；
を有する方法。
【請求項１４】
ブロックチェーン・トランザクション（ＴＸ０）において、特定の時間又は期間までアウトプット（ＵＴＸＯ）を保護又はロック解除する方法であって：
時間ロック機構への入力として、時間ベースの値（Ｔｓｕｐｐｌｉｄ）を使用するステップを有し、
前記時間ロック機構は、使用される前記ブロックチェーン・プロトコルに依存して、ＣＬＴＶ及びＣＳＶオペレーションの組み合わせ、又は機能的に類似／同等のオペレーションを含む、方法。
【請求項１５】
前記時間ロック機構はコードの部分を含み、コードは：
【数６】
2020533671.tif 000009
を含む、請求項１４に記載の方法。
【請求項１６】
プロセッサ；及び
実行可能命令を含むメモリ；
を有するコンピュータで実現されるシステムであって、前記実行可能命令は、前記プロセッサによる実行の結果として、請求項１−１５のうちの何れか１項に記載の方法を前記システムに実行させる、システム。
【請求項１７】
実行可能命令を記憶した非一時的なコンピュータ読み取り可能な記憶媒体であって、前記実行可能命令は、コンピュータ・システムのプロセッサによって実行された結果として、前記コンピュータ・システムに、請求項１−１５のうちの何れか１項に記載のコンピュータで実行される方法を少なくとも実行させる、記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、コンピュータに実装されたセキュリティ及び制御方法、暗号及び暗号通貨、並びに例えばビットコイン関連技術のような分散型台帳（ブロックチェーン）に関する。本発明は、ブロックチェーン・トランザクションのアウトプットを一定の時間又は時間範囲まで確保することが望ましい状況、またコントロールされるリソースへのアクセスが、時間に関連する状態に基づいて許可又は拒否される状況で使用することに特に適している。
【０００２】
この文献において用語「ブロックチェーン」は、電子的なコンピュータ・ベースの分散型のあらゆる形態の台帳を含むように使用される。これらは、コンセンサス・ベースのブロックチェーン及びトランザクション・チェーン技術、許可型及び非許可型の台帳、共有元帳、及びそれらの変形を含む。ブロックチェーン技術の最も広く知られたアプリケーションはビットコイン台帳であるが、他のブロックチェーン実装も提案され開発されている。便宜上及び説明の目的でビットコインが本願で言及されるかもしれないが、本発明はビットコイン・ブロックチェーンに限定されず、代替的なブロックチェーン実装及びプロトコルが本発明の範囲内に属することに留意すべきである。用語「ユーザー」は、本願では、その用語が使用される文脈で決定される人間又はプロセッサ・ベースのリソースを指すことができる。
【０００３】
ブロックチェーンは、ピア・ツー・ピアの電子台帳であり、これはブロックから構成されるコンピュータ・ベースの非セントラル化された分散システムであり、ブロックはトランザクションから構成される。各トランザクション（Ｔｘ）は、ブロックチェーン・システムの参加者間でのディジタル資産の制御のトランスファー（ｔｒａｎｓｆｅｒ）をエンコードし、少なくとも１つの入力及び少なくとも１つの出力を含むデータ構造である。各ブロックは先行するブロックのハッシュを含み、ブロックは先行するブロックとともにチェーン化され、ブロックチェーンに発端以来書き込まれてきた全てのトランザクションの永続的で変更不可能な記録を作成する。トランザクションは、入力及び出力に組み込まれたスクリプトとして知られる小さなプログラムを含み、これは、トランザクションのアウトプットがどのように誰によってアクセスされ得るかを明確に述べる。ビットコイン・プラットフォームではこれらのスクリプトはスタック・ベースのスクリプト言語を利用して書き込まれる。
【０００４】
トランザクションがブロックチェーンに書き込まれるためには、「検証済み（ｖａｌｉｄａｔｅｄ）」でなければならない。ネットワークノード（マイナー）は、各トランザクションが有効であることを保証するために作業を行い、無効なトランザクションはネットワークから拒否される。ノードにインストールされているソフトウェア・クライアントは、ロック・スクリプト及びアンロック・スクリプトを実行することによって、未使用トランザクション（ＵＴＸＯ）に対してこの検証作業を実行する。ロック及びアンロック・スクリプトの実行がＴＲＵＥと評価した場合、トランザクションは有効であり、そのトランザクションはブロックチェーンに書き込まれる。従って、トランザクションがブロックチェーンに書き込まれるためには、ｉ）トランザクションを受け取った最初のノードによって検証されなければならず、トランザクションが検証された場合、ノードはそれをネットワーク内の他のノードへ中継し；ｉｉ）マイナーにより構築された新たなブロックに追加され；ｉｉｉ）マイニングされる、即ち過去のトランザクションの公の台帳に追加される必要がある。
【０００５】
アウトプットがロック解除されて以後に消費され得る時を制御又は左右できることはしばしば有利である。時間に関連する制御（時間ロック）を組み込むために、多くの既知のメカニズムを使用することが可能である：
【０００６】
絶対時間ロック：
●ｎＬｏｃｋＴｉｍｅ
ｎＬｏｃｋＴｉｍｅトランザクション・フィールドは、トランザクションがブロックチェーン上の有効なブロックに追加され得る最も早い絶対時間（タイムスタンプ又は最低ブロック高さ）を指定するために使用することができる。
【０００７】
●ＣｈｅｃｋＬｏｃｋＴｉｍｅＶｅｒｉｆｙ（ＣＬＴＶ）
ＣＬＴＶオペコード（ＯＰ＿ＣＨＥＣＫＬＯＣＫＴＩＭＥＶＥＲＩＦＹ）は、絶対時間ロックの指定を許容する点でｎＬｏｃｋＴｉｍｅと類似しているが；ＣＬＴＶは、トランザクション全体ではなく特定のトランザクション・アウトプット（ＵＴＸＯ）に適用することが可能である。これは、アウトプットに関連付けられたロッキング／レディーム・スクリプト（ａ  ｌｏｃｋｉｎｇ／ｒｅｄｅｅｍ  ｓｃｒｉｐｔ）に挿入され、ＣＬＴＶ  ｏｐ＿ｃｏｄｅに渡される単一パラメータにより指定される時刻まで、アウトプットの資金をロックする。アウトプットを使用する試みがなされた場合、トランザクションに適用されたｎＬｏｃｋＴｉｍｅが、パラメータによりＣＬＴＶオペコードに与えられた時間に等しい又はそれより大きい場合に限り、スクリプトの実行は成功するであろう。そうでない場合、スクリプトの実行は失敗するであろう。従って、アウトプットは、ｎＬｏｃｋＴｉｍｅが経過した場合に限り、消費されることが可能である。
【０００８】
相対時間ロック
●ｎＳｅｑｕｅｎｃｅ
ｎＳｅｑｕｅｎｃｅフィールドはｎＬｏｃｋＴｉｍｅに類似しているが、全てのトランザクション入力の一部であり、相対的なロック時間を指定するために使用することが可能である。ｎＳｅｑｕｅｎｃｅは、インプットが消費しようとしているアウトプット（ＵＴＸＯ）を含むトランザクションがブロックチェーンに追加された時点に基づいて、ブロックに追加され得る最も早い時間を指定する。
【０００９】
●ＣｈｅｃｋＳｅｑｕｅｎｃｅＶｅｒｉｆｙ（ＣＳＶ）
ＣＳＶオペコードは、相対ロック時間がアウトプットに適用されることを許容する。アウトプットＵＴＸＯの消費を試みる場合、スクリプトの実行は、ｎＳｅｑｕｅｎｃｅ時間がＣＳＶオペコードに与えられたパラメータ以上でない限り失敗し、即ちアウトプットは、ｎＳｅｑｕｅｎｃｅで指定される時間が経過した後に限り、有効ブロックに追加されて消費されることができる。
【００１０】
従って、時間ロックをもたらす従来の方法は、ブロックチェーン上のトランザクションからｎＬｏｃｋＴｉｍｅを取得し、それを提供されたＣＬＴＶパラメータと比較することである（又はｎＳｅｑｕｅｎｃｅ時間を取得し、それをＣＳＶ時間と比較することである）。
【００１１】
これらの技術は有用であるが、しかしながら、ロック時間に関連した変形を可能にしたり促進したりするものではない。ブロックチェーン・アウトプットがどのように何時ロック解除され得るかを制御するために、外部ソースからの（ブロック外の）データを使用できることは、それが大幅に改善されたロッキング／アンロッキング制御技術を提供するので、非常に有利であろう。
【００１２】
しかしながら、ブロックチェーンに外部データを挿入又は注入することは不可能であることが、当該技術分野で認められており（例えば、非特許文献１参照）、その文献は「ビットコインは外部データを参照しない自己完結型システムである」ことを述べている。
【００１３】
更に、既存の時間ロック機構は、アウトプットがロック解除される時を制御するための単純なソリューションを提供しており、なぜなら、それは指定された時間に達した場合に単にアクティブになるからであり、もしそうでなければ、アウトプットはロックされたままである。しかしながら、多くの状況において、アウトプットのロック／アンロックについての、即ちネットワークを介してトランスファーが行われる時期についてのより高度な制御を有することが有用であろう。リソースをロック／アンロックするために使用される条件に関するより高度な細分性、及び／又はこれらの条件が満たされる場合に行われ得るアクションに関してより多くの選択肢又は可能性を許容する更に洗練されたアプローチが望まれる。
【００１４】
従来技術のソリューションは、複数のトランザクションの使用を教示し、各々は、特定の時間に到達した場合に取り得る異なる行動方針を規定する自身の単純な時間ロックを有する。複数の時間ロック・トランザクションを使用することについては、例えば非特許文献２を参照されたい。非特許文献２は、複数の潜在的なロック解除時間を可能にするために、マイクロペイメント及びライトニング・チャネルを利用することを教示している。
【００１５】
しかしながら、このような構成は非常に複雑であり、複数のトランザクションを生成、処理、操作、及び記憶するために多大なリソースを必要とする可能性がある。例えば、非特許文献２の図３は、ライトニング・チャンネルを確立するために必要とされる複数のトランザクション及び当事者間メッセージを示している。ブロックチェーンにおける１つのトランザクション内の単一スクリプトに含まれる、より洗練された時間ロック機構を使用できることは、リソース及び時間の観点からより効率的であろう。
【先行技術文献】
【非特許文献】
【００１６】
【非特許文献１】ｐａｇｅ  １９０  ｏｆ“Ｕｎｄｅｒｓｔａｎｄｉｎｇ  Ｂｉｔｃｏｉｎ：Ｃｒｙｐｔｏｇｒａｐｈｙ，Ｅｎｇｉｎｅｅｒｉｎｇ，ａｎｄ  Ｅｃｏｎｏｍｉｃｓ”（Ｐｅｄｒｏ  Ｆｒａｎｃｏ，Ｊｏｈｎ  Ｗｉｌｅｙ  ＆  Ｓｏｎｓ  ２０１５）
【非特許文献２】ＭｃＣｏｒｒｙ  Ｐａｔｒｉｃｋ  ｅｔ  ａｌ“Ｔｏｗａｒｄｓ  Ｂｉｔｃｏｉｎ  Ｐａｙｍｅｎｔ  Ｎｅｔｗｏｒｋｓ”，３０  Ｊｕｎｅ  ２０１６，ＥＣＣＶ  ２０１６  Ｃｏｎｆｅｒｅｎｃｅ，［Ｌｅｃｔｕｒｅ  Ｎｏｔｅｓ  ｉｎ  Ｃｏｍｐｕｔｅｒ  Ｓｃｉｅｎｃｅ］Ｓｐｒｉｎｇｅｒ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｐｕｂｌｉｓｈｉｎｇ，ＣＨＡＭ，Ｐａｇｅｓ  ５７  ｔｏ  ７６，ＸＰ０４７３４８０６７
【発明の概要】
【００１７】
このような改善されたソリューションは添付の特許請求の範囲で定められる本発明に従って高度に考案される。
【００１８】
本発明によれば、方法（及び対応するシステム）を提供することができる。これは制御方法として説明又は参照されることが可能である。これは、追加的又は代替的に、リソースを確保及び／又はロック解除する方法として説明されてもよい。リソースは、ブロックチェーン・トランザクション（ＴＸ０）におけるアウトプット（ＵＴＸＯ）に関連付けられてもよい。これは、ＵＴＸＯがロック解除され得る時間（及び／又は時間範囲）を確保、制御、及び／又は指定することができる。時間ベースのロック条件に加えて、他の基準又は条件も満たされる必要があってもよい。追加的又は代替的に、アウトプットが何時ロック解除され得るか（即ち、「消費され得るか」）を制御してもよい。従って、それは、暗号通貨の一部、又は、暗号的に保護された資産、又は、アウトプットに関連するトークン化されたエンティティの制御であってもよく、これらは一方の当事者から他方の当事者へ移転されてもよい。このように、本発明は、ブロックチェーン及び／又は暗号通貨の改良された実装を提供する。追加的又は代替的に、それは、ブロックチェーン・トランザクション（ＴＸ）、あるいは更に具体的にはトランザクション中の少なくとも１つのアウトプットをロック／アンロックするための改良されたセキュリティ機構を提供することができる。
【００１９】
本発明は、以下のステップを含み得る：
１．ブロックチェーン・トランザクション（ＴＸ０）のスクリプトにおいて、トランザクション（ＴＸ０）に対して外的なソースから提供されるデータを使用して時間関連値（Ｔｓｕｐｐｌｉｄ）を計算するステップ。
２．コントロールされているリソースのロック解除が所定の時間に限って実行され得ることを保証するように、計算した値（Ｔｓｕｐｐｌｉｄ）を時間ロック機構において使用するステップ。
【００２０】
時間ロック機構は、計算と同じスクリプト内に設けられてもよい。スクリプトは、トランザクション（ＴＸ０）のアウトプット（ＵＴＸＯ）に関連付けられてもよく、コントロールされるリソースは、アウトプット（ＵＴＸＯ）に関連付けられてもよい。
【００２１】
追加的又は代替的な表現において、本発明は、ブロックチェーン・トランザクション（ＴＸ０）においてアウトプット（ＵＴＸＯ）を保護及び／又はロック解除するように構成された方法を提供することができる。本方法は以下のステップを含み得る：
アウトプット（ＵＴＸＯ）がロック解除され得る時を制御又は左右するために時間ロック機構を使用するステップ；
ここで、時間ロック機構は、入力（Ａ）を用いた計算結果として生成されるパラメータ（Ｔｓｕｐｐｌｉｅｄ）を使用する。
【００２２】
別の追加的又は代替的な表現において、本発明は以下を含み得る：
ブロックチェーン・トランザクションにおいてロッキング・スクリプトを、それが入力（即ち、値）を取ってその入力を計算で使用するように構成するステップ。計算は入力に対して数学的な演算を実行するかもしれない。計算は、時間に関連した結果を生成し、それは、時間ロック機構（例えば、ＣＬＴＶ、ＣＳＶ、及び／又はｎＬｏｃｋＴｉｍｅを含む）の入力として使用され得る。これは、ロック／レディーム・スクリプトに書き込まれた少なくとも１つの条件に従って、アウトプットが所与の時間にのみ使用可能であることを保証することができる。
【００２３】
追加的又は代替的に、本発明は以下を含むものとして説明することができる：
ブロックチェーン・トランザクション（ＴＸ０）においてアウトプット（ＵＴＸＯ）を保護又はロック解除するように構成される方法であって：
ｉ）結果（Ｔｓｕｐｐｌｉｅｄ）を出力するために計算に入力（Ａ）を提供するステップ；及び／又は入力（Ａ）に基づいて結果（Ｔｓｕｐｐｌｉｅｄ）を生成するために計算を行う又は使用するステップ；及び
ｉｉ）アウトプット（ＵＴＸＯ）がロック解除され得る時を制御又は左右するように構成された時間ロック機構に対するパラメータとして結果（Ｔｓｕｐｐｌｉｅｄ）を使用するステップを有する方法。
【００２４】
追加的又は代替的に、本発明は以下を含むものとして説明することができる：
ブロックチェーン・トランザクション（ＴＸ０）において、特定の時間又は期間までアウトプット（ＵＴＸＯ）を確保又はロック解除する方法であって：
時間ロック機構への入力として、時間ベースのパラメータ又は値（Ｔｓｕｐｐｌｉｄ）を使用するステップを有し、
時間ロック機構は、使用されるブロックチェーン・プロトコルに依存するＣＬＴＶ及びＣＳＶオペレーションの組み合わせ、又は機能的に類似／同等のオペレーションを含む。
【００２５】
上述したものは、可変入力がブロックチェーンに対して外部のソースから受信され、及び、コントロールされているリソースがいつ解放され得るかを決定するために、ブロックチェーン上のトランザクションにおけるスクリプトによって可変入力が使用される、という利点を提供する。
【００２６】
ロッキング・スクリプトは、ブロックチェーン・トランザクションにおけるアウトプットをロックするために使用されることが可能である。トランザクションは、ブロックチェーンにサブミット及び／又は記録されることが可能である。
【００２７】
計算の結果は、スクリプトで提供される条件付きステートメント又はテストで使用されてもよい。これは、ロック解除スクリプトによって提供される様々な時間関連入力が、様々な結果又は挙動をもたらし得るという利点を提供する。
【００２８】
１つ以上の実施形態によれば、時間ロック機構はコードの一部分を含むことが可能であり、コードは以下を含む：
【数１】
2020533671.tif 000003
【００２９】
ロッキング・スクリプトは、レディーム・スクリプトを含んでもよい。レディーム・スクリプトは、時間ロック機構を実行するための計算及び／又はコードを含んでもよい。
【００３０】
好ましくは、入力（Ａ）は、外部ソースから提供される。外部ソースは、ロッキング／レディーム・スクリプトに対して外的であってもよい。これはオフ・ブロック・ソースであってもよい。
【００３１】
計算は、所望の所定の時間に達した場合に、時間ロック機構がアウトプット（ＵＴＸＯ）のロック解除を許容するだけであることを保証する結果をもたらすことができる。これは、ロッキング・スクリプトを作成する時又はその前に予め決定されてもよい。結果は、時間関連値に基づいていてもよいし、あるいはその値に影響される場合もある。これは本願でＴｓｕｐｐｌｉｄｅｄと言及され得る。
【００３２】
時間ロック機構は、別の言葉で言えば「時間ロック技術」又は「時間ロック論理」と呼ばれてもよい。時間ロック機構は、相対及び／又は絶対時間ロック機構又はそれらの組み合わせを含んでもよい。これらは、例えばビットコイン及びその派生などの、これらのオペレーションを使用するブロックチェーンにおいて実装される実施形態におけるｎＬｏｃｋＴｉｍｅ、ＣＳＶ、及び／又はＣＬＴＶオペレーションであってもよい。他のブロックチェーン・プロトコル及びプラットフォームを使用する実施形態では、時間ロック機構は、ＣＳＶ／ＣＬＴＶと機能的に実質的に同等又は類似のオペレーションを含むことができる。追加的又は代替的に、時間ロック機構は、ｎＬｏｃｋＴｉｍｅ（又は機能的に類似／同等の）機構又はフィールドを含むことができる。
【００３３】
パラメータ（Ｔｓｕｐｐｌｉｄ）は番号であってもよいし；３２ビット数であってもよい。パラメータ（Ｔｓｕｐｐｌｉｄ）は、以下に基づいていてもよいし、又は以下を表現していてもよい：
ブロックチェーンブロック番号若しくは高さ、又はそれらの範囲；又は
タイムスタンプ、時間の数値表現；又はその範囲；
タイムスタンプ；
整数（例えば、３２ビット整数）；
ユニックス・ベースの時間フォーマット；及び／又は
時間ロック機構に対する入力として使用されることが可能な任意の時間関連値。
【００３４】
Ｔｓｕｐｐｌｉｄは計算を用いて算出されてもよい：
−Ｈａｓｈ（Ａ）＋Ｘ＝Ｔｓｕｐｐｌｉｅｄ
ここで、Ａはシークレット値であり、Ｘはオフセット値である。
【００３５】
本方法は、計算に使用される前に入力（Ａ）を処理するために或る論理の一部を使用するステップを含んでもよい。論理の一部は、アウトプット（ＵＴＸＯ）に関連付けられたロッキング・スクリプトで提供されてもよい。論理の一部は少なくとも１つのブール演算を含んでもよい。
【００３６】
本発明の１つ以上の実施形態は、以下のステップを含んでもよい：
条件又はテストがＴＲＵＥと評価した場合に、指定されたイベントがトリガされるように、時間ロック機構を使用して条件付きオペレーションの結果を評価する又は影響を及ぼすステップ。条件付きオペレーションは、１つ以上の入力に基づくブール演算結果を返すＩＦオペレーションであってもよい。これは、時間に基づいて複雑な機能及び挙動を指示及び実施するために（例えば次のような）スクリプトを使用できるという利点をもたらす。
【数２】
2020533671.tif 000004
（日付１に関して＜条件１＞が充足されるならば、アクション１を実行する。日付２に関して＜条件２＞が充足されるならば、アクション２を実行する。）
上述したように、これは、従来技術とは異なり、単独のトランザクションのスクリプトの中で達成される。
【００３７】
計算は、アウトプット（ＵＴＸＯ）に関連付けられたロッキング・スクリプトで提供されてもよい。
【００３８】
入力（Ａ）は、別のブロックチェーン・トランザクション（ＴＸ１）における入力（Ｉｎ）に関連付けられたロック解除スクリプトを介して提供されてもよい。入力（Ｉｎ）は第１トランザクション（ＴＸ０）でアウトプット（ＵＴＸＯ）を消費するための試行において使用されてもよい。
【００３９】
計算は、入力（Ａ）に対する特定の値の提供により、時間に基づく結果の値（Ｔｓｕｐｐｌｉｄ）を生成するように構成されてもよい。計算は数学的なオペレータを含んでもよい。計算は複数のオペランドに作用してもよい。オペランドの１つが入力（Ａ）であってもよい。他のオペランドのうちの１つがハッシュ関数であってもよい。これに対して従来技術は簡易な演算しか行っていない。
【００４０】
本発明はまた、本願に記載された方法の任意の実施形態を実装するように配置又は構成されたコンピュータ実現システムも提供する。本方法に関して言及された何れの特徴も、対応するシステムに適用されてよい。
【００４１】
本発明はまたシステムを提供し、システムは：
プロセッサ；及び
実行可能命令を含むメモリ；
を有し、命令は、プロセッサによる実行の結果として、本願で説明されるコンピュータ実現方法の任意の実施形態をシステムに実行させる。
【００４２】
本発明はまた、実行可能命令を記憶した非一時的なコンピュータ読み取り可能な記憶媒体を提供し、実行可能命令は、コンピュータ・システムのプロセッサによって実行された結果として、コンピュータ・システムに、本願で説明されるコンピュータ実現方法の実施形態を少なくとも実行させる。
【００４３】
文言、実施形態、又は態様のうちの１つの形式に関して上述した何れの特徴も、他の文言、実施形態、又は態様に適用することができる。
【図面の簡単な説明】
【００４４】
本発明のこれら及び他の態様は、本願で説明される実施形態から明らかになり、それを参照して解明されるであろう。なお、本発明の実施形態は、単なる例示として、添付の図面を参照して説明される：
【図１】本発明の実施形態の概要を示すフローチャートである。
【図２】ＣＬＴＶ及び／又はＣＳＶ時間ロック機構に関連して使用される場合におけるＴｓｕｐｐｌｉｄの様々な値及びそれら各々の結果が記入されたスプレッドシートを示す。
【図３】ＣＬＴＶ及び／又はＣＳＶ時間ロック機構に関連して使用される場合におけるＴｓｕｐｐｌｉｄの様々な値及びそれら各々の結果が記入されたスプレッドシートを示す。
【図４】ＣＬＴＶ及び／又はＣＳＶ時間ロック機構に関連して使用される場合におけるＴｓｕｐｐｌｉｄの様々な値及びそれら各々の結果が記入されたスプレッドシートを示す。
【図５】ＣＬＴＶ及び／又はＣＳＶ時間ロック機構に関連して使用される場合におけるＴｓｕｐｐｌｉｄの様々な値及びそれら各々の結果が記入されたスプレッドシートを示す。
【図６】ＣＬＴＶ及び／又はＣＳＶ時間ロック機構に関連して使用される場合におけるＴｓｕｐｐｌｉｄの様々な値及びそれら各々の結果が記入されたスプレッドシートを示す。
【図７】様々な実施形態が実装され得るコンピューティング環境を示す概略図である。
【発明を実施するための形態】
【００４５】
発明の概要
本発明は、許可された時間に、トランザクション・スクリプトに供給された外部データに従って、権限を有する当事者によってのみロック解除され得るように、ブロックチェーン・トランザクションにおける（未使用）アウトプットを保護するソリューションを含む。この外部データは権能を有する者によって提供されることが可能である。
【００４６】
本発明は本質的にＵＴＸＯのロッキング・スクリプト内に実装される２つのステップを含む：
１．提供された外部データを利用して時間関連値（Ｔｓｕｐｐｌｉｅｄと呼ぶことにする）を計算すること。
２．ロック解除が所定の時間に生じることを保証するために、時間ロック技術において、計算されたＴｓｕｐｐｌｉｅｄを使用すること。
【００４７】
本発明から生じる利点があり、それらは以下を含む（但し、それらに限定されない）：
●可変ｎＬｏｃｋＴｉｍｅ機構の提供；
●本発明は、単一トランザクションの中でブロックチェーンに実装されることが可能な可変ロック時間機構を提供する。これは、複雑でリソース消費型の支払チャネルや第２レイヤ・ソリューションがブロックチェーンのトップに配備されることを必要とせず；従って、リソース及び処理の点で効率的であり、且つ下位プロトコルに対する変更を必要とせずに既存のブロックチェーン・プラットフォームで実装されることが可能な、安全で暗号化されたソリューションを提供する；
●何時、誰により、如何にしてアウトプットがロック解除され得るかに関して、より豊富な柔軟性及びより洗練されたコントロールの度合い；即ち、本発明は、何時、誰に、如何にしてトランスファーがネットワークを介して行われ得るかを制御するための強化された技術を提供する；
●特定のブロック／時間；又は複数の若しくは或る範囲内のブロック／期間に対してのみ有効であるトランスファーを指定する能力；
●特定のブロックチェーン関連イベント（又は複数のイベント）が発生する特定の時間を指定する豊富な能力；
●スクリプト内で時間関連値に対して計算及び数学的／論理的な演算を実行する能力；
●単一スクリプト内で許容可能な消費（即ち、トランスファー）のコンフィギュレーションの任意の組み合わせを設定する能力；
●予め定められた所望の挙動を動機付けるスクリプトをセットアップしてアクティブ化すること；
●本発明を実装するために必要な論理及びオペレーションはトランザクション・スクリプト内で提供されることが可能であり、それは従来の方法でブロックチェーンにおいて記録されることが可能である；
●本発明は、既存の（例えば、ビットコインの）ブロックチェーン・プロトコル又はプラットフォームに対する如何なる適合化、拡張、又は他の再構成も必要としない。
【００４８】
ステップ１：Ｔｓｕｐｐｌｉｅｄの計算
説明及び図示のみの目的で、本発明を実行に移す得ために使用されることが可能な実施形態の一例を提供する。この例では、本発明はビットコイン・ブロックチェーンの任意の変形に適用されることを仮定しており、従って、ＣＬＴＶ及びＣＳＶを時間ロック機構として使用する。しかしながら、他の実施形態及び実装が、同じ効果を得るために代替のブロックチェーン・プラットフォーム及びオペレーションを使用することができる一方、それらは依然として請求項に係る発明の範囲内にある。このような代替プロトコルは時間ロック機構を提供することができ、その機構は異なる識別名又は僅かに異なる機能を有するが、トランザクション・アウトプットの時間ベースのロックを可能にするので、依然として本発明の範囲内に該当する。
【００４９】
この文献では、これらの任意のオプション、及び、ある時点又は時点の範囲又は１つ以上のイベントが生じる時に何らかの方法で関連する任意の他のオプションを含むように、「時間」という用語を使用する。
【００５０】
目下の例示の状況では以下を仮定する：
●ｍ−ｏｆ−ｎディーラーレス分配方式（Ｄｅａｌｅｌｌｅｓｓ  Ｄｉｓｔｒｉｂｕｔｉｏｎ  ｓｃｈｅｍｅ）において、ｎ人の参加者が存在する。ディーラーレス分配方式は、当該技術分野で知られている。
●グループの公開鍵及びトランザクション「パズル」に支払うＵＴＸＯが作成される（パズルは可変に設計されることに留意されたい）。
●閾値（ｍメンバー）サブグループは、オフ・ブロック機構によりＵＴＸＯの制御を移転するために協調する。これは、異なるサブグループが、異なる条件、例えば異なる期間又はブロック番号の下で、パズルに対して排他的なソリューションを有することを可能にすることによって達成される。従って、ゴールは、それぞれの基準が満たされる場合に、異なる当事者が、ＵＴＸＯを消費し、その資金をロック解除できるようにすることである。
【００５１】
未知の秘密鍵と関連する既知の公開鍵とを確立するためにディーラ−レス方式が使用されていると仮定する。アウトプット（ＵＴＸＯ）を含むビットコイン・トランザクションＴＸ０が作成される。このＵＴＸＯに関連する暗号通貨の部分は、次のようにロッキング・スクリプトでロックされる：
【数３】
2020533671.tif 000005
ここで、レディーム・スクリプト（ｒｅｄｅｅｍ  ｓｃｒｉｐｔ）は次のような計算を含む：
−Ｈ（Ａ）＋Ｘ＝Ｔｓｕｐｐｌｉｅｄ
ここで、Ｈ（Ａ）はＡのハッシュを表し、＜ｉｎｐｕｔ  ｔｏ  ｒｅｄｅｅｍ−ｓｃｒｉｐｔ＞は、次のような値を含むことができる：
Ｓｉｇｎａｔｕｒｅ  Ａ  Ｘ
【００５２】
従って、アウトプットを消費しようとする者は、レディーム・スクリプトの基準を満たし、ＵＴＸＯのロックを解除するために、これら３つの入力を供給することを必要とする。
【００５３】
従って、従来技術とは対照的に、本願の実施形態は（単独の）スクリプト内で数学的な計算を提供し、ロック解除スクリプトを介して値を提供することを、権限を付与されたユーザーに要求することによって、制御下のリソース（例えば、暗号通貨ファンド、トークン化された資産）を保護し、その計算により、以後に時間ロック機構に供給される場合にＴＲＵＥの結果をもたらしてリソースのロックを解除する結果を生じさせる。計算は数学的なオペレーションを含み、これは、複数のオペランド（即ち、上記の−Ｈ（Ａ）及びＸ）に作用し、オペランドの値に依存する結果を生成する。従って、スクリプトは、可変の結果を生成するためのロック解除の試行中に何らかの値を入力する機構を提供し、その値は以後に時間ロック機構で使用される。
【００５４】
レディーム・スクリプトにおいて、Ｔｓｕｐｐｌｉｅｄは、特定の時間若しくは期間、又は特定のブロック番号若しくはブロック番号の範囲を表す。それは、ユーザー（ＵＴＸＯの消費者）がロックを解除し、アウトプット（ＵＴＸＯ）を消費することを希望する時間である。Ｔは、時間ロック機構ＣＬＴＶ及びＣＳＶの組み合わせによって、スクリプト内でロックされることが可能であり、即ちそれはＣＬＴＶ／ＣＳＶロック技術に渡されるパラメータ値であり、この点については「ステップ２：時間ロック機構におけるＴｓｕｐｐｌｉｅｄの利用」というタイトルの以下のセクションでより詳細に説明される。
【００５５】
Ａはシークレット番号である。サブグループＡは、Ａを（共同で）導出することが可能な唯一の参加者達であり、従って（彼らが他の未知数を提供できるならば）ＵＴＸＯを消費することが可能である。
【００５６】
Ｘは、ロッキング・スクリプトにおける計算によりターゲットＴｓｕｐｐｌｉｅｄが確立されることを可能にするオフセット値である。サブグループＡは、Ａの値とターゲット値Ｔｓｕｐｐｌｅｄとを事前に知っているが、Ｘの値を知らない。従って、必要とされる３つの入力のうちの２つを知っているだけである。しかしながら、サブグループＡは次の数式を利用してオフセットＸを導出することができる：
Ｘ＝Ｔｓｕｐｐｌｉｅｄ＋Ｈ（Ａ）
従って、必要な入力のうちの全ての値が、サブグループＡにとって利用可能である。
【００５７】
例えば、Ｔのターゲット値（即ち、条件／基準が満たされた場合にアウトプットが使用可能となる時間）が、共同サブグループ（ｍメンバー）によってブロック番号７００，０００として決定されたと仮定する。別の例では、ブロック番号以外の時間を使用することが可能であろう。次いで、ｍメンバーは計算を考案し、計算は、レディーム・スクリプトに挿入されることになり、結果を生成するために評価し、ここで、Ｔ＝７０００００である。次いで、レディーム・スクリプトは、この結果Ｔｓｕｐｐｌｉｄ，７０００００を、スクリプトにおけるＣＬＴＶ／ＣＳＶ時間ロックの組み合わせに対するパラメータ（入力値）として使用する。
【００５８】
シークレット値Ａ及びターゲット値Ｔは、トランザクションを作成するサブグループ（即ち、サブグループＡ）によって知られている。従って、サブグループＡは次式によりＸに関して必要な値を計算することができる：
Ｘ＝７０００００＋Ｈ（Ａ）
【００５９】
従って、Ａ及びＸに関する値は、ＵＴＸＯの権限を付与された者（サブグループＡ）にとって今や両方とも利用可能であり、上述したように、関連する署名とともに別のトランザクションＸ１のロック解除スクリプトを介してレディーム・スクリプトに渡されることが可能である。
【００６０】
レディーム・スクリプト及び供給される入力の目的は、Ａ（即ち、サブグループＡ）のシークレット値を知っている者のみが、トランザクションをブロック番号７００，０００においてのみ解除できることである。これを機能させるためには、ロッキング・スクリプトの一部分は、Ａの値を、そのハッシュとロッキング・スクリプトに書き込まれている保存済みのハッシュ値とを比較することによって検証することを要する。
【００６１】
従って、ロッキング・スクリプトの擬似コードは、次のように表すことができる：
【数４】
2020533671.tif 000006
（入力値をスタックにプッシュする。渡されたＡ値のハッシュ（Ａｉｎと呼ぶ）を計算してＨ（Ａｉｎ）を生成する。Ｈ（Ａｉｎ）と内部で保存済みの値Ｈ（Ａ）とを比較する。一致しなければ中断する。Ｔｓｕｐｐｌｉｅｄ＝−Ｈ（Ａ）＋Ｘを利用してＴｓｕｐｐｌｉｅｄを計算する。計算されたＴｓｕｐｐｌｉｅｄを、ＣＬＴＶ及びＣＳＶロッキング機構の入力として使用する（以下の「ステップ２：時間ロック機構におけるＴｓｕｐｐｌｉｅｄの利用」のセクションで詳細に説明される）。署名を検査する。）
【００６２】
従って、本発明はこれまで不可能であった可変ｎＬｏｃｋＴｉｍｅ機構を提供する。即ち改良された転送制御機構は本発明に従って考案されている。
【００６３】
上述した単純なケースは、数学的及び論理的な演算は複数の値に対して実行できるので、より複雑な洗練された制御挙動をもたらすように拡張されることが可能である。例えば、完全なディーラーレス・グループのどのサブグループでも、（メンバー数が閾値に達していることを条件として）必要な署名を導出することが可能であり、どのサブグループも彼ら自身のシークレットＡ値を作成することができる。従って、特定のサブグループに対してロックされた異なるＴ値で（例えば、異なるブロック番号で）トランザクションを使用可能にするように、幾つかのサブグループは協力することが可能でである。
【００６４】
例えば、サブグループｐ０は時間Ｔ０でトランザクションを消費できることを希望し；サブグループｐ１は時間Ｔ１でトランザクションを消費できることを希望し；サブグループｐ２は時間Ｔ２でトランザクションを消費できることを希望していると仮定する。各々のサブグループｐｎは彼ら自身のシークレット値Ａｎを有することが可能であり、各々のサブグループは彼ら自身のターゲット・ブロック番号Ｔｎを設定し、彼ら自身の値Ｘｎを計算することが可能である：
Ｘｎ＝Ｔｎ＋Ｈ（Ａｎ）
【００６５】
例えば、トランザクションは、ブロック番号７００，０００でサブグループｐ０に対して；ブロック番号７００，００１でサブグループｐ１に対して、及びブロック番号７００，００２でサブグループｐ２に対してロックされる。トランザクションは、次の値とともに任意のロック解除スクリプトによりロック解除されることが可能である：
Ｓｉｇｎａｔｕｒｅ  Ａｎ  Ｘｎ
ここで、Ｘｎは次のように計算される：
Ｘ０＝７０００００＋Ｈ（Ａ０）
Ｘ１＝７００００１＋Ｈ（Ａ１）
Ｘ２＝７００００２＋Ｈ（Ａ２）
【００６６】
これを機能させるために、ＡｎのハッシュＨ（Ａｎ）の各々がスクリプトに含まれ、条件付きＩＦ又は「ＯＲ」オペレーションで個別的に検査されなければならない。言い換えれば：
以下の場合でなければ中断する：
Ｈ（Ａｉｎ）＝Ｈ（Ａ０）  ＯＲ
Ｈ（Ａｉｎ）＝Ｈ（Ａ１）  ＯＲ
Ｈ（Ａｉｎ）＝Ｈ（Ａ２）
【００６７】
当業者は、トランザクションのロッキング・スクリプトを設定する際に、全てのサブグループの事前の同意があれば、許容される消費構成の任意の組み合わせを作成できることを理解するであろう。例えば：
●ターゲットＴ値（例えば、ブロック番号）は連続的であることを要しない。
●ターゲットＴ値はブロック番号の範囲又は期間を表現することが可能である。
●異なるサブグループは同じＴ値で使用するように許容されてもよい（各々のサブグループｐｎは、同じＴ値から算出されるＸｎに関して異なる値を有するであろう）。
●等々。
【００６８】
別の例において、上記は、消費の試みをターゲット時間付近に制限するように拡張されることが可能である。サブグループＡがスクリプトに対する別の入力Ｂを供給することを要するケースを考察し、それはターゲット時間又はその近辺で知られ得るだけの値を示す。例えば、Ｂは、ターゲット・ブロック番号から６ブロック後退したブロックのブロック・ハッシュであるとすることが可能である。他の例は、値Ｂは、所与の時間において又はその近辺で、権限が付与された消費者に対して連絡される又は利用可能／導出可能にされるだけであると考えることが可能である。ブロック・ハッシュの例において、目的は、ターゲット・ブロックの存在に先立つ約１時間前に、ロック解除スクリプトに必要な値は導出され得ないことである。
【００６９】
この場合、レディーム・スクリプトは以下を含み：
−［Ｈ（Ａ）＋Ｈ（Ｂ）］＋Ｘ＝  Ｔ
サブグループＡは、＜ｉｎｐｕｔ  ｔｏ  ｒｅｄｅｅｍ−ｓｃｒｉｐｔ＞を満足する値を作成することを要する：
Ｓｉｇｎａｔｕｒｅ  Ａ  Ｂ  Ｘ
【００７０】
いったんＢの値がブロックチェーンから利用可能になると、サブグループＡは、−［Ｈ（Ａ）＋Ｈ（Ｂ）］＋Ｘ＝Ｔという数式を使用してオフセットＸを導出することが可能であり、なぜならシークレット値Ａはサブグループによって知られているからである。ターゲット・ブロックから１時間以内に消費の試みが実行されると仮定すると（Ｂ値は既知である）、Ｘに必要な値は次のように計算されることが可能である：
Ｘ＝７０００００＋Ｈ（Ａ）＋Ｈ（Ｂ）
【００７１】
従って、サブグループＡは、レディーム・スクリプトの条件を充足してアウトプットをロック解除するための正しい入力を供給するロック解除スクリプトを作成するために必要なすべての情報を知っている。
【００７２】
本発明は、支払チャネル等の複雑で非効率的な第２レイヤ・ソリューションを確立する必要なしに、ブロックチェーン上の単一のトランザクションを介して、上記が確実に達成されることを可能にする。
【００７３】
ステップ２：時間ロック機構におけるＴｓｕｐｐｌｉｅｄの利用
Ｔｓｕｐｐｌｉｅｄの値が、ロック解除スクリプトを介して供給される外部入力を使用してスクリプトで計算されると、その値は、ＵＴＸＯが所望の時間又は所望の時間範囲内でのみロック解除できることを確実にするために、時間ロック技術で使用されることが可能である。
【００７４】
本発明は、ＣＬＴＶオペレーション、ＣＳＶオペレーション、又はそれらの組み合わせのうちの何れかを使用するように構成されることが可能である。しかしながら、各アプローチは、幾つかの共通する共有される特徴を利用する：
●以前にロッキング・スクリプトで計算されたＴｓｕｐｐｌｉｅｄ値は、時間ロックの目的で後の計算で使用される；説明したように、これは外部ソースからスクリプトに提供される値である。
●我々は時間Ｔ０をロッキング・スクリプトにおける定数として使用する。これは初期の（即ちスクリプト開始）時間であり、従って、Ｔ０より低い如何なる値も偽（ｆａｌｓｅ）に評価され、なぜならロッキング・スクリプトはブロックチェーン上でトランザクションとして登場する最初の時間より前には発生し得ないからである。この固定値は、それが書き込まれるとロッキング・スクリプトに追加され、変更することはできない。
●我々は現在の時刻を参照するためにＴｎｏｗを使用する。我々の例では、これは、その瞬間でのようなブロックチェーンにおけるブロック高さであり、ブロックのコンセンサスに記録されるような実際上の時間である。言い換えれば、これはネットワークからのｎＬｏｃｋｔｉｍｅであり、偽装できるものではない。これは、コントロールされたアウトプットのセキュリティを保証する技術的効果をもたらす。Ｔｎｏｗは固定的ではなく可変であり、各ブロックで変化する。Ｔｎｏｗ（現在時間）はＴ０（初期／開始時間）より大きくなければならない。しかしながら、現在時間は様々な方法及びフォーマットで測定又は表現されてもよい。それは、種々のオフ・ブロック又はオン・ブロック・ソースから（即ち、ブロック内外から）得ることができる。これは数値として表すことができ、数学的計算やスクリプト内での操作に使用するために役立ち得る。
●ＣＬＴＶ及びＣＳＶはともに、外部ソースから提供されたデータを使用して計算された時間が経過した場合に動作する。即ち、ＴＳｕｐｐｌｉｅｄ＜＝Ｔｎｏｗである。ここで、ＴＳｕｐｐｌｉｅｄ＞Ｔｎｏｗである場合、スクリプトは無効であり、失敗する。現在時間より大きな算出時間を利用するものは何れも失敗する。しかしながら、これらの状況を捉えるために、一連の論理オペレーションを作成することができる。
●図２〜６を参照すると、ＴＳｕｐｐｌｉｅｄ及びＴｎｏｗが単一の許容値をもたらす唯１つのシナリオしか存在しないことが分かる。唯一の有効なシナリオは、現在時間が到来した時である。
【００７５】
図２〜６は、説明の目的で、使用可能なアウトプットを所定の時間／範囲まで保護するために、様々な時間ロック機構がどのように使用され得るかを示す。
【００７６】
図２〜６の各々において：
●Ａ列３７行は、Ｔｎｏｗの所与の値を示す。
●Ａ列３８行は、初期時間定数Ｔ０の所与の値を示す。
●Ａ列３〜３３行は、ロック解除スクリプトを介して外部ソースから提供される入力を使用してスクリプト内で計算されるＴｓｕｐｐｌｉｅｄの様々な値を示す。
【００７７】
スプレッドシート・セルにおける計算式は次の通りである：
【表１】
2020533671.tif 000007
【００７８】
図２は、Ｔｎｏｗが１０８であり、Ｔ０が１００である場合に、Ｔｓｕｐｐｌｉｄの様々な値についての時間ロック出力を示す。スクリプトは、Ｔｓｕｐｐｌｉｄが１０８である場合の行２１においてのみ有効であり、（列Ｈ及びＩにおいて）Ｔｒｕｅ（即ち、１）の結果を評価していることに留意されたい。
【００７９】
図３は、Ｔｎｏｗが１１８であり、Ｔ０が１１７である場合に、Ｔｓｕｐｐｌｉｄの様々な値についての時間ロック出力を示す。
【００８０】
図４は、Ｔｎｏｗが１１５であり、Ｔ０が１００である場合に、Ｔｓｕｐｐｌｉｄの様々な値についての時間ロック出力を示す。スクリプトは、Ｔｓｕｐｐｌｉｄが１１５である場合の行２８においてのみ、（列Ｈ及びＩにおいて）Ｔｒｕｅ（即ち、１）の結果を評価していることに留意されたい。
【００８１】
図５は、Ｔｎｏｗが１１５であり、Ｔ０が９５である場合に、Ｔｓｕｐｐｌｉｄの様々な値についての時間ロック出力を示す。
【００８２】
図６は、Ｔｎｏｗが９０であり、Ｔ０が９５である場合に、Ｔｓｕｐｐｌｉｄの様々な値についての時間ロック出力を示す。このケースでは、Ｔｎｏｗの値はＴ０の値より小さく、これは有効でないことに留意されたい。従って、列Ｈにおいても列ＩにおいてもＴｒｕｅ（“１”）である結果は存在しない。
【００８３】
時間ロック機構がＣＬＴＶオペレーションを使用する実施形態において、ＴＣＬＴＶ（図２〜６における列Ｄに示される出力）は、ＴＳｕｐｐｌｉｅｄに基づいている。
【００８４】
時間ロック機構がＣＳＶオペレーションを使用する実施形態において、ＴＣＳＶ（図２〜６における列Ｂに示される出力）は、次式により計算される：
ＴＣＳＶ＝ＴＳｕｐｐｌｉｅｄ−Ｔ０
この計算は、スクリプト内で完了し、入力を介してユーザー／消費者により提供されるものではない。ユーザー／外部ソースは、ＴＳｕｐｐｌｉｅｄの計算に影響を及ぼす入力を提供するだけである。
【００８５】
所定の実施形態において、時間ロック機構は、結合されたＣＳＶ及びＣＬＴＶオペレーションを含む。これらは図２〜５の列Ｆ〜Ｉに示されている。
【００８６】
図７を次に参照すると、本開示の少なくとも１つの実施形態を実施するために使用されることが可能なコンピューティング・デバイス２６００の例示的な簡略化されたブロック図が提供されている。様々な実施形態において、コンピューティング・デバイス２６００は、上述の図示及び説明された何れのシステムでも実装するために使用されてよい。例えば、コンピューティング・デバイス２６００は、データ・サーバー、ウェブ・サーバー、ポータブル・コンピューティング・デバイス、パーソナル・コンピュータ、又は任意の電子コンピューティング・デバイスとして使用するために構成されることが可能である。図７に示されるように、コンピューティング・デバイス２６００は、１つ以上のレベルのキャッシュ・メモリを有する１つ以上のプロセッサと、メイン・メモリ２６０８及び永続ストレージ２６１０を含むストレージ・サブシステム２６０６と通信するように構成され得るメモリ・コントローラ（集合的に２６０２のラベルが付されている）とを含むことが可能である。メイン・メモリ２６０８は、図示のように、ダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ）２６１８及びリード・オンリー・メモリ（ＲＯＭ）２６２０を含むことができる。ストレージ・サブシステム２６０６及びキャッシュ・メモリ２６０２は、本開示に記載されるようなトランザクション及びブロックに関連する詳細のような情報の記憶のために使用されることが可能である。プロセッサ２６０２は、本開示に記載されるような方法のために使用されてもよい。
【００８７】
プロセッサ２６０２はまた、１つ以上のユーザー・インターフェース入力デバイス２６１２、１つ以上のユーザー・インターフェース出力デバイス２６１４、及びネットワーク・インターフェース・サブシステム２６１６と通信することも可能である。
【００８８】
バス・サブシステム２６０４は、コンピューティング・デバイス２６００の様々なコンポーネント及びサブシステムが、意図されるように相互に通信することを可能にする機構を提供することができる。バス・サブシステム２６０４は、単一のバスとして概略的に示されているが、バス・サブシステムの代替実施形態は、複数のバスを利用してもよい。
【００８９】
ネットワーク・インターフェース・サブシステム２６１６は、他のコンピューティング・デバイス及びネットワークに対するインターフェースを提供してもよい。ネットワーク・インターフェース・サブシステム２６１６は、コンピューティング・デバイス２６００からデータを受信し、他のシステムへデータを送信するためのインターフェースとして機能してもよい。例えば、ネットワーク・インターフェース・サブシステム２６１６は、データ技術者がデバイスをネットワークに接続することを可能にし、その結果、データ技術者は、データ・センター等の遠隔地にある間に、デバイスにデータを送信し、デバイスからデータを受信することができる。
【００９０】
ユーザー・インターフェース入力デバイス２６１２は、キーボードのような１つ以上のユーザー入力デバイス；統合されたマウス、トラックボール、タッチパッド、又はグラフィックス・タブレット等のポインティング・デバイス；スキャナ；バーコード・スキャナ；ディスプレイに組み込まれたタッチ・スクリーン；音声認識システムやマイクロフォン等の音声入力デバイス；及び他のタイプの入力デバイスを含んでもよい。一般に、「入力デバイス」という用語の使用は、情報をコンピューティング・デバイス２６００に入力するための全ての可能な種類のデバイス及び機構を含むように意図される。
【００９１】
１つ以上のユーザー・インターフェース出力デバイス２６１４は、表示サブシステム、プリンタ、又は、音声出力デバイス等の非視覚的ディスプレイを含んでもよい。表示サブシステムは、陰極線管（ＣＲＴ）；液晶ディスプレイ（ＬＣＤ）、発光ダイオード（ＬＥＤ）ディスプレイ等のフラットパネル・デバイス；又は投影その他の表示デバイスであってもよい。一般に、用語「出力デバイス」という用語の使用は、コンピューティング・デバイス２６００から情報を出力する全ての可能な種類のデバイス及び機構を含むことように意図される。１つ以上のユーザー・インターフェース出力デバイス２６１４は、例えば、ユーザー・インターフェースを提示するために使用されることが可能であり、説明されたプロセスを実行するアプリケーション及びそのバリエーションとのユーザー対話を、そのような対話が適切であり得る場合には促進する。
【００９２】
ストレージ・サブシステム２６０６は、本開示の少なくとも１つの実施形態の機能を提供し得る基本プログラミング及びデータ構造を記憶するコンピュータ読み取り可能な記憶媒体を提供することができる。アプリケーション（プログラム、コード・モジュール、命令）は、１つ以上のプロセッサによって実行されると、本開示の１つ以上の実施形態の機能を提供することができ、ストレージ・サブシステム２６０６に記憶されてもよい。これらのアプリケーション・モジュール又は命令は、１つ以上のプロセッサ２６０２によって実行されてもよい。ストレージ・サブシステム２６０６は本開示に従って使用されるデータを記憶するためのリポジトリを追加的に提供してもよい。例えば、メイン・メモリ２６０８及びキャッシュ・メモリ２６０２は、プログラム及びデータのための揮発性ストレージを提供することができる。永続的ストレージ２６１０は、プログラム及びデータのための永続的な（不揮発性の）ストレージを提供することができ、フラッシュ・メモリ、１つ以上のソリッド・ステート・ドライブ、１つ以上の磁気ハード・ディスク・ドライブ、関連するリムーバブル・メディアを備えた１つ以上のフロッピー・ディスク・ドライブ、関連するリムーバブル・メディアを備えた１つ以上の光学ドライブ（例えば、ＣＤ−ＲＯＭ又はＤＶＤ又はＢｌｕｅ−Ｒａｙ）ドライブ、及び他の同様な記憶媒体を含んでもよい。このようなプログラム及びデータは、本開示に記載されるような図７に関するプログラム、並びに本開示に記載されるようなトランザクション及びブロックに関連するデータを含むことが可能である。
【００９３】
コンピューティング・デバイス２６００は、ポータブル・コンピュータ・デバイス、タブレット・コンピュータ、ワークステーション、又は以下に記載される他の任意のデバイスを含む種々のタイプのものであってよい。追加的に、コンピューティング・デバイス２６００は、１つ以上のポート（例えば、ＵＳＢ、ヘッドフォン・ジャック、ライティング・コネクタ等）を介してコンピューティング・デバイス２６００に接続されることが可能な別のデバイスを含んでもよい。コンピューティング・デバイス２６００に接続され得るデバイスは、光ファイバ・コネクタを受け入れるように構成される複数のポートを含んでもよい。従って、このデバイスは光信号を電気信号に変換するように構成されることが可能であり、電気信号は、処理のために、デバイスを接続するポートを介してコンピューティング・デバイス２６００へ送信されることが可能である。コンピュータ及びネットワークの絶え間なく変化する性質に起因して、図７に示されるコンピューティング・デバイス２６００の説明は、デバイスの好ましい実施形態を説明する目的で特定の例として意図されているだけである。図７に示されるシステムよりも多い又は少ないコンポーネントを有する他の多くの構成が可能である。
【００９４】
上述の実施形態は本発明を限定するものではなく例示していること、当業者は、添付の特許請求の範囲によって定義される本発明の範囲から逸脱することなく、多くの代替的な実施形態を設計できることに留意すべきである。特許請求の範囲において、括弧内に配置される如何なる参照符号も、特許請求の範囲を限定するように解釈されないものとする。「有している」及び「有する」等の言葉は、任意の請求項又は明細書全体に列挙されたもの以外の要素又はステップの存在を排除していない。本明細書において、「含む」は「含む又はから構成される」を意味し、「含んでいる」は「含んでいる又はから構成されている」を意味する。要素の単独の参照は、そのような要素の複数個の参照を排除するものではなく、その逆もまた同様である。本発明は、幾つかの個別的な要素を含むハードウェアによって、及び適切にプログラムされたコンピュータによって実施されることが可能である。幾つかの手段を列挙する装置の請求項において、これらの手段の幾つかが、ハードウェアの１つの同じアイテムによって具現化されてもよい。特定の複数の事項が相互に異なる従属請求項に記載されているという単なる事実は、これらの事項の組み合わせが有利に使用され得ないことを示してはいない。
【図１】
2020533671.tif 000010
【図２】
2020533671.tif 000011
【図３】
2020533671.tif 000012
【図４】
2020533671.tif 000013
【図５】
2020533671.tif 000014
【図６】
2020533671.tif 000015
【図７】
2020533671.tif 000016
【国際調査報告】
2020533671.tif 000017
2020533671.tif 000018