(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024153856
(43)【公開日】2024-10-29
(54)【発明の名称】ブロックチェーンベースの暗号通貨のためのトークンを検証する、コンピュータにより実行される方法及びシステム
(51)【国際特許分類】
H04L 9/32 20060101AFI20241022BHJP
G06Q 20/38 20120101ALI20241022BHJP
【FI】
H04L9/32 200A
H04L9/32 200E
G06Q20/38 310
【審査請求】有
【請求項の数】10
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2024125550
(22)【出願日】2024-08-01
(62)【分割の表示】P 2023033721の分割
【原出願日】2017-04-10
(31)【優先権主張番号】1606065.9
(32)【優先日】2016-04-11
(33)【優先権主張国・地域又は機関】GB
(71)【出願人】
【識別番号】318001991
【氏名又は名称】エヌチェーン ライセンシング アーゲー
(74)【代理人】
【識別番号】110004381
【氏名又は名称】弁理士法人ITOH
(72)【発明者】
【氏名】ライト,クレイグ スティーヴン
(72)【発明者】
【氏名】サヴァナ,ステファヌ
(57)【要約】 (修正有)
【課題】暗号通貨量と関連付けられたトークン(T)の有効性を判定するコンピュータにより実行される方法を提供する。
【解決手段】方法は、第2ユーザ(B)が、通信ネットワーク8を介して、第1ユーザ(A)から第2ユーザ(B)へのトークン(T)の移転を含む第1トランザクションを受信するステップと、ピアツーピア分散型台帳に問い合わせて、トークン(T)と関連付けられた、真正性が証明されているトランザクションを識別することができるかどうかを判定するステップと、を含む。真正性が証明されているトランザクションは、トークン(T)と関連付けられた以前のトランザクションを含み、トークン(T)の正当性が認められている。方法は、また、真正性が証明されているトランザクションを識別したことに応じて、トークン(T)は有効であると判定するステップと、を含む。
【選択図】
図6
【特許請求の範囲】
【請求項1】
第1ブロックチェーントランザクションのメタデータフィールド内に表されたトークンの有効性を決定する、コンピュータにより実施される方法であって、前記第1ブロックチェーントランザクションは、前記トークンに関連付けられた暗号通貨の量を含み、前記方法は、第2ユーザにおいて、
通信ネットワークを介して、第1ユーザから前記第2ユーザへの前記トークンの移転を含む前記第1ブロックチェーントランザクションを受信するステップと、
権利登録データベースに問い合わせて、前記トークンの移転を含む第2ブロックチェーントランザクションが前記権利登録データベースに記録されているかどうかを決定するステップと、
前記第2ブロックチェーントランザクションが前記権利登録データベースに記録されている場合、前記トークンが有効であると決定するステップと、
前記第2ブロックチェーントランザクションが前記権利登録データベースに記録されていない場合、ブロックチェーンに基づくピアツーピア分散台帳の中のエントリを繰り返し問い合わせて、前記トークンに関連付けられた真正性が証明されているトランザクションが識別可能かどうかを決定するステップであって、前記真正性が証明されているトランザクションは、前記トークンに関連付けられた前のブロックチェーントランザクションを含み、前記トークンは真正性が証明されており、真正性が証明されているトランザクションを識別することに応答して、前記トークンが有効であると決定する、ステップと、
を含み、
前記ピアツーピア分散台帳に問い合わせることは、
a)前記第1ブロックチェーントランザクション内で示される前のトランザクションIDを決定し、
b)前記ピアツーピア分散台帳に記録された前のブロックチェーントランザクションを識別し、前記前のブロックチェーントランザクションの前記トランザクションIDは、決定した前記前のトランザクションIDに対応し、
c)前記前のブロックチェーントランザクションの引き換えスクリプトが、署名権者により署名されているかどうかを決定し、
d)前記前のブロックチェーントランザクションの前記引き換えスクリプトが、署名権者により署名されていると決定することに応答して、前記前のブロックチェーントランザクションを前記真正性が証明されているトランザクションとして識別し、
e)前記前のブロックチェーントランザクションの前記引き換えスクリプトが、署名権者により署名されていないと決定することに応答して、
前記前のブロックチェーントランザクション内で示される前のトランザクションIDを、前記前のトランザクションIDとして決定し、
前記ピアツーピア分散台帳に記録された更なる前のブロックチェーントランザクションを前記前のブロックチェーントランザクションとして識別し、前記更なる前のブロックチェーントランザクションのトランザクションIDは前記前のトランザクションIDに対応し、
f)更なる前のブロックチェーントランザクションが識別されなくなるまで、ステップc)~e)を繰り返し実行する、
ことを含む、方法。
【請求項2】
前記ピアツーピア分散台帳の中の真正性が証明されているトランザクションを識別できないことに応答して、前記トークンは無効であると決定するステップ、を更に含む請求項1に記載の方法。
【請求項3】
前記第2ブロックチェーントランザクションは、前記第1ブロックチェーントランザクションより先行する、請求項1に記載の方法。
【請求項4】
前記権利登録データベースに問い合わせることは、前記トークンが真正性が証明されていないと決定することに応答して、前記権利登録データベースに問い合わせることを含む、請求項1に記載の方法。
【請求項5】
前記権利登録データベースは、トークンの移転を含むトランザクションに関連する1つ以上のエントリを含み、各エントリはトランザクション指示子に関連付けられ、
前記権利登録データベースに問い合わせることは、
前記第1ブロックチェーントランザクションから前記トークンに関連付けられたトランザクション指示子を決定することと、
前記トランザクション指示子を前記権利登録データベースの1つ以上のトランザクション指示子と比較して、前記第2ブロックチェーントランザクションを識別することと、
を含む、請求項1に記載の方法。
【請求項6】
前記トランザクション指示子はトランザクションIDである、請求項5に記載の方法。
【請求項7】
前記トークンが真正性が証明されていないと決定することは、前記トークンに関連付けられ、前記第1ブロックチェーントランザクションの入力として参照される第1引き換えスクリプトが、署名権者により署名されていないと決定することを含む、請求項1に記載の方法。
【請求項8】
前記署名権者は、前記トークンの発行者及び信頼できるサービスプロバイダのうちの少なくとも1つを含む、請求項7に記載の方法。
【請求項9】
暗号通貨の量に関連付けられたトークンの有効性を決定するトークン検証システムであって、前記システムは、検証アプリケーションを格納するメモリと、プロセッサと、を含み、前記プロセッサは、請求項1に記載の方法を実行するよう前記検証アプリケーションを実行するよう構成される、システム。
【請求項10】
コンピュータソフトウェアプログラムであって、機械可読命令を含み、プロセッサにより実行されると、前記プロセッサに請求項1に記載の方法を実行させる、コンピュータソフトウェアプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般に、ビットコインブロックチェーン等であるがこれに限定されるものではない分散型台帳技術に関する。記載されている実施形態は、ブロックチェーンベースの暗号通貨のためのトークンを検証する、セキュリティが高められたシステム及び方法に関する。いくつかの実施形態は、署名権者により電子的に副署されていないブロックチェーントランザクション(TXs)と関連付けられたトークンを検証することに関する。他の実施形態は、コンピューティングノード間におけるブロックチェーン実装型のトークンの移転及び通信を可能にして向上させるよう構成されているシステム及びコンピュータにより実行される制御方法に関する。
【背景技術】
【0002】
本文書において、全ての形態の電子的でコンピュータベースの分散型台帳を含むように「ブロックチェーン」という用語が使用される。これらは、ピアツーピアのコンセンサスベースのブロックチェーン及びトランザクションチェーン技術、認可型台帳及び認可不要型台帳、共有台帳、並びにこれらの変形を含む。他のブロックチェーン実装も提案及び開発されているが、ブロックチェーン技術の最も広く知られている用途はビットコイン台帳である。本開示において、ビットコインが、便宜及び例示の目的で参照され得るが、本発明は、ビットコインブロックチェーンとともに使用することに限定されるものではなく、代替のブロックチェーン実装及びプロトコルも本発明の範囲内に属することに留意すべきである。
【0003】
ブロックチェーンは、トランザクションから構成されるブロックから構成されるコンピュータベースの非中央集権型の分散型システムとして実装されるピアツーピア電子台帳である。各トランザクション(TX)は、ブロックチェーンシステムにおける参加者の間のデジタル資産の移管を符号化したデータ構造であり、少なくとも1つの入力及び少なくとも1つの出力を含む。各ブロックは、前のブロックのハッシュを含み、ブロックが一緒にチェーン状に連なって、ブロックチェーンの最初からブロックチェーンに書き込まれた全てのトランザクションの永続的で変更できないレコードが作成される。トランザクションは、その入力及び出力に埋め込まれたスクリプトとして知られる小さなプログラムを含み、これらは、トランザクションの出力がどのように誰によってアクセスされ得るかを指定する。ビットコインプラットフォームにおいて、これらのスクリプトは、スタックベースのスクリプト言語を使用して記述される。
【0004】
トランザクションがブロックチェーンに書き込まれるためには、これが「検証」されなければならない。ネットワークノード(マイナー)は、有効でないトランザクションがネットワークから拒否されることで、各トランザクションが有効であることを保証するための作業を実行する。ノードにインストールされたソフトウェアクライアントは、そのロッキングスクリプト及びアンロッキングスクリプトを実行することにより、未使用トランザクション(UTXO)に対してこの検証作業を実行する。ロッキングスクリプト及びアンロッキングスクリプトの実行によりTRUE(真)と評価された場合、トランザクションは有効であり、トランザクションはブロックチェーンに書き込まれる。したがって、トランザクションがブロックチェーンに書き込まれるためには、トランザクションは、i)トランザクションを受信した第1ノードにより検証され-トランザクションが検証された場合には、このノードは、ネットワークにおける他のノードにトランザクションを中継し-、ii)マイナーにより構築された新たなブロックに追加され、iii)マイニングされなければならない、すなわち、過去のトランザクションの公開台帳に追加されなければならない。
【0005】
ブロックチェーン技術が、暗号通貨実装の使用について最も広く知られているが、デジタルアントレプレナーは、新たなシステムを実装するために、ビットコインが基づく暗号セキュリティシステムとブロックチェーン上に格納され得るデータとの両方の使用を模索し始めている。ブロックチェーンが、暗号通貨の領域に限定されない自動化されたタスク及びプロセスに使用できれば、非常に有利であろう。そのようなソリューションは、それらの用途においてより多様でありながら、ブロックチェーンの利点(例えば、イベントの永続的で改ざんされにくいレコードの分散処理等)を利用することができるであろう。
【0006】
現在の研究の一領域は、「スマートコントラクト(契約)」の実装にブロックチェーンを使用することである。スマートコントラクトは、マシンが読み取り可能な契約又は合意の条件の実行を自動化するように設計されたコンピュータプログラムである。自然言語で記述されるであろう従来の契約とは異なり、スマートコントラクトは、結果を生成するために入力を処理することができるルールを含み、次いで、その結果に応じてアクションを実行させることができる、マシンが実行可能なプログラムである。商取引に関して、例えば、これらは、財産権及び/又は資産の移転を伴うことがある。そのような資産は、不動産、(有形財産及び無形財産の両方を含む)人的財産、例えばソフトウェアといったデジタル資産、又は任意の他のタイプの資産を含み得る。デジタル経済において、交換及び移転が、とてつもない距離を超えてタイムリーに実行されることになるという予測がしばしばなされている。この予測は、実際の技術的制限とともに、契約、流通証券等を表す文書のハードコピーや有形資産自体の現物引き渡し等の従来形式の資産移転は望ましくない、ということを意味する。したがって、スマートコントラクトは、移転の高められた管理、効率性、及びスピードを提供することができる。
【0007】
ブロックチェーン関連の別の関心領域は、ブロックチェーンを介して現実世界のエンティティを表現及び移転するための「トークン」(又は「カラードコイン」)の使用である。潜在的に機密の又は秘密のアイテムは、識別可能な意味又は値を有しないトークンにより表現され得る。したがって、トークンは、現実世界のアイテムがブロックチェーンから参照されることを可能にする識別子として機能する。トークン化の利用は、ブロックチェーン上のデジタルエンティティの伝達、移転、及び検証の点において、高められたセキュリティ及び管理を提供する。
【0008】
本明細書に含まれている文書、動作、材料、デバイス、製品等の記載は、これらの事項のいずれか又は全てが、従来技術の基礎の一部を形成している、あるいは、本出願の各請求項の優先日前に存在していたような、本開示に関連する分野における共通の一般的知識であった、という自認として解釈されるべきではない。
【0009】
本明細書全体を通して、「備える、有する、含む(comprise)」という語、又は「comprises」若しくは「comprising」等の変形は、記載されている要素、整数若しくはステップ、又は、要素、整数若しくはステップのグループの包含を意味し、任意の他の要素、整数若しくはステップ、又は、要素、整数若しくはステップのグループの除外を意味するものではないことが理解されよう。
【発明の概要】
【0010】
本発明の実施形態は、特許請求の範囲において定められるものとして提供される。
【0011】
本発明は、検証又は認証方法及び対応するシステムとして説明され得る。なぜならば、本発明は、1つ以上のトークンを含む又は1つ以上のトークンに関するブロックチェーントランザクションであって、署名権者によりデジタル署名されているブロックチェーントランザクションの決定及び/又は識別を可能にし得るからである。これは、トークン発行者又は別のパーティであり得る。この検証技術の結果として、セキュリティが高められる。
【0012】
いくつかの実施形態は、暗号通貨量と関連付けられたトークンの有効性を判定する、コンピュータにより実行される方法に関する。本方法は、第2ユーザが:通信ネットワークを介して、第1ユーザから第2ユーザへのトークンの移転を含む第1トランザクションを受信するステップ;ピアツーピア分散型台帳(ブロックチェーン)に問い合わせて、トークンと関連付けられた、真正性が証明されているトランザクションを識別することができるかどうかを判定するステップであって、真正性が証明されているトランザクションは、トークンと関連付けられた以前のトランザクションを含み、トークンの正当性が認められている、ステップ;及び、真正性が証明されているトランザクションを識別したことに応じて、トークンは有効であると判定するステップを含み得る。
【0013】
いくつかの実施形態において、ピアツーピア分散型台帳に問い合わせることは、第1トランザクションのトークンの真正性が証明されていないと判定したことに応じて、ピアツーピア分散型台帳に問い合わせることを含む。
【0014】
いくつかの実施形態において、トークンの真正性が証明されていないと判定することは、トークンと関連付けられた引き換えスクリプト(redeem script)であって、第1トランザクションへの入力として参照される引き換えスクリプトが、署名権者により(暗号的に)署名されていないと判定することを含む。正当性が認められているトランザクションのトークンは、署名権者により署名され得る。例えば、署名権者は、トークンの発行者及び信頼できるサービス提供者のうちの少なくとも一方を含み得る。
【0015】
いくつかの実施形態において、ピアツーピア分散型台帳に問い合わせることは、a)第1トランザクションにおいて示される以前トランザクションIDを判別すること;b)ピアツーピア分散型台帳に記録されている以前のトランザクションを識別することであって、以前のトランザクションのトランザクションIDは、判別された以前トランザクションIDに一致する、識別すること;c)以前のトランザクションの引き換えスクリプトが、署名権者により署名されているかどうかを判定すること;d)以前のトランザクションの引き換えスクリプトが、署名権者により署名されていると判定したことに応じて、以前のトランザクションを正当性が認められているトランザクションとして識別すること;e)以前のトランザクションの引き換えスクリプトが、署名権者により署名されていないと判定したことに応じて、以前のトランザクションにおいて示される以前トランザクションIDを以前トランザクションIDとして判別すること、ピアツーピア分散型台帳に記録されているさらなる以前のトランザクションを以前のトランザクションとして識別することであって、さらなる以前のトランザクションのトランザクションIDは、以前トランザクションIDに一致する、識別すること;及び、f)さらなる以前のトランザクションが識別されなくなるまで、ステップc)~e)を反復的に実行することを含む。
【0016】
したがって、本発明は、最初のトランザクション又は「トリガ」トランザクションから始まって、トランザクションの論理的なパス又は階層を進んで、トークンの有効性が確立される若しくは少なくとも十分に証明されるか又は検証が失敗するまで、ブロックチェーン上のそれぞれのブロック内の異なるトランザクションを調べるための、上記のステップのうちの1つ以上のステップの実行を含み得る。
【0017】
いくつかの実施形態において、本方法は、ピアツーピア分散型台帳において、真正性が証明されているトランザクションを識別しないことに応じて、トークンは有効でないと判定するステップをさらに含む。
【0018】
いくつかの実施形態は、暗号通貨量と関連付けられたトークンの有効性を判定する、コンピュータにより実行される方法であって、第2ユーザが:通信ネットワークを介して、第1ユーザから第2ユーザへのトークンの移転を含む第1トランザクションを受信するステップ;権利登録データベースに問い合わせて、トークンの移転を含む第2トランザクションが権利登録データベースに記録されているかどうかを判定するステップ;第2トランザクションが権利登録データベースに記録されていると判定したことに応じて、トークンは有効であると判定するステップを含む、方法に関する。例えば、第2トランザクションは、第1トランザクションよりも時間的に前であり得る。
【0019】
いくつかの実施形態において、権利登録データベースに問い合わせることは、トークンの真正性が証明されていないと判定したことに応じて、権利登録データベースに問い合わせることを含む。
【0020】
いくつかの実施形態において、権利登録データベースは、トークンの移転を含むトランザクションに関連する1つ以上のエントリを含み、各エントリは、トランザクションインジケータと関連付けられており、権利登録データベースに問い合わせることは、第1トランザクションから、トークンと関連付けられたトランザクションインジケータを判別すること;及び、このトランザクションインジケータを、権利登録データベースの1つ以上のトランザクションインジケータと比較して、第2トランザクションを識別することを含む。例えば、トランザクションインジケータは、トランザクションIDを含み得る。
【0021】
いくつかの実施形態において、トークンの真正性が証明されていないと判定することは、トークンと関連付けられた第1引き換えスクリプトであって、トランザクションへの入力として参照される第1引き換えスクリプトが、署名権者により署名されていないと判定することを含む。署名権者は、トークンの発行者及び信頼できるサービス提供者のうちの少なくとも一方を含み得る。
【0022】
いくつかの実施形態において、本方法は、第2トランザクションが権利登録データベースに記録されていないと判定したことに応じて、トークンは有効でないと判定するステップをさらに含む。
【0023】
いくつかの実施形態において、本方法は、第2トランザクションが権利登録データベースに記録されていないと判定したことに応じて、ピアツーピア分散型台帳に問い合わせて、トークンと関連付けられた、真正性が証明されているトランザクションを識別することができるかどうかを判定するステップであって、真正性が証明されているトランザクションは、トークンと関連付けられた以前のトランザクションを含み、トークンの正当性が認められている、ステップ;及び、真正性が証明されているトランザクションを識別したことに応じて、トークンは有効であると判定するステップをさらに含む。
【0024】
いくつかの実施形態において、第1パーティにより、発行者により発行されたトークンの移転を記録するための権利登録データベースを維持管理する、コンピュータにより実行される方法であって、各トークンは、暗号通貨量と関連付けられ、本方法は、発行者により発行されたトークンの移転を含むトランザクションについて、ピアツーピア分散型台帳をモニタリングするステップ;及び、ピアツーピア分散型台帳に記録されている、発行者により発行されたトークンの移転を含む第1トランザクションを判別したことに応じて、トークンの移転を権利登録データベースに記録するステップを含む、方法に関する。
【0025】
いくつかの実施形態において、ピアツーピア分散型台帳をモニタリングすることは、ピアツーピア分散型台帳に記録されているトランザクションの以前トランザクションIDを判別すること;判別された以前トランザクションIDを、トランザクションIDのセットと比較することであって、セットの各トランザクションIDは、発行者により発行されたトークンと関連付けられたトランザクションを識別する、比較すること;及び、判別された以前トランザクションIDが、トランザクションIDのセットのうちの1つのトランザクションIDに一致することに応じて、以前トランザクションIDと関連付けられたトランザクションを、発行者により発行されたトークンの移転を含む第1トランザクションのレコードとして決定することをさらに含む。
【0026】
いくつかの実施形態において、ピアツーピア分散型台帳をモニタリングすることは、発行者により発行されたトークンと関連付けられたトランザクションのターゲットトランザクションIDを判別すること;ターゲットトランザクションIDを、ピアツーピア分散型台帳に記録されているトランザクションの以前トランザクションIDと比較すること;及び、ターゲットトランザクションIDが、ピアツーピア分散型台帳に記録されているトランザクションのうちの1つのトランザクションの以前トランザクションIDに一致することに応じて、ピアツーピア分散型台帳に記録されているトランザクションのうちの1つのトランザクションを、第1トランザクションのレコードとして決定することをさらに含む。
【0027】
いくつかの実施形態において、本方法は、トークンの移転を権利登録データベースに記録することと関連付けられたエントリに発行者の署名を付加することにより、エントリの真正性を証明するステップをさらに含む。
【0028】
いくつかの実施形態において、権利登録データベースを維持管理することは、発行者及び許可されたサービス提供者のうちの少なくとも一方により実行される。
【0029】
いくつかの実施形態において、権利登録データベースは、分散ハッシュテーブルを含む。例えば、分散ハッシュテーブルは、発行者により発行されたトークンと関連付けられた契約を含み得る。
【0030】
いくつかの実施形態は、暗号通貨量と関連付けられたトークンの有効性を判定するトークン検証システムであって、検証アプリケーションを格納するためのメモリ及びプロセッサを有し、プロセッサは、上述した方法のうちのいずれか1つを実行する検証アプリケーションを実行するよう構成されている、トークン検証システムに関する。
【0031】
いくつかの実施形態は、トークンの移転を記録するための権利登録データベースを維持管理する権利登録維持管理システムであって、各トークンは、暗号通貨量と関連付けられ、本権利登録維持管理システムは、維持管理アプリケーションを格納するためのメモリ及びプロセッサを有し、プロセッサは、上述した方法のうちのいずれか1つを実行する維持管理アプリケーションを実行するよう構成されている、権利登録維持管理システムに関する。
【0032】
いくつかの実施形態は、プロセッサにより実行されたときにプロセッサに上述した方法のうちのいずれか1つを実行させるマシン読み取り可能な命令を含むコンピュータソフトウェアプログラムに関する。
【図面の簡単な説明】
【0033】
本開示の例が、図面を参照して説明される。
【
図1】いくつかの実施形態に従った、トークンを作成及び/又は移転する例示的なシステムの概略図。
【
図2】トークンを作成することを含む、発行者と第1ユーザとの間の第1タイプのトランザクションの例を示す図。
【
図3】いくつかの実施形態に従った、トークンを作成する、コンピュータにより実行される方法の処理フロー図。
【
図4】トークンを移転することを含む、第1ユーザと第2ユーザとの間の第2タイプのトランザクションの例を示す図。
【
図5】いくつかの実施形態に従った、トークンの移転を記録するための権利登録データベースを維持管理する、コンピュータにより実行される方法の処理フロー図。
【
図6】いくつかの実施形態に従った、トークンを検証する、コンピュータにより実行される方法の処理フロー図。
【
図7】いくつかの実施形態に従った、トークンを検証する、コンピュータにより実行される方法の処理フロー図。
【
図8】いくつかの実施形態に従った、
図1のシステムの処理デバイスの概略的な例を示す図。
【発明を実施するための形態】
【0034】
記載されている実施形態は、例えばビットコインといった、ブロックチェーンベースの暗号通貨と併せて実現されるトークンを検証するシステム及びコンピュータにより実行される方法に関する。いくつかの実施形態は、署名権者により電子的に副署されていないトランザクションと関連付けられたトークンを検証することに関する。他の実施形態は、トークンの移転を記録するための権利登録データベースを維持管理するするシステム及びコンピュータにより実行される方法に関する。トークンは、何らかのタイプの、又は、物理的な、電子的な、デジタルな、若しくは抽象的なエンティティ又は資産と関連付けられる表現又は識別子であり得る。
【0035】
いくつかの実施形態は、暗号通貨量(B1)と関連付けられたトークン(T)の有効性を判定するシステム及びコンピュータにより実行される方法に関し、トークン(T)は、例えば、トークン(T)の移転を含む(もたらす)ブロックチェーントランザクションTxによって、第1ユーザ(A)から第2ユーザ(B)に移転される。いくつかの実施形態において、トークン(T)は、例えばトークン(T)の発行者又は信頼できるサービス提供者等の署名権者により、その真正性が証明されていない。
【0036】
いくつかの実施形態において、ピアツーピア分散型台帳(ブロックチェーン)は、トークン(T)と関連付けられた、真正性が証明されているトランザクションを識別することができるかどうかを判定するために問い合わせられ得る。これは、ビットコインブロックチェーンであることもないこともある。例えば、真正性が証明されているそのようなトランザクションは、トークン(T)と関連付けられた以前のトランザクションを含み得、ここで、トークン(T)の正当性が認められている。真正性が証明されているトランザクションが識別されたことに応じて、トークン(T)は、有効であると判定され得る。「以前の」トランザクションとは、以前に、すなわち、時間的に前に、ブロックチェーンに書き込まれたトランザクションを意味する。ブロック(したがってトランザクション)は、時系列順にブロックチェーンに書き込まれることを思い出されたい。以前のトランザクションは、ブロックのチェーンにおいてより前にあるトランザクション、すなわち、発生源の発端ブロックに近い方のトランザクション、と表現され得る。
【0037】
いくつかの実施形態において、権利登録格納リソース、例えば、データベースは、トークン(T)の移転を含む第2トランザクションが権利登録ストレージに登録又は記録されているかどうかを判定するために問い合わせられ得、ここで、第2トランザクションは、第1トランザクションよりも時間的に前である。第2トランザクション(T2)が権利登録ストアに記録されていると判定されたことに応じて、トークン(T)は、有効であると判定され得る。
【0038】
いくつかの実施形態において、トークン(T)の発行者(I)等のパーティ(P)は、トークンの移転を含むトランザクションを権利登録ストレージに記録することにより、権利登録ストレージを維持管理する役割を担い得る。
【0039】
ここで
図1を参照すると、発行者(I)3と関連付けられた第1処理デバイス13、第1ユーザ(A)5と関連付けられた第2処理デバイス15、及び第2ユーザ(B)7と関連付けられた第3処理デバイス17を含むシステム1が示されている。第1処理デバイス13、第2処理デバイス15、及び第3処理デバイス17は、通信ネットワーク8を介して、互いと通信することができる。第1処理デバイス13はまた、関連付けられたデータストア11を有してもよいし、例えば、直接的に又は通信ネットワーク8を介して、関連付けられたデータストア11と通信してもよい。
【0040】
第1処理デバイス13が、単一のノードとして図示されているが、第1処理デバイス13は、発行者(I)3と関連付けられた1つ以上のノードを含んでもよく、第1処理デバイス13により実行されるとして説明される方法の1つ以上のステップは、第1処理デバイス13の異なる且つ/又は複数のノードに分散されて第1処理デバイス13の異なる且つ/又は複数のノードにおいて実行されてもよいことが理解されよう。
【0041】
いくつかの実施形態において、第2処理デバイス15及び第3処理デバイス17は、第1ユーザ5及び第2ユーザ7によりそれぞれ使用される、コンピュータ、モバイル通信デバイス、又は他の電子デバイスであり得る。他の例において、第2処理デバイス15及び第3処理デバイス17は、端末又は他のインタフェースを介して第1ユーザ及び第2ユーザによりそれぞれアクセス可能である仮想マシンであり得る。
【0042】
発行者(I)3は、トークンを作成し、例えば、銀行、別の金融機関、造幣局、会社等であり得る。しかしながら、他の例において、発行者は、金融機関ではないことがあり、本発明は、金融に特化した用途に限定されるものではない。第1ユーザ(A)5は、発行者(I)3に対して、トークンの作成を要求することもあるし、トークンの価額(value)の一部又は全てを発行者(I)3と引き換えるよう要求することもあるし、且つ/又は、トークンの価額の一部又は全てを第2ユーザ(B)7に移転するよう要求することもある。同様に、第2ユーザ(B)7は、発行者(I)3に対して、トークンの作成を要求することもあるし、トークンの価額の一部又は全てを発行者(I)3と引き換えるよう要求することもあるし、且つ/又は、トークンの価額の一部又は全てを第1ユーザ(A)5に移転するよう要求することもある。
【0043】
システム1はまた、トランザクションを記録するためのピアツーピア分散型台帳(ブロックチェーン)9を管理するための1つ以上の処理デバイス19を含む。詳細には、1つ以上の処理デバイス19は、例えば、第1処理デバイス13、第2処理デバイス15、及び/又は第3処理デバイス17それぞれから、通信ネットワーク8を介して、トランザクションを受信し、トランザクションを記録するよう構成され得る。ピアツーピア分散型台帳9の例は、ビットコインプロトコルに基づくトランザクション(TXs)の分散ネットワークであるブロックチェーンを含む。したがって、いくつかの実施形態において、1つ以上の処理デバイス19は、「マイナー」と関連付けられ得る。したがって、本発明は、ブロックチェーン実装型の分散ネットワークと通信する1つ以上の処理デバイス19を含む。ネットワーク及び様々なデバイスは、本発明を実施するために相互通信する。
【0044】
いくつかの実施形態において、システム1はまた、トークンの移転と関連付けられたトランザクションを記録するための権利登録データベース23を管理するための1つ以上の処理デバイス21を含む。1つ以上の処理デバイス21は、通信ネットワーク8を介して、第1処理デバイス13、第2処理デバイス15、及び/若しくは第3処理デバイス17、並びに/又は1つ以上の処理デバイス19と通信することができる。詳細には、1つ以上の処理デバイス21は、トークン(T)の移転を含むトランザクションに関連するデータを受信して記録するよう構成され得る。
【0045】
トークンを伴うトランザクションの概要
トークンを伴う3つの一般的なタイプのトランザクション、すなわち、発行者(I)3によるトークンの作成、第1ユーザ(A)5又は第2ユーザ(B)7による発行者(I)3とのトークンの価額の一部又は全ての引き換え、第1ユーザ(A)5又は第2ユーザ(B)7による第2ユーザ(B)7又は第1ユーザ(A)5へのトークンの価額の一部又は全ての移転、が存在する。
【0046】
図2を参照すると、第1トークン(T1)の作成は、概して、第1ユーザ(A)が、法定通貨(例えば$1000AUD)を発行者(I)3に移転し、この法定通貨と交換で、発行者(I)が、これがトークン価額を有するように第1暗号通貨量(B1)を「トークン化」し、この第1暗号通貨量(B1)を第1ユーザ(A)に移転することを伴う。第1トークン(T1)は、発行者(I)が、指定された法定通貨額(例えば$1000AUD)を第1トークン(T1)の保有者と引き換えることについて合意する契約等の契約を表し得る。したがって、第1トークン(T1)は、流通証券に類似するものであり得る。具体的な条件に応じて、第1ユーザ(A)5は、将来において、第1トークン(T1)を、デポジットされた法定通貨と関連付けられた価額に引き換えることができる。このような条件はまた、第1ユーザ(A)5が、トークンの価額の少なくとも一部を第2ユーザ(B)に移転させることを許可することもある。このような条件は、トークンに固有であることもあるし、ユーザ5、7と発行者(I)3との間の一般条件であることもある。
【0047】
トークンを作成する方法の概要
トークンを作成する方法300が、
図2及び
図3を参照して以下で詳細に説明される。詳細には、方法300は、310において、第1トークン(T1)との関連付けのための第1暗号通貨量(B1)を割り当てることを含む。この方法は、312において、第1引き換えスクリプト(RS1)の第1ハッシュ(H1)を決定することをさらに含み、ここで、第1引き換えスクリプト(RS1)は、第1トークン(T1)と関連付けられた情報を含む少なくとも第1メタデータ(MD1)と、第1ユーザ公開鍵(P1A)と、発行者(I)と関連付けられた第1発行者公開鍵(P1I)と、に基づき、第1発行者公開鍵(P1I)は、第1発行者秘密鍵(V1I)と暗号ペアを形成する。方法300はまた、314において、通信ネットワーク8を介して、第1データ出力(O1)をブロックチェーン9に送信することを含む。第1データ出力(O1)は、第1ユーザ(A)5への第1暗号通貨量(B1)のトランザクションのインジケーションと、第1ユーザ(A)5及び発行者(I)と関連付けられた第1トークン(T1)を提供するために、第1暗号通貨量(B1)と関連付けられた第1ハッシュ(H1)と、を含む。
【0048】
したがって、方法300は、トークンの作成を可能にし、それにより、トークンのレコードがブロックチェーン9に送信されることを可能にする。このトランザクションをブロックチェーン9に記録する利点は、第1ユーザ(A)5等の受取者がトークン(T1)の存在を検証することを可能にし得ることである。さらに、第1トークン(T1)と関連付けられた情報を含む少なくとも第1メタデータ(MD1)はハッシュ化されるので、これは、トークンと関連付けられた情報に対する、(公開レコード上にある)トランザクションの検証を可能にする。一例において、第1トークン(T1)と関連付けられた情報は、契約の条件であり得る。したがって、ハッシュ化される第1引き換えスクリプトに条件を含めることは、有利なことに、何らかの変化が第1ハッシュ(H1)を変更するように条件を変えることができないという安堵さを、第1ユーザ(A)5(又は任意の他のユーザ)に提供することができる。第1ハッシュ(H1)が、第1トークン(T1)を作成したときにブロックチェーン9に送信されて記録されたので、同一の第1ハッシュ(H1)を提供する条件を後の時間に変えることは不可能である(又は難しい)。
【0049】
トークンを作成する詳細な方法
図3を参照すると、いくつかの実施形態に従った、第1トークン(T1)を作成する方法300が示されている。この例において、トークンの作成は、第1ユーザ(A)5が、発行者(I)3に対して現金をデポジットし、その交換としての、デポジットされた現金を表すトークンのコンテキストにおいて説明される。しかしながら、これは、非限定的な例であり、トークンは、他のトランザクションのコンテキストにおいて作成されてもよいことを理解されたい。例えば、トークンは、任意の他の契約、流通証券、有形財産等を表すことができる。
【0050】
トークンについての条件についての合意
第1ユーザ(A)5は、302において、第1トークン(T1)を求める要求を、第2処理デバイス15から、発行者(I)3と関連付けられた第1処理デバイス13に送信することにより、第1トークン(T1)の作成を働きかける。一例において、第1ユーザ(A)5は、例えば$1000AUDといった法定通貨を、トークン(T1)においてこの額を有するための要求をもって、デポジットすることにより、この要求を行う。この要求は、契約についてのオファーを含み得、これは、契約の1つ以上の条件を含み得る。例えば、第1ユーザ(A)5は、$1000AUDのデポジットと関連付けられるトークンが、暗号通貨に対する固定ペギングレート(pegging rate)を有するべきであるということを、この要求に含めることができる。例えば、ペギングレートは1000satoshis/cent(AUD)であるという要求である。トークンをどのように引き換えることができるか、口座維持手数料、トランザクションフィー等、他の条件がオファーに含められることがあることを理解されたい。
【0051】
発行者(I)の第1処理デバイス13は、304において、通信ネットワーク8を介して、第1トークン(T1)を求める第1ユーザ(A)5からの要求を受信し、いくつかの場合において、条件の少なくとも一部を受信する。いくつかの実施形態において、発行者(I)は、306において、この要求を承諾するか、この要求の条件の変更を含むカウンターオファーを提案するか、又は、この要求を拒否するか、を決定する。いくつかの実施形態において、方法300は、発行者(I)により、通信ネットワーク8を介して、ステップ306における決定の結果を第1ユーザ(A)5に送信することを含み得る。
【0052】
いくつかの実施形態において、発行者(I)に送信される要求は、単に、第1トークン(T1)を求める要求を含むだけであり得る。この場合、発行者(I)は、条件を含むオファーを第1ユーザ(A)5に送信することができる。次いで、第1ユーザ(A)5は、このオファーを承諾するか、カウンターオファーを提案するか、又は、このオファーを拒否するか、を決定することができ、次いで、このことが、発行者(I)に送信される。発行者(I)及び第1ユーザ(A)5が合意するまで、複数回の往復のオファー及びカウンターオファーが、発行者(I)と第1ユーザ(A)5との間で送受信されることがあることが理解されよう。いくつかの実施形態において、条件は、標準化され得、それにより、ユーザは、方法300におけるステップを実行することにより、条件を承諾する。一例において、発行者(I)は、第1ユーザ(A)5を含め、その顧客のためのトークンについての標準化されたオファーを有することがある。トークンについてのそのようなオファーは、例えば公開取引所上に又は発行者のウェブサイト上に、公にリストされ得る。継続的なオファーは、例えば、電子メールにより、アプリケーションを通じて、又は、セキュアなウェブサイトにログインすることにより、発行者(I)により第1ユーザ(A)5に秘密に提供されることもある。トークンと関連付けられた契約条件は、データストア11に格納されることもあるし、格納のためにサードパーティに送信されることもあるし、トレントされる(torrented)こともある。いくつかの実施形態において、条件は、分散ハッシュテーブル(DHT)に格納され得る。
【0053】
第1ユーザ公開鍵の決定
方法300は、308において、第1ユーザ(A)5と関連付けられる暗号ペアの第1ユーザ公開鍵(P1A)を決定することを含み、ここで、暗号ペアは、第1ユーザ秘密鍵(V1A)及び第1ユーザ公開鍵(P1A)を含む。一例において、第1ユーザ公開鍵(P1A)は、第1ユーザ(A)5から通信ネットワーク8を介して発行者(I)に送信され得る。別の例において、第1ユーザ公開鍵(P1A)は、データストア11に格納され得る(例えば、第1ユーザ(A)5の登録中に受信されて格納され得る)。したがって、第1ユーザ公開鍵(P1A)を決定するステップ308は、データストア11からこの鍵を取得することを含み得る。さらに別の例において、第1ユーザ公開鍵(P1A)は、サードパーティから通信ネットワーク8を介して受信され得る。サードパーティは、例えば、認証局等、公開ディレクトリとして機能する信頼できるサードパーティを含み得る。
【0054】
トークンとの関連付けのための第1暗号通貨量の割り当て
方法300は、310において、第1トークン(T1)との関連付けのための第1暗号通貨量(B1)を割り当てることを含む。第1トークン(T1)を伴うトランザクションのレコードがピアツーピア分散型台帳(この例ではブロックチェーン)に記録されるためには、トークンは、暗号通貨量と関連付けられなければならない。そして、その暗号通貨量が、発行者(I)3から第1ユーザ(A)5へのトランザクションとして、ブロックチェーンに記録される。
【0055】
第1トークン(T1)との関連付けのための第1暗号通貨量(B1)の割り当ては、トークン価額の比率に基づき得る。例えば、ペギングレート(PR1)が、第1トークン(T1)について指定され得る。したがって、310において第1暗号通貨量(B1)を割り当てることは、ペギングレート(PR1)及び第1トークン価額(TV1)に基づいて、第1暗号通貨量(B1)を決定することを含み得る。例示的な例として、ペギングレート(PR1)は、1000satoshis/cent(AUD)であり得、第1トークン価額(TV1)は、$1000AUDである。したがって、第1暗号通貨量(B1)は、10000000であり得る。
【0056】
トークンのために割り当てられる暗号通貨量は、以下の考慮事項のうちのいくつかにより影響が及ぼされ得る。第1に、割り当てられる暗号通貨量は、理想的には、トークンの価額(「トークン価額」)よりも低い市場価額を有する(この目的で、これは、トークン価額を参照することなく、これが価額を有すると仮定すると、暗号通貨自体の市場価額を意味する)。これは、トークンとしてではなく基礎となる価額について暗号通貨量を使用する動機づけがないようにするので、望ましい。これは、現金コインが造られる元である金属の価額のために現金コインを溶かす欲求がないように、現金コインが造られる元である金属よりも高いように現金コインの額面価額を有することが望ましい場合における、現金コインに類似するものであり得る。いくつかの例において、トークン価額は、暗号通貨量の基礎となる価額よりも数倍大きい。しかしながら、何らかのトークンは、固定トークン価額又は容易に決定可能なトークン価額を有しないことがあることを理解されたい。例えば、トークンは、作業を実行する契約を表すことがあり、これにより、価額は、日によって変わり得る。他の例において、契約は、引き換えられる当日に決定可能である価額を有するだけであることがある。
【0057】
別の考慮事項は、割り当てられる暗号通貨量が、トークン価額又はトランザクションの価額に対して大き過ぎないべきである、ということである。なぜならば、暗号通貨量のトランザクションをピアツーピア分散型台帳に記録することは、トランザクションフィーを負う等、コストがかかり得るからである。いくつかの例において、トランザクションフィーは、トランザクションにおける暗号通貨量に基づき、したがって、トークンのための暗号通貨量を最低限のレベルで保つことが望ましいことであり得る。
【0058】
一方、トークンとの関連付けのために割り当てられる暗号通貨量は、無限小とすることはできない。第1に、暗号通貨は、最低通貨単位額を有し得、例えば、ビットコインは、1satoshiという最低額を有する(ここで、1ビットコイン(BTC)=10000000satoshiである)。第2に、暗号通貨のトランザクションは、最小サイズに制限され得、さもなければ、これは記録されない(あるいは、トランザクションのコストは、トランザクションを実行するコストに近い又はトランザクションを実行するコストを超える)。この最小量は、いくつかの例において、「ダスト(dust)」リミット(limit)である。したがって、いくつかの例において、トークンのための暗号通貨量を割り当てることは、最小閾量(MT1)以上の暗号通貨でなければならない。したがって、方法は、第1トークン(T1)に適した、暗号通貨の最小閾量(MT1)を決定することと、暗号通貨の最小閾量(MT1)以上である第1暗号通貨量(B1)を決定することと、を含み得る。一例において、「ビットコイン」における暗号通貨の最小閾量(MT1)は、546satoshiである。
【0059】
トークンのための暗号通貨量を割り当てるときの別の考慮事項は、後続のトークンのための暗号通貨の分割可能性である。例えば、第1トークン(T1)は、$1000AUDというトークン価額(TV1)を有し得、第1ユーザ(A)5は、このトークン価額のうちの$800AUDを第2ユーザ(B)7に移転し、残りの$200AUDのトークンを保持することを望み得る。そのようなトランザクションは、変更に伴い第1ユーザ(A)5に留まる$200AUDを表す第2トークン(T2)をもたらす、第1トークン(T1)を用いるトランザクションを伴い、これは、第2ユーザ(B)7に移転される$800AUDを表す第3トークン(T3)を作成する。したがって、この移転の結果は、第2トークン(T2)及び第3トークン(T3)という2つのトークンであり、ここで、これらのトークンの各々にも、暗号通貨量が割り当てられなければならない。第1暗号通貨量(B1)が、例えば、「ダスト」リミット等、最小限度であった場合、作成される新たなトークンの各々も、最小閾量を満たすのに十分な暗号通貨量と関連付けられるように、さらなる暗号通貨量が提供される必要がある。したがって、量が、予期される数の後続のトークンのために使用されるよう分割されるのに十分であるように、第1トークン(T1)のための十分な暗号通貨量(B1)を割り当てる利点が存在し得る。
【0060】
一例において、条件は、暗号通貨量、又はトークンの最低価額若しくは通貨単位を指定し得る。例えば、条件は、トークン価額の最低通貨単位を$10AUDに設定し得る。したがって、$1000AUDというトークン価額(TV1)を有する第1トークン(T1)のための第1暗号通貨量(B1)を割り当てることは、全トークン価額(TV1)が最低通貨単位に分割された場合に十分な暗号通貨が存在することを保証する第1量を決定することを含み得る。この例において、トークン価額(TV1)は、($1000/$10により算出される)100個の後続のトークンに分割され得る。したがって、適切な第1暗号通貨量(B1)は、「ダスト」リミットの100倍であり得る。
【0061】
第1引き換えスクリプト(RS1)の第1ハッシュ(H1)の決定
方法300は、312において、第1引き換えスクリプト(RS1)の第1ハッシュ(H1)を決定することをさらに含む。一例において、引き換えスクリプトのハッシュは、ペイツースクリプトハッシュトランザクションのためのペイツースクリプトハッシュ(P2SH)アドレスを提供するために使用され得る。例は、ビットコインプロトコルにおけるP2SHスクリプトにおいて使用されるハッシュ関数を含む。これは、SHA256とSHA256に続くRIPEMD160との組合せを含み得る。
【0062】
第1引き換えスクリプト(RS1)は、後述されるように、第1暗号通貨量(B1)のトランザクションを含む第1トークン(T1)をアンロックするために使用され得るスクリプトである。第1トークン(T1)をアンロックするとき、第1引き換えスクリプト(RS1)の所定の条件が、トランザクションをアンロックするために満たされなければならない。詳細には、第1ユーザ(A)5及び発行者(I)の署名が必要とされる。第1引き換えスクリプト(RS1)の例が、次いで説明される。
【0063】
第1引き換えスクリプト(RS1)
第1引き換えスクリプト(RS1)は、第1トークンと関連付けられた情報を含む少なくとも第1メタデータ(MD1)、第1ユーザ公開鍵(P1A)、及び第1発行者公開鍵(P1I)に基づく。
【0064】
(i)P2SHにおける引き換えスクリプトの概要
バックグラウンドとして、ペイツースクリプトハッシュ(P2SH)方法において、引き換えスクリプトは、以下の形をとり得る:
<NumSigs PubK1 PubK2 ... PubK15 NumKeys OP_CHECKMULTISIG>
ここで、
NumSigsは、トランザクションをアンロックするために引き換えスクリプトを満たすのに必要とされる有効な署名の数「m」であり、
PubK1、PubK2、...、PubK15は、トランザクションをアンロックする署名に対応する公開鍵であり(最大で15個の公開鍵)、
NumKeysは、公開鍵の数「n」である(15以下でなければならない)。
【0065】
上記の引き換えスクリプトをアンロックするためには、公開鍵に対応する少なくとも「m」個の署名が必要とされる。いくつかの例において、公開鍵の順序が重要であり、署名のためのn個の署名からのm個が順番に行われなければならない。例えば、「m」が2であり、公開鍵の数「n」が15であるとする。2つの署名すなわち(PubK1に対応する)Sig1及び(PubK15に対応する)Sig15が、利用可能であるとすると、引き換えスクリプトは、最初にSig1によって、続いてSig15によって、署名されなければならない。
【0066】
(ii)P2SHを使用する第1引き換えスクリプト(RS1)
この例に戻ると、P2SHを使用する第1引き換えスクリプト(RS1)は、引き換えスクリプト内の少なくとも第1メタデータ(MD1)を含み得る。詳細には、少なくとも第1メタデータ(MD1)は、引き換えスクリプト内で公開鍵について利用可能である15個の場所のうちの1つ以上の場所に埋め込まれ得る。
【0067】
したがって、一例において、第1引き換えスクリプト(RS1)は、以下の形をとり得る:
<NumSigs Metadata1 Metadata2...PubK1 PubK2...NumKeys OP_CHECKMULTISIG>
ここで、
NumSigsは、トランザクションをアンロックするために引き換えスクリプトを満たすのに必要とされる有効な署名の数「m」であり、
Metadata1及びMetadata2は、公開鍵の場所を占めるメタデータを含み、
PubK1及びPubK2は、実際の公開鍵であり、一例において、PubK1は、第1ユーザ公開鍵(P1A)であり得、PubK2は、発行者公開鍵(P1I)であり得、
NumKeysは、メタデータ及び公開鍵により占められる場所の総数である(15以下でなければならない)。
【0068】
これの利点は、メタデータが第1引き換えスクリプト(RS1)に含められることになり、今度は、これが、ハッシュ化されることになり、このレコードが、ブロックチェーン9に含められることになる、ということである。したがって、第1引き換えスクリプトハッシュ(RS1)の対応するハッシュの変化をもたらすことなく、メタデータの値を変更することは、不可能ではないとしても、難しい。
【0069】
実際の利点が、次の例により示され得る。第1ユーザ(A)5及び発行者(I)3は、特定の条件をもって、契約を結ぶことを望むことがある。契約は、発行者(I)がトークンを作成することを含み得、それにより、特定の条件が、引き換えスクリプトに埋め込まれるメタデータに含められる。次いで、引き換えスクリプトのハッシュが、ブロックチェーン9に記録され、これは、変更することが難しい又は不可能であるトランザクションのレコードになる。発行者(I)が、第1ユーザ(A)5を欺むこうと試み、例えば、条項を変更しようと試み、変更された条項が元々合意された契約に存在していたと主張するとする。第1ユーザ(A)5は、変更された条項を引き換えスクリプトのメタデータに配置してこれをハッシュ化し、次いで、これが、ブロックチェーンに記録されている引き換えスクリプトに合致しないことを示すことにより、これについて争うことができ得る。したがって、トークンと関連付けられた情報を少なくとも第1メタデータに含めることは、トークンのインテグリティを保証するのに有用であり得る。
【0070】
引き換えスクリプト内のメタデータはそれ自体、他の情報のハッシュを含み得ることを理解されたい。例えば、条件が長々しい場合、条件のハッシュを使用して、より短いメタデータを提供することができる。
【0071】
第1引き換えスクリプト(RS1)は、第1トークン(T1)を引き換えるために、レコードとしてデータストア11に格納され得る。いくつかの代替例において、第1引き換えスクリプトは、第1ユーザ(A)5又はサードパーティに送信されることがある。
【0072】
メタデータ
この例において、第1引き換えスクリプト(RS1)は、以下の形をとり得る:
<2 Metadata1 Metadata2 P1A P1I 4 OP_CHECKMULTISIG>
【0073】
したがって、少なくとも第1メタデータ(MD1)は、引き換えスクリプト内の場所のうちの2つの場所を占めるMetadata1及びMetadata2の両方を含む。これらの後に、第1ユーザ公開鍵(P1A)及び第1発行者公開鍵(P1I)という2つの公開鍵が順番に続く。NumSigsは2であり、これは、2つの署名が、トランザクションをアンロックするために必要とされることを意味する。
【0074】
メタデータは、いくつかの態様でトークンに関する情報を含み得る。説明されたように、一例において、条件が、メタデータに含まれ得る。別の例において、条件のハッシュが、メタデータに含まれ得る。さらに別の例において、メタデータは、契約の条件を含むファイルへのポインタを含み得る。さらなる実施形態において、上記のうちの1つ以上を含む組合せが、メタデータに含まれ得る。
【0075】
(i)条件へのポインタを含むメタデータ
第1メタデータ(MD1)の具体例が、以下の表1に示されている。
【表1】
【0076】
この例は、トークン及びトランザクションに関する最小限の情報しか含まない。この例は、契約(スマートコントラクト)のサイズが、メタデータにそのような詳細を含めることを妨げる場合に有用であり得る、契約(スマートコントラクト)へのポインタを提供することを含む。さらに、メタデータは、公開され得るので、又は、セキュアでないネットワークを介して伝送され得るので、トークンの具体的な詳細は、プライバシの理由から隠され得る又は秘密にされ得ることが望ましいことであり得る。
【0077】
Metadata1の最初の4バイトは、契約のタイプを示す。例えば、契約タイプは、「法定通貨」に関するものであり得る。次の16バイトは、実際の電子契約ファイルの位置のIPアドレスを保持し、IPv6アドレスを許容する。いくつかの実施形態において、この値は、契約ファイルが、集中管理されるのではなく、クラウドにわたって分散され得るように、トレントファイルのシードを指し示し得ることに留意されたい。次の12バイトは、契約のタイプに固有のデータを含む。
【0078】
Metadata2の最初の20バイトは、実際の契約ファイルに適用されるSHA256及びRIPEMD-160を用いた、実際の契約ファイルのハッシュである。実際の契約ファイルは、検索・取得可能であるので、これは、契約に対するトランザクションの検証を可能にする。契約ファイル自体は、具体的な実施形態の要件に応じて、完全に公開されることもあるし(暗号化されておらず人間が読み取り可能)、プライバシのために暗号化されることもある。Metadata2の残りの12バイトの内容は、契約のタイプに応じて使用され得る。
【0079】
(ii)トークンの主要なパラメータを含むメタデータ
第1メタデータ(MD1)の別の具体例が、以下の表2に示されている。
【表2】
【0080】
この例において、トークンのいくつかの主要なパラメータが、メタデータに含まれる。主要なパラメータにより、これは、トークン自体に関連する情報又はトランザクションの処理を支援することができる情報を含み得る。詳細には、上記の表1におけるサブフィールド「ContractTypeData1」に割り当てられていたバイトは、法定通貨(FiatDenomination)、ペギングレート(PeggingRate)、及びトランザクションタイプ(TransactionType)を示すために使用されている。
【0081】
メタデータに主要なパラメータを含めることは、発行者(I)3が、いくつかの場合において、トランザクションを処理するために必要とされる主要な情報について契約ファイルを検索することなく、トランザクションにおけるトークンを処理できるので、より優れた処理効率に資することができる。
【0082】
上記の情報に加えて、トークンの履歴すなわちトークンよりも先行するトークンに関連する他の情報も含まれ得る。例えば、第1ユーザ(A)5が、第1トークン(T1)の一部を引き換えることを望み、第2トークン(T2)が、残りの部分の価額を表すように発行者(I)により作成される場合、発行者は、第2トークン(T2)を第1トークン(T1)と関連付ける情報を、メタデータに埋め込むことができる。これは、銀行等の発行者(I)にとって集約的タスクであり得る、トランザクションの履歴のトレースに費やすことなく、発行者(I)がトークンを理解して追跡するのを支援することができる。
【0083】
表2において、メタデータは、法定通貨(FiatDenomination)を示す2バイトのフィールドと、PeggingRateと称される1バイトのフィールドと、を含む。ペギングレートは、発行者(I)により設定される。いくつかの異なるレートが、同じ法定通貨について設定され得るが、(異なる契約を伴う)異なるトークンが、各異なるレートについて必要とされることになる。レートの選択は、発行者(I)の裁量によるが、発行者(I)は、上述したトークンのための暗号通貨量の割り当てについてと同様に、ペギングレートについても同様の考慮をし得る。
【0084】
一例において、PeggingRateは、以下のような8ビットのコード値である:
一番左のビットは、フラグとして使用される:
1=satoshis/centとして表現されるレート(「cent」は、法定通貨の100分の1を指し、最低法定額である)
0=cents/satoshiとして表現されるレート
右側の7ビットは、2進法での10のべき乗としてのレートを表し、例えば、以下である:
USD 10000010は、100satoshis/centというレートを意味する(フラグはオン)
PHP 00000000は、1centavo/satoshiというレートを意味する(フラグはオフ)
IDR 00000001は、10rupiah/satoshiというレートを意味する(フラグはオフ)
【0085】
一例において、TransactionTypeは、トランザクションが、(トークンが暗号通貨から作成される)「発行」であるか、(トークン価額の少なくとも一部が、1人のユーザから別のユーザに移転される)支払であるか、又は、(トークンが、発行者(I)に移転され、正規の暗号通貨に戻されるように換えられる)引き換えであるか、を示す1バイトのフィールドである。
【0086】
いくつかの例において、Metadata1及びMetadata2における「Padding」は、各トランザクションについてのランダムに生成された値を含む。結果は、Metadata1及びMetadata2の各々がトランザクションの間で変わる、ということである。利点は、これが、Metadata1及びMetadata2の一方又は両方にマッチするであろう秘密鍵を暗号ペアとして、(そのような秘密鍵を使用して引き換えスクリプトに署名する目的で、)悪意のある人が決定することを試みるリスク及び動機づけを低下させ得る、ということである。これは、Metadata1又はMetadata2の残りの大部分が同じである場合、標準化されたトークンにとって重要であり得る。
【0087】
公開鍵
第1ユーザ公開鍵(P1A)及び発行者公開鍵(P1I)はそれぞれ、対応する第1ユーザ秘密鍵(V1A)及び発行者秘密鍵(V1I)とペアにされる。いくつかの実施形態において、公開鍵は、公に広く知られ得るものであるのに対し、他の実施形態において、必要に応じて公開鍵を通信することが好ましいことであり得る。
【0088】
いくつかの実施形態において、発行者(I)は、第1ユーザ(A)5及び第2ユーザ(B)7の電子ウォレットを管理する金融機関であり、第1ユーザ(A)5及び第2ユーザ(B)は、仮想マシン環境又は端末を介して、それぞれの電子ウォレットにアクセスすることができる。電子ウォレットは、発行者(I)3(又は発行者(I)3と関連付けられたサーバ)によりホストされ得、対応するユーザの1つ以上の秘密鍵は、データストア11に格納されるが、当該のユーザから許可を得ている発行者(I)3によってのみアクセスされ得る(又は再作成され得る)。そのような場合、第1ユーザ5及び第2ユーザ7は、引き換えスクリプトをアンロックするために、第1ユーザ5及び第2ユーザ7の秘密鍵が発行者(I)3に提供されることを許可することができる。これは、ユーザの1つ以上の秘密鍵が発行者(I)3の第1処理デバイス13に送信されることを許可することを含み得、第1処理デバイス13は、ユーザの1つ以上の秘密鍵(例えば、P1A、P1B)及び第1発行者公開鍵(P1I)を用いて、引き換えスクリプトをアンロックすることができる。
【0089】
ブロックチェーンへの第1データ出力(O1)の送信
方法300は、314において、発行者(I)3により、通信ネットワーク8を介して、第1データ出力(O1)をブロックチェーン9に送信することをさらに含む。この第1データ出力(O1)は、第1暗号通貨量(B1)を第1ユーザ(A)5に移転しているトランザクションのインジケーションを含み得る、すなわち、第1トークン(T1)と関連付けられた基礎となる暗号通貨量(B1)が第1ユーザ(A)5に移転されていることを記録している。第1データ出力(O1)はまた、上述した第1ハッシュ(H1)を含む。第1ハッシュ(H1)は、第1ユーザ(A)5及び発行者(I)と関連付けられた第1トークン(T1)のレコードを提供するために、第1暗号通貨量(B1)と関連付けられる。したがって、第1ハッシュ(H1)は、ブロックチェーン9に記録され、トークン(T1)の存在、発行者(I)と第1ユーザ(A)5との間の関係、及び/又は、トークンの条件を証明又は検証するために使用され得る。
【0090】
方法300はまた、後の使用のために、第1引き換えスクリプト(RS1)をデータストア11に格納することを含み得る。
【0091】
第1トークン(T1)を作成するトランザクションの具体例が、
図2を参照して、次いで説明される。
【0092】
第1ユーザ(A)5による、トークンにおける同等の価額のための、発行者(I)への$1000AUDのデポジット
この例において、第1ユーザ(A)5は、$1000AUDを発行者(I)にデポジットすることを望み、発行者(I)は、その交換で、第1トークン(T1)を10000000という第1暗号通貨量(B1)と関連付けることにより、$1000AUDというトークン価額(TV1)を有する第1トークン(T1)を作成する。
【0093】
トークンを作成するために、発行者(I)は、暗号通貨を有する必要がある。これは、以前のトランザクションから提供されることもあるし、第1トークン(T1)を求める第1ユーザ(A)5からの要求に応じて提供されることもある。これが、
図2の左側において、「第1(非トークン)暗号通貨量」として示されている。
【0094】
以下の表3は、発源となるトランザクション出力を、トランザクションID/Satoshi量/ロッキングスクリプトの形で示している。この発源となるトランザクション出力は、発行者(I)が以前のトランザクションから獲得した暗号通貨を表しており、暗号通貨の少なくとも一部は、第1トークンとの関連付けのために使用されることになる。
【表3】
【0095】
1番目の行「ID-201」は、このトランザクションを識別するトランザクション識別子である。次の行は、このトランザクションにおけるsatoshiの数であり、50000000である。3番目の行は、このトランザクションについてのロッキングスクリプト(出力スクリプト)である。この出力における引き換えスクリプト<PubK-Issuer hash>は、この出力が、第1発行者公開鍵(P1I)を用いてロックされていることを示す。すなわち、このトランザクションは、発行者の対応する第1発行者秘密鍵(V1I)を用いてアンロックされ得る。
【0096】
上述したように、方法300は、310において、第1トークン(T1)に適した第1暗号通貨量(B1)を割り当てることを含む。しかしながら、発行者(I)が持ち合わせている暗号通貨量は、第1暗号通貨量(B1)に正確にはマッチしないことがある。この例において、必要とされる第1暗号通貨量(B1)は、トランザクションID-201からの50000000よりもはるかに少ない10000000である。したがって、第1トークン(T1)を作成するトランザクションは、このトークンのために必要とされなかった超過する暗号通貨量について、暗号通貨のおつりを発行者(I)に戻すように提供することを含み得る。さらに、トークンの作成は、マイナーへのトランザクションフィーの支払を必要とするトランザクションであり得る。これが、トークンを作成するトランザクションを示している以下の表4を参照して示される。
【表4】
【0097】
1番目の行「ID-210」は、このトランザクションを識別するトランザクション識別子である。2番目の行は、使用されたビットコインプロトコルのバージョンを記述する「バージョン番号」を示す。3番目の行は、このトランザクションについての入力の数を示し、1つの入力を示している。
【0098】
表4における行4~行7は、「入力」、すなわち、現在のトランザクションID-210に資金を提供している以前のトランザクションID-201に関連する。行5「IDX-00」は、以前のトランザクションID-201の出力のインデックス(この場合、以前のトランザクションID-201からの1番目の出力が使用されるべきであるというリファレンスである)である。行6は、以前のトランザクションID-201についてのアンロッキングスクリプトである「ScriptSig」である。上述したように、以前のトランザクションは、PubK-Issuerにより表される第1発行者公開鍵(P1I)を用いてロックされた。したがって、以前のトランザクションは、Sig-Issuerにより表される、発行者の対応する第1発行者秘密鍵(V1I)を用いてアンロックされ得る。行7は、入力と関連付けられたシーケンス番号である。ビットコイントランザクションにおいて、各ビットコイントランザクションは、ビットコインコアによりもはや使用されない「シーケンス番号」と称される4バイトのフィールドを含む。発行者の実装に応じて、オプションは、このフィールドを使用して、トランザクション入力を出力に割り当てることである。シーケンス番号は、1ビットフラグのストリングを表すことができ、それにより、右端のビットで始まる各フラグの位置は、入力が、その資金の一部を、当該フラグが立てられた出力に与えたことを示す。この例において、シーケンス番号「0000000000000000000000000000011」は、入力が、出力1及び出力2に入金されることを示し、このことは、以下で説明される。
【0099】
表4における行8は、このトランザクションについての出力の数を示し、2である。行9~行11は、1番目の出力を表し、行12~行14は、2番目の出力を表す。
【0100】
1番目の出力は、第1トークン(T1)と関連付けられた第1暗号通貨量(B1)を反映する。行9は、第1暗号通貨量(B1)の出力値であり、10000000satoshiである。行10は、出力スクリプト長を示す。行11は、出力スクリプト、すなわち、第1暗号通貨量(B1)をロックしているロッキングスクリプトである。これは、第1引き換えスクリプト(RS1)の第1ハッシュ(H1)を含み、以下により表される:
OP_HASH160 <redeem script hash> OP_EQUAL
【0101】
「OP_HASH160」は、ハッシュ関数のタイプであり、ここで、入力は、SHA-256により、続いてRIPEMD-160により、2回ハッシュ化されている。引き換えスクリプトハッシュredeem script hashは、上述した形の第1引き換えスクリプト(RS1)のハッシュであり、この例では以下である:
2 metadata1 metadata2 P1A P1I 4 OP_CHECKMULTISIG
【0102】
これは、上述したように、第1ユーザ公開鍵(P1A)及び第1発行者公開鍵(P1I)を含む。metadata1及びmetadata2は、これが「発行」トランザクションであるというインジケーションを含め、上述したメタデータを含み得る。OP_EQUALは、出力を検証するためのブール結果を提供する。
【0103】
2番目の出力は、トランザクションについての発行者のおつりを反映する。以前のトランザクションID-201である入力は、50000000satoshiを含んでいたので、発行者(I)は、余ったsatoshiを受け取ると予期することができる。行12は、2番目の出力についての出力値であり、39999000である。行13は、出力スクリプト長であり、行14は、2番目の出力についての出力スクリプトである。2番目の出力は、発行者(I)に戻されるおつりであるので、発行者は、2番目の出力を自由に使用するべきである。したがって、出力スクリプト(すなわちロッキングスクリプト)は、<PubK-Issuer hash>により表される第1発行者公開鍵(P1I)のみを含む。
【0104】
概して、トランザクションの1つ以上の出力値は、入力以下でなければならない。上記の例において、入力は、50000000であり、出力は、(1番目の出力である10000000及び2番目の出力である39999000に基づく)49999000である。したがって、1000satoshiの不足が存在する。この例において、1000satoshiは、トランザクションフィー(例えば、マイナーのフィー)である。
【0105】
第1ユーザ(A)による、トークンの価額の一部又は全ての、発行者(I)との引き換えの概要
概して、トークンは、発行者(I)3と引き換えられる。いくつかの実施形態において、発行者(I)が、ユーザ5、7のための電子ウォレットを提供するサービス提供者である場合、ユーザの秘密鍵は、発行者(I)と関連付けられたデータストア11において、セキュアに保たれる。したがって、このような実施形態において、ユーザ5、7(又はユーザ5、7のそれぞれの処理デバイス15、17)は、引き換えスクリプトに署名しない。代わりに、ユーザ5、7から許可を得ている発行者(I)3が、引き換えスクリプトに署名する。例えば、第1ユーザ(A)5は、トークンを引き換える要求を発行者(I)3に送信し得、暗示的又は明示的に、トークンを引き換えるこの要求はまた、発行者(I)3が、トークンを引き換えるために第1ユーザ秘密鍵(V1A)を使用するための、第1ユーザ(A)5による許可を含む。
【0106】
第1トークン(T1)を引き換える方法は、発行者(I)3により、通信ネットワーク8を介して、第1ユーザ(A)5からの第1トークン(T1)を引き換える要求を受信することと、第1トークン(T1)と関連付けられる第1引き換えスクリプト(RS1)を決定することと、例えばデータストア11又は別のエンティティ若しくはノードから、第1ユーザ秘密鍵(V1A)を取得することと、を含み得る。次いで、発行者は、ユーザ秘密鍵(P1A)及び第1発行者秘密鍵(P1I)を用いて、第1引き換えスクリプト(RS1)に署名することができる。これは、第1ユーザ(A)5にとってのサービス提供者である発行者(I)3が、通信ネットワーク8を介して、署名された又は署名されていない第1引き換えスクリプト(RS1)を送信することなく、第1処理デバイス13においてこれらのステップをセキュアに実行できるので、有利であり得る。
【0107】
この方法はまた、通信ネットワーク8を介して、発行者(I)への第1暗号通貨量(B1)のトランザクションのインジケーションを含む第2データ出力(O2)をブロックチェーン9に送信することを含み得る。したがって、この方法は、第1トークン(T1)と関連付けられた第1暗号通貨量(B1)を発行者(I)に戻す。一例において、第1引き換えスクリプト(RS1)は、第1ユーザ(A)及び発行者(I)の両方の秘密鍵を用いて署名されているので、このトランザクションにおける第1暗号通貨量(B1)の受取者すなわち発行者(I)3は、その後、(暗号通貨単独であろうが他の関連付けられたトークンとともにであろうが)他のトランザクションのために第1暗号通貨量(B1)を使用することができる。
【0108】
第1ユーザ(A)による、第2ユーザ(B)へのトークンの価額の一部又は全ての移転
いくつかの実施形態において、第1ユーザ(A)5が、第1トークン(T1)の価額又はその一部を第2ユーザ(B)に移転することを可能にするために、1つ以上の追加のトークンが作成され得る。例えば、第2ユーザ(B)7及び発行者(I)3と関連付けられる第3トークン(T3)が作成され得る。これは、有利なことに、第1ユーザ(A)5が、実際には、第1トークン(T1)と関連付けられたのと同じ又は類似する権利を第2ユーザ(B)に移転することを可能にし得る。第3トークン(T3)の形の新たなトークンが作成されるが、第3トークン(T3)は、第1トークン(T1)と類似する特性を有することができる。例えば、これらのトークンは、同じ又は類似する関連付けられたメタデータを有することができる。これは、例えば、第1ユーザ(A)5と発行者(I)3との間で適用可能な同じ又は類似する条件が、第2ユーザ(B)7と発行者(I)3との間でも適用されるべきである場合に有用であり得る。
【0109】
一例において、第1ユーザ(A)5は、第1トークン(T1)の全価額を第2ユーザ(B)に移転することを望むことがある。そのような場合は、第2ユーザ(B)7に移転されるべき第1暗号通貨量(B1)と関連付けられる第3トークン(T3)の作成を伴い得る。有利なことに、第3トークン(T3)は、第2ユーザ(B)7への、第1トークン(T1)及び第1トークン(T1)と関連付けられた権利の移転である。
【0110】
さらなる例において、第1トークン(T1)の全価額のうちの第1部分(R1)のみが第2ユーザ(B)7に移転され、そのような場合、全価額のうちの残りの第2部分(R2)は、第1ユーザ(A)5に払い戻される第2トークン(T2)に含められ得る。したがって、第3トークン(T3)を作成する要求は、明示的又は暗示的に、第1部分(R1)に基づく第3トークン価額(TV3)を有する第3トークン(T3)を作成する要求を含み得る。
【0111】
発行者(I)又は他のサードパーティ介在者の関与のない、第1ユーザ(A)による第2ユーザ(B)へのトークンの移転
上記のセクションにおいて説明された例において、第1ユーザ(A)5から第2ユーザ(B)へのトークンの価額の移転は、移転を促進するための介在者として発行者(I)3を伴う。これは、第1ユーザ(A)5から第2ユーザ(B)7への第1暗号通貨量(B1)の直接トランザクションとは区別される。
【0112】
しかしながら、いくつかの場合において、発行者(I)又は他のサードパーティ介在者の関与なく、第1ユーザ(A)5により、第2ユーザ(B)7にトークンの価額を移転することが望ましいことがある。例えば、そのような状況は、第2ユーザ(B)7が、サービス提供者を有しない場合に、又は、第2ユーザ(B)7のサービス提供者が、第1ユーザ(A)5のサービス提供者又はトークンを作成する役割を担う発行者(I)3と同じウェブオブトラスト(web of trust)内に存在しない場合に、生じ得る。そのような実施形態において、第2ユーザ(B)7は、移転されるトークンの正当性又は有効性を保証するための予防策を講じることを望むことがある。
【0113】
概して、第2ユーザ(B)7が、第1ユーザ(A)5のサービス提供者(SPA)と同じウェブオブトラスト内にサービス提供者(SPB)を有する場合、サービス提供者(SPB)は、トークンを使用する又は引き換えることについてのトランザクションのための署名者として動作し、したがって、第2ユーザ(B)7は、トークンの真正性又は有効性を確信する。しかしながら、第2ユーザ(B)7が、サービス提供者(SPB)を有しない場合、又は、第1ユーザ(A)5のサービス提供者(SPA)と同じウェブオブトラスト内にサービス提供者(SPB)を有しない場合、発行者(I)又は許可されたパーティは、トランザクションの真正性を証明する又はトランザクションの有効性を検証するのに利用可能でない。
【0114】
したがって、第2ユーザ(B)7は、第2ユーザ(B)7に移転されるトークン(T1)の正当性を判定することを望むことがある。いくつかの実施形態において、実行可能なコンピュータコードを含む検証アプリケーションが、処理デバイス17のメモリ1520(
図8)に格納され、処理デバイス17のプロセッサ1510(
図8)により実行されたときに、処理デバイス17に、
図6及び
図7をそれぞれ参照して以下でより詳細に説明される、暗号通貨量と関連付けられたトークン(T)の有効性を判定する方法600又は700を実行させる。いくつかの実施形態において、第2ユーザ(B)7は、処理デバイス17と関連付けられた仮想マシン環境又は端末を介してアクセスされ得る電子ウォレット(図示せず)を管理することができ、電子ウォレットは、第2ユーザ(B)7が処理デバイス17に検証アプリケーションを実行させることを可能にするアドオン機能を含み得る。
【0115】
第1ユーザ(A)から第2ユーザ(B)にトークン(T1)を移転するトランザクションの具体例が、
図4を参照して、次いで説明される。
【0116】
第1ユーザ(A)による第2ユーザ(B)への第1トークン(T1)の移転
この例において、第1ユーザ(A)5は、
図4に示されているように、トークン(T)を第2ユーザ(B)に移転することを望んでいる。これは、第1ユーザ(A)5から第2ユーザ(B)7への暗号通貨量のトランザクションをもたらし、このトランザクションは、以下において、トランザクションID-510として参照される。第2ユーザ(B)7への暗号通貨量の移転は、第2ユーザ(B)7が、その後に、将来のトランザクションのためのトークンとして暗号通貨量(B1)を使用することを可能にする。第2ユーザ(B)7はまた、メタデータを除去する1つ以上のトランザクション(暗号通貨量(B1)を第2ユーザ(B)7に移転した支払トランザクションを含み得る)により、暗号通貨量(B1)を「逆トークン化する(detokenize)」ことができる。第2ユーザ(B)7は、さらに、第1ユーザ(A)5又は他のユーザからの許可(署名等)を必要とするという制限なく、この暗号通貨を使用することができる。
【0117】
以下の表7に示されている、第1トークンを移転するトランザクションID-510を説明する前に、現在の支払トランザクションID-510への入力である(トランザクションID-500及びID-400からの)発源となるトランザクション出力が簡潔に説明される。これらの2つの入力は概して、トークン(T)と関連付けられた暗号通貨量と、トランザクションフィー(例えば、マイナーのフィー)を支払うために使用される別の暗号通貨量と、を含む。
【0118】
例えば、第1ユーザ(A)5は、トランザクションID-500において、暗号通貨量を受け取っている。トランザクションID-500における、第1ユーザ(A)5への出力は、以下のようにまとめられ得る:
【表5】
【0119】
表5における行2は、トークン(T)と関連付けられた暗号通貨量を表し、10000000satoshiである。行3は、出力スクリプトを表し、上述した表4における行11と同等である。
【0120】
第1ユーザ(A)5はまた、支払トランザクションID-510について、トランザクションフィー(例えば、マイナーのフィー)を支払う必要があり得、これは、一部、以前のトランザクションID-400から受け取られた暗号通貨量から支払われている。この暗号通貨量は、以下のようにまとめられ得る:
【表6】
【0121】
表6の行2は、以前のトランザクションからの暗号通貨量を示し、1000である。表6の行3は、この以前のトランザクションからの出力スクリプトである。このトランザクションID-400からの暗号通貨は、トークン(又はトークンと関連付けられたユーザ)と関連付けられていないので、引き換えスクリプトハッシュは、単に、PubK-Aliceとして示されている第1ユーザ公開鍵(P1A)のハッシュである。すなわち、トランザクションID-400からの出力を使用するために、これは、単に、第1ユーザ秘密鍵(V1A)を用いた署名を必要とするだけである。
【0122】
第1トークン(T1)を移転するトランザクションID-510が、以下の表7を参照して、次いで説明される。
【表7】
【0123】
行1「ID-510」は、このトランザクションを識別するトランザクション識別子である。2番目の行は、使用されたビットコインプロトコルのバージョンを記述する「バージョン番号」を示す。行3は、このトランザクションについての入力の数を示し、2つの入力を示している。
【0124】
表7における行4~行8は、1番目の入力、すなわち、現在のトランザクションID-510に資金を提供している以前のトランザクションID-500に関連する。行4は、以前のトランザクションID-500のトランザクション識別子である。行5「IDX-00」は、以前のトランザクションID-500の出力のインデックス(この場合、以前のトランザクションID-500からの1番目の出力が使用されるべきであるというリファレンスである)である。行6は、スクリプト長のインジケーションである「Script length」である。行7は、以前のトランザクションID-500についてのアンロッキングスクリプトである「ScriptSig」である。示されたように、以前のトランザクションID-500は、PubK-Aliceにより表される第1ユーザ(A)公開鍵(P1A)及びPubK-Issuerにより表される第1発行者公開鍵(P1I)を用いてロックされた。したがって、以前のトランザクションは、Sig-Aliceとして表される、アリスの対応する秘密鍵(V1A)と、Sig-Issuerとして表される、発行者の対応する第1発行者秘密鍵(V1I)と、を用いてアンロックされ得る。行8は、入力と関連付けられたシーケンス番号である。
【0125】
第1ユーザ(A)はまた、移転トランザクションID-510について、トランザクションフィー(例えば、マイナーのフィー)を支払う必要があり、これは、一部、以前のトランザクションID-400から受け取られた暗号通貨量から支払われている。表7における行11~行15は、2番目の出力、すなわち、マイナーのフィーの支払に関連する。行11は、以前のトランザクションID-400のトランザクション識別子である。行12「IDX-01」は、以前のトランザクションID-400の出力のインデックスである。行13は、スクリプト長のインジケーションである「Script length」である。行14は、以前のトランザクションID-400についてのアンロッキングスクリプトである「ScriptSig」である。このトランザクションID-400からの暗号通貨は、トークン(又はトークンと関連付けられたユーザ)と関連付けられていないので、引き換えスクリプトハッシュは、単に、PubK-Aliceとして示されている第1ユーザ公開鍵(P1A)のハッシュである。すなわち、トランザクションID-400からの出力を使用するために、これは、単に、第1ユーザ秘密鍵(V1A)を用いた署名を必要とするだけである。行15は、入力と関連付けられたシーケンス番号である。
【0126】
表7の行17は、このトランザクションについての出力の数を示し、1である。行18~行21は、トークン(T)と関連付けられた暗号通貨量を反映する出力を表す。行18は、暗号通貨量の出力値であり、この場合、10000000satoshiである。これは、トークン(T)からの暗号通貨量に対応する。行19は、出力スクリプト長を示す。行20は、出力スクリプト、すなわち、第2ユーザ(B)への暗号通貨量と関連付けられたトークン(T)の移転をロックしているロッキングスクリプトである。これは、引き換えスクリプト(RS)のハッシュ(H)を含み、以下により表される:
OP_HASH160 <redeem script hash> OP_EQUAL
【0127】
「OP_HASH160」は、ハッシュ関数のタイプであり、ここで、入力は、SHA-256により、続いてRIPEMD-160により、2回ハッシュ化されている。OP_EQUALは、出力を検証するためのブール結果を提供する。引き換えスクリプトハッシュredeem script hashは、上述した形の引き換えスクリプト(RS)のハッシュであり、この例では以下である:
1 metadata1 metadata2 PubK-Bob 3 OP_CHECKMULTISIG
【0128】
この引き換えスクリプトは、トークン(T)からのメタデータと、PubK-Issuerとして示されている発行者公開鍵(P1I)と、を含む。metadata1及びmetadata2は、これが「支払」トランザクションであるというインジケーションを含め、上述したメタデータを含み得る。この引き換えスクリプトは、10000000satoshiを使用するために、3つの署名のうちの1つの署名を必要とする。実際、第2ユーザ秘密鍵(V1B)が、署名して後続のトランザクションのために暗号通貨を使用するために、使用され得る。第1ユーザ公開鍵(P1A)がこの引き換えスクリプト内に存在しないことは注目に値する。これは、トークン(T)が、したがって、関連付けられた暗号通貨量が、第2ユーザ(B)7に移転されており、したがって、第1ユーザ(A)5により使用されたとみなされ得る。したがって、第2ユーザ(B)7は、許可(第1ユーザ(A)5の署名を通じた暗示的な許可等)を必要とすることなく、トークン(T)を自由に使用するべきである。
【0129】
この例において、現在のトランザクションID-510に資金を提供している以前のトランザクションID-500(すなわち、未使用トランザクション出力(UTXO))は、発行者(I)により署名されている。したがって、いくつかの実施形態において、第2ユーザ(B)7は、トークン(T)が、発行者(I)等の署名権者により例えば署名されている等、トークン(T)の真正性が証明されている場合、トランザクションID-510と関連付けられた暗号通貨量と関連付けられた第1トークン(T)は有効であると判定することができる。例えば、トークン(T)は、トークン(T)と関連付けられた引き換えスクリプト(RS)であって、トランザクションID-510への入力として参照される引き換えスクリプト(RS)が、署名権者又は信頼できる署名者により署名されている場合、署名権者により正当性が認められているとみなされ得る。
【0130】
しかしながら、第1ユーザ(A)5のサービス提供者(SPA)が、発行者(I)と同じウェブオブトラスト内に存在せず、トランザクションID-510と関連付けられたトークン(T)が、署名権者により署名されていない場合を検討してみる。そのような状況において、表7の行7に示されている、以前のトランザクションID-500の引き換えスクリプトは、この例では、代わりに以下の形をとる:
1 metadata1 metadata2 PubK-Alice 3 OP_CHECKMULTISIG
【0131】
この実施形態において、トークン(T)と関連付けられた引き換えスクリプト(RS)であって、トランザクションID-510への入力として参照される引き換えスクリプト(RS)は、署名権者により署名されておらず、したがって、第2ユーザ(B)7は、トランザクションID-510に資金を提供している入力単独として参照される引き換えスクリプト(RS)を考慮することによっては、トークン(T)の正当性について確信することができない。
【0132】
権利登録ストア
図1を参照して説明されたように、いくつかの実施形態において、システム1は、1つ以上の処理デバイス21上で実行される制御/管理アプリケーションにより制御され得る又は影響が及ぼされ得る権利登録ストア23を含む。例えば、実行可能なコードを含む管理アプリケーションは、1つ以上の処理デバイス21のメモリ1520(図)に格納され得、1つ以上の処理デバイス21の1つ以上のプロセッサ1510(
図8)は、権利登録ストア23を管理する方法を実行する管理アプリケーションを実行するよう構成され得る。権利登録ストア23は、トークンの移転に関連するトランザクションに関する情報を記録するよう構成され得る。
【0133】
いくつかの実施形態において、権利登録ストア23は、トークン(T)の現在の所有者を明示的に識別することなく、トークン(T)の所有権の変更のレコード、すなわち、所有権が変更されたという事実、を保持する。したがって、いくつかの実施形態において、権利登録ストア23は、有効性検証又は検証された未使用トランザクション出力(UTXOs)のリスト又はサブリストを含み得る。例えば、トランザクションが、権利登録ストア23に記録されている場合、権利登録ストア23は、引き換えスクリプトハッシュのメタデータ内に埋め込まれた、現在の所有者のインジケーション、すなわち、現在の所有者の公開鍵を含む、トランザクション識別子及びトランザクションの出力スクリプトのうちの少なくとも1つを含み得る。以前の所有者は、トランザクションの入力セクションのアンロッキングスクリプトにおいて識別される公開鍵から判別され得る。
【0134】
しかしながら、他の実施形態において、権利登録ストア23は、追加的又は代替的に、トークンの現在の所有者及び/又は以前の所有者の識別子を含むこともある。例えば、権利登録ストア23は、直接的クライアント及び/又は間接的クライアントの「Know Your Customer(顧客確認)」(KYC)レジスタを含み得る。いくつかの実施形態において、KYCレジスタの維持は、所有権の条件等の、トークンと関連付けられた契約における条項であり得る。そのような実施形態において、トークンの有効性の条件は、第2ユーザ(B)7等の被支払者が、パーティ(P)又は発行者(I)に直接的に登録することを必要とし得る。これは、例えば、専用ウェブページを介して等のオフブロックメカニズムを介してや、所有者であることを証明するための署名を要求する等の適切なチェックによって、達成され得る。いくつかの実施形態において、パーティ(P)又は発行者(I)3は、この条件を、データストア11等の内部データベースや、上述した契約の条件を格納するよう構成されているDHT等のDHTに、格納することができる。いくつかの場合において、発行者(I)3は、契約に付されている何らかの収益を支払う等、所定の債務を履行するために、現在の所有者を知る必要があり得る。例えば、契約が、競走馬の共同所有権に関する場合、発行者は、賞金の取り分が支払われるべき当事者を特定する必要があり得る。
【0135】
1つ以上の処理デバイス21は、第1の処理デバイス13、第2の処理デバイス15、及び/若しくは第3の処理デバイス17、並びに/又は1つ以上の処理デバイス19から、通信ネットワーク8を介して、データを受信し、該データを権利登録ストア23に格納するよう構成され得る。同様に、1つ以上の処理デバイス21は、例えば、データを求める要求に応じて、且つ/又は、予め定められた間隔で若しくは定期的な間隔で等、自動的に、権利登録ストア23からデータを取得し、取得したデータを、通信ネットワーク8を介して、第1の処理デバイス13、第2の処理デバイス15、及び/若しくは第3の処理デバイス17、並びに/又は1つ以上の処理デバイス19に提供するよう構成され得る。
【0136】
いくつかの実施形態において、発行者(I)3により発行されたトークン(T)の移転を含むトランザクションを権利登録ストア23に記録することは、そのトークン(T)の発行者(I)3により働きかけられる。例えば、第1ユーザ(A)5又は第2ユーザ(B)7等のユーザのためのトークン(T)を作成することに加えて、トークンを作成する方法300に関連して314において上述した第1データ出力(O1)をブロックチェーン9に送信すると、発行者(I)3は、1つ以上のプロセッサ13を使用して、権利登録ストア23の管理アプリケーションに対する、トークンの移転を記録する要求を、通信ネットワーク8を介して、権利登録ストア23と関連付けられた1つ以上のプロセッサ21に送信する。トークンの発行者はまた、以下でより詳細に説明されるように、トークンと関連付けられたトランザクションに関して、権利登録ストア23を維持又は更新する役割を担い得る。
【0137】
いくつかの実施形態において、権利登録ストア23は、分散ハッシュテーブル(DHT)を含み得る。いくつかの実施形態において、分散ハッシュテーブル(DHT)は、トークンと関連付けられた契約を格納するよう構成され得る。いくつかの実施形態において、トークンと関連付けられた契約を格納するよう構成されている分散ハッシュテーブル(DHT)は、権利登録データベース23の分散ハッシュテーブル(DHT)における関連エントリの位置を指し示す1つ以上のリンク又はポインタを含むフィールドを含み得る。
【0138】
権利登録ストアの維持管理
概して、1つ以上のパーティ(P)は、トークンの移転の正確なレコードを、したがって、トークンの所有権の変更を、維持又は保持するために、権利登録ストア23を更新する役割を担う。いくつかの実施形態において、トークン(T)の各発行者(I)3は、権利登録ストア23におけるこのトークンの所有権の変更の正確なレコード、すなわち、発生したトークンの移転を含むトランザクションのレコード、を維持管理する役割を担う。
【0139】
発行者(I)により発行されたトークンの移転を記録するための権利登録ストア23を維持管理する方法500であって、各トークンは、暗号通貨量と関連付けられる、方法500が、
図5を参照して、次いで説明される。いくつかの実施形態において、実行可能なコードを含む権利登録維持管理アプリケーションは、1つ以上の処理デバイス13のメモリ1520(
図8)に格納され得、1つ以上の処理デバイス13の1つ以上のプロセッサ1510は、トークンの移転を記録するための権利登録ストアを維持管理する方法500を実行する権利登録維持管理アプリケーションを実行するよう構成され得る。他の実施形態において、方法500は、通信ネットワーク8に接続された許可されたパーティ(P)と関連付けられた処理デバイス(図示せず)により実行され得る。
【0140】
方法500を実行する際、維持管理アプリケーションは、502において、発行者(I)により発行されたトークンの移転を含むトランザクションについて、ブロックチェーン9をモニタリングするよう構成されている。
【0141】
例えばビットコインブロックチェーンといったブロックチェーン9は、トランザクションを記録し、以前のトランザクションの識別子(以前トランザクション識別子)、1つ以上の入力スクリプト、及び1つ以上の出力スクリプト等、トランザクション(TXs)の詳細を含み得る。上述したように、トランザクションと関連付けられたトークンは、トランザクションの入力スクリプトのメタデータから判別され得る。
【0142】
発行者(I)により発行されたトークン(T)の移転を含むトランザクションを判別したことに応じて、維持管理アプリケーションは、トークン(T)の移転を権利登録ストア23に記録するよう構成されている。例えば、いくつかの実施形態において、
図5に示されているように、維持管理アプリケーションは、トークン(T)の移転を権利登録ストア23に記録する要求を、権利登録ストア23を管理する役割を担う第2パーティ(P2)と関連付けられた1つ以上の処理デバイス21によりホストされている管理アプリケーションに送信するよう構成されている。
【0143】
いくつかの実施形態において、上記の要求は、トークン(T)の移転を含むトランザクションのインジケータを含むデータを含み得る。例えば、このデータは、トランザクションのトランザクション識別子及び/又は第1データ出力(O1)を含み得る。いくつかの実施形態において、このデータは、例えば、発行者の署名(V1I)を用いて署名されているという点で、発行者(I)3によりその真正性が証明されている。このデータは、ブロックチェーン9に記録されているトークンのトランザクションの詳細から取得され得る。
【0144】
いくつかの実施形態において、508において、第2パーティ(P2)により、トークンの発行者(I)3等の第1パーティ(P1)から、トークンの移転を記録する要求を受信したことに応じて、第2パーティ(P2)と関連付けられた1つ以上の処理デバイス(図示せず)のメモリ(図示せず)に格納されている管理アプリケーションが、510において、データを権利登録ストア23に入力するために、1つ以上の処理デバイス(図示せず)の1つ以上のプロセッサ(図示せず)により実行される。いくつかの実施形態において、第2パーティ(P2)により受信された各要求又は有効な要求について、新たなエントリが、権利登録ストア23において作成される。いくつかの実施形態において、要求と関連付けられたトークン(T)についてのエントリが既に存在している場合、管理アプリケーションは、トークン(T)についての別のエントリを作成するのではなく、既に存在しているエントリを更新するよう構成され得る。
【0145】
権利登録ストアを使用した、トランザクションと関連付けられたトークン(T)の検証
権利登録ストア23を使用して、暗号通貨量と関連付けられたトークン(T)の有効性を判定する方法600が、
図6を参照して、次いで説明される。いくつかの実施形態において、実行可能なコードを含む検証アプリケーションは、処理デバイス17のメモリ1520(
図8)に格納され得、処理デバイス17の1つ以上のプロセッサ1510(
図8)は、第1暗号通貨量(B1)と関連付けられた第1トークン(T1)の有効性を判定する方法600を実行する検証アプリケーションを実行するよう構成されている。方法600は、第2ユーザ(B)7と関連付けられた処理デバイス17により実行され得る。
【0146】
第1ユーザ(A)は、602において、第1トークン(T1)の移転を含む第1トランザクションを第2ユーザ(B)に送信することができる。方法600を実行する際、検証アプリケーションは、604において、通信ネットワーク8を介して、第1ユーザ(A)から第2ユーザ(B)へのトークン(T)の移転を含む第1トランザクションを受信するよう構成されている。第1トランザクションは、上記の表7に関連して説明されたもの等の、暗号通貨の一部の移転についてのブロックチェーントランザクションを含み得る。例えば、トランザクションは、トランザクションID、1つ以上の入力、及び1つ以上の出力を含み得る。1つ以上の入力は、1つ以上の以前のトランザクションに関連し得、各々は、以前のトランザクションのID(以前トランザクションID)、及び、第1トークン(T1)と関連付けられた引き換えスクリプトを含むアンロッキングスクリプトを含み得る。1つ以上の出力のうちの少なくとも1つの出力は、現在のトランザクション又は第1トランザクションにより影響が及ぼされる移転又は支払に関連し得、ロッキングスクリプトを含み得る。
【0147】
いくつかの実施形態において、検証アプリケーションは、606において、トークン(T)の真正性が証明されているかどうかを判定するよう構成されている。例えば、これは、トークン(T)と関連付けられた引き換えスクリプトであって、第1トランザクションへの入力として参照される引き換えスクリプトが、トークンの発行者又は信頼できるサービス提供者等の署名権者により署名されているかどうかを判定することを含み得る。
【0148】
検証アプリケーションは、608において、トークン(T)の移転を含む第2トランザクション又は以前のトランザクションのインジケータを判別する。第2トランザクションは、第1トランザクションよりも時間的に前である以前のトランザクションであり得る。いくつかの実施形態において、インジケータは、以前のトランザクションのトランザクション識別子であり得る。例えば、以前のトランザクションは、現在のトランザクションへの入力として識別されたトランザクションであり得、識別子は、現在のトランザクションの複数の入力パラメータのうちの1つの入力パラメータとして識別され得る。
【0149】
検証アプリケーションは、610において、インジケータを使用して、権利登録データベース23に問い合わせて、第2トランザクションが権利登録ストア23に記録されているかどうかを判定するよう構成されている。例えば、第2トランザクションが権利登録ストア23に記録されている場合、権利登録ストア23は、トランザクション識別子等の、第2トランザクションのインジケータを含み得る。したがって、いくつかの実施形態において、トークンの有効性の検証は、以前の又は最後の所有者が誰であるかを知らなくても判定され得る。したがって、本発明の実施形態は、従来技術によっては対処されない技術的問題を解決する新規で有利な検証技術を提供する。
【0150】
しかしながら、他の実施形態において、権利登録ストア23は、追加的又は代替的に、トークンの現在の所有者及び/又は以前の所有者の識別子を含むこともある。いくつかの実施形態において、検証アプリケーションは、トークン(T)の真正性が証明されていないと検証アプリケーションが606において判定した場合に限り、権利登録ストア23に問い合わせるよう構成され得る。
【0151】
第2トランザクションが権利登録ストア23に記録又は登録されていると判定したことに応じて、検証アプリケーションは、612において、トークン(T)は有効であると判定するよう構成されている。
【0152】
いくつかの実施形態において、第2トランザクションが権利登録ストアに登録されていないと判定したことに応じて、検証アプリケーションは、614において、トークン(T)は有効でないと判定するよう構成されている。しかしながら、他の実施形態において、第2トランザクションが権利登録ストアに登録されていないと判定したことに応じて、検証アプリケーションは、614において、以下で説明される方法700のステップ710~714を実行するよう構成されている。
【0153】
ブロックチェーンを使用した、トランザクションと関連付けられたトークン(T)の検証
ブロックチェーン9を使用して、暗号通貨量と関連付けられたトークン(T)の有効性を判定する方法700が、
図7を参照して、次いで説明される。いくつかの実施形態において、実行可能なコードを含む検証アプリケーションは、処理デバイス17のメモリ1520(
図8)に格納され得、処理デバイス17の1つ以上のプロセッサ1510(
図8)は、暗号通貨量と関連付けられたトークン(T)の有効性を判定する方法700を実行する検証アプリケーションを実行するよう構成されている。方法700は、第2ユーザ(B)7と関連付けられた処理デバイス17により実行され得る。
【0154】
第1ユーザ(A)は、702において、トークン(T)の移転を含む第1トランザクションを第2ユーザ(B)に送信することができる。方法700を実行する際、検証アプリケーションは、
図6に関連して上述した方法600のステップ604及び608に対応するステップ704及び708を実行するよう構成されている。いくつかの実施形態において、検証アプリケーションは、
図6に関連して上述した方法600のステップ606に対応するステップ706を実行するよう構成されている。
【0155】
検証アプリケーションは、710において、以前のトランザクションのインジケータを使用して、ブロックチェーン9に問い合わせて、トークン(T)と関連付けられた、真正性が証明されているトランザクションを識別することができるかどうかを判定するよう構成されている。真正性が証明されているトランザクションは、トークン(T)と関連付けられたトランザクションを含み、ここで、トークン(T)の正当性が認められている。例えば、トークンは、トークン(T)と関連付けられた引き換えスクリプトが、トークン(T)の発行者又は信頼できるサービス提供者等の署名権者により署名されている場合、正当性が認められている又は正当であるとみなされ得る。署名は、デジタル暗号署名を含み得る。
【0156】
いくつかの実施形態において、検証アプリケーションは、第1トランザクションのトークン(T)の真正性が証明されていないと検証アプリケーションが706において判定した場合に限り、ブロックチェーン9に問い合わせるよう構成され得る。例えば、これは、トークン(T)と関連付けられた引き換えスクリプトであって、トランザクションへの入力として参照される引き換えスクリプトが、トークン(T)の発行者又は信頼できるサービス提供者等の署名権者により署名されているかどうかを判定することを含み得る。
【0157】
いくつかの実施形態において、ブロックチェーン9に問い合わせることは、以前のトランザクションのインジケータを、ブロックチェーン9に記録されているトランザクションの対応するインジケータと比較して、以前のトランザクションのインジケータと同じインジケータを有する以前のトランザクションを識別することを含む。例えば、以前のトランザクションのインジケータは、第1トランザクションにおいて示される以前トランザクションIDを含み得る。
【0158】
検証アプリケーションは、ブロックチェーン9におけるエントリについて繰り返して(すなわち反復して)、トークンと関連付けられた、正当性が認められているトランザクションを特定するよう構成されている。したがって、例えば、トークン(T)と関連付けられているとして、ブロックチェーン9において識別された最も直近のトランザクションが、正当性が認められているトランザクションではない場合、検証アプリケーションは、最も直近のトランザクションの直前に先行する、トークンと関連付けられたトランザクションを識別又は特定し、このトランザクションが、正当性が認められているトランザクションであるかどうかを判定するよう構成されている。最も直近のトランザクションの直前に先行する、トークンと関連付けられたトランザクションが、正当性が認められているトランザクションではない場合、検証アプリケーションは、トークンと関連付けられたさらに前のトランザクションを識別又は特定し、このトランザクションが、正当性が認められているトランザクションであるかどうかを判定するよう構成されている。
【0159】
いくつかの実施形態において、最も直近のトランザクション又はより前のトランザクションが、正当性が認められているトランザクションであると判定することが、トークンと関連付けられた引き換えスクリプトであって、トランザクションへの入力として参照される引き換えスクリプトが、トークン(T)の発行者又は信頼できるサービス提供者等の署名権者により署名されているかどうかを判定すること、を含むものとして、検証アプリケーションは、最も直近のトランザクション又はより前のトランザクションが、正当性が認められているトランザクションであると判定するよう構成されている。
【0160】
いくつかの実施形態において、ブロックチェーン9に記録されているトランザクションが、正当性が認められているトランザクションではないと判定したことに応じて、検証アプリケーションは、トランザクションのエントリから以前のトランザクションのインジケータを判別し、以前のトランザクションのインジケータを使用して、ブロックチェーン9における以前のトランザクションについてのエントリを識別するよう構成されている。インジケータは、トランザクションと関連付けられた以前トランザクションIDを含み得る。例えば、いくつかの実施形態において、検証アプリケーションは、最も直近のトランザクション又はより前のトランザクションの入力スクリプトから以前のトランザクションの識別子を判別することにより、最も直近のトランザクションの直前に先行するトランザクション又はさらに前のトランザクションを識別又は特定するよう構成されている。このプロセスは、以前のトランザクションを識別できなくなるまで反復的に実行される。
【0161】
したがって、本発明は、関連するブロックチェーントランザクションの論理的階層の動的な構築を含む有利な検証技術を提供する。この階層は、複数のソースを使用して、最初のトランザクションから始まるように構築される。なぜならば、トランザクションは、ブロックチェーン上の異なるブロック内に記録されているからである。この点において、本発明は、複数のソースから関連するデータを識別して関連付け、検証プロセスにおいて、該データを使用する。
【0162】
検証アプリケーションが、正当性が認められているトランザクションを識別すると、方法700はステップ712に移る。一方、検証アプリケーションが、正当性が認められているトランザクションを識別しない場合、方法700はステップ714に移る。
【0163】
ブロックチェーン9において、真正性が証明されているトランザクションを識別したことに応じて、検証アプリケーションは、712において、トークン(T)は有効であると判定するよう構成されている。例えば、以前のトランザクションの引き換えスクリプトが、署名権者により署名されていると検証アプリケーションが判定した場合、検証アプリケーションは、以前のトランザクションを正当性が認められているトランザクションとして識別する。
【0164】
いくつかの実施形態において、ブロックチェーン9において、真正性が証明されているトランザクションを識別しないことに応じて、検証アプリケーションは、714において、トークン(T)は有効でないと判定するよう構成されている。
【0165】
処理デバイス
図1に関連して上述したように、発行者(I)3、第1ユーザ(A)5、及び第2ユーザ(B)7は、第1処理デバイス13、第2処理デバイス15、及び第3処理デバイス17と関連付けられ得る。ブロックチェーン9も、1つ以上の処理デバイス19と関連付けられ得る。権利登録データベース23も、1つ以上の処理デバイス21と関連付けられ得る。このような処理デバイスは、コンピュータ、タブレットコンピュータ、モバイル通信デバイス、コンピュータサーバ等といった電子デバイスの一部であり得る。処理デバイスに加えて、電子デバイスは、データストア11及びユーザインタフェース(図示せず)を含み得る。
【0166】
図8は、処理デバイス13、15、17、19、21の例を示している。処理デバイス13、15、17、19、21は、プロセッサ1510、メモリ1520、及びインタフェースデバイス1540を含み、これらは、バス1530を介して、互いと通信する。メモリ1520は、方法300、500、600、及び700を含む、本開示に記載の方法を実装するための命令及びデータを格納し、プロセッサ1510は、メモリ1520からの命令を実行して、これらの方法を実行する。インタフェースデバイス1540は、通信ネットワーク8との通信を容易にし、いくつかの例において、データストア11等のペリフェラル及びユーザインタフェースとの通信を容易にする通信モジュール(図示せず)を含み得る。処理デバイスは、独立したネットワーク要素を含み得るが、処理デバイス13、15、17、19、21は、別のネットワーク要素の一部であってもよいことに留意されたい。さらに、処理デバイス13、15、17、19、21により実行されるいくつかの機能は、複数のネットワーク要素の間で分散されてもよい。例えば、発行者3は、発行者(I)3と関連付けられたセキュアなローカルエリアネットワークにおいて、方法300、500、600、及び/又は700を実行するための複数の処理デバイス23を有してもよい。
【0167】
ユーザ、発行者、商業者、提供者、又は他のエンティティが、(署名動作、発行動作、判定動作、決定動作、算出動作、送信動作、受信動作、作成動作等を含む)特定の動作を実行すると本開示が記載している場合、この表現は、提示の明瞭さのために使用されている。これらの動作は、これらのエンティティにより操作されるコンピューティングデバイスにより実行されることを理解されたい。
【0168】
署名することは、暗号関数を実行することを含み得る。暗号関数は、平文についての入力と、秘密鍵等の鍵についての入力と、を有する。プロセッサは、暗号関数を実行して、署名として使用され得る数字や文字列を算出することができる。次いで、この署名が、署名付きテキストを提供するために、平文とともに提供される。メッセージテキスト又は鍵が1ビットでも変化した場合、署名は完全に変わる。署名を算出することは、わずかな計算能力しか必要としないが、所与の署名を有するメッセージを再作成することは、現実的には不可能である。このように、秘密鍵が利用可能である場合、平文を変更して、有効な署名を付随させるだけでよい。さらに、他のエンティティは、公に利用可能な公開鍵を用いて、署名を容易に検証することができる。
【0169】
ほとんどの状況において、暗号化すること及び復号化することは、プロセッサが、暗号関数を実行して、暗号化されたメッセージ又は平文メッセージをそれぞれ表す出力文字列を算出することを含む。
【0170】
鍵、トークン、メタデータ、トランザクション、オファー、契約、署名、スクリプト、インビテーション、及び同様のものは、プログラムコードの型「string」若しくは「int」又は他の型の変数、又はテキストファイル等、データメモリに格納された番号、テキスト、又は文字列として表されるデータを指す。
【0171】
ピアツーピア台帳の例は、ビットコインブロックチェーンである。ビットコイン通貨でフィーを支払うこと又は資金を移転することは、ビットコインブロックチェーン上にトランザクションを作成することであって、フィー又は資金がトランザクションから出力される、作成することを含む。ビットコイントランザクションの例は、入力トランザクションハッシュ、トランザクション量、1つ以上の送信先、1人以上の被支払者の公開鍵、及び、支払者の秘密鍵及び入力メッセージとしての入力トランザクションを使用して署名を算出することにより作成された署名を含む。トランザクションは、入力トランザクションハッシュが、ビットコインブロックチェーンのコピーにおいて存在することをチェックし、公開鍵を使用して、署名が正しいことをチェックすることにより、検証され得る。同じ入力トランザクションハッシュが、他のどこかでまだ使用されていないことを保証するために、トランザクションは、コンピューティングノード(「マイナー」)のネットワークにブロードキャストされる。マイナーは、入力トランザクションハッシュがまだ接続されておらず、署名が有効である場合に限り、トランザクションを承諾し、トランザクションをブロックチェーンに記録する。入力トランザクションハッシュが、異なるトランザクションに既にリンクされている場合、マイナーは、トランザクションを拒否する。
【0172】
トークンのための暗号通貨を割り当てることは、トランザクションを作成することであって、割り当てられた暗号通貨及びトークンが、トランザクション内のメタデータフィールドにおいて表される、作成することを含む。
【0173】
2つのアイテムが関連付けられている場合、これは、これらのアイテムの間に論理的なつながりが存在することを意味する。データベースにおいて、例えば、2つのアイテムについての識別子が、2つのアイテムを互いと関連付けるために、同じレコードに格納され得る。トランザクションにおいて、2つのアイテムについての識別子が、2つのアイテムを互いと関連付けるために、トランザクション文字列に含められ得る。
【0174】
ビットコインプロトコルを使用して、スクリプトを引き換えること及び/又はトークンをアンロックすることは、秘密鍵を使用して、スクリプト及び/又はトランザクションの署名文字列を算出することを含む。スクリプトは、異なる秘密鍵又は他の条件から導出される2つ以上の署名を必要とし得る。次いで、このトランザクションの出力が、マイナーに提供される。
【0175】
別のエンティティを承認することは、秘密鍵を用いて、トランザクションの署名文字列を算出することと、別のエンティティが署名を使用してトランザクションを検証することを可能にするために、署名文字列を別のエンティティに提供することと、を含み得る。
【0176】
ユーザが、別のエンティティとの取引を有することは、別のエンティティが、電子メールアドレス、名前、及び必要に応じて公開鍵等、ユーザに関する情報を格納することを含み得る。例えば、別のエンティティは、SQL、OrientDB、MongoDB、又は他のDB等のデータベースを維持管理することができる。いくつかの例において、別のエンティティは、ユーザの秘密鍵のうちの1つ以上の秘密鍵も格納することができる。
【0177】
本開示の広範な一般的範囲から逸脱することなく、上述した実施形態に対して、多数の変形及び/又は変更が可能であることが、当業者により理解されよう。したがって、これらの実施形態は、全ての点で、限定ではなく例示であるとみなされるべきである。
【符号の説明】
【0178】
3 発行者
5 第1ユーザ
7 第2ユーザ
【外国語明細書】