(57)【要約】１つのトランザクションに１つの電子署名という形態を保持しつつ、関係者間で合意を取りながら簡易な方法で契約の証跡をブロックチェーンに残す。また、１つのトランザクションに１つの電子署名という形態を保持しつつ、関係者間で合意を取りながら簡易な方法で契約の証跡をブロックチェーンに信頼性を保持しながら残す。契約合意に関わる発行者側端末１、合意者側端末３ａ及び合意者側端末３ｂの各トランザクションを連鎖させ、最後の合意者側端末３ｂは、契約発行元の発行者側端末１に宛ててトランザクションを生成する。また、それら各端末は、契約書を暗号化するための鍵ペアを予め生成してその暗号化鍵をトランザクションの送り手の端末に送付しておき、その送り手の端末は、自端末ユーザのトランザクションに含める契約書を該受け手の暗号化鍵を用いて暗号化する。
2017010455.tif 000002
【特許請求の範囲】
【請求項１】
ブロックチェーンを共有する分散型のネットワークに接続された複数の装置間で行う契約合意方法において、
前記複数の装置は、それぞれ、
合意対象の契約書に対する合意性の証跡を示すトランザクションがブロックとして連鎖されるブロックチェーンを記憶部に記憶するステップと、
前記ブロックチェーンに最後に連鎖された前ユーザのトランザクションが自装置宛ての場合、当該トランザクションに含まれる契約書の識別子と前記合意対象の契約書の識別子とを比較するステップと、
前記トランザクションに含まれる契約書の識別子と前記合意対象の契約書の識別子とが一致する場合、少なくとも、前記契約書に対する自装置ユーザの合意又は非合意の証と、前記自装置ユーザの電子署名と、前記合意対象の契約書の識別子と、を含む他装置宛てのトランザクションを生成し、前記ネットワークへブロードキャストするステップと、
前記生成されたトランザクションが前記前ユーザのトランザクションに連鎖されたブロックチェーンで前記記憶部のブロックチェーンを更新するステップと、を備え、
前記複数の装置は、前記契約書の契約に関わるユーザのトランザクションを連鎖させ、前記連鎖を行う最後の装置は、前記契約書を発行した発行者の装置に宛ててトランザクションを生成することを特徴とする契約合意方法。
【請求項２】
前記複数の装置は、それぞれ、
前記契約書の暗号鍵及び復号鍵を生成するステップと、
前記ブロックチェーンに最後に連鎖された前ユーザのトランザクションが自装置宛ての場合、当該トランザクションに含まれる契約書を自装置の前記復号鍵で復号化するステップと、
前記復号化された契約書と前記合意対象の契約書とが一致する場合、他装置の暗号鍵を用いて前記合意対象の契約書を暗号化するステップと、を更に備え、
前記ブロードキャストするステップでは、
少なくとも、前記契約書に対する自装置ユーザの合意又は非合意の証と、前記自装置ユーザの電子署名と、前記暗号化された契約書と、を含む前記他装置宛てのトランザクションを生成し、前記ネットワークへブロードキャストすることを特徴とする請求項１に記載の契約合意方法。
【請求項３】
前記発行者の装置は、
自装置の復号鍵で復号化した契約書と前記合意対象の契約書とが一致するか否かに基づき、契約すべき契約書の同一性を照合することを特徴とする請求項２に記載の契約合意方法。
【請求項４】
前記発行者の装置は、
前記契約書に対する合意性の証跡が取れた証明として、第三者の装置に宛ててトランザクションを生成することを特徴とする請求項１乃至３のいずれかに記載の契約合意方法。
【請求項５】
前記ネットワークは、
Ｐ２Ｐネットワークであることを特徴とする請求項１乃至４のいずれかに記載の契約合意方法。
【請求項６】
請求項１乃至５のいずれかに記載された契約合意方法で行われた契約の合意を合意検証装置で検証する合意検証方法において、
前記合意検証装置は、
連鎖の起点となるトランザクションに含まれる電子署名用の公開鍵と連鎖の終点となるトランザクションを受け取る装置のユーザの電子署名用の公開鍵とが一致するか否かに基づき、契約合意の証跡の有無を判定するステップ、
を備えることを特徴とする合意検証方法。
【請求項７】
ブロックチェーンを共有する分散型のネットワークに接続された複数の装置を備えた契約合意システムにおいて、
前記複数の装置は、それぞれ、
合意対象の契約書に対する合意性の証跡を示すトランザクションがブロックとして連鎖されるブロックチェーンを記憶する記憶部と、
前記ブロックチェーンに最後に連鎖された前ユーザのトランザクションが自装置宛ての場合、当該トランザクションに含まれる契約書の識別子と前記合意対象の契約書の識別子とを比較する照合部と、
前記トランザクションに含まれる契約書の識別子と前記合意対象の契約書の識別子とが一致する場合、少なくとも、前記契約書に対する自装置ユーザの合意又は非合意の証と、前記自装置ユーザの電子署名と、前記合意対象の契約書の識別子と、を含む他装置宛てのトランザクションを生成し、前記ネットワークへブロードキャストする生成部と、
前記生成されたトランザクションが前記前ユーザのトランザクションに連鎖されたブロックチェーンで前記記憶部のブロックチェーンを更新する制御部と、を備え、
前記複数の装置は、前記契約書の契約に関わるユーザのトランザクションを連鎖させ、前記連鎖を行う最後の装置は、前記契約書を発行した発行者の装置に宛ててトランザクションを生成することを特徴とする契約合意システム。
【請求項８】
前記複数の装置は、それぞれ、
前記契約書の暗号鍵及び復号鍵を生成する生成部と、
前記ブロックチェーンに最後に連鎖された前ユーザのトランザクションが自装置宛ての場合、当該トランザクションに含まれる契約書を自装置の前記復号鍵で復号化する復号化部と、
前記復号化された契約書と前記合意対象の契約書とが一致する場合、他装置の暗号鍵を用いて前記合意対象の契約書を暗号化する暗号化部と、を更に備え、
前記ブロードキャストする生成部は、
少なくとも、前記契約書に対する自装置ユーザの合意又は非合意の証と、前記自装置ユーザの電子署名と、前記暗号化された契約書と、を含む前記他装置宛てのトランザクションを生成し、前記ネットワークへブロードキャストすることを特徴とする請求項７に記載の契約合意システム。
【請求項９】
前記発行者の装置は、
自装置の復号鍵で復号化した契約書と前記合意対象の契約書とが一致するか否かに基づき、契約すべき契約書の同一性を照合することを特徴とする請求項８に記載の契約合意システム。
【請求項１０】
前記発行者の装置は、
前記契約書に対する合意性の証跡が取れた証明として、第三者の装置に宛ててトランザクションを生成することを特徴とする請求項７乃至９のいずれかに記載の契約合意システム。
【請求項１１】
前記ネットワークは、
Ｐ２Ｐネットワークであることを特徴とする請求項７乃至１０のいずれかに記載の契約合意システム。
【請求項１２】
請求項７乃至１１のいずれかに記載された契約合意システムで行われた契約の合意を検証する合意検証装置において、
連鎖の起点となるトランザクションに含まれる電子署名用の公開鍵と連鎖の終点となるトランザクションを受け取る装置のユーザの電子署名用の公開鍵とが一致するか否かに基づき、契約合意の証跡の有無を判定する検証部、
を備えることを特徴とする合意検証装置。
【請求項１３】
ブロックチェーンを共有する分散型のネットワークに接続された契約合意装置において、
合意対象の契約書に対する合意性の証跡を示すトランザクションがブロックとして連鎖されるブロックチェーンを記憶する記憶部と、
前記ブロックチェーンに最後に連鎖された前ユーザのトランザクションが自装置宛ての場合、当該トランザクションに含まれる契約書の識別子と前記合意対象の契約書の識別子とを比較する照合部と、
前記トランザクションに含まれる契約書の識別子と前記合意対象の契約書の識別子とが一致する場合、少なくとも、前記契約書に対する自装置ユーザの合意又は非合意の証と、前記自装置ユーザの電子署名と、前記合意対象の契約書の識別子と、を含む他契約合意装置宛てのトランザクションを生成し、前記ネットワークへブロードキャストする生成部と、
前記生成されたトランザクションが前記前ユーザのトランザクションに連鎖されたブロックチェーンで前記記憶部のブロックチェーンを更新する制御部と、
を備えることを特徴とする契約合意装置。
【請求項１４】
前記契約書の暗号鍵及び復号鍵を生成する生成部と、
前記ブロックチェーンに最後に連鎖された前ユーザのトランザクションが自装置宛ての場合、当該トランザクションに含まれる契約書を自装置の前記復号鍵で復号化する復号化部と、
前記復号化された契約書と前記合意対象の契約書とが一致する場合、他契約合意装置の暗号鍵を用いて前記合意対象の契約書を暗号化する暗号化部と、を更に備え、
前記ブロードキャストする生成部は、
少なくとも、前記契約書に対する自装置ユーザの合意又は非合意の証と、前記自装置ユーザの電子署名と、前記暗号化された契約書と、を含む前記他契約合意装置宛てのトランザクションを生成し、前記ネットワークへブロードキャストすることを特徴とする請求項１３に記載の契約合意装置。
【請求項１５】
請求項１３又は１４に記載された契約合意装置で行われた契約の合意を検証する合意検証装置において、
連鎖の起点となるトランザクションに含まれる電子署名用の公開鍵と連鎖の終点となるトランザクションを受け取る装置のユーザの電子署名用の公開鍵とが一致するか否かに基づき、契約合意の証跡の有無を判定する検証部、
を備えることを特徴とする合意検証装置。
【請求項１６】
請求項１乃至５のいずれかに記載の契約合意方法をコンピュータに実行させることを特徴とする契約合意プログラム。
【請求項１７】
請求項６に記載の合意検証方法をコンピュータに実行させることを特徴とする合意検証プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ブロックチェーンの仕組みを用いて契約を合意する方法に関する。特に、本発明は、関係者間で合意した契約の証跡を残す技術に関する。
【背景技術】
【０００２】
情報の発信元を保証するための技術として電子署名がある。電子署名を実現するための仕組みとして、現在最も普及しているのは公開鍵暗号方式に基づくものである。また、電子署名された情報において、用いられた電子鍵が確かに情報発信者のものであることを示すためには、通常、信頼できる第三者機関を利用することになる。信頼できる第三者機関が中央集権的な管理を行うことにより、個人と利用する鍵の情報が紐づけられることで信頼性が担保される。【０００３】
一方で、上記の様に中央集権的な管理を必要とせずに、信頼性を担保可能な仕組みがデジタル仮想通貨を中心に普及しつつある。ブロックチェーンと呼ばれるこの仕組みでは、やり取りされる情報の信頼性を参加者全体で形成されるネットワーク内での合意形成のプロセスによって担保し、かつ、改ざんや二重使用等の不正を系全体で防ぐことにより、健全性を保持している（非特許文献１）。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】斉藤、“ビットコイン−人間不在のデジタル巨石貨幣”、WIDE Technical-Report in 2013、WIDE Project、2013年12月31日
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ブロックチェーンは、参加者間の仮想通貨の取引情報がトランザクションとしてブロックという１つの単位でまとめられ、Ｐ２Ｐ（Peer to Peer）ネットワークにて参加者全員に共有される一つの巨大な元帳として機能する。例えば、「ＡさんはＢさんに３枚のコインを渡した。」というトランザクションが全員で共有される。このブロックチェーンを参加者全ての取引の内容を記録した一つの元帳と捉えると、通貨以外の様々な取引に応用することができる。【０００６】
そこで、本発明では、そのブロックチェーンを複数者間で契約書を交わす際の証跡として応用する。契約書とは、売買契約、譲渡証、申込書、許諾書等を指し、二者間以上の個人又は機関で交わされる契約の内容を示した文書である。その際、二者間以上での合意形成がどのように行われたのかを証跡として残しておくことは、権利を主張する際の公的な証明となる。【０００７】
ここで、前述した仮想通貨の場合、１つのトランザクションには、例えば、一つ前のトランザクションのハッシュ値、送金元のアドレス、送金先のアドレス、支払い額及び送金元の電子署名が含められており、それらによってブロックチェーンを共有する全ての参加者は取引の内容を公的に確認することができる。それゆえ、これを契約合意の証跡に応用するため、契約に関する情報をトランザクションに追加しておくことで同様の効果が期待される。なお、前述のアドレスとは、例えば、ブロックチェーン技術において電子署名用の公開鍵のハッシュ値を指す。【０００８】
しかし、仮想通貨としてのブロックチェーンを契約合意の証跡に応用する場合、契約内容が二者間以上で合意されたことをどのように証明するかといった点が課題となる。仮想通貨のブロックチェーンに採用されている電子署名方式は、前述の通り送金元の電子署名のみによって成り立っており、送金先の電子署名は必要とされていない。一方、二者間以上において契約書を交わす場合、一方的な契約の発行では契約は成り立たず、必ず契約当事者である全ての関係者の合意が必要となる。しかし、ブロックチェーンを形成する１つのトランザクションには送り手の電子署名しか含まれていないため、受け手による契約合意の証跡は該トランザクションに残らないことになる。【０００９】
その課題に対する単純な解決方法として、例えば、全ての関係者の電子署名を１つのトランザクションに含める方法が考えられる。仮想通貨にはマルチシグネチャという仕組みが採用されており、一定数以上の電子署名がなければトランザクションが承認されないアドレスを作成することができる。しかし、事前にどの電子署名を必要とするのか、承認前のトランザクションを関係者間でどのように共有するのか、複数の秘密鍵をどこに集めて署名を行うのか等、１つのトランザクションに複数の電子署名を含める手続きは煩雑である。【００１０】
また、契約に関する情報をトランザクションに追加した場合、その契約の内容が第三者に読み取られるという課題もある。これは、トランザクションに含まれる契約取引の内容が公開されており、関係者以外にも容易に読み取られる状況にあるからである。【００１１】
その２つめの課題に対する単純な解決方法として、例えば、契約内容を共通鍵で暗号化することも考えられる。しかし、関係者数が増えるほど共通鍵の受け渡しによる鍵の流出リスクは高まることになる。つまり、ブロックチェーン上に保持された契約情報のセキュリティを高めつつ関係者だけが読み取れる仕組みを構築することは容易ではない。【００１２】
本発明は、上記事情を鑑みてなされたものであり、１つのトランザクションに１つの電子署名という形態を保持しつつ、関係者間で合意を取りながら簡易な方法で契約の証跡をブロックチェーンに残すことを第１の目的とする。また、１つのトランザクションに１つの電子署名という形態を保持しつつ、関係者間で合意を取りながら簡易な方法で契約の証跡をブロックチェーンに信頼性を保持しながら残すことを第２の目的とする。
【課題を解決するための手段】
【００１３】
以上の課題を解決するため、請求項１に記載の契約合意方法は、ブロックチェーンを共有する分散型のネットワークに接続された複数の装置間で行う契約合意方法において、前記複数の装置は、それぞれ、合意対象の契約書に対する合意性の証跡を示すトランザクションがブロックとして連鎖されるブロックチェーンを記憶部に記憶するステップと、前記ブロックチェーンに最後に連鎖された前ユーザのトランザクションが自装置宛ての場合、当該トランザクションに含まれる契約書の識別子と前記合意対象の契約書の識別子とを比較するステップと、前記トランザクションに含まれる契約書の識別子と前記合意対象の契約書の識別子とが一致する場合、少なくとも、前記契約書に対する自装置ユーザの合意又は非合意の証と、前記自装置ユーザの電子署名と、前記合意対象の契約書の識別子と、を含む他装置宛てのトランザクションを生成し、前記ネットワークへブロードキャストするステップと、前記生成されたトランザクションが前記前ユーザのトランザクションに連鎖されたブロックチェーンで前記記憶部のブロックチェーンを更新するステップと、を備え、前記複数の装置は、前記契約書の契約に関わるユーザのトランザクションを連鎖させ、前記連鎖を行う最後の装置は、前記契約書を発行した発行者の装置に宛ててトランザクションを生成することを要旨とする。【００１４】
請求項２に記載の契約合意方法は、請求項１に記載の契約合意方法において、前記複数の装置は、それぞれ、前記契約書の暗号鍵及び復号鍵を生成するステップと、前記ブロックチェーンに最後に連鎖された前ユーザのトランザクションが自装置宛ての場合、当該トランザクションに含まれる契約書を自装置の前記復号鍵で復号化するステップと、前記復号化された契約書と前記合意対象の契約書とが一致する場合、他装置の暗号鍵を用いて前記合意対象の契約書を暗号化するステップと、を更に備え、前記ブロードキャストするステップでは、少なくとも、前記契約書に対する自装置ユーザの合意又は非合意の証と、前記自装置ユーザの電子署名と、前記暗号化された契約書と、を含む前記他装置宛てのトランザクションを生成し、前記ネットワークへブロードキャストすることを要旨とする。【００１５】
請求項３に記載の契約合意方法は、請求項２に記載の契約合意方法において、前記発行者の装置は、自装置の復号鍵で復号化した契約書と前記合意対象の契約書とが一致するか否かに基づき、契約すべき契約書の同一性を照合することを要旨とする。【００１６】
請求項４に記載の契約合意方法は、請求項１乃至３のいずれかに記載の契約合意方法において、前記発行者の装置は、前記契約書に対する合意性の証跡が取れた証明として、第三者の装置に宛ててトランザクションを生成することを要旨とする。【００１７】
請求項５に記載の契約合意方法は、請求項１乃至４のいずれかに記載の契約合意方法において、前記ネットワークは、Ｐ２Ｐネットワークであることを要旨とする。【００１８】
請求項６に記載の合意検証方法は、請求項１乃至５のいずれかに記載された契約合意方法で行われた契約の合意を合意検証装置で検証する合意検証方法において、前記合意検証装置は、連鎖の起点となるトランザクションに含まれる電子署名用の公開鍵と連鎖の終点となるトランザクションを受け取る装置のユーザの電子署名用の公開鍵とが一致するか否かに基づき、契約合意の証跡の有無を判定するステップ、を備えることを要旨とする。【００１９】
請求項７に記載の契約合意システムは、ブロックチェーンを共有する分散型のネットワークに接続された複数の装置を備えた契約合意システムにおいて、前記複数の装置は、それぞれ、合意対象の契約書に対する合意性の証跡を示すトランザクションがブロックとして連鎖されるブロックチェーンを記憶する記憶部と、前記ブロックチェーンに最後に連鎖された前ユーザのトランザクションが自装置宛ての場合、当該トランザクションに含まれる契約書の識別子と前記合意対象の契約書の識別子とを比較する照合部と、前記トランザクションに含まれる契約書の識別子と前記合意対象の契約書の識別子とが一致する場合、少なくとも、前記契約書に対する自装置ユーザの合意又は非合意の証と、前記自装置ユーザの電子署名と、前記合意対象の契約書の識別子と、を含む他装置宛てのトランザクションを生成し、前記ネットワークへブロードキャストする生成部と、前記生成されたトランザクションが前記前ユーザのトランザクションに連鎖されたブロックチェーンで前記記憶部のブロックチェーンを更新する制御部と、を備え、前記複数の装置は、前記契約書の契約に関わるユーザのトランザクションを連鎖させ、前記連鎖を行う最後の装置は、前記契約書を発行した発行者の装置に宛ててトランザクションを生成することを要旨とする。【００２０】
請求項８に記載の契約合意システムは、請求項７に記載の契約合意システムにおいて、前記複数の装置は、それぞれ、前記契約書の暗号鍵及び復号鍵を生成する生成部と、前記ブロックチェーンに最後に連鎖された前ユーザのトランザクションが自装置宛ての場合、当該トランザクションに含まれる契約書を自装置の前記復号鍵で復号化する復号化部と、前記復号化された契約書と前記合意対象の契約書とが一致する場合、他装置の暗号鍵を用いて前記合意対象の契約書を暗号化する暗号化部と、を更に備え、前記ブロードキャストする生成部は、少なくとも、前記契約書に対する自装置ユーザの合意又は非合意の証と、前記自装置ユーザの電子署名と、前記暗号化された契約書と、を含む前記他装置宛てのトランザクションを生成し、前記ネットワークへブロードキャストすることを要旨とする。【００２１】
請求項９に記載の契約合意システムは、請求項８に記載の契約合意システムにおいて、前記発行者の装置は、自装置の復号鍵で復号化した契約書と前記合意対象の契約書とが一致するか否かに基づき、契約すべき契約書の同一性を照合することを要旨とする。【００２２】
請求項１０に記載の契約合意システムは、請求項７乃至９のいずれかに記載の契約合意システムにおいて、前記発行者の装置は、前記契約書に対する合意性の証跡が取れた証明として、第三者の装置に宛ててトランザクションを生成することを要旨とする。【００２３】
請求項１１に記載の契約合意システムは、請求項７乃至１０のいずれかに記載の契約合意システムにおいて、前記ネットワークは、Ｐ２Ｐネットワークであることを要旨とする。【００２４】
請求項１２に記載の合意検証装置は、請求項７乃至１１のいずれかに記載された契約合意システムで行われた契約の合意を検証する合意検証装置において、連鎖の起点となるトランザクションに含まれる電子署名用の公開鍵と連鎖の終点となるトランザクションを受け取る装置のユーザの電子署名用の公開鍵とが一致するか否かに基づき、契約合意の証跡の有無を判定する検証部、を備えることを要旨とする。【００２５】
請求項１３に記載の契約合意装置は、ブロックチェーンを共有する分散型のネットワークに接続された契約合意装置において、合意対象の契約書に対する合意性の証跡を示すトランザクションがブロックとして連鎖されるブロックチェーンを記憶する記憶部と、前記ブロックチェーンに最後に連鎖された前ユーザのトランザクションが自装置宛ての場合、当該トランザクションに含まれる契約書の識別子と前記合意対象の契約書の識別子とを比較する照合部と、前記トランザクションに含まれる契約書の識別子と前記合意対象の契約書の識別子とが一致する場合、少なくとも、前記契約書に対する自装置ユーザの合意又は非合意の証と、前記自装置ユーザの電子署名と、前記合意対象の契約書の識別子と、を含む他契約合意装置宛てのトランザクションを生成し、前記ネットワークへブロードキャストする生成部と、前記生成されたトランザクションが前記前ユーザのトランザクションに連鎖されたブロックチェーンで前記記憶部のブロックチェーンを更新する制御部と、を備えることを要旨とする。【００２６】
請求項１４に記載の契約合意装置は、請求項１３に記載の契約合意装置において、前記契約書の暗号鍵及び復号鍵を生成する生成部と、前記ブロックチェーンに最後に連鎖された前ユーザのトランザクションが自装置宛ての場合、当該トランザクションに含まれる契約書を自装置の前記復号鍵で復号化する復号化部と、前記復号化された契約書と前記合意対象の契約書とが一致する場合、他契約合意装置の暗号鍵を用いて前記合意対象の契約書を暗号化する暗号化部と、を更に備え、前記ブロードキャストする生成部は、少なくとも、前記契約書に対する自装置ユーザの合意又は非合意の証と、前記自装置ユーザの電子署名と、前記暗号化された契約書と、を含む前記他契約合意装置宛てのトランザクションを生成し、前記ネットワークへブロードキャストすることを要旨とする。【００２７】
請求項１５に記載の合意検証装置は、請求項１３又は１４に記載された契約合意装置で行われた契約の合意を検証する合意検証装置において、連鎖の起点となるトランザクションに含まれる電子署名用の公開鍵と連鎖の終点となるトランザクションを受け取る装置のユーザの電子署名用の公開鍵とが一致するか否かに基づき、契約合意の証跡の有無を判定する検証部、を備えることを要旨とする。【００２８】
請求項１６に記載の契約合意プログラムは、請求項１乃至５のいずれかに記載の契約合意方法をコンピュータに実行させることを要旨とする。【００２９】
請求項１７に記載の合意検証プログラムは、請求項６に記載の合意検証方法をコンピュータに実行させることを要旨とする。
【発明の効果】
【００３０】
本発明によれば、１つのトランザクションに１つの電子署名という形態を保持しつつ、関係者間で合意を取りながら簡易な方法で契約の証跡をブロックチェーンに残すことができる。また、本発明によれば、１つのトランザクションに１つの電子署名という形態を保持しつつ、関係者間で合意を取りながら簡易な方法で契約の証跡をブロックチェーンに信頼性を保持しながら残すことができる。
【図面の簡単な説明】
【００３１】
【図１】第１の実施の形態に係る契約合意システムの全体構成を示す図である。
【図２】第１の実施の形態に係るトランザクションの例を示す図である。
【図３】ブロックチェーンの形成動作を示す図である。
【図４】ブロックチェーンのイメージを示す図である。
【図５】第１の実施の形態に係る契約合意システムの全体動作を示す図である。
【図６】トランザクションの宛先の遷移パターンの例を示す図である。
【図７】第１の実施の形態に係る契約合意装置の機能ブロックを示す図である。
【図８】合意検証装置の機能ブロックを示す図である。
【図９】第１の実施の形態に係るトランザクションの別例を示す図である。
【図１０】第２の実施の形態に係る契約合意システムの全体構成を示す図である。
【図１１】第２の実施の形態に係るトランザクションの例を示す図である。
【図１２】第２の実施の形態に係る契約合意前の事前動作を示す図である。
【図１３】第２の実施の形態に係る契約合意システムの全体動作を示す図である。
【図１４】第２の実施の形態に係る契約合意装置の機能ブロックを示す図である。
【図１５】第２の実施の形態に係るトランザクションの別例を示す図である。
【発明を実施するための形態】
【００３２】
＜第１の実施の形態＞
本発明では、契約合意の証跡として既存のブロックチェーン技術を利用する。具体的には、発行された契約のトランザクションに対して、受け手は、その契約に対する合意性を含めたトランザクションを生成して連鎖させる。そして、全ての関係者間でトランザクションを連鎖させた後、最後のトランザクションを契約の発行者に返却してその連鎖を閉じる。さらに、契約の発行者は、全関係者で合意が取れたことを非関係者が証明・保証できるようにするため、第三者のアドレス宛にトランザクションを発生させる。これにより、１つのトランザクションに１名の電子署名という従来と同様の形態を保ちながら契約合意の証跡を残すことができる。
【００３３】
以下、本発明を実施する一実施の形態について図面を用いて説明する。
【００３４】
まず、図１を参照しながら、契約合意システム１００の全体構成について説明する。本実施の形態では、契約に関わる関係者の総数を例えば３人とし、契約を締結して契約合意の証跡を残そうとする者を契約の発行者、その要求を受けた者を契約の合意者とする。また、全ての関係者で行われた契約合意を保証する者として仲介者を設定する。仲介者は、前述した第三者に相当する者である。例えば、契約合意システムのサービス提供者、契約合意の保証機関等、契約に直接関係のない者が好ましいが、合意者の中から選出してもよい。
【００３５】
図１に示したように、契約合意システム１００は、契約の発行者が使用する発行者側端末１と、２人の合意者がそれぞれ使用する２つの合意者側端末３ａ，３ｂと、仲介者が使用する仲介者側端末５と、を備えて構成される。全ての端末は、ブロックチェーンを共有するＰ２Ｐネットワーク５０により自律分散的に接続されている。
【００３６】
各端末は、共通する複数の機能部をそれぞれ備え、ブロックチェーン記憶部１１と、ブロックチェーン制御部１２と、トランザクション生成部１３と、で構成される。これら以外の機能部については後述する。
【００３７】
ブロックチェーン記憶部１１は、ブロックチェーンを記憶する機能を備えている。ブロックチェーンとは、合意対象の契約書に対する合意性の証跡を示すトランザクションがブロックとして連鎖されているものを指す。
【００３８】
ブロックチェーン制御部１２は、他端末のブロックチェーン制御部と自律分散的に協調して、常に最新のブロックチェーンをブロックチェーン記憶部１１に保持する機能を備えている。また、ブロックチェーン記憶部１１からブロックチェーンを取得し、トランザクション生成部１３に提供する機能も備えている。
【００３９】
トランザクション生成部１３は、前ユーザのトランザクションに対する正当性等が確認された場合、自端末ユーザに関するトランザクションを生成し、Ｐ２Ｐネットワーク５０にブロードキャストする機能を備えている。
【００４０】
ここで、トランザクションについて詳述する。従来の仮想通貨の場合、前述したように、１つのトランザクションに、一つ前のトランザクションのハッシュ値、送り手のアドレス、受け手のアドレス、支払い額及び送り手の電子署名が含められていた。一方、本実施の形態では、合意対象の契約を特定し、かつ、その契約に対する関係者の合意性を記録するため、図２に示すように、従来のトランザクションに対して契約書のハッシュ値及び合意の状態を追加する。すなわち、本実施の形態で用いるトランザクションとは、合意対象の契約書及び該合意対象に対する関係者の合意性に関する情報を更に含み、送り手の電子署名が付与された契約合意の証拠データを指す。これにより、１つのトランザクションに１名の電子署名という従来と同様の形態を保持しつつ、契約に対する当事者の合意の有無を記録することができる。
【００４１】
以上が契約合意システム１００の構成端末の備える機能である。なお、図１には示していないが、ブロックチェーンの系を保つため、仮想通貨の場合と同様に、トランザクションの承認作業を通じてブロックチェーンを連鎖させる承認端末がＰ２Ｐネットワーク５０上に存在している。
【００４２】
次に、契約合意システム１００の動作について説明する。その前に、図３を参照しながら、ブロックチェーンが形成される既存動作について説明する。図３は、送り手がトランザクションを生成し、ブロックチェーンの承認作業が行われた後、受け手が該トランザクションを確認する動作を説明している。この動作は、本実施の形態のみならず、ブロックチェーンを用いた仮想通貨の取引にも用いられている。
【００４３】
まず、送り手の端末が、送り手のアドレスから受け手のアドレスに宛てることを明記した電子署名付きのトランザクションを生成し（ステップＳ１０１）、Ｐ２Ｐネットワーク上にブロードキャストする（ステップＳ１０２）。
【００４４】
次に、Ｐ２Ｐネットワーク上の承認端末は、そのネットワーク上にブロードキャストされたトランザクションを収集し、ブロックという単位でまとめて承認作業を行う（ステップＳ１０３）。この承認作業について、仮想通貨では、プルーフ・オブ・ワークと呼ばれる複雑なハッシュ計算を行う方法、プルーフ・オブ・ステイクと呼ばれるコイン年数を消費する方法等が提案されている。本実施の形態では、それらの方式によらず、承認作業を行い、ブロックチェーンにトランザクションを組み込む、つまり、収集したトランザクションを一つ前のトランザクションに連鎖させる処理を行うものとする。連鎖後のトランザクションは、全ての端末で同期されることになる。
【００４５】
次に、受け手の端末が、ブロックチェーンに組み込まれたトランザクションを発見すると（ステップＳ１０４）、図４に示すように、送り手の公開鍵を用いて該トランザクションの電子署名を検証すると共にハッシュ値の照合等を行うことにより、一つ前のトランザクションが正当な送り手から渡されたことを検証する（ステップＳ１０５）。この検証方法については公知の技術で実施可能であり、例えば非特許文献１に記載されている。
【００４６】
そして、トランザクションの送り手の正当性が確認された場合、受け手の端末は、そのトランザクションを参照して次の相手に対するトランザクションを生成する（ステップＳ１０６）。この「受け手」がステップＳ１０１の「送り手」となる。
【００４７】
以上のステップを複数の端末で繰り返し行うことにより、トランザクションの連鎖が形成される。本実施の形態では、このトランザクションの連鎖を利用して契約合意の証跡を残すようにしている。
【００４８】
次に、図５を参照しながら、契約合意システム１００の動作について説明する。なお、全ての端末は承認端末での承認作業を通じてトランザクションを受信し、常に最新のブロックチェーンが記憶されているものとする。また、仲介者を除く関係者は、合意すべき同一の電子契約書を予め所持しており、該契約書をハッシュ化してそのハッシュ値を端末に事前に保持しておくものとする。契約書のハッシュ化には途中の改ざんを防止する目的と第三者から契約の内容を隠蔽する目的があるが、トランザクションが示す契約の内容が合意すべき契約書と照合できればよい。そのため、契約書のＩＤを代用してもよい。
【００４９】
本実施の形態では、“発行者を起点としてトランザクションの連鎖を開始し、関係者間でトランザクションを生成して契約取引を連鎖させ、最後に発行者へ戻す”という一連の流れを残すことで契約合意の証跡とする。生成されるトランザクションの内容については図２に示した通りであり、前のトランザクションのハッシュ値等より関係者間の合意の履歴を辿ることができる。本実施の形態では、発行者がトランザクションを生成するために必要な前トランザクションについては仲介者が提供するものとする。
【００５０】
まず、仲介者側端末５が、発行者宛てのトランザクションを生成する（ステップＳ２０１）。このトランザクションは、前述した通り、Ｐ２Ｐネットワーク上にブロードキャストされ、承認端末により収集、承認、連鎖の各処理が行われ、他端末との間で同期される。また、この処理は、トランザクションがブロードキャストされる毎に行われる。以降、その説明は省略する。
【００５１】
次に、発行者側端末１は、仲介者からのトランザクションを参照し、契約書のハッシュ値を含めて、発行者から合意者Ａに宛てたトランザクションを生成する（ステップＳ２０２）。このとき、ブール値や特定の値で示される合意の状態もトランザクションに包含される。
【００５２】
次に、合意者側端末３ａは、最新のブロックチェーンから自身宛のトランザクションを取り出し、該トランザクションに含まれる契約書のハッシュ値と自端末の持つ契約書のハッシュ値が一致するかを確認する（ステップＳ２０３）。
【００５３】
そして、契約書の同一性が確認されると、続いて、合意者側端末３ａは、その契約に合意をした証明として電子署名の検証やトランザクションのハッシュ値の再計算を行い、契約書のハッシュ値及び合意の状態を含めて、別の合意者Ｂに宛てたトランザクションを生成する（ステップＳ２０４）。
【００５４】
次に、合意者Ｂにおいても合意者Ａと同様の契約書の確認作業を実施し（ステップＳ２０５）、合意の確認が取れた証跡として元の発行者に宛てたトランザクションを生成する（ステップＳ２０６）。なお、他にも合意者が存在する場合には、同様にその合意者との間でも契約書のハッシュ値の照合及びトランザクションの生成を行い、トランザクションを更に連鎖させる。
【００５５】
その後、発行者側端末１は、該発行者側端末１においても契約書のハッシュ値の照合を行うことにより、該当する契約書について全ての関係者間で合意が取れたことを確かめる（ステップＳ２０７）。
【００５６】
最後に、発行者側端末１は、対象の契約に対する合意性の証跡が取れた証明として、仲介者に宛ててトランザクションを生成する（ステップＳ２０８）。これは、該当する契約書の合意を起点である発行者が確認し、合意の取り直し等でこれ以上トランザクションが関係者間で繋がらないことを保証することを目的としている。
【００５７】
以上が契約合意システム１００の動作である。
【００５８】
ここで、トランザクションの宛先の遷移パターンについて説明する。様々な遷移パターンが考えられるが、図５のケースは図６（ア）の遷移パターンがそれに相当する。その他、同図の（イ）又は（ウ）のような遷移パターンも考えられる。（イ）は、発行者が受け取る最初のトランザクションが、仲介者から受けたものではなく、承認作業等の報酬として生成したトランザクションであることを示している。仮想通貨では、Ｐ２Ｐネットワーク上の第三者がトランザクションを収集して新たなブロックチェーンを繋ぐことで取引の承認作業を行い、報酬として新規のコイン（トランザクション）を受け取る（いわゆる“採掘”）ような遷移パターンが想定されている。（ウ）は、合意形成のトポロジーがより複雑な状態である場合を示している。仮想通貨のトランザクションは入力（送り手）と出力（受け手）をＮ：Ｎの複数に指定することができる。即ちトランザクションを分岐して出力したり、複数の入力を合算して一つの出力にまとめたりすることができる。そのため、（ウ）のように複雑な経路の合意形成を設定することも可能であり、途中で分岐があった場合であっても、最終的にトランザクションの連鎖の終点が発行者に戻るようにすることにより、関係者間での合意を証明することができる。
【００５９】
以上説明したように、必要な合意形成の経路が変化した場合であっても、トランザクションの連鎖の終点を必ず発行者とし、その発行者は合意性確認の保証としてトランザクションを指定の第三者（仲介者）へ渡すことにより、関係者間において契約に対する合意性の証跡をＰ２Ｐネットワーク上に残すことができる。
【００６０】
次に、図７を参照しながら、契約合意システム１００を構成する端末（契約合意装置）について詳述する。この契約合意装置７は、仲介者、発行者及び合意者が利用する装置であり、ブロックチェーン記憶部１１と、ブロックチェーン制御部１２と、契約照合部１４と、宛先設定部１５と、トランザクション生成部１３と、データ保持部１６と、を備えて構成される。
【００６１】
データ保持部１６は、トランザクションの生成に必要な様々なデータを保持する機能を備えている。各装置はそれぞれ固有のアドレスを持ち、例えば、仮想通貨の仕組みと同様に、電子署名に必要な秘密鍵とペアになる公開鍵のハッシュ値をアドレスとして保持する。また、合意対象の契約書を識別する契約書ＩＤを保持する。例えば、契約書のハッシュ値を利用して該当の契約書との照合が可能な値とする。更に、契約経路を保持する。契約経路には、発行者、合意者及び仲介者の各装置のアドレスが記載され、選定された遷移パターンの経路を実現するためのトランザクションの宛先が記載されている。
【００６２】
ブロックチェーン記憶部１１は、承認端末により承認され、前のブロックチェーンに連鎖され、更に他装置との間で同期されたブロックチェーンを記憶する機能を備えている。
【００６３】
ブロックチェーン制御部１２は、他装置のブロックチェーン制御部と自律分散的に協調して、常に最新のブロックチェーンをブロックチェーン記憶部１１に保持する機能、つまり、連鎖された最新のブロックチェーンで既存のブロックチェーンを更新する同期機能を備えている。また、ブロックチェーン記憶部１１からブロックチェーンを取得して、自装置のアドレスに宛てたトランザクションを参照する機能を備えている。
【００６４】
契約照合部１４は、最後に連鎖された前ユーザのトランザクションが自装置宛ての場合、該トランザクションに含まれる契約書ＩＤとデータ保持部１６の契約書ＩＤとを比較して、それら２つの契約書ＩＤが一致するかを比較する機能を備えている。
【００６５】
宛先設定部１５は、データ保持部１６の契約経路とアドレスを参照して次のトランザクションの宛先を特定し、トランザクション生成部１３に伝達する機能を備えている。
【００６６】
トランザクション生成部１３は、比較対象である２つの契約書ＩＤが一致する場合、宛先設定部１５から伝達された宛先を用いて、契約書ＩＤ、合意の有無、合意者の電子署名等を含めて自装置合意者のトランザクションを生成し、Ｐ２Ｐネットワークへブロードキャストする機能を備えている。
【００６７】
続いて、契約合意装置７の動作について説明する。
【００６８】
まず、承認端末により、Ｐ２Ｐネットワーク上にブロードキャストされたトランザクションが承認及び連鎖された後、ブロックチェーン制御部１２が、連鎖後のブロックチェーンを受信し、ブロックチェーン記憶部１１のブロックチェーンを更新する（ステップＳ３０１）。
【００６９】
次に、ブロックチェーン制御部１２が、更新された最新のブロックチェーンをブロックチェーン記憶部１１から取得して、前ユーザのトランザクションを参照する（ステップＳ３０２）。
【００７０】
次に、契約照合部１４が、最後に連鎖された前ユーザのトランザクションが自装置宛ての場合、該トランザクションに含まれる契約書ＩＤとデータ保持部１６の契約書ＩＤとを比較する（ステップＳ３０３）。
【００７１】
そして、比較対象である２つの契約書ＩＤが一致する場合、宛先設定部１５が、データ保持部１６の契約経路とアドレスを参照して次のトランザクションの宛先を特定する（ステップＳ３０４）。
【００７２】
最後に、トランザクション生成部１３が、特定された宛先を用いて、契約書ＩＤ、自装置合意者による合意の有無、その合意者の電子署名等を含めたトランザクションを生成し、Ｐ２Ｐネットワークへブロードキャストする（ステップＳ３０５）。
【００７３】
以上が契約合意装置７の動作である。本実施の形態では、このような機能を持つ契約合意装置７を合意者等がそれぞれ備え、それらの関係者間で各関係者のトランザクションを連鎖させ、その最後の契約合意装置は、契約書を発行した発行者の契約合意装置に宛ててトランザクションを生成する。これにより、契約合意システム１００の利用者は、アドレス、契約経路、契約書ＩＤ、合意の有無、電子署名等を契約合意装置に設定するだけで、契約合意の証跡をブロックチェーン上（Ｐ２Ｐネットワーク上）に残すことができる。
【００７４】
最後に、合意検証装置について説明する。ブロックチェーン上に残された契約合意の証跡は、そのブロックチェーンの系が存在する限りＰ２Ｐネットワーク上の任意の端末又は装置から容易に検証することが可能である。そこで、後々に合意の検証を行うために用いる合意検証装置について説明する。
【００７５】
図８に示すように、合意検証装置９は、データ保持部９１と、ブロックチェーン記憶部９２と、ブロックチェーン制御部９３と、合意検証部９４と、を備えて構成される。合意検証部９４を除く他の機能部は、契約合意装置７の持つ同一名称の各機能部と同様の機能を備える。
【００７６】
合意検証部９４は、連鎖の起点となるトランザクションに含まれるアドレス（＝電子署名用の公開鍵のハッシュ値）と、連鎖の終点となるトランザクションを受け取る装置のアドレスとを比較し、それら２つのアドレスが一致するか否かに基づき契約合意の証跡の有無を判定する検証機能を備えている。
【００７７】
続いて、合意検証装置９の動作について説明する。
【００７８】
まず、ブロックチェーン制御部９３は、検証対象の契約書ＩＤをデータ保持部９１から取得し、該当するトランザクションの連鎖をブロックチェーン記憶部９２から取り出す（ステップＳ４０１）。
【００７９】
次に、合意検証部９４は、取り出したトランザクションの連鎖の起点となるトランザクションに含まれるアドレスと、連鎖の終点でトランザクションを受け取るアドレスとを比較し、その比較結果に基づき合意の証跡の有無を判定する（ステップＳ４０２）。最後のトランザクションが指定の仲介者のアドレスに宛てて送信されているかを確認することで、契約合意の証跡を検証することができる。
【００８０】
その後、合意検証部９４は、それら２つのアドレスが一致している場合、契約合意の証跡が存在することを検証結果として表示する（ステップＳ４０３）。その際、トランザクションに含まれるパラメータの内容を併せて表示してもよい。例えば、図２に示したように合意の状態がｆａｌｓｅ（非合意）のまま発行者に返っている場合、合意者Ａは合意をしていない旨を併せて表示する。
【００８１】
以上より、本実施の形態によれば、契約書の契約に関わる関係者の契約合意装置間で各関係者のトランザクションを連鎖させ、その最後の装置は、契約書を発行した発行者の装置に宛ててトランザクションを生成するので、煩雑な手続きを行うことなく、より簡易な方法で二者間以上の契約合意の証跡をブロックチェーン上に記録することができる。また、本実施の形態では、中央集権的な仕組みを用いることなく、自律分散的なネットワーク上に契約の合意証跡を保持するので、一部の装置で合意の証跡が失われたとしても、該当するブロックチェーンの系が存在する限りは証跡を永久的に保持することができる。
【００８２】
なお、本実施の形態では、図２に示したように、送り手と受け手のアドレスとして送り手と受け手の公開鍵のハッシュ値を例に説明したが、図９に示すように、公開鍵のハッシュ値に代えて任意の値を用いてもよい。
【００８３】
なお、本実施の形態では、Ｐ２Ｐネットワークを例に説明したが、必ずしも文字通りの純粋なピアツーピアで構成されるネットワークを用いる必要はない。最近のビットコインでは例えばハブとなるようなノードも存在しており、広くはブロックチェーンを共有する分散型のネットワークであればよい。
【００８４】
最後に、本実施の形態で説明した契約合意装置７及び合意検証装置９は、ＣＰＵ等の演算機能やメモリ等の記憶機能を備えたコンピュータで実現できる。また、それら各装置としてコンピュータを機能させるためのプログラムや該プログラムの記憶媒体を作成することも可能である。
【００８５】
＜第２の実施の形態＞
本発明では、契約内容のセキュリティについて、関係者の各端末において電子署名用の鍵ペアとは別に、契約書に対する暗号用の鍵ペアを使用する。トランザクションの受け手は、その鍵ペアの暗号鍵を公開用として事前にトランザクションの送り手に送付しておく。一方、その送り手は、受け手から送付された暗号鍵を用いて契約書を暗号化し、暗号化後の契約書を含めて受け手宛にトランザクションを生成する。受け手は、自身の持つもう一方の復号鍵で該暗号化された契約書を復号化する。つまり、最初の発行者が契約書を暗号化して受け手が復号し、その受け手が送信する際には次の受け手の暗号鍵で暗号化し、これを繰り返すことでトランザクションの連鎖上に関係者のみが解読できる暗号化された契約書を保持する。これにより、個々のトランザクションには各関係者により異なる暗号鍵でそれぞれ暗号化された契約書が含まれるので、契約の証跡をブロックチェーンに信頼性を保持しながら残すことができる。
【００８６】
なお、暗号化された契約書はトランザクションの受け手しか復号できないため、他の関係者においても同一の契約について合意したか否かを判断することができなくなる。しかし、トランザクションの終点で最後のトランザクションが契約の発行者へ返却されるので、その発行者においては、関係者間で合意された契約内容の全体を把握することができ、契約書の暗号化データの値を逐次比較することにより、連鎖の途中で契約内容が変更されていればそれに気付くことができる。
【００８７】
以下、本発明を実施する一実施の形態について図面を用いて説明する。
【００８８】
まず、図１０を参照しながら、契約合意システム１００の全体構成について説明する。契約合意システム１００は、第１の実施の形態と同様に、契約の発行者が使用する発行者側端末１と、２人の合意者がそれぞれ使用する２つの合意者側端末３ａ，３ｂと、仲介者が使用する仲介者側端末５と、を備えて構成される。全ての端末は、ブロックチェーンを共有するＰ２Ｐネットワーク５０により自律分散的に接続されている。
【００８９】
各端末は、共通する複数の機能部をそれぞれ備え、ブロックチェーン記憶部１１と、ブロックチェーン制御部１２と、トランザクション生成部１３と、契約暗号化部１７と、で構成される。これら以外の機能部については後述する。
【００９０】
ブロックチェーン記憶部１１は、ブロックチェーンを記憶する機能を備えている。ブロックチェーンとは、合意対象の契約書に対する合意性の証跡を示すトランザクションがブロックとして連鎖されているものを指す。
【００９１】
ブロックチェーン制御部１２は、他端末のブロックチェーン制御部と自律分散的に協調して、常に最新のブロックチェーンをブロックチェーン記憶部１１に保持する機能を備えている。また、ブロックチェーン記憶部１１からブロックチェーンを取得し、トランザクション生成部１３又は契約暗号化部１７に提供する機能も備えている。
【００９２】
トランザクション生成部１３は、前ユーザのトランザクションに対する正当性等が確認された場合、自端末ユーザに関するトランザクションを生成し、Ｐ２Ｐネットワーク５０にブロードキャストする機能を備えている。
【００９３】
契約暗号化部１７は、一対の暗号鍵と復号鍵からなる鍵ペアを生成し、暗号鍵を公開用として他端末へ送信する機能を備えている。また、他端末から送信された暗号鍵を用いて契約書（契約文書）を暗号化する機能も備えている。
【００９４】
ここで、トランザクションについて詳述する。本実施の形態では、合意対象の契約を特定し、その契約に対する関係者の合意性を記録し、更に契約内容を秘匿するため、図１１に示すように、従来のトランザクションに対して契約書（暗号化したもの）及び合意の状態を追加する。すなわち、本実施の形態で用いるトランザクションとは、暗号化された合意対象の契約書及び該合意対象に対する関係者の合意性に関する情報を更に含み、送り手の電子署名が付与された契約合意の証拠データを指す。これにより、１つのトランザクションに１名の電子署名という従来と同様の形態を保持しつつ、契約に対する当事者の合意の有無を記録することができる。また、契約書の暗号化により、契約内容を信頼性が高い状態で保持することができる。
【００９５】
以上が契約合意システム１００の構成端末の備える機能である。なお、図１０には示していないが、第１の実施の形態と同様に、ブロックチェーンの系を保つため、仮想通貨の場合と同様に、トランザクションの承認作業を通じてブロックチェーンを連鎖させる承認端末がＰ２Ｐネットワーク５０上に存在している。
【００９６】
次に、契約合意システム１００の動作について説明する。ブロックチェーンの形成動作については、第１の実施の形態で説明した形成動作と同様のため、ここでの説明は省略する。
【００９７】
まず、図１２を用いて、契約合意の手続に入る前の事前動作について説明する。なお、発行者及び全ての合意者は、合意すべき同一の電子契約書を予め所持しているものとする。また、仮想通貨の場合と同様に、ブロックチェーンを利用するための準備として、電子署名用の鍵ペアの生成や各端末への自端末のアドレス通知等は既に行われているものとする。
【００９８】
まず、発行者側端末１、合意者側端末３ａ及び合意者側端末３ｂは、それぞれ、合意対象の契約書を暗号化するための鍵ペアを生成する（ステップＳ５０１）。
【００９９】
次に、それら各端末は、それぞれ、生成した鍵ペアのうち復号鍵を保存し、その対となる暗号鍵をトランザクションの送り手に送付する（ステップＳ５０２）。その送付経路や送付方法については任意である。必ずしもブロックチェーンやＰ２Ｐネットワークを用いる必要はなく、インターネットや電話回線等を通じてメールや口頭で通知するようにしてもよい。また、それら各端末間における各暗号鍵の送付順序についても任意である。
【０１００】
その後、それら各端末は、それぞれ、トランザクションの受け手から送付された暗号鍵を保持する。そして、契約の発行元である発行者側端末１は、合意者側端末３ａからの暗号鍵を用いて合意対象の契約書を暗号化する（ステップＳ５０３）。
【０１０１】
続いて、図１３を用いて、図１２の事前動作に引き続いて行われるブロックチェーンの生成動作について説明する。なお、全ての端末は承認端末での承認作業を通じてトランザクションを受信し、常に最新のブロックチェーンが記憶されているものとする。
【０１０２】
本実施の形態では、“発行者を起点としてトランザクションの連鎖を開始し、関係者間でトランザクションを生成して契約取引を連鎖させ、最後に発行者へ戻す”という一連の流れを残すことで契約合意の証跡とする。生成されるトランザクションの内容については図１１に示した通りであり、前のトランザクションのハッシュ値等より関係者間の合意の履歴を辿ることができる。本実施の形態では、発行者がトランザクションを生成するために必要な前トランザクションについては仲介者が提供するものとする。
【０１０３】
まず、仲介者側端末５が、発行者宛てのトランザクションを生成する（ステップＳ６０１）。このトランザクションは、第１の実施の形態で説明した通り、Ｐ２Ｐネットワーク上にブロードキャストされ、承認端末により収集、承認、連鎖の各処理が行われ、他端末との間で同期される。また、この処理は、トランザクションがブロードキャストされる毎に行われる。以降、その説明は省略する。
【０１０４】
次に、発行者側端末１は、仲介者からのトランザクションを参照し、合意者Ａの暗号鍵で暗号化した契約書を含めて、発行者から合意者Ａに宛てたトランザクションを生成する（ステップＳ６０２）。このとき、ブール値や特定の値で示される合意の状態もトランザクションに包含される。
【０１０５】
次に、合意者側端末３ａは、最新のブロックチェーンから自身宛のトランザクションを取り出し、該トランザクションに含まれる暗号化された契約書を自身の復号鍵で復号化し、自身で保持していた契約書と比較することにより、契約書の同一性を確認する（ステップＳ６０３）。
【０１０６】
そして、契約書の同一性が確認されると、続いて、合意者側端末３ａは、合意者Ｂの暗号鍵を用いて該当の契約書を再度暗号化する（ステップＳ６０４）。
【０１０７】
その後、合意者側端末３ａは、その契約に合意をした証明として電子署名の検証やトランザクションのハッシュ値の再計算を行い、合意者Ｂの暗号鍵で暗号化した契約書及び合意の状態を含めて、合意者Ｂに宛てたトランザクションを生成する（ステップＳ６０５）。
【０１０８】
次に、合意者Ｂにおいても合意者Ａと同様に、自身の復号鍵を用いて合意者Ａのトランザクションに含まれる契約書を復号化して契約書の確認作業を実施し（ステップＳ６０６）、発行者の暗号鍵を用いて該当の契約書を再度暗号化して（ステップＳ６０７）、合意の確認が取れた証跡として元の発行者に宛てたトランザクションを生成する（ステップＳ６０８）。なお、他にも合意者が存在する場合には、同様にその合意者との間でも契約書の照合及びトランザクションの生成を行い、トランザクションを更に連鎖させる。
【０１０９】
その後、発行者側端末１は、該発行者側端末１においても、自身の復号鍵を用いて合意者Ｂのトランザクションに含まれる契約書を復号化して契約書の確認作業を実施し、該当する契約書について全ての関係者間で合意が取れたことを確かめる（ステップＳ６０９）。ここで、最初に発行した契約の内容と相違があれば、発行者は、経路のどこかで契約書の改ざんがなされていることに気付くことができる。その際の確認方法としては、例えば、最初の発行の際に契約書のハッシュ値を保存しておき、合意者Ｂからのトランザクションに含まれている契約書のハッシュ値と比較し、一致するか否かに基づき契約書の同一性を照合することが考えられる。
【０１１０】
最後に、発行者側端末１は、対象の契約に対する合意性の証跡が取れ、かつ、契約書の改ざんがなされていないことの証明として、仲介者に宛ててトランザクションを生成する（ステップＳ６１０）。これは、該当する契約書の合意を起点である発行者が確認し、合意の取り直し等でこれ以上トランザクションが関係者間で繋がらないことを保証することを目的としている。また、各トランザクションにそれぞれ含まれている暗号化された契約書は、異なる鍵でそれぞれ暗号化されているため、後に第三者が合意を確認しようとしても同じ文書について合意されたものであるかを確認することができない。そのため、最後にトランザクションを受け取った発行者が改ざんの有無を確認した証を残す必要があり、これが仲介者に宛てたトランザクションに該当する。
【０１１１】
以上が契約合意システム１００の動作である。
【０１１２】
なお、トランザクションの宛先の遷移パターンについては、第１の実施の形態で説明した遷移パターンと同様のため、ここでの説明は省略する。
【０１１３】
以上説明したように、必要な合意形成の経路が変化した場合であっても、トランザクションの連鎖の終点を必ず発行者とし、その発行者は合意性確認の保証としてトランザクションを指定の第三者（仲介者）へ渡すことにより、関係者間において契約に対する合意性の証跡をＰ２Ｐネットワーク上に残すことができる。また、契約書の暗号化により、契約内容を信頼性が高い状態で保持することができる。
【０１１４】
次に、図１４を参照しながら、契約合意システム１００を構成する端末（契約合意装置）について詳述する。この契約合意装置７は、仲介者、発行者及び合意者が利用する装置であり、ブロックチェーン記憶部１１と、ブロックチェーン制御部１２と、契約復号化部１８と、契約照合部１４と、契約暗号化部１７と、宛先設定部１５と、トランザクション生成部１３と、契約書用鍵ペア生成部１９と、データ保持部１６と、を備えて構成される。
【０１１５】
データ保持部１６は、トランザクションの生成に必要な様々なデータを保持する機能を備えている。各装置はそれぞれ固有のアドレスを持ち、例えば、仮想通貨の仕組みと同様に、電子署名に必要な秘密鍵とペアになる公開鍵のハッシュ値をアドレスとして保持する。また、契約経路を保持する。契約経路には、発行者、合意者及び仲介者の各装置のアドレスが記載され、選定された遷移パターンの経路を実現するためのトランザクションの宛先が記載されている。更に、契約書に対して暗号化を施すための契約書用鍵ペアを保持する。
【０１１６】
ブロックチェーン記憶部１１は、承認端末により承認され、前のブロックチェーンに連鎖され、更に他装置との間で同期されたブロックチェーンを記憶する機能を備えている。
【０１１７】
ブロックチェーン制御部１２は、他装置のブロックチェーン制御部と自律分散的に協調して、常に最新のブロックチェーンをブロックチェーン記憶部１１に保持する機能、つまり、連鎖された最新のブロックチェーンで既存のブロックチェーンを更新する同期機能を備えている。また、ブロックチェーン記憶部１１からブロックチェーンを取得して、自装置のアドレスに宛てたトランザクションを参照する機能を備えている。
【０１１８】
契約復号化部１８は、最後に連鎖された前ユーザのトランザクションが自装置宛ての場合、該トランザクションに含まれる契約書をデータ保持部１６の復号鍵で復号化する機能を備えている。
【０１１９】
契約照合部１４は、復号化された契約書と自身が保持する契約書とを比較して、それら２つの契約書が一致するかを比較する機能を備えている。
【０１２０】
契約暗号化部１７は、比較対象である２つの契約書が一致する場合、他装置から送信された暗号鍵を用いて契約書を暗号化する機能を備えている。
【０１２１】
宛先設定部１５は、データ保持部１６の契約経路とアドレスを参照して次のトランザクションの宛先を特定し、トランザクション生成部１３に伝達する機能を備えている。
【０１２２】
トランザクション生成部１３は、宛先設定部１５から伝達された宛先を用いて、暗号化した契約書、合意の有無、合意者の電子署名等を含めて自装置合意者のトランザクションを生成し、Ｐ２Ｐネットワークへブロードキャストする機能を備えている。
【０１２３】
契約書用鍵ペア生成部１９は、一対の暗号鍵と復号鍵からなる契約書用鍵ペアを生成してデータ保持部１６に保存させ、暗号鍵のみを公開用として他装置へ送信する機能を備えている。前述した通り、この機能は契約暗号化部１７が備えるようにしてもよい。
【０１２４】
続いて、契約合意装置７の動作について説明する。
【０１２５】
まず、承認端末により、Ｐ２Ｐネットワーク上にブロードキャストされたトランザクションが承認及び連鎖された後、ブロックチェーン制御部１２が、連鎖後のブロックチェーンを受信し、ブロックチェーン記憶部１１のブロックチェーンを更新する（ステップＳ７０１）。
【０１２６】
次に、ブロックチェーン制御部１２が、更新された最新のブロックチェーンをブロックチェーン記憶部１１から取得して、前ユーザのトランザクションを参照する（ステップＳ７０２）。
【０１２７】
次に、契約復号化部１８が、最後に連鎖された前ユーザのトランザクションが自装置宛ての場合、該トランザクションに含まれる契約書をデータ保持部１６で保持している自身の復号鍵で復号化する（ステップＳ７０３）。
【０１２８】
次に、契約照合部１４が、復号化された契約書と自身が保持する契約書とを比較する（ステップＳ７０４）。このとき、ユーザ自身がそれらの契約書を目視して確認してもよいし、事前に確認した契約書のハッシュ値を取得しておき、そのハッシュ値等を利用して照合してもよい。
【０１２９】
そして、比較対象である２つの契約書が一致する場合、契約暗号化部１７が、他装置から送信された暗号鍵を用いて該当の契約書を再度暗号化する（ステップＳ７０５）。
【０１３０】
その後、宛先設定部１５が、データ保持部１６の契約経路とアドレスを参照して次のトランザクションの宛先を特定する（ステップＳ７０６）。
【０１３１】
最後に、トランザクション生成部１３が、特定された宛先を用いて、再度暗号化された契約書、自装置合意者による合意の有無、その合意者の電子署名等を含めたトランザクションを生成し、Ｐ２Ｐネットワークへブロードキャストする（ステップＳ７０７）。
【０１３２】
以上が契約合意装置７の動作である。本実施の形態では、このような機能を持つ契約合意装置７を合意者等がそれぞれ備え、それらの関係者間で各関係者のトランザクションを連鎖させ、その最後の契約合意装置は、契約書を発行した発行者の契約合意装置に宛ててトランザクションを生成する。また、トランザクションに含まれる契約書を受け手の暗号鍵を用いて暗号化する。これにより、契約合意システム１００の利用者は、アドレス、契約経路、契約書、契約書用鍵ペア、合意の有無、電子署名等を契約合意装置に設定するだけで、契約合意の証跡をブロックチェーン上（Ｐ２Ｐネットワーク上）に信頼性を保持しながら残すことができる。
【０１３３】
最後に、合意検証装置について説明する。ブロックチェーン上に残された契約合意の証跡は、そのブロックチェーンの系が存在する限りＰ２Ｐネットワーク上の任意の端末又は装置から容易に検証することが可能である。そこで、後々に合意の検証を行うために用いる合意検証装置について説明する。
【０１３４】
図８に示したように、合意検証装置９は、本実施の形態においても、データ保持部９１と、ブロックチェーン記憶部９２と、ブロックチェーン制御部９３と、合意検証部９４と、を備えて構成される。データ保持部９１と合意検証部９４を除く他の機能部は、契約合意装置７の持つ同一名称の各機能部と同様の機能を備える。
【０１３５】
データ保持部９１は、契約書を識別する契約書ＩＤを保持する。例えば、契約書のハッシュ値を利用して該当の契約書との照合が可能な値とする。
【０１３６】
合意検証部９４は、連鎖の起点となるトランザクションに含まれるアドレス（＝電子署名用の公開鍵のハッシュ値）と、連鎖の終点となるトランザクションを受け取る装置のアドレスとを比較し、それら２つのアドレスが一致するか否かに基づき契約合意の証跡の有無を判定する検証機能を備えている。
【０１３７】
続いて、合意検証装置９の動作について説明する。
【０１３８】
まず、ブロックチェーン制御部９３は、検証対象の契約書ＩＤをデータ保持部９１から取得し、該当するトランザクションの連鎖をブロックチェーン記憶部９２から取り出す（ステップＳ８０１）。
【０１３９】
次に、合意検証部９４は、取り出したトランザクションの連鎖の起点となるトランザクションに含まれるアドレスと、連鎖の終点でトランザクションを受け取るアドレスとを比較し、その比較結果に基づき合意の証跡の有無を判定する（ステップＳ８０２）。最後のトランザクションが指定の仲介者のアドレスに宛てて送信されているかを確認することで、契約合意の証跡を検証することができる。
【０１４０】
その後、合意検証部９４は、それら２つのアドレスが一致している場合、契約合意の証跡が存在することを検証結果として表示する（ステップＳ８０３）。その際、トランザクションに含まれるパラメータの内容を併せて表示してもよい。例えば、図１１に示したように合意の状態がｆａｌｓｅ（非合意）のまま発行者に返っている場合、合意者Ａは合意をしていない旨を併せて表示する。
【０１４１】
以上より、本実施の形態によれば、契約書の契約に関わる関係者の契約合意装置間で各関係者のトランザクションを連鎖させ、その最後の装置は、契約書を発行した発行者の装置に宛ててトランザクションを生成するので、煩雑な手続きを行うことなく、より簡易な方法で二者間以上の契約合意の証跡をブロックチェーン上に記録することができる。また、本実施の形態では、中央集権的な仕組みを用いることなく、自律分散的なネットワーク上に契約の合意証跡を保持するので、一部の装置で合意の証跡が失われたとしても、該当するブロックチェーンの系が存在する限りは証跡を永久的に保持することができる。
【０１４２】
また、本実施の形態によれば、契約書を暗号化してブロックチェーン上に保持するので、契約の内容を各端末に保持していなくても復号鍵さえ保持していれば、自身が受けたトランザクションに含まれる暗号化された契約を解読できる。復号鍵の受け渡しが関係者間で発生しないので、信頼性高く契約の内容を保持することができる。
【０１４３】
なお、本実施の形態では、図１１に示したように、送り手と受け手のアドレスとして送り手と受け手の公開鍵のハッシュ値を例に説明したが、図１５に示すように、公開鍵のハッシュ値に代えて任意の値を用いてもよい。
【０１４４】
なお、本実施の形態では、Ｐ２Ｐネットワークを例に説明したが、必ずしも文字通りの純粋なピアツーピアで構成されるネットワークを用いる必要はない。最近のビットコインでは例えばハブとなるようなノードも存在しており、広くはブロックチェーンを共有する分散型のネットワークであればよい。
【０１４５】
最後に、本実施の形態で説明した契約合意装置７及び合意検証装置９は、ＣＰＵ等の演算機能やメモリ等の記憶機能を備えたコンピュータで実現できる。また、それら各装置としてコンピュータを機能させるためのプログラムや該プログラムの記憶媒体を作成することも可能である。
【符号の説明】
【０１４６】
１…発行者側端末
３ａ，３ｂ…合意者側端末
５…仲介者側端末
７…契約合意装置
９…合意検証装置
１１…ブロックチェーン記憶部
１２…ブロックチェーン制御部
１３…トランザクション生成部
１４…契約照合部
１５…宛先設定部
１６…データ保持部
１７…契約暗号化部
１８…契約復号化部
１９…契約書用鍵ペア生成部
５０…Ｐ２Ｐネットワーク
９１…データ保持部
９２…ブロックチェーン記憶部
９３…ブロックチェーン制御部
９４…合意検証部
１００…契約合意システム
Ｓ１０１〜Ｓ１０６，Ｓ２０１〜Ｓ２０８，Ｓ３０１〜Ｓ３０５，Ｓ４０１〜Ｓ４０３、Ｓ５０１〜Ｓ５０３、Ｓ６０１〜Ｓ６１０、Ｓ７０１〜Ｓ７０７、Ｓ８０１〜Ｓ８０３…ステップ
【図１】
2017010455.tif 000003
【図２】
2017010455.tif 000004
【図３】
2017010455.tif 000005
【図４】
2017010455.tif 000006
【図５】
2017010455.tif 000007
【図６】
2017010455.tif 000008
【図７】
2017010455.tif 000009
【図８】
2017010455.tif 000010
【図９】
2017010455.tif 000011
【図１０】
2017010455.tif 000012
【図１１】
2017010455.tif 000013
【図１２】
2017010455.tif 000014
【図１３】
2017010455.tif 000015
【図１４】
2017010455.tif 000016
【図１５】
2017010455.tif 000017
【国際調査報告】
2017010455.tif 000018
2017010455.tif 000019
2017010455.tif 000020
2017010455.tif 000021