JP7497374B2 - 制御方法、装置、および、プログラム - Google Patents

制御方法、装置、および、プログラム Download PDF

Info

Publication number
JP7497374B2
JP7497374B2 JP2021565559A JP2021565559A JP7497374B2 JP 7497374 B2 JP7497374 B2 JP 7497374B2 JP 2021565559 A JP2021565559 A JP 2021565559A JP 2021565559 A JP2021565559 A JP 2021565559A JP 7497374 B2 JP7497374 B2 JP 7497374B2
Authority
JP
Japan
Prior art keywords
transaction data
contract
user
variable
distributed ledger
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2021565559A
Other languages
English (en)
Other versions
JPWO2021125106A1 (ja
Inventor
勇二 海上
淳児 道山
純一郎 添田
基司 大森
哲司 渕上
雄揮 廣瀬
直央 西田
雅裕 田口
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Intellectual Property Corp of America
Original Assignee
Panasonic Intellectual Property Corp of America
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Panasonic Intellectual Property Corp of America filed Critical Panasonic Intellectual Property Corp of America
Publication of JPWO2021125106A1 publication Critical patent/JPWO2021125106A1/ja
Application granted granted Critical
Publication of JP7497374B2 publication Critical patent/JP7497374B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3825Use of electronic signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Accounting & Taxation (AREA)
  • Computer Security & Cryptography (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Finance (AREA)
  • General Engineering & Computer Science (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Economics (AREA)
  • Signal Processing (AREA)
  • Human Resources & Organizations (AREA)
  • Marketing (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Description

本発明は、制御方法、装置、および、プログラムに関する。
分散台帳を用いて契約に係る情報を管理する技術がある。分散台帳に格納された情報は、書き換えが実質的に不可能であるように管理される。
分散台帳を用いたシステムにおいて複数の管理者が存在する状況下でも、運用ポリシーまたは運用のタイミングを揃える技術が開示されている。
国際公開第2019/021792号
本発明は、契約を管理するコンピュータシステムの消費電力の増大を抑制する制御方法などを提供する。
本発明の一態様に係る制御方法は、分散台帳を保有している複数の装置を備える契約管理システムにおいて、当該複数の装置のうちの一の装置が実行する制御方法であって、第一ユーザと第二ユーザとの第一契約に関する第一情報を示す第一変数と、前記第一契約に関する前記第一情報とは異なる第二情報を示す第二変数であって前記第二情報が未定であることを示す所定値が設定されている第二変数とを含む第一トランザクションデータを取得し、取得した前記第一トランザクションデータを前記分散台帳に格納し、前記分散台帳に格納した前記第一トランザクションデータに含まれている前記第二変数を読み出して前記一の装置の書き換え可能な記憶部に格納する格納処理を実行し、前記第一ユーザと第三ユーザとの第二契約に関する第三情報を示す第三変数と、前記第三変数に基づいて前記第二変数を変更する変更命令とを含む第二トランザクションデータを取得し、取得した前記第二トランザクションデータを前記分散台帳に格納し、前記第二トランザクションデータを前記分散台帳に格納した後に、前記記憶部に格納されている前記第二変数を前記所定値から前記変更命令に従って変更する変更処理を実行する制御方法である。
なお、これらの包括的または具体的な態様は、システム、装置、集積回路、コンピュータプログラムまたはコンピュータ読み取り可能なCD-ROMなどの記録媒体で実現されてもよく、システム、装置、集積回路、コンピュータプログラムおよび記録媒体の任意な組み合わせで実現されてもよい。
本発明の制御方法は、契約を管理するコンピュータシステムの消費電力の増大を抑制することができる。
図1は、実施の形態1における契約の流れの一例を模式的に示す説明図である。 図2は、実施の形態1における契約管理システムの構成を模式的に示すブロック図である。 図3は、実施の形態1における台帳サーバの機能構成を示すブロック図である。 図4は、実施の形態1におけるトランザクションデータの第一例を示す説明図である。 図5は、実施の形態1におけるトランザクションデータの第二例を示す説明図である。 図6は、実施の形態1における契約管理システムの処理を示すシーケンス図である。 図7は、実施の形態2における契約管理システムの構成を模式的に示すブロック図である。 図8は、実施の形態2におけるトランザクションデータの第一例を示す説明図である。 図9は、実施の形態2におけるトランザクションデータの第二例を示す説明図である。 図10は、実施の形態2における取引サーバの処理を示すフロー図である。 図11は、実施の形態2における契約管理システムの処理を示す第一のシーケンス図である。 図12は、実施の形態2における契約管理システムの処理を示す第二のシーケンス図である。 図13は、実施の形態3におけるトランザクションデータの第一例を示す説明図である。 図14は、実施の形態3におけるトランザクションデータの第二例を示す説明図である。 図15は、実施の形態3におけるトランザクションデータの第三例を示す説明図である。 図16は、実施の形態3における契約管理システムの処理を示す第一のシーケンス図である。 図17は、実施の形態3における契約管理システムの処理を示す第二のシーケンス図である。 図18は、実施の形態3における取引サーバの処理を示すフロー図である。 図19は、実施の形態3における契約管理システムの処理を示す第三のシーケンス図である。 図20は、実施の形態3における契約管理システムの処理を示す第四のシーケンス図である。 図21は、変形例1における契約管理システムの構成を模式的に示すブロック図である。 図22は、変形例2における契約管理システムの構成を模式的に示すブロック図である。 図23は、ブロックチェーンのデータ構造を示す説明図である。 図24は、トランザクションデータのデータ構造を示す説明図である。
(本発明の基礎となった知見)
本発明者は、「背景技術」の欄において記載した、契約に関する技術に関し、以下の問題が生じることを見出した。
分散台帳を用いて契約に係る情報を管理する技術がある。分散台帳に格納された情報は、書き換えが実質的に不可能であるように管理される。また、分散台帳を用いて契約に係る処理を実行し、契約を管理する技術がある。このような技術は、例えばスマートコントラクトによって実現され得る。
ところで、相互に内容が関係する複数の契約が順次に締結される場合がある。例えば、後の契約の内容が確定して初めて、先の契約の内容が確定する場合がある。
このように締結される契約を分散台帳を用いて管理する場合、先の契約の内容が先に分散台帳に格納され、その後、後の契約の内容が確定した時点において、後の契約の内容が分散台帳に格納されることが想定される。しかし、上記の通り分散台帳に格納された情報の書き換えが実質的に不可能であるように管理されているので、後の契約の内容が確定した時点では、先の契約に係る内容を変更することができない。
そこで、相互に内容が関係する複数の契約が順次に締結される場合には、後の契約の内容が確定した後に、先の契約の内容を修正した新たな契約の内容を分散台帳で管理する方法がある。
仮に、新たな契約の内容を、人手により決定して分散台帳で管理するとすれば、人に情報を提示したり人から情報の入力を受けたりする処理が必要となり、上記処理に用いられるコンピュータの消費電力が増大するという問題がある。また、上記処理に必要なコンピュータリソース、例えば、情報を提示するための出力デバイス(表示装置またはスピーカなど)、または、情報の入力を受けるためのデバイス(タッチパネル、キーボード、マウスなど)を多く必要とするという問題もある。
さらに、人が介在することになるので、人の手間がかかるという問題がある。また、人が、正しくない契約内容を生成して分散台帳に格納してしまうという問題も発生しうる。
本発明は、契約を管理するコンピュータシステムの消費電力の増大を抑制する制御方法などを提供する。
本発明の一態様に係る制御方法は、分散台帳を保有している複数の装置を備える契約管理システムにおいて、当該複数の装置のうちの一の装置が実行する制御方法であって、第一ユーザと第二ユーザとの第一契約に関する第一情報を示す第一変数と、前記第一契約に関する前記第一情報とは異なる第二情報を示す第二変数であって前記第二情報が未定であることを示す所定値が設定されている第二変数とを含む第一トランザクションデータを取得し、取得した前記第一トランザクションデータを前記分散台帳に格納し、前記分散台帳に格納した前記第一トランザクションデータに含まれている前記第二変数を読み出して前記一の装置の書き換え可能な記憶部に格納する格納処理を実行し、前記第一ユーザと第三ユーザとの第二契約に関する第三情報を示す第三変数と、前記第三変数に基づいて前記第二変数を変更する変更命令とを含む第二トランザクションデータを取得し、取得した前記第二トランザクションデータを前記分散台帳に格納し、前記第二トランザクションデータを前記分散台帳に格納した後に、前記記憶部に格納されている前記第二変数を前記所定値から前記変更命令に従って変更する変更処理を実行する制御方法である。
上記態様によれば、第一契約の締結の時点で未定である情報が含まれている場合でも、第一契約に対応するトランザクションデータを分散台帳を用いて管理し、その後に締結される第二契約の内容に基づいて上記の未定である情報を変更することで、上記第一契約および第二契約が管理される。そして、未定である情報の変更の処理は、サーバのコンピュータ処理によってなされ、言い換えれば、人が介在することなく実行される。そのため、コンピュータの消費電力の増大を抑制し、または、コンピュータリソースの必要量を抑制できる。また、人が処理をする手間を低減することができる。このように、上記制御方法は、契約を管理するコンピュータシステムの消費電力の増大を抑制することができる。
また、前記第一契約は、前記第一ユーザおよび前記第二ユーザと異なるユーザである関係ユーザが関係する契約であり、前記第二情報は、前記関係ユーザの識別情報を含み、前記第二契約は、前記第一ユーザと、前記関係ユーザである前記第三ユーザとの契約であり、前記変更処理は、前記記憶部に格納されている前記第二変数を、前記所定値から、前記変更命令に従って前記関係ユーザである前記第三ユーザの識別情報に変更する処理であってもよい。
上記態様によれば、三者が関係する契約が適切に管理される。具体的には、第一契約に関係する関係ユーザが第一契約の締結の時点で未定である場合でも、その後に締結される第二契約に従って関係ユーザが特定される場合に、第一契約および第二契約が適切に管理される。このように、上記制御方法は、三者が関係する契約を管理するコンピュータシステムの消費電力の増大を抑制することができる。
また、前記第一トランザクションデータは、前記第一変数と、前記第二変数と、前記第一変数および前記第二変数を前記記憶部に格納する格納命令とを含む第一コントラクトコードを含み、前記格納処理は、前記第一トランザクションデータが前記分散台帳に格納されたことに基づいて、前記一の装置が備えるコントラクト実行部が前記第一コントラクトコードに含まれる前記格納命令を実行したことによって行われてもよい。
上記態様によれば、第一トランザクションデータを記憶部に格納する処理が、第一トランザクションデータが分散台帳に格納されることに基づいてスマートコントラクトにより自動的に実行され、言い換えれば、人が介在することなく実行される。そのため、コンピュータの消費電力の増大をより一層抑制し、または、コンピュータリソースの必要量をより一層抑制できる。また、人が処理をする手間をより一層低減することができる。このように、上記制御方法は、契約を管理するコンピュータシステムの消費電力の増大をより一層抑制することができる。
また、前記第一コントラクトコードは、前記記憶部に格納される前記第二変数を設定する設定関数を含み、前記変更処理は、前記設定関数を実行させる命令を含む第三トランザクションデータを取得した場合に、取得した前記第三トランザクションデータが前記分散台帳に格納されたことに基づいて、前記コントラクト実行部が前記設定関数を実行したことで行われてもよい。
上記態様によれば、第二変数を設定する処理が、第三トランザクションデータが分散台帳に格納されることに基づいてスマートコントラクトにより自動的に実行され、言い換えれば、人が介在することなく実行される。そのため、コンピュータの消費電力の増大をより一層抑制し、または、コンピュータリソースの必要量をより一層抑制できる。また、人が処理をする手間をより一層低減することができる。このように、上記制御方法は、契約を管理するコンピュータシステムの消費電力の増大をより一層抑制することができる。
また、前記第二トランザクションデータは、前記第三変数と、前記変更命令とを含む第二コントラクトコードを含み、前記変更処理は、前記第二トランザクションデータが前記分散台帳に格納されたことに基づいて、前記一の装置が備えるコントラクト実行部により前記変更命令が実行されたことによって行われてもよい。
上記態様によれば、第二情報を変更する処理が、第二トランザクションデータが分散台帳に格納されることに基づいてスマートコントラクトにより自動的に実行され、言い換えれば、人が介在することなく実行される。そのため、コンピュータの消費電力の増大をより一層抑制し、または、コンピュータリソースの必要量をより一層抑制できる。また、人が処理をする手間をより一層低減することができる。このように、上記制御方法は、契約を管理するコンピュータシステムの消費電力の増大をより一層抑制することができる。
また、前記第一トランザクションデータは、前記第一ユーザの電子署名と、前記第二ユーザの電子署名とを含んでいて、前記第一トランザクションデータを前記分散台帳に格納する際には、前記第一トランザクションデータに含まれている前記第一ユーザの電子署名と、前記第二ユーザの電子署名との両方の検証が成功した場合に、前記第一トランザクションデータを前記分散台帳に格納してもよい。
上記態様によれば、第一契約に相当する第一トランザクションデータに、第一契約を締結した第一ユーザおよび第二ユーザそれぞれの電子署名が含まれる。そのため、各電子署名を検証することで、第一ユーザおよび第二ユーザが第一契約を確かに締結したことを証明することができる。よって、上記制御方法は、契約をより一層適切に管理することができる。
また、前記第二トランザクションデータは、前記第一ユーザの電子署名と、前記第三ユーザの電子署名とを含んでいて、前記第二トランザクションデータを前記分散台帳に格納する際には、前記第二トランザクションデータに含まれている前記第一ユーザの電子署名と、前記第三ユーザの電子署名との両方の検証が成功した場合に、前記第二トランザクションデータを前記分散台帳に格納してもよい。
上記態様によれば、第二契約に相当する第二トランザクションデータに、第二契約を締結した第一ユーザおよび第三ユーザそれぞれの電子署名が含まれる。そのため、各電子署名を検証することで、第一ユーザおよび第三ユーザが第二契約を確かに締結したことを証明することができる。よって、上記制御方法は、契約をより一層適切に管理することができる。
また、前記第一契約は、前記第一ユーザが前記第二ユーザから材料を購入し、購入した前記材料を納品先に配送することを定めた契約を含み、前記第一情報は、前記材料の購入金額と、前記材料を納品する期限とを含み、前記第二情報は、前記材料の納品先を含み、前記第二契約は、前記第三ユーザが、前記第二ユーザから納入された前記材料から製品を製造して前記第一ユーザに納品することを定めた契約を含み、前記第三情報は、前記製品の購入金額と、前記製品を納品する期限と、前記製品の納品先とを含んでもよい。
上記態様によれば、材料契約における材料の納品先が材料契約の締結の時点で未定である場合でも、その後に締結される製造委託契約によって特定された製造者を、材料契約における材料納品先とするように変更することにより、材料契約および製造委託契約が適切に管理される。このように、上記制御方法は、第一ユーザと第二ユーザとの材料契約、および、第一ユーザと第三ユーザとの製造委託契約という、三者が関係する契約を適切に管理することができる。
また、本発明の一態様に係る装置は、分散台帳を保有している複数の装置を備える契約管理システムにおける、当該複数の装置のうちの一の装置であって、処理部と、前記分散台帳を記憶している台帳記憶部と、実行部と、書き換え可能な記憶部とを備え、前記処理部は、第一ユーザと第二ユーザとの第一契約に関する第一情報を示す第一変数と、前記第一契約に関する前記第一情報とは異なる第二情報を示す第二変数であって前記第二情報が未定であることを示す所定値が設定されている第二変数とを含む第一トランザクションデータを取得し、取得した前記第一トランザクションデータを前記分散台帳に格納し、前記実行部は、前記分散台帳に格納した前記第一トランザクションデータに含まれている前記第二変数を読み出して前記記憶部に格納する格納処理を実行し、前記処理部は、さらに、前記第一ユーザと第三ユーザとの第二契約に関する第三情報を示す第三変数と、前記第三変数に基づいて前記第二変数を変更する変更命令とを含む第二トランザクションデータを取得し、取得した前記第二トランザクションデータを前記分散台帳に格納し、前記実行部は、前記第二トランザクションデータを前記分散台帳に格納した後に、前記記憶部に格納されている前記第二変数を前記所定値から前記変更命令に従って変更する変更処理を実行する装置である。
上記態様により、上記制御方法と同様の効果を奏する。
また、本発明の一態様に係るプログラムは、上記の制御方法をコンピュータに実行させるためのプログラムである。
上記態様により、上記制御方法と同様の効果を奏する。
なお、これらの包括的または具体的な態様は、システム、装置、集積回路、コンピュータプログラムまたはコンピュータ読み取り可能なCD-ROMなどの記録媒体で実現されてもよく、システム、装置、集積回路、コンピュータプログラムまたは記録媒体の任意な組み合わせで実現されてもよい。
以下、実施の形態について、図面を参照しながら具体的に説明する。
なお、以下で説明する実施の形態は、いずれも包括的または具体的な例を示すものである。以下の実施の形態で示される数値、形状、材料、構成要素、構成要素の配置位置及び接続形態、ステップ、ステップの順序などは、一例であり、本発明を限定する主旨ではない。また、以下の実施の形態における構成要素のうち、最上位概念を示す独立請求項に記載されていない構成要素については、任意の構成要素として説明される。
(実施の形態1)
本実施の形態において、契約を管理するコンピュータシステムの消費電力の増大を抑制する契約管理システムおよびその制御方法などについて説明する。
図1は、本実施の形態における契約の流れの一例を模式的に示す説明図である。
具体的には、図1は、サプライチェーンを構成するA社、B社およびC社の三者が関係する契約と、その契約によってなされる物の納品とを模式的に示している。A社を第一ユーザともいい、B社を第二ユーザともいい、C社を第三ユーザともいう。
まず、図1の(1)に示されるように、A社とB社との間で材料契約(第一契約に相当)が締結される。材料契約は、A社がB社から材料を購入し、B社がその材料を納品先(材料納品先ともいう)に納品することを定めた契約である。材料契約には、材料の納期、材料の購入の金額、および、材料納品先が含まれる。
ここで、A社とB社との契約の締結の時点では、材料の購入の金額と、材料の納期とが決定しているが、材料納品先が未定である場合を想定する。材料納品先が未定であるので、材料契約における材料納品先には、未定を示す情報が設定されている。
材料契約の締結後に、図1の(2)に示されるように、A社とC社との間で製造委託契約(第二契約に相当)が締結される。製造委託契約は、C社が材料から製品を製造して、製造された製品をA社に納品することを定めた契約である。材料はB社から納品される。製造委託契約には、製品の納期、製品の購入の金額、および、製品の納品先(製品納品先ともいう)が含まれる。
また、図1の(2)で製品を製造するのがC社に特定されたことに応じて、先に締結された材料契約における材料納品先がC社に設定される(図1の(3))。
その後、B社は、製造した材料をC社に納品することで、材料契約を履行する(図1の(4))。また、C社は、B社から納品された材料から製品を製造し、製造した製品をA社に納品することで、製造委託契約を履行する(図1の(5))。
このような、契約と契約の履行とに係る処理を、分散台帳を用いて実行するには、材料契約の内容を定めた1つのスマートコントラクトCAと、製造委託契約の内容を定めた1つのスマートコントラクトCBとが用いられることが想定される。
この場合、スマートコントラクトCAにおける材料納品先は、A社とB社との材料契約の締結時には未定と設定され、その後、A社とC社との製造委託契約の締結時にスマートコントラクトCBが実行する処理によって変更または設定されることが想定される。材料納品先の変更または設定を可能とするため、材料納品先は書き換え可能な記憶領域に保存される。
このようにすることで、上記のコンピュータの消費電力の増大、または、デバイスを多く必要とするという問題を回避でき、また人が介在することに起因する問題を回避することができる。
なお、スマートコントラクトCAおよびCBは、材料契約および製造委託契約の内容を管理する機能を少なくとも有するが、さらに、契約の履行(例えば、材料または製品の製造、製造した物の納品、代金の支払など)に関する処理をする機能を有してもよい。
このような契約の形態を適切に管理する技術について以下で詳細に説明する。
図2は、本実施の形態における契約管理システム1の構成を模式的に示すブロック図である。
図2に示されるように、契約管理システム1は、台帳サーバ10A、10Bおよび10Cと、端末20A、20Bおよび20Cとを備える。
台帳サーバ10A、10Bおよび10Cを「台帳サーバ10A等」ともいい、端末20A、20Bおよび20Cを「端末20A等」ともいう。
台帳サーバ10Aと端末20AとはA社に属していて、台帳サーバ10Bと端末20BとはB社に属していて、台帳サーバ10Cと端末20CとはC社に属している。ここでは、契約管理システム1は、三者が関係する契約を管理する例を示すが、契約に関係する者の数は4以上であってもよい。
契約管理システム1が備える各装置は、ネットワークNに直接的に又は間接的に接続されていて、ネットワークNを介して互いに通信可能である。
ネットワークNは、どのような通信回線またはネットワークから構成されてもよく、例えば、インターネット、携帯電話のキャリアネットワーク、インターネットプロバイダのアクセスネットワーク、または公衆アクセスネットワークなどを含み得る。
台帳サーバ10Aは、契約管理システム1において分散台帳を用いて契約を管理する複数の台帳サーバ10A等のうちの1つである。台帳サーバ10Aを装置ともいう。
台帳サーバ10Aは、分散台帳を保有している。台帳サーバ10Aが保有している分散台帳には、トランザクションデータが格納される。分散台帳に格納されるトランザクションデータには、契約に関するスマートコントラクトに係るコントラクトコード(単にコードともいう)を含むトランザクションデータが含まれる。また、台帳サーバ10Aは、分散台帳が格納されている記憶領域とは別に、書き換え可能な記憶領域を有し、契約に関する変数を書き換え可能な記憶領域に格納している。
台帳サーバ10Bおよび10Cは、それぞれ、台帳サーバ10Aと同じ機能を有する装置であり、台帳サーバ10Aとは独立に動作する。
端末20Aは、A社に所属するユーザが使用する情報端末である。端末20Aは、ユーザによって操作され、例えば、スマートコントラクトのコードを生成したり、スマートコントラクトのコードを台帳サーバ10A等に配置したりするために用いられる。端末20Aは、例えばパーソナルコンピュータ、スマートフォンまたはタブレットなどである。
端末20Bおよび20Cは、それぞれ、端末20Aと同じ機能を有し、B社およびC社に所属するユーザが使用する情報端末であり、端末20Aとは独立に動作する。
なお、A社、B社およびC社には、それぞれ、1以上の端末が属していてもよい。
なお、端末20Aが、台帳サーバ10Aの機能をさらに備えてもよい。その場合、端末20Aは、分散台帳を用いて契約を管理する装置に相当する。同様に、端末20Bが、台帳サーバ10Bの機能をさらに備えてもよい。その場合、端末20Bは、分散台帳を用いて契約を管理する装置に相当する。さらに、端末20Cが、台帳サーバ10Cの機能をさらに備えてもよい。その場合、端末20Cは、分散台帳を用いて契約を管理する装置に相当する。
図3は、本実施の形態における台帳サーバ10Aの機能構成を示すブロック図である。
図3に示されるように、台帳サーバ10Aは、処理部11と、台帳記憶部12と、実行部13と、記憶部14とを備える。
処理部11は、トランザクションデータに関する処理を実行する機能部である。処理部11は、台帳サーバ10Aが備えるプロセッサ(例えばCPU(Central Processing Unit))がメモリを用いてプログラムを実行することで実現され得る。
処理部11は、トランザクションデータを取得し、取得したトランザクションデータを分散台帳に格納する処理を実行する。また、処理部11は、トランザクションデータを生成し、生成したトランザクションデータについての電子署名(単に署名ともいう)を生成し、生成した署名を上記トランザクションデータに付与する処理を実行する。
処理部11は、新しいトランザクションデータを分散台帳に格納するときには、分散台帳の種別に応じた方式で新しいトランザクションデータを台帳記憶部12に格納する。また、処理部11は、台帳サーバ10A等のうちの他の台帳サーバが備える台帳記憶部12と通信データを送受信し、他の台帳サーバが備える台帳記憶部12にも上記トランザクションデータを格納させる。例えば、処理部11は、分散台帳がブロックチェーンである場合には、新しいトランザクションデータを含むブロックを生成し、生成したブロックについて台帳サーバ10A等の間でコンセンサスアルゴリズムにより合意形成をしたうえで、上記ブロックを台帳記憶部12に格納する。
具体的には、処理部11は、第一トランザクションデータを取得し、取得した第一トランザクションデータを分散台帳に格納する。第一トランザクションデータは、A社とB社との材料契約(つまり第一契約)に関する情報(第一情報ともいう)を示す第一変数と、第一契約に関する第一情報とは異なる情報(第二情報ともいう)を示す第二変数であって第二情報が未定であることを示す所定値が設定されている第二変数とを含んでいる。言い換えれば、第一情報は、第一契約の締結時で特定されている情報であり、第二情報は、第一契約の締結の時点で特定されていない情報である。
また、処理部11は、第二トランザクションデータを取得し、取得した第二トランザクションデータを分散台帳に格納する。第二トランザクションデータは、A社とC社との製造委託契約(つまり第二契約)に関する情報(第三情報ともいう)を示す第三変数と、第三変数に基づいて第二変数を変更する変更命令とを含んでいる。
台帳記憶部12は、分散台帳を記憶している記憶部である。台帳記憶部12に格納されている分散台帳は、1以上のトランザクションデータを記憶しており、ハッシュ値などの特性を用いて改ざんが困難であるように管理されている(後述)。台帳記憶部12は、処理部11から提供されたトランザクションデータを分散台帳に格納する。分散台帳には、過去から現在までのトランザクションデータが格納されている。分散台帳に記録された情報の改ざんが困難であるという特性に基づいて、上記トランザクションデータが改ざんされないように管理されている。
なお、分散台帳は、例えばブロックチェーンであり、この場合を例として説明するが、他の方式の分散台帳(例えば、IOTAまたはハッシュグラフ等)を採用することも可能である。なお、分散台帳は、新しいデータの格納の際にコンセンサスアルゴリズム(例えば、PBFT(Practical Byzantine Fault Tolerance)、PoW(Proof of Work)またはPoS(Proof of Stake))を実行するものであってもよいし、実行しないものであってもよい。コンセンサスアルゴリズムを実行しない分散台帳技術の一例としてHyperledger fabricがある。
実行部13は、台帳記憶部12が記憶している分散台帳に格納されているトランザクションデータを参照して、処理を実行する機能部である。実行部13は、台帳サーバ10Aが備えるプロセッサ(例えばCPU)がメモリを用いてプログラムを実行することで実現され得る。ここでは、実行部13は、分散台帳に格納されているトランザクションデータに含まれているスマートコントラクトのコードに従って処理を実行するコントラクト実行部である場合を例として説明する。
具体的には、実行部13は、第一トランザクションデータが分散台帳に格納された後に、分散台帳に格納されている第一トランザクションデータに含まれている第二変数を読み出して記憶部14に格納する格納処理を実行する。
格納処理は、例えば、第一トランザクションデータが分散台帳に格納されたことに基づいて、実行部13が第一コントラクトコードを実行したことによって行われる。
また、実行部13は、第二トランザクションデータが分散台帳に格納された後に、記憶部14に格納されている第二変数を、所定値から、第二トランザクションデータに含まれている変更命令に従って変更する変更処理を実行する。
変更処理は、例えば、第二トランザクションデータが分散台帳に格納されたことに基づいて、実行部13が第二コントラクトコードを実行したことによって行われる。
記憶部14は、変数を格納している記憶領域を有する記憶装置である。変数は、契約に関する情報を示す変数であり、具体的には、第一変数、第二変数および第三変数を含む。記憶部14に格納されている変数は、実行部13により設定され、また、読み出される。記憶部14は、書き換え可能な記憶装置、例えば、RAM(Random Access Memory)などのメモリ、または、HDD(Hard Disk Drive)もしくはSSD(Solid State Drive)などのストレージにより実現される。
なお、第一トランザクションデータまたは第二トランザクションデータには、複数の署名が付与されるマルチシグ技術が適用されてもよく、この場合を例として説明するが、第一トランザクションデータまたは第二トランザクションデータに単一の電子署名が付与されるだけでもよい。
具体的には、第一トランザクションデータは、材料契約の締結者であるA社およびB社それぞれの電子署名を含んでいてもよい。その場合、処理部11が第一トランザクションデータを分散台帳に格納する際には、第一トランザクションデータに含まれているA社およびB社それぞれの電子署名の検証が成功した場合に、第一トランザクションデータを分散台帳に格納する。
同様に、第二トランザクションデータは、製造委託契約の締結者であるA社およびC社それぞれの電子署名を含んでいてもよい。その場合、処理部11が第二トランザクションデータを分散台帳に格納する際には、第二トランザクションデータに含まれているA社およびC社それぞれの電子署名の検証が成功した場合に、第二トランザクションデータを分散台帳に格納する。
なお、材料契約および製造委託契約は、以下のようにも説明され得る。
材料契約は、材料契約の締結者であるA社およびB社とは異なるユーザ(関係ユーザともいう)が関係する契約であるといえる。
材料契約における第一情報は、材料契約の締結時に特定されている情報である、材料の購入の金額と、材料の納期とを含む。第一変数は、上記金額を示す変数と、上記納期を示す変数とを含む。
材料契約における第二情報は、材料契約の締結時に特定されていない情報である材料納品先を含む。材料納品先が関係ユーザに相当する。材料契約の締結時には、材料納品先が特定されておらず、未定である。第二変数は、材料納品先を示す変数を含み、材料納品先を示す変数は、材料契約の締結時には、第二情報が未定であることを示す所定値が設定されている。所定値は、第二変数に設定可能な数値の範囲内において、材料納品先を示すためには実際には使われない数値(例えばゼロ)または所定の予約値が用いられ得る。
また、製造委託契約は、A社とC社との契約であるといえる。製造委託契約における第三情報は、製品の購入金額を示す変数と、製品を納品する期限を示す変数と、製品の納品先を示す変数とを含む。製造委託契約の契約者のうちA社と異なる契約者であるC社が、材料契約における関係ユーザに該当する。そのため、製造委託契約が締結されたことによって、製造委託契約の契約者のうちA社と異なる契約者であるC社が、材料契約における関係ユーザに該当すると特定される。
そこで、変更処理では、記憶部14に格納されている第二変数としての材料納品先を示す変数を、所定値から、第二トランザクションデータに含まれている変更命令に従って関係ユーザである第三ユーザに変更する。
なお、材料契約において、材料の購入の金額、材料の納期および材料納品先のうちの1以上の情報を第一情報としてもよい。その場合、材料の購入の金額、材料の納期および材料納品先のうち第一情報を除く情報が第二情報となる。
その場合、製造委託契約は、第一情報そのもの、または、第一情報を特定できる情報を含む。そして、製造委託契約が締結されたことによって、第一情報が特定され、第二トランザクションデータに含まれている変更命令によって、材料契約における第一情報が変更される。
以降において、トランザクションデータ、および、スマートコントラクトのコードについて説明する。
図4は、本実施の形態におけるトランザクションデータの第一例であるトランザクションデータTAを示す説明図である。トランザクションデータTAは、第一トランザクションデータに相当する。トランザクションデータTAは、例えば、台帳サーバ10Aにより生成される。
図4に示されるように、トランザクションデータTAは、「スマートコントラクトCAのコード」と、「初期化関数に渡す引数」と、「署名1」と、「署名2」と、「送信日時」とを含む。
「スマートコントラクトCAのコード」は、スマートコントラクトCAが用いる変数であって、記憶部14に格納されている変数を示す変数部を含む。変数部は、図4において破線枠で示されている。以降でも同様の表現を用いる。スマートコントラクトCAが用いる変数は、金額、材料納品先および納期を含む。金額は、材料契約においてA社が支払う金額を示す。材料納品先は、材料契約によりB社が製造した材料の納品先を示す。納期は、B社が材料を材料納品先に納品する期日を示す。
また、「スマートコントラクトCAのコード」は、初期化関数を含む。初期化関数は、当該トランザクションデータが分散台帳に格納されたときに実行部13によって実行される特別な関数である。以降でも同様である。
初期化関数は、引数として金額と納期とを受け付ける。また、初期化関数は、実行されると、記憶部14に格納されている、材料納品先を示す変数、金額を示す変数、および納期を示す変数に値を設定する。具体的には、初期化関数は、実行されると、材料納品先を示す変数に所定値を設定し、金額を示す変数に引数として受け付けた金額を設定し、納期を示す変数に引数として受け付けた納期を設定する。
なお、図4に初期化関数として示した関数を、一般の関数(つまり、初期化関数でない関数)とし、当該トランザクションデータTAによってその関数を実行させるようにしても同様の効果を奏する。他のスマートコントラクトのコードに含まれる初期化関数についても同様である。
「初期化関数に渡す引数」は、スマートコントラクトCAの初期化関数に渡す引数であり、納期(2019年1月1日)と金額(500万円)とを含む。この引数として示されている情報が、初期化関数に渡される。
「署名1」は、トランザクションデータTAに付与されている2つの電子署名のうちの1つ目である。署名1には、A社の署名SAが含まれている。
「署名2」は、トランザクションデータTAに付与されている2つの電子署名のうちの2つ目である。署名2には、B社の署名SBが含まれている。
「送信日時」は、トランザクションデータTAが送信された日時を示す。送信日時には、「2018年10月01日 12時00分00秒」が格納されている。
図4に示されるトランザクションデータTAが分散台帳に格納されると、初期化関数が実行されることで、引数として初期化関数に渡された金額および納期が、それぞれ、記憶部14の金額および納期を示す変数に設定される。
図5は、本実施の形態におけるトランザクションデータの第二例であるトランザクションデータTBを示す説明図である。トランザクションデータTBは、第二トランザクションデータに相当する。トランザクションデータTBは、例えば、台帳サーバ10Aにより生成される。
図5に示されるように、トランザクションデータTBは、「スマートコントラクトCBのコード」と、「初期化関数に渡す引数」と、「署名1」と、「署名2」と、「送信日時」とを含む。
「スマートコントラクトCBのコード」は、変数部と初期化関数とを含む。スマートコントラクトCBが用いる変数は、金額、製品納品先および納期を含む。金額は、製造委託契約においてA社が支払う金額を示す。製品納品先は、製造委託契約によりC社が製造した製品の納品先を示す。納期は、C社が製品を製品納品先に納品する期日を示す。
初期化関数は、引数として、金額と、納期と、製品納品先と、コントラクトアドレスと、材料納品先とを受け付ける。また、初期化関数は、実行されると、記憶部14に格納されている、製品納品先を示す変数、金額を示す変数、および納期を示す変数に値を設定する。具体的には、初期化関数は、実行されると、金額を示す変数に引数として受け付けた金額を設定し、納期を示す変数に引数として受け付けた納期を設定し、製品納品先を示す変数に引数として受け付けた製品納品先を設定する。また、初期化関数は、実行されると、引数から特定されるスマートコントラクトの材料納品先を示す変数に、引数として受け付けた材料納品先を設定する。
「初期化関数に渡す引数」は、スマートコントラクトCBの初期化関数に渡す引数であり、納期(2019年2月1日)と、金額(500万円)と、製品納品先(A社の識別情報)と、コントラクトアドレス(スマートコントラクトCAのアドレス)と、材料納品先(C社の識別情報)とを含む。この引数として示されている情報が、初期化関数に渡される。なお、変数である製品納品先に設定されるA社の識別情報を、単にA社と記載することもある。B社およびC社についても同様である。以降でも同様である。
「署名1」は、トランザクションデータTBに付与されている2つの電子署名のうちの1つ目である。署名1には、A社の署名SAが含まれている。
「署名2」は、トランザクションデータTBに付与されている2つの電子署名のうちの2つ目である。署名2には、C社の署名SCが含まれている。
「送信日時」は、トランザクションデータTBが送信された日時を示す。送信日時には、「2018年11月01日 12時00分00秒」が格納されている。
図5に示されるトランザクションデータTBが分散台帳に格納されると、初期化関数が実行されることで、引数として初期化関数に渡された納期、金額、および製品納品先が、それぞれ、記憶部14の納期、金額、および製品納品先を示す変数に設定される。また、引数として初期化関数に渡されたコントラクトアドレスと材料納品先とに基づいて、スマートコントラクトCAの材料納品先がC社に変更される。
図6は、本実施の形態における契約管理システム1の処理を示すシーケンス図である。図6には、材料契約の締結、製造委託契約の締結、および、材料契約の内容の変更に係る一連の処理が示されている。
ステップS101において、台帳サーバ10Aの処理部11は、スマートコントラクトCAのコードを取得する。スマートコントラクトCAのコードの取得は、台帳サーバ10Aが当該コードを生成することによってなされてもよいし、A社の担当者による操作に基づいて端末20Aから送信されたコードを受信することによってなされてもよい。
ステップS102において、台帳サーバ10Aの処理部11は、トランザクションデータTAを生成する。生成されるトランザクションデータTAには、ステップS101で取得したスマートコントラクトCAのコードが含まれている(図4参照)。
ステップS103において、台帳サーバ10Aの処理部11は、ステップS102で生成したトランザクションデータTAについての署名を生成してトランザクションデータTAに付与し、署名を付与したトランザクションデータTAを台帳サーバ10Bに送信する。
ステップS104において、台帳サーバ10Bの処理部11は、ステップS103で送信されたトランザクションデータTAを受信し、受信したトランザクションデータTAについての署名を生成してトランザクションデータTAに付与し、署名を付与したトランザクションデータTAを台帳サーバ10Aおよび10Cそれぞれに送信する。これにより、すべての台帳サーバ10A等が、台帳サーバ10Aおよび10Bそれぞれの署名を付与されたトランザクションデータTAを有する状態になる。
ステップS105において、台帳サーバ10A等のそれぞれは、ステップS104で署名が付与され、または、送信されたトランザクションデータTAを分散台帳に格納する。トランザクションデータTAを分散台帳へ格納する際には、コンセンサスアルゴリズムに基づいて合意形成がなされたことを条件として、トランザクションデータTAを分散台帳へ格納するようにしてもよい。
台帳サーバ10A等それぞれの処理部11が、ステップS105でトランザクションデータTAを分散台帳に格納したことに基づいてスマートコントラクトCAの初期化関数を実行することで、下記ステップS106およびステップS107が実現される。
ステップS106において、台帳サーバ10A等それぞれの処理部11は、記憶部14に格納されている金額を示す変数と、納期を示す変数とに、トランザクションデータTAで初期化関数の引数として渡された金額と納期とをそれぞれ設定する。
ステップS107において、台帳サーバ10A等それぞれの処理部11は、記憶部14に格納されている材料納品先を示す変数に所定値を設定する。所定値は、材料納品先が未定であることを示す値である。
ステップS108において、台帳サーバ10Aの処理部11は、スマートコントラクトCBのコードを取得する。スマートコントラクトCBのコードの取得は、台帳サーバ10Aが当該コードを生成することによってなされてもよいし、A社の担当者による操作に基づいて端末20Aから送信されたコードを受信することによってなされてもよい。
ステップS109において、台帳サーバ10Aの処理部11は、トランザクションデータTBを生成する。生成されるトランザクションデータTBには、ステップS108で取得したスマートコントラクトCBのコードが含まれている(図5参照)。
ステップS110において、台帳サーバ10Aの処理部11は、ステップS109で生成したトランザクションデータTBについての署名を生成してトランザクションデータTBに付与し、署名を付与したトランザクションデータTBを台帳サーバ10Cに送信する。
ステップS111において、台帳サーバ10Cの処理部11は、ステップS110で送信されたトランザクションデータTBを受信し、受信したトランザクションデータTBについての署名を生成してトランザクションデータTBに付与し、署名を付与したトランザクションデータTBを台帳サーバ10Aおよび10Bそれぞれに送信する。これにより、すべての台帳サーバ10A等が、台帳サーバ10Aおよび10Cそれぞれの署名を付与されたトランザクションデータTBを有する状態になる。
ステップS112において、台帳サーバ10A等のそれぞれは、ステップS111で署名が付与され、または、送信されたトランザクションデータTBを分散台帳に格納する。トランザクションデータTBを分散台帳へ格納する際には、コンセンサスアルゴリズムに基づいて合意形成がなされたことを条件として、トランザクションデータTBを分散台帳へ格納するようにしてもよい。
台帳サーバ10A等それぞれの処理部11が、ステップS112でトランザクションデータTBを分散台帳に格納したことに基づいてスマートコントラクトCBの初期化関数を実行することで、下記ステップS113およびステップS114が実現される。
ステップS113において、台帳サーバ10A等それぞれの処理部11は、記憶部14に格納されている金額を示す変数と、納期を示す変数と、製品納品先とを示す変数に、トランザクションデータTBで初期化関数の引数として渡された金額と納期と製品納品先とをそれぞれ設定する。
ステップS114において、台帳サーバ10A等それぞれの処理部11は、記憶部14に格納されている、スマートコントラクトCAの材料納品先を示す変数にC社の識別情報を設定する。
なお、ここでは、材料契約および製造委託契約に係るスマートコントラクトのコードおよびトランザクションデータの生成を台帳サーバ10A(つまりA社)が行うこととして説明したが、その代わりに、それぞれB社およびC社が行うようにしてもよい。
以上の一連の処理により、契約管理システム1は、A社とB社との材料契約の締結時に未定である情報を、その後のA社とC社との製造委託契約の締結に基づいて変更することができる。このように、契約管理システム1は、A社、B社およびC社が関係する契約を適切に管理しながら、契約を管理するコンピュータシステムの消費電力の増大を抑制することができる。
(実施の形態2)
本実施の形態において、契約を管理するコンピュータシステムの消費電力の増大を抑制する契約管理システムおよびその制御方法などについて、実施の形態1とは異なる形態を説明する。
本実施の形態の契約管理システムは、契約に関係する各社が提供する台帳サーバ10A等とは異なる取引サーバを備え、取引サーバが契約を適切に管理することに寄与する。取引サーバは、変更処理として、新たなトランザクションデータを生成して有効なものとして管理するとともに、既に分散台帳に格納されているトランザクションデータを無効なものとして管理する。ここで、既に分散台帳に格納されているトランザクションデータとは、未定である情報を含むトランザクションデータであり、例えば、材料納品先が未定である契約に対応するスマートコントラクトを含むトランザクションデータである。また、新たなトランザクションデータは、新たな契約の内容を含むトランザクションデータであり、例えば、製造委託契約が締結されたことによって材料納品先が変更された、新たな契約の内容を定めたスマートコントラクトを含むトランザクションデータである。
本実施の形態における契約の流れについては、実施の形態1と同様である(図1参照)。
図7は、本実施の形態における契約管理システム2の構成を模式的に示すブロック図である。
図7に示されるように、契約管理システム2は、台帳サーバ10A、10Bおよび10Cと、端末20A、20Bおよび20Cと、取引サーバ10Tとを備える。
台帳サーバ10A等と、端末20A等とについては、実施の形態1におけるものと同様である。ただし、製造委託契約に係るスマートコントラクトが異なる(後述するスマートコントラクトCB1)。
取引サーバ10Tは、複数の台帳サーバ10A等と同様に、分散台帳を保有しているサーバである。取引サーバ10Tは、台帳サーバ10A等と同様に、分散台帳にトランザクションデータを格納する。取引サーバ10Tは、分散台帳が格納されている記憶領域とは別に、書き換え可能な記憶領域を有し、契約に関する変数を書き換え可能な記憶領域に格納している。また、取引サーバ10Tは、分散台帳に格納されたトランザクションデータに基づいて、新たなスマートコントラクトを生成して分散台帳に格納する。新たなスマートコントラクトを生成する際には、取引サーバ10Tは、分散台帳に格納されているトランザクションデータに含まれている関連情報を参照する。関連情報は、例えば、分散台帳に格納されているトランザクションデータに関連するスマートコントラクトを特定する情報を含み、例えば、上記スマートコントラクトのアドレス(コントラクトアドレスともいう)を含む。新たなトランザクションデータを分散台帳に格納した後には、取引サーバ10Tは、格納した新たなトランザクションデータに含まれるスマートコントラクトを有効なものとして管理し、材料契約の締結時に格納したトランザクションデータに含まれるスマートコントラクト(つまり、関連情報により特定されるスマートコントラクト)を無効なものとして管理する。
取引サーバ10Tは、ネットワークNに直接的に又は間接的に接続されていて、ネットワークNを介して、台帳サーバ10A等と互いに通信可能である。
取引サーバ10Tの機能構成は、台帳サーバ10A等と同様である(図3参照)。
図8は、本実施の形態におけるトランザクションデータの第一例であるトランザクションデータTB1を示す説明図である。トランザクションデータTB1は、実施の形態1におけるトランザクションデータTBに類似している(図5参照)。以降において、トランザクションデータTB1について、トランザクションデータTBと異なる部分を主に説明する。
図8に示されるように、トランザクションデータTB1は、「スマートコントラクトCB1のコード」と、「初期化関数に渡す引数」と、「署名1」と、「署名2」と、「送信日時」とを含む。
「スマートコントラクトCB1のコード」は、変数部と初期化関数とを含む。スマートコントラクトCB1が用いる変数は、金額、製品納品元、製品納品先、納期および関連スマートコントラクトアドレスを含む。製品納品元は、製造委託契約によりC社が製造した製品の納品元を示す。関連スマートコントラクトは、関連情報の一例であり、当該スマートコントラクトCB1に関連するスマートコントラクトのアドレスを示す。その他の変数は、スマートコントラクトCBにおけるものと同じである。
初期化関数は、引数として、金額と、納期と、製品納品元と、製品納品先と、コントラクトアドレスとを受け付ける。また、初期化関数は、実行されると、記憶部14に格納されている、金額を示す変数、納期を示す変数、製品納品先を示す変数、および関連スマートコントラクトアドレスを示す変数に値を設定する。具体的には、初期化関数は、実行されると、金額を示す変数に引数として受け付けた金額を設定し、納期を示す変数に引数として受け付けた納期を設定し、製品納品先を示す変数に引数として受け付けた金額を設定し、関連コントラクトアドレスを示す変数に引数として受け付けたコントラクトアドレスを設定する。
初期化関数に渡す引数は、スマートコントラクトCB1の初期化関数に渡す引数であり、納期(2019年2月1日)と、金額(500万円)と、製品納品元(C社の識別情報)と、製品納品先(A社の識別情報)と、コントラクトアドレス(スマートコントラクトCAのアドレス)とを含む。この引数として示されている情報が、初期化関数に渡される。
「署名1」、「署名2」および「送信日時」は、実施の形態1のトランザクションデータTBにおけるものと同じである。
図8に示されるトランザクションデータTB1が分散台帳に格納されると、初期化関数が実行されることで、引数として初期化関数に渡された納期、金額、および製品納品先が、それぞれ、記憶部14の納期、金額、および製品納品先を示す変数に設定される。また、引数として初期化関数に渡されたコントラクトアドレスと製品納品元とに基づいて、以降に示す新たなスマートコントラクトCA1の材料納品先がC社に変更される。
図9は、本実施の形態におけるトランザクションデータの第二例であるトランザクションデータTA1を示す説明図である。トランザクションデータTA1は、材料納品先を設定した新たなスマートコントラクトを含むトランザクションデータであり、取引サーバ10Tが生成するトランザクションデータである。トランザクションデータTA1は、実施の形態1におけるトランザクションデータTAに類似している(図4参照)。以降において、トランザクションデータTA1について、トランザクションデータTAと異なる部分を主に説明する。
図9に示されるように、トランザクションデータTA1は、「スマートコントラクトCA1のコード」と、「初期化関数に渡す引数」と、「署名1」と、「署名2」と、「署名3」と、「送信日時」とを含む。
「スマートコントラクトCA1のコード」は、変数部と初期化関数とを含む。スマートコントラクトCA1が用いる変数は、スマートコントラクトCAと同様に、金額、材料納品先および納期を含む。
初期化関数は、引数として金額と納期とを受け付ける。また、初期化関数は、実行されると、記憶部14に格納されている、材料納品先を示す変数、金額を示す変数、および納期を示す変数に値を設定する。具体的には、初期化関数は、実行されると、材料納品先を示す変数にC社の識別情報を設定し、金額を示す変数に引数として受け付けた金額を設定し、納期を示す変数に引数として受け付けた納期を設定する。
「初期化関数に渡す引数」は、スマートコントラクトCA1の初期化関数に渡す引数であり、納期(2019年1月1日)と金額(500万円)とを含む。この引数として示されている情報が、初期化関数に渡される。
「署名1」は、トランザクションデータTA1に付与されている3つの電子署名のうちの1つ目である。署名1には、取引サーバ10Tの署名STが含まれている。
「署名2」は、トランザクションデータTA1に付与されている3つの電子署名のうちの2つ目である。署名2には、A社の署名SAが含まれている。
「署名3」は、トランザクションデータTA1に付与されている3つの電子署名のうちの3つ目である。署名3には、B社の署名SBが含まれている。
「送信日時」は、トランザクションデータTA1が送信された日時を示す。送信日時には、「2018年11月01日 12時05分00秒」が格納されている。
図9に示されるトランザクションデータTA1が分散台帳に格納されると、初期化関数が実行されることで、引数として初期化関数に渡された金額および納期が、それぞれ、記憶部14の金額および納期を示す変数に設定され、また、記憶部14の材料納品先を示す変数にC社の識別情報が設定される。
図10は、本実施の形態における取引サーバ10Tの処理を示すフロー図である。図10に示されるフロー図は、取引サーバ10TがトランザクションデータTA1を生成して分散台帳に格納する処理を示している。
ステップS201において、取引サーバ10Tの処理部11は、台帳記憶部12が有する分散台帳にトランザクションデータが新たに格納されたか否かを判定する。トランザクションデータが新たに格納されたと判定した場合(ステップS201でYes)にはステップS202に進み、そうでない場合(ステップS201でNo)には、ステップS201を再び実行する。つまり、処理部11は、トランザクションデータが新たに格納されるまで、ステップS201で待機する。
ステップS202において、取引サーバ10Tの処理部11は、新たに分散台帳に格納されたトランザクションデータに関連情報が含まれているか否かを判定する。関連情報が含まれていると判定した場合(ステップS202でYes)にはステップS203に進み、そうでない場合(ステップS202でNo)には、図10に示されている一連の処理を終了する。
ステップS203において、取引サーバ10Tの処理部11は、新たに分散台帳に格納されたトランザクションデータに含まれている関連情報に基づいて関連スマートコントラクトを特定する。例えば、図8に示されるトランザクションデータTB1が新たに分散台帳に格納されたときには、処理部11は、関連スマートコントラクトとしてスマートコントラクトCAを特定する。
ステップS204において、取引サーバ10Tの処理部11は、ステップS203で特定された関連スマートコントラクトの変数に所定値が含まれているか否かを判定する。所定値が含まれていると判定した場合には、ステップS205に進み、そうでない場合には、図10に示されている一連の処理を終了する。例えば、処理部11は、関連スマートコントラクトとして特定されたスマートコントラクトCAに材料納品先として所定値が含まれている(図4参照)ことを特定し、ステップS205に進む。
ステップS205において、取引サーバ10Tの処理部11は、所定値が設定されている変数に設定すべき値を、新たに格納されたトランザクションデータに基づいて特定する。
ステップS206において、取引サーバ10Tの処理部11は、ステップS205で特定した値を変数に設定したスマートコントラクトCA1のコードを生成する。
ステップS207において、取引サーバ10Tの処理部11は、ステップS206で生成したスマートコントラクトCA1のコードを含めたトランザクションデータTA1を生成する。
ステップS208において、取引サーバ10Tの処理部11は、ステップS207で生成したトランザクションデータTA1に署名を付与する。取引サーバ10Tが署名を付与したトランザクションデータTA1は、台帳サーバ10Aに送信され、台帳サーバ10Aの署名を付与される。その後、トランザクションデータTA1は、台帳サーバ10Bに送信され、台帳サーバ10Bの署名を付与され、その後、台帳サーバ10Aおよび10Cならびに取引サーバ10Tに送信される。
ステップS209において、取引サーバ10Tの処理部11は、ステップS208で署名が付与されたトランザクションデータTA1を分散台帳に格納する。このとき、台帳サーバ10A等もトランザクションデータTA1を分散台帳に格納する。これにより、台帳サーバ10A等および取引サーバ10Tの全ての分散台帳にトランザクションデータTA1が格納された状態になる。
図11および図12は、本実施の形態における契約管理システム2の処理を示すシーケンス図である。
図11および図12に示されるシーケンス図について、図6のシーケンス図と同じ処理、および、図10のフロー図と同じ処理については、同じ符号を付し、詳細な説明を省略する。
ステップS101~S105において、台帳サーバ10A等、および、取引サーバ10Tの処理部11は、スマートコントラクトCAのコードを含むトランザクションデータTAを取得して分散台帳に格納する。
ステップS106~S107において、台帳サーバ10A等、および、取引サーバ10Tの処理部11は、ステップS105でトランザクションデータTAを分散台帳に格納したことに基づいて、スマートコントラクトCAの初期化関数を実行することで、記憶部14に格納されている、金額、納期および材料納品先を設定する。
ステップS108A~S112Aにおいて、台帳サーバ10A等および取引サーバ10Tそれぞれの処理部11によってスマートコントラクトCB1を含むトランザクションデータTB1が生成され、台帳サーバ10Aおよび10Cにより署名が付与された後に、分散台帳に格納される。
ここで、ステップS108Aでは、図6のステップS108と比較して、取得するコードの内容と初期化関数に渡す引数とが異なる。また、ステップS109AおよびS112Aでは、それぞれ、図6のステップS109およびステップS112と比較して、トランザクションデータの内容が異なる。
台帳サーバ10A等および取引サーバ10Tそれぞれの処理部11が、ステップS112AでトランザクションデータTB1を分散台帳に格納したことに基づいて、スマートコントラクトCB1の初期化関数を実行することで、下記ステップS113Aが実現される。
ステップS113Aにおいて、台帳サーバ10A等および取引サーバ10Tそれぞれの処理部11は、記憶部14に格納されている金額を示す変数と、納期を示す変数と、製品納品先を示す変数と、関連スマートコントラクトアドレスを示す変数とに、トランザクションデータTB1で初期化関数の引数として渡された金額と納期と製品納品先とコントラクトアドレスとをそれぞれ設定する。
図12に移り、取引サーバ10Tの処理部11は、ステップS201~S209において、ステップS112Aで分散台帳に新たなトランザクションデータTB1が格納されたことに基づいて、スマートコントラクトCA1を含むトランザクションデータTA1を生成し、分散台帳に格納する(図10参照)。ここで、スマートコントラクトCA1の材料納品先はC社と特定される。
台帳サーバ10A等および取引サーバ10Tそれぞれの処理部11が、ステップS209でトランザクションデータTA1を分散台帳に格納したことに基づいて、スマートコントラクトCA1の初期化関数を実行することで、下記ステップS210およびS211が実現される。
ステップS210において、台帳サーバ10A等および取引サーバ10Tそれぞれの処理部11は、記憶部14に格納されている金額を示す変数と、納期を示す変数とに、トランザクションデータTA1で初期化関数の引数として渡された金額と納期をそれぞれ設定する。
ステップS211において、台帳サーバ10A等および取引サーバ10Tそれぞれの処理部11は、記憶部14に格納されている材料納品先を示す変数にC社の識別情報を設定する。この後、台帳サーバ10A等および取引サーバ10Tそれぞれは、スマートコントラクトCA1を有効なものとして管理し、スマートコントラクトCAを無効なものとして管理する。
以上の一連の処理により、契約管理システム2は、A社とB社との材料契約の締結時に未定である情報を、その後のA社とC社との製造委託契約の締結に基づいて取引サーバ10Tによって変更することができる。このように、契約管理システム2は、A社、B社およびC社が関係する契約を適切に管理しながら、契約を管理するコンピュータシステムの消費電力の増大を抑制することができる。
(実施の形態3)
本実施の形態において、契約を管理するコンピュータシステムの消費電力の増大を抑制する契約管理システムおよびその制御方法などについて、実施の形態1および2とは異なる形態を説明する。
本実施の形態では、材料契約の内容を定めたスマートコントラクトが、さらに、当該スマートコントラクトの材料納品先を設定する関数(後述する設定関数に相当)を含んでいる。そして、その後に締結される製造委託契約の内容を定めたスマートコントラクトが設定関数を実行する命令を送信する。材料契約の内容を定めたスマートコントラクトは、変更処理として、上記命令を受けて設定関数を実行することによって、材料納品先を設定する。なお、設定関数は、すでに設定されている材料納品先を変更する関数である、ともいえる。
以降において、(1)実施の形態1の契約管理システム1をベースとして設定関数を利用する形態と、(2)実施の形態2の契約管理システム2をベースとして設定関数を利用する形態とについてそれぞれ説明する。
(1)契約管理システム1をベースとして設定関数を利用する形態
図13は、本実施の形態におけるトランザクションデータの第一例であるトランザクションデータTA2を示す説明図である。トランザクションデータTA2は、第一トランザクションデータに相当する。
図13に示されるように、トランザクションデータTA2は、「スマートコントラクトCA2のコード」と、「初期化関数に渡す引数」と、「署名1」と、「署名2」と、「送信日時」とを含む。
ここで、トランザクションデータTA2は、図4に示されるトランザクションデータTAに類似するが、スマートコントラクトのコードが異なる。この点について詳細に説明する。
「スマートコントラクトCA2のコード」は、変数部と初期化関数と設定関数とを含む。変数部と初期化関数とは、スマートコントラクトCAのコードに含まれるものと同じであるので説明を省略する。
設定関数は、引数として材料納品先を受け付ける関数である。設定関数は、記憶部14に格納されている、材料納品先を示す変数を、引数として受け付けた材料納品先を設定する関数である。
図14は、本実施の形態におけるトランザクションデータの第二例であるトランザクションデータTB2を示す説明図である。トランザクションデータTB2は、第二トランザクションデータに相当する。
図14に示されるように、トランザクションデータTB2は、「スマートコントラクトCB2のコード」と、「初期化関数に渡す引数」と、「署名1」と、「署名2」と、「送信日時」とを含む。
ここで、トランザクションデータTB2は、図5に示されるトランザクションデータTBに類似するが、スマートコントラクトのコードと、初期化関数に渡す引数とが異なる。この点について詳細に説明する。
「スマートコントラクトCB2のコード」は、変数部と初期化関数とを含む。変数部は、スマートコントラクトCBのコードに含まれるものと同じであるので説明を省略する。
初期化関数は、引数として、金額と納期と製品納品先とを受け付ける。初期化関数は、実行されると、記憶部14に格納されている、製品納品先を示す変数、金額を示す変数、および納期を示す変数に値を設定する。具体的には、初期化関数は、実行されると、金額を示す変数に引数として受け付けた金額を設定し、納期を示す変数に引数として受け付けた納期を設定し、製品納品先を示す変数に引数として受け付けた金額を設定する。
トランザクションデータTB2の初期化関数に渡す引数は、納期と金額と製品納品先とである。
図15は、本実施の形態におけるトランザクションデータの第三例であるトランザクションデータTA3を示す説明図である。トランザクションデータTA3は、スマートコントラクトCA2の設定関数を実行させるための関数である。トランザクションデータTA3を分散台帳に格納することは、スマートコントラクトCA2の設定関数を実行させる命令を送信することに相当する。
図15に示されるように、トランザクションデータTA3は、「実行される関数」と、「設定関数に渡す引数」と、「署名1」と、「署名2」と、「送信日時」とを含む。
「実行される関数」は、当該スマートコントラクトが分散台帳に格納されることによって実行される関数を示す。図15では、実行される関数として、スマートコントラクトCA2の設定関数が設定されている。
「設定関数に渡す引数」は、当該スマートコントラクトCA2によって実行される関数である設定関数に渡す引数であり、材料納品先(C社の識別情報)を含む。
「署名1」は、トランザクションデータTA3に付与されている2つの電子署名のうちの1つ目である。署名1には、A社の署名SAが含まれている。
「署名2」は、トランザクションデータTA3に付与されている2つの電子署名のうちの2つ目である。署名2には、B社の署名SCが含まれている。
「送信日時」は、トランザクションデータTA3が送信された日時を示す。送信日時には、「2018年11月01日 12時00分00秒」が格納されている。
図15に示されるトランザクションデータTA3が分散台帳に格納されることで、引数である材料納品先にC社の識別情報が設定されてスマートコントラクトCA2の設定関数が実行され、その結果、スマートコントラクトCA2の材料納品先がC社に変更される。
図16および図17は、本実施の形態における契約管理システムの処理を示すシーケンス図である。
図16および図17に示されるシーケンス図について、図6のシーケンス図と同じ処理については、同じ符号を付し、詳細な説明を省略する。
ステップS101B~S105において、台帳サーバ10A等の処理部11は、スマートコントラクトCA2のコードを含むトランザクションデータTA2を取得して分散台帳に格納する。トランザクションデータTA2を分散台帳に格納することは、スマートコントラクトCA2の設定関数を実行させる命令を送信することに相当する。
ここで、ステップS101Bでは、図6のステップS101と比較して、取得するコードの内容が異なる。また、ステップS102BおよびステップS105Bでは、それぞれ、図6のステップS102およびステップS105と比較して、トランザクションデータの内容が異なる。
ステップS106~S107において、台帳サーバ10A等の処理部11は、ステップS105でトランザクションデータTA2を分散台帳に格納したことに基づいて、スマートコントラクトCA2の初期化関数を実行することで、記憶部14に格納されている、金額、納期および材料納品先を設定する。
ステップS108B~S112Bにおいて、台帳サーバ10Aの処理部11によってスマートコントラクトCB2を含むトランザクションデータTB2が生成され、台帳サーバ10Aおよび10Cにより署名が付与されたあとに、分散台帳に格納される。
ここで、ステップS108Bでは、図6のステップS108と比較して、取得するコードの内容と初期化関数に渡す引数とが異なる。また、ステップS109BおよびS112Bでは、それぞれ、図6のステップS109およびステップS112と比較して、トランザクションデータの内容が異なる。
台帳サーバ10A等それぞれの処理部11が、ステップS112BでトランザクションデータTB2を分散台帳に格納したことに基づいて、スマートコントラクトCB2の初期化関数を実行することで、ステップS113が実現される。
図17に移り、ステップS301において、台帳サーバ10Cの処理部11は、トランザクションデータTA3を生成する(図15参照)。
ステップS302において、台帳サーバ10Cの処理部11は、ステップS301で生成したトランザクションデータTA3に署名を付与して、台帳サーバ10Aに送信する。
ステップS303において、台帳サーバ10Aの処理部11は、ステップS302で台帳サーバ10Cの処理部11から取得したトランザクションデータTA3に署名を付与して、台帳サーバ10Bおよび10Cに送信する。
ステップS304において、台帳サーバ10A等のそれぞれは、ステップS303で署名が付与され、または、送信されたトランザクションデータTA3を分散台帳に格納する。トランザクションデータTA3を分散台帳へ格納する際には、コンセンサスアルゴリズムに基づいて合意形成がなされたことを条件として、トランザクションデータTA3を分散台帳へ格納するようにしてもよい。
台帳サーバ10A等それぞれの処理部11が、ステップS304でトランザクションデータTA3を分散台帳に格納したことに基づいて、スマートコントラクトCA2の設定関数を実行することで、下記ステップS305が実現される。
ステップS305において、台帳サーバ10A等それぞれの処理部11は、記憶部14に格納されている材料納品先を示す変数にC社の識別情報を設定する。
以上の一連の処理により、本形態の契約管理システムは、設定関数を含むスマートコントラクトを用いて、A社、B社およびC社が関係する契約を適切に管理しながら、契約を管理するコンピュータシステムの消費電力の増大を抑制することができる。
(2)契約管理システム2をベースとして設定関数を利用する形態
図18は、本実施の形態における取引サーバ10Tの処理を示すフロー図である。
図18に示される取引サーバ10Tの処理は、実施の形態2の取引サーバ10Tの処理(図10参照)と類似している。異なる箇所を主に説明する。
ステップS201~S205において、取引サーバ10Tは、分散台帳にトランザクションデータが新たに格納された場合に、当該トランザクションデータに含まれるスマートコントラクトCBに関連するスマートコントラクトの所定値に設定すべき値を特定する。
ステップS206Bにおいて、取引サーバ10Tの処理部11は、ステップS205で特定した値を、スマートコントラクトCA2の設定関数に引数として渡すトランザクションデータTA3を生成する。
ステップS208Bにおいて、取引サーバ10Tの処理部11は、ステップS206Bで生成したトランザクションデータTA3に署名を付与する。
ステップS209Bにおいて、取引サーバ10Tの処理部11は、ステップS208Bで署名を付与したトランザクションデータTA3を分散台帳に格納する。このとき、ステップS208Bで署名を付与したトランザクションデータTA3が、台帳サーバ10Aなどの処理部11によって分散台帳に格納される。
図19および図20は、本実施の形態における契約管理システムの処理を示すシーケンス図である。
本実施の形態における契約管理システムの処理は、図11に示される処理と類似している。図11に示される処理と異なる個所について説明する。
図19に示される処理は、図11におけるステップS101~S105の処理に相当する部分を抜き出したものである。
ステップS101B~S105Bにおいて、台帳サーバ10A等および取引サーバ10Tの処理部11は、スマートコントラクトCA2のコードを含むトランザクションデータTA2を取得して分散台帳に格納する。
ここで、ステップS101Bでは、図6のステップS101と比較して、取得するコードの内容が異なる。また、ステップS102BおよびステップS105Bでは、それぞれ、図6のステップS102およびステップS105と比較して、トランザクションデータの内容が異なる。
ステップS106以降の処理は、図11におけるステップS106以降の処理と同じであるので図示を省略する。
図20に示される処理は、図12に示される処理と類似している。図12に示される処理と異なる部分について説明する。
図20において、ステップS201~S209Bにおいて、ステップS112A(図11参照)で分散台帳に新たなトランザクションデータTB1が格納されたことに基づいてトランザクションデータTA3を生成し、分散台帳に格納する。ここで、スマートコントラクトCA2の材料納品先がC社と特定され、トランザクションデータTA3に、設定関数に渡す引数として設定される。
台帳サーバ10A等および取引サーバ10Tそれぞれの処理部11が、ステップS209でトランザクションデータTA3を分散台帳に格納したことに基づいて設定関数を実行することで、下記ステップS210Bが実現される。
ステップS210Bにおいて、台帳サーバ10A等および取引サーバ10Tそれぞれの処理部11は、上記設定関数を実行することで、記憶部14に格納されている材料納品先を示す変数に、トランザクションデータTA3で設定関数の引数として渡された材料納品先を設定する。
以上の一連の処理により、本形態の契約管理システムは、設定関数を含むスマートコントラクトを用いて、A社、B社およびC社が関係する契約を適切に管理しながら、契約を管理するコンピュータシステムの消費電力の増大を抑制することができる。
(変形例1)
図21は、本変形例における契約管理システム3の構成を模式的に示すブロック図である。本変形例における契約管理システム3は、実施の形態2の契約管理システム2、または、実施の形態3の形態(2)の契約管理システムの変形例である。
図21に示される契約管理システム3は、台帳サーバ10A、10Bおよび10Cと、端末20A、20Bおよび20Cと、取引サーバ10Tとを備える。
契約管理システム3では、台帳サーバ10A、10Bおよび10Cは、一か所にまとめて配置されている。より一般的には、台帳サーバ10A、10Bおよび10Cは、それぞれ、必ずしもA社、B社およびC社に配置されている必要はなく、ネットワークNに直接的にまたは間接的に接続され得る任意の場所に配置されていてよい。
このような台帳サーバ10A等の配置によっても、実施の形態2の契約管理システム2、または、実施の形態3の形態(2)の契約管理システムと同様の機能を有し、同様の効果を発揮する。
(変形例2)
図22は、本変形例における契約管理システム4の構成を模式的に示すブロック図である。本変形例における契約管理システム4は、実施の形態2の契約管理システム2、または、実施の形態3の形態(2)の契約管理システムの変形例である。
図22に示される契約管理システム4は、取引サーバ10T、10Uおよび10Vと、端末20A、20Bおよび20Cとを備える。
契約管理システム4では、取引サーバ10T、10Uおよび10Vが、それぞれ、台帳サーバ10A、10Bおよび10Cの機能を兼ねている。なお、取引サーバ10T、10Uおよび10Vは、実施の形態3の変形例1の台帳サーバ10A等と同じように一か所にまとめて配置されているが、実施の形態3のようにA社、B社およびC社に配置されていてもよい。
このような取引サーバ10T等の配置によっても、実施の形態2の契約管理システム2、または、実施の形態3の形態(2)の契約管理システムと同様の機能を有し、同様の効果を発揮する。
(補足)
上記各実施の形態、又は、変形例におけるブロックチェーンについて補足的に説明する。
図23は、ブロックチェーンのデータ構造を示す説明図である。
ブロックチェーンは、その記録単位であるブロックがチェーン(鎖)状に接続されたものである。それぞれのブロックは、複数のトランザクションデータと、直前のブロックのハッシュ値とを有している。具体的には、ブロックB2には、その前のブロックB1のハッシュ値が含まれている。そして、ブロックB2に含まれる複数のトランザクションデータと、ブロックB1のハッシュ値とから演算されたハッシュ値が、ブロックB2のハッシュ値として、ブロックB3に含められる。このように、前のブロックの内容をハッシュ値として含めながら、ブロックをチェーン状に接続することで、記録されたトランザクションデータの改ざんを有効に防止する。
仮に過去のトランザクションデータが変更されると、ブロックのハッシュ値が変更前と異なる値になり、改ざんしたブロックを正しいものとみせかけるには、それ以降のブロックすべてを作り直さなければならず、この作業は現実的には非常に困難である。この性質を使用して、ブロックチェーンに改ざん困難性が担保されている。
図24は、トランザクションデータのデータ構造を示す説明図である。
図24に示されるトランザクションデータは、トランザクション本体P1と、電子署名P2とを含む。トランザクション本体P1は、当該トランザクションデータに含まれるデータ本体である。電子署名P2は、トランザクション本体P1のハッシュ値に対して、当該トランザクションデータの作成者の署名鍵で署名する、より具体的には、作成者の秘密鍵で暗号化することで生成されたものである。
トランザクションデータは、電子署名P2を有するので、改ざんが実質的に不可能である。これにより、トランザクション本体の改ざんが防止される。
なお、上記実施の形態において、各構成要素は、専用のハードウェアで構成されるか、各構成要素に適したソフトウェアプログラムを実行することによって実現されてもよい。各構成要素は、CPUまたはプロセッサなどのプログラム実行部が、ハードディスクまたは半導体メモリなどの記録媒体に記録されたソフトウェアプログラムを読み出して実行することによって実現されてもよい。ここで、上記実施の形態のコンテンツ管理システムなどを実現するソフトウェアは、次のようなプログラムである。
すなわち、このプログラムは、コンピュータに、分散台帳を保有している複数の装置を備える契約管理システムにおいて、当該複数の装置のうちの一の装置が実行する制御方法であって、第一ユーザと第二ユーザとの第一契約に関する第一情報を示す第一変数と、前記第一契約に関する前記第一情報とは異なる第二情報を示す第二変数であって前記第二情報が未定であることを示す所定値が設定されている第二変数とを含む第一トランザクションデータを取得し、取得した前記第一トランザクションデータを前記分散台帳に格納し、前記分散台帳に格納した前記第一トランザクションデータに含まれている前記第二変数を読み出して前記一の装置の書き換え可能な記憶部に格納する格納処理を実行し、前記第一ユーザと第三ユーザとの第二契約に関する第三情報を示す第三変数と、前記第三変数に基づいて前記第二変数を変更する変更命令とを含む第二トランザクションデータを取得し、取得した前記第二トランザクションデータを前記分散台帳に格納し、前記第二トランザクションデータを前記分散台帳に格納した後に、前記記憶部に格納されている前記第二変数を前記所定値から前記変更命令に従って変更する変更処理を実行する制御方法を実行させるプログラムである。
以上、一つまたは複数の態様に係る契約管理システムなどについて、実施の形態に基づいて説明したが、本発明は、この実施の形態に限定されるものではない。本発明の趣旨を逸脱しない限り、当業者が思いつく各種変形を本実施の形態に施したものや、異なる実施の形態における構成要素を組み合わせて構築される形態も、一つまたは複数の態様の範囲内に含まれてもよい。
本発明は、契約を管理する契約管理システムに利用可能である。
1、2、3、4 契約管理システム
10A、10B、10C 台帳サーバ
10T、10U、10V 取引サーバ
11 処理部
12 台帳記憶部
13 実行部
14 記憶部
20A、20B、20C 端末
B1、B2、B3 ブロック
CA、CA1、CA2、CB、CB1、CB2 スマートコントラクト
N ネットワーク
P1 トランザクション本体
P2 電子署名
TA、TA1、TA2、TA3、TB、TB1、TB2 トランザクションデータ

Claims (10)

  1. 分散台帳を保有している複数の装置を備える契約管理システムにおいて、当該複数の装置のうちの一の装置が実行する制御方法であって、
    第一ユーザと第二ユーザとの第一契約に関する第一情報を示す第一変数と、前記第一契約に関する前記第一情報とは異なる第二情報を示す第二変数であって前記第二情報が未定であることを示す所定値が設定されている第二変数とを含む第一トランザクションデータを取得し、
    取得した前記第一トランザクションデータを前記分散台帳に格納し、
    前記分散台帳に格納した前記第一トランザクションデータに含まれている前記第二変数を読み出して前記一の装置の書き換え可能な記憶部に格納する格納処理を実行し、
    前記第一ユーザと第三ユーザとの第二契約に関する第三情報を示す第三変数と、前記第三変数に基づいて前記第二変数を変更する変更命令とを含む第二トランザクションデータを取得し、
    取得した前記第二トランザクションデータを前記分散台帳に格納し、
    前記第二トランザクションデータを前記分散台帳に格納した後に、前記記憶部に格納されている前記第二変数を前記所定値から前記変更命令に従って変更する変更処理を実行する
    制御方法。
  2. 前記第一契約は、前記第一ユーザおよび前記第二ユーザと異なるユーザである関係ユーザが関係する契約であり、
    前記第二情報は、前記関係ユーザの識別情報を含み、
    前記第二契約は、前記第一ユーザと、前記関係ユーザである前記第三ユーザとの契約であり、
    前記変更処理は、
    前記記憶部に格納されている前記第二変数を、前記所定値から、前記変更命令に従って前記関係ユーザである前記第三ユーザの識別情報に変更する処理である
    請求項1に記載の制御方法。
  3. 前記第一トランザクションデータは、前記第一変数と、前記第二変数と、前記第一変数および前記第二変数を前記記憶部に格納する格納命令とを含む第一コントラクトコードを含み、
    前記格納処理は、前記第一トランザクションデータが前記分散台帳に格納されたことに基づいて、前記一の装置が備えるコントラクト実行部が前記第一コントラクトコードに含まれる前記格納命令を実行したことによって行われる
    請求項1または2に記載の制御方法。
  4. 前記第一コントラクトコードは、前記記憶部に格納される前記第二変数を設定する設定関数を含み、
    前記変更処理は、
    前記設定関数を実行させる命令を含む第三トランザクションデータを取得した場合に、取得した前記第三トランザクションデータが前記分散台帳に格納されたことに基づいて、前記コントラクト実行部が前記設定関数を実行したことで行われる
    請求項3に記載の制御方法。
  5. 前記第二トランザクションデータは、前記第三変数と、前記変更命令とを含む第二コントラクトコードを含み、
    前記変更処理は、前記第二トランザクションデータが前記分散台帳に格納されたことに基づいて、前記一の装置が備えるコントラクト実行部により前記変更命令が実行されたことによって行われる
    請求項1~4のいずれか1項に記載の制御方法。
  6. 前記第一トランザクションデータは、前記第一ユーザの電子署名と、前記第二ユーザの電子署名とを含んでいて、
    前記第一トランザクションデータを前記分散台帳に格納する際には、
    前記第一トランザクションデータに含まれている前記第一ユーザの電子署名と、前記第二ユーザの電子署名との両方の検証が成功した場合に、前記第一トランザクションデータを前記分散台帳に格納する
    請求項1~5のいずれか1項に記載の制御方法。
  7. 前記第二トランザクションデータは、前記第一ユーザの電子署名と、前記第三ユーザの電子署名とを含んでいて、
    前記第二トランザクションデータを前記分散台帳に格納する際には、
    前記第二トランザクションデータに含まれている前記第一ユーザの電子署名と、前記第三ユーザの電子署名との両方の検証が成功した場合に、前記第二トランザクションデータを前記分散台帳に格納する
    請求項1~6のいずれか1項に記載の制御方法。
  8. 前記第一契約は、前記第一ユーザが前記第二ユーザから材料を購入し、購入した前記材料を納品先に配送することを定めた契約を含み、
    前記第一情報は、前記材料の購入金額と、前記材料を納品する期限とを含み、
    前記第二情報は、前記材料の納品先を含み、
    前記第二契約は、前記第三ユーザが、前記第二ユーザから納入された前記材料から製品を製造して前記第一ユーザに納品することを定めた契約を含み、
    前記第三情報は、前記製品の購入金額と、前記製品を納品する期限と、前記製品の納品先とを含む
    請求項1~7のいずれか1項に記載の制御方法。
  9. 分散台帳を保有している複数の装置を備える契約管理システムにおける、当該複数の装置のうちの一の装置であって、
    処理部と、
    前記分散台帳を記憶している台帳記憶部と、
    実行部と、
    書き換え可能な記憶部とを備え、
    前記処理部は、第一ユーザと第二ユーザとの第一契約に関する第一情報を示す第一変数と、前記第一契約に関する前記第一情報とは異なる第二情報を示す第二変数であって前記第二情報が未定であることを示す所定値が設定されている第二変数とを含む第一トランザクションデータを取得し、取得した前記第一トランザクションデータを前記分散台帳に格納し、
    前記実行部は、前記分散台帳に格納した前記第一トランザクションデータに含まれている前記第二変数を読み出して前記記憶部に格納する格納処理を実行し、
    前記処理部は、さらに、前記第一ユーザと第三ユーザとの第二契約に関する第三情報を示す第三変数と、前記第三変数に基づいて前記第二変数を変更する変更命令とを含む第二トランザクションデータを取得し、取得した前記第二トランザクションデータを前記分散台帳に格納し、
    前記実行部は、前記第二トランザクションデータを前記分散台帳に格納した後に、前記記憶部に格納されている前記第二変数を前記所定値から前記変更命令に従って変更する変更処理を実行する
    装置。
  10. 請求項1~8のいずれか1項に記載の制御方法をコンピュータに実行させるプログラム。
JP2021565559A 2019-12-19 2020-12-11 制御方法、装置、および、プログラム Active JP7497374B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201962950536P 2019-12-19 2019-12-19
US62/950,536 2019-12-19
PCT/JP2020/046396 WO2021125106A1 (ja) 2019-12-19 2020-12-11 制御方法、装置、および、プログラム

Publications (2)

Publication Number Publication Date
JPWO2021125106A1 JPWO2021125106A1 (ja) 2021-06-24
JP7497374B2 true JP7497374B2 (ja) 2024-06-10

Family

ID=76477492

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021565559A Active JP7497374B2 (ja) 2019-12-19 2020-12-11 制御方法、装置、および、プログラム

Country Status (4)

Country Link
US (1) US20220309495A1 (ja)
JP (1) JP7497374B2 (ja)
CN (1) CN114830149A (ja)
WO (1) WO2021125106A1 (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018106386A (ja) 2016-12-26 2018-07-05 富士通株式会社 プログラム、情報処理装置、および情報処理方法
JP2019515534A (ja) 2016-04-29 2019-06-06 エヌチェーン ホールディングス リミテッドNchain Holdings Limited 分散ハッシュテーブル及びピア・ツー・ピア分散型台帳を利用した契約の実行を制御する方法及びシステム

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130047776A (ko) * 2011-10-20 2013-05-09 이재천 도메인 독립형 개별공사용 웹사이트 및 자동생성기와 이를 이용한 그룹 시스템
CN107025559B (zh) * 2017-01-26 2020-09-18 创新先进技术有限公司 一种业务处理方法及装置
WO2019003414A1 (ja) * 2017-06-30 2019-01-03 株式会社三井住友銀行 貿易取引のためのシステム、方法、およびプログラム
WO2019070853A1 (en) * 2017-10-04 2019-04-11 The Dun & Bradstreet Corporation SYSTEM AND METHOD FOR IDENTITY RESOLUTION ON A SET OF DISPARATE NETWORKS OF IMMUNE DISTRIBUTED REGISTERS
US11699201B2 (en) * 2017-11-01 2023-07-11 Docusign, Inc. System and method for blockchain-based network transitioned by a legal contract
US20190318353A1 (en) * 2018-04-12 2019-10-17 Bank Of America Corporation Real time data processing platform for resources on delivery interactions
US11038948B2 (en) * 2018-05-24 2021-06-15 Cisco Technology, Inc. Real time updates and predictive functionality in block chain
EP3887978A4 (en) * 2018-11-29 2022-08-17 Vineti Inc. CENTRALIZED AND DECENTRALIZED CUSTOMIZED MEDICATION PLATFORM
KR102151893B1 (ko) * 2018-11-30 2020-09-03 알리바바 그룹 홀딩 리미티드 탈중앙화 결정을 사용하는 블록체인 스마트 계약 업데이트
US11663348B2 (en) * 2018-12-21 2023-05-30 International Business Machines Corporation Dynamic entitlement for blockchain data
US20200410791A1 (en) * 2019-06-25 2020-12-31 Scientia Potentia Est, LLC. Site supervisor system for construction sites
US11216772B2 (en) * 2019-06-25 2022-01-04 Scientia Potentia Est., LLC Use of blockchain-based distributed ledger and smart contracts for a construction project

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019515534A (ja) 2016-04-29 2019-06-06 エヌチェーン ホールディングス リミテッドNchain Holdings Limited 分散ハッシュテーブル及びピア・ツー・ピア分散型台帳を利用した契約の実行を制御する方法及びシステム
JP2018106386A (ja) 2016-12-26 2018-07-05 富士通株式会社 プログラム、情報処理装置、および情報処理方法

Also Published As

Publication number Publication date
WO2021125106A1 (ja) 2021-06-24
JPWO2021125106A1 (ja) 2021-06-24
CN114830149A (zh) 2022-07-29
US20220309495A1 (en) 2022-09-29

Similar Documents

Publication Publication Date Title
CN109064334B (zh) 一种智能合约记账方法、计算机装置及可读存储介质
JP6640320B1 (ja) トークン管理システムおよびトークン管理方法
JP6864088B2 (ja) ブロックチェーン上のスマートコントラクトの安全性を向上するためのシステムと方法
CN110557403B (zh) 基于区块链的资源分配方法、装置、存储介质及节点设备
CN108305072A (zh) 部署区块链网络的方法、设备和计算机存储介质
CN110400217B (zh) 智能合约的规则变更处理方法及装置
CN110597916B (zh) 基于区块链的数据处理方法、装置、存储介质及终端
JP6859503B2 (ja) 公開情報の処理方法及びデバイス並びに情報公開システム
CN109559164B (zh) 优惠信息处理方法、装置、电子设备及计算机可读介质
CN115701078B (zh) 跨链交易处理方法、装置、电子设备以及存储介质
CN112565412B (zh) 基于区块链的数据交易方法、系统以及设备
CN111292057A (zh) 一种基于区块链的业务处理方法
CN111274597A (zh) 一种数据处理方法以及设备
JP7524220B2 (ja) 制御方法、装置、および、プログラム
JP7410890B2 (ja) 制御方法、サーバおよびプログラム
JP7497374B2 (ja) 制御方法、装置、および、プログラム
CN110852891A (zh) 基于轧差的数据处理方法、装置以及可读存储介质
CN115345729A (zh) 信用卡的发卡方法、装置、电子设备及存储介质
US20220301086A1 (en) Control method, device, and recording medium
CN112104749B (zh) 一种基于区块链的条码标签生命周期管理方法和装置
US20210326942A1 (en) Method of Securing Online Merchant Reviews Using Block Chains
CN114331460A (zh) 基于区块链的基金交易确认方法、装置、设备及存储介质
CN114493583A (zh) 基于去中心化对等网络技术的会员管理方法及装置
CN114066451A (zh) 管理资金交易的方法和系统、电子设备
CN113298574A (zh) 基于区块链的积分管理方法、装置及存储介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230913

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20240507

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240529

R150 Certificate of patent or registration of utility model

Ref document number: 7497374

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150