(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-09-04
(45)【発行日】2024-09-12
(54)【発明の名称】ブロックチェーン上で行われる移転の実行を制御又は強制するためのコンピュータにより実現されるシステム及び方法
(51)【国際特許分類】
H04L 9/32 20060101AFI20240905BHJP
G06F 9/46 20060101ALI20240905BHJP
G06F 9/448 20180101ALI20240905BHJP
【FI】
H04L9/32 200Z
G06F9/46 430
G06F9/448
(21)【出願番号】P 2021533431
(86)(22)【出願日】2019-12-17
(86)【国際出願番号】 IB2019060897
(87)【国際公開番号】W WO2020128814
(87)【国際公開日】2020-06-25
【審査請求日】2022-11-18
(32)【優先日】2018-12-21
(33)【優先権主張国・地域又は機関】GB
(73)【特許権者】
【識別番号】318001991
【氏名又は名称】エヌチェーン ライセンシング アーゲー
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】ライト,クレイグ スティーヴン
【審査官】中里 裕正
(56)【参考文献】
【文献】国際公開第2017/178956(WO,A1)
【文献】国際公開第2018/020376(WO,A1)
【文献】アントノプロス,アンドレアス・M,ビットコインとブロックチェーン,第1版,NTT出版株式会社,2016年07月21日,pp.141-145
【文献】WRIGHT, C. and SERGUIEVA, A.,Sustainable Blockchain-Enabled Services: Smart Contracts,2017 IEEE International Conference on Big Data,2017年12月,pp.4255-4264
(58)【調査した分野】(Int.Cl.,DB名)
H04L 9/32
G06F 9/46
G06F 9/448
JSTPlus/JMEDPlus/JST7580(JDreamIII)
IEEE Xplore
(57)【特許請求の範囲】
【請求項1】
ブロックチェーンネットワーク上で行われる移転に関する少なくとも1つのルールの表現を生成するステップ
であり、
前記少なくとも1つのルールは、前記ブロックチェーンネットワーク上で後続の移転がどのように、又は誰に対してなされ得るかに関する、ステップと、
前記表現を含むredeemスクリプトと、前記redeemスクリプトのハッシュを含むスクリプトアドレスとを生成するステップと、
前記redeemスクリプトのハッシュを前記スクリプトアドレスと比較するステップと、
前記ハッシュが前記スクリプトアドレスに一致する場合、ブロックチェーントランザクションのアウトプットに関連づけられたlockingスクリプトにおいて前記スクリプトアドレスを使用するステップと、
を含む、コンピュータにより実現される方法。
【請求項2】
前記トランザクションの前記lockingスクリプトをロック解除するために前記スクリプトアドレスを使用するように構成されたunlockingスクリプトを含むさらなるブロックチェーントランザクションを生成及び/又は使用するステップ、
をさらに含む請求項1に記載の方法。
【請求項3】
前記トランザクション及び/又は前記さらなるトランザクションは、ビットコインプロトコルにおけるPay-to-Script-Hash(P2SH)トランザクションタイプ若しくはその変形、又は別のブロックチェーンプロトコルにおける機能的に類似/同等のトランザクションタイプである、請求項1又は2に記載の方法。
【請求項4】
前記表現は、ブロックチェーンスクリプト、又はブロックチェーンスクリプト言語で書かれたコードの一部、テキストファイル、スマートコントラクト、画像、前記少なくとも1つのルールにアクセスできるロケーションへの参照又は該ロケーションの識別子である、請求項1乃至3のうちいずれか1項に記載の方法。
【請求項5】
前記少なくとも1つのルールの前記表現は、受信者に不完全なブロックチェーントランザクションの一部として提供され、あるいはブロックチェーンスクリプトコードのスニペットとして提供される、請求項1乃至
4のうちいずれか1項に記載の方法。
【請求項6】
前記スクリプトアドレスは、ブロックチェーントランザクションの一部として提供される、請求項1乃至
5のうちいずれか1項に記載の方法。
【請求項7】
前記トランザクションを前記ブロックチェーンネットワークにサブミットするステップ、をさらに含む請求項1乃至
6のうちいずれか1項に記載の方法。
【請求項8】
前記少なくとも1つのルールは、前記ブロックチェーン上の資産をロック解除するために提供されなければならない暗号署名を規定する、請求項1乃至
7のうちいずれか1項に記載の方法。
【請求項9】
ブロックチェーンネットワーク上で行われる移転に関する少なくとも1つのルールの表現を受信者に提供するステップ
、であり、
前記少なくとも1つのルールは、前記ブロックチェーンネットワーク上で後続の移転がどのように、又は誰に対してなされ得るかに関する、ステップと、
前記表現を含むredeemスクリプトと前記redeemスクリプトのハッシュを含むスクリプトアドレスとを送信者から受信するステップと、
前記redeemスクリプトのハッシュを生成し、それを前記スクリプトアドレスと比較するステップと、
前記ハッシュが前記スクリプトアドレスに一致する場合、ブロックチェーントランザクションのアウトプットに関連づけられたlockingスクリプトにおいて前記スクリプトアドレスを使用するステップと、
を含む、コンピュータにより実現される方法。
【請求項10】
ブロックチェーンネットワーク上で行われる移転に関する少なくとも1つのルールの表現を送信者から受信するステップ
であり、
前記少なくとも1つのルールは、前記ブロックチェーンネットワーク上で後続の移転がどのように、又は誰に対してなされ得るかに関する、ステップと、
前記表現を含むredeemスクリプトと前記redeemスクリプトのハッシュを含むスクリプトアドレスとを前記送信者に送信するステップと、
前記スクリプトアドレスにロックされたブロックチェーントランザクションにおけるアウトプットをロック解除するように構成されたさらなるブロックチェーントランザクションにおいて前記redeemスクリプトを提供するステップと、
を含む、コンピュータにより実現される方法。
【請求項11】
コンピュータにより実現されるシステムであって、
プロセッサと、
前記プロセッサによる実行の結果として当該システムに請求項1乃至
10のうちいずれか1項に記載のコンピュータにより実現される方法の実施形態を実行させる実行可能命令を含むメモリと、
を含むシステム。
【請求項12】
コンピュータシステムのプロセッサにより実行される結果として前記コンピュータシステムに請求項1乃至
10のうちいずれか1項に記載の方法の実施形態を少なくとも実行させる実行可能命令を記憶した非一時的コンピュータ読取可能記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般に分散コンピューティングネットワークに関し、より詳細には分散台帳技術(ブロックチェーン)に関する。本発明は、ブロックチェーンネットワーク上の参加者間で行われる移転及び通信のセキュリティ、強制、及び制御に関する利点を提供する。本発明は、ネットワーク上での将来の移転をどのように実行できるかを強制するための解決策を提供し、したがって、当該分野において不可能であると従来考えられてきた問題を解決する。これは、マシン実行可能スマートコントラクトでの使用に適するが、これに限定されない。
【背景技術】
【0002】
本文献では、用語「ブロックチェーン」を用いて、全ての形式の電子的なコンピュータベースの分散台帳を含める。これらには、コンセンサスベースのブロックチェーン及びトランザクションチェーン技術、許可あり(permissioned)及び許可なし(un-permissioned)台帳、共有台帳、及びこれらの変形が含まれる。ブロックチェーン技術の最も広く知られている適用はビットコイン(Bitcoin)(登録商標)台帳であるが、他のブロックチェーン実装が提案され、開発されている。本明細書では簡便さ及び例示の目的でビットコインが参照され得るが、本発明はビットコインブロックチェーンでの使用に限定されず、代替的なブロックチェーンの実装及びプロトコルが本発明の範囲内に入ることに留意されたい。用語「ビットコイン」は、本明細書において、ビットコインプロトコルに由来するプロトコルの任意のバージョン又はバリエーションを指すために使用される。用語「ユーザ」は、本明細書において、人間又はプロセッサベースのリソースを指し得る。
【0003】
ブロックチェーンは、ピアツーピアの電子台帳であり、これは、トランザクションから次々に構成されるブロックから構成される、コンピュータベースの非中央集権的な分散システムとして実装される。各トランザクションは、ブロックチェーンシステムの参加者間のデジタル資産の制御の移転をエンコードするデータ構造であり、少なくとも1つのインプット及び少なくとも1つのアウトプットを含む。各ブロックは前のブロックのハッシュを含み、それにより、ブロックが一緒にチェーン化されて、ブロックチェーンの開始以降にそれに書き込まれた全てのトランザクションの永続的で改変不可能なレコードを作成する。トランザクションは、そのインプット及びアウトプットに埋め込まれたスクリプトとして知られる小さいプログラムを含み、これは、トランザクションのアウトプットに如何にして及び誰がアクセスできるかを指定する。ビットコインプラットフォームでは、これらのスクリプトはスタックベースのスクリプト言語を使用して書かれる。
【0004】
トランザクションがブロックチェーンに書き込まれるためには、それは「検証され」なければならない。ネットワークノード(マイナー)は、各トランザクションが有効であり、無効なトランザクションはネットワークから拒絶されることを確保するために、ワークを実行する。ノードにインストールされたソフトウェアクライアントは、未使用トランザクション(unspent transaction)(UTXO)に対してそのlocking及びunlockingスクリプトを実行することによりこの検証作業を行う。locking及びunlockingスクリプトの実行がTRUEに評価された場合、トランザクションは有効であり、トランザクションはブロックチェーンに書き込まれる。したがって、トランザクションがブロックチェーンに書き込まれるためには、それは、i)トランザクションを受け取った第1のノードにより検証されなければならず、トランザクションが検証された場合、ノードはそれをネットワーク内の他のノードに中継し、ii)マイナーにより構築された新しいブロックに追加されなければならず、iii)マイニングされなければならない、すなわち、過去のトランザクションの公開台帳に追加されなければならない。
【0005】
ブロックチェーン技術は、暗号通貨実装の使用に対して最も広く知られているが、デジタル起業家は、新しいシステムを実現するために、ビットコインが基礎とする暗号セキュリティシステムとブロックチェーンに記憶できるデータとの双方の使用を探求し始めている。ブロックチェーンが暗号通貨の領域に限定されない自動化されたタスク及び処理に使用できる場合、かなり有利であろう。このようなソリューションは、その適用においてより多目的であると同時に、ブロックチェーンの利点(例えば、イベントの永続的な改ざん防止のレコード、分散処理等)を利用することができる。1つのそのような研究や関心の領域は、例えば、「スマートコントラクト」の実現のためのブロックチェーンの使用である。
【0006】
より多目的なブロックチェーンプラットフォームを提供するために、参加者の間、アリスとボブの間の資産の最初の移転に続いてネットワーク上で「前方の(onward)」移転がどのように行われるかを制御し又はそれに影響を及ぼすことができるのは有利であろう。多くの異なるタイプのシナリオにおいて、及び多くの異なる理由で、当事者間の信頼の必要なくボブから1以上の他の者への資産の後続の移転を支配するルール(すなわち、条件又は基準)を制定することが望ましい。これまで、技術コミュニティ内では、将来のブロックチェーントランザクションに拘束力のある制約を課すことは不可能であると考えられてきた。
【発明の概要】
【0007】
出願人は、少なくともこの必要に対処する発明を考案した。本発明は、本明細書に添付の特許請求の範囲に定義される。
【0008】
本発明の一実施形態によれば、
ブロックチェーンネットワーク上で行われる移転に関する少なくとも1つのルール(r)の表現を生成するステップと、
表現(r)を含むredeemスクリプト(R)と、redeemスクリプト(R)のハッシュ(HR)を含むスクリプトアドレスとを生成するステップと、
redeemスクリプト(R)のハッシュ(H)をスクリプトアドレスと(に対して)を比較するステップと、
ハッシュ(H)がスクリプトアドレスに一致する場合、ブロックチェーントランザクション(TX0)のアウトプット(UTXO)に関連づけられたlockingスクリプトにおいてスクリプトアドレスを使用するステップと、
を含む、コンピュータにより実現される方法が提供され得る。
【0009】
追加的又は代替的に、
ブロックチェーンネットワーク上で行われる移転に関する少なくとも1つのルール(r)の表現を受信者に提供するステップと、
表現(r)を含むredeemスクリプト(R)とredeemスクリプト(R)のハッシュ(HR)を含むスクリプトアドレスとを送信者から受信するステップと、
redeemスクリプト(R)のハッシュ(H)を生成し、それをスクリプトアドレスと比較するステップと、
ハッシュ(H)がスクリプトアドレスに一致する場合、ブロックチェーントランザクション(TX0)のアウトプットに関連づけられたlockingスクリプトにおいてスクリプトアドレスを使用するステップと、
を含む、コンピュータにより実現される方法が提供されてもよい。
【0010】
追加的又は代替的に、
ブロックチェーンネットワーク上で行われる移転に関する少なくとも1つのルール(r)の表現を送信者から受信するステップと、
表現(r)を含むredeemスクリプト(R)とredeemスクリプト(R)のハッシュ(HR)を含むスクリプトアドレスとを送信者に送信するステップと、
スクリプトアドレスにロックされたブロックチェーントランザクション(TX0)におけるアウトプットをロック解除するように構成されたさらなるブロックチェーントランザクション(TX1)においてredeemスクリプト(R)を提供するステップと、
を含む、コンピュータにより実現される方法が提供されてもよい。
【0011】
ブロックチェーンネットワークは、ビットコインネットワーク又はその変形でもよく、あるいは別の(非ビットコイン)ブロックチェーンネットワークでもよい。上記方法は、redeemスクリプトのハッシュを生成するステップを含んでもよい。上記方法は、ブロックチェーントランザクション(TX0)を生成、更新、及び/又は完了するステップを含んでもよい。
【0012】
本開示の実施形態は、
図1に又は以下で提供される説明に含まれる任意のステップをさらに含んでもよい。
【0013】
1つ以上の実施形態が、
トランザクション(TX0)のlockingスクリプトをロック解除するためにスクリプトアドレスを使用するように構成されたunlockingスクリプトを含むさらなるブロックチェーントランザクション(TX1)を生成及び/又は使用するステップ、
をさらに含んでもよい。
【0014】
好ましくは、トランザクションTX0及び/又はさらなるトランザクションTX1は、暗号通貨がアウトプットのlockingスクリプト内のスクリプトハッシュに送信される/関連づけられる/該スクリプトハッシュによりロックされることを可能にし、また、暗号通貨を取得する(ロック解除する)ためにunlockingスクリプトにおいてスクリプトハッシュに一致するスクリプトと該スクリプトにtrueに評価させるデータとを提供するようユーザに要求するトランザクションタイプである。ブロックチェーンネットワークがビットコインネットワーク又はそのバリエーションである場合、これはPay-to-script-hash(P2SH)トランザクションでもよい。ブロックチェーンネットワークがビットコインネットワーク又はその変形でない場合、トランザクションは、別の(非ビットコイン)ブロックチェーンプロトコルに従う機能的に同等/類似のトランザクションタイプのものでもよい。
【0015】
好ましくは、表現(r)は、ブロックチェーンスクリプト、又はブロックチェーンスクリプト言語で書かれたコードの一部/スニペット、テキストファイル、スマートコントラクト、画像、及び/又は少なくとも1つのルールにアクセスできるロケーションへの参照又は該ロケーションの識別子である。
【0016】
好ましくは、少なくとも1つのルールは、ブロックチェーンネットワーク上で後続の移転がどのように、又は誰に対してなされ得るかに関する。
【0017】
好ましくは、少なくとも1つのルールの表現(r)は、受信者に不完全なブロックチェーントランザクションの一部として提供され、あるいはブロックチェーンスクリプトコードのスニペットとして提供される。
【0018】
好ましくは、スクリプトアドレスは、ブロックチェーントランザクションの一部として提供される。
【0019】
好ましくは、上記方法は、トランザクションをブロックチェーンネットワークにサブミットするステップをさらに含む。
【0020】
好ましくは、少なくとも1つのルールは、ブロックチェーン上の資産をロック解除するために提供されなければならない暗号署名を規定する。
【0021】
本開示は、コンピュータにより実現されるシステムをさらに提供し、当該システムは、
プロセッサと
プロセッサによる実行の結果として当該システムに本明細書に記載のコンピュータにより実現される方法のいずれかの実施形態を実行させる実行可能命令を含むメモリと、
を含む。
【0022】
本開示は、コンピュータシステムのプロセッサにより実行される結果としてコンピュータシステムに本明細書に記載の本発明の実施形態を少なくとも実行させる実行可能命令を記憶した非一時的コンピュータ読取可能記憶媒体をさらに提供する。
【図面の簡単な説明】
【0023】
本発明のこれら及び他の態様は、本明細書に記載の実施形態から明らかであり、該実施形態を参照して解明されるであろう。次に、本開示の一実施形態を、単に例として、添付の図面を参照して説明する。
【
図1】本開示の一実施形態を高レベルで示すフローチャートを示す。
【
図2】様々な実施形態を実装可能なコンピューティング環境を示す概略図である。
【発明を実施するための形態】
【0024】
本開示の実施形態は、ブロックチェーンネットワークを介した電子的な移転を制御する新規かつ有利なメカニズムを提供する。従来、ブロックチェーンネットワーク上の後続のトランザクションを介してなされる前方の(「下流の」)交換を制約し、強制し、影響を及ぼし、又は制御することは不可能であると考えられてきた。例えば、アリス(Alice)がブロックチェーントランザクションを介してボブ(Bob)に移転を行う場合、従来、ボブ(又は、移転のチェーンのよりさらに下方の他の受信者)が次いで行う移転をアリスが指示又は制御することはできないと考えられている。ボブがアリスから移転された資産をひとたび受け取ると、ボブは自分が選択するとき自由に行動することができる。これは、多くの状況で望ましくなく、なぜならば、ユーザが自身の通信を特定の方法でルーティングするように望むこと、又は自身の電子資産、データ、及び通信の移転をどのように、及び/又は誰が取り扱うかに対して制約を課すように望むことは珍しくないためである。
【0025】
本開示は、当事者が条件、制約、及びルールを前方の伝達の影響のために最初の移転に注入することができる暗号的に強制されるメカニズムを提供することにより、この問題に対処する。本開示は、安全な、不変の(immutable)、可視の、及び追跡可能な条件がブロックチェーンネットワーク上でいまだ実行される必要のある将来のアクションに関連づけられることを可能にする数学的に強制される制御手法を用いて実行される。
【0026】
一実施形態の詳細な例を提供する前に、単に技術的背景として、本開示によって利するように使用される既知の手法のうちいくつかの簡潔な要約を提供する。
【0027】
[Pay-To-Script-Hash(P2SH)]
‘公開鍵’のハッシュに対する支払いを可能にする、ビットコインプロトコル内の標準的なブロックチェーントランザクションと異なり、P2SHトランザクションは、送信者が‘スクリプト’のハッシュに対して支払うことができるようにする。従来のトランザクションでは、アウトプットは(locking)スクリプトを含み、これは、消費(spend)試行が行われたときTRUEに評価されなければならない。lockingスクリプトは、関連づけられたアウトプットをロック解除するために誰が署名しなければならないかを規定することになる。一方、P2SHトランザクションでは、アウトプットはスクリプト自体を含まず、lockingスクリプトのハッシュのみを含む。したがって、P2SHアドレスはハッシュ化スクリプトを含み、それが3で始まる(対して、公開鍵ハッシュアドレスは1で始まる)ため識別することができる。
【0028】
資金の受信者となる可能性のある者(would-be recipient)に、未使用アウトプット(unspent output)(UTXO)のlockingスクリプト内に規定された公開鍵に一致する署名を提供するよう要求する代わりに、P2SHトランザクションは、受信者に、lockingスクリプト内の同じハッシュに対してハッシュする(hashes to)‘スクリプト’(redeemスクリプトとして知られ、本明細書においてRと呼ぶ)を供給するように、及び、lockingスクリプト内に設定された条件を満たすために必要とされるデータであり、スクリプトにTRUEに評価させることになるデータをさらに供給するように要求する。これらのredeemスクリプトハッシュが一致し、lockingスクリプトのTRUE評価を可能にするように正しいデータが提供されている場合、アウトプットに関連づけられた資金はロック解除され、制御は受信者に移転される。異なる(非ビットコインベースの)ブロックチェーンプロトコルを使用して実装される本開示の実施形態によれば、トランザクションタイプは、「P2SH」以外の他の何かと呼ばれ得ることに留意されたい。しかしながら、トランザクションのロックされた資金の受信者となる可能性のある者がスクリプトを提供しなければならず、該スクリプトはハッシュされたとき、トランザクションアウトプットのlockingスクリプト内に提供されるハッシュに一致するという点で、機能性は本質的に同じである。ただし、参照を容易にするために、用語「P2SH」を使用して、この機能性/特性を有するそのようなトランザクションタイプを参照するものとする。
【0029】
[スマートコントラクト]
スマートコントラクトは、マシン読取可能な契約又は同意の条件の実行を自動化するように設計されたコンピュータプログラムである。自然言語で書かれる従来の契約と異なり、スマートコントラクトは、入力を処理して結果を生じることができ、次いでそれらの結果に依存してアクションを実行させることができる、ルールを含むマシン読取可能及び実行可能なプログラムである。
【0030】
[本開示の概要を提供する一例示的な実施形態]
アリスがブロックチェーン上で特定量の暗号通貨又はトークン化された資産若しくは他のリソースを所有していると仮定する。彼女は、自身の資産が移転及び/又はアクセスされるべきターム(terms)を指示する条件又はルールrのセットを作成する。ルールのセットは、ビットコイン関連の実装ではビットコインスクリプト言語、Scriptで、又は異なるブロックチェーンプロトコルが使用される場合は、可能性として何らかの他の言語において定式化される。
【0031】
アリスは、自身の資産をボブに移転したく、ボブがブロックチェーン上の資産をロック解除したとき彼もこれらのルールに従うことを確保したい。例えば、ルールrは、彼女の資産はイブ(Eve)の署名も提供されている場合のみロック解除できるということでもよい。ビットコインスクリプトにおいて、この条件は次のように表される。
r = OP_DUP OP_HASH160 <H(PE)> OP_EQUALVERIFY OP_CHECKSIGVERIFY (1)
ここで、PEは、イブの公開鍵である。このスクリプトは、インプット
rinput = <Sig PE><PE>
を提供される場合のみ、TRUEに評価されることになる。
【0032】
次に、以下のシナリオについて考える。
【表1】
アリスは、彼女自身からボブへの第1のトランザクションtx
1にルールrを課す。
アリスは、ボブからチャーリー(Charlie)への次のトランザクションも同じルールに従うことを課してもよい。すなわち、tx
1からのアウトプットUTXO
1の消費は、アウトプットUTXO
0の消費と同じルールrの影響下にある。これは、以下のように行われる。
1.アリスが、ルールrのセットをボブに送信する。ルールは、例えば(1)で示したように、ブロックチェーンスクリプトスニペットとして表現されることを思い出されたい。
2.ボブが、彼独自のルール(たとえば、彼独自の署名の要件)と一緒にルールrを含むredeemスクリプトRを作成する。
R
B = r + Checksig P
B
3.ボブが、redeemスクリプトR
Bに基づいてPay to Script Hash(P2SH)アドレスP
1を作成する。
4.ボブが、彼のP2SHアドレスP
1をredeemスクリプトR
Bと一緒にアリスに送信する。
5.アリスが、ボブのP2SHアドレスP
1がredeemスクリプトR
Bのハッシュに対応することをチェックする。
【0033】
アリスは今や、彼女がボブのP2SHアドレスにロックされたトランザクションtx1を作成するとき、それがルールrの影響下になることを確信することができる。ボブがさらなるトランザクションtx2を作成することにより資産をロック解除するためには、ルールrがボブのunlockingスクリプト内で満たされなければならず、そうでない場合、結果がFALSEになり、アウトプットはロック解除されないことになる。
【0034】
[本発明の使用におけるステップスルーの例]
読者の理解を容易にするために、次に、
図1を参照し、本発明が使用され得るときのその一例示的な実施形態のより詳細なステップスルーの例を提供する。
【0035】
ステップ101において、複数の当事者、例えばアリスとボブが、条件、ルール、又は基準のセット(以降、単に「ルール」rと呼ぶ)により支配されるアクションの方針を決定する。これは、ブロックチェーンに保持される暗号通貨又はトークンの移転、又は何らかの装置、商品、又はサービスの購入/レンタル/提供などの、任意のタイプのアクションとすることができる。同様に、条件は、アクションの実行に対する任意の制約とすることができ、例えば、アリスは、規定されたイベントを確認するとブロックチェーン上のトークン化されたエンティティをボブに移転することになる。
【0036】
アリス(又は、何らかの他者)は、ルールrの表現を生成する。表現は、テキストファイル、又は画像、又はサウンドファイル、スクリプトなどの任意の形式をとることができる。それは、本質的には、同意されたアクション及びそれらのアクションの実行を支配する条件/ルール/基準のレコードである。いくつかの実施形態において、それは、当該分野で知られた、上記で説明したような、スマートコントラクトでもよい。好適な一実施形態において、条件は、ビットコインスクリプト言語Script、又は何らかの他のブロックチェーン互換及び実行可能言語で表現される。したがって、rは、(ブロックチェーンスクリプト)コードのスニペット又は一部でもよい。
【0037】
ステップ102において、ボブが、アリスのスクリプトスニペットrを使用してredeemスクリプトRを生成する。したがって、redeemスクリプトRは、ルールrを含む。ボブは、彼独自のいくつかのさらなるルールをさらに含めてもよい。
【0038】
ステップ103において、ボブが、redeemスクリプトRを使用してハッシュH(R)を生成し、彼はこれを彼のP2SHアドレスとして使用することができる。
【0039】
ステップ104において、ボブが、彼のP2SHアドレス及びredeemスクリプトRをアリスに送信する。これは、任意の適切な方法で行うことができる。次いで、アリスは、redeemスクリプトRが彼女のルールrを含むことを確信することができる。
【0040】
ステップ105及び106において、アリスは、ボブにより供給されたP2SHがボブのredeemスクリプトのハッシュであることをチェックする。これは、迅速で計算的に簡素なプロセスである。それらが一致しない場合、アリスは、トランザクションを終了するか又はそれを問い合わせるかを選択することができる。しかしながら、それらが一致する場合、彼女は、彼女のルールが含まれており強制されることになると知って進むことができ、ゆえに、彼女はブロックチェーントランザクションTX0を生成し、これを彼女は検証のために、及びブロックへマイニングされるように、ステップ107においてネットワークに送出する。
【0041】
ステップ108において、ボブが、TX0においてアリスによりロックされた資産にアクセスするよう望むとき、彼は、資産を解放するために、TX0のlockingスクリプトに必要なredeemスクリプトRを提供することになるアウトプット(UTXO)を含む消費トランザクションtx1を生成する。それが発生するためには、スニペットrはTRUEに評価されなければならず、これは、アリスにより元々規定されたルールrが強制されていることを確保する。
【0042】
代替的な一実施形態において、上記プロセスは、不完全な部分的トランザクションを生成することにより実行されてもよい。これは、アリスが部分的に完全なP2SHトランザクションTX0のlockingスクリプトにスニペットrを挿入することにより行うことができる。lockingスクリプトは、TX0の未使用アウトプットUTXOに関連づけられ、UTXOをさらなる後続のトランザクションtx1によりどのようにロック解除できるかを決定する。TX0は、それがまだP2SHアドレスを含まないため、不完全である。これは、ボブにより供給されることになる。
【0043】
ステップ103によれば、部分的トランザクションTX0(スニペットrを含む)が、ボブに通信される。これは、様々な方法で達成することができる。ボブは、r内のルールが、ステップ101においてアリスとボブが同意したルールに一致することをチェックすることができる。
【0044】
ステップ103によれば、ボブは、ルールrを含むredeemスクリプトRを、次いでRのハッシュを作成して、彼のP2SHアドレスを生成する。ステップ104において、ボブのredeemスクリプトRと、さらにP2SHは、ボブが彼のP2SHアドレスをトランザクションTX0に挿入すること及びそれをアリスに送り返すことにより、アリスに通信される。Rは、任意の適切な方法を介して送信することができる。ボブの更新版のTX0から、アリスは、彼が供給したP2SHアドレスが、ルールrを含むredeemスクリプトRのハッシュに一致することをチェックすることができる。
【0045】
ステップ107において、アリスは、上記のようにTX0をブロックチェーンネットワークにサブミットする。それは、既知の手法に従って検証され、ブロックへマイニングされる。当然ながら、ボブは、TX0内のUTXOを消費するよう望み、ゆえに、ステップ108においてそれをロック解除しなければならない。UTXOをロック解除するために、彼は、UTXOのredeemスクリプトのために必要なハッシュを提供する必要があり、ゆえに彼は、TX1のunlockingスクリプトを含む消費トランザクションTX1を生成する。次いで、Tx1はブロックチェーンに出され、検証され、マイニングされ、それにより、ハッシュがTX0におけるredeemスクリプトに提示されることになり、アウトプットがロック解除されることになり、資産(例えば、暗号通貨、トークンの一部など)の移転が実施される。ボブは今や、資産を保有している。
【0046】
したがって、本発明は、本技術分野において解決不可能と前に考えられていた問題に対する解決策を提供し、数学的及び暗号技術の使用を介して、ブロックチェーンネットワークにおける当事者間の後続の移転の制御、強制、及び制約を可能にする。
【0047】
次に、
図2を参照し、本開示の少なくとも1つの実施形態を実施するために使用され得るコンピューティングデバイス2600の一例示的な簡略化されたブロック図が提供される。様々な実施形態において、コンピューティングデバイス2600は、上記で例示及び説明されたシステムのいずれかを実現するために使用されてもよい。例えば、コンピューティングデバイス2600は、データサーバ、ウェブサーバ、ポータブルコンピューティングデバイス、パーソナルコンピュータ、又は任意の電子コンピューティングデバイスとしての使用のために構成されてもよい。
図2に示すように、コンピューティングデバイス2600は、1つ以上のレベルのキャッシュメモリとメモリコントローラとを有する1つ以上のプロセッサ(集合的に2602とラベル付けされている)を含んでもよく、該メモリコントローラは、メインメモリ2608及び永続ストレージ2610を含むストレージサブシステム2606と通信するように構成することができる。メインメモリ2608は、図示のように、ダイナミックランダムアクセスメモリ(DRAM)2618及び読取専用メモリ(ROM)2620を含むことができる。ストレージサブシステム2606及びキャッシュメモリ2602は、本開示に記載されるトランザクション及びブロックに関連づけられた詳細などの情報の記憶のために使用されてもよい。プロセッサ2602は、本開示に記載される任意の実施形態のステップ又は機能性を提供するために利用され得る。
【0048】
プロセッサ2602は、1つ以上のユーザインターフェース入力デバイス2612、1つ以上のユーザインターフェース出力デバイス2614、及びネットワークインターフェースサブシステム2616と通信することもできる。
【0049】
バスサブシステム2604は、コンピューティングデバイス2600の様々なコンポーネント及びサブシステムが意図されたとおり互いに通信することを可能にするメカニズムを提供し得る。バスサブシステム2604は概略的に単一のバスとして示されているが、バスサブシステムの代替的な実施形態が複数のバスを利用してもよい。
【0050】
ネットワークインターフェースサブシステム2616は、他のコンピューティングデバイス及びネットワークへのインターフェースを提供し得る。ネットワークインターフェースサブシステム2616は、他のシステムからデータを受信し、他のシステムにコンピューティングデバイス2600からデータを送信するためのインターフェースとして機能し得る。例えば、ネットワークインターフェースサブシステム2616は、データ技術者がデバイスをネットワークに接続することを可能にしてもよく、それにより、データ技術者は、データセンタなどのリモートの場所にいる間、装置にデータを送信し、装置からデータを受信することができ得る。
【0051】
ユーザインターフェース入力デバイス2612は、キーボードなどの1つ以上のユーザ入力デバイス;一体型マウス、トラックボール、タッチパッド、又はグラフィックスタブレットなどのポインティングデバイス;スキャナ;バーコードスキャナ;ディスプレイに組み込まれたタッチスクリーン;音声認識システム、マイクロホンなどのオーディオ入力デバイス;及び他のタイプの入力デバイスを含んでもよい。一般に、用語「入力デバイス」の使用は、コンピューティングデバイス2600に情報を入力する全ての可能なタイプのデバイス及びメカニズムを含むことが意図される。
【0052】
1つ以上のユーザインターフェース出力デバイス2614は、表示サブシステム、プリンタ、又はオーディオ出力デバイスなどの非視覚的ディスプレイ等を含んでもよい。表示サブシステムは、陰極線管(CRT)、液晶ディスプレイ(LCD)、発光ダイオード(LED)ディスプレイなどのフラットパネルデバイス、又は投影若しくは他の表示装置でもよい。一般に、用語「出力デバイス」の使用は、コンピューティングデバイス2600から情報を出力する全ての可能なタイプのデバイス及びメカニズムを含むことが意図される。1つ以上のユーザインターフェース出力デバイス2614が使用されて、例えば、ユーザインターフェースを提示し、説明された処理及びその変形を実行するアプリケーションとのユーザ対話を、そのような対話が適切であり得るときに容易にしてもよい。
【0053】
ストレージサブシステム2606は、本開示の少なくとも1つの実施形態の機能性を提供し得る基本プログラミング及びデータ構造を記憶するコンピュータ読取可能記憶媒体を提供し得る。アプリケーション(プログラム、コードモジュール、命令)は、1つ以上のプロセッサにより実行されたとき本開示の1つ以上の実施形態の機能性を提供し得、ストレージサブシステム2606に記憶され得る。これらのアプリケーションモジュール又は命令は、1つ以上のプロセッサ2602により実行されてもよい。ストレージサブシステム2606は、本開示に従って使用されるデータを記憶するリポジトリをさらに提供してもよい。例えば、メインメモリ2608及びキャッシュメモリ2602は、プログラム及びデータのための揮発性ストレージを提供することができる。永続ストレージ2610は、プログラム及びデータのための永続(不揮発性)ストレージを提供することができ、フラッシュメモリ、1つ以上のソリッドステートドライブ、1つ以上の磁気ハードディスクドライブ、関連リムーバブルメディアを備えた1つ以上のフロッピーディスクドライブ、関連リムーバブルメディアを備えた1つ以上の光学ドライブ(例えば、CD-ROM又はDVD又はBlue-Ray)ドライブ、及び他の同様の記憶媒体を含んでもよい。このようなプログラム及びデータは、本開示に記載される1つ以上の実施形態のステップを実行するプログラムと、本開示に記載されるトランザクション及びブロックに関連づけられたデータを含むことができる。
【0054】
コンピューティングデバイス2600は、ポータブルコンピュータデバイス、タブレットコンピュータ、ワークステーション、又は以下に記載される任意の他の装置を含む様々なタイプのものでもよい。さらに、コンピューティングデバイス2600は、1つ以上のポート(例えば、USB、ヘッドホンジャック、ライトニングコネクタなど)を通じてコンピューティングデバイス2600に接続され得る別のデバイスを含んでもよい。コンピューティングデバイス2600に接続され得るデバイスは、光ファイバコネクタを受け入れるように構成された複数のポートを含んでもよい。したがって、このデバイスは、光信号を、処理のためにデバイスをコンピューティングデバイス2600に接続するポートを通じてコンピューティングデバイス2600に送信され得る電気信号に変換するように構成されてもよい。コンピュータ及びネットワークの絶えず変化する性質に起因して、
図2に示すコンピューティングデバイス2600の説明は、デバイスの好適な実施形態を例示する目的のための単に特定の例として意図される。
図2に示すシステムより多くの又は少ないコンポーネントを有する他の多くの構成が可能である。
【0055】
上述の実施形態は発明を限定するのでなく例示しており、当業者は別記の特許請求の範囲により定義される発明の範囲から逸脱することなく多くの代替的な実施形態を設計可能であることに留意されたい。特許請求の範囲においては、括弧内に付されたいかなる参照符号も、特許請求の範囲を限定するものと解釈されてはならない。語「含んでいる」及び「含む」などは、任意の請求項又は明細書全体に列挙されたもの以外の要素又はステップの存在を除外しない。本明細書において、「含む」は、「含める、又は、から構成される」ことを意味し、「含んでいる」は、「含めている、又は、から構成されている」ことを意味する。要素の単数の参照は、そのような要素の複数の参照を除外するものではなく、その逆もまた同様である。発明は、いくつかの区別可能な要素を含むハードウェアを用いて、及び適切にプログラムされたコンピュータを用いて実現されてもよい。いくつかの手段を列挙するデバイスの請求項においては、これらの手段のうちいくつかは、1つの同じアイテムのハードウェアにより具現化されてもよい。特定の手段が相互に異なる従属請求項に記載されているという単なる事実は、これらの手段の組み合わせが利するように使用できないことを示すものではない。