(57)【要約】暗号通貨量と関連付けられたトークン（T）の有効性を判定する、コンピュータにより実行される方法が提供される。いくつかの実施形態において、本方法は、第２ユーザ（B）が、通信ネットワークを介して、第１ユーザ（A）から第２ユーザ（B）へのトークン（T）の移転を含む第１トランザクションを受信するステップと、ピアツーピア分散型台帳に問い合わせて、トークン（T）と関連付けられた、真正性が証明されているトランザクションを識別することができるかどうかを判定するステップであって、真正性が証明されているトランザクションは、トークン（T）と関連付けられた以前のトランザクションを含み、トークン（T）の正当性が認められている、ステップと、真正性が証明されているトランザクションを識別したことに応じて、トークン（T）は有効であると判定するステップと、を含む。いくつかの実施形態において、本方法は、第２ユーザが、通信ネットワークを介して、第１ユーザから第２ユーザへのトークンの移転を含む第１トランザクションを受信するステップと、権利登録データベースに問い合わせて、トークンの移転を含む第２トランザクションが権利登録データベースに記録されているかどうかを判定するステップと、第２トランザクションが権利登録データベースに記録されていると判定したことに応じて、トークンは有効であると判定するステップと、を含む。
2019516274.tif 000002
【特許請求の範囲】
【請求項１】
暗号通貨量と関連付けられたトークンの有効性を判定する、コンピュータにより実行される方法であって、
通信ネットワークを介して、第１ユーザから第２ユーザへの前記トークンの移転を含む第１トランザクションを受信するステップと、
ピアツーピア分散型台帳に問い合わせて、前記トークンと関連付けられた、真正性が証明されているトランザクションを識別することができるかどうかを判定するステップであって、前記真正性が証明されているトランザクションは、前記トークンと関連付けられた以前のトランザクションを含み、前記トークンの正当性が認められている、ステップと、
真正性が証明されているトランザクションを識別したことに応じて、前記トークンは有効であると判定するステップと、
を含む、方法。
【請求項２】
前記ピアツーピア分散型台帳に問い合わせることは、前記第１トランザクションの前記トークンの真正性が証明されていないと判定したことに応じて、前記ピアツーピア分散型台帳に問い合わせることを含む、請求項１記載の方法。
【請求項３】
前記トークンの真正性が証明されていないと判定することは、前記トークンと関連付けられた引き換えスクリプトであって、前記第１トランザクションへの入力として参照される引き換えスクリプトが、署名権者により署名されていないと判定することを含む、請求項２記載の方法。
【請求項４】
正当性が認められている前記トランザクションの前記トークンは、署名権者により署名されている、請求項１乃至３いずれか一項記載の方法。
【請求項５】
前記署名権者は、前記トークンの発行者及び信頼できるサービス提供者のうちの少なくとも一方を含む、請求項３又は４記載の方法。
【請求項６】
前記ピアツーピア分散型台帳に問い合わせることは、
ａ）前記第１トランザクションにおいて示される以前トランザクションIDを判別することと、
ｂ）前記ピアツーピア分散型台帳に記録されている以前のトランザクションを識別することであって、前記以前のトランザクションのトランザクションIDは、判別された前記以前トランザクションIDに一致する、識別することと、
ｃ）前記以前のトランザクションの引き換えスクリプトが、署名権者により署名されているかどうかを判定することと、
ｄ）前記以前のトランザクションの前記引き換えスクリプトが、署名権者により署名されていると判定したことに応じて、前記以前のトランザクションを正当性が認められている前記トランザクションとして識別することと、
ｅ）前記以前のトランザクションの前記引き換えスクリプトが、署名権者により署名されていないと判定したことに応じて、
前記以前のトランザクションにおいて示される以前トランザクションIDを前記以前トランザクションIDとして判別することと、
前記ピアツーピア分散型台帳に記録されているさらなる以前のトランザクションを前記以前のトランザクションとして識別することであって、前記さらなる以前のトランザクションのトランザクションIDは、前記以前トランザクションIDに一致する、識別することと、
ｆ）さらなる以前のトランザクションが識別されなくなるまで、前記ｃ）〜前記ｅ）を反復的に実行することと、
を含む、請求項１乃至５いずれか一項記載の方法。
【請求項７】
前記ピアツーピア分散型台帳において、真正性が証明されているトランザクションを識別しないことに応じて、前記トークンは有効でないと判定するステップ
をさらに含む、請求項１乃至６いずれか一項記載の方法。
【請求項８】
暗号通貨量と関連付けられたトークンの有効性を判定する、コンピュータにより実行される方法であって、第２ユーザが、
通信ネットワークを介して、第１ユーザから前記第２ユーザへの前記トークンの移転を含む第１トランザクションを受信するステップと、
権利登録データベースに問い合わせて、前記トークンの移転を含む第２トランザクションが前記権利登録データベースに記録されているかどうかを判定するステップと、
前記第２トランザクションが前記権利登録データベースに記録されていると判定したことに応じて、前記トークンは有効であると判定するステップと、
を含む、方法。
【請求項９】
前記第２トランザクションは、前記第１トランザクションよりも時間的に前である、請求項８記載の方法。
【請求項１０】
前記権利登録データベースに問い合わせることは、前記トークンの真正性が証明されていないと判定したことに応じて、前記権利登録データベースに問い合わせることを含む、請求項８又は９記載の方法。
【請求項１１】
前記権利登録データベースは、トークンの移転を含むトランザクションに関連する１つ以上のエントリを含み、各エントリは、トランザクションインジケータと関連付けられており、
前記権利登録データベースに問い合わせることは、
前記第１トランザクションから、前記トークンと関連付けられたトランザクションインジケータを判別することと、
該トランザクションインジケータを、前記権利登録データベースの１つ以上のトランザクションインジケータと比較して、前記第２トランザクションを識別することと、
を含む、請求項８乃至１０いずれか一項記載の方法。
【請求項１２】
前記トランザクションインジケータは、トランザクションIDである、請求項１１記載の方法。
【請求項１３】
前記トークンの真正性が証明されていないと判定することは、前記トークンと関連付けられた第１引き換えスクリプトであって、前記第１トランザクションへの入力として参照される第１引き換えスクリプトが、署名権者により署名されていないと判定することを含む、請求項８乃至１２いずれか一項記載の方法。
【請求項１４】
前記署名権者は、前記トークンの発行者及び信頼できるサービス提供者のうちの少なくとも一方を含む、請求項１３記載の方法。
【請求項１５】
前記第２トランザクションが前記権利登録データベースに記録されていないと判定したことに応じて、前記トークンは有効でないと判定するステップ
をさらに含む、請求項８乃至１４いずれか一項記載の方法。
【請求項１６】
前記第２トランザクションが前記権利登録データベースに記録されていないと判定したことに応じて、ピアツーピア分散型台帳に問い合わせて、前記トークンと関連付けられた、真正性が証明されているトランザクションを識別することができるかどうかを判定するステップであって、前記真正性が証明されているトランザクションは、前記トークンと関連付けられた以前のトランザクションを含み、前記トークンの正当性が認められている、ステップと、
真正性が証明されているトランザクションを識別したことに応じて、前記トークンは有効であると判定するステップと、
をさらに含む、請求項８乃至１５いずれか一項記載の方法。
【請求項１７】
第１パーティにより、発行者により発行されたトークンの移転を記録するための権利登録データベースを維持管理する、コンピュータにより実行される方法であって、各トークンは、暗号通貨量と関連付けられ、前記方法は、
前記発行者により発行されたトークンの移転を含むトランザクションについて、ピアツーピア分散型台帳をモニタリングするステップと、
前記ピアツーピア分散型台帳に記録されている、前記発行者により発行されたトークンの移転を含む第１トランザクションを判別したことに応じて、該トークンの該移転を前記権利登録データベースに記録するステップと、
を含む、方法。
【請求項１８】
前記ピアツーピア分散型台帳をモニタリングすることは、
前記ピアツーピア分散型台帳に記録されているトランザクションの以前トランザクションIDを判別することと、
判別された前記以前トランザクションIDを、トランザクションIDのセットと比較することであって、前記セットの各トランザクションIDは、前記発行者により発行されたトークンと関連付けられたトランザクションを識別する、比較することと、
判別された前記以前トランザクションIDが、前記トランザクションIDのセットのうちの１つのトランザクションIDに一致することに応じて、前記以前トランザクションIDと関連付けられたトランザクションを、前記発行者により発行されたトークンの移転を含む前記第１トランザクションのレコードとして決定することと、
をさらに含む、請求項１７記載の方法。
【請求項１９】
前記ピアツーピア分散型台帳をモニタリングすることは、
前記発行者により発行されたトークンと関連付けられたトランザクションのターゲットトランザクションIDを判別することと、
前記ターゲットトランザクションIDを、前記ピアツーピア分散型台帳に記録されているトランザクションの以前トランザクションIDと比較することと、
前記ターゲットトランザクションIDが、前記ピアツーピア分散型台帳に記録されている前記トランザクションのうちの１つのトランザクションの以前トランザクションIDに一致することに応じて、前記ピアツーピア分散型台帳に記録されている前記トランザクションのうちの前記１つのトランザクションを、前記第１トランザクションのレコードとして決定することと、
をさらに含む、請求項１７記載の方法。
【請求項２０】
前記トークンの前記移転を前記権利登録データベースに記録することと関連付けられたエントリに前記発行者の署名を付加することにより、前記エントリの真正性を証明するステップ
をさらに含む、請求項１７乃至１９いずれか一項記載の方法。
【請求項２１】
前記権利登録データベースを維持管理することは、前記発行者及び許可されたサービス提供者のうちの少なくとも一方により実行される、請求項１７乃至２０いずれか一項記載の方法。
【請求項２２】
前記権利登録データベースは、分散ハッシュテーブルを含む、請求項１７乃至２１いずれか一項記載の方法。
【請求項２３】
前記分散ハッシュテーブルは、前記発行者により発行された前記トークンと関連付けられた契約を含む、請求項２２記載の方法。
【請求項２４】
暗号通貨量と関連付けられたトークンの有効性を判定するトークン検証システムであって、
検証アプリケーションを格納するためのメモリと、
プロセッサと、
を有し、
前記プロセッサは、請求項１乃至１６いずれか一項記載の方法を実行する前記検証アプリケーションを実行するよう構成されている、トークン検証システム。
【請求項２５】
トークンの移転を記録するための権利登録データベースを維持管理する権利登録維持管理システムであって、各トークンは、暗号通貨量と関連付けられ、前記権利登録維持管理システムは、
維持管理アプリケーションを格納するためのメモリと、
プロセッサと、
を有し、
前記プロセッサは、請求項１７乃至２３いずれか一項記載の方法を実行する前記維持管理アプリケーションを実行するよう構成されている、権利登録維持管理システム。
【請求項２６】
プロセッサにより実行されたときに前記プロセッサに請求項１乃至２３いずれか一項記載の方法を実行させるマシン読み取り可能な命令を含むコンピュータソフトウェアプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、ビットコインブロックチェーン等であるがこれに限定されるものではない分散型台帳技術に関する。記載されている実施形態は、ブロックチェーンベースの暗号通貨のためのトークンを検証する、セキュリティが高められたシステム及び方法に関する。いくつかの実施形態は、署名権者により電子的に副署されていないブロックチェーントランザクション（TXs）と関連付けられたトークンを検証することに関する。他の実施形態は、コンピューティングノード間におけるブロックチェーン実装型のトークンの移転及び通信を可能にして向上させるよう構成されているシステム及びコンピュータにより実行される制御方法に関する。
【背景技術】
【０００２】
本文書において、全ての形態の電子的でコンピュータベースの分散型台帳を含むように「ブロックチェーン」という用語が使用される。これらは、ピアツーピアのコンセンサスベースのブロックチェーン及びトランザクションチェーン技術、認可型台帳及び認可不要型台帳、共有台帳、並びにこれらの変形を含む。他のブロックチェーン実装も提案及び開発されているが、ブロックチェーン技術の最も広く知られている用途はビットコイン台帳である。本開示において、ビットコインが、便宜及び例示の目的で参照され得るが、本発明は、ビットコインブロックチェーンとともに使用することに限定されるものではなく、代替のブロックチェーン実装及びプロトコルも本発明の範囲内に属することに留意すべきである。
【０００３】
ブロックチェーンは、トランザクションから構成されるブロックから構成されるコンピュータベースの非中央集権型の分散型システムとして実装されるピアツーピア電子台帳である。各トランザクション（TX）は、ブロックチェーンシステムにおける参加者の間のデジタル資産の移管を符号化したデータ構造であり、少なくとも１つの入力及び少なくとも１つの出力を含む。各ブロックは、前のブロックのハッシュを含み、ブロックが一緒にチェーン状に連なって、ブロックチェーンの最初からブロックチェーンに書き込まれた全てのトランザクションの永続的で変更できないレコードが作成される。トランザクションは、その入力及び出力に埋め込まれたスクリプトとして知られる小さなプログラムを含み、これらは、トランザクションの出力がどのように誰によってアクセスされ得るかを指定する。ビットコインプラットフォームにおいて、これらのスクリプトは、スタックベースのスクリプト言語を使用して記述される。
【０００４】
トランザクションがブロックチェーンに書き込まれるためには、これが「検証」されなければならない。ネットワークノード（マイナー）は、有効でないトランザクションがネットワークから拒否されることで、各トランザクションが有効であることを保証するための作業を実行する。ノードにインストールされたソフトウェアクライアントは、そのロッキングスクリプト及びアンロッキングスクリプトを実行することにより、未使用トランザクション（UTXO）に対してこの検証作業を実行する。ロッキングスクリプト及びアンロッキングスクリプトの実行によりTRUE（真）と評価された場合、トランザクションは有効であり、トランザクションはブロックチェーンに書き込まれる。したがって、トランザクションがブロックチェーンに書き込まれるためには、トランザクションは、ｉ）トランザクションを受信した第１ノードにより検証され−トランザクションが検証された場合には、このノードは、ネットワークにおける他のノードにトランザクションを中継し−、ｉｉ）マイナーにより構築された新たなブロックに追加され、ｉｉｉ）マイニングされなければならない、すなわち、過去のトランザクションの公開台帳に追加されなければならない。
【０００５】
ブロックチェーン技術が、暗号通貨実装の使用について最も広く知られているが、デジタルアントレプレナーは、新たなシステムを実装するために、ビットコインが基づく暗号セキュリティシステムとブロックチェーン上に格納され得るデータとの両方の使用を模索し始めている。ブロックチェーンが、暗号通貨の領域に限定されない自動化されたタスク及びプロセスに使用できれば、非常に有利であろう。そのようなソリューションは、それらの用途においてより多様でありながら、ブロックチェーンの利点（例えば、イベントの永続的で改ざんされにくいレコードの分散処理等）を利用することができるであろう。
【０００６】
現在の研究の一領域は、「スマートコントラクト（契約）」の実装にブロックチェーンを使用することである。スマートコントラクトは、マシンが読み取り可能な契約又は合意の条件の実行を自動化するように設計されたコンピュータプログラムである。自然言語で記述されるであろう従来の契約とは異なり、スマートコントラクトは、結果を生成するために入力を処理することができるルールを含み、次いで、その結果に応じてアクションを実行させることができる、マシンが実行可能なプログラムである。商取引に関して、例えば、これらは、財産権及び／又は資産の移転を伴うことがある。そのような資産は、不動産、（有形財産及び無形財産の両方を含む）人的財産、例えばソフトウェアといったデジタル資産、又は任意の他のタイプの資産を含み得る。デジタル経済において、交換及び移転が、とてつもない距離を超えてタイムリーに実行されることになるという予測がしばしばなされている。この予測は、実際の技術的制限とともに、契約、流通証券等を表す文書のハードコピーや有形資産自体の現物引き渡し等の従来形式の資産移転は望ましくない、ということを意味する。したがって、スマートコントラクトは、移転の高められた管理、効率性、及びスピードを提供することができる。
【０００７】
ブロックチェーン関連の別の関心領域は、ブロックチェーンを介して現実世界のエンティティを表現及び移転するための「トークン」（又は「カラードコイン」）の使用である。潜在的に機密の又は秘密のアイテムは、識別可能な意味又は値を有しないトークンにより表現され得る。したがって、トークンは、現実世界のアイテムがブロックチェーンから参照されることを可能にする識別子として機能する。トークン化の利用は、ブロックチェーン上のデジタルエンティティの伝達、移転、及び検証の点において、高められたセキュリティ及び管理を提供する。
【０００８】
本明細書に含まれている文書、動作、材料、デバイス、製品等の記載は、これらの事項のいずれか又は全てが、従来技術の基礎の一部を形成している、あるいは、本出願の各請求項の優先日前に存在していたような、本開示に関連する分野における共通の一般的知識であった、という自認として解釈されるべきではない。
【０００９】
本明細書全体を通して、「備える、有する、含む（comprise）」という語、又は「comprises」若しくは「comprising」等の変形は、記載されている要素、整数若しくはステップ、又は、要素、整数若しくはステップのグループの包含を意味し、任意の他の要素、整数若しくはステップ、又は、要素、整数若しくはステップのグループの除外を意味するものではないことが理解されよう。
【発明の概要】
【００１０】
本発明の実施形態は、特許請求の範囲において定められるものとして提供される。
【００１１】
本発明は、検証又は認証方法及び対応するシステムとして説明され得る。なぜならば、本発明は、１つ以上のトークンを含む又は１つ以上のトークンに関するブロックチェーントランザクションであって、署名権者によりデジタル署名されているブロックチェーントランザクションの決定及び／又は識別を可能にし得るからである。これは、トークン発行者又は別のパーティであり得る。この検証技術の結果として、セキュリティが高められる。
【００１２】
いくつかの実施形態は、暗号通貨量と関連付けられたトークンの有効性を判定する、コンピュータにより実行される方法に関する。本方法は、第２ユーザが：通信ネットワークを介して、第１ユーザから第２ユーザへのトークンの移転を含む第１トランザクションを受信するステップ；ピアツーピア分散型台帳（ブロックチェーン）に問い合わせて、トークンと関連付けられた、真正性が証明されているトランザクションを識別することができるかどうかを判定するステップであって、真正性が証明されているトランザクションは、トークンと関連付けられた以前のトランザクションを含み、トークンの正当性が認められている、ステップ；及び、真正性が証明されているトランザクションを識別したことに応じて、トークンは有効であると判定するステップを含み得る。
【００１３】
いくつかの実施形態において、ピアツーピア分散型台帳に問い合わせることは、第１トランザクションのトークンの真正性が証明されていないと判定したことに応じて、ピアツーピア分散型台帳に問い合わせることを含む。
【００１４】
いくつかの実施形態において、トークンの真正性が証明されていないと判定することは、トークンと関連付けられた引き換えスクリプト（redeem  script）であって、第１トランザクションへの入力として参照される引き換えスクリプトが、署名権者により（暗号的に）署名されていないと判定することを含む。正当性が認められているトランザクションのトークンは、署名権者により署名され得る。例えば、署名権者は、トークンの発行者及び信頼できるサービス提供者のうちの少なくとも一方を含み得る。
【００１５】
いくつかの実施形態において、ピアツーピア分散型台帳に問い合わせることは、ａ）第１トランザクションにおいて示される以前トランザクションIDを判別すること；ｂ）ピアツーピア分散型台帳に記録されている以前のトランザクションを識別することであって、以前のトランザクションのトランザクションIDは、判別された以前トランザクションIDに一致する、識別すること；ｃ）以前のトランザクションの引き換えスクリプトが、署名権者により署名されているかどうかを判定すること；ｄ）以前のトランザクションの引き換えスクリプトが、署名権者により署名されていると判定したことに応じて、以前のトランザクションを正当性が認められているトランザクションとして識別すること；ｅ）以前のトランザクションの引き換えスクリプトが、署名権者により署名されていないと判定したことに応じて、以前のトランザクションにおいて示される以前トランザクションIDを以前トランザクションIDとして判別すること、ピアツーピア分散型台帳に記録されているさらなる以前のトランザクションを以前のトランザクションとして識別することであって、さらなる以前のトランザクションのトランザクションIDは、以前トランザクションIDに一致する、識別すること；及び、ｆ）さらなる以前のトランザクションが識別されなくなるまで、ステップｃ）〜ｅ）を反復的に実行することを含む。
【００１６】
したがって、本発明は、最初のトランザクション又は「トリガ」トランザクションから始まって、トランザクションの論理的なパス又は階層を進んで、トークンの有効性が確立される若しくは少なくとも十分に証明されるか又は検証が失敗するまで、ブロックチェーン上のそれぞれのブロック内の異なるトランザクションを調べるための、上記のステップのうちの１つ以上のステップの実行を含み得る。
【００１７】
いくつかの実施形態において、本方法は、ピアツーピア分散型台帳において、真正性が証明されているトランザクションを識別しないことに応じて、トークンは有効でないと判定するステップをさらに含む。
【００１８】
いくつかの実施形態は、暗号通貨量と関連付けられたトークンの有効性を判定する、コンピュータにより実行される方法であって、第２ユーザが：通信ネットワークを介して、第１ユーザから第２ユーザへのトークンの移転を含む第１トランザクションを受信するステップ；権利登録データベースに問い合わせて、トークンの移転を含む第２トランザクションが権利登録データベースに記録されているかどうかを判定するステップ；第２トランザクションが権利登録データベースに記録されていると判定したことに応じて、トークンは有効であると判定するステップを含む、方法に関する。例えば、第２トランザクションは、第１トランザクションよりも時間的に前であり得る。
【００１９】
いくつかの実施形態において、権利登録データベースに問い合わせることは、トークンの真正性が証明されていないと判定したことに応じて、権利登録データベースに問い合わせることを含む。
【００２０】
いくつかの実施形態において、権利登録データベースは、トークンの移転を含むトランザクションに関連する１つ以上のエントリを含み、各エントリは、トランザクションインジケータと関連付けられており、権利登録データベースに問い合わせることは、第１トランザクションから、トークンと関連付けられたトランザクションインジケータを判別すること；及び、このトランザクションインジケータを、権利登録データベースの１つ以上のトランザクションインジケータと比較して、第２トランザクションを識別することを含む。例えば、トランザクションインジケータは、トランザクションIDを含み得る。
【００２１】
いくつかの実施形態において、トークンの真正性が証明されていないと判定することは、トークンと関連付けられた第１引き換えスクリプトであって、トランザクションへの入力として参照される第１引き換えスクリプトが、署名権者により署名されていないと判定することを含む。署名権者は、トークンの発行者及び信頼できるサービス提供者のうちの少なくとも一方を含み得る。
【００２２】
いくつかの実施形態において、本方法は、第２トランザクションが権利登録データベースに記録されていないと判定したことに応じて、トークンは有効でないと判定するステップをさらに含む。
【００２３】
いくつかの実施形態において、本方法は、第２トランザクションが権利登録データベースに記録されていないと判定したことに応じて、ピアツーピア分散型台帳に問い合わせて、トークンと関連付けられた、真正性が証明されているトランザクションを識別することができるかどうかを判定するステップであって、真正性が証明されているトランザクションは、トークンと関連付けられた以前のトランザクションを含み、トークンの正当性が認められている、ステップ；及び、真正性が証明されているトランザクションを識別したことに応じて、トークンは有効であると判定するステップをさらに含む。
【００２４】
いくつかの実施形態において、第１パーティにより、発行者により発行されたトークンの移転を記録するための権利登録データベースを維持管理する、コンピュータにより実行される方法であって、各トークンは、暗号通貨量と関連付けられ、本方法は、発行者により発行されたトークンの移転を含むトランザクションについて、ピアツーピア分散型台帳をモニタリングするステップ；及び、ピアツーピア分散型台帳に記録されている、発行者により発行されたトークンの移転を含む第１トランザクションを判別したことに応じて、トークンの移転を権利登録データベースに記録するステップを含む、方法に関する。
【００２５】
いくつかの実施形態において、ピアツーピア分散型台帳をモニタリングすることは、ピアツーピア分散型台帳に記録されているトランザクションの以前トランザクションIDを判別すること；判別された以前トランザクションIDを、トランザクションIDのセットと比較することであって、セットの各トランザクションIDは、発行者により発行されたトークンと関連付けられたトランザクションを識別する、比較すること；及び、判別された以前トランザクションIDが、トランザクションIDのセットのうちの１つのトランザクションIDに一致することに応じて、以前トランザクションIDと関連付けられたトランザクションを、発行者により発行されたトークンの移転を含む第１トランザクションのレコードとして決定することをさらに含む。
【００２６】
いくつかの実施形態において、ピアツーピア分散型台帳をモニタリングすることは、発行者により発行されたトークンと関連付けられたトランザクションのターゲットトランザクションIDを判別すること；ターゲットトランザクションIDを、ピアツーピア分散型台帳に記録されているトランザクションの以前トランザクションIDと比較すること；及び、ターゲットトランザクションIDが、ピアツーピア分散型台帳に記録されているトランザクションのうちの１つのトランザクションの以前トランザクションIDに一致することに応じて、ピアツーピア分散型台帳に記録されているトランザクションのうちの１つのトランザクションを、第１トランザクションのレコードとして決定することをさらに含む。
【００２７】
いくつかの実施形態において、本方法は、トークンの移転を権利登録データベースに記録することと関連付けられたエントリに発行者の署名を付加することにより、エントリの真正性を証明するステップをさらに含む。
【００２８】
いくつかの実施形態において、権利登録データベースを維持管理することは、発行者及び許可されたサービス提供者のうちの少なくとも一方により実行される。
【００２９】
いくつかの実施形態において、権利登録データベースは、分散ハッシュテーブルを含む。例えば、分散ハッシュテーブルは、発行者により発行されたトークンと関連付けられた契約を含み得る。
【００３０】
いくつかの実施形態は、暗号通貨量と関連付けられたトークンの有効性を判定するトークン検証システムであって、検証アプリケーションを格納するためのメモリ及びプロセッサを有し、プロセッサは、上述した方法のうちのいずれか１つを実行する検証アプリケーションを実行するよう構成されている、トークン検証システムに関する。
【００３１】
いくつかの実施形態は、トークンの移転を記録するための権利登録データベースを維持管理する権利登録維持管理システムであって、各トークンは、暗号通貨量と関連付けられ、本権利登録維持管理システムは、維持管理アプリケーションを格納するためのメモリ及びプロセッサを有し、プロセッサは、上述した方法のうちのいずれか１つを実行する維持管理アプリケーションを実行するよう構成されている、権利登録維持管理システムに関する。
【００３２】
いくつかの実施形態は、プロセッサにより実行されたときにプロセッサに上述した方法のうちのいずれか１つを実行させるマシン読み取り可能な命令を含むコンピュータソフトウェアプログラムに関する。
【図面の簡単な説明】
【００３３】
本開示の例が、図面を参照して説明される。
【図１】いくつかの実施形態に従った、トークンを作成及び／又は移転する例示的なシステムの概略図。
【図２】トークンを作成することを含む、発行者と第１ユーザとの間の第１タイプのトランザクションの例を示す図。
【図３】いくつかの実施形態に従った、トークンを作成する、コンピュータにより実行される方法の処理フロー図。
【図４】トークンを移転することを含む、第１ユーザと第２ユーザとの間の第２タイプのトランザクションの例を示す図。
【図５】いくつかの実施形態に従った、トークンの移転を記録するための権利登録データベースを維持管理する、コンピュータにより実行される方法の処理フロー図。
【図６】いくつかの実施形態に従った、トークンを検証する、コンピュータにより実行される方法の処理フロー図。
【図７】いくつかの実施形態に従った、トークンを検証する、コンピュータにより実行される方法の処理フロー図。
【図８】いくつかの実施形態に従った、図１のシステムの処理デバイスの概略的な例を示す図。
【発明を実施するための形態】
【００３４】
記載されている実施形態は、例えばビットコインといった、ブロックチェーンベースの暗号通貨と併せて実現されるトークンを検証するシステム及びコンピュータにより実行される方法に関する。いくつかの実施形態は、署名権者により電子的に副署されていないトランザクションと関連付けられたトークンを検証することに関する。他の実施形態は、トークンの移転を記録するための権利登録データベースを維持管理するするシステム及びコンピュータにより実行される方法に関する。トークンは、何らかのタイプの、又は、物理的な、電子的な、デジタルな、若しくは抽象的なエンティティ又は資産と関連付けられる表現又は識別子であり得る。
【００３５】
いくつかの実施形態は、暗号通貨量（B1）と関連付けられたトークン（T）の有効性を判定するシステム及びコンピュータにより実行される方法に関し、トークン（T）は、例えば、トークン（T）の移転を含む（もたらす）ブロックチェーントランザクションTxによって、第１ユーザ（A）から第２ユーザ（B）に移転される。いくつかの実施形態において、トークン（T）は、例えばトークン（T）の発行者又は信頼できるサービス提供者等の署名権者により、その真正性が証明されていない。
【００３６】
いくつかの実施形態において、ピアツーピア分散型台帳（ブロックチェーン）は、トークン（T）と関連付けられた、真正性が証明されているトランザクションを識別することができるかどうかを判定するために問い合わせられ得る。これは、ビットコインブロックチェーンであることもないこともある。例えば、真正性が証明されているそのようなトランザクションは、トークン（T）と関連付けられた以前のトランザクションを含み得、ここで、トークン（T）の正当性が認められている。真正性が証明されているトランザクションが識別されたことに応じて、トークン（T）は、有効であると判定され得る。「以前の」トランザクションとは、以前に、すなわち、時間的に前に、ブロックチェーンに書き込まれたトランザクションを意味する。ブロック（したがってトランザクション）は、時系列順にブロックチェーンに書き込まれることを思い出されたい。以前のトランザクションは、ブロックのチェーンにおいてより前にあるトランザクション、すなわち、発生源の発端ブロックに近い方のトランザクション、と表現され得る。
【００３７】
いくつかの実施形態において、権利登録格納リソース、例えば、データベースは、トークン（T）の移転を含む第２トランザクションが権利登録ストレージに登録又は記録されているかどうかを判定するために問い合わせられ得、ここで、第２トランザクションは、第１トランザクションよりも時間的に前である。第２トランザクション（T2）が権利登録ストアに記録されていると判定されたことに応じて、トークン（T）は、有効であると判定され得る。
【００３８】
いくつかの実施形態において、トークン（T）の発行者（I）等のパーティ（P）は、トークンの移転を含むトランザクションを権利登録ストレージに記録することにより、権利登録ストレージを維持管理する役割を担い得る。
【００３９】
ここで図１を参照すると、発行者（I）３と関連付けられた第１処理デバイス１３、第１ユーザ（A）５と関連付けられた第２処理デバイス１５、及び第２ユーザ（B）７と関連付けられた第３処理デバイス１７を含むシステム１が示されている。第１処理デバイス１３、第２処理デバイス１５、及び第３処理デバイス１７は、通信ネットワーク８を介して、互いと通信することができる。第１処理デバイス１３はまた、関連付けられたデータストア１１を有してもよいし、例えば、直接的に又は通信ネットワーク８を介して、関連付けられたデータストア１１と通信してもよい。
【００４０】
第１処理デバイス１３が、単一のノードとして図示されているが、第１処理デバイス１３は、発行者（I）３と関連付けられた１つ以上のノードを含んでもよく、第１処理デバイス１３により実行されるとして説明される方法の１つ以上のステップは、第１処理デバイス１３の異なる且つ／又は複数のノードに分散されて第１処理デバイス１３の異なる且つ／又は複数のノードにおいて実行されてもよいことが理解されよう。
【００４１】
いくつかの実施形態において、第２処理デバイス１５及び第３処理デバイス１７は、第１ユーザ５及び第２ユーザ７によりそれぞれ使用される、コンピュータ、モバイル通信デバイス、又は他の電子デバイスであり得る。他の例において、第２処理デバイス１５及び第３処理デバイス１７は、端末又は他のインタフェースを介して第１ユーザ及び第２ユーザによりそれぞれアクセス可能である仮想マシンであり得る。
【００４２】
発行者（I）３は、トークンを作成し、例えば、銀行、別の金融機関、造幣局、会社等であり得る。しかしながら、他の例において、発行者は、金融機関ではないことがあり、本発明は、金融に特化した用途に限定されるものではない。第１ユーザ（A）５は、発行者（I）３に対して、トークンの作成を要求することもあるし、トークンの価額（value）の一部又は全てを発行者（I）３と引き換えるよう要求することもあるし、且つ／又は、トークンの価額の一部又は全てを第２ユーザ（B）７に移転するよう要求することもある。同様に、第２ユーザ（B）７は、発行者（I）３に対して、トークンの作成を要求することもあるし、トークンの価額の一部又は全てを発行者（I）３と引き換えるよう要求することもあるし、且つ／又は、トークンの価額の一部又は全てを第１ユーザ（A）５に移転するよう要求することもある。
【００４３】
システム１はまた、トランザクションを記録するためのピアツーピア分散型台帳（ブロックチェーン）９を管理するための１つ以上の処理デバイス１９を含む。詳細には、１つ以上の処理デバイス１９は、例えば、第１処理デバイス１３、第２処理デバイス１５、及び／又は第３処理デバイス１７それぞれから、通信ネットワーク８を介して、トランザクションを受信し、トランザクションを記録するよう構成され得る。ピアツーピア分散型台帳９の例は、ビットコインプロトコルに基づくトランザクション（TXs）の分散ネットワークであるブロックチェーンを含む。したがって、いくつかの実施形態において、１つ以上の処理デバイス１９は、「マイナー」と関連付けられ得る。したがって、本発明は、ブロックチェーン実装型の分散ネットワークと通信する１つ以上の処理デバイス１９を含む。ネットワーク及び様々なデバイスは、本発明を実施するために相互通信する。
【００４４】
いくつかの実施形態において、システム１はまた、トークンの移転と関連付けられたトランザクションを記録するための権利登録データベース２３を管理するための１つ以上の処理デバイス２１を含む。１つ以上の処理デバイス２１は、通信ネットワーク８を介して、第１処理デバイス１３、第２処理デバイス１５、及び／若しくは第３処理デバイス１７、並びに／又は１つ以上の処理デバイス１９と通信することができる。詳細には、１つ以上の処理デバイス２１は、トークン（T）の移転を含むトランザクションに関連するデータを受信して記録するよう構成され得る。
【００４５】
トークンを伴うトランザクションの概要
トークンを伴う３つの一般的なタイプのトランザクション、すなわち、発行者（I）３によるトークンの作成、第１ユーザ（A）５又は第２ユーザ（B）７による発行者（I）３とのトークンの価額の一部又は全ての引き換え、第１ユーザ（A）５又は第２ユーザ（B）７による第２ユーザ（B）７又は第１ユーザ（A）５へのトークンの価額の一部又は全ての移転、が存在する。
【００４６】
図２を参照すると、第１トークン（T1）の作成は、概して、第１ユーザ（A）が、法定通貨（例えば＄1000AUD）を発行者（I）３に移転し、この法定通貨と交換で、発行者（I）が、これがトークン価額を有するように第１暗号通貨量（B1）を「トークン化」し、この第１暗号通貨量（B1）を第１ユーザ（A）に移転することを伴う。第１トークン（T1）は、発行者（I）が、指定された法定通貨額（例えば＄1000AUD）を第１トークン（T1）の保有者と引き換えることについて合意する契約等の契約を表し得る。したがって、第１トークン（T1）は、流通証券に類似するものであり得る。具体的な条件に応じて、第１ユーザ（A）５は、将来において、第１トークン（T1）を、デポジットされた法定通貨と関連付けられた価額に引き換えることができる。このような条件はまた、第１ユーザ（A）５が、トークンの価額の少なくとも一部を第２ユーザ（B）に移転させることを許可することもある。このような条件は、トークンに固有であることもあるし、ユーザ５、７と発行者（I）３との間の一般条件であることもある。
【００４７】
トークンを作成する方法の概要
トークンを作成する方法３００が、図２及び図３を参照して以下で詳細に説明される。詳細には、方法３００は、３１０において、第１トークン（T1）との関連付けのための第１暗号通貨量（B1）を割り当てることを含む。この方法は、３１２において、第１引き換えスクリプト（RS1）の第１ハッシュ（H1）を決定することをさらに含み、ここで、第１引き換えスクリプト（RS1）は、第１トークン（T1）と関連付けられた情報を含む少なくとも第１メタデータ（MD1）と、第１ユーザ公開鍵（P1A）と、発行者（I）と関連付けられた第１発行者公開鍵（P1I）と、に基づき、第１発行者公開鍵（P1I）は、第１発行者秘密鍵（V1I）と暗号ペアを形成する。方法３００はまた、３１４において、通信ネットワーク８を介して、第１データ出力（O1）をブロックチェーン９に送信することを含む。第１データ出力（O1）は、第１ユーザ（A）５への第１暗号通貨量（B1）のトランザクションのインジケーションと、第１ユーザ（A）５及び発行者（I）と関連付けられた第１トークン（T1）を提供するために、第１暗号通貨量（B1）と関連付けられた第１ハッシュ（H1）と、を含む。
【００４８】
したがって、方法３００は、トークンの作成を可能にし、それにより、トークンのレコードがブロックチェーン９に送信されることを可能にする。このトランザクションをブロックチェーン９に記録する利点は、第１ユーザ（A）５等の受取者がトークン（T1）の存在を検証することを可能にし得ることである。さらに、第１トークン（T1）と関連付けられた情報を含む少なくとも第１メタデータ（MD1）はハッシュ化されるので、これは、トークンと関連付けられた情報に対する、（公開レコード上にある）トランザクションの検証を可能にする。一例において、第１トークン（T1）と関連付けられた情報は、契約の条件であり得る。したがって、ハッシュ化される第１引き換えスクリプトに条件を含めることは、有利なことに、何らかの変化が第１ハッシュ（H1）を変更するように条件を変えることができないという安堵さを、第１ユーザ（A）５（又は任意の他のユーザ）に提供することができる。第１ハッシュ（H1）が、第１トークン（T1）を作成したときにブロックチェーン９に送信されて記録されたので、同一の第１ハッシュ（H1）を提供する条件を後の時間に変えることは不可能である（又は難しい）。
【００４９】
トークンを作成する詳細な方法
図３を参照すると、いくつかの実施形態に従った、第１トークン（T1）を作成する方法３００が示されている。この例において、トークンの作成は、第１ユーザ（A）５が、発行者（I）３に対して現金をデポジットし、その交換としての、デポジットされた現金を表すトークンのコンテキストにおいて説明される。しかしながら、これは、非限定的な例であり、トークンは、他のトランザクションのコンテキストにおいて作成されてもよいことを理解されたい。例えば、トークンは、任意の他の契約、流通証券、有形財産等を表すことができる。
【００５０】
トークンについての条件についての合意
第１ユーザ（A）５は、３０２において、第１トークン（T1）を求める要求を、第２処理デバイス１５から、発行者（I）３と関連付けられた第１処理デバイス１３に送信することにより、第１トークン（T1）の作成を働きかける。一例において、第１ユーザ（A）５は、例えば＄1000AUDといった法定通貨を、トークン（T1）においてこの額を有するための要求をもって、デポジットすることにより、この要求を行う。この要求は、契約についてのオファーを含み得、これは、契約の１つ以上の条件を含み得る。例えば、第１ユーザ（A）５は、＄1000AUDのデポジットと関連付けられるトークンが、暗号通貨に対する固定ペギングレート（pegging  rate）を有するべきであるということを、この要求に含めることができる。例えば、ペギングレートは1000satoshis/cent（AUD）であるという要求である。トークンをどのように引き換えることができるか、口座維持手数料、トランザクションフィー等、他の条件がオファーに含められることがあることを理解されたい。
【００５１】
発行者（I）の第１処理デバイス１３は、３０４において、通信ネットワーク８を介して、第１トークン（T1）を求める第１ユーザ（A）５からの要求を受信し、いくつかの場合において、条件の少なくとも一部を受信する。いくつかの実施形態において、発行者（I）は、３０６において、この要求を承諾するか、この要求の条件の変更を含むカウンターオファーを提案するか、又は、この要求を拒否するか、を決定する。いくつかの実施形態において、方法３００は、発行者（I）により、通信ネットワーク８を介して、ステップ３０６における決定の結果を第１ユーザ（A）５に送信することを含み得る。
【００５２】
いくつかの実施形態において、発行者（I）に送信される要求は、単に、第１トークン（T1）を求める要求を含むだけであり得る。この場合、発行者（I）は、条件を含むオファーを第１ユーザ（A）５に送信することができる。次いで、第１ユーザ（A）５は、このオファーを承諾するか、カウンターオファーを提案するか、又は、このオファーを拒否するか、を決定することができ、次いで、このことが、発行者（I）に送信される。発行者（I）及び第１ユーザ（A）５が合意するまで、複数回の往復のオファー及びカウンターオファーが、発行者（I）と第１ユーザ（A）５との間で送受信されることがあることが理解されよう。いくつかの実施形態において、条件は、標準化され得、それにより、ユーザは、方法３００におけるステップを実行することにより、条件を承諾する。一例において、発行者（I）は、第１ユーザ（A）５を含め、その顧客のためのトークンについての標準化されたオファーを有することがある。トークンについてのそのようなオファーは、例えば公開取引所上に又は発行者のウェブサイト上に、公にリストされ得る。継続的なオファーは、例えば、電子メールにより、アプリケーションを通じて、又は、セキュアなウェブサイトにログインすることにより、発行者（I）により第１ユーザ（A）５に秘密に提供されることもある。トークンと関連付けられた契約条件は、データストア１１に格納されることもあるし、格納のためにサードパーティに送信されることもあるし、トレントされる（torrented）こともある。いくつかの実施形態において、条件は、分散ハッシュテーブル（DHT）に格納され得る。
【００５３】
第１ユーザ公開鍵の決定
方法３００は、３０８において、第１ユーザ（A）５と関連付けられる暗号ペアの第１ユーザ公開鍵（P1A）を決定することを含み、ここで、暗号ペアは、第１ユーザ秘密鍵（V1A）及び第１ユーザ公開鍵（P1A）を含む。一例において、第１ユーザ公開鍵（P1A）は、第１ユーザ（A）５から通信ネットワーク８を介して発行者（I）に送信され得る。別の例において、第１ユーザ公開鍵（P1A）は、データストア１１に格納され得る（例えば、第１ユーザ（A）５の登録中に受信されて格納され得る）。したがって、第１ユーザ公開鍵（P1A）を決定するステップ３０８は、データストア１１からこの鍵を取得することを含み得る。さらに別の例において、第１ユーザ公開鍵（P1A）は、サードパーティから通信ネットワーク８を介して受信され得る。サードパーティは、例えば、認証局等、公開ディレクトリとして機能する信頼できるサードパーティを含み得る。
【００５４】
トークンとの関連付けのための第１暗号通貨量の割り当て
方法３００は、３１０において、第１トークン（T1）との関連付けのための第１暗号通貨量（B1）を割り当てることを含む。第１トークン（T1）を伴うトランザクションのレコードがピアツーピア分散型台帳（この例ではブロックチェーン）に記録されるためには、トークンは、暗号通貨量と関連付けられなければならない。そして、その暗号通貨量が、発行者（I）３から第１ユーザ（A）５へのトランザクションとして、ブロックチェーンに記録される。
【００５５】
第１トークン（T1）との関連付けのための第１暗号通貨量（B1）の割り当ては、トークン価額の比率に基づき得る。例えば、ペギングレート（PR1）が、第１トークン（T1）について指定され得る。したがって、３１０において第１暗号通貨量（B1）を割り当てることは、ペギングレート（PR1）及び第１トークン価額（TV1）に基づいて、第１暗号通貨量（B1）を決定することを含み得る。例示的な例として、ペギングレート（PR1）は、1000satoshis/cent（AUD）であり得、第１トークン価額（TV1）は、＄1000AUDである。したがって、第１暗号通貨量（B1）は、10000000であり得る。
【００５６】
トークンのために割り当てられる暗号通貨量は、以下の考慮事項のうちのいくつかにより影響が及ぼされ得る。第１に、割り当てられる暗号通貨量は、理想的には、トークンの価額（「トークン価額」）よりも低い市場価額を有する（この目的で、これは、トークン価額を参照することなく、これが価額を有すると仮定すると、暗号通貨自体の市場価額を意味する）。これは、トークンとしてではなく基礎となる価額について暗号通貨量を使用する動機づけがないようにするので、望ましい。これは、現金コインが造られる元である金属の価額のために現金コインを溶かす欲求がないように、現金コインが造られる元である金属よりも高いように現金コインの額面価額を有することが望ましい場合における、現金コインに類似するものであり得る。いくつかの例において、トークン価額は、暗号通貨量の基礎となる価額よりも数倍大きい。しかしながら、何らかのトークンは、固定トークン価額又は容易に決定可能なトークン価額を有しないことがあることを理解されたい。例えば、トークンは、作業を実行する契約を表すことがあり、これにより、価額は、日によって変わり得る。他の例において、契約は、引き換えられる当日に決定可能である価額を有するだけであることがある。
【００５７】
別の考慮事項は、割り当てられる暗号通貨量が、トークン価額又はトランザクションの価額に対して大き過ぎないべきである、ということである。なぜならば、暗号通貨量のトランザクションをピアツーピア分散型台帳に記録することは、トランザクションフィーを負う等、コストがかかり得るからである。いくつかの例において、トランザクションフィーは、トランザクションにおける暗号通貨量に基づき、したがって、トークンのための暗号通貨量を最低限のレベルで保つことが望ましいことであり得る。
【００５８】
一方、トークンとの関連付けのために割り当てられる暗号通貨量は、無限小とすることはできない。第１に、暗号通貨は、最低通貨単位額を有し得、例えば、ビットコインは、1satoshiという最低額を有する（ここで、１ビットコイン（BTC）＝10000000satoshiである）。第２に、暗号通貨のトランザクションは、最小サイズに制限され得、さもなければ、これは記録されない（あるいは、トランザクションのコストは、トランザクションを実行するコストに近い又はトランザクションを実行するコストを超える）。この最小量は、いくつかの例において、「ダスト（dust）」リミット（limit）である。したがって、いくつかの例において、トークンのための暗号通貨量を割り当てることは、最小閾量（MT1）以上の暗号通貨でなければならない。したがって、方法は、第１トークン（T1）に適した、暗号通貨の最小閾量（MT1）を決定することと、暗号通貨の最小閾量（MT1）以上である第１暗号通貨量（B1）を決定することと、を含み得る。一例において、「ビットコイン」における暗号通貨の最小閾量（MT1）は、546satoshiである。
【００５９】
トークンのための暗号通貨量を割り当てるときの別の考慮事項は、後続のトークンのための暗号通貨の分割可能性である。例えば、第１トークン（T1）は、＄1000AUDというトークン価額（TV1）を有し得、第１ユーザ（A）５は、このトークン価額のうちの＄800AUDを第２ユーザ（B）７に移転し、残りの＄200AUDのトークンを保持することを望み得る。そのようなトランザクションは、変更に伴い第１ユーザ（A）５に留まる＄200AUDを表す第２トークン（T2）をもたらす、第１トークン（T1）を用いるトランザクションを伴い、これは、第２ユーザ（B）７に移転される＄800AUDを表す第３トークン（T3）を作成する。したがって、この移転の結果は、第２トークン（T2）及び第３トークン（T3）という２つのトークンであり、ここで、これらのトークンの各々にも、暗号通貨量が割り当てられなければならない。第１暗号通貨量（B1）が、例えば、「ダスト」リミット等、最小限度であった場合、作成される新たなトークンの各々も、最小閾量を満たすのに十分な暗号通貨量と関連付けられるように、さらなる暗号通貨量が提供される必要がある。したがって、量が、予期される数の後続のトークンのために使用されるよう分割されるのに十分であるように、第１トークン（T1）のための十分な暗号通貨量（B1）を割り当てる利点が存在し得る。
【００６０】
一例において、条件は、暗号通貨量、又はトークンの最低価額若しくは通貨単位を指定し得る。例えば、条件は、トークン価額の最低通貨単位を＄10AUDに設定し得る。したがって、＄1000AUDというトークン価額（TV1）を有する第１トークン（T1）のための第１暗号通貨量（B1）を割り当てることは、全トークン価額（TV1）が最低通貨単位に分割された場合に十分な暗号通貨が存在することを保証する第１量を決定することを含み得る。この例において、トークン価額（TV1）は、（＄1000/＄10により算出される）１００個の後続のトークンに分割され得る。したがって、適切な第１暗号通貨量（B1）は、「ダスト」リミットの１００倍であり得る。
【００６１】
第１引き換えスクリプト（RS1）の第１ハッシュ（H1）の決定
方法３００は、３１２において、第１引き換えスクリプト（RS1）の第１ハッシュ（H1）を決定することをさらに含む。一例において、引き換えスクリプトのハッシュは、ペイツースクリプトハッシュトランザクションのためのペイツースクリプトハッシュ（P2SH）アドレスを提供するために使用され得る。例は、ビットコインプロトコルにおけるP2SHスクリプトにおいて使用されるハッシュ関数を含む。これは、SHA256とSHA256に続くRIPEMD160との組合せを含み得る。
【００６２】
第１引き換えスクリプト（RS1）は、後述されるように、第１暗号通貨量（B1）のトランザクションを含む第１トークン（T1）をアンロックするために使用され得るスクリプトである。第１トークン（T1）をアンロックするとき、第１引き換えスクリプト（RS1）の所定の条件が、トランザクションをアンロックするために満たされなければならない。詳細には、第１ユーザ（A）５及び発行者（I）の署名が必要とされる。第１引き換えスクリプト（RS1）の例が、次いで説明される。
【００６３】
第１引き換えスクリプト（RS1）
第１引き換えスクリプト（RS1）は、第１トークンと関連付けられた情報を含む少なくとも第１メタデータ（MD1）、第１ユーザ公開鍵（P1A）、及び第１発行者公開鍵（P1I）に基づく。
【００６４】
（ｉ）P2SHにおける引き換えスクリプトの概要
バックグラウンドとして、ペイツースクリプトハッシュ（P2SH）方法において、引き換えスクリプトは、以下の形をとり得る：
<NumSigs  PubK1  PubK2  ...  PubK15  NumKeys  OP_CHECKMULTISIG>
ここで、
NumSigsは、トランザクションをアンロックするために引き換えスクリプトを満たすのに必要とされる有効な署名の数「m」であり、
PubK1、PubK2、...、PubK15は、トランザクションをアンロックする署名に対応する公開鍵であり（最大で１５個の公開鍵）、
NumKeysは、公開鍵の数「n」である（１５以下でなければならない）。
【００６５】
上記の引き換えスクリプトをアンロックするためには、公開鍵に対応する少なくとも「ｍ」個の署名が必要とされる。いくつかの例において、公開鍵の順序が重要であり、署名のためのｎ個の署名からのｍ個が順番に行われなければならない。例えば、「ｍ」が２であり、公開鍵の数「ｎ」が１５であるとする。２つの署名すなわち（PubK1に対応する）Sig1及び（PubK15に対応する）Sig15が、利用可能であるとすると、引き換えスクリプトは、最初にSig1によって、続いてSig15によって、署名されなければならない。
【００６６】
（ｉｉ）P2SHを使用する第１引き換えスクリプト（RS1）
この例に戻ると、P2SHを使用する第１引き換えスクリプト（RS1）は、引き換えスクリプト内の少なくとも第１メタデータ（MD1）を含み得る。詳細には、少なくとも第１メタデータ（MD1）は、引き換えスクリプト内で公開鍵について利用可能である１５個の場所のうちの１つ以上の場所に埋め込まれ得る。
【００６７】
したがって、一例において、第１引き換えスクリプト（RS1）は、以下の形をとり得る：
<NumSigs  Metadata1  Metadata2...PubK1  PubK2...NumKeys  OP_CHECKMULTISIG>
ここで、
NumSigsは、トランザクションをアンロックするために引き換えスクリプトを満たすのに必要とされる有効な署名の数「m」であり、
Metadata1及びMetadata2は、公開鍵の場所を占めるメタデータを含み、
PubK1及びPubK2は、実際の公開鍵であり、一例において、PubK1は、第１ユーザ公開鍵（P1A）であり得、PubK2は、発行者公開鍵（P1I）であり得、
NumKeysは、メタデータ及び公開鍵により占められる場所の総数である（１５以下でなければならない）。
【００６８】
これの利点は、メタデータが第１引き換えスクリプト（RS1）に含められることになり、今度は、これが、ハッシュ化されることになり、このレコードが、ブロックチェーン９に含められることになる、ということである。したがって、第１引き換えスクリプトハッシュ（RS1）の対応するハッシュの変化をもたらすことなく、メタデータの値を変更することは、不可能ではないとしても、難しい。
【００６９】
実際の利点が、次の例により示され得る。第１ユーザ（A）５及び発行者（I）３は、特定の条件をもって、契約を結ぶことを望むことがある。契約は、発行者（I）がトークンを作成することを含み得、それにより、特定の条件が、引き換えスクリプトに埋め込まれるメタデータに含められる。次いで、引き換えスクリプトのハッシュが、ブロックチェーン９に記録され、これは、変更することが難しい又は不可能であるトランザクションのレコードになる。発行者（I）が、第１ユーザ（A）５を欺むこうと試み、例えば、条項を変更しようと試み、変更された条項が元々合意された契約に存在していたと主張するとする。第１ユーザ（A）５は、変更された条項を引き換えスクリプトのメタデータに配置してこれをハッシュ化し、次いで、これが、ブロックチェーンに記録されている引き換えスクリプトに合致しないことを示すことにより、これについて争うことができ得る。したがって、トークンと関連付けられた情報を少なくとも第１メタデータに含めることは、トークンのインテグリティを保証するのに有用であり得る。
【００７０】
引き換えスクリプト内のメタデータはそれ自体、他の情報のハッシュを含み得ることを理解されたい。例えば、条件が長々しい場合、条件のハッシュを使用して、より短いメタデータを提供することができる。
【００７１】
第１引き換えスクリプト（RS1）は、第１トークン（T1）を引き換えるために、レコードとしてデータストア１１に格納され得る。いくつかの代替例において、第１引き換えスクリプトは、第１ユーザ（A）５又はサードパーティに送信されることがある。
【００７２】
メタデータ
この例において、第１引き換えスクリプト（RS1）は、以下の形をとり得る：
<2  Metadata1  Metadata2  P1A  P1I  4  OP_CHECKMULTISIG>
【００７３】
したがって、少なくとも第１メタデータ（MD1）は、引き換えスクリプト内の場所のうちの２つの場所を占めるMetadata1及びMetadata2の両方を含む。これらの後に、第１ユーザ公開鍵（P1A）及び第１発行者公開鍵（P1I）という２つの公開鍵が順番に続く。NumSigsは２であり、これは、２つの署名が、トランザクションをアンロックするために必要とされることを意味する。
【００７４】
メタデータは、いくつかの態様でトークンに関する情報を含み得る。説明されたように、一例において、条件が、メタデータに含まれ得る。別の例において、条件のハッシュが、メタデータに含まれ得る。さらに別の例において、メタデータは、契約の条件を含むファイルへのポインタを含み得る。さらなる実施形態において、上記のうちの１つ以上を含む組合せが、メタデータに含まれ得る。
【００７５】
（ｉ）条件へのポインタを含むメタデータ
第１メタデータ（MD1）の具体例が、以下の表１に示されている。
【表１】
2019516274.tif 000003
【００７６】
この例は、トークン及びトランザクションに関する最小限の情報しか含まない。この例は、契約（スマートコントラクト）のサイズが、メタデータにそのような詳細を含めることを妨げる場合に有用であり得る、契約（スマートコントラクト）へのポインタを提供することを含む。さらに、メタデータは、公開され得るので、又は、セキュアでないネットワークを介して伝送され得るので、トークンの具体的な詳細は、プライバシの理由から隠され得る又は秘密にされ得ることが望ましいことであり得る。
【００７７】
Metadata1の最初の４バイトは、契約のタイプを示す。例えば、契約タイプは、「法定通貨」に関するものであり得る。次の１６バイトは、実際の電子契約ファイルの位置のIPアドレスを保持し、IPv6アドレスを許容する。いくつかの実施形態において、この値は、契約ファイルが、集中管理されるのではなく、クラウドにわたって分散され得るように、トレントファイルのシードを指し示し得ることに留意されたい。次の１２バイトは、契約のタイプに固有のデータを含む。
【００７８】
Metadata2の最初の２０バイトは、実際の契約ファイルに適用されるSHA256及びRIPEMD-160を用いた、実際の契約ファイルのハッシュである。実際の契約ファイルは、検索・取得可能であるので、これは、契約に対するトランザクションの検証を可能にする。契約ファイル自体は、具体的な実施形態の要件に応じて、完全に公開されることもあるし（暗号化されておらず人間が読み取り可能）、プライバシのために暗号化されることもある。Metadata2の残りの１２バイトの内容は、契約のタイプに応じて使用され得る。
【００７９】
（ｉｉ）トークンの主要なパラメータを含むメタデータ
第１メタデータ（MD1）の別の具体例が、以下の表２に示されている。
【表２】
2019516274.tif 000004
【００８０】
この例において、トークンのいくつかの主要なパラメータが、メタデータに含まれる。主要なパラメータにより、これは、トークン自体に関連する情報又はトランザクションの処理を支援することができる情報を含み得る。詳細には、上記の表１におけるサブフィールド「ContractTypeData1」に割り当てられていたバイトは、法定通貨（FiatDenomination）、ペギングレート（PeggingRate）、及びトランザクションタイプ（TransactionType）を示すために使用されている。
【００８１】
メタデータに主要なパラメータを含めることは、発行者（I）３が、いくつかの場合において、トランザクションを処理するために必要とされる主要な情報について契約ファイルを検索することなく、トランザクションにおけるトークンを処理できるので、より優れた処理効率に資することができる。
【００８２】
上記の情報に加えて、トークンの履歴すなわちトークンよりも先行するトークンに関連する他の情報も含まれ得る。例えば、第１ユーザ（A）５が、第１トークン（T1）の一部を引き換えることを望み、第２トークン（T2）が、残りの部分の価額を表すように発行者（I）により作成される場合、発行者は、第２トークン（T2）を第１トークン（T1）と関連付ける情報を、メタデータに埋め込むことができる。これは、銀行等の発行者（I）にとって集約的タスクであり得る、トランザクションの履歴のトレースに費やすことなく、発行者（I）がトークンを理解して追跡するのを支援することができる。
【００８３】
表２において、メタデータは、法定通貨（FiatDenomination）を示す２バイトのフィールドと、PeggingRateと称される１バイトのフィールドと、を含む。ペギングレートは、発行者（I）により設定される。いくつかの異なるレートが、同じ法定通貨について設定され得るが、（異なる契約を伴う）異なるトークンが、各異なるレートについて必要とされることになる。レートの選択は、発行者（I）の裁量によるが、発行者（I）は、上述したトークンのための暗号通貨量の割り当てについてと同様に、ペギングレートについても同様の考慮をし得る。
【００８４】
一例において、PeggingRateは、以下のような８ビットのコード値である：
一番左のビットは、フラグとして使用される：
1＝satoshis/centとして表現されるレート（「cent」は、法定通貨の１００分の１を指し、最低法定額である）
0＝cents/satoshiとして表現されるレート
右側の７ビットは、２進法での１０のべき乗としてのレートを表し、例えば、以下である：
USD  10000010は、100satoshis/centというレートを意味する（フラグはオン）
PHP  00000000は、1centavo/satoshiというレートを意味する（フラグはオフ）
IDR  00000001は、10rupiah/satoshiというレートを意味する（フラグはオフ）
【００８５】
一例において、TransactionTypeは、トランザクションが、（トークンが暗号通貨から作成される）「発行」であるか、（トークン価額の少なくとも一部が、１人のユーザから別のユーザに移転される）支払であるか、又は、（トークンが、発行者（I）に移転され、正規の暗号通貨に戻されるように換えられる）引き換えであるか、を示す１バイトのフィールドである。
【００８６】
いくつかの例において、Metadata1及びMetadata2における「Padding」は、各トランザクションについてのランダムに生成された値を含む。結果は、Metadata1及びMetadata2の各々がトランザクションの間で変わる、ということである。利点は、これが、Metadata1及びMetadata2の一方又は両方にマッチするであろう秘密鍵を暗号ペアとして、（そのような秘密鍵を使用して引き換えスクリプトに署名する目的で、）悪意のある人が決定することを試みるリスク及び動機づけを低下させ得る、ということである。これは、Metadata1又はMetadata2の残りの大部分が同じである場合、標準化されたトークンにとって重要であり得る。
【００８７】
公開鍵
第１ユーザ公開鍵（P1A）及び発行者公開鍵（P1I）はそれぞれ、対応する第１ユーザ秘密鍵（V1A）及び発行者秘密鍵（V1I）とペアにされる。いくつかの実施形態において、公開鍵は、公に広く知られ得るものであるのに対し、他の実施形態において、必要に応じて公開鍵を通信することが好ましいことであり得る。
【００８８】
いくつかの実施形態において、発行者（I）は、第１ユーザ（A）５及び第２ユーザ（B）７の電子ウォレットを管理する金融機関であり、第１ユーザ（A）５及び第２ユーザ（B）は、仮想マシン環境又は端末を介して、それぞれの電子ウォレットにアクセスすることができる。電子ウォレットは、発行者（I）３（又は発行者（I）３と関連付けられたサーバ）によりホストされ得、対応するユーザの１つ以上の秘密鍵は、データストア１１に格納されるが、当該のユーザから許可を得ている発行者（I）３によってのみアクセスされ得る（又は再作成され得る）。そのような場合、第１ユーザ５及び第２ユーザ７は、引き換えスクリプトをアンロックするために、第１ユーザ５及び第２ユーザ７の秘密鍵が発行者（I）３に提供されることを許可することができる。これは、ユーザの１つ以上の秘密鍵が発行者（I）３の第１処理デバイス１３に送信されることを許可することを含み得、第１処理デバイス１３は、ユーザの１つ以上の秘密鍵（例えば、P1A、P1B）及び第１発行者公開鍵（P1I）を用いて、引き換えスクリプトをアンロックすることができる。
【００８９】
ブロックチェーンへの第１データ出力（O1）の送信
方法３００は、３１４において、発行者（I）３により、通信ネットワーク８を介して、第１データ出力（O1）をブロックチェーン９に送信することをさらに含む。この第１データ出力（O1）は、第１暗号通貨量（B1）を第１ユーザ（A）５に移転しているトランザクションのインジケーションを含み得る、すなわち、第１トークン（T1）と関連付けられた基礎となる暗号通貨量（B1）が第１ユーザ（A）５に移転されていることを記録している。第１データ出力（O1）はまた、上述した第１ハッシュ（H1）を含む。第１ハッシュ（H1）は、第１ユーザ（A）５及び発行者（I）と関連付けられた第１トークン（T1）のレコードを提供するために、第１暗号通貨量（B1）と関連付けられる。したがって、第１ハッシュ（H1）は、ブロックチェーン９に記録され、トークン（T1）の存在、発行者（I）と第１ユーザ（A）５との間の関係、及び／又は、トークンの条件を証明又は検証するために使用され得る。
【００９０】
方法３００はまた、後の使用のために、第１引き換えスクリプト（RS1）をデータストア１１に格納することを含み得る。
【００９１】
第１トークン（T1）を作成するトランザクションの具体例が、図２を参照して、次いで説明される。
【００９２】
第１ユーザ（A）５による、トークンにおける同等の価額のための、発行者（I）への＄1000AUDのデポジット
この例において、第１ユーザ（A）５は、＄1000AUDを発行者（I）にデポジットすることを望み、発行者（I）は、その交換で、第１トークン（T1）を10000000という第１暗号通貨量（B1）と関連付けることにより、＄1000AUDというトークン価額（TV1）を有する第１トークン（T1）を作成する。
【００９３】
トークンを作成するために、発行者（I）は、暗号通貨を有する必要がある。これは、以前のトランザクションから提供されることもあるし、第１トークン（T1）を求める第１ユーザ（A）５からの要求に応じて提供されることもある。これが、図２の左側において、「第１（非トークン）暗号通貨量」として示されている。
【００９４】
以下の表３は、発源となるトランザクション出力を、トランザクションID/Satoshi量/ロッキングスクリプトの形で示している。この発源となるトランザクション出力は、発行者（I）が以前のトランザクションから獲得した暗号通貨を表しており、暗号通貨の少なくとも一部は、第１トークンとの関連付けのために使用されることになる。
【表３】
2019516274.tif 000005
【００９５】
１番目の行「ID-201」は、このトランザクションを識別するトランザクション識別子である。次の行は、このトランザクションにおけるsatoshiの数であり、50000000である。３番目の行は、このトランザクションについてのロッキングスクリプト（出力スクリプト）である。この出力における引き換えスクリプト<PubK-Issuer  hash>は、この出力が、第１発行者公開鍵（P1I）を用いてロックされていることを示す。すなわち、このトランザクションは、発行者の対応する第１発行者秘密鍵（V1I）を用いてアンロックされ得る。
【００９６】
上述したように、方法３００は、３１０において、第１トークン（T1）に適した第１暗号通貨量（B1）を割り当てることを含む。しかしながら、発行者（I）が持ち合わせている暗号通貨量は、第１暗号通貨量（B1）に正確にはマッチしないことがある。この例において、必要とされる第１暗号通貨量（B1）は、トランザクションID-201からの50000000よりもはるかに少ない10000000である。したがって、第１トークン（T1）を作成するトランザクションは、このトークンのために必要とされなかった超過する暗号通貨量について、暗号通貨のおつりを発行者（I）に戻すように提供することを含み得る。さらに、トークンの作成は、マイナーへのトランザクションフィーの支払を必要とするトランザクションであり得る。これが、トークンを作成するトランザクションを示している以下の表４を参照して示される。
【表４】
2019516274.tif 000006
【００９７】
１番目の行「ID-210」は、このトランザクションを識別するトランザクション識別子である。２番目の行は、使用されたビットコインプロトコルのバージョンを記述する「バージョン番号」を示す。３番目の行は、このトランザクションについての入力の数を示し、１つの入力を示している。
【００９８】
表４における行４〜行７は、「入力」、すなわち、現在のトランザクションID-210に資金を提供している以前のトランザクションID-201に関連する。行５「IDX-00」は、以前のトランザクションID-201の出力のインデックス（この場合、以前のトランザクションID-201からの１番目の出力が使用されるべきであるというリファレンスである）である。行６は、以前のトランザクションID-201についてのアンロッキングスクリプトである「ScriptSig」である。上述したように、以前のトランザクションは、PubK-Issuerにより表される第１発行者公開鍵（P1I）を用いてロックされた。したがって、以前のトランザクションは、Sig-Issuerにより表される、発行者の対応する第１発行者秘密鍵（V1I）を用いてアンロックされ得る。行７は、入力と関連付けられたシーケンス番号である。ビットコイントランザクションにおいて、各ビットコイントランザクションは、ビットコインコアによりもはや使用されない「シーケンス番号」と称される４バイトのフィールドを含む。発行者の実装に応じて、オプションは、このフィールドを使用して、トランザクション入力を出力に割り当てることである。シーケンス番号は、１ビットフラグのストリングを表すことができ、それにより、右端のビットで始まる各フラグの位置は、入力が、その資金の一部を、当該フラグが立てられた出力に与えたことを示す。この例において、シーケンス番号「0000000000000000000000000000011」は、入力が、出力１及び出力２に入金されることを示し、このことは、以下で説明される。
【００９９】
表４における行８は、このトランザクションについての出力の数を示し、２である。行９〜行１１は、１番目の出力を表し、行１２〜行１４は、２番目の出力を表す。
【０１００】
１番目の出力は、第１トークン（T1）と関連付けられた第１暗号通貨量（B1）を反映する。行９は、第１暗号通貨量（B1）の出力値であり、10000000satoshiである。行１０は、出力スクリプト長を示す。行１１は、出力スクリプト、すなわち、第１暗号通貨量（B1）をロックしているロッキングスクリプトである。これは、第１引き換えスクリプト（RS1）の第１ハッシュ（H1）を含み、以下により表される：
OP_HASH160  <redeem  script  hash>  OP_EQUAL
【０１０１】
「OP_HASH160」は、ハッシュ関数のタイプであり、ここで、入力は、SHA-256により、続いてRIPEMD-160により、２回ハッシュ化されている。引き換えスクリプトハッシュredeem  script  hashは、上述した形の第１引き換えスクリプト（RS1）のハッシュであり、この例では以下である：
2  metadata1  metadata2  P1A  P1I  4  OP_CHECKMULTISIG
【０１０２】
これは、上述したように、第１ユーザ公開鍵（P1A）及び第１発行者公開鍵（P1I）を含む。metadata1及びmetadata2は、これが「発行」トランザクションであるというインジケーションを含め、上述したメタデータを含み得る。OP_EQUALは、出力を検証するためのブール結果を提供する。
【０１０３】
２番目の出力は、トランザクションについての発行者のおつりを反映する。以前のトランザクションID-201である入力は、50000000satoshiを含んでいたので、発行者（I）は、余ったsatoshiを受け取ると予期することができる。行１２は、２番目の出力についての出力値であり、39999000である。行１３は、出力スクリプト長であり、行１４は、２番目の出力についての出力スクリプトである。２番目の出力は、発行者（I）に戻されるおつりであるので、発行者は、２番目の出力を自由に使用するべきである。したがって、出力スクリプト（すなわちロッキングスクリプト）は、<PubK-Issuer  hash>により表される第１発行者公開鍵（P1I）のみを含む。
【０１０４】
概して、トランザクションの１つ以上の出力値は、入力以下でなければならない。上記の例において、入力は、50000000であり、出力は、（１番目の出力である10000000及び２番目の出力である39999000に基づく）49999000である。したがって、1000satoshiの不足が存在する。この例において、1000satoshiは、トランザクションフィー（例えば、マイナーのフィー）である。
【０１０５】
第１ユーザ（A）による、トークンの価額の一部又は全ての、発行者（I）との引き換えの概要
概して、トークンは、発行者（I）３と引き換えられる。いくつかの実施形態において、発行者（I）が、ユーザ５、７のための電子ウォレットを提供するサービス提供者である場合、ユーザの秘密鍵は、発行者（I）と関連付けられたデータストア１１において、セキュアに保たれる。したがって、このような実施形態において、ユーザ５、７（又はユーザ５、７のそれぞれの処理デバイス１５、１７）は、引き換えスクリプトに署名しない。代わりに、ユーザ５、７から許可を得ている発行者（I）３が、引き換えスクリプトに署名する。例えば、第１ユーザ（A）５は、トークンを引き換える要求を発行者（I）３に送信し得、暗示的又は明示的に、トークンを引き換えるこの要求はまた、発行者（I）３が、トークンを引き換えるために第１ユーザ秘密鍵（V1A）を使用するための、第１ユーザ（A）５による許可を含む。
【０１０６】
第１トークン（T1）を引き換える方法は、発行者（I）３により、通信ネットワーク８を介して、第１ユーザ（A）５からの第１トークン（T1）を引き換える要求を受信することと、第１トークン（T1）と関連付けられる第１引き換えスクリプト（RS1）を決定することと、例えばデータストア１１又は別のエンティティ若しくはノードから、第１ユーザ秘密鍵（V1A）を取得することと、を含み得る。次いで、発行者は、ユーザ秘密鍵（P1A）及び第１発行者秘密鍵（P1I）を用いて、第１引き換えスクリプト（RS1）に署名することができる。これは、第１ユーザ（A）５にとってのサービス提供者である発行者（I）３が、通信ネットワーク８を介して、署名された又は署名されていない第１引き換えスクリプト（RS1）を送信することなく、第１処理デバイス１３においてこれらのステップをセキュアに実行できるので、有利であり得る。
【０１０７】
この方法はまた、通信ネットワーク８を介して、発行者（I）への第１暗号通貨量（B1）のトランザクションのインジケーションを含む第２データ出力（O2）をブロックチェーン９に送信することを含み得る。したがって、この方法は、第１トークン（T1）と関連付けられた第１暗号通貨量（B1）を発行者（I）に戻す。一例において、第１引き換えスクリプト（RS1）は、第１ユーザ（A）及び発行者（I）の両方の秘密鍵を用いて署名されているので、このトランザクションにおける第１暗号通貨量（B1）の受取者すなわち発行者（I）３は、その後、（暗号通貨単独であろうが他の関連付けられたトークンとともにであろうが）他のトランザクションのために第１暗号通貨量（B1）を使用することができる。
【０１０８】
第１ユーザ（A）による、第２ユーザ（B）へのトークンの価額の一部又は全ての移転
いくつかの実施形態において、第１ユーザ（A）５が、第１トークン（T1）の価額又はその一部を第２ユーザ（B）に移転することを可能にするために、１つ以上の追加のトークンが作成され得る。例えば、第２ユーザ（B）７及び発行者（I）３と関連付けられる第３トークン（T3）が作成され得る。これは、有利なことに、第１ユーザ（A）５が、実際には、第１トークン（T1）と関連付けられたのと同じ又は類似する権利を第２ユーザ（B）に移転することを可能にし得る。第３トークン（T3）の形の新たなトークンが作成されるが、第３トークン（T3）は、第１トークン（T1）と類似する特性を有することができる。例えば、これらのトークンは、同じ又は類似する関連付けられたメタデータを有することができる。これは、例えば、第１ユーザ（A）５と発行者（I）３との間で適用可能な同じ又は類似する条件が、第２ユーザ（B）７と発行者（I）３との間でも適用されるべきである場合に有用であり得る。
【０１０９】
一例において、第１ユーザ（A）５は、第１トークン（T1）の全価額を第２ユーザ（B）に移転することを望むことがある。そのような場合は、第２ユーザ（B）７に移転されるべき第１暗号通貨量（B1）と関連付けられる第３トークン（T3）の作成を伴い得る。有利なことに、第３トークン（T3）は、第２ユーザ（B）７への、第１トークン（T1）及び第１トークン（T1）と関連付けられた権利の移転である。
【０１１０】
さらなる例において、第１トークン（T1）の全価額のうちの第１部分（R1）のみが第２ユーザ（B）７に移転され、そのような場合、全価額のうちの残りの第２部分（R2）は、第１ユーザ（A）５に払い戻される第２トークン（T2）に含められ得る。したがって、第３トークン（T3）を作成する要求は、明示的又は暗示的に、第１部分（R1）に基づく第３トークン価額（TV3）を有する第３トークン（T3）を作成する要求を含み得る。
【０１１１】
発行者（I）又は他のサードパーティ介在者の関与のない、第１ユーザ（A）による第２ユーザ（B）へのトークンの移転
上記のセクションにおいて説明された例において、第１ユーザ（A）５から第２ユーザ（B）へのトークンの価額の移転は、移転を促進するための介在者として発行者（I）３を伴う。これは、第１ユーザ（A）５から第２ユーザ（B）７への第１暗号通貨量（B1）の直接トランザクションとは区別される。
【０１１２】
しかしながら、いくつかの場合において、発行者（I）又は他のサードパーティ介在者の関与なく、第１ユーザ（A）５により、第２ユーザ（B）７にトークンの価額を移転することが望ましいことがある。例えば、そのような状況は、第２ユーザ（B）７が、サービス提供者を有しない場合に、又は、第２ユーザ（B）７のサービス提供者が、第１ユーザ（A）５のサービス提供者又はトークンを作成する役割を担う発行者（I）３と同じウェブオブトラスト（web  of  trust）内に存在しない場合に、生じ得る。そのような実施形態において、第２ユーザ（B）７は、移転されるトークンの正当性又は有効性を保証するための予防策を講じることを望むことがある。
【０１１３】
概して、第２ユーザ（B）７が、第１ユーザ（A）５のサービス提供者（SPA）と同じウェブオブトラスト内にサービス提供者（SPB）を有する場合、サービス提供者（SPB）は、トークンを使用する又は引き換えることについてのトランザクションのための署名者として動作し、したがって、第２ユーザ（B）７は、トークンの真正性又は有効性を確信する。しかしながら、第２ユーザ（B）７が、サービス提供者（SPB）を有しない場合、又は、第１ユーザ（A）５のサービス提供者（SPA）と同じウェブオブトラスト内にサービス提供者（SPB）を有しない場合、発行者（I）又は許可されたパーティは、トランザクションの真正性を証明する又はトランザクションの有効性を検証するのに利用可能でない。
【０１１４】
したがって、第２ユーザ（B）７は、第２ユーザ（B）７に移転されるトークン（T1）の正当性を判定することを望むことがある。いくつかの実施形態において、実行可能なコンピュータコードを含む検証アプリケーションが、処理デバイス１７のメモリ１５２０（図８）に格納され、処理デバイス１７のプロセッサ１５１０（図８）により実行されたときに、処理デバイス１７に、図６及び図７をそれぞれ参照して以下でより詳細に説明される、暗号通貨量と関連付けられたトークン（T）の有効性を判定する方法６００又は７００を実行させる。いくつかの実施形態において、第２ユーザ（B）７は、処理デバイス１７と関連付けられた仮想マシン環境又は端末を介してアクセスされ得る電子ウォレット（図示せず）を管理することができ、電子ウォレットは、第２ユーザ（B）７が処理デバイス１７に検証アプリケーションを実行させることを可能にするアドオン機能を含み得る。
【０１１５】
第１ユーザ（A）から第２ユーザ（B）にトークン（T1）を移転するトランザクションの具体例が、図４を参照して、次いで説明される。
【０１１６】
第１ユーザ（A）による第２ユーザ（B）への第１トークン（T1）の移転
この例において、第１ユーザ（A）５は、図４に示されているように、トークン（T）を第２ユーザ（B）に移転することを望んでいる。これは、第１ユーザ（A）５から第２ユーザ（B）７への暗号通貨量のトランザクションをもたらし、このトランザクションは、以下において、トランザクションID-510として参照される。第２ユーザ（B）７への暗号通貨量の移転は、第２ユーザ（B）７が、その後に、将来のトランザクションのためのトークンとして暗号通貨量（B1）を使用することを可能にする。第２ユーザ（B）７はまた、メタデータを除去する１つ以上のトランザクション（暗号通貨量（B1）を第２ユーザ（B）７に移転した支払トランザクションを含み得る）により、暗号通貨量（B1）を「逆トークン化する（detokenize）」ことができる。第２ユーザ（B）７は、さらに、第１ユーザ（A）５又は他のユーザからの許可（署名等）を必要とするという制限なく、この暗号通貨を使用することができる。
【０１１７】
以下の表７に示されている、第１トークンを移転するトランザクションID-510を説明する前に、現在の支払トランザクションID-510への入力である（トランザクションID-500及びID-400からの）発源となるトランザクション出力が簡潔に説明される。これらの２つの入力は概して、トークン（T）と関連付けられた暗号通貨量と、トランザクションフィー（例えば、マイナーのフィー）を支払うために使用される別の暗号通貨量と、を含む。
【０１１８】
例えば、第１ユーザ（A）５は、トランザクションID-500において、暗号通貨量を受け取っている。トランザクションID-500における、第１ユーザ（A）５への出力は、以下のようにまとめられ得る：
【表５】
2019516274.tif 000007
【０１１９】
表５における行２は、トークン（T）と関連付けられた暗号通貨量を表し、10000000satoshiである。行３は、出力スクリプトを表し、上述した表４における行１１と同等である。
【０１２０】
第１ユーザ（A）５はまた、支払トランザクションID-510について、トランザクションフィー（例えば、マイナーのフィー）を支払う必要があり得、これは、一部、以前のトランザクションID-400から受け取られた暗号通貨量から支払われている。この暗号通貨量は、以下のようにまとめられ得る：
【表６】
2019516274.tif 000008
【０１２１】
表６の行２は、以前のトランザクションからの暗号通貨量を示し、1000である。表６の行３は、この以前のトランザクションからの出力スクリプトである。このトランザクションID-400からの暗号通貨は、トークン（又はトークンと関連付けられたユーザ）と関連付けられていないので、引き換えスクリプトハッシュは、単に、PubK-Aliceとして示されている第１ユーザ公開鍵（P1A）のハッシュである。すなわち、トランザクションID-400からの出力を使用するために、これは、単に、第１ユーザ秘密鍵（V1A）を用いた署名を必要とするだけである。
【０１２２】
第１トークン（T1）を移転するトランザクションID-510が、以下の表７を参照して、次いで説明される。
【表７】
2019516274.tif 000009
【０１２３】
行１「ID-510」は、このトランザクションを識別するトランザクション識別子である。２番目の行は、使用されたビットコインプロトコルのバージョンを記述する「バージョン番号」を示す。行３は、このトランザクションについての入力の数を示し、２つの入力を示している。
【０１２４】
表７における行４〜行８は、１番目の入力、すなわち、現在のトランザクションID-510に資金を提供している以前のトランザクションID-500に関連する。行４は、以前のトランザクションID-500のトランザクション識別子である。行５「IDX-00」は、以前のトランザクションID-500の出力のインデックス（この場合、以前のトランザクションID-500からの１番目の出力が使用されるべきであるというリファレンスである）である。行６は、スクリプト長のインジケーションである「Script  length」である。行７は、以前のトランザクションID-500についてのアンロッキングスクリプトである「ScriptSig」である。示されたように、以前のトランザクションID-500は、PubK-Aliceにより表される第１ユーザ（A）公開鍵（P1A）及びPubK-Issuerにより表される第１発行者公開鍵（P1I）を用いてロックされた。したがって、以前のトランザクションは、Sig-Aliceとして表される、アリスの対応する秘密鍵（V1A）と、Sig-Issuerとして表される、発行者の対応する第１発行者秘密鍵（V1I）と、を用いてアンロックされ得る。行８は、入力と関連付けられたシーケンス番号である。
【０１２５】
第１ユーザ（A）はまた、移転トランザクションID-510について、トランザクションフィー（例えば、マイナーのフィー）を支払う必要があり、これは、一部、以前のトランザクションID-400から受け取られた暗号通貨量から支払われている。表７における行１１〜行１５は、２番目の出力、すなわち、マイナーのフィーの支払に関連する。行１１は、以前のトランザクションID-400のトランザクション識別子である。行１２「IDX-01」は、以前のトランザクションID-400の出力のインデックスである。行１３は、スクリプト長のインジケーションである「Script  length」である。行１４は、以前のトランザクションID-400についてのアンロッキングスクリプトである「ScriptSig」である。このトランザクションID-400からの暗号通貨は、トークン（又はトークンと関連付けられたユーザ）と関連付けられていないので、引き換えスクリプトハッシュは、単に、PubK-Aliceとして示されている第１ユーザ公開鍵（P1A）のハッシュである。すなわち、トランザクションID-400からの出力を使用するために、これは、単に、第１ユーザ秘密鍵（V1A）を用いた署名を必要とするだけである。行１５は、入力と関連付けられたシーケンス番号である。
【０１２６】
表７の行１７は、このトランザクションについての出力の数を示し、１である。行１８〜行２１は、トークン（T）と関連付けられた暗号通貨量を反映する出力を表す。行１８は、暗号通貨量の出力値であり、この場合、10000000satoshiである。これは、トークン（T）からの暗号通貨量に対応する。行１９は、出力スクリプト長を示す。行２０は、出力スクリプト、すなわち、第２ユーザ（B）への暗号通貨量と関連付けられたトークン（T）の移転をロックしているロッキングスクリプトである。これは、引き換えスクリプト（RS）のハッシュ（H）を含み、以下により表される：
OP_HASH160  <redeem  script  hash>  OP_EQUAL
【０１２７】
「OP_HASH160」は、ハッシュ関数のタイプであり、ここで、入力は、SHA-256により、続いてRIPEMD-160により、２回ハッシュ化されている。OP_EQUALは、出力を検証するためのブール結果を提供する。引き換えスクリプトハッシュredeem  script  hashは、上述した形の引き換えスクリプト（RS）のハッシュであり、この例では以下である：
1  metadata1  metadata2  PubK-Bob  3  OP_CHECKMULTISIG
【０１２８】
この引き換えスクリプトは、トークン（T）からのメタデータと、PubK-Issuerとして示されている発行者公開鍵（P1I）と、を含む。metadata1及びmetadata2は、これが「支払」トランザクションであるというインジケーションを含め、上述したメタデータを含み得る。この引き換えスクリプトは、10000000satoshiを使用するために、３つの署名のうちの１つの署名を必要とする。実際、第２ユーザ秘密鍵（V1B）が、署名して後続のトランザクションのために暗号通貨を使用するために、使用され得る。第１ユーザ公開鍵（P1A）がこの引き換えスクリプト内に存在しないことは注目に値する。これは、トークン（T）が、したがって、関連付けられた暗号通貨量が、第２ユーザ（B）７に移転されており、したがって、第１ユーザ（A）５により使用されたとみなされ得る。したがって、第２ユーザ（B）７は、許可（第１ユーザ（A）５の署名を通じた暗示的な許可等）を必要とすることなく、トークン（T）を自由に使用するべきである。
【０１２９】
この例において、現在のトランザクションID-510に資金を提供している以前のトランザクションID-500（すなわち、未使用トランザクション出力（UTXO））は、発行者（I）により署名されている。したがって、いくつかの実施形態において、第２ユーザ（B）７は、トークン（T）が、発行者（I）等の署名権者により例えば署名されている等、トークン（T）の真正性が証明されている場合、トランザクションID-510と関連付けられた暗号通貨量と関連付けられた第１トークン（T）は有効であると判定することができる。例えば、トークン（T）は、トークン（T）と関連付けられた引き換えスクリプト（RS）であって、トランザクションID-510への入力として参照される引き換えスクリプト（RS）が、署名権者又は信頼できる署名者により署名されている場合、署名権者により正当性が認められているとみなされ得る。
【０１３０】
しかしながら、第１ユーザ（A）５のサービス提供者（SPA）が、発行者（I）と同じウェブオブトラスト内に存在せず、トランザクションID-510と関連付けられたトークン（T）が、署名権者により署名されていない場合を検討してみる。そのような状況において、表７の行７に示されている、以前のトランザクションID-500の引き換えスクリプトは、この例では、代わりに以下の形をとる：
1  metadata1  metadata2  PubK-Alice  3  OP_CHECKMULTISIG
【０１３１】
この実施形態において、トークン（T）と関連付けられた引き換えスクリプト（RS）であって、トランザクションID-510への入力として参照される引き換えスクリプト（RS）は、署名権者により署名されておらず、したがって、第２ユーザ（B）７は、トランザクションID-510に資金を提供している入力単独として参照される引き換えスクリプト（RS）を考慮することによっては、トークン（T）の正当性について確信することができない。
【０１３２】
権利登録ストア
図１を参照して説明されたように、いくつかの実施形態において、システム１は、１つ以上の処理デバイス２１上で実行される制御／管理アプリケーションにより制御され得る又は影響が及ぼされ得る権利登録ストア２３を含む。例えば、実行可能なコードを含む管理アプリケーションは、１つ以上の処理デバイス２１のメモリ１５２０（図）に格納され得、１つ以上の処理デバイス２１の１つ以上のプロセッサ１５１０（図８）は、権利登録ストア２３を管理する方法を実行する管理アプリケーションを実行するよう構成され得る。権利登録ストア２３は、トークンの移転に関連するトランザクションに関する情報を記録するよう構成され得る。
【０１３３】
いくつかの実施形態において、権利登録ストア２３は、トークン（T）の現在の所有者を明示的に識別することなく、トークン（T）の所有権の変更のレコード、すなわち、所有権が変更されたという事実、を保持する。したがって、いくつかの実施形態において、権利登録ストア２３は、有効性検証又は検証された未使用トランザクション出力（UTXOs）のリスト又はサブリストを含み得る。例えば、トランザクションが、権利登録ストア２３に記録されている場合、権利登録ストア２３は、引き換えスクリプトハッシュのメタデータ内に埋め込まれた、現在の所有者のインジケーション、すなわち、現在の所有者の公開鍵を含む、トランザクション識別子及びトランザクションの出力スクリプトのうちの少なくとも１つを含み得る。以前の所有者は、トランザクションの入力セクションのアンロッキングスクリプトにおいて識別される公開鍵から判別され得る。
【０１３４】
しかしながら、他の実施形態において、権利登録ストア２３は、追加的又は代替的に、トークンの現在の所有者及び／又は以前の所有者の識別子を含むこともある。例えば、権利登録ストア２３は、直接的クライアント及び／又は間接的クライアントの「Know  Your  Customer（顧客確認）」（KYC）レジスタを含み得る。いくつかの実施形態において、KYCレジスタの維持は、所有権の条件等の、トークンと関連付けられた契約における条項であり得る。そのような実施形態において、トークンの有効性の条件は、第２ユーザ（B）７等の被支払者が、パーティ（P）又は発行者（I）に直接的に登録することを必要とし得る。これは、例えば、専用ウェブページを介して等のオフブロックメカニズムを介してや、所有者であることを証明するための署名を要求する等の適切なチェックによって、達成され得る。いくつかの実施形態において、パーティ（P）又は発行者（I）３は、この条件を、データストア１１等の内部データベースや、上述した契約の条件を格納するよう構成されているDHT等のDHTに、格納することができる。いくつかの場合において、発行者（I）３は、契約に付されている何らかの収益を支払う等、所定の債務を履行するために、現在の所有者を知る必要があり得る。例えば、契約が、競走馬の共同所有権に関する場合、発行者は、賞金の取り分が支払われるべき当事者を特定する必要があり得る。
【０１３５】
１つ以上の処理デバイス２１は、第１の処理デバイス１３、第２の処理デバイス１５、及び／若しくは第３の処理デバイス１７、並びに／又は１つ以上の処理デバイス１９から、通信ネットワーク８を介して、データを受信し、該データを権利登録ストア２３に格納するよう構成され得る。同様に、１つ以上の処理デバイス２１は、例えば、データを求める要求に応じて、且つ／又は、予め定められた間隔で若しくは定期的な間隔で等、自動的に、権利登録ストア２３からデータを取得し、取得したデータを、通信ネットワーク８を介して、第１の処理デバイス１３、第２の処理デバイス１５、及び／若しくは第３の処理デバイス１７、並びに／又は１つ以上の処理デバイス１９に提供するよう構成され得る。
【０１３６】
いくつかの実施形態において、発行者（I）３により発行されたトークン（T）の移転を含むトランザクションを権利登録ストア２３に記録することは、そのトークン（T）の発行者（I）３により働きかけられる。例えば、第１ユーザ（A）５又は第２ユーザ（B）７等のユーザのためのトークン（T）を作成することに加えて、トークンを作成する方法３００に関連して３１４において上述した第１データ出力（O1）をブロックチェーン９に送信すると、発行者（I）３は、１つ以上のプロセッサ１３を使用して、権利登録ストア２３の管理アプリケーションに対する、トークンの移転を記録する要求を、通信ネットワーク８を介して、権利登録ストア２３と関連付けられた１つ以上のプロセッサ２１に送信する。トークンの発行者はまた、以下でより詳細に説明されるように、トークンと関連付けられたトランザクションに関して、権利登録ストア２３を維持又は更新する役割を担い得る。
【０１３７】
いくつかの実施形態において、権利登録ストア２３は、分散ハッシュテーブル（DHT）を含み得る。いくつかの実施形態において、分散ハッシュテーブル（DHT）は、トークンと関連付けられた契約を格納するよう構成され得る。いくつかの実施形態において、トークンと関連付けられた契約を格納するよう構成されている分散ハッシュテーブル（DHT）は、権利登録データベース２３の分散ハッシュテーブル（DHT）における関連エントリの位置を指し示す１つ以上のリンク又はポインタを含むフィールドを含み得る。
【０１３８】
権利登録ストアの維持管理
概して、１つ以上のパーティ（P）は、トークンの移転の正確なレコードを、したがって、トークンの所有権の変更を、維持又は保持するために、権利登録ストア２３を更新する役割を担う。いくつかの実施形態において、トークン（T）の各発行者（I）３は、権利登録ストア２３におけるこのトークンの所有権の変更の正確なレコード、すなわち、発生したトークンの移転を含むトランザクションのレコード、を維持管理する役割を担う。
【０１３９】
発行者（I）により発行されたトークンの移転を記録するための権利登録ストア２３を維持管理する方法５００であって、各トークンは、暗号通貨量と関連付けられる、方法５００が、図５を参照して、次いで説明される。いくつかの実施形態において、実行可能なコードを含む権利登録維持管理アプリケーションは、１つ以上の処理デバイス１３のメモリ１５２０（図８）に格納され得、１つ以上の処理デバイス１３の１つ以上のプロセッサ１５１０は、トークンの移転を記録するための権利登録ストアを維持管理する方法５００を実行する権利登録維持管理アプリケーションを実行するよう構成され得る。他の実施形態において、方法５００は、通信ネットワーク８に接続された許可されたパーティ（P）と関連付けられた処理デバイス（図示せず）により実行され得る。
【０１４０】
方法５００を実行する際、維持管理アプリケーションは、５０２において、発行者（I）により発行されたトークンの移転を含むトランザクションについて、ブロックチェーン９をモニタリングするよう構成されている。
【０１４１】
例えばビットコインブロックチェーンといったブロックチェーン９は、トランザクションを記録し、以前のトランザクションの識別子（以前トランザクション識別子）、１つ以上の入力スクリプト、及び１つ以上の出力スクリプト等、トランザクション（TXs）の詳細を含み得る。上述したように、トランザクションと関連付けられたトークンは、トランザクションの入力スクリプトのメタデータから判別され得る。
【０１４２】
発行者（I）により発行されたトークン（T）の移転を含むトランザクションを判別したことに応じて、維持管理アプリケーションは、トークン（T）の移転を権利登録ストア２３に記録するよう構成されている。例えば、いくつかの実施形態において、図５に示されているように、維持管理アプリケーションは、トークン（T）の移転を権利登録ストア２３に記録する要求を、権利登録ストア２３を管理する役割を担う第２パーティ（P2）と関連付けられた１つ以上の処理デバイス２１によりホストされている管理アプリケーションに送信するよう構成されている。
【０１４３】
いくつかの実施形態において、上記の要求は、トークン（T）の移転を含むトランザクションのインジケータを含むデータを含み得る。例えば、このデータは、トランザクションのトランザクション識別子及び／又は第１データ出力（O1）を含み得る。いくつかの実施形態において、このデータは、例えば、発行者の署名（V1I）を用いて署名されているという点で、発行者（I）３によりその真正性が証明されている。このデータは、ブロックチェーン９に記録されているトークンのトランザクションの詳細から取得され得る。
【０１４４】
いくつかの実施形態において、５０８において、第２パーティ（P2）により、トークンの発行者（I）３等の第１パーティ（P1）から、トークンの移転を記録する要求を受信したことに応じて、第２パーティ（P2）と関連付けられた１つ以上の処理デバイス（図示せず）のメモリ（図示せず）に格納されている管理アプリケーションが、５１０において、データを権利登録ストア２３に入力するために、１つ以上の処理デバイス（図示せず）の１つ以上のプロセッサ（図示せず）により実行される。いくつかの実施形態において、第２パーティ（P2）により受信された各要求又は有効な要求について、新たなエントリが、権利登録ストア２３において作成される。いくつかの実施形態において、要求と関連付けられたトークン（T）についてのエントリが既に存在している場合、管理アプリケーションは、トークン（T）についての別のエントリを作成するのではなく、既に存在しているエントリを更新するよう構成され得る。
【０１４５】
権利登録ストアを使用した、トランザクションと関連付けられたトークン（T）の検証
権利登録ストア２３を使用して、暗号通貨量と関連付けられたトークン（T）の有効性を判定する方法６００が、図６を参照して、次いで説明される。いくつかの実施形態において、実行可能なコードを含む検証アプリケーションは、処理デバイス１７のメモリ１５２０（図８）に格納され得、処理デバイス１７の１つ以上のプロセッサ１５１０（図８）は、第１暗号通貨量（B1）と関連付けられた第１トークン（T1）の有効性を判定する方法６００を実行する検証アプリケーションを実行するよう構成されている。方法６００は、第２ユーザ（B）７と関連付けられた処理デバイス１７により実行され得る。
【０１４６】
第１ユーザ（A）は、６０２において、第１トークン（T1）の移転を含む第１トランザクションを第２ユーザ（B）に送信することができる。方法６００を実行する際、検証アプリケーションは、６０４において、通信ネットワーク８を介して、第１ユーザ（A）から第２ユーザ（B）へのトークン（T）の移転を含む第１トランザクションを受信するよう構成されている。第１トランザクションは、上記の表７に関連して説明されたもの等の、暗号通貨の一部の移転についてのブロックチェーントランザクションを含み得る。例えば、トランザクションは、トランザクションID、１つ以上の入力、及び１つ以上の出力を含み得る。１つ以上の入力は、１つ以上の以前のトランザクションに関連し得、各々は、以前のトランザクションのID（以前トランザクションID）、及び、第１トークン（T1）と関連付けられた引き換えスクリプトを含むアンロッキングスクリプトを含み得る。１つ以上の出力のうちの少なくとも１つの出力は、現在のトランザクション又は第１トランザクションにより影響が及ぼされる移転又は支払に関連し得、ロッキングスクリプトを含み得る。
【０１４７】
いくつかの実施形態において、検証アプリケーションは、６０６において、トークン（T）の真正性が証明されているかどうかを判定するよう構成されている。例えば、これは、トークン（T）と関連付けられた引き換えスクリプトであって、第１トランザクションへの入力として参照される引き換えスクリプトが、トークンの発行者又は信頼できるサービス提供者等の署名権者により署名されているかどうかを判定することを含み得る。
【０１４８】
検証アプリケーションは、６０８において、トークン（T）の移転を含む第２トランザクション又は以前のトランザクションのインジケータを判別する。第２トランザクションは、第１トランザクションよりも時間的に前である以前のトランザクションであり得る。いくつかの実施形態において、インジケータは、以前のトランザクションのトランザクション識別子であり得る。例えば、以前のトランザクションは、現在のトランザクションへの入力として識別されたトランザクションであり得、識別子は、現在のトランザクションの複数の入力パラメータのうちの１つの入力パラメータとして識別され得る。
【０１４９】
検証アプリケーションは、６１０において、インジケータを使用して、権利登録データベース２３に問い合わせて、第２トランザクションが権利登録ストア２３に記録されているかどうかを判定するよう構成されている。例えば、第２トランザクションが権利登録ストア２３に記録されている場合、権利登録ストア２３は、トランザクション識別子等の、第２トランザクションのインジケータを含み得る。したがって、いくつかの実施形態において、トークンの有効性の検証は、以前の又は最後の所有者が誰であるかを知らなくても判定され得る。したがって、本発明の実施形態は、従来技術によっては対処されない技術的問題を解決する新規で有利な検証技術を提供する。
【０１５０】
しかしながら、他の実施形態において、権利登録ストア２３は、追加的又は代替的に、トークンの現在の所有者及び／又は以前の所有者の識別子を含むこともある。いくつかの実施形態において、検証アプリケーションは、トークン（T）の真正性が証明されていないと検証アプリケーションが６０６において判定した場合に限り、権利登録ストア２３に問い合わせるよう構成され得る。
【０１５１】
第２トランザクションが権利登録ストア２３に記録又は登録されていると判定したことに応じて、検証アプリケーションは、６１２において、トークン（T）は有効であると判定するよう構成されている。
【０１５２】
いくつかの実施形態において、第２トランザクションが権利登録ストアに登録されていないと判定したことに応じて、検証アプリケーションは、６１４において、トークン（T）は有効でないと判定するよう構成されている。しかしながら、他の実施形態において、第２トランザクションが権利登録ストアに登録されていないと判定したことに応じて、検証アプリケーションは、６１４において、以下で説明される方法７００のステップ７１０〜７１４を実行するよう構成されている。
【０１５３】
ブロックチェーンを使用した、トランザクションと関連付けられたトークン（T）の検証
ブロックチェーン９を使用して、暗号通貨量と関連付けられたトークン（T）の有効性を判定する方法７００が、図７を参照して、次いで説明される。いくつかの実施形態において、実行可能なコードを含む検証アプリケーションは、処理デバイス１７のメモリ１５２０（図８）に格納され得、処理デバイス１７の１つ以上のプロセッサ１５１０（図８）は、暗号通貨量と関連付けられたトークン（T）の有効性を判定する方法７００を実行する検証アプリケーションを実行するよう構成されている。方法７００は、第２ユーザ（B）７と関連付けられた処理デバイス１７により実行され得る。
【０１５４】
第１ユーザ（A）は、７０２において、トークン（T）の移転を含む第１トランザクションを第２ユーザ（B）に送信することができる。方法７００を実行する際、検証アプリケーションは、図６に関連して上述した方法６００のステップ６０４及び６０８に対応するステップ７０４及び７０８を実行するよう構成されている。いくつかの実施形態において、検証アプリケーションは、図６に関連して上述した方法６００のステップ６０６に対応するステップ７０６を実行するよう構成されている。
【０１５５】
検証アプリケーションは、７１０において、以前のトランザクションのインジケータを使用して、ブロックチェーン９に問い合わせて、トークン（T）と関連付けられた、真正性が証明されているトランザクションを識別することができるかどうかを判定するよう構成されている。真正性が証明されているトランザクションは、トークン（T）と関連付けられたトランザクションを含み、ここで、トークン（T）の正当性が認められている。例えば、トークンは、トークン（T）と関連付けられた引き換えスクリプトが、トークン（T）の発行者又は信頼できるサービス提供者等の署名権者により署名されている場合、正当性が認められている又は正当であるとみなされ得る。署名は、デジタル暗号署名を含み得る。
【０１５６】
いくつかの実施形態において、検証アプリケーションは、第１トランザクションのトークン（T）の真正性が証明されていないと検証アプリケーションが７０６において判定した場合に限り、ブロックチェーン９に問い合わせるよう構成され得る。例えば、これは、トークン（T）と関連付けられた引き換えスクリプトであって、トランザクションへの入力として参照される引き換えスクリプトが、トークン（T）の発行者又は信頼できるサービス提供者等の署名権者により署名されているかどうかを判定することを含み得る。
【０１５７】
いくつかの実施形態において、ブロックチェーン９に問い合わせることは、以前のトランザクションのインジケータを、ブロックチェーン９に記録されているトランザクションの対応するインジケータと比較して、以前のトランザクションのインジケータと同じインジケータを有する以前のトランザクションを識別することを含む。例えば、以前のトランザクションのインジケータは、第１トランザクションにおいて示される以前トランザクションIDを含み得る。
【０１５８】
検証アプリケーションは、ブロックチェーン９におけるエントリについて繰り返して（すなわち反復して）、トークンと関連付けられた、正当性が認められているトランザクションを特定するよう構成されている。したがって、例えば、トークン（T）と関連付けられているとして、ブロックチェーン９において識別された最も直近のトランザクションが、正当性が認められているトランザクションではない場合、検証アプリケーションは、最も直近のトランザクションの直前に先行する、トークンと関連付けられたトランザクションを識別又は特定し、このトランザクションが、正当性が認められているトランザクションであるかどうかを判定するよう構成されている。最も直近のトランザクションの直前に先行する、トークンと関連付けられたトランザクションが、正当性が認められているトランザクションではない場合、検証アプリケーションは、トークンと関連付けられたさらに前のトランザクションを識別又は特定し、このトランザクションが、正当性が認められているトランザクションであるかどうかを判定するよう構成されている。
【０１５９】
いくつかの実施形態において、最も直近のトランザクション又はより前のトランザクションが、正当性が認められているトランザクションであると判定することが、トークンと関連付けられた引き換えスクリプトであって、トランザクションへの入力として参照される引き換えスクリプトが、トークン（T）の発行者又は信頼できるサービス提供者等の署名権者により署名されているかどうかを判定すること、を含むものとして、検証アプリケーションは、最も直近のトランザクション又はより前のトランザクションが、正当性が認められているトランザクションであると判定するよう構成されている。
【０１６０】
いくつかの実施形態において、ブロックチェーン９に記録されているトランザクションが、正当性が認められているトランザクションではないと判定したことに応じて、検証アプリケーションは、トランザクションのエントリから以前のトランザクションのインジケータを判別し、以前のトランザクションのインジケータを使用して、ブロックチェーン９における以前のトランザクションについてのエントリを識別するよう構成されている。インジケータは、トランザクションと関連付けられた以前トランザクションIDを含み得る。例えば、いくつかの実施形態において、検証アプリケーションは、最も直近のトランザクション又はより前のトランザクションの入力スクリプトから以前のトランザクションの識別子を判別することにより、最も直近のトランザクションの直前に先行するトランザクション又はさらに前のトランザクションを識別又は特定するよう構成されている。このプロセスは、以前のトランザクションを識別できなくなるまで反復的に実行される。
【０１６１】
したがって、本発明は、関連するブロックチェーントランザクションの論理的階層の動的な構築を含む有利な検証技術を提供する。この階層は、複数のソースを使用して、最初のトランザクションから始まるように構築される。なぜならば、トランザクションは、ブロックチェーン上の異なるブロック内に記録されているからである。この点において、本発明は、複数のソースから関連するデータを識別して関連付け、検証プロセスにおいて、該データを使用する。
【０１６２】
検証アプリケーションが、正当性が認められているトランザクションを識別すると、方法７００はステップ７１２に移る。一方、検証アプリケーションが、正当性が認められているトランザクションを識別しない場合、方法７００はステップ７１４に移る。
【０１６３】
ブロックチェーン９において、真正性が証明されているトランザクションを識別したことに応じて、検証アプリケーションは、７１２において、トークン（T）は有効であると判定するよう構成されている。例えば、以前のトランザクションの引き換えスクリプトが、署名権者により署名されていると検証アプリケーションが判定した場合、検証アプリケーションは、以前のトランザクションを正当性が認められているトランザクションとして識別する。
【０１６４】
いくつかの実施形態において、ブロックチェーン９において、真正性が証明されているトランザクションを識別しないことに応じて、検証アプリケーションは、７１４において、トークン（T）は有効でないと判定するよう構成されている。
【０１６５】
処理デバイス
図１に関連して上述したように、発行者（I）３、第１ユーザ（A）５、及び第２ユーザ（B）７は、第１処理デバイス１３、第２処理デバイス１５、及び第３処理デバイス１７と関連付けられ得る。ブロックチェーン９も、１つ以上の処理デバイス１９と関連付けられ得る。権利登録データベース２３も、１つ以上の処理デバイス２１と関連付けられ得る。このような処理デバイスは、コンピュータ、タブレットコンピュータ、モバイル通信デバイス、コンピュータサーバ等といった電子デバイスの一部であり得る。処理デバイスに加えて、電子デバイスは、データストア１１及びユーザインタフェース（図示せず）を含み得る。
【０１６６】
図８は、処理デバイス１３、１５、１７、１９、２１の例を示している。処理デバイス１３、１５、１７、１９、２１は、プロセッサ１５１０、メモリ１５２０、及びインタフェースデバイス１５４０を含み、これらは、バス１５３０を介して、互いと通信する。メモリ１５２０は、方法３００、５００、６００、及び７００を含む、本開示に記載の方法を実装するための命令及びデータを格納し、プロセッサ１５１０は、メモリ１５２０からの命令を実行して、これらの方法を実行する。インタフェースデバイス１５４０は、通信ネットワーク８との通信を容易にし、いくつかの例において、データストア１１等のペリフェラル及びユーザインタフェースとの通信を容易にする通信モジュール（図示せず）を含み得る。処理デバイスは、独立したネットワーク要素を含み得るが、処理デバイス１３、１５、１７、１９、２１は、別のネットワーク要素の一部であってもよいことに留意されたい。さらに、処理デバイス１３、１５、１７、１９、２１により実行されるいくつかの機能は、複数のネットワーク要素の間で分散されてもよい。例えば、発行者３は、発行者（I）３と関連付けられたセキュアなローカルエリアネットワークにおいて、方法３００、５００、６００、及び／又は７００を実行するための複数の処理デバイス２３を有してもよい。
【０１６７】
ユーザ、発行者、商業者、提供者、又は他のエンティティが、（署名動作、発行動作、判定動作、決定動作、算出動作、送信動作、受信動作、作成動作等を含む）特定の動作を実行すると本開示が記載している場合、この表現は、提示の明瞭さのために使用されている。これらの動作は、これらのエンティティにより操作されるコンピューティングデバイスにより実行されることを理解されたい。
【０１６８】
署名することは、暗号関数を実行することを含み得る。暗号関数は、平文についての入力と、秘密鍵等の鍵についての入力と、を有する。プロセッサは、暗号関数を実行して、署名として使用され得る数字や文字列を算出することができる。次いで、この署名が、署名付きテキストを提供するために、平文とともに提供される。メッセージテキスト又は鍵が１ビットでも変化した場合、署名は完全に変わる。署名を算出することは、わずかな計算能力しか必要としないが、所与の署名を有するメッセージを再作成することは、現実的には不可能である。このように、秘密鍵が利用可能である場合、平文を変更して、有効な署名を付随させるだけでよい。さらに、他のエンティティは、公に利用可能な公開鍵を用いて、署名を容易に検証することができる。
【０１６９】
ほとんどの状況において、暗号化すること及び復号化することは、プロセッサが、暗号関数を実行して、暗号化されたメッセージ又は平文メッセージをそれぞれ表す出力文字列を算出することを含む。
【０１７０】
鍵、トークン、メタデータ、トランザクション、オファー、契約、署名、スクリプト、インビテーション、及び同様のものは、プログラムコードの型「string」若しくは「int」又は他の型の変数、又はテキストファイル等、データメモリに格納された番号、テキスト、又は文字列として表されるデータを指す。
【０１７１】
ピアツーピア台帳の例は、ビットコインブロックチェーンである。ビットコイン通貨でフィーを支払うこと又は資金を移転することは、ビットコインブロックチェーン上にトランザクションを作成することであって、フィー又は資金がトランザクションから出力される、作成することを含む。ビットコイントランザクションの例は、入力トランザクションハッシュ、トランザクション量、１つ以上の送信先、１人以上の被支払者の公開鍵、及び、支払者の秘密鍵及び入力メッセージとしての入力トランザクションを使用して署名を算出することにより作成された署名を含む。トランザクションは、入力トランザクションハッシュが、ビットコインブロックチェーンのコピーにおいて存在することをチェックし、公開鍵を使用して、署名が正しいことをチェックすることにより、検証され得る。同じ入力トランザクションハッシュが、他のどこかでまだ使用されていないことを保証するために、トランザクションは、コンピューティングノード（「マイナー」）のネットワークにブロードキャストされる。マイナーは、入力トランザクションハッシュがまだ接続されておらず、署名が有効である場合に限り、トランザクションを承諾し、トランザクションをブロックチェーンに記録する。入力トランザクションハッシュが、異なるトランザクションに既にリンクされている場合、マイナーは、トランザクションを拒否する。
【０１７２】
トークンのための暗号通貨を割り当てることは、トランザクションを作成することであって、割り当てられた暗号通貨及びトークンが、トランザクション内のメタデータフィールドにおいて表される、作成することを含む。
【０１７３】
２つのアイテムが関連付けられている場合、これは、これらのアイテムの間に論理的なつながりが存在することを意味する。データベースにおいて、例えば、２つのアイテムについての識別子が、２つのアイテムを互いと関連付けるために、同じレコードに格納され得る。トランザクションにおいて、２つのアイテムについての識別子が、２つのアイテムを互いと関連付けるために、トランザクション文字列に含められ得る。
【０１７４】
ビットコインプロトコルを使用して、スクリプトを引き換えること及び／又はトークンをアンロックすることは、秘密鍵を使用して、スクリプト及び／又はトランザクションの署名文字列を算出することを含む。スクリプトは、異なる秘密鍵又は他の条件から導出される２つ以上の署名を必要とし得る。次いで、このトランザクションの出力が、マイナーに提供される。
【０１７５】
別のエンティティを承認することは、秘密鍵を用いて、トランザクションの署名文字列を算出することと、別のエンティティが署名を使用してトランザクションを検証することを可能にするために、署名文字列を別のエンティティに提供することと、を含み得る。
【０１７６】
ユーザが、別のエンティティとの取引を有することは、別のエンティティが、電子メールアドレス、名前、及び必要に応じて公開鍵等、ユーザに関する情報を格納することを含み得る。例えば、別のエンティティは、SQL、OrientDB、MongoDB、又は他のDB等のデータベースを維持管理することができる。いくつかの例において、別のエンティティは、ユーザの秘密鍵のうちの１つ以上の秘密鍵も格納することができる。
【０１７７】
本開示の広範な一般的範囲から逸脱することなく、上述した実施形態に対して、多数の変形及び／又は変更が可能であることが、当業者により理解されよう。したがって、これらの実施形態は、全ての点で、限定ではなく例示であるとみなされるべきである。
【図１】
2019516274.tif 000010
【図２】
2019516274.tif 000011
【図３】
2019516274.tif 000012
【図４】
2019516274.tif 000013
【図５】
2019516274.tif 000014
【図６】
2019516274.tif 000015
【図７】
2019516274.tif 000016
【図８】
2019516274.tif 000017
【国際調査報告】
2019516274.tif 000018
2019516274.tif 000019
2019516274.tif 000020