(57)【特許請求の範囲】
【請求項１】
ブロックチェーンを共有する分散型のネットワークに接続された複数の装置間で行う契約合意方法であって、
前記複数の装置は、それぞれ、
前記ネットワークへブロードキャストされたトランザクションが含まれたブロックチェーンを、記憶部に記憶する制御ステップと、
前記記憶部に記憶されたブロックチェーンに、合意対象の契約に対応する共有の契約用アドレス宛てのトランザクションが含まれるか否かを監視する監視ステップと、
前記契約用アドレス宛てのトランザクションを検知した場合、前記契約に合意するか否かの証跡と、自装置ユーザの電子署名とを含む、前記契約用アドレス宛てのトランザクションを生成し、前記ネットワークへブロードキャストする生成ステップと、を行うこと
を特徴とする契約合意方法。
【請求項２】
請求項１記載の契約合意方法であって、
前記契約用アドレス宛てのトランザクションを検知した場合、前記自装置ユーザに通知する通知ステップを行うことを特徴とする契約合意方法。
【請求項３】
請求項２記載の契約合意方法であって、
前記契約用アドレス宛てのトランザクションを検知した場合、当該トランザクションが正当か否かを判別する判別ステップを行い、
前記通知ステップは、前記判別ステップの判別結果を、前記自装置ユーザに通知することを特徴とする契約合意方法。
【請求項４】
請求項１記載の契約合意方法であって、
前記契約用アドレス宛てのトランザクションを検知した場合、当該トランザクションが正当か否かを判別する判別ステップと、
前記判別ステップの判別結果、および、前記トランザクションの内容に基づいて、前記契約用アドレス宛てのトランザクションの生成を決定する決定ステップと、を行うことを特徴とする契約合意方法。
【請求項５】
ブロックチェーンを共有する分散型のネットワークに接続された複数の装置によって行われた契約の合意を検証する合意検証方法であって、
前記ネットワークへブロードキャストされたトランザクションが含まれたブロックチェーンを、記憶部に記憶する制御ステップと、
前記ブロックチェーンを参照し、前記契約の発行者が発行した契約合意を要求する発行者トランザクション、および、前記発行者トランザクションに対して前記契約の合意者が合意するか否かを示す合意者トランザクションを検証する合意検証ステップと、を行い、
前記発行者トランザクションおよび前記合意者トランザクションは、前記契約に対応する共有の契約用アドレス宛てのトランザクションであり、
前記記憶部に記憶されたブロックチェーンに、前記契約用アドレス宛てのトランザクションが含まれるか否かを監視し、前記契約用アドレス宛てのトランザクションを検知した場合、合意の検証を指示する監視ステップを、さらに行うこと
を特徴とする合意検証方法。
【請求項６】
ブロックチェーンを共有する分散型のネットワークに接続された他装置との間で契約を合意する契約合意装置であって、
前記ネットワークへブロードキャストされたトランザクションが含まれたブロックチェーンを、記憶部に記憶する制御部と、
前記記憶部に記憶されたブロックチェーンに、合意対象の契約に対応する共有の契約用アドレス宛てのトランザクションが含まれるか否かを監視する監視部と、
前記契約用アドレス宛てのトランザクションを検知した場合、前記契約に合意するか否かの証跡と、自装置ユーザの電子署名とを含む、前記契約用アドレス宛てのトランザクションを生成し、前記ネットワークへブロードキャストする生成部と、を備えること
を特徴とする契約合意装置。
【請求項７】
ブロックチェーンを共有する分散型のネットワークに接続された複数の装置によって行われた契約の合意を検証する合意検証装置であって、
前記ネットワークへブロードキャストされたトランザクションが含まれたブロックチェーンを、記憶部に記憶する制御部と、
前記ブロックチェーンを参照し、前記契約の発行者が発行した契約合意を要求する発行者トランザクション、および、前記発行者トランザクションに対して前記契約の合意者が合意するか否かを示す合意者トランザクションを検証する合意検証部と、を備え、
前記発行者トランザクションおよび前記合意者トランザクションは、前記契約に対応する共有の契約用アドレス宛てのトランザクションであり、
前記記憶部に記憶されたブロックチェーンに、前記契約用アドレス宛てのトランザクションが含まれるか否かを監視し、前記契約用アドレス宛てのトランザクションを検知した場合、前記合意検証部に合意の検証を指示する監視部を、さらに備えること
を特徴とする合意検証装置。
【請求項８】
請求項７記載の合意検証装置であって、
前記合意検証部の検証結果に応じたトランザクションの生成を指示する執行部と、
前記執行部の指示に基づいてトランザクションを生成し、前記ネットワークへブロードキャストする生成部と、を備えること
を特徴とする合意検証装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ブロックチェーンの仕組みを用いて契約に合意する技術、特に、合意した契約の証跡を残す技術に関する。
【背景技術】
【０００２】
情報の発信元を保証するための技術として電子署名がある。電子署名を実現するための仕組みとして、現在最も普及しているのは公開鍵暗号方式に基づくものである。また、電子署名された情報において、用いられた電子鍵が確かに情報発信者のものであることを示すためには、通常、信頼できる第三者機関を利用することになる。信頼できる第三者機関が中央集権的な管理を行うことにより、個人と利用する鍵の情報が紐づけられることで信頼性が担保される。
【０００３】
一方で、上記の様に中央集権的な管理を必要とせずに、信頼性を担保可能な仕組みがデジタル仮想通貨を中心に普及しつつある。ブロックチェーンと呼ばれるこの仕組みでは、やり取りされる情報の信頼性を参加者全体で形成されるネットワーク内での合意形成のプロセスによって担保し、かつ、改ざんや二重使用等の不正を系全体で防ぐことにより、健全性を保持している（非特許文献１）。また、ブロックチェーンの仕組みを、様々な取引に応用することが研究されている（非特許文献２）。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】斉藤、“ビットコイン−人間不在のデジタル巨石貨幣”、WIDE Technical-Report in 2013、WIDE Project、2013年12月31日
【非特許文献２】H. Watanabe, S. Fujimura, A. Nakadaira, Y. Miyazaki, A. Akutsu, J. Kishigami, “Blockchain contract: A complete consensus using blockchain”, 2015 IEEE 4th Global Conference on Consumer Electronics (GCCE), 2015, pp577 - 578
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ブロックチェーンは、参加者間の仮想通貨の取引情報がトランザクションとしてブロックという１つの単位でまとめられ、Ｐ２Ｐ（Peer to Peer）ネットワークにて参加者全員に共有される一つの巨大な元帳として機能する。例えば、「ＡさんはＢさんに３枚のコインを渡した。」というトランザクションが全員で共有される。このブロックチェーンを参加者全ての取引の内容を記録した一つの元帳と捉えると、通貨以外の様々な取引に応用することができる。
【０００６】
そこで、本発明では、そのブロックチェーンを複数者間で契約を交わす際の証跡として応用する。契約（契約書）は、売買契約、譲渡証、申込書、許諾書等を指し、二者間以上の個人又は機関で交わされる契約の内容を示した文書データである。その際、二者間以上での合意形成がどのように行われたのかを証跡として残しておくことは、権利を主張する際の公的な証明となる。
【０００７】
ここで、前述した仮想通貨の場合、１つのトランザクションには、例えば、一つ前のトランザクションのハッシュ値、送金元のアドレス、送金先のアドレス、支払い額及び送金元の電子署名が含められており、それらによってブロックチェーンを共有する全ての参加者は取引の内容を公的に確認することができる。それゆえ、これを契約合意の証跡に応用するため、契約に関する情報をトランザクションに追加しておくことで同様の効果が期待される。なお、前述のアドレスとは、ブロックチェーン技術において電子署名用の公開鍵のハッシュ値を指す。
【０００８】
ここで、仮想通貨としてのブロックチェーンを契約合意の証跡に応用する場合、契約内容が二者間以上で合意されたことをどのように証明するかといった点が課題となる。仮想通貨のブロックチェーンに採用されている電子署名方式は、前述の通り送金元の電子署名のみによって成り立っており、送金先の電子署名は必要とされていない。一方、二者間以上において契約を取り交わす場合、一方的な契約の発行では契約は成り立たず、必ず契約当事者である全ての関係者の合意が必要となる。しかしながら、ブロックチェーンを形成する１つのトランザクションには送り手の電子署名しか含まれていないため、受け手による契約合意の証跡は該トランザクションに残らないことになる。
【０００９】
上記課題に対する単純な解決方法として、例えば、全ての関係者の電子署名を１つのトランザクションに含める方法が考えられる。仮想通貨にはマルチシグネチャという仕組みが採用されており、一定数以上の電子署名がなければトランザクションが承認されないアドレスを作成することができる。しかしながら、事前にどの電子署名を必要とするのか、承認前のトランザクションを関係者間でどのように共有するのか、複数の秘密鍵をどこに集めて署名を行うのか等、１つのトランザクションに複数の電子署名を含める手続きは煩雑になる。
【００１０】
また、上記課題に対して、非特許文献２においては、発行者のトランザクションと合意を示すトランザクションの二種類のトランザクションに分けて連鎖させることで合意を取る方式を提案している。しかしながら、この方式は、少人数に対しては適用できるものの、例えば、企業のサービス利用規約に対して多数のユーザが合意する場合など、同時に多人数の合意の証跡を残す場合には効率が悪い。
【００１１】
本発明は、上記事情を鑑みてなされたものであり、１つのトランザクションに１つの電子署名という形態を保持しつつ、契約の関係者間で合意を取りながら、多人数であっても効率的に契約の証跡をブロックチェーンに残すことを目的とする。
【課題を解決するための手段】
【００１２】
上記目的を達成するため、本発明は、ブロックチェーンを共有する分散型のネットワークに接続された複数の装置間で行う契約合意方法であって、前記複数の装置は、それぞれ、前記ネットワークへブロードキャストされたトランザクションが含まれたブロックチェーンを、記憶部に記憶する制御ステップと、前記記憶部に記憶されたブロックチェーンに、合意対象の契約に対応する共有の契約用アドレス宛てのトランザクションが含まれるか否かを監視する監視ステップと、前記契約用アドレス宛てのトランザクションを検知した場合、前記契約に合意するか否かの証跡と、自装置ユーザの電子署名とを含む、前記契約用アドレス宛てのトランザクションを生成し、前記ネットワークへブロードキャストする生成ステップと、を行う。
【００１３】
ここで、本発明で述べるトランザクションはユーザが最初に発行したトランザクションのオリジナルデータそのもの以外に、オリジナルデータから一部のデータを抜粋したデータやハッシュ化などにより要約されたデータもトランザクションとして表記する。
【００１４】
本発明は、ブロックチェーンを共有する分散型のネットワークに接続された複数の装置によって行われた契約の合意を検証する合意検証方法であって、前記ネットワークへブロードキャストされたトランザクションが含まれたブロックチェーンを、記憶部に記憶する制御ステップと、検証対象の契約に対応する共有の契約用アドレス宛てのトランザクションを、前記記憶部から取り出し、前記トランザクションに設定された、前記契約に対する合意の証跡に基づいて、前記契約への合意が要求される合意者の合意を検証する合意検証ステップと、を行う。
【００１５】
本発明は、ブロックチェーンを共有する分散型のネットワークに接続された他装置との間で契約を合意する契約合意装置であって、前記ネットワークへブロードキャストされたトランザクションが含まれたブロックチェーンを、記憶部に記憶する制御部と、前記記憶部に記憶されたブロックチェーンに、合意対象の契約に対応する共有の契約用アドレス宛てのトランザクションが含まれるか否かを監視する監視部と、前記契約用アドレス宛てのトランザクションを検知した場合、前記契約に合意するか否かの証跡と、自装置ユーザの電子署名とを含む、前記契約用アドレス宛てのトランザクションを生成し、前記ネットワークへブロードキャストする生成部と、を備える。
【００１６】
本発明は、ブロックチェーンを共有する分散型のネットワークに接続された複数の装置によって行われた契約の合意を検証する合意検証装置であって、前記ネットワークへブロードキャストされたトランザクションが含まれたブロックチェーンを、記憶部に記憶する制御部と、検証対象の契約に対応する共有の契約用アドレス宛てのトランザクションを、前記記憶部から取り出し、前記トランザクションに設定された、前記契約に対する合意の証跡に基づいて、前記契約への合意が要求される合意者の合意を検証する合意検証部と、を備える。
【発明の効果】
【００１７】
本発明によれば、１つのトランザクションに１つの電子署名という形態を保持しつつ、契約の関係者間で合意を取りながら、多人数であっても効率的に契約の証跡をブロックチェーンに残すことができる。
【図面の簡単な説明】
【００１８】
【図１】本実施形態の契約合意の概念を示す概念図である。
【図２】本実施形態の契約合意システムの全体構成図である。
【図３】トランザクションの例を示す図である。
【図４】契約エージェント部の構成を示すブロック図である。
【図５】ブロックチェーンの形成動作を示すフローチャートである。
【図６】契約エージェント部の動作を説明するための図である。
【図７】契約エージェント部の動作の変形例を説明するための図である。
【図８】契約合意の証跡をブロックチェーンに残す動作を示す図である。
【図９】合意検証端末の構成を示すブロック図である。
【発明を実施するための形態】
【００１９】
以下、本発明を実施する一実施の形態について図面を用いて説明する。
【００２０】
本実施形態では、契約合意の証跡として既存のブロックチェーン技術を利用する。具体的には、既存のブロックチェーン技術のプロトコルを活用し、発行するトランザクションの内部にある契約に関する合意の状況を記載することにより実現する。以下の説明は、本発明を用いて、ある関係者間でブロックチェーンを介して契約を交わす際の発明の一形態について示したものであり、ここで関係者とは契約を締結して証跡を残そうとする契約の「発行者」と、当該契約の「合意者」とに分かれているものとする。なお、発行者は１名であるが、合意者は複数名が設定されていてもよい。
【００２１】
図１は、本実施形態における契約の概念を示す図である。図１（ａ）に示すように、最初に、発行者は、契約の合意を要求するためのトランザクションを契約用アドレス宛てに発行する（Ｓ１）。契約用アドレスは、特定の「人」に紐づくアドレスではなく、合意を取りたい契約毎に設定される共用のアドレスである。
【００２２】
契約エージェントは、Ｓ１で発行された契約用アドレス宛てのトランザクションを確認し（Ｓ２）、合意者に通知する（Ｓ３）。合意者は、Ｓ１で発行されたトランザクションに対して合意を示すトランザクションを、契約用アドレス宛てに送信し（Ｓ４）、契約エージェントはＳ４で送信されたトランザクションを取得する。
【００２３】
図１（ｂ）は、図１（ａ）に示す発行者と合意者との契約合意の流れを、多数の合意者（図示する例では、合意者Ａ〜Ｃ）に拡張した場合のイメージ図である。発行者は、契約の合意を要求するためのトランザクションを契約用アドレス宛てに発行するだけで（Ｓ１）、契約エージェントは、当該トランザクションを確認し（Ｓ２）、多数の合意者Ａ〜Ｃの各々に対して通知するとともに（Ｓ３）、多数の合意者Ａ〜Ｃの各々から合意を示すトランザクションを受け取る（Ｓ４）。
【００２４】
すなわち、各合意者は、他の合意者の合意の状態、合意の順序などを考慮することなく、発行者のトランザクションに対して、シンプルに合意を示すトランザクションを送信するため、合意者の数が増えても、処理が複雑化しない。
【００２５】
このように、本実施形態では、発行者および合意者が、共有の契約用アドレス宛てにトランザクションを送信することで、契約エージェントを介して、効率的に契約の証跡をブロックチェーンに残すことができる。
【００２６】
図２は、本実施形態おける契約合意システムの全体構成図である。本実施形態では、契約に関わる関係者の総数を例えば３人とし、契約を締結して契約合意の証跡を残そうとする者を契約の発行者、その要求を受けた者を契約の合意者とする。
【００２７】
図２に示すように、契約合意システムは、契約の発行者が使用する発行者端末１と、２人の合意者Ａ、Ｂがそれぞれ使用する２つの合意者端末３ａ、３ｂとを備える。全ての端末は、ブロックチェーンを共有するＰ２Ｐネットワーク５０（分散型のネットワーク）により自律分散的に接続され、他装置との間で契約を合意する端末である。なお、発行者端末１および合意者端末３ａ、３ｂは、契約合意装置ともいう。
【００２８】
各端末は、ブロックチェーン記憶部１１と、ブロックチェーン制御部１２と、トランザクション生成部１３と、契約エージェント部１４とを備える。
【００２９】
ブロックチェーン記憶部１１には、Ｐ２Ｐネットワーク５０へブロードキャストされたトランザクションが含まれたブロックチェーンが記憶される。ここでは、ブロックチェーンは、合意対象の契約に対する合意の証跡を示すトランザクションを含むブロックが連鎖されているものを指す。
【００３０】
ブロックチェーン制御部１２は、他端末のブロックチェーン制御部と自律分散的に協調して、常に最新のブロックチェーンをブロックチェーン記憶部１１に保持する。また、ブロックチェーン記憶部１１からブロックチェーンを取得し、トランザクション生成部１３などに提供する。
【００３１】
トランザクション生成部１３は、１つ前のトランザクションに対する正当性等が確認された場合、自端末ユーザに関するトランザクションを生成し、Ｐ２Ｐネットワーク５０にブロードキャストする。具体的には、トランザクション生成部１３は、契約用アドレス宛てのトランザクションが検知された場合、契約に合意するか否かの証跡を含む、契約用アドレス宛てのトランザクションを生成し、Ｐ２Ｐネットワーク５０へブロードキャストする。
【００３２】
なお、トランザクション生成部１３は、図示しないデータ保持部を備える。データ保持部は、トランザクションの生成に必要な様々なデータを保持する。各端末は、それぞれ固有のアドレスを持ち、例えば、仮想通貨の仕組みと同様に、電子署名に必要な秘密鍵とペアになる公開鍵のハッシュ値をアドレスとして保持する。また、合意対象の契約（契約書）を識別するための契約データ（例えば、契約書のハッシュ値）を保持する。契約書のハッシュ値を契約データとして用いることで、対象の契約書との照合が可能となる。
【００３３】
図３は、本実施形態のトランザクション（契約用トランザクション）の一例を示す図である。本実施形態のトランザクションは、契約の証跡を残すためのトランザクションである。図示するトランザクションは、送り手の公開鍵、送り手のアドレス、受け手のアドレス（ここでは契約用アドレス）、送り手の電子署名を含む。なお、発行者および合意者は、事前に電子署名用の鍵ペアを生成し、公開鍵を自身が使用する端末に保持し、当該公開鍵のハッシュ値を各人のアドレスとする。
【００３４】
さらに、本実施形態のトランザクションは、合意対象の契約を特定し、かつ、その契約に対する関係者の合意を記録するために、合意対象の契約を特定するための契約データ、および、合意の状態を含む。契約データは、例えば、契約内容そのもののデータの他に、契約書のハッシュ値、暗号化された契約を復号するための鍵など、対象とする契約を特定できればデータの形式は問わない。すなわち、本実施形態で用いるトランザクションは、合意対象の契約データ及び合意対象に関する関係者の合意に関する情報をさらに含み、送り手の電子署名が付与された契約合意の証拠データを指す。これにより、１つのトランザクションに１名の電子署名という形態を保持しつつ、契約に対する当事者の合意の有無を記録することができる。
【００３５】
図４は、契約エージェント部１４の構成を示すブロック図である。契約エージェント部は、ブロックチェーン記憶部１１に記憶されたブロックチェーンに、合意対象の契約に対応する共有の契約用アドレス宛てのトランザクションが含まれるか否かを監視する。また、契約エージェント部１４は、契約用アドレスに宛てのトランザクションを発見した場合、自端末に通知する。
【００３６】
図示する契約エージェント部１４は、契約用アドレス記憶部１４１と、契約確認スクリプト１４２とを備える。
【００３７】
契約用アドレス記憶部１４１には、契約の関係者（発行者および合意者）の間で共用される契約用アドレスが記憶される。契約用アドレスは、特定の人に紐付くアドレスではなく、合意を取りたい契約毎に識別可能なように設定される特殊なアドレスである。契約エージェント部１４は、契約用アドレス記憶部１４１に記憶された契約用アドレス宛てのトランザクションがブロックチェーンに含まれることを検知すると、自端末に通知する。
【００３８】
契約確認スクリプト１４２は、契約用アドレス宛てのトランザクションが正当か否かを判別するためのスクリプト（プログラム）である。具体的には、契約確認スクリプト１４２は、契約の関係者間で事前に定めた手続きで契約書を確認（検証、チェック）するためのスクリプトである。契約確認スクリプト１４２は、契約データを含むトランザクションを入力とした時に、所定の形式で契約データが含まれているか否かを確認する。例えば、契約確認スクリプト１４２は、契約データ（契約書のハッシュ値）の長さ、契約データが正しい形式か否かなどを確認する。
【００３９】
また、契約確認スクリプト１４２は、トランザクションの送り手（発行者）のアドレスが契約確認スクリプト１４２で事前に定められた正しいアドレスか否か、合意者が正しい手続きで合意をしているか否か、送り手の電子署名が正しいか否かなどを確認することとしてもよい。
【００４０】
なお、契約確認スクリプト１４２は、少なくとも関係者間で取得しトランザクションを検証可能なようにネットワーク上に公開されていてもよく、あるいは、ブロックチェーンに含まれていて誰でも取得しトランザクションの正当性を検証可能なように公開されていてもよい。
【００４１】
また、本実施形態では、発行者および合意者が使用する各端末の契約エージェント部１４には、合意対象の契約の契約用アドレス１４１および契約確認スクリプト１４２が、既に取得されているものとする。
【００４２】
以上が契約合意システムの各端末（契約合意端末）１、３a、３ｂが備える機能である。なお、図２には示していないが、ブロックチェーンの系を保つため、仮想通貨の場合と同様に、トランザクションの承認作業を通じてブロックチェーンを連鎖させる承認端末がＰ２Ｐネットワーク５０上に存在している。
【００４３】
次に、契約合意システムの動作について説明する。初めに、ブロックチェーンが形成される動作について説明する。
【００４４】
図５は、送り手がトランザクションを生成し、承認端末がブロックチェーンの承認作業を行う動作を説明している。この動作は、本実施形態のみならず、ブロックチェーンを用いた仮想通貨の取引にも用いられている。
【００４５】
まず、送り手の端末が、送り手のアドレスから受け手のアドレスに宛てることを明記した電子署名付きのトランザクションを生成し（ステップＳ１０１）、Ｐ２Ｐネットワーク上にブロードキャストする（ステップＳ１０２）。
【００４６】
次に、Ｐ２Ｐネットワーク上の承認端末は、そのネットワーク上にブロードキャストされたトランザクションを収集し、ブロックという単位でまとめて承認作業を行う（ステップＳ１０３）。この承認作業について、仮想通貨では、プルーフ・オブ・ワークと呼ばれる複雑なハッシュ計算を行う方法、プルーフ・オブ・ステイクと呼ばれるコイン年数を消費する方法等が提案されている。本実施の形態では、それらの方式によらず、承認作業を行い、ブロックチェーンにトランザクションを組み込む。ここで承認作業とは、送り手の公開鍵を用いて該トランザクションの電子署名を検証すると共にハッシュ値の照合等を行うことにより、一つ前のトランザクションが正当な送り手から渡されたことを検証するなど正当なトランザクションか否かを検証する作業を含む。この検証方法については公知の技術で実施可能であり、例えば非特許文献１に記載されている。以上の方法で、トランザクションはブロックチェーンに含まれた後、全ての端末で同期されることになる。
【００４７】
次に、図６を用いて、契約エージェント部１４の動作を説明する。
【００４８】
図６は、契約エージェント部１４の動作を示す図である。図示すように、契約エージェント部１４は、自端末のブロックチェーン記憶部１１に保持する最新のブロックチェーンに含まれるトランザクションを監視する（Ｓ２０１）。そして、契約エージェント部１４は、契約用アドレス記憶部１４１に記憶された共用の契約用アドレスに宛てたトランザクションを発見した場合、契約用アドレス宛てのトランザクションがブロックチェーンに含まれたことを、自端末を使用する関係者（発行者または合意者）に通知する（Ｓ２０２）。例えば、契約エージェント部１４は、当該端末が備える出力装置（ディスプレイ、スピーカなど）に、所定のメッセージ（テキスト、画像、音声など）を出力することで関係者に通知する。
【００４９】
また、契約エージェント部１４は、契約用アドレスに宛てたトランザクションを発見した場合、契約確認スクリプト１４２を用いて、当該トランザクションが正当か否かを判別し、判別結果も併せて自端末を使用する関係者に通知する（Ｓ２０２）。
【００５０】
関係者は、契約エージェント部１４からの通知（トランザクションの発見および正当性の判別結果）を確認し、また、必要に応じてブロックチェーン記憶部１１に保持された当該トランザクションの内容を取得して確認し、確認結果に応じてトランザクションの生成指示を端末に入力する（Ｓ２０３）。
【００５１】
例えば、関係者が合意者の場合で、トランザクションに含まれる合意の状況が「要求中」であり、トランザクションが正当であると判断された場合、合意者は、合意の証跡を示すトランザクションの生成指示を、トランザクション生成部１３に入力する。トランザクション生成部１３は、トランザクションの生成指示を受け付けて、契約用アドレス宛ての契約の合意の証跡を示すトランザクションを生成する。
【００５２】
一方、関係者が発行者の場合で、トランザクションに含まれる合意の状況が、例えば「非合意」の場合、発行者は、トランザクションの生成指示をトランザクション生成部１３に入力しない。
【００５３】
なお、図６に示す契約エージェント部１４の動作の変形例として、図７に示すように、関係者（人）を介さずに、代わりに契約自動化部１５が、契約の合意の証跡を示すトランザクションの生成指示をトランザクション生成部１３に送出することとしてもよい。トランザクション生成部１３は、契約自動化部１５が送出したトランザクションの生成指示を受け付けて、契約の合意の証跡を示すトランザクションを生成する。
【００５４】
図７は、変形例の契約エージェント部１４の動作を示す図である。図示する変形例では、端末は、契約自動化部１５を備える点において、図２の発行者端末１および合意者端末３ａ、３ｂと異なり、その他について図２の各端末１、３ａ、３ｂと同様である。
【００５５】
契約自動化部１５は、Ｓ２０２Ａにおいて、契約用アドレス宛てのトランザクションがブロックチェーンに含まれたことの通知、および、当該トランザクションの正当性の判別結果の通知を、契約エージェント部１４からのを受け付ける。
【００５６】
契約自動化部１５は、トランザクションが正当であると判別結果の通知を受けた場合、ブロックチェーン記憶部１１から当該トランザクションを取得し、当該トランザクションの内容（例えば、合意の状況、送り手のアドレスなど）を用いて契約の合意の証跡を示すトランザクションを生成するか否かを決定する。そして、契約自動化部１５は、前記トランザクションを生成すると決定した場合は、トランザクションの生成指示をトランザクション生成部１３に送出する（Ｓ２０３Ａ）。
【００５７】
例えば、契約自動化部１５は、トランザクションが正当であって、自端末が合意者端末でトランザクションに含まれる合意の状況が「要求中」の場合、トランザクションの生成指示を、トランザクション生成部１３に送出する。
【００５８】
一方、契約自動化部１５は、トランザクションが正当でない場合、または、トランザクションが正当であるが、トランザクションの内容から契約の合意の証跡を示すトランザクションを生成しないと決定した場合、契約の合意の証跡を示すトランザクションの生成指示を送出しない。なお、図７のＳ２０１は、図６のＳ２０１と同様であるため、ここでは、説明を省略する。
【００５９】
次に、図８を参照しながら、契約合意システムを用いた場合に、ブロックチェーンの各ブロックに含まれるトランザクションの遷移について説明する。
【００６０】
図８は、契約の発行者と、合意者Ａおよび合意者Ｂとの間で契約を締結し、その合意の証跡をブロックチェーンに残す過程を示す。なお、全ての端末は、図５で説明したように、承認端末での承認作業を通じたトランザクションが含まれたブロックチェーン受信し、常に最新のブロックチェーンを保持しているものとする。
【００６１】
また、全ての関係者（発行者、合意者Ａおよび合意者Ｂ）は、合意すべき同一の電子契約書を予め所持しており、当該契約書をハッシュ化したハッシュ値を、契約データとして自端末に事前に保持しておくものとする。契約書のハッシュ化には途中の改ざんを防止する目的と第三者から契約の内容を隠蔽する目的があり、また、トランザクションが示す契約の内容と合意すべき契約書とを照合することができる。
【００６２】
まず、契約を締結したい発行者端末が、契約用アドレス宛ての契約用のトランザクションを生成し、発行する（Ｓ３０１）。このトランザクションは、前述した通り、Ｐ２Ｐネットワーク上にブロードキャストされ、承認端末によりブロックにまとめられ、ブロックチェーンに追加され、他端末との間で同期される。また、この処理は、トランザクションがブロードキャストされる毎に行われる。以降、その説明は省略する。
【００６３】
発行者端末が発行したトランザクションは、図８ではブロック＃１０１として、ブロックチェーンに追加される。図示するブロック＃１０１のトランザクションには、送信元（送り手）のアドレスには発行者端末のアドレスが、宛先（受け手）のアドレスには契約用アドレスが、契約データには契約書のハッシュ値が、合意の状態には要求中が設定されている。なお、合意の状態は、各状態に対応するブール値または特定の値などで設定することとしてもよい。
【００６４】
合意者Ａ端末のブロックチェーン制御部１２は、ブロック＃１０１のトランザクションが追加されたブロックチェーンを、自端末のブロックチェーン記憶部１１に同期する。また、合意者Ａ端末の契約エージェント部１４は、ブロックチェーン記憶部１１の同期されたブロックチェーンを監視している（Ｓ３０２）。
【００６５】
合意者Ａ端末の契約エージェント部１４は、契約用アドレス宛のトランザクションが当該ブロックチェーンに含まれていることを検知すると、当該トランザクションの正当性を判別し、判別結果とともにトランザクションを発見したことを、合意者Ａまたは自端末内の契約自動化部１５に通知する（図６、図７参照）。
【００６６】
合意者Ａまたは契約自動化部１５は、最新のブロックチェーンから契約用アドレス宛のトランザクション（ブロック＃１０１）を取り出し、当該トランザクションの内容に応じて、合意の証跡を含めたトランザクションの生成指示を、トランザクション生成部１３に送出する。トランザクション生成部１３は、生成指示を受け付けると、合意の証跡を含めたトランザクションを生成し、ブロードキャストする（Ｓ３０３）。具体的には、トランザクション生成部１３は、契約に合意をした証明として契約データ及び合意の状態を含めて、契約用アドレス宛てのトランザクションを生成する。
【００６７】
なお、合意者Ａ端末が発行したトランザクションは、図８ではブロック＃１０２として、ブロックチェーンに追加される。図示するブロック＃１０２のトランザクションには、送信元アドレスには合意者Ａ端末のアドレスが、宛先には契約用アドレスが、契約データには契約書のハッシュ値が、合意の状態には合意が設定されている。
【００６８】
合意者Ｂ端末についても、合意者Ａ端末と同様に、ブロックチェーンを監視し、トランザクションを生成し、ブロードキャストする（Ｓ３０４、Ｓ３０５）。なお、合意者Ｂ端末が発行したトランザクションは、図８ではブロック＃１０３として、ブロックチェーンに追加される。
【００６９】
また、発行者端末の契約エージェント部１４も、合意者Ａ端末および合意者Ｂ端末と同様に、ブロックチェーン記憶部１１の同期されたブロックチェーンを監視している（Ｓ３０６）。したがって、発行者端末の契約エージェント部１４は、契約用アドレス宛のトランザクション（ここでは、ブロック＃１０２、＃１０３）がブロックチェーンに含まれていることを検知すると、当該トランザクションの正当性を判別し、判別結果とともにトランザクションを発見したことを、発行者または自端末内の契約自動化部１５に通知する。
【００７０】
これにより、発行者は、ブロックチェーン記憶部１１から通知されたトランザクションを取得することで、合意者Ａおよび合意者Ｂの合意の状態を把握することができる。また、発行者または契約自動化部１５は、各合意者の合意の状態に応じたトランザクションの生成をトランザクション生成部１３に指示することもできる。
【００７１】
以上説明した処理により、発行者のトランザクション（ブロック＃１０１）と、当該トランザクションに応じた合意者Ａと合意者Ｂの合意の証跡（ブロック＃１０２、ブロック＃１０３）を、ブロックチェーンに記録することが可能になる。
【００７２】
最後に、合意検証端末（合意検証装置）について説明する。ブロックチェーン上に残された契約合意の証跡は、そのブロックチェーンの系が存在する限りＰ２Ｐネットワーク上の任意の端末又は装置から容易に検証することが可能である。また、検証後に、自動実行プログラムと連携して、契約合意に応じて自動でトランザクション（例えば資金移動など）を発行することも可能である。そこで、合意の検証を行うために用いる合意検証端末について説明する。
【００７３】
図９は、２つの種類の合意検証端末８、９の構成を示している。第１の合意検証端末８は、検証者の指示により合意検証を行う場合の端末である。検証者は、契約の発行者、契約の合意者、または、第３者であってもよい。検証者が発行者または合意者の場合、図２に示す契約合意端末（発行者端末、合意者端末）が、第１の合意検証端末８の機能を備えることとしてもよい。
【００７４】
第１の合意検証端末８は、ブロックチェーン記憶部８１と、ブロックチェーン制御部８２と、データ保持部８３と、合意検証部８４とを備える。
【００７５】
ブロックチェーン記憶部８１およびブロックチェーン制御部８２は、図２で説明したブロックチェーン記憶部１１と、ブロックチェーン制御部１２と同様である。すなわち、  ブロックチェーン制御部１２は、Ｐ２Ｐネットワーク５０へブロードキャストされたトランザクションが含まれたブロックチェーンを、ブロックチェーン記憶部８１に記憶する。
【００７６】
合意検証部８４は、検証対象の契約に対応する共有の契約用アドレス宛てのトランザクションをブロックチェーン記憶部８１から取り出し、取り出したトランザクションに設定された、契約に対する合意の証跡に基づいて、契約への合意が要求される各合意者の合意を検証する。具体的には、合意検証部８４は、検証者の指示を受け付けると、データ保持部８３に保持されたデータを用いて、ブロックチェーン制御部８２を介して、ブロックチェーン記憶部８１から、検証対象の契約に関するトランザクションを取り出す。
【００７７】
データ保持部８３には、検証対象の契約を特定するためのデータ（例えば、契約用アドレス、契約データ（契約書のハッシュ値）など）が保持されている。合意検証部８４は、契約用アドレス、契約データ、または、契約用アドレスおよび契約データの両方を用いて、検証対象の契約に関するトランザクションを取り出す。
【００７８】
なお、ブロックチェーンの種類によっては、探索の効率化のためにトランザクションの内容をブロックチェーン内の別のデータ領域に転載して保持する場合がある。この場合、合意検証部８４は、トランザクション本体ではなく、トランザクションから転載されたデータを取り出すこととしてもよい。
【００７９】
合意検証部８４は、発行者が発行した契約合意を要求するトランザクションに対して、合意者が合意または非合意を示したトランザクションを発行していることを検証し、検証結果を検証者に提示する。具体的には、合意検証部８４は、図８に示すブロックチェーンの場合、ブロック＃１０１〜＃１０３のトランザクションを取り出し、そのうち送信元が合意者Ａ、Ｂの＃１０２、＃１０３の各トランザクションの合意の状態を、検証結果として提示する。この場合、合意検証部８４は、「合意者Ａ：合意（true）、合意者Ｂ：合意（true）」をディスプレイなどの出力装置に出力し、検証者に提示する。
【００８０】
なお、合意検証部８４は、全ての合意者（例えば、合意者Ａ、Ｂ）の検証結果を提示してもよく、あるいは、特定の合意者（例えば、検証者が指示した合意者Ａ）の検証結果のみを提示してもよい。
【００８１】
続いて、第１の合意検証端末８の動作について説明する。
【００８２】
まず、合意検証部８４は、検証者から検証指示を受け付けると（Ｓ４０１）、検証対象の契約の契約用アドレスまたは契約データをデータ保持部８３から取得し、該当するトランザクションを、ブロックチェーン制御部８２を介してブロックチェーン記憶部８１から取り出す（Ｓ４０２）。
【００８３】
そして、合意検証部８４は、取り出したトランザクションに設定された、契約に対する合意の状態（合意の証跡）に基づいて、契約への合意が要求される各合意者の合意を検証し（Ｓ４０３）、検証結果を表示する（Ｓ４０４）。すなわち、各合意者の合意の状態（合意、非合意）を表示する。
【００８４】
次に、第２の合意検証端末９について説明する。
【００８５】
第２の合意検証端末９は、検証者（人）を介さずに、合意検証部９５が執行自動化部９６と連携して自動で所定のトランザクションを生成する端末である。第２の合意検証端末９によれば、例えば、発行者と合意者Ａとの間で契約が締結したことを検知すると、自動で資金移動のトランザクションをブロックチェーンネットワークに送信し支払を執行する、といった利用方法が可能になる。なお、第２の合意検証端末９を使用する検証者は、契約の発行者、契約の合意者、または、第３者であってもよい。検証者が発行者または合意者の場合、図２に示す契約合意端末（発行者端末、合意者端末）が、第２の合意検証端末９の機能を備えることとしてもよい。
【００８６】
第２の合意検証端末９は、ブロックチェーン記憶部９１と、ブロックチェーン制御部９２と、トランザクション生成部９３と、契約エージェント部９４と、合意検証部９５と、執行自動化部９６とを備える。ブロックチェーン記憶部９１と、ブロックチェーン制御部９２と、トランザクション生成部９３とは、図２に示すブロックチェーン記憶部１１と、ブロックチェーン制御部１２、トランザクション生成部１３と同様である。
【００８７】
契約エージェント部９４は、図４に示す契約エージェント部１４と同様であって、ブロックチェーン記憶部９１の最新のブロックチェーンを監視し、契約用アドレス記憶部に記憶された契約用アドレス宛のトランザクションを検知した場合、合意の検証を合意検証部９５に指示する。
【００８８】
合意検証部９５は、第１の合意検証端末８の合意検証部８４と同様に、ブロックチェーンから該当の契約に関するトランザクションを取り出し、合意の検証を実施する。そして、合意検証部９５は、検証結果を執行自動化部９６に通知する。
【００８９】
執行自動化部９６は、検証結果に応じたトランザクションの生成を指示する。例えば、検証結果が「合意者Ａ：合意（true）、合意者Ｂ：非合意（false）、合意者Ｃ：合意（true）」の場合、執行自動化部９６は、合意の状態の合意者Ａおよび合意者Ｃのみに、例えば著作権を譲渡するトランザクションを発行する指示を、トランザクション生成部９３に送出する。トランザクション生成部９３は、執行自動化部９６の指示に従って、トランザクションを生成し、Ｐ２Ｐネットワークへブロードキャストする。
【００９０】
続いて、第２の合意検証端末９の動作について説明する。
【００９１】
契約エージェント部９４は、ブロックチェーン記憶部９１の最新のブロックチェーンを監視し（Ｓ５０１）、検証対象の契約用アドレス宛のトランザクションを検知した場合、合意の検証を合意検証部９５に指示する（Ｓ５０２）。
【００９２】
合意検証部９５は、契約エージェント部９４から検証指示を受け付けて、検証対象の契約の契約用アドレスのトランザクションを、ブロックチェーン制御部９２を介してブロックチェーン記憶部９１から取り出す（Ｓ５０３）。
【００９３】
そして、合意検証部９５は、取り出したトランザクションに設定された、契約に対する合意の状態（合意の証跡）に基づいて、契約への合意が要求される複数の合意者の合意を検証し（Ｓ５０４）、検証結果を執行自動化部９６に送出する（Ｓ５０５）。
【００９４】
執行自動化部９６は、検証結果に応じたトランザクションの生成を、トランザクション生成部９３に指示する（Ｓ５０６）。トランザクション生成部９３は、執行自動化部９６の指示に従って、トランザクションを生成し、Ｐ２Ｐネットワークへブロードキャストする（Ｓ５０７）。
【００９５】
これにより、第２の合意検証端末９では、合意がなされている合意者に対して、自動で新たにトランザクションを生成することができる。トランザクションの内容は、契約に関して執行させたい動作の内容による。例えば資金移動のトランザクションなどがある。
【００９６】
以上、本実施形態では、契約の関係者の間で共用の契約用アドレスを用いる。そして、契約エージェント部が、契約用アドレスに宛てたトランザクションがブロックチェーンに含まれた場合、契約確認スクリプトに従ってトランザクションに内包される契約データ（契約書のハッシュ値）を確認し、確認結果を契約の合意者（または、契約自動化部）に通知する。契約の合意者（または、契約自動化部）は、確認結果に従って、合意を示す契約用アドレス宛てのトランザクションの生成を指示する。合意を示すトランザクションがブロックチェーンに組み込まれると、上記と同様に発行者端末の契約エージェントがこれを検知し、発行者に通知する。
【００９７】
これにより、本実施形態では、発行者と合意者との共用の契約用アドレスに紐づく契約エージェントを介し、煩雑な手続きなしに二者間以上の契約の証跡をブロックチェーン上に効率的に記録することができるとともに、発行者と合意者はお互いの契約の証跡がブロックチェーンに含まれたことを知ることができる。また、契約用アドレスに宛てたトランザクションを参照することで、容易に合意の証跡を確認することができる。
【００９８】
すなわち、本実施形態では、煩雑な手続きを行うことなく、より簡易な方法で二者間以上の契約合意の証跡をブロックチェーン上に記録することができる。また、本実施形態では、中央集権的な仕組みを用いることなく、自律分散的なネットワーク上に契約の合意証跡を保持するので、一部の装置で合意の証跡が失われたとしても、該当するブロックチェーンの系が存在する限りは証跡を永久的に保持することができる。
【００９９】
なお、本発明は上記実施形態に限定されるものではなく、その要旨の範囲内で数々の変形が可能である。例えば、上記実施形態では、Ｐ２Ｐネットワークを例に説明したが、必ずしも文字通りの純粋なピアツーピアで構成されるネットワークを用いる必要はない。最近のビットコインでは例えばハブとなるようなノードも存在しており、広くはブロックチェーンを共有する分散型のネットワークであればよい。
【０１００】
最後に、本実施形態で説明した、発行者端末１、合意者端末３ａ、３ｂおよび合意検証端末８、９は、例えば、ＣＰＵと、メモリと、ハードディスク等の外部記憶装置と、入力装置と、出力装置とを備えた汎用的なコンピュータシステムを用いることができる。このコンピュータシステムにおいて、ＣＰＵがメモリ上にロードされた所定のプログラムを実行することにより、各装置の各機能が実現される。例えば、発行者端末１、合意者端末３ａ、３ｂおよび合意検証端末８、９の各機能は、発行者端末１用のプログラムの場合は発行者端末１のＣＰＵが、合意者端末３ａ、３ｂ用のプログラムの場合は合意者端末３ａ、３ｂのＣＰＵが、そして、合意検証端末８、９用のプログラムの場合は合意検証端末８、９のＣＰＵがそれぞれ実行することにより実現される。また、発行者端末１、合意者端末３ａ、３ｂおよび合意検証端末８、９のプログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ−ＲＯＭなどのコンピュータ読取り可能な記録媒体に記憶することも、ネットワークを介して配信することもできる。
【符号の説明】
【０１０１】
１…発行者端末
３ａ，３ｂ…合意者端末
１１…ブロックチェーン記憶部
１２…ブロックチェーン制御部
１３…トランザクション生成部
１４…契約エージェント部
１４１…契約用アドレス記憶部
１４２…契約確認スクリプト
１５…契約自動化部
８，９…合意検証端末
８１,９１…ブロックチェーン記憶部
８２,９２…ブロックチェーン制御部
８３…データ保持部
８４，９５…合意検証部
９４…契約エージェント部
９６…執行自動化部
５０…Ｐ２Ｐネットワーク
【図１】
0006511017.tif 000002
【図２】
0006511017.tif 000003
【図３】
0006511017.tif 000004
【図４】
0006511017.tif 000005
【図５】
0006511017.tif 000006
【図６】
0006511017.tif 000007
【図７】
0006511017.tif 000008
【図８】
0006511017.tif 000009
【図９】
0006511017.tif 000010