(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024073588
(43)【公開日】2024-05-29
(54)【発明の名称】強化されたビットコインウォレットのためのコンピュータ実装システム及び方法
(51)【国際特許分類】
H04L 9/32 20060101AFI20240522BHJP
G06Q 20/38 20120101ALI20240522BHJP
【FI】
H04L9/32 200Z
G06Q20/38 310
【審査請求】有
【請求項の数】11
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2024041895
(22)【出願日】2024-03-18
(62)【分割の表示】P 2020527925の分割
【原出願日】2018-11-26
(31)【優先権主張番号】1719947.2
(32)【優先日】2017-11-30
(33)【優先権主張国・地域又は機関】GB
(31)【優先権主張番号】PCT/IB2017/057540
(32)【優先日】2017-11-30
(33)【優先権主張国・地域又は機関】IB
(71)【出願人】
【識別番号】318001991
【氏名又は名称】エヌチェーン ライセンシング アーゲー
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【弁理士】
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】ライト,クレイグ スティーヴン
【テーマコード(参考)】
5L020
【Fターム(参考)】
5L020AA72
(57)【要約】 (修正有)
【課題】スマート暗号通貨ウォレットを実現する。
【解決手段】既知の暗号通貨ウォレットの機能を超える拡張された機能を実行するデジタルウォレットを提供するスマートコントラクト強化ウォレットであって、デジタルウォレットと、該デジタルウォレット内に組み込まれるか、関連付けられるか又は対話するように配置されるプロセス実行コンポーネント(インタプリタ)とを備え、インタプリタは、ブロックチェーントランザクションのスクリプトに関連付けられるか或いは該スクリプト内で提供される少なくとも1つのトリガに応答して、少なくとも1つのプロセスを実行又は開始するように配置され、トリガは、1つ以上のコード及び/又はパラメータを含み、ロッキングスクリプトのメタデータ内で成文化され、トランザクションの出力が使われると、ウォレットのプラグインとして又はウォレットの拡張としてインストールされるインタプリタに提供される。
【選択図】
図1
【特許請求の範囲】
【請求項1】
ブロックチェーン実装システムであって:
デジタルウォレットと、
前記デジタルウォレットの中に組み込まれるか、該ウォレットに関連付けられるか又は該ウォレットと対話するように構成され、かつブロックチェーントランザクションに関連付けられるスクリプト内で提供される少なくとも1つのトリガに応答して少なくとも1つのプロセスを実行及び/又は開始するように構成されるプロセス実行コンポーネントであって、前記少なくとも1つのトリガは、前記スクリプトによって提供されるメタデータ内で又は前記メタデータによって提供される、プロセス実行コンポーネントと、
を備え、
前記プロセス実行コンポーネントは、前記トリガによって提供されるか又は前記トリガによって表される成文化された命令を実行可能ロジックに翻訳するように構成されるインタプリタであるか、かつ/又は該インタプリタを備え、
前記スクリプトは、前記ブロックチェーントランザクションの出力に関連付けられ、前記出力を使うことは、ブロックチェーン上の受取人へのトークン及び/又は通貨の一部の移転を引き起こし、
前記少なくとも1つのトリガは、信号をオフブロック宛先に送信させ、オフブロックイベントを実行させる、システム。
【請求項2】
前記ウォレットは暗号通貨ウォレットである、
請求項1に記載のシステム。
【請求項3】
前記少なくとも1つのトリガは、1つ以上のコード、フラグ、命令及び/又はパラメータを備える、
請求項1又は2に記載のシステム。
【請求項4】
前記プロセスは、予め決定されており、前記プロセス実行コンポーネント及び/又は前記ウォレットに知られている、
請求項1乃至3のいずれか一項に記載のシステム。
【請求項5】
前記プロセスは、前記スクリプトによって決定されるか又は前記スクリプト内で指定され、前記プロセス実行コンポーネントは、前記スクリプト内の1つ以上のアイテムを実行可能ロジックに翻訳又は解釈するように構成される、
請求項1乃至4のいずれか一項に記載のシステム。
【請求項6】
前記少なくとも1つのトリガ及び/又は少なくとも1つのプロセスは、コントラクトに従って選択又は決定される、
請求項1乃至5のいずれか一項に記載のシステム。
【請求項7】
当該システムは、複数のデジタルウォレット及び/又はプロセス実行コンポーネントを更に備える、
請求項1乃至6のいずれか一項に記載のシステム。
【請求項8】
デジタルウォレット又は暗号通貨ウォレットの中に組み込まれるか、該ウォレットに関連付けられるか又は該ウォレットと対話するように構成され、かつブロックチェーントランザクションのスクリプトに関連付けられるか該スクリプト内で提供される少なくとも1つのトリガに応答して少なくとも1つのプロセスを実行するように構成されるプロセス実行コンポーネントを提供するステップであって、前記少なくとも1つのトリガは、前記スクリプトによって提供されるメタデータ内で又は該メタデータによって提供される、ステップ、
を含み、前記スクリプトは、前記ブロックチェーントランザクションの出力に関連付けられ、前記出力を使うことは、ブロックチェーン上の受取人へのトークン及び/又は通貨の一部の移転を引き起こし、
前記少なくとも1つのトリガは、信号をオフブロック宛先に送信させ、オフブロックイベントを実行させる、
ブロックチェーン実装方法。
【請求項9】
i)前記少なくとも1つのトリガは、前記プロセス実行コンポーネントによる1つ以上のプロセスの実行を開始するように構成され、
ii)前記少なくとも1つのトリガは、1つ以上のコード、命令、フラグ及び/又はパラメータを備え、
iii)前記プロセス実行コンポーネントは、インタプリタである、
請求項8に記載の方法。
【請求項10】
i)前記プロセスは、予め決定されており、前記プロセス実行コンポーネント及び/又はウォレットに知られており、
ii)前記プロセスは、前記スクリプトによって決定されるか前記スクリプト内で指定され、前記プロセス実行コンポーネントは、前記スクリプト内の1つ以上のアイテムを実行可能ロジックに翻訳又は解釈するように構成され、かつ/又は
iii)前記少なくとも1つのトリガ及び/又は少なくとも1つのプロセスは、コントラクトに従って選択又は決定される、
請求項8又は9に記載の方法。
【請求項11】
前記デジタルウォレットをダウンロード及び/又はインストールするステップ、及び/又は
前記プロセス実行コンポーネントをダウンロード及び/又はインストールするステップ、
を更に含む、請求項8乃至10のいずれか一項に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般に、分散台帳(ブロックチェーン)技術に関し、より具体的には、そのような技術を使用してコンピュータ実装プロセスを実行又はトリガすることに関する。また、本発明は、デジタルウォレット技術及びスマートコントラクトにも関する。本発明は、暗号化指向イベントを通して実施されるプロセスのセキュアな実施に関する。
【背景技術】
【0002】
本明細書において、「ブロックチェーン」という用語を、電子的なコンピュータベースの分散台帳のすべての形式を包含するように使用する。これらは、コンセンサスベースブロックチェーン及びトランザクションチェーン技術、許可及び未許可台帳、共有台帳及びそれらの変形を含む。最も広く知られているブロックチェーン技術の用途はビットコイン台帳であるが、他のブロックチェーンの実装が提案され、開発されている。本明細書では、便宜性及び例示の目的のためにビットコインが参照され得るが、本発明は、ビットコインブロックチェーンでの使用に限定されず、代替的なブロックチェーン実装及びプロトコルが本発明の範囲内にある。「ビットコイン」という用語は、ビットコインブロックチェーンのいずれかの分野、バージョン又は変形を含んでよい。「ユーザ」という用語は、本明細書では、文脈に応じて、人間又はプロセッサベースのリソースを指すことがある。
【0003】
ブロックチェーンは、ブロックにより構成される、コンピュータベースの非集中型の分散システムとして実装されるピアツーピア電子台帳であり、ブロックはトランザクションにより構成される。各トランザクションは、ブロックチェーンシステム内の参加者間におけるデジタル資産のコントロールの移転を符号化するデータ構造であり、少なくとも1つの入力と少なくとも1つの出力を含む。各ブロックは、以前のブロックのハッシュを含み、ブロックは一緒にチェーン化されて、その始めからブロックチェーンに書き込まれたすべてのトランザクションの永久的な変更できないレコードを作成する。トランザクションは、それらの入力及び出力に組み込まれるスクリプトとして知られる小さなプログラムを含み、このスクリプトは、どのように、何によってトランザクションの出力にアクセスすることができるかを指定する。ビットコインプラットフォームにおいて、これらのスクリプトは、スタックベースのスクリプティング言語を使用して書かれる。
【0004】
トランザクションがブロックチェーンに書き込まれるためには、「有効」でなければならない。ネットワークノード(マイナ(miners))は、各トランザクションが有効であることを保証する作業を実行し、無効なトランザクションはネットワークから拒絶される。ノード上にインストールされたソフトウェアクライアントは、そのロッキング及びアンロッキングスクリプトを実行することによって、この検証作業を未使用トランザクション(unspent transaction:UTXO)に対して実行する。ロッキング及びアンロッキングスクリプトの実行により、真(TRUE)であると評価された場合、トランザクションは有効であり、トランザクションはブロックチェーンに書き込まれる。したがって、トランザクションがブロックチェーンに書き込まれるためには、i)トランザクションを受け取った第1ノードによって検証されなければならず、トランザクションが検証された場合、ノードは、それをネットワーク内の他のノードに中継し、ii)マイナよって構築された新たなブロックに追加されなければならず、iii)マイニングされる、すなわち、過去のトランザクションの公的台帳に追加されなければならない。
【0005】
ブロックチェーン技術は、暗号通貨実装の使用について最も広く知られているが、デジタル起業家達は、新たなシステムを実装するために、ビットコインが基づいている暗号通貨セキュリティシステムと、ビットコイン上に格納することができるデータとの双方の使用を探求し始めている。暗号通貨の領域に限定されない自動化タスク及びプロセスにビットコインを使用することができれば非常に有利であろう。そのようなソリューションは、それらの用途はより多方面にわたるが、ブロックチェーンの利点(例えば永続性、イベントの耐タンパレコード、分散処理等)を利用することができるであろう。
【0006】
現在の研究の一分野は、「スマートコントラクト」の実装のためのブロックチェーンの使用である。これらは、マシン読取可能なコントラクト(contract(契約))又は合意(agreement)の項の実行を自動化するように設計されたコンピュータプログラムである。自然言語で書かれる従来のコントラクトとは異なり、スマートコントラクトは、結果を生成するために入力を処理することができ、その後、それらの結果に応じてアクションを実行させることができるルールを含む、マシン実行可能なプログラムである。
【発明の概要】
【発明が解決しようとする課題】
【0007】
スマートコントラクトの実行及び実施に対する1つの既知のアプローチは、コントラクトに従って実行される必要のあるイベントを取り扱い、監督するコンピュータベースのリソースとして機能する、ボット又はボットのネットワークを使用することである。しかしながら、これは、第三者ボットへの依存を伴い、複雑なリソース集約的なインフラストラクチャにつながる可能性がある。悪意のある不正なアクティビティに対して、ボットそれ自体をセキュアにしなければならないため、セキュリティ問題が起こる可能性がある。したがって、ブロックチェーン技術の利点(例えば暗号化セキュリティ、擬似匿名性、非集中展開等)を継承し、かつ特定の条件下でイベント及びプロセスを生成することができる、強化されたブロックチェーンで実装されるソリューションを提供することが望ましい。本発明は、スマートコントラクトでの使用に限定されず、制御された条件下で実行及び/又はトリガされる1つ以上のイベントを必要とする状況に関連して有利に使用することができることに留意されたい。
【課題を解決するための手段】
【0008】
本発明によると、添付の特許請求の範囲で定義されるソリューションが提供される。
【0009】
本発明は、コンピュータ実装及び/又はブロックチェーン実装システム及び方法として説明され得る。あるいはまた、いつ及び/又はどのようにイベント又はプロセスがブロックチェーントランザクションによって、好ましくはブロックチェーンスクリプトによってトリガされるかを制御するためのセキュリティ方法として説明され得る。あるいはまた、本発明は、強化又は改善されたデジタルウォレットとして説明され得る。スマート又はインテリジェントデジタルウォレットを提供するものとして説明され得る。好ましくは、これはスマート暗号通貨ウォレットである。
【0010】
あるいはまた、本発明は、ブロックチェーン上の暗号化イベントを、オフブロック(off-block)で実行されるイベント及びプロセスと統合するためのシステム/方法を提供するものとして説明され得る。本発明は、タスクの実行のために、ブロックチェーンネットワーク及び非ブロックチェーンリソースを含む、代替的なインフラストラクチャ及びアーキテクチャを提供し得る。タスクは、コントラクト、好ましくはスマートコントラクトによって指定されてよい。
【0011】
本発明によると、ブロックチェーントランザクションのスクリプト内で又は該スクリプトによって提供される1つ以上の成文化された命令(codified instructions)を認識するように構成されるプロセス実行コンポーネントであって、ブロックチェーントランザクション処理コンポーネントに組み込まれているか、該コンポーネントに関連付けられるか又は該コンポーネントとともに動作可能なプロセス実行コンポーネント、
を備えるブロックチェーン実装システムが提供され得る。
【0012】
あるいはまた、本発明は、
ブロックチェーントランザクション処理コンポーネントと、
プロセス実行コンポーネントと、
を備えるブロックチェーン実装システムを提供し得る。
【0013】
ブロックチェーントランザクション処理コンポーネントは、ブロックチェーントランザクション(Tx)を生成、伝送及び/又は処理するように構成されるソフトウェアリソースであってよい。ブロックチェーントランザクション処理コンポーネントは、ブロックチェーンネットワークとの通信のために構成されてもよい。ブロックチェーントランザクション処理コンポーネントは、デジタルをレットであってもよく、デジタルウォレットを含んでもよい。以下では、便宜性のために、「デジタルウォレット」、「暗号通貨ウォレット」又は単に「ウォレット」という用語は、「ブロックチェーントランザクション処理コンポーネント」と交換可能に使用されてよい。
【0014】
プロセス実行コンポーネントは、デジタルウォレットに組み込まれるか、該デジタルウォレットに関連付けられるか又は該デジタルウォレットと対話/動作するように構成され得る。プロセス実行コンポーネントは、ブロックチェーントランザクションのスクリプトに関連付けられるか該スクリプト内で提供される少なくとも1つのトリガに応答して、少なくとも1つのプロセスを実行及び/又は開始するように構成され得る。トリガは、アクチュエータ又はイニシエータ、何か他のことを引き起こす何かであってよい。トリガされる、この「何か」、すなわちプロセスは、トリガを行うもの以外の、トランザクションとは異なるか、該トランザクションとは独立であるか又は該トランザクションとは無関係であってよい。
【0015】
したがって、本発明は、スクリプト言語を使用して明示的にプログラミングすることによってスクリプト内で実行ロジックを提供しようと試みる従来技術からの相違を示す。対照的に、本発明の1つ以上の実施形態によると、ロジックはスクリプト内で単に成文化される。
【0016】
本発明の別の利点は、ウォレットに組み込まれる/関連付けられるインタプリタの使用が、先行技術の構成のように、所望のタスクを実行するために、外部の第三者「ボット」又は「オラクル」を必要としないことを意味することにある。代わりに、本発明は、ブロックチェーンから直接的タスク/プロセスの実行を可能にする。したがって、必要とされるコンピューティングリソースは少なく、本発明は、先行技術によって提示されるものより、より効率的なソリューションを提供する。
【0017】
トリガは、プロセス実行コンポーネントによって識別又は検出されることができるスクリプトコンポーネントであってよい。トリガは様々な形態をとってよく、本発明はこの点で限定されない。トリガは、プロセス実行コンポーネントによって理解、解釈され得る、指定されたトリガとして機能するようにメタデータに挿入され得る、1つ以上のコード、識別子、フラグ、キーワード、値又は任意のアイテムであってよい。
【0018】
プロセスの実行は、トリガの検出又は処理に応答して、タスクの実行という結果になり得るか、別のコンピューティングリソースにタスクを実行させ得る。好ましくは、プロセスは、ウォレット以外のリソースによって実行される。
【0019】
スクリプトは、1つ又は複数のトリガを含んでよい。各トリガは、1つ又は複数のプロセスを開始してよい。「イベント」又は「タスク」という用語は、ときどき本明細書では「プロセス」の代わりに使用されることもある。トリガは、1つ以上の成文化された命令を含んでよい。
【0020】
スクリプトは、当技術分野で公知であるように、ブロックチェーントランザクション内の出力をセキュアにするように構成されるロッキング(locking)スクリプトであってよい。ロッキングスクリプトは、当技術分野で公知であるように、redeemスクリプトのハッシュを含んでよい。ロッキングスクリプトによってロックされた資産をロック解除するためには、適切なアンロッキングスクリプトが必要とされる。アンロッキングスクリプトは、ウォレットによって提供され得る。当技術分野に従って、出力を使おうと試みると、アンロッキング及びロッキングスクリプトが評価され得る。
【0021】
ブロックチェーントランザクションは、ビットコインネットワーク、ビットコインプロトコルの任意のバリエーション又は代替的なプロトコル/プラットフォームを含む、任意のブロックチェーンプラットフォームにおける実行のために構成されたトランザクションであってよい。ウォレットは、暗号通貨ウォレットであってよい。ウォレットは、暗号化鍵を格納し、暗号通貨トランザクションを処理するように構成され得る。
【0022】
少なくとも1つのトリガは、プロセス実行コンポーネントによる1つ以上のプロセスの実行を開始するように構成され得る。少なくとも1つのトリガは、1つ以上のコード及び/又はパラメータを含んでよい。トリガは、プロセス実行コンポーネントによって読取可能、認識可能及び/又は検出可能な成文化された命令であり得るか、該成文化された命令を提供してよい。
【0023】
プロセス実行コンポーネントは、インタプリタであり得るか、インタプリタを含んでよい。プロセスは、仮想マシンであり得るか、仮想マシンを含んでよい。以下では、「インタプリタ」という用語は、参照の容易性のために、「プロセス実行コンポーネント」と交換可能に使用されてよい。インタプリタは、トリガによって提供されるか又はトリガによって表される成文化された命令を、実行可能ロジックに翻訳するように構成され得る。実行可能ロジックの実行は、プロセスを開始及び/又は実行させ得る。
【0024】
インタプリタは、ウォレットに対するプラグイン又はアドオンコンポーネントとして機能するように構成され得る。ウォレットは、以下で説明されるような一般的なデジタルをレットであってよく、かつ/又はインタプリタは、タスク、コントラクト又はウォレットとともに動作するように構成されるアプリケーション固有コンポーネントであってよい。したがって、ある意味では、ウォレットは、汎用コンピューティングリソースと見なされてもよく、インタプリタは、その汎用リソースとともに動作するように構成されるアプリケーションソフトウェアとみなされてもよい。
【0025】
ウォレットは、ユーザによって操作される電子デバイスにインストールされてよい。ユーザは、ウォレットを操作することができ、例えば登録プロセスを介してウォレットに関連付けられることができるエンティティ(人間又はコンピューティングリソース)であってよい。ユーザは、ウォレットを操作することを許可されてよく、ウォレットにアクセスすることを許容される前に検証プロセスを受けてよい。
【0026】
トランザクションスクリプト内で提供されるコード、パラメータ、変数及び/又は命令は、アプリケーションソフトウェアを特定の方法で実行させる。したがって、本発明は、暗号化実施ブロックチェーントランザクションの使用及び移転を介してタスクを自動化して実行するために使用することができる、セキュアかつパワフルで多用途なブロックチェーン実装コンピューティングツールを提供するものとして見ることができる。
【0027】
少なくとも1つのトリガは、ウォレット及び/又はインタプリタの外部の宛先に信号を送信させ得る。信号は任意のタイプの信号であってよい、信号は、何らかのタイプのメッセージを含んでよい。信号は、オフブロックの宛先(off-block destination)に送信されてよい。
【0028】
プロセスは、予め決定されて、プロセス実行コンポーネントに知られ(コード化されるか又は他の方法でその中に提供され)てよい。プロセスはウォレットに知られてもよい。
【0029】
プロセスは、スクリプトによって決定され得るか、スクリプトによって指定され得る。プロセス実行コンポーネントは、スクリプト内の1つ以上のアイテムを実行可能ロジックに翻訳又は解釈するように構成され得る。これらのアイテムは、様々な形式をとることができる。それらは、コード、フラグ、命令、パラメータ等であってよい。
【0030】
少なくとも1つのトリガ及び/又は少なくとも1つのプロセスは、コントラクト、スキーム、合意又は他のアクティビティに従って選択又は決定され得る。ウォレット及び/又はインタプリタのユーザは、コントラクト、スキーム、合意又は他のアクティビティにおける参加者であってよい。コントラクトは、当技術分野で公知のマシン読取可能かつ実行可能なスマートコントラクトであってよい。
【0031】
少なくとも1つのトリガは、スクリプト内で提供されるメタデータ内で、該メタデータを介して又は該メタデータによって提供され得る。スクリプトは、ブロックチェーントランザクションの出力に関連付けられ得る。スクリプトはロッキングスクリプトであってよい。スクリプトは、redeem(引き換え)スクリプトを含んでよい。出力を使うこと(spending)は、ブロックチェーン上の受取人へのトークン及び/又は通貨の一部の移転を引き起こすか実行し得る。通貨は暗号通貨であってよい。
【0032】
システムは、複数のデジタルウォレット及び/又はプロセス実行コンポーネントを更に含んでよい。したがって、ウォレット及び関連付けられるインタプリタのネットワークが提供され得る。これらは、相互に及び/又はブロックチェーンと対話するように構成されてよい。
【0033】
本発明は、1つ以上の方法も提供する。方法は、上述のシステムの実施形態の使用に対応するステップを含んでよい。上述の任意の特徴、態様又は実施形態が、以下で説明される方法のいずれかで存在し得るか、適用可能であり得る。
【0034】
本発明は、
デジタル又は暗号通貨ウォレットの中に組み込まれるか、該ウォレットに関連付けられるか又は該ウォレットと対話/動作するように構成され、かつブロックチェーントランザクションのスクリプトに関連付けられるか該スクリプト内で提供される少なくとも1つのトリガに応答して少なくとも1つのプロセスを開始及び/又は実行するように構成される、プロセス実行コンポーネントを提供するステップ、
を含むブロックチェーン実装方法を含み得る。
【0035】
好ましくは、
i)少なくとも1つのトリガは、プロセス実行コンポーネントによる1つ以上のプロセスの実行を開始するように構成され、
ii)少なくとも1つのトリガは、1つ以上のコード、命令、フラグ及び/又はパラメータを備え、
iii)プロセス実行コンポーネントは、インタプリタであり、
iv)トリガは、少なくとも1つの成文化された命令であり、かつ/又は
iv)少なくとも1つのトリガは、ウォレットの外部の宛先に信号を送信させる。
【0036】
プロセス実行コンポーネントは、上述のようにインタプリタであってよい。
【0037】
あるいはまた、
i)プロセスは、予め決定されており、プロセス実行コンポーネント及び/又はウォレットに知られており、
ii)プロセスは、スクリプトによって決定されるかスクリプト内で指定され、好ましくは、プロセス実行コンポーネントは、スクリプト内の1つ以上のアイテムを実行可能ロジックに翻訳又は解釈するように構成され、
iii)少なくとも1つのトリガ及び/又は少なくとも1つのプロセスは、コントラクト、好ましくはスマートコントラクトに従って選択又は決定され、
iv)少なくとも1つのトリガは、スクリプト内で提供されるメタデータ内で又は該メタデータによって提供され、かつ/又は
v)スクリプトは、ブロックチェーントランザクションの出力に関連付けられ、出力を使うことは、ブロックチェーン上の受取人へのトークン及び/又は通貨の一部の移転を引き起こす。
【0038】
方法は、
デジタルウォレットをダウンロード及び/又はインストールするステップ、及び/又は
プロセス実行コンポーネントをダウンロード及び/又はインストールするステップ、
を更に含んでもよい。
【0039】
あるいはまた、本発明は、
ブロックチェーントランザクションのスクリプト内で又は該スクリプトによって提供される1つ以上の成文化された命令を使用して、デジタルウォレットに関連付けられるか、該ウォレットとともに動作可能であるか又は該ウォレット内に組み込まれるインタプリタに、成文化された命令を実行可能ロジックに翻訳させるステップ、
を含むブロックチェーン実装方法を提供し得る。
【0040】
方法は、
成文化された命令をスクリプト内に提供するステップ、及び/又は
ブロックチェーントランザクションを、ブロックチェーン台帳に書き込まれるブロックチェーンネットワークに提示するステップ、
を更に含んでもよい。
【0041】
i)ブロックチェーントランザクションのスクリプト内で又は該スクリプトによって提供される1つ以上の成文化された命令を認識するようにインタプリタを配置するステップであって、インタプリタは、デジタルウォレットに組み込まれているか、該ウォレットに関連付けられるか又は該ウォレットとともに動作可能である、ステップ、又は
ii)i)で定義されるインタプリタを提供するステップ、
を更に含んでもよい。
【0042】
本発明のこれら及び他の態様は、本明細書で説明される実施形態から明らかになるか、その実施形態に関連して説明されよう。本発明の実施形態は、単なる例示として、添付の図面に関連して説明される。
【図面の簡単な説明】
【0043】
【
図1】スマートコントラクトロジックが特別な強化されたウォレットによって管理される、本発明の実施形態を示す図である。
【0044】
【
図2】先行技術で公知である、ノードの例示的なブロックチェーンネットワークを示す図である。
【0045】
【
図3】例示のノードをブロック図の形式で示す図である。
【発明を実施するための形態】
【0046】
本発明の技術的背景を提供するために、初めに
図2を参照する。
図2は、ブロックチェーンに関連付けられる例示のブロックチェーンネットワーク100をブロック図の形式で示している。ブロックチェーンネットワークは、他のメンバからの招待や同意なしに、だれでも参加し得るピアツーピアネットワークである。ブロックチェーンネットワーク100が動作しているブロックチェーンプロトコルのインスタンスを実行している分散電子デバイスが、ブロックチェーンネットワーク100に参加し得る。そのような分散電子デバイスはノード102として参照されてよい。ブロックチェーンプロトコルは、例えばビットコインプロトコル又は他の暗号通貨であってよい。
【0047】
ブロックチェーンプロトコルを実行し、ブロックチェーンネットワーク100のノード102を形成する電子デバイスは、様々なタイプのものであってよく、例えばデスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、サーバ、スマートフォン等のモバイルデバイス、スマートウォッチ等のウェアラブルコンピュータ又は他の電子デバイス等のコンピュータを含む。
【0048】
ブロックチェーンネットワーク100のノード102は、有線及び無線通信技術を含み得る適切な通信技術を使用して互いに結合される。多くの場合において、ブロックチェーンネットワーク100は少なくとも部分的にインターネット上で実装され、個々のノード102の一部は、地理的に散在する場所に配置されてよい。
【0049】
ノード102は、ブロックチェーン上のすべてのトランザクションのグローバル台帳を維持する。グローバル台帳は分散台帳であり、各ノード102は、グローバル台帳の完全なコピー又は部分的コピーを格納してよい。グローバル台帳に影響する、ノード102によるトランザクションは、他のノード102によって検証されるので、グローバル台帳の有効性は維持される。ビットコインプロトコル又は代替的なプロトコルから派生した任意の変形を使用するもののように、ブロックチェーンネットワークを実装及び操作する詳細は、当業者によって認識されるであろう。
【0050】
各トランザクションは典型的に、1つ以上の入力と1つ以上の出力を有する。入力及び出力に組み込まれたスクリプトは、どのように及び何によってトランザクションの出力にアクセスすることができるかを指定する。トランザクションの出力は、トランザクションの結果として秘密暗号鍵及びトークンのコントロールを移転させることができるアドレスであってよい。これらの鍵/トークンは次いで、利用可能なトランザクション出力として、その出力アドレスに関連付けられる。暗号通貨の文脈では、ビットコインと同様に、利用可能なトランザクション出力は、未使用トランザクション出力(UTXO:unspent transaction output)と称されてもよい。その後のトランザクションは、次いで、これらの鍵/トークンを1つ以上の他のアドレスに移転させるために、そのアドレスを入力として参照してもよい。
【0051】
ノード102は、それらの機能に応じて異なるタイプ又はカテゴリのものであってよい。ノード102に関連付けられる4つの基本的な機能、すなわち、ウォレット、マイニング、フルブロックチェーン維持及びネットワークルーティングという機能が存在することが示されている。これらの機能のバリエーションも存在し得る。ノード102は、それらの機能のうちの2つ以上を有してもよい。例えば「フルノード」は、4つの機能すべてを提示する。軽量ノードは、例えばデジタルウォレットで実装されてよく、ウォレット及びネットワークルーティング機能のみを特徴づけてもよい。フルブロックチェーンを格納するのではなく、デジタルウォレットは、ブロックをクエリするときにインデックスとして機能するブロックヘッダを追ってもよい。ノード102は、TCP/IP(伝送制御プロトコル)等の接続指向プロトコルを使用して相互に通信する。
【0052】
我々はここで、このブロックチェーン技術を利用し、作用する本発明の実施形態に注意を向ける。
【0053】
本発明の実施形態は、ブロックチェーンの使用を介してプロセスを自動化することができるソリューションを提供する。本発明は、ブロックチェーントランザクション(TXs)内で提供されるスクリプトに応答し又はこれと対話するように構成されるソフトウェアリソースを組み込む。好ましい実施形態において、ソフトウェアリソースはデジタルウォレットである。具体的には、ウォレットは、暗号通貨及び関連するトランザクションを格納、規定、生成又は他の方法で処理するように構成される。以下では、「ウォレット」又は「デジタルウォレット」という用語は、便宜性のために交換可能に使用される。デジタルウォレットは当技術分野で知られているが、本発明は、そのような技術に改良を加えて、ブロックチェーンネットワーク及びプロトコルに関連して、現在知られているものより大幅に広い機能を提供することができる「スマートウォレット」を提供する。
【0054】
好ましい実施形態において、本発明は、1つ以上のプロセスが、その中に組み込まれるか拡張として追加されたコード実行コンポーネントを有する、強化されたウォレットによって実行されることを可能にする構成を提供する。以下では、これを「インタプリタ」と称し、インタプリタは、コード翻訳及び実行のための機構として当技術分野で知られている。
【0055】
本発明の実施形態によると、インタプリタは、ブロックチェーントランザクションスクリプトで提供される成文化された命令によってトリガされるプロセスを、開始及び/又は実行することができる。スクリプトは、ブロックチェーントランザクション(Tx)内の出力(UTXO)に関連付けられ、ロッキングスクリプトである。ロッキングスクリプトは、出力を使うために、正しいredeemスクリプトがアンロッキングスクリプトに提供されなければならないように、当技術分野で公知のredeemスクリプトのハッシュを備え得る。
【0056】
一実施形態では、そのような強化されたウォレットのネットワークは、スクリプト内に埋め込まれた成文化された命令の形式で実装されるスマートコントラクトのために実行環境を備える。すなわち、スクリプトは、特定のプロセスを実行するようウォレットをトリガする、コード、命令、変数及びパラメータを含んでよい。
【0057】
例えば作業を構築する部分の開始又はデバイスのロック解除又はメディアコンテンツやソフトウェア等の何らかのデジタルコンテンツのリリース又は資金の移動又はコントラクトによって指定される他の何かといったイベントを引き起こすトリガとして、支払いが機能する既知の契約の状況を考慮されたい。
【0058】
有利には、我々は、本発明によって提供される強化されたスマートウォレットを使用して、そのようなイベントを実装することができる。当技術分野で公知であるように、ブロックチェーントランザクション内の出力が使われると、その出力に関連付けられる暗号通貨のコントロールは、あるパーティから別のパーティに移転される。また、出力を使うことは、トークンの移転も引き起こす可能性があり、トークンは、トランザクションスクリプト内に組み込まれてよい。移転の受取人は、本発明による強化されたウォレットとすることができる。
【0059】
しかしながら、これは、そのような移転を行うブロックチェーントランザクションをコード化して、続いて起こる関連付けられるイベントについてのトリガを含むことができるように、拡張され得る。イベントは、強化されたウォレット/インタプリタ自体によって部分的又は全体的に実行されてよく、あるいは単に、例えば信号を宛先に送信して別のリソースによるイベントの実行を引き起こすことにより、ウォレットによって開始されてもよい。いくつかの実施形態では、このイベントはオフブロックイベントとすることができる。
【0060】
したがって、換言すると、あるパーティから別のパーティへのブロックチェーンにおける移転は、少なくとも1つの他のイベントを、強化されたウォレットにより開始及び/又は実行させる。
【0061】
本発明は、トリガすることができるイベント(プロセス)のタイプによって限定されない。しかしながら、単なる例として、支払いが行われたこと及び作業を始めることができることをビルダに警告する電子メールのような、何らかの種類の信号の伝送とすることができる。別の例では、デバイス又はリソースをロック解除させる信号を送信することができる。したがって、本発明は、認証又はセキュリティのソリューションとして機能することができる。これらの簡単な例は例示の目的にすぎないことに留意されたい。
【0062】
トリガされるイベントは、これらが、実行を開始するためのトリガのみを必要とする標準化されたプロセスである可能性があるという点において、予測可能である可能性がある。あるいは、実行されるべきプロセスは、スクリプト内で成文化され、ウォレットのインタプリタは、成文化された命令を実行可能ロジックに翻訳するように構成される。トランザクションが、通常のプロトコルの一部としてブロックチェーンネットワークを通してブロードキャストされるとき、強化されたウォレットは、任意の組み込まれた成文化された命令を読み出し、これらの命令を、強化された拡張機能として、すなわち、公知のウォレットが実行することができる通常のトランザクション処理を超える機能として実行することができる。ある意味では、本発明に従って構成されたウォレットは、単に支払処理を行ってリソースを処理することから、多目的の計算機能へと拡張される。スマートコントラクトの実行とともに使用されるとき、本発明は、単なる従来のウォレットベースのストレージ及び処理と比べて大幅に広い適用性を有する、パワフルで多用途のコンピューティングツールになる。
【0063】
本発明は、既存の公知のウォレットに対する拡張として機能するので、ある意味では、ソフトウェア配布のために新しいパラダイムを提供するものとして見なすことができる。本発明を既存のウォレットに追加して、拡張された機能を提供することができる。これを「プラグイン」と考えることができる。インタプリタをコンピューティングリソースにダウンロードしてインストールし、既存のウォレットと関連付けることができ、あるいは拡張としてインストールされるのではなく、ウォレット内に提供される組み込みコンポーネントとして提供することができる。後者の場合、拡張は、APIを使用してウォレットとインタフェースしてよい。インタプリタは、ユーザが参加しているコントラクト、合意、スキーム、ネットワーク等に従って、ユーザによって必要とされる又は所望されるタスクを実行するように配置及び構成され得る。
【0064】
有利には、本発明は、ブロックチェーンを介したスマートコントラクトの実施及びイベント処理のために自動ボットを実行することに第三者に依拠する必要のない、ソリューションを提供する。また、本発明が必要とするのは、ボットのネットワークよりも複雑でないインフラストラクチャであり、多様に実現可能なプロセスを実行することにも適している。
【0065】
また、本発明を使用して、洗練された挙動及びタスクを実行するように相互に対話することができる、強化されたウォレットのネットワークを形成することも促進することができる。そのような強化されたウォレットネットワークでは、実行されるロジックは、おそらくは明示的ではなく、リソースのいずれかによって実行可能である。実行ロジックに必要とされる情報は、ネットワークのウォレット内のインタプリタによって検出されて応答される成文化されたトリガとして、(例えばビットコイン)スクリプト内で提供され、伝達される。
【0066】
使用ケースの例:
本発明の実施形態による強化されたウォレットについての例示的な使用ケースとして、
図1に関連して以下のシナリオを検討する。
【0067】
この例では、マネージャ又はコントローラは、一般的は強化されたウォレットを自発的な受取人に分配する。これらの受取人は、「ホスト」、「クライアント」又は「ユーザ」と呼ぶことができる。受取人は、本発明をインストールして実行することができるコンピュータであってよい。これは、
図1では「ホストノード」1として図示されている。便宜性のために、これを「スマートウォレット」2と呼ぶ。このスマートウォレットは、単にブロックチェーントランザクションを格納して処理するために使用され得るコアの一般的な暗号通貨ウォレットとして機能するので、いずれのインテリジェント又は拡張機能も実行せず、いずれのトリガにも応答しない。基本のスマートウォレットの機能を拡張するために、ユーザは、ロジックを生成及び/又は実行するように設計された1つ以上のスマートウォレットプラグイン3をインストールする。プラグイン3の準備の後、一般的なウォレット2は、ウォレットにインテリジェント能力を提供するインタプリタを備える。これらのプラグインは、基本のスマートウォレット2とともに又はこれと別個に提供され得る。スマートウォレットは、プラグインとの対話及び統合することができ、その逆もそうである。プラグインは、ブロックチェーントランザクション(TXs)6のロッキングスクリプト5内で提供されるトリガ4の特定の所定のセットに応答して、所与のタスクに従って特定のプロセスを実行する。スマートウォレット2及びプラグイン3は、ブロックチェーンとともに動作するように設計され、本発明は、ブロックチェーンの基礎となるインフラストラクチャの利点のすべて、すなわち、暗号化セキュリティ、擬似匿名性、ロバスト性等を継承する。
【0068】
例えば1つのウォレットプラグインは薬局(Pharmacy)アプリケーションであり得る。この例示のシナリオでは、医師は、ちょうど3回の繰り返しを許容された特定の患者に処方箋を書く。悪用を避けるためには、処方箋が偽造されないこと;意図された受取人のみが薬を受け取ること;そして、(例えば)許可された繰り返しの回数だけ調剤(fill)されるように、すべてがセキュアに追跡可能であること、が重要である。処方箋は、当技術分野で公知のトークン化技術を使用して、UTXOのロッキングスクリプト5内のメタデータとして、ビットコイントランザクション6に書き込まれ、医師によって署名される。これはデジタル署名であってよい。これは、出力を所望の受取人に対してロックする。メタデータは、薬局プラグイン3のための成文化されたトリガ4を含む。薬局はスマートウォレット2及びこのプラグイン3をそれらのサーバ1にインストールしている。
【0069】
受取人が処方箋を薬局に提示すると、トランザクション出力は、従来の方法で「使われる」、すなわち、トークン化された処方箋が薬局で「引き換えられ(redeemed)」、おそらく薬の実際の費用の支払いも含み、場合によっては暗号通貨での支払いである。薬局でトークンを引き換えることに加えて、ウォレットプラグインは、ある範囲の関連付けられるプロセスを実行する。例えば調剤されている処方箋の政府のデータベース7を更新し(誰がそれを処方したか;誰のために;どの薬剤師によって調剤されたか;どの薬について等);受取人の(ブロックチェーンベースの)医療記録7を更新する等。
【0070】
当業者は、メタデータに基づいて任意の数の関連するプロセスを自動化することができることを容易に認識するであろう。例えば処方箋自体を、薬剤師が前もって準備して、(従来の紙ベースのパラダイムにより)受取人が薬局で待つ必要があるのではなく、受取人が簡単にピックアップすることができる。
【0071】
ここで
図3を参照すると、
図3は、ノード300の簡略化された例をブロック図の形式で示している。ノード300は、本開示のコンテキストではホストノードであってよい。ノード300はプロセッサ302を含み、プロセッサ302は、1つ以上のマイクロプロセッサ、特定用途向け集積回路(ASIC)、マイクロコントローラ又は同様のコンピュータ処理デバイスを含んでよい。ノード300は、値、変数及び一部の例ではプロセッサ実行可能プログラム命令を格納するための、永続的及び非永続的メモリを含み得るメモリ304と、有線又は無線ネットワークを介したネットワーク接続を提供するためのネットワークインタフェース306を更に含む。
【0072】
ノード300は、実行されると、プロセッサ302に、本明細書で説明される機能又は動作の1つ以上を実行させるプロセッサ実行可能命令を包含する、プロセッサ実行可能なブロックチェーンアプリケーション308を含む。
【0073】
上述の実施形態は、本発明を限定するものではなく例示するものであり、当業者は、添付の特許請求の範囲によって定義される本発明の範囲から逸脱することなく、多くの代替的な実施形態を設計することができることに留意されたい。特許請求の範囲において、括弧内に置かれる任意の参照符号は請求項を限定するものと解釈されるべきではない。「備える(comprising)」、「備える(comprises)」等の用語は、任意の請求項又は明細書全体に列挙されるもの以外の要素又はステップの存在を除外しない。本明細書において、「備える(comprises)」は「含む(includes)又はから成る(consists of)」を意味し、「備える(comprising)」は「含む(including)又はから成る(consists of)」を意味する。要素の単数形の参照は、そのような要素の複数経の参照を除外せず、その逆もそうである。本発明は、いくつかの別個の要素を備えるハードウェアによって及び適切にプログラムされたコンピュータによって実装されてよい。いくつかの手段を列挙しているデバイスの請求項において、これらの手段のいくつかは、1つの同じハードウェアアイテムによって具現化されてよい。特定の手段が相互に異なる従属請求項に記載されているという単なる事実は、それらの手段の組合せを有利に使用することができないことを示すものではない。
【外国語明細書】