JP2019220146A - Management method, management apparatus, and, program - Google Patents

Management method, management apparatus, and, program Download PDF

Info

Publication number
JP2019220146A
JP2019220146A JP2019054577A JP2019054577A JP2019220146A JP 2019220146 A JP2019220146 A JP 2019220146A JP 2019054577 A JP2019054577 A JP 2019054577A JP 2019054577 A JP2019054577 A JP 2019054577A JP 2019220146 A JP2019220146 A JP 2019220146A
Authority
JP
Japan
Prior art keywords
version
transaction data
management
software
information
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.)
Granted
Application number
JP2019054577A
Other languages
Japanese (ja)
Other versions
JP7316812B2 (en
Inventor
淳児 道山
Junji Michiyama
淳児 道山
添田 純一郎
Junichiro Soeda
純一郎 添田
勇二 海上
Yuji Kaijo
勇二 海上
雄揮 廣瀬
Yuki Hirose
雄揮 廣瀬
哲司 渕上
Tetsuji Fuchigami
哲司 渕上
大森 基司
Motoji Omori
基司 大森
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
Priority to EP19180158.8A priority Critical patent/EP3584759B1/en
Priority to CN201910514732.5A priority patent/CN110619235A/en
Priority to US16/441,814 priority patent/US11327745B2/en
Publication of JP2019220146A publication Critical patent/JP2019220146A/en
Priority to JP2023069332A priority patent/JP7472359B2/en
Application granted granted Critical
Publication of JP7316812B2 publication Critical patent/JP7316812B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

To provide a management method of the software version capable of preventing the generation of alteration of the information under management.SOLUTION: The management method includes: a first management apparatus in multiple management apparatuses receives a piece of transaction data that includes a piece of first information relevant to a first version of a software, a piece of second information relevant to a second version of the software version-upped by a developer on the basis of the first version, a piece of identification information of the developer, and an electronic signature from a unit connected to the first management apparatus via a network (S124); the first management apparatus verifies the validity of the transaction data by using the electronic signature included in the received transaction data (S114); and when the transaction data is valid, each of the multiple management apparatuses stores the transaction data on a distributed ledger (S115).SELECTED DRAWING: Figure 12

Description

本発明は、管理方法、管理装置、及び、プログラムに関する。   The present invention relates to a management method, a management device, and a program.

ソフトウェアを管理する管理システムでは、上記開発者により開発されたソフトウェアのバージョンを示すバージョン情報が開発者の識別情報とともに管理される(例えば特許文献1参照)。   In a management system for managing software, version information indicating the version of software developed by the developer is managed together with the identification information of the developer (for example, see Patent Document 1).

特開2014−203352号公報JP 2014-203352 A

しかしながら、従来の管理システムでは、管理サーバで管理されている情報の改ざんを防ぐことが難しいという問題がある。   However, the conventional management system has a problem that it is difficult to prevent tampering of information managed by the management server.

そこで、本発明は、ソフトウェアのバージョン管理方法であって、管理している情報の改ざんの発生を抑制する管理方法などを提供する。   Accordingly, the present invention provides a software version management method, such as a management method for suppressing the occurrence of falsification of managed information.

本発明の一態様に係る管理方法は、バージョン管理システムにより実行される、ソフトウェアのバージョンの管理方法であって、前記バージョン管理システムは、分散台帳を保有している複数の管理装置を備え、前記管理方法は、前記複数の管理装置のうちの第一の管理装置が、前記ソフトウェアの第一バージョンに関する第一情報と、前記第一バージョンを元に開発者によってバージョンアップされた前記ソフトウェアの第二バージョンに関する第二情報と、前記開発者の識別情報と、電子署名とを含むトランザクションデータを、前記第一の管理装置にネットワークを介して接続されている装置から受信し、前記第一の管理装置が、受信した前記トランザクションデータに含まれる前記電子署名を用いて前記トランザクションデータの正当性を検証し、前記トランザクションデータが正当である場合に、前記複数の管理装置それぞれが前記トランザクションデータを前記分散台帳に格納する。   A management method according to an aspect of the present invention is a software version management method executed by a version management system, wherein the version management system includes a plurality of management devices holding a distributed ledger, The management method includes: a first management device among the plurality of management devices, a first information regarding a first version of the software, and a second information of the software upgraded by a developer based on the first version. Receiving transaction data including version information, the developer identification information, and an electronic signature from a device connected to the first management device via a network; Corrects the transaction data using the electronic signature included in the received transaction data. Verify the sex, when the transaction data is valid, each of the plurality of management apparatus storing the transaction data in the distributed ledger.

なお、これらの包括的または具体的な態様は、システム、方法、集積回路、コンピュータプログラムまたはコンピュータ読み取り可能なCD−ROMなどの記録媒体で実現されてもよく、システム、方法、集積回路、コンピュータプログラムおよび記録媒体の任意な組み合わせで実現されてもよい。   Note that these comprehensive or specific aspects may be realized by a recording medium such as a system, a method, an integrated circuit, a computer program or a computer-readable CD-ROM, and the system, the method, the integrated circuit, and the computer program. And any combination of recording media.

本発明によれば、ソフトウェアのバージョン管理方法であって、管理している情報の改ざんの発生を抑制する管理方法を提供できる。   According to the present invention, it is possible to provide a software version management method that suppresses the occurrence of falsification of managed information.

図1は、アジャイル型開発によるソフトウェアのバージョン系列を示す説明図である。FIG. 1 is an explanatory diagram showing a software version series based on agile development. 図2は、アジャイル型開発におけるトークンの授受を示す説明図である。FIG. 2 is an explanatory diagram showing the exchange of tokens in agile development. 図3は、実施の形態1に係る管理システムの構成を示す説明図である。FIG. 3 is an explanatory diagram illustrating the configuration of the management system according to the first embodiment. 図4は、実施の形態1に係る保管サーバの構成を示すブロック図である。FIG. 4 is a block diagram showing a configuration of the storage server according to the first embodiment. 図5は、実施の形態1に係る開発装置の構成を示すブロック図である。FIG. 5 is a block diagram illustrating a configuration of the development device according to the first embodiment. 図6は、実施の形態1に係る管理装置の構成を示すブロック図である。FIG. 6 is a block diagram illustrating a configuration of the management device according to the first embodiment. 図7は、実施の形態1に係るトランザクションデータの第一例を示す説明図である。FIG. 7 is an explanatory diagram illustrating a first example of transaction data according to the first embodiment. 図8は、実施の形態1に係るトランザクションデータの第二例を示す説明図である。FIG. 8 is an explanatory diagram illustrating a second example of the transaction data according to the first embodiment. 図9は、実施の形態1に係るトランザクションデータの第三例を示す説明図である。FIG. 9 is an explanatory diagram illustrating a third example of the transaction data according to the first embodiment. 図10は、実施の形態1に係るブロックチェーンに格納されているトランザクションデータの例を示す説明図である。FIG. 10 is an explanatory diagram illustrating an example of transaction data stored in the block chain according to the first embodiment. 図11は、実施の形態1に係る管理システムにおける第一の処理を示すシーケンス図である。FIG. 11 is a sequence diagram illustrating a first process in the management system according to the first embodiment. 図12は、実施の形態1に係る管理システムにおける第二の処理を示すシーケンス図である。FIG. 12 is a sequence diagram illustrating a second process in the management system according to the first embodiment. 図13は、実施の形態2に係る、バージョン系列の分岐を示す説明図である。FIG. 13 is an explanatory diagram illustrating branching of a version sequence according to the second embodiment. 図14は、実施の形態2に係る管理システムの構成を示す説明図である。FIG. 14 is an explanatory diagram illustrating the configuration of the management system according to the second embodiment. 図15は、実施の形態2に係る制御装置の構成を示すブロック図である。FIG. 15 is a block diagram illustrating a configuration of a control device according to the second embodiment. 図16は、実施の形態2に係る管理装置の構成を示すブロック図である。FIG. 16 is a block diagram illustrating a configuration of a management device according to the second embodiment. 図17は、実施の形態2に係るブロックチェーンに格納されているトランザクションデータを示す第一の説明図である。FIG. 17 is a first explanatory diagram illustrating transaction data stored in the block chain according to the second embodiment. 図18は、実施の形態2に係るブロックチェーンに格納されているトランザクションデータを示す第二の説明図である。FIG. 18 is a second explanatory diagram illustrating the transaction data stored in the block chain according to the second embodiment. 図19は、実施の形態2に係る管理システムにおける処理を示すシーケンス図である。FIG. 19 is a sequence diagram illustrating processing in the management system according to the second embodiment. 図20は、実施の形態2に係るトランザクションデータの例を示す説明図である。FIG. 20 is an explanatory diagram illustrating an example of transaction data according to the second embodiment. 図21は、実施の形態2に係るコンセンサスアルゴリズムに含まれるバージョン系列に関する処理を示すフロー図である。FIG. 21 is a flowchart showing a process related to a version sequence included in the consensus algorithm according to the second embodiment. 図22は、実施の形態3に係る、バージョン系列の廃止を示す説明図である。FIG. 22 is an explanatory diagram illustrating the abolition of the version series according to the third embodiment. 図23は、実施の形態3に係る制御装置の構成を示すブロック図である。FIG. 23 is a block diagram illustrating a configuration of a control device according to Embodiment 3. 図24は、実施の形態3に係る管理装置の構成を示すブロック図である。FIG. 24 is a block diagram illustrating a configuration of a management device according to the third embodiment. 図25は、実施の形態3に係るトランザクションデータの例を示す説明図である。FIG. 25 is an explanatory diagram illustrating an example of transaction data according to the third embodiment. 図26は、実施の形態3に係るブロックチェーンに格納されているトランザクションデータを示す説明図である。FIG. 26 is an explanatory diagram illustrating transaction data stored in the block chain according to the third embodiment. 図27は、実施の形態3に係る状態管理部が管理している情報を示す説明図である。FIG. 27 is an explanatory diagram illustrating information managed by the state management unit according to the third embodiment. 図28は、実施の形態3に係る管理システムにおける処理を示すシーケンス図である。FIG. 28 is a sequence diagram illustrating processing in the management system according to the third embodiment. 図29は、ブロックチェーンのデータ構造を示す説明図である。FIG. 29 is an explanatory diagram showing the data structure of the block chain. 図30は、トランザクションデータのデータ構造を示すの説明図である。FIG. 30 is an explanatory diagram showing the data structure of the transaction data.

(本発明の基礎となった知見)
本発明者は、「背景技術」の欄において記載した、ソフトウェアの開発に関し、以下の問題が生じることを見出した。
(Knowledge underlying the present invention)
The present inventor has found that the following problems occur with respect to software development described in the section of “Background Art”.

ソフトウェア開発をする際に、開発メーカなどだけでなく不特定多数の開発者が参加する形態である、アジャイル型開発が用いられている。この形態では、多数の開発者がソフトウェアを改良することによりさまざまなバージョン系列が発生し得る。   When developing software, agile development is used, in which an unspecified number of developers as well as development manufacturers participate. In this form, a variety of version sequences can occur as many developers improve the software.

ソフトウェアを管理する管理システムでは、上記開発者により開発されたソフトウェアのバージョンを示すバージョン情報が、開発者の識別情報とともに管理される(例えば特許文献1参照)。   In a management system that manages software, version information indicating a version of software developed by the developer is managed together with identification information of the developer (for example, see Patent Document 1).

ここで、バージョン情報は、当該ソフトウェアのバージョンを一意に特定する役割を有する。また、開発者の識別情報は、ソフトウェアの新たなバージョンの開発に係る報酬を開発者に提供するために用いられ得る。   Here, the version information has a role of uniquely specifying the version of the software. Also, the developer identification information can be used to provide a reward to the developer for developing a new version of the software.

しかしながら、従来の管理システムでは、管理サーバで管理されているプログラムのバージョン情報、又は、開発者の識別情報の改ざんを防ぐことが難しいという問題がある。   However, the conventional management system has a problem that it is difficult to prevent the version information of the program managed by the management server or the falsification of the developer identification information.

そこで、本発明は、管理している情報の改ざんの発生を抑制する管理方法などを提供する。   Thus, the present invention provides a management method and the like for suppressing the occurrence of falsification of managed information.

本発明の一態様に係る管理方法は、バージョン管理システムにより実行される、ソフトウェアのバージョンの管理方法であって、前記バージョン管理システムは、分散台帳を保有している複数の管理装置を備え、前記管理方法は、前記複数の管理装置のうちの第一の管理装置が、前記ソフトウェアの第一バージョンに関する第一情報と、前記第一バージョンを元に開発者によってバージョンアップされた前記ソフトウェアの第二バージョンに関する第二情報と、前記開発者の識別情報と、電子署名とを含むトランザクションデータを、前記第一の管理装置にネットワークを介して接続されている装置から受信し、前記第一の管理装置が、受信した前記トランザクションデータに含まれる前記電子署名を用いて前記トランザクションデータの正当性を検証し、前記トランザクションデータが正当である場合に、前記複数の管理装置それぞれが前記トランザクションデータを前記分散台帳に格納する。   A management method according to an aspect of the present invention is a software version management method executed by a version management system, wherein the version management system includes a plurality of management devices holding a distributed ledger, The management method includes: a first management device among the plurality of management devices, a first information regarding a first version of the software, and a second information of the software upgraded by a developer based on the first version. Receiving transaction data including version information, the developer identification information, and an electronic signature from a device connected to the first management device via a network; Corrects the transaction data using the electronic signature included in the received transaction data. Verify the sex, when the transaction data is valid, each of the plurality of management apparatus storing the transaction data in the distributed ledger.

上記態様によれば、ソフトウェアのバージョンアップをした開発者に関する情報が分散台帳によって管理される。分散台帳は、保有している情報の改ざんが困難であり、また、システムダウンの影響を受けにくいという利点がある。よって、上記管理方法によって、管理している情報の改ざんの発生を抑制することができる。   According to the above aspect, information on the developer whose software has been upgraded is managed by the distributed ledger. The distributed ledger has the advantage that it is difficult to falsify the information it holds and that it is less susceptible to system downtime. Therefore, the management method can suppress the occurrence of falsification of the managed information.

例えば、前記第二情報は、前記第二バージョンのバージョン番号を含み、前記管理方法は、さらに、前記トランザクションデータを受信する前に、前記第二バージョンのバージョン番号の発行依頼を前記装置から受信した場合に、前記第二バージョンのバージョン番号として新たなバージョン番号を前記装置に送信し、前記トランザクションデータを受信する際には、前記装置に送信した前記新たなバージョン番号を前記第二情報として含む前記トランザクションデータを受信してもよい。   For example, the second information includes a version number of the second version, and further, the management method further includes, before receiving the transaction data, receiving an issuance request for a version number of the second version from the device. In the case, a new version number is transmitted to the device as a version number of the second version, and when the transaction data is received, the new version number transmitted to the device is included as the second information. Transaction data may be received.

上記態様によれば、新しいバージョンのバージョン番号を発行し、その発行したバージョン番号と紐付けて新しいバージョンの開発者に関する情報が管理される。当該バージョン管理システムと異なる装置などによってバージョン番号を付すとすれば、バージョン番号の重複などの不備が生じ得る。本発明に係る管理方法によれば、バージョン番号の不備を未然に回避しながら、管理している情報の改ざんの発生を抑制することができる。   According to the above aspect, the version number of the new version is issued, and the information on the developer of the new version is managed in association with the issued version number. If the version number is assigned by a device different from the version management system, defects such as duplication of the version number may occur. ADVANTAGE OF THE INVENTION According to the management method concerning this invention, it can suppress generation | occurrence | production of the falsification of managed information, avoiding the defect of a version number beforehand.

例えば、前記第一情報は、前記ソフトウェアの前記第一バージョンのバージョン番号を含み、前記第二情報は、前記ソフトウェアの前記第二バージョンのハッシュ値と、前記第二バージョンのバージョン番号とを含んでもよい。   For example, the first information may include a version number of the first version of the software, and the second information may include a hash value of the second version of the software and a version number of the second version. Good.

上記態様によれば、第一バージョンのバージョン番号と、第二バージョンのハッシュ値と、第二バージョンのバージョン番号とを用いて、より容易に、管理している情報の改ざんの発生を抑制することができる。   According to the above aspect, by using the version number of the first version, the hash value of the second version, and the version number of the second version, it is possible to more easily suppress the occurrence of falsification of the managed information. Can be.

例えば、前記第一情報は、前記ソフトウェアの前記第一バージョンのハッシュ値を含み、前記第二情報は、前記ソフトウェアの前記第二バージョンのハッシュ値を含んでもよい。   For example, the first information may include a hash value of the first version of the software, and the second information may include a hash value of the second version of the software.

上記態様によれば、第一バージョンのハッシュ値と、第二バージョンのハッシュ値とを用いて、より容易に、管理している情報の改ざんの発生を抑制することができる。   According to the above aspect, using the hash value of the first version and the hash value of the second version can more easily suppress the occurrence of falsification of the managed information.

例えば、前記第一情報は、前記ソフトウェアの前記第一バージョンのハッシュ値を含み、前記第二情報は、前記ソフトウェアの前記第一バージョンと前記第二バージョンとの差分のハッシュ値を含んでもよい。   For example, the first information may include a hash value of the first version of the software, and the second information may include a hash value of a difference between the first version and the second version of the software.

上記態様によれば、第一バージョンのハッシュ値と、第一バージョンと第二バージョンとの差分のハッシュ値とを用いて、より容易に、管理している情報の改ざんの発生を抑制することができる。   According to the above aspect, by using the hash value of the first version and the hash value of the difference between the first version and the second version, it is possible to more easily suppress the occurrence of falsification of the managed information. it can.

例えば、前記装置は、前記ソフトウェアの前記第二バージョンが格納されている場所を示す場所情報を保有しており、前記管理方法は、前記トランザクションデータを受信する際には、前記場所情報を含む前記トランザクションデータを受信してもよい。   For example, the apparatus has location information indicating a location where the second version of the software is stored, and the management method includes the location information when receiving the transaction data. Transaction data may be received.

上記態様によれば、第二バージョンのソフトウェアの格納場所を示す情報が、開発者に関する情報とともに分散台帳に格納される。よって、さらに第二バージョンが格納された場所情報の改ざんの発生をも抑制しながら、管理している情報の改ざんの発生を抑制することができる。   According to the above aspect, the information indicating the storage location of the second version of the software is stored in the distributed ledger together with the information on the developer. Therefore, it is possible to suppress the occurrence of falsification of the managed information while suppressing the falsification of the location information in which the second version is stored.

例えば、前記管理方法は、前記ソフトウェアの第一バージョン系列から第二バージョン系列を分岐させる際には、前記第一バージョン系列のうちの最後のバージョンを少なくとも含む1以上のバージョンを、前記第二バージョン系列の1以上のバージョンとして有する新たな分散台帳を生成し、前記複数の管理装置が前記新たな分散台帳を保有してもよい。   For example, the management method, when branching the second version series from the first version series of the software, at least one version including at least the last version of the first version series, the second version A new distributed ledger having one or more versions of a series may be generated, and the plurality of management apparatuses may hold the new distributed ledger.

上記態様によれば、複数のバージョン系列それぞれに対応した分散台帳を管理しており、バージョン系列の分岐の際に、新しい系列に対応する分散台帳を生成する。一の系列で多数のバージョンアップが行われると、バージョンアップの履歴などの情報を取得する際に、多数のバージョンアップそれぞれに対応する情報が得られ、処理負荷が高くなる可能性がある。このような場合にバージョン系列を分岐し、新たなバージョン系列を新たな分散台帳で管理することで、バージョンアップの履歴などの情報を少なくし、上記の処理負荷の上昇を未然に防ぐことができる。   According to the above aspect, the distribution ledger corresponding to each of the plurality of version series is managed, and when the version series branches, the distribution ledger corresponding to the new series is generated. If a large number of version upgrades are performed in one series, when acquiring information such as a history of version upgrades, information corresponding to each of the multiple version upgrades is obtained, and there is a possibility that the processing load increases. In such a case, by branching the version series and managing the new version series with a new distributed ledger, it is possible to reduce information such as the history of version upgrades and prevent the above processing load from increasing. .

例えば、前記トランザクションデータを受信する際には、前記トランザクションデータが前記第一バージョン系列又は前記第二バージョン系列のどちらに係るトランザクションデータであるかを特定し、受信した前記トランザクションデータを、前記第一バージョン系列及び前記第二バージョン系列のうち、特定した前記トランザクションデータに対応するバージョン系列に対応する分散台帳に格納してもよい。   For example, when receiving the transaction data, it specifies whether the transaction data is the transaction data according to the first version series or the second version series, the received transaction data, the first It may be stored in a distributed ledger corresponding to the version series corresponding to the specified transaction data among the version series and the second version series.

上記態様によれば、複数のバージョン系列が複数の分散台帳によって管理されているときに、どちらのバージョン系列に属するトランザクションデータかを特定し、当該トランザクションデータを適切な分散台帳により管理することができる。   According to the above aspect, when a plurality of version series are managed by a plurality of distributed ledgers, it is possible to specify which version series the transaction data belongs to, and manage the transaction data by an appropriate distributed ledger. .

例えば、前記管理方法は、さらに、一のバージョン系列を廃止する際には、前記一のバージョン系列を廃止することを示すトランザクションデータを生成し、生成したトランザクションデータを、前記一のバージョン系列に対応する前記分散台帳に格納してもよい。   For example, the management method further includes, when abolishing one version series, generating transaction data indicating that the one version series is abolished, and generating the generated transaction data corresponding to the one version series. May be stored in the distribution ledger.

上記態様によれば、所定のトランザクションデータによって、適切にバージョン系列を廃止することができる。よって、さらにバージョン系列の廃止を実現しながら、より容易に、管理している情報の改ざんの発生を抑制することができる。   According to the above aspect, the version series can be appropriately abolished by the predetermined transaction data. Therefore, it is possible to more easily suppress the falsification of the managed information while further eliminating the version series.

例えば、前記管理方法は、さらに、前記分散台帳に格納されている前記トランザクションデータを参照して、前記開発者にトークンを提供してもよい。   For example, the management method may further provide a token to the developer with reference to the transaction data stored in the distributed ledger.

上記態様によれば、これまでのトランザクションデータに基づいて新しいバージョンの開発者にトークンが提供される。分散台帳に格納されたトランザクションデータの改ざんが困難であるので、開発者になりすます不適切な者へのトークンの提供を未然に回避することができる。このように、管理している情報の改ざんの発生を抑制し、不適切なトークンの提供を未然に回避することができる。   According to the above aspect, a token is provided to a new version of the developer based on the transaction data so far. Since it is difficult to falsify the transaction data stored in the distributed ledger, it is possible to avoid providing a token to an inappropriate person impersonating a developer. In this way, it is possible to suppress the occurrence of falsification of the managed information and to avoid providing inappropriate tokens.

例えば、前記分散台帳はブロックチェーンであり、前記トランザクションデータが正当である場合、前記複数の管理装置のそれぞれが前記トランザクションデータを前記ブロックチェーンに格納してもよい。   For example, the distributed ledger is a block chain, and when the transaction data is valid, each of the plurality of management devices may store the transaction data in the block chain.

上記態様によれば、複数の管理装置が、分散台帳としてブロックチェーンを用いることによって、より容易に、管理している情報の改ざんの発生を抑制することができる。   According to the above aspect, the use of the blockchain as the distributed ledger by the plurality of management apparatuses can more easily suppress the falsification of the information being managed.

本発明の一態様に係る管理装置は、ソフトウェアのバージョンを管理するためのバージョン管理システムが備える、分散台帳を保有している複数の管理装置のうちの第一の管理装置であって、前記ソフトウェアの第一バージョンに関する第一情報と、前記第一バージョンを元に開発者によってバージョンアップされた前記ソフトウェアの第二バージョンに関する第二情報と、前記開発者の識別情報と、電子署名とを含むトランザクションデータを、前記第一の管理装置にネットワークを介して接続されている装置から受信し、受信した前記トランザクションデータに含まれる前記電子署名を用いて前記トランザクションデータの正当性を検証するトランザクション検証部と、前記トランザクションデータが正当である場合に、前記トランザクションデータを前記分散台帳に格納する台帳管理部とを備える。   The management device according to an aspect of the present invention is a first management device among a plurality of management devices holding a distributed ledger, provided in a version management system for managing software versions, wherein the software Transaction including first information about a first version of the software, second information about a second version of the software upgraded by a developer based on the first version, identification information of the developer, and an electronic signature A data verifying unit that receives data from a device connected to the first management device via a network, and verifies the validity of the transaction data using the electronic signature included in the received transaction data; and , If the transaction data is valid, the transaction And a ledger managing unit for storing in said dispersion ledger the Yondeta.

これにより、上記管理方法と同様の効果を奏する。   Thereby, an effect similar to that of the above-described management method can be obtained.

本発明の一態様に係る管理装置は、ソフトウェアのバージョンを管理するためのバージョン管理システムが備える、分散台帳を保有している複数の管理装置のうちの第一の管理装置として、コンピュータを動作させるためのプログラムであって、前記ソフトウェアの第一バージョンに関する第一情報と、前記第一バージョンを元に開発者によってバージョンアップされた前記ソフトウェアの第二バージョンに関する第二情報と、前記開発者の識別情報と、電子署名とを含むトランザクションデータを、前記第一の管理装置にネットワークを介して接続されている装置から受信し、受信した前記トランザクションデータに含まれる前記電子署名を用いて前記トランザクションデータの正当性を検証し、前記トランザクションデータが正当である場合に、前記トランザクションデータを前記分散台帳に格納する。   A management device according to one embodiment of the present invention operates a computer as a first management device among a plurality of management devices having a distributed ledger, which is included in a version management system for managing software versions. A first information about a first version of the software, a second information about a second version of the software upgraded by a developer based on the first version, and an identification of the developer. Information, transaction data including an electronic signature is received from a device connected to the first management device via a network, and the transaction data is received using the electronic signature included in the received transaction data. Verify the validity and the transaction data is valid The case, storing said transaction data in said dispersion ledger.

これにより、上記管理方法と同様の効果を奏する。   Thereby, an effect similar to that of the above-described management method can be obtained.

なお、これらの包括的または具体的な態様は、システム、方法、集積回路、コンピュータプログラムまたはコンピュータ読み取り可能なCD−ROMなどの記録媒体で実現されてもよく、システム、方法、集積回路、コンピュータプログラムまたは記録媒体の任意な組み合わせで実現されてもよい。   Note that these comprehensive or specific aspects may be realized by a recording medium such as a system, a method, an integrated circuit, a computer program or a computer-readable CD-ROM, and the system, the method, the integrated circuit, and the computer program. Alternatively, it may be realized by an arbitrary combination of recording media.

以下、実施の形態について、図面を参照しながら具体的に説明する。   Hereinafter, embodiments will be specifically described with reference to the drawings.

なお、以下で説明する実施の形態は、いずれも包括的または具体的な例を示すものである。以下の実施の形態で示される数値、形状、材料、構成要素、構成要素の配置位置及び接続形態、ステップ、ステップの順序などは、一例であり、本発明を限定する主旨ではない。また、以下の実施の形態における構成要素のうち、最上位概念を示す独立請求項に記載されていない構成要素については、任意の構成要素として説明される。   Each of the embodiments described below shows a comprehensive or specific example. Numerical values, shapes, materials, constituent elements, arrangement positions and connection forms of constituent elements, steps, order of steps, and the like shown in the following embodiments are merely examples, and do not limit the present invention. Further, among the components in the following embodiments, components not described in the independent claims indicating the highest concept are described as arbitrary components.

(実施の形態1)
本実施の形態において、ソフトウェアのバージョン管理方法であって、管理している情報の改ざんの発生を抑制する管理方法などについて説明する。ここで、ソフトウェアは、例えば家電機器(洗濯機、エアコン、冷蔵庫、テレビなど)に搭載されて、当該家電機器の動作を制御し、また、当該家電機器の機能を発揮させるソフトウェアである。
(Embodiment 1)
In the present embodiment, a software version management method, such as a management method for suppressing the occurrence of falsification of managed information, will be described. Here, the software is, for example, software that is mounted on a home appliance (a washing machine, an air conditioner, a refrigerator, a television, or the like), controls the operation of the home appliance, and exerts the function of the home appliance.

図1は、アジャイル型開発によるソフトウェアのバージョン系列を示す説明図である。   FIG. 1 is an explanatory diagram showing a software version series based on agile development.

図1に示されるように、アジャイル型開発では、開発メーカであるZ社が最初のバージョンであるバージョン1(図において「Ver1」と記載、以下同様)を開発し、開発者のコミュニティに提供する。次に、提供されたバージョン1のソフトウェアを元にしてコミュニティに属する開発者による開発がなされ、さまざまなバージョン系列が生成される。各バージョン系列では、例えば、発揮する機能が互いに異なるソフトウェアが開発される。バージョン系列は、図1において系列1Aなどのように表現されている。バージョン系列には、1以上のバージョンが含まれる。   As shown in FIG. 1, in agile development, company Z, a development maker, develops the first version, version 1 (referred to as “Ver1” in the figure, the same applies hereinafter) and provides it to the community of developers. . Next, based on the provided version 1 software, development is performed by developers belonging to the community, and various version series are generated. In each version series, for example, software having different functions is developed. The version series is represented as a series 1A in FIG. The version series includes one or more versions.

図1では、バージョン1のソフトウェアに基づいて、開発者Aによる開発によりバージョン1.A1が生成され、開発者Bによる開発によりバージョン1.B1が生成され、開発者Cによる開発によりバージョン1.C1が生成されたことが示されている。   In FIG. 1, based on the software of version 1, version 1. A1 is generated, and version 1. B1 is generated, and version 1. It is shown that C1 has been generated.

そして、これらのバージョンを元にしてさらなる開発がなされ得る。例えば、バージョン1.A1を元にして、バージョン1.A2が開発され、バージョン1.A2を元にしてバージョン1.A3が開発される。また、バージョン1.B1を元にして、バージョン1.B2が開発される。また、バージョン1.C1を元にして、開発者D及びEにより、複数のバージョン系列としてバージョン1.C1.D1及びバージョン1.C1.E1が開発される。   And further developments can be made based on these versions. For example, version 1. Based on A1, version 1. A2 was developed and version 1. Version 1. based on A2 A3 is developed. Version 1. Version 1 based on B1 B2 is developed. Version 1. Based on C1, the developers D and E make version 1. C1. D1 and version 1. C1. E1 is developed.

ここで、バージョン1.A1以降のバージョン(つまり、バージョン1.A1と、バージョン1.A1に基づいて開発されたバージョンであるバージョン1.A2及びバージョン1.A3)を系列1Aという。同様に、バージョン1.B1以降のバージョンを系列1Bという。バージョン1.C1を系列1Cといい、バージョン1.C1.D1を系列1Dといい、バージョン1.C1.E1を系列1Eという。なお、バージョン1と、系列1A〜1Eのすべてのバージョンとを含む系列を、系列1ともいう。   Here, version 1. Versions after A1 (that is, version 1.A1, and versions 1.A2 and 1.A3 that are versions developed based on version 1.A1) are referred to as a series 1A. Similarly, version 1. Versions after B1 are called series 1B. Version 1. C1 is referred to as series 1C, and version 1. C1. D1 is called series 1D, and version 1. C1. E1 is called sequence 1E. A series including version 1 and all versions of series 1A to 1E is also referred to as series 1.

このようにして、アジャイル型開発では、開発メーカであるZ社が提供したソフトウェアを元にして、開発メーカとは異なる開発者によりソフトウェアが開発され、複数のバージョン系列が生成される。   As described above, in the agile development, software is developed by a developer different from the development maker based on software provided by the development maker Z, and a plurality of version series are generated.

そして、複数のバージョンのうちからユーザが望むバージョンがユーザに提供される。例えば、ユーザが望む機能を有するバージョン系列のうちの最新バージョンがユーザに提供される。   Then, the version desired by the user among the plurality of versions is provided to the user. For example, the latest version of a version series having a function desired by the user is provided to the user.

図2は、アジャイル型開発におけるトークンの授受を示す説明図である。ここでトークンとは、利益又は価値に相当する概念であり、人(自然人)又はメーカなどの法人が所有し、また、移転されうるものである。アジャイル型開発では、開発者、一般ユーザ及びメーカの間で適切にトークンをやりとりすることで、ソフトウェアの開発が進行する。   FIG. 2 is an explanatory diagram showing the exchange of tokens in agile development. Here, the token is a concept corresponding to profit or value, and is owned or transferred by a person (natural person) or a legal entity such as a maker. In agile development, software development proceeds by appropriately exchanging tokens among developers, general users, and manufacturers.

例えば、開発者が提供したソフトウェアを一般ユーザが受け取り、ユーザは、自身が保有している家電機器上でそのソフトウェアを動作させることにより家電機器を稼働させる。一般ユーザは、ソフトウェアの提供を受けたことの対価として開発者にトークンを提供する。   For example, a general user receives software provided by a developer, and the user operates the home appliance by operating the software on the home appliance held by the user. The general user provides the developer with a token in exchange for receiving the software.

また、一般ユーザは、ソフトウェアを搭載した家電機器を稼働させたときの製品のデータをメーカに提供し、そのデータの対価としてトークンの提供を受ける。   The general user also provides the manufacturer with data of the product when the home appliance equipped with the software is operated, and receives a token as a price for the data.

ここで、一般ユーザと開発者とは、メーカを介さずに直接トークンをやりとりする。このようなトークンのやりとりが発生すると、不正に利益を得たり、他人の利益を害したりするなどの目的で、管理されている開発者の識別情報の改ざんがなされることがある。識別情報が改ざんされると、悪意者が開発者になりすましてトークンを受け取ったり、他人になりすまして悪意のソフトウェアを提供して評判を悪くしたりすることが可能となってしまうからである。   Here, the general user and the developer directly exchange tokens without going through a maker. When such a token exchange occurs, the identification information of the managed developer may be falsified for the purpose of gaining fraudulently or damaging the profits of others. This is because if the identification information is falsified, it becomes possible for a Service-to-Self to impersonate a developer and receive a token, or to impersonate another and provide malicious software to deteriorate their reputation.

本実施の形態に係る管理システムは、管理している情報の改ざんの発生を抑制することを目的とする。   The management system according to the present embodiment aims to suppress the occurrence of falsification of managed information.

図3は、実施の形態1に係る管理システム1の構成を示す説明図である。   FIG. 3 is an explanatory diagram illustrating a configuration of the management system 1 according to the first embodiment.

図3に示されるように管理システム1は、複数の管理装置10A、10B及び10Cと、複数の開発装置20A、20B及び20Cと、保管サーバ30とを備える。上記の装置は、ネットワークNによって、相互に通信可能に接続されている。   As shown in FIG. 3, the management system 1 includes a plurality of management devices 10A, 10B and 10C, a plurality of development devices 20A, 20B and 20C, and a storage server 30. The above devices are communicably connected to each other by a network N.

複数の管理装置10A、10B及び10C(10A等ともいう)は、ソフトウェアのバージョンに関する情報をコンピュータにより管理する管理装置である。複数の管理装置10A等の個数が3である場合を例として説明するが、2以上であればいくつであってもよい。複数の管理装置10A等は、互いに通信可能に接続されている。複数の管理装置10A等それぞれが第一の管理装置に相当する。なお、以降では、複数の管理装置10A等を代表して、管理装置10Aを用いて説明することがあるが、他の管理装置10B及び10Cでも同様の説明が成立する。なお、複数の管理装置10A等は、ネットワークNを介して通信することもできる。   The plurality of management devices 10A, 10B, and 10C (also referred to as 10A and the like) are management devices that manage information about software versions by a computer. The case where the number of the plurality of management apparatuses 10A and the like is 3 will be described as an example, but any number may be used as long as the number is 2 or more. The plurality of management apparatuses 10A and the like are communicably connected to each other. Each of the plurality of management devices 10A and the like corresponds to a first management device. In the following, the management device 10A may be used as a representative for the plurality of management devices 10A and the like, but the same description will be applied to other management devices 10B and 10C. Note that the plurality of management devices 10A and the like can also communicate via the network N.

複数の管理装置10A等は、それぞれ、ソフトウェアのバージョンに関する情報を管理するための分散台帳を保有し、保有している分散台帳を、通信によって互いに同期をとりながら更新している。複数の管理装置10A等のいずれかが、開発装置20A等のいずれかから新たなバージョンに関する情報を取得すると、取得した情報の複製を複数の管理装置10A等それぞれが保有する。分散台帳は、一般に、保有している情報の改ざんが困難であり、また、システムダウンの影響を受けにくいという利点がある。   The plurality of management apparatuses 10A and the like each have a distributed ledger for managing information about software versions, and update the held distributed ledgers while synchronizing with each other by communication. When any of the plurality of management apparatuses 10A and the like acquires information on a new version from any of the development apparatuses 20A and the like, each of the plurality of management apparatuses 10A and the like holds a copy of the acquired information. The distributed ledger generally has the advantage that it is difficult to falsify the information it holds and that it is less susceptible to system downtime.

複数の開発装置20A、20B及び20C(20A等ともいう)は、ソフトウェアの開発者が使用するコンピュータであり、それぞれ独立に動作する。なお、複数の開発装置20A等の個数が3である場合を例として説明するが、1以上いくつであってもよい。なお、以降では、複数の開発装置20A等を代表して、開発装置20Aを用いて説明することがあるが、他の開発装置20B及び20Cでも同様の説明が成立する。   The plurality of development devices 20A, 20B, and 20C (also referred to as 20A and the like) are computers used by software developers, and operate independently of each other. The case where the number of the plurality of development devices 20A and the like is 3 will be described as an example, but the number may be one or more. In the following, the development device 20A is used as a representative of the development devices 20A and the like, and the description may be made using the development device 20A. However, the same description holds for the other development devices 20B and 20C.

開発者は、開発装置20Aを使用してソフトウェアの新たなバージョンを開発し、開発した新たなバージョンのソフトウェアを保管サーバ30に送信して、保管させる。また、開発装置20Aは、開発者によって開発された新たなバージョンに関する情報をネットワークNを介して管理装置10A等のいずれかに送信する。   The developer uses the development device 20A to develop a new version of software, and transmits the developed new version of software to the storage server 30 for storage. The development device 20A transmits information on a new version developed by the developer to any of the management devices 10A and the like via the network N.

保管サーバ30は、ソフトウェアを保管しているコンピュータである。保管サーバ30は、ソフトウェアの1以上のバージョンを記憶装置により記憶している。   The storage server 30 is a computer that stores software. The storage server 30 stores one or more versions of software in a storage device.

ネットワークNは、管理装置10A等、開発装置20Aおよび保管サーバ30を互いに通信可能に接続する通信回線である。通信回線の種別は特に限定されず、有線ネットワーク、無線ネットワークを任意に組み合わせたものであってよい。また、インターネットの一部がネットワークNに含まれてもよい。   The network N is a communication line that connects the development device 20A, such as the management device 10A, and the storage server 30 so that they can communicate with each other. The type of the communication line is not particularly limited, and may be any combination of a wired network and a wireless network. Further, a part of the Internet may be included in the network N.

以降において、保管サーバ30、開発装置20A等、及び、管理装置10A等についてさらに詳しく説明する。   Hereinafter, the storage server 30, the development device 20A, and the like, and the management device 10A and the like will be described in more detail.

図4は、本実施の形態に係る保管サーバ30の構成を示すブロック図である。   FIG. 4 is a block diagram illustrating a configuration of the storage server 30 according to the present embodiment.

図4に示されるように、保管サーバ30は、通信部31と、保管部32と、発行部33と、記憶装置34とを備える。保管サーバ30が備える各機能は、プロセッサがメモリを用いて所定のプログラムを実行することで実現され得る。   As shown in FIG. 4, the storage server 30 includes a communication unit 31, a storage unit 32, an issuing unit 33, and a storage device. Each function of the storage server 30 can be realized by a processor executing a predetermined program using a memory.

通信部31は、ネットワークNに接続される通信インタフェース装置である。保管サーバ30は、通信部31を介して開発装置20Aと通信可能である。   The communication unit 31 is a communication interface device connected to the network N. The storage server 30 can communicate with the development device 20A via the communication unit 31.

保管部32は、記憶装置34を用いてソフトウェアを保管している処理部である。保管部32は、通信部31を介して開発装置20Aから新たなバージョンのソフトウェアを取得したら、取得したソフトウェアを記憶装置34に格納する。また、記憶装置34に格納されているソフトウェアを、ユーザからの要求に応じて読み出す。   The storage unit 32 is a processing unit that stores software using the storage device 34. When acquiring a new version of software from the development device 20A via the communication unit 31, the storage unit 32 stores the acquired software in the storage device. Further, it reads out the software stored in the storage device 34 in response to a request from the user.

発行部33は、ソフトウェアが格納されている場所を示す場所情報を発行する処理部である。発行部33は、保管部32がソフトウェアを記憶装置34に格納した場合に、そのソフトウェアが格納されている場所を示す情報を取得して、その場所を示す場所情報を生成することで、場所情報を発行する。発行部33は、生成した場所情報を開発装置20Aに通知する。   The issuing unit 33 is a processing unit that issues location information indicating a location where software is stored. When the storage unit 32 stores the software in the storage device 34, the issuing unit 33 acquires the information indicating the location where the software is stored, and generates the location information indicating the location, thereby obtaining the location information. Issue The issuing unit 33 notifies the development device 20A of the generated location information.

場所情報は、例えば、記憶装置34内でのソフトウェアに係る電子ファイルのインターネット上での位置を示すURL(Uniform Resource Locator)であり、以降では、この場合を例として説明する。URLは、例えば、記憶装置34内での所在を示すパス(Path)及びファイル名の情報と、保管サーバ30のホスト名とを含む。   The location information is, for example, a URL (Uniform Resource Locator) indicating the location on the Internet of the electronic file related to the software in the storage device 34. Hereinafter, this case will be described as an example. The URL includes, for example, information on a path (Path) and a file name indicating the location in the storage device 34, and the host name of the storage server 30.

記憶装置34は、ソフトウェアが格納されている記憶装置である。記憶装置34には、1以上のバージョンのソフトウェアが格納されている。記憶装置34には、保管部32によってソフトウェアが格納され、また、保管部32によってソフトウェアが読み出される。   The storage device 34 is a storage device in which software is stored. The storage device 34 stores one or more versions of software. In the storage device 34, the software is stored by the storage unit 32, and the software is read by the storage unit 32.

図5は、本実施の形態に係る開発装置20Aの構成を示すブロック図である。なお、開発装置20B及び20Cも同様の構成を備え、それぞれ独立に動作する。   FIG. 5 is a block diagram illustrating a configuration of the development device 20A according to the present embodiment. The development devices 20B and 20C also have the same configuration and operate independently.

図5に示されるように、開発装置20Aは、通信部21と、開発部22と、トランザクション生成部23と、記憶装置24とを備える。開発装置20Aが備える各機能は、プロセッサがメモリを用いて所定のプログラムを実行することで実現され得る。   As illustrated in FIG. 5, the development device 20A includes a communication unit 21, a development unit 22, a transaction generation unit 23, and a storage device 24. Each function of the development device 20A can be realized by a processor executing a predetermined program using a memory.

通信部21は、ネットワークNに接続される通信インタフェース装置である。開発装置20Aは、通信部21を介して保管サーバ30および管理装置10Aと通信可能である。   The communication unit 21 is a communication interface device connected to the network N. The development device 20A can communicate with the storage server 30 and the management device 10A via the communication unit 21.

開発部22は、ユーザによる操作、又は、ソフトウェア開発のためのツールの機能に基づいて、開発者により開発されるソフトウェアの新たなバージョンを生成する処理部である。開発部22は、具体的には、ソフトウェアの開発の元になるバージョン(第一バージョンに相当)のソフトウェア(又は、プログラム若しくはプログラムコード)を保有しており、保有しているソフトウェアに基づいて新たなバージョン(第二バージョンに相当)のソフトウェアを生成する。このようにして、開発者は、開発装置20A(具体的には開発部22)を使用して、ソフトウェアの新たなバージョンを開発する。新たなバージョンを開発することをバージョンアップともいう。開発部22は、開発された新たなバージョンのソフトウェアを通信部21を介して保管サーバ30に送信し保管させる。このとき、開発部22は、保管サーバ30内で保管されているソフトウェアの格納場所を示すURLを保管サーバ30(具体的には発行部33)から通知される。   The development unit 22 is a processing unit that generates a new version of software developed by a developer based on an operation by a user or a function of a tool for software development. Specifically, the development unit 22 has software (or a program or a program code) of a version (corresponding to the first version) from which the software is developed, and newly develops the software based on the held software. A new version (corresponding to the second version) of software. In this way, the developer develops a new version of software using the development device 20A (specifically, the development unit 22). Developing a new version is also called version upgrade. The development unit 22 transmits the new version of the developed software to the storage server 30 via the communication unit 21 to store the software. At this time, the development unit 22 is notified of the URL indicating the storage location of the software stored in the storage server 30 from the storage server 30 (specifically, the issuing unit 33).

トランザクション生成部23は、ソフトウェアのバージョンに関する情報を含むトランザクションデータを生成する処理部である。トランザクションデータは、ソフトウェアの第一バージョンに関する情報(第一情報に相当)と、第一バージョンを元に開発者によってバージョンアップされた第二バージョンに関する情報(第二情報に相当)と、開発者の識別情報である開発者IDと、開発者の電子署名とを少なくとも含む。開発者の電子署名は、当該トランザクションデータに含まれる情報から、開発者の秘密鍵での暗号化により生成される。開発者の識別情報および秘密鍵は、トランザクション生成部23が記憶装置24から読み出すことで取得され得る。また、トランザクション生成部23は、生成したトランザクションデータを通信部21を介して管理装置10Aに送信する。   The transaction generation unit 23 is a processing unit that generates transaction data including information on the software version. The transaction data includes information on the first version of the software (corresponding to the first information), information on the second version upgraded by the developer based on the first version (corresponding to the second information), It includes at least a developer ID that is identification information and a digital signature of the developer. The developer's electronic signature is generated from information included in the transaction data by encryption with the developer's private key. The developer identification information and the secret key can be obtained by reading from the storage device 24 by the transaction generation unit 23. Further, the transaction generation unit 23 transmits the generated transaction data to the management device 10A via the communication unit 21.

また、トランザクション生成部23は、新バージョン番号の発行依頼を生成し、管理装置10Aに送信し、その応答として、新バージョン番号の通知を受ける。   Further, the transaction generation unit 23 generates a request for issuing a new version number, transmits the request to the management apparatus 10A, and receives a notification of the new version number as a response.

記憶装置24は、開発者に関する情報、および、ソフトウェアに関する情報を記憶している記憶装置である。開発者に関する情報は、開発者の識別情報である開発者IDと、開発者の鍵情報(秘密鍵を含む)を含む。開発者IDは、開発者を一意に識別し得る情報である。ソフトウェアに関する情報は、ソフトウェア本体、及び、ソフトウェアの保管サーバ30における格納場所を示すURLを含む。ここで、ソフトウェア本体とは、ソフトウェアのプログラムであり、図5において単に「ソフトウェア」と記載されている。記憶装置24に記憶されているソフトウェア本体は、開発部22によって読み出される。記憶装置24に記憶されている開発者ID、鍵情報およびURLは、トランザクション生成部23により読み出される。   The storage device 24 is a storage device that stores information about developers and information about software. The information on the developer includes a developer ID, which is identification information of the developer, and key information (including a secret key) of the developer. The developer ID is information that can uniquely identify a developer. The information about the software includes the URL of the software itself and the storage location of the software in the storage server 30. Here, the software main body is a software program, and is simply described as “software” in FIG. The software main body stored in the storage device 24 is read by the development unit 22. The developer ID, the key information, and the URL stored in the storage device 24 are read by the transaction generation unit 23.

図6は、本実施の形態に係る管理装置10Aの構成を示すブロック図である。   FIG. 6 is a block diagram showing a configuration of the management device 10A according to the present embodiment.

図6に示されるように、管理装置10Aは、通信部11と、番号管理部12と、トランザクション検証部13と、台帳管理部14と、トークン管理部16とを備える。管理装置10Aが備える各機能は、プロセッサがメモリを用いて所定のプログラムを実行することで実現され得る。   As shown in FIG. 6, the management device 10A includes a communication unit 11, a number management unit 12, a transaction verification unit 13, a ledger management unit 14, and a token management unit 16. Each function of the management device 10A can be realized by a processor executing a predetermined program using a memory.

通信部11は、ネットワークNに接続される通信インタフェース装置である。管理装置10Aは、通信部11を介して開発装置20A、及び、他の管理装置10B及び10Cと通信可能である。   The communication unit 11 is a communication interface device connected to the network N. The management device 10A can communicate with the development device 20A and the other management devices 10B and 10C via the communication unit 11.

番号管理部12は、ソフトウェアのバージョンのバージョン番号を管理している処理部である。番号管理部12は、開発装置20Aからソフトウェアの新しいバージョン番号の発行依頼を受けると、その発行依頼に応じて新しいバージョン番号を発行し、開発装置20Aに通知する。番号管理部12は、現在保有しているバージョンのうち、最新のバージョンのバージョン番号より進んだバージョン番号を発行する。なお、バージョンに複数の系列がある場合には、番号管理部12は、系列ごとに新しいバージョン番号の発行依頼を受け、系列ごとにバージョン番号を発行する。   The number management unit 12 is a processing unit that manages version numbers of software versions. Upon receiving a request to issue a new version number of software from the development device 20A, the number management unit 12 issues a new version number in response to the issuance request and notifies the development device 20A. The number management unit 12 issues a version number that is higher than the version number of the latest version among the currently held versions. When there are a plurality of series in a version, the number management unit 12 receives a request to issue a new version number for each series, and issues a version number for each series.

ここで、バージョン番号は、所定の規則に従って設定される。例えば、数値を用いて、バージョンが進むほど(つまりバージョンアップするほど)、より大きな数値を有するように設定される。このとき、数値とともに文字が使われてもよい。ここでは、文字によってバージョン系列を示す例を示す。すなわち、最初のバージョンであるバージョン1を元にして開発された系列1Aに含まれるバージョンを、バージョン1.A1、バージョン1.A2およびバージョン1.A3等という。また、バージョン1を元にして、系列1Aとは別に開発された系列1Bに含まれるバージョンをバージョン1.B1およびバージョン1.B2等という。   Here, the version number is set according to a predetermined rule. For example, using a numerical value, it is set to have a larger numerical value as the version advances (that is, as the version is upgraded). At this time, characters may be used together with the numerical values. Here, an example is shown in which the version series is indicated by characters. That is, the version included in the series 1A developed based on the first version, version 1, is referred to as version 1. A1, version 1. A2 and version 1. A3 etc. Also, based on version 1, the version included in the series 1B developed separately from the series 1A is called version 1. B1 and version 1. B2 etc.

トランザクション検証部13は、トランザクションデータの正当性の検証をする処理部である。トランザクション検証部13は、通信部11を介して開発装置20Aからトランザクションデータを受信する。受信するトランザクションデータは、ソフトウェアの第一バージョンに関する第一情報と、第一バージョンを元に開発者によってバージョンアップされたソフトウェアの第二バージョンに関する第二情報と、開発者の識別情報と、開発者の電子署名とを含んでいる。トランザクション検証部13は、トランザクションデータを受信すると、受信したトランザクションデータに含まれる電子署名を用いて、当該トランザクションデータの正当性を検証をする。トランザクションデータの正当性の検証は、当該トランザクションデータに含まれる情報と、開発者の公開鍵とを用いてなされ、当該トランザクションデータが正当であるか否かが判定される。より具体的には、当該トランザクションデータが確かに開発装置20Aによって生成されたものであること、及び、当該トランザクションデータが生成されてから改ざんされていないことが判定される。なお、トランザクションデータの正当性の検証を、単に、トランザクションデータの検証ともいう。   The transaction verification unit 13 is a processing unit that verifies the validity of transaction data. The transaction verification unit 13 receives transaction data from the development device 20A via the communication unit 11. The received transaction data includes first information about the first version of the software, second information about the second version of the software upgraded by the developer based on the first version, identification information of the developer, Electronic signature. When receiving the transaction data, the transaction verification unit 13 verifies the validity of the transaction data using the electronic signature included in the received transaction data. Verification of the validity of the transaction data is performed using information included in the transaction data and the developer's public key, and it is determined whether the transaction data is valid. More specifically, it is determined that the transaction data is indeed generated by the development device 20A, and that the transaction data has not been falsified since it was generated. Verification of the validity of transaction data is also simply referred to as verification of transaction data.

なお、トランザクション検証部13が受信するトランザクションデータには、番号管理部12が通知した新しいバージョン番号が含まれ得る。   Note that the transaction data received by the transaction verification unit 13 may include the new version number notified by the number management unit 12.

また、トランザクション検証部13が受信するトランザクションデータには、さらに新バージョンのソフトウェアの場所情報であるURLが含まれていてもよい。   Further, the transaction data received by the transaction verification unit 13 may further include a URL that is location information of a new version of software.

台帳管理部14は、ソフトウェアのバージョンを管理するための分散台帳を管理している処理部である。ここでは分散台帳がブロックチェーン15である場合を例として説明するが、他の方式の分散台帳(例えば、IOTA又はハッシュグラフ等)を採用することも可能である。   The ledger management unit 14 is a processing unit that manages a distributed ledger for managing software versions. Here, the case where the distribution ledger is the blockchain 15 will be described as an example, but it is also possible to adopt another type of distribution ledger (for example, IOTA or hash graph).

台帳管理部14は、トランザクション検証部13がトランザクションデータを検証した場合に、他の管理装置10B及び10Cにトランザクションデータを送信することで、トランザクションデータの同期をとる。そして、台帳管理部14は、管理装置10Aと、他の管理装置10Bおよび10Cとの間でコンセンサスアルゴリズムを実行する。コンセンサスアルゴリズムにおいて合意形成がなされた場合には、当該トランザクションデータを含むブロックを生成し、生成したブロックをブロックチェーン15に格納する。   When the transaction verification section 13 verifies the transaction data, the ledger management section 14 synchronizes the transaction data by transmitting the transaction data to the other management apparatuses 10B and 10C. Then, the ledger management unit 14 executes a consensus algorithm between the management device 10A and the other management devices 10B and 10C. When consensus is reached in the consensus algorithm, a block including the transaction data is generated, and the generated block is stored in the block chain 15.

なお、コンセンサスアルゴリズムの一例は、PBFT(Practical Byzantine Fault Tolerance)であるが、これに限定されず、PoW(Proof of Work)又はPoS(Proof of Stake)なども用いられ得る。   An example of the consensus algorithm is PBFT (Practical Byzantine Fault Tolerance), but the present invention is not limited to this, and PoW (Proof of Work) or PoS (Proof of Stake) may be used.

トークン管理部16は、ユーザ及び開発者それぞれが保有しているトークンを管理している処理部である。トークン管理部16は、ブロックチェーン15に格納されているトランザクションデータを参照して、開発者にトークンを提供する。なお、トークン管理部16は、トークンの管理にブロックチェーンを使用してもよい。   The token management unit 16 is a processing unit that manages tokens held by each of the user and the developer. The token management unit 16 provides the token to the developer with reference to the transaction data stored in the block chain 15. Note that the token management unit 16 may use a block chain for token management.

次に、ソフトウェアの新バージョンを管理装置10A等に管理させるためのトランザクションデータの構成について3つの例を示す。   Next, three examples of the configuration of transaction data for causing the management device 10A or the like to manage a new version of software will be described.

図7は、本実施の形態に係るトランザクションデータの第一例であるトランザクションデータ40を示す説明図である。トランザクションデータ40は、ソフトウェアの第一バージョンに関する第一情報が、第一バージョンのバージョン番号を含み、ソフトウェアの第二バージョンに関する第二情報が、ソフトウェアの第二バージョンのハッシュ値と、第二バージョンのバージョン番号とを含む場合の例である。   FIG. 7 is an explanatory diagram showing transaction data 40 which is a first example of transaction data according to the present embodiment. In the transaction data 40, the first information on the first version of the software includes the version number of the first version, and the second information on the second version of the software includes the hash value of the second version of the software and the hash value of the second version. This is an example in the case of including a version number.

図7に示されるように、トランザクションデータ40は、開発者ID41と、URL42と、新バージョン番号43と、基バージョン番号44と、新バージョンのハッシュ値45と、署名46とを含む。   As shown in FIG. 7, the transaction data 40 includes a developer ID 41, a URL 42, a new version number 43, a base version number 44, a hash value 45 of the new version, and a signature 46.

開発者ID41は、当該トランザクションデータ40により新たに管理させることになる新バージョンを開発した開発者の識別情報である。   The developer ID 41 is identification information of a developer who has developed a new version to be newly managed by the transaction data 40.

URL42は、当該トランザクションデータ40により新たに管理させることになる新バージョンが格納されている場所を示すURLである。URL42は、保管サーバ30の記憶装置34内において、新バージョンのソフトウェアが格納されている場所を示している。   The URL 42 is a URL indicating a location where a new version to be newly managed by the transaction data 40 is stored. The URL 42 indicates a location where a new version of software is stored in the storage device 34 of the storage server 30.

新バージョン番号43は、トランザクションデータ40により新たに管理させることになる新バージョンのバージョン番号である。   The new version number 43 is a version number of a new version to be newly managed by the transaction data 40.

基バージョン番号44は、トランザクションデータ40により新たに管理させることになる新バージョンの開発の元になったバージョン(基バージョンともいう)のバージョン番号である。   The base version number 44 is a version number of a version (also referred to as a base version) from which a new version to be newly managed by the transaction data 40 is developed.

新バージョンのハッシュ値45は、トランザクションデータ40により新たに管理させることになる新バージョンのプログラムの全部または所定の一部に対するハッシュ演算により得られたハッシュ値である。   The new version hash value 45 is a hash value obtained by performing a hash operation on all or a predetermined part of the new version program to be newly managed by the transaction data 40.

署名46は、トランザクションデータ40に含まれる情報から、開発者の秘密鍵での暗号化により生成された電子署名である。具体的には、開発者ID41、URL42、新バージョン番号43、基バージョン番号44、及び、新バージョンのハッシュ値45を含む情報に対するハッシュ演算により得られたハッシュ値を、開発者の秘密鍵で暗号化した値である。   The signature 46 is an electronic signature generated by encrypting the information included in the transaction data 40 with the developer's private key. Specifically, a hash value obtained by performing a hash operation on information including the developer ID 41, the URL 42, the new version number 43, the base version number 44, and the hash value 45 of the new version is encrypted using the developer's secret key. Value.

図8は、本実施の形態に係るトランザクションデータの第二例であるトランザクションデータ50を示す説明図である。トランザクションデータ50は、ソフトウェアの第一バージョンに関する第一情報が、ソフトウェアの第一バージョンのハッシュ値を含み、ソフトウェアの第二バージョンに関する第二情報が、ソフトウェアの第二バージョンのハッシュ値を含む場合の例である。   FIG. 8 is an explanatory diagram showing transaction data 50 which is a second example of transaction data according to the present embodiment. The transaction data 50 is obtained when the first information on the first version of the software includes a hash value of the first version of the software, and the second information on the second version of the software includes the hash value of the second version of the software. It is an example.

図8に示されるように、トランザクションデータ50は、開発者ID51と、URL52と、新バージョンのハッシュ値53と、基バージョンのハッシュ値54と、署名55とを含む。   As shown in FIG. 8, the transaction data 50 includes a developer ID 51, a URL 52, a new version hash value 53, a base version hash value 54, and a signature 55.

開発者ID51およびURL52は、トランザクションデータ40における同名の情報と同じである。   The developer ID 51 and the URL 52 are the same as the information of the same name in the transaction data 40.

新バージョンのハッシュ値53は、トランザクションデータ50により新たに管理させることになる新バージョンのソフトウェアのプログラムの全部または所定の一部に対するハッシュ演算により得られたハッシュ値である。   The new version hash value 53 is a hash value obtained by performing a hash operation on all or a predetermined part of the new version software program to be newly managed by the transaction data 50.

基バージョンのハッシュ値54は、トランザクションデータ50により新たに管理させることになる新バージョンの開発の元になった基バージョンのソフトウェアのプログラムの全部または所定の一部に対するハッシュ演算により得られたハッシュ値である。   The base version hash value 54 is a hash value obtained by performing a hash operation on all or a predetermined part of the base version software program from which the new version is developed based on the transaction data 50. It is.

署名55は、トランザクションデータ50に含まれる情報から、開発者の秘密鍵での暗号化により生成された電子署名である。具体的には、開発者ID51、URL52、新バージョンのハッシュ値53、及び、基バージョンのハッシュ値54を含む情報に対するハッシュ演算により得られたハッシュ値を、開発者の秘密鍵で暗号化した値である。   The signature 55 is an electronic signature generated from the information included in the transaction data 50 by encryption with the developer's private key. Specifically, a value obtained by encrypting a hash value obtained by performing a hash operation on information including the developer ID 51, the URL 52, the hash value 53 of the new version, and the hash value 54 of the base version with the developer's secret key It is.

図9は、本実施の形態に係るトランザクションデータの第三例であるトランザクションデータ60を示す説明図である。トランザクションデータ60は、ソフトウェアの第一バージョンに関する第一情報が、ソフトウェアの第一バージョンのハッシュ値を含み、ソフトウェアの第二バージョンに関する第二情報が、ソフトウェアの第一バージョンと第二バージョンとの差分のハッシュ値を含む場合の例である。   FIG. 9 is an explanatory diagram showing transaction data 60 which is a third example of transaction data according to the present embodiment. In the transaction data 60, the first information on the first version of the software includes a hash value of the first version of the software, and the second information on the second version of the software indicates a difference between the first version and the second version of the software. It is an example in the case of including the hash value of.

図9に示されるように、トランザクションデータ60は、開発者ID61と、URL62と、差分のハッシュ値63と、基バージョンのハッシュ値64と、署名65とを含む。   As shown in FIG. 9, the transaction data 60 includes a developer ID 61, a URL 62, a hash value 63 of the difference, a hash value 64 of the base version, and a signature 65.

開発者ID61およびURL62は、トランザクションデータ40における同名の情報と同じである。   The developer ID 61 and the URL 62 are the same as the information of the same name in the transaction data 40.

差分のハッシュ値63は、トランザクションデータ60により新たに管理させることになる新バージョンのプログラムと、新バージョンの開発の元になった基バージョンのプログラムとの差分のハッシュ値である。   The difference hash value 63 is a hash value of the difference between the new version of the program to be newly managed by the transaction data 60 and the base version of the program from which the new version was developed.

基バージョンのハッシュ値64は、トランザクションデータ60により新たに管理させることになる新バージョンのソフトウェアのプログラムの全部または所定の一部に対するハッシュ演算により得られたハッシュ値である。   The base version hash value 64 is a hash value obtained by performing a hash operation on all or a predetermined part of a new version of a software program to be newly managed by the transaction data 60.

署名65は、トランザクションデータ60に含まれる情報から、開発者の秘密鍵での暗号化により生成された電子署名である。具体的には、開発者ID61、URL62、差分のハッシュ値63、及び、基バージョンのハッシュ値64を含む情報に対するハッシュ演算により得られたハッシュ値を、開発者の秘密鍵で暗号化した値である。   The signature 65 is an electronic signature generated by encrypting the information included in the transaction data 60 with the developer's private key. Specifically, a hash value obtained by performing a hash operation on information including the developer ID 61, the URL 62, the hash value 63 of the difference, and the hash value 64 of the base version is a value encrypted with the developer's secret key. is there.

以降において、ブロックチェーン15に格納されているトランザクションデータについて説明する。   Hereinafter, the transaction data stored in the block chain 15 will be described.

図10は、本実施の形態に係るブロックチェーン15に格納されているトランザクションデータの例を示す説明図である。図10は、具体的には、管理装置10A等がブロックチェーン15によって管理しているトランザクションデータである。図10に示される1つのエントリ(1行)が、1つのトランザクションデータに対応している。図10において紙面上の下にあるデータがより新しいトランザクションデータである。   FIG. 10 is an explanatory diagram showing an example of transaction data stored in the block chain 15 according to the present embodiment. FIG. 10 specifically shows transaction data managed by the management device 10A and the like by the blockchain 15. One entry (one row) shown in FIG. 10 corresponds to one transaction data. In FIG. 10, the lower data on the paper is newer transaction data.

図10に示されるように、各トランザクションデータは、ソフトウェアの各バージョンについてのURL、新バージョン番号、基バージョン番号及び開発者IDを含んでいる。なお、図10に示されるトランザクションデータは、図7に示されるトランザクションデータ40に含まれる各情報に相当している。   As shown in FIG. 10, each transaction data includes a URL, a new version number, a base version number, and a developer ID for each version of the software. Note that the transaction data shown in FIG. 10 corresponds to each information included in the transaction data 40 shown in FIG.

ブロックチェーン15には、図10のように、現時点以前のソフトウェアの各バージョンについての情報が格納されている。具体的には、バージョン1からバージョン1.A1、1.A2及び1.A3が開発されたこと、および、バージョン1からバージョン1.B1及び1.B2が開発されたことを示す情報が格納されている。   As shown in FIG. 10, the block chain 15 stores information about each version of the software before the current time. Specifically, from version 1 to version 1. A1,1. A2 and 1. A3 was developed and version 1 to version 1. B1 and 1. Information indicating that B2 has been developed is stored.

そして、現時点以前のソフトウェアの各バージョンについての情報は、改ざんが困難であるというブロックチェーンの特性により、改ざんがなされないように管理装置10Aによって管理されている。   The information about each version of the software before the current time is managed by the management device 10A so as not to be falsified due to the characteristic of the blockchain that it is difficult to falsify.

以降において、管理システム1の処理を説明する。   Hereinafter, processing of the management system 1 will be described.

図11及び図12は、本実施の形態に係る管理システム1における第一及び第二の処理を示すシーケンス図である。図11及び図12は、開発装置20Aによってソフトウェアの新たなバージョンが開発されてから、開発されたソフトウェアのバージョンが管理装置10A等によって管理されるまでの一連の処理を示している。   FIGS. 11 and 12 are sequence diagrams showing first and second processes in the management system 1 according to the present embodiment. FIGS. 11 and 12 show a series of processes from the development of a new version of software by the development device 20A to the management of the developed software version by the management device 10A or the like.

図11に示されるように、ステップS121において、開発装置20Aにより、ソフトウェアの新バージョンが完成する。   As shown in FIG. 11, in step S121, a new version of software is completed by the development device 20A.

ステップS122において、開発装置20Aは、ステップS121で開発された新バージョンのソフトウェアを保管サーバ30に格納すべく、保管サーバ30に送信する。   In step S122, the development device 20A transmits the new version of the software developed in step S121 to the storage server 30 so as to be stored in the storage server 30.

ステップS131において、保管サーバ30は、開発装置20Aから送信された新バージョンのソフトウェアを受信して記憶装置34に格納する。   In step S131, the storage server 30 receives the new version of the software transmitted from the development device 20A and stores it in the storage device.

ステップS132において、保管サーバ30は、ステップS131で格納された新バージョンのソフトウェアの場所を示すURLを発行する。そして、保管サーバ30は、発行したURLを開発装置20Aに送信する。URLは、ステップS122で受信したソフトウェアに対する応答として送信され得る。   In step S132, the storage server 30 issues a URL indicating the location of the new version of the software stored in step S131. Then, the storage server 30 transmits the issued URL to the development device 20A. The URL may be sent as a response to the software received in step S122.

ステップS123において、開発装置20Aは、新バージョン番号(新番号ともいう)の発行依頼を生成し、管理装置10Aに送信する。ここで、発行依頼とは、ソフトウェアの新バージョンに付ける新たな番号、つまり新バージョン番号を発行することを管理装置10Aに依頼するための通信データであり、少なくとも基バージョン番号を含む。   In step S123, the development device 20A generates an issuance request for a new version number (also referred to as a new number) and transmits it to the management device 10A. Here, the issuance request is communication data for requesting the management apparatus 10A to issue a new number assigned to a new version of software, that is, a new version number, and includes at least a base version number.

ステップS111において、管理装置10Aは、ステップS123で送信された発行依頼を受信し、発行依頼に含まれている基バージョンが、管理装置10Aが管理しているブロックチェーン15に格納されているか否かを判定する。基バージョンがブロックチェーン15に格納されていると判定した場合(ステップS111でYes)、ステップS112に進む。   In step S111, the management device 10A receives the issuance request transmitted in step S123, and determines whether or not the base version included in the issuance request is stored in the block chain 15 managed by the management device 10A. Is determined. If it is determined that the base version is stored in the block chain 15 (Yes in step S111), the process proceeds to step S112.

なお、基バージョンがブロックチェーン15に格納されていないと判定した場合(不図示)には、管理装置10Aは、所定のエラー処理(例えば、発行が失敗したことを示す通知を開発装置20Aに送信する処理)を実行し、処理を終える。ただし、この場合、管理装置10Aは、なんら処理をせずに処理を終えてもよい。このように、基バージョンがブロックチェーン15に格納されていないと判定されるのは、例えば、管理装置10A等で管理されていないバージョンのソフトウェアを管理装置10A等に管理させようとしたときである。   If it is determined that the base version is not stored in the blockchain 15 (not shown), the management device 10A transmits a predetermined error process (for example, a notification indicating that the issuance has failed to the development device 20A). Is performed, and the process ends. However, in this case, the management device 10A may end the processing without performing any processing. In this way, it is determined that the base version is not stored in the blockchain 15 when, for example, the management device 10A or the like attempts to manage a version of software that is not managed by the management device 10A or the like. .

ステップS112において、管理装置10Aは、新バージョンのバージョン番号を発行する。   In step S112, the management device 10A issues a version number of the new version.

図12に移り、ステップS113において、管理装置10Aは、ステップS112で発行した新バージョンのバージョン番号を、開発装置20Aに通知する。新バージョンのバージョン番号の通知は、ステップS123の発行依頼に対する応答として送信され得る。   Referring to FIG. 12, in step S113, the management device 10A notifies the development device 20A of the version number of the new version issued in step S112. The notification of the version number of the new version can be transmitted as a response to the issuance request in step S123.

ステップS124において、新バージョンをブロックチェーン15に書き込むためのトランザクションデータを生成し、管理装置10Aに送信する。このトランザクションデータには、ステップS113で送信された新バージョン番号、又は、この新バージョン番号を用いて算出される情報が含められる。   In step S124, transaction data for writing the new version to the block chain 15 is generated and transmitted to the management device 10A. The transaction data includes the new version number transmitted in step S113, or information calculated using the new version number.

ステップS114において、管理装置10Aは、ステップS124で開発装置20Aが送信したトランザクションデータを検証する。ここでは、トランザクションデータの検証の結果、トランザクションデータが正当であると判定されたとする。   In step S114, the management device 10A verifies the transaction data transmitted by the development device 20A in step S124. Here, it is assumed that the transaction data is determined to be valid as a result of the verification of the transaction data.

ステップS115において、管理装置10Aは、トランザクションデータを管理装置10B及び10Cに送信する。そして、管理装置10A等によるコンセンサスアルゴリズムの実行により、トランザクションデータを含むブロックがブロックチェーン15に格納される。これにより、開発者が開発したソフトウェアの新バージョンに関する情報、より具体的には、開発者ID及びバージョン番号がブロックチェーン15に格納され、その格納時以降の改ざんが困難になる。   In step S115, the management device 10A transmits the transaction data to the management devices 10B and 10C. Then, the block including the transaction data is stored in the block chain 15 by executing the consensus algorithm by the management device 10A or the like. As a result, information on the new version of the software developed by the developer, more specifically, the developer ID and the version number are stored in the blockchain 15, and it becomes difficult to falsify the information after the storage.

なお、ステップS114でトランザクションデータの検証に失敗した、つまり、トランザクションデータが正当でないと検証された場合には、その旨を開発装置20Aに通知するようにしてもよい。このようにすれば、開発者がそのことを認識し対処することができる。一方、上記通知はなされなくてもよい。   If the verification of the transaction data has failed in step S114, that is, if it is verified that the transaction data is not valid, the fact may be notified to the development device 20A. In this way, the developer can recognize this and take action. On the other hand, the notification need not be made.

なお、ソフトウェアそのものを管理装置10Aがブロックチェーン15に格納して管理してもよい。このようにすれば、バージョンに関する情報だけでなく、ソフトウェアそのものの改ざんも抑制しながらソフトウェアを管理することができ、より有用となる。このようにするには、開発装置20Aが、ソフトウェアそのもの(つまりソフトウェアのプログラムコード)を含むトランザクションデータを生成して管理装置10Aに送信し、管理装置10Aが、受信した上記トランザクションデータをブロックチェーン15に格納すればよい。   The software itself may be stored and managed in the blockchain 15 by the management device 10A. This makes it possible to manage the software while suppressing not only the information on the version but also the falsification of the software itself, which is more useful. To do so, the development device 20A generates transaction data including the software itself (that is, the program code of the software) and transmits it to the management device 10A, and the management device 10A transmits the received transaction data to the blockchain 15A. Should be stored in

なお、開発装置20Aは、管理装置10Aにネットワークを介して接続されている装置の一例であり、この場合を例として説明したが、上記装置は開発装置20Aに限られない。例えば、開発者から委託された人が使用する装置も、管理装置10Aにネットワークを介して接続されている装置に該当し得る。この場合、上記説明における「開発者」を、「開発者から委託された人」に読み替えることで上記説明が成立する。   Note that the development device 20A is an example of a device connected to the management device 10A via a network, and this case has been described as an example, but the above device is not limited to the development device 20A. For example, a device used by a person commissioned by a developer may also correspond to a device connected to the management device 10A via a network. In this case, the above description is established by replacing “developer” in the above description with “person entrusted by the developer”.

以上のように、本実施の形態の管理方法によれば、ソフトウェアのバージョンアップをした開発者に関する情報が分散台帳によって管理される。分散台帳は、保有している情報の改ざんが困難であり、また、システムダウンの影響を受けにくいという利点がある。よって、上記管理方法によって、管理している情報の改ざんの発生を抑制することができる。   As described above, according to the management method of the present embodiment, information on a developer whose software has been upgraded is managed by the distributed ledger. The distributed ledger has the advantage that it is difficult to falsify the information it holds and that it is less susceptible to system downtime. Therefore, the management method can suppress the occurrence of falsification of the managed information.

また、新しいバージョンのバージョン番号を発行し、その発行したバージョン番号と紐付けて新しいバージョンの開発者に関する情報が管理される。当該バージョン管理システムと異なる装置などによってバージョン番号を付すとすれば、バージョン番号の重複などの不備が生じ得る。本発明に係る管理方法によれば、バージョン番号の不備を未然に回避しながら、管理している情報の改ざんの発生を抑制することができる。   Further, a version number of the new version is issued, and information on the developer of the new version is managed in association with the issued version number. If the version number is assigned by a device different from the version management system, defects such as duplication of the version number may occur. ADVANTAGE OF THE INVENTION According to the management method concerning this invention, it can suppress generation | occurrence | production of the falsification of managed information, avoiding the defect of a version number beforehand.

また、第一バージョンのバージョン番号と、第二バージョンのハッシュ値と、第二バージョンのバージョン番号とを用いて、より容易に、管理している情報の改ざんの発生を抑制することができる。   Further, using the version number of the first version, the hash value of the second version, and the version number of the second version, it is possible to more easily suppress the falsification of the managed information.

また、第一バージョンのハッシュ値と、第二バージョンのハッシュ値とを用いて、より容易に、管理している情報の改ざんの発生を抑制することができる。   In addition, the use of the first version hash value and the second version hash value makes it possible to more easily suppress the falsification of the managed information.

また、第一バージョンのハッシュ値と、第一バージョンと第二バージョンとの差分のハッシュ値とを用いて、より容易に、管理している情報の改ざんの発生を抑制することができる。   Further, using the hash value of the first version and the hash value of the difference between the first version and the second version, it is possible to more easily suppress the occurrence of falsification of the managed information.

また、第二バージョンのソフトウェアの格納場所を示す情報が、開発者に関する情報とともに分散台帳に格納される。よって、さらに第二バージョンが格納された場所情報の改ざんの発生をも抑制しながら、管理している情報の改ざんの発生を抑制することができる。   Information indicating the storage location of the second version of the software is stored in the distributed ledger along with information on the developer. Therefore, it is possible to suppress the occurrence of falsification of the managed information while suppressing the falsification of the location information in which the second version is stored.

また、これまでのトランザクションデータに基づいて新しいバージョンの開発者にトークンが提供される。分散台帳に格納されたトランザクションデータの改ざんが困難であるので、開発者になりすます不適切な者へのトークンの提供を未然に回避することができる。このように、管理している情報の改ざんの発生を抑制し、不適切なトークンの提供を未然に回避することができる。   Also, tokens will be provided to newer versions of developers based on previous transaction data. Since it is difficult to falsify the transaction data stored in the distributed ledger, it is possible to avoid providing a token to an inappropriate person impersonating a developer. In this way, it is possible to suppress the occurrence of falsification of the managed information and to avoid providing inappropriate tokens.

また、複数の管理装置が、分散台帳としてブロックチェーンを用いることによって、より容易に、管理している情報の改ざんの発生を抑制することができる。   Further, by using a blockchain as a distributed ledger by a plurality of management apparatuses, it is possible to more easily suppress the occurrence of falsification of managed information.

(実施の形態2)
本実施の形態において、ソフトウェアのバージョン管理方法であって、管理している情報の改ざんの発生を抑制する管理方法などについて説明する。特に、ソフトウェアのメジャーバージョンアップの際に、バージョンアップの前後で異なるブロックチェーンによってバージョンを管理する技術について説明する。
(Embodiment 2)
In the present embodiment, a software version management method, such as a management method for suppressing the occurrence of falsification of managed information, will be described. In particular, a description will be given of a technology for managing a version by a different blockchain before and after the major version upgrade of software.

ここで、メジャーバージョンアップとは、一般に基バージョンに対して比較的大きな機能修正又は追加がなされるバージョンアップである。これに対して、実施の形態1で説明した第一バージョンから第二バージョンへのバージョンアップは、比較的小さな機能修正又は追加がなされるバージョンアップであり、一般にマイナーバージョンアップともよばれる。メジャーバージョンアップは、例えば、Z社による決定に基づいてなされる。   Here, the major version upgrade is generally a version upgrade in which a relatively large function modification or addition is made to the base version. On the other hand, the version upgrade from the first version to the second version described in the first embodiment is a version upgrade in which a relatively small function correction or addition is made, and is generally called a minor version upgrade. The major version upgrade is performed based on, for example, a decision by Company Z.

図13は、本実施の形態に係る、バージョン系列の分岐を示す説明図である。   FIG. 13 is an explanatory diagram showing branching of a version sequence according to the present embodiment.

図13に示されるバージョン1(図13において「Ver1」と記載)などは、実施の形態1に係るソフトウェアのバージョンに相当する。ここでは、上記ソフトウェアの開発を行っていた開発者のコミュニティを「バージョン1のコミュニティ」という。   Version 1 shown in FIG. 13 (described as “Ver1” in FIG. 13) and the like correspond to the software version according to the first embodiment. Here, a community of developers who have been developing the software is referred to as a “version 1 community”.

ソフトウェア開発において、メジャーバージョンアップがなされるとき、バージョン1のコミュニティで開発された系列1の一部又は全部の複製を、新たなバージョン系列である系列2として使用することが行われる。このとき、系列2として使用されるのは、バージョン1のコミュニティで開発されたバージョンの系列1のうちの最新バージョンを少なくとも含むバージョンの系列であり、バージョン1のコミュニティで開発されたバージョン系列のうちのすべてのバージョンを含むバージョン系列であってもよい。   In software development, when a major version is upgraded, a copy of part or all of the series 1 developed by the community of version 1 is used as a new version series, series 2. At this time, what is used as the series 2 is a series of a version including at least the latest version of the series 1 of the version developed in the community of version 1, and the series of the version developed in the community of version 1 is used. May be a version series that includes all versions of.

このように、系列1の一部又は全部から新たな系列2を生成することを、「系列を分岐させる」という。言い換えれば、分岐とは、系列1の一部又は全部から新たな系列2を生成することである。   Generating a new sequence 2 from part or all of the sequence 1 in this manner is referred to as “branching the sequence”. In other words, branching refers to generating a new sequence 2 from a part or all of the sequence 1.

そして、系列2の最初のバージョンであるバージョン(図13において「Ver2」)を元にして、バージョン2のコミュニティに属する開発者による開発がなされ、さまざまなバージョン系列が生成される。図13では、バージョン2のソフトウェアに基づいて、開発者Fによる開発によりバージョン2.F1が生成され、開発者Gによる開発によりバージョン2.G1が生成されたことが示されている。さらに、バージョン2.F1を元にして、バージョン2.F2が開発される。   Then, based on the version that is the first version of the series 2 (“Ver2” in FIG. 13), development is performed by developers belonging to the community of version 2, and various version series are generated. In FIG. 13, based on the software of version 2, version 2. F1 is generated, and version 2. It is shown that G1 has been generated. Version 2. Version 2. based on F1 F2 is developed.

図14は、本実施の形態に係る管理システム2の構成を示す説明図である。   FIG. 14 is an explanatory diagram illustrating the configuration of the management system 2 according to the present embodiment.

図14に示されるように、管理システム2は、複数の管理装置10D、10E及び10Fと、複数の開発装置20A等と、保管サーバ30と、制御装置70とを備える。複数の開発装置20A等と、保管サーバ30とは、それぞれ実施の形態1における同名の構成要素と同じであるので説明を省略する。   As illustrated in FIG. 14, the management system 2 includes a plurality of management devices 10D, 10E, and 10F, a plurality of development devices 20A and the like, a storage server 30, and a control device 70. The plurality of development devices 20A and the like and the storage server 30 are the same as the components having the same names in the first embodiment, and therefore, the description is omitted.

制御装置70は、管理装置10D等に対してバージョン系列の分岐をさせる制御をする制御装置である。制御装置70は、具体的には、上記制御として、バージョン系列の分岐をさせる指示である分岐指示を含む通信データを送信する。この通信データは、制御装置70に対するユーザによる操作などに基づいて送信され得る。   The control device 70 is a control device that controls the management device 10D and the like to branch the version sequence. Specifically, control device 70 transmits, as the above control, communication data including a branch instruction that is an instruction to cause a version sequence to branch. This communication data can be transmitted based on an operation of the control device 70 by a user or the like.

複数の管理装置10D、10E及び10F(10D等ともいう)は、実施の形態1における複数の管理装置10A等と同様に、バージョン情報をコンピュータにより管理する管理装置である。管理装置10D等は、管理装置10A等と同等の機能を有し、さらに、制御装置70から送信される分岐指示に基づいて、バージョン系列の分岐を作成する機能を有する。   The plurality of management devices 10D, 10E, and 10F (also referred to as 10D and the like) are management devices that manage version information by computer, similarly to the plurality of management devices 10A and the like in the first embodiment. The management device 10D and the like have functions equivalent to those of the management device 10A and the like, and further have a function of creating a version sequence branch based on a branch instruction transmitted from the control device 70.

図15は、本実施の形態に係る制御装置70の構成を示すブロック図である。   FIG. 15 is a block diagram illustrating a configuration of a control device 70 according to the present embodiment.

図15に示されるように、制御装置70は、通信部71と、分岐指示部72とを備える。   As shown in FIG. 15, the control device 70 includes a communication unit 71 and a branch instruction unit 72.

通信部71は、ネットワークNに接続される通信インタフェース装置である。制御装置70は、通信部71を介して管理装置10Dと通信可能である。制御装置70が備える各機能は、プロセッサがメモリを用いて所定のプログラムを実行することで実現され得る。   The communication unit 71 is a communication interface device connected to the network N. The control device 70 can communicate with the management device 10D via the communication unit 71. Each function of the control device 70 can be realized by the processor executing a predetermined program using the memory.

分岐指示部72は、通信部71を介して管理装置10Dに対して分岐をさせる指示(分岐指示)を送信する処理部である。分岐指示は、少なくとも、分岐の元になるバージョン系列を特定する情報を含む。   The branch instruction unit 72 is a processing unit that transmits an instruction (branch instruction) to cause the management device 10D to branch via the communication unit 71. The branch instruction includes at least information for specifying a version sequence serving as a branch source.

図16は、本実施の形態に係る管理装置10Dの構成を示すブロック図である。   FIG. 16 is a block diagram illustrating a configuration of a management device 10D according to the present embodiment.

図16に示されるように、管理装置10Dは、通信部11と、番号管理部12と、トランザクション検証部13と、台帳管理部14Aとを備える。管理装置10Dが備える各機能は、プロセッサがメモリを用いて所定のプログラムを実行することで実現され得る。   As shown in FIG. 16, the management device 10D includes a communication unit 11, a number management unit 12, a transaction verification unit 13, and a ledger management unit 14A. Each function of the management device 10D can be realized by a processor executing a predetermined program using a memory.

管理装置10Dは、台帳管理部14Aを備える点で、実施の形態1の管理装置10Aと異なる。以降、台帳管理部14Aについて主に説明する。   The management device 10D is different from the management device 10A of the first embodiment in that it has a ledger management unit 14A. Hereinafter, the ledger management unit 14A will be mainly described.

台帳管理部14Aは、分岐部17を有する。また、ブロックチェーン15に加えて、ブロックチェーン15Aを保有し得る。   The ledger management unit 14A has a branching unit 17. Further, in addition to the block chain 15, a block chain 15A can be held.

分岐部17は、ソフトウェアのバージョン系列を分岐させて新たな系列を作成する処理部である。分岐部17は、制御装置70が送信する分岐指示を含む通信データを通信部11を介して受信し、上記通信データを受信した場合に、ソフトウェアのバージョン系列の分岐を作成する。このとき、分岐部17は、これまでバージョンアップしてきたバージョン系列に対応するブロックチェーン15のうちの最新バージョンを少なくとも含む1以上のバージョンの複製を有する、新たなバージョン系列に対応するブロックチェーン15Aを生成することで、バージョン系列を分岐させる。   The branching unit 17 is a processing unit that branches a software version series to create a new series. The branching unit 17 receives communication data including a branch instruction transmitted by the control device 70 via the communication unit 11 and, when receiving the communication data, creates a software version sequence branch. At this time, the branching unit 17 generates a block chain 15A corresponding to a new version series having a copy of at least one version including at least the latest version of the block chains 15 corresponding to the version series that has been upgraded. By generating, the version sequence is branched.

バージョン系列の分岐の後、トランザクション検証部13は、トランザクションデータを受信する際には、トランザクションデータが第一バージョン系列又は第二バージョン系列のどちらに係るトランザクションデータであるかを特定し、受信したトランザクションデータを、第一バージョン系列及び第二バージョン系列のうち、特定したトランザクションデータに対応するバージョン系列に対応する分散台帳に格納するようにする。   After branching the version series, when receiving the transaction data, the transaction verification unit 13 specifies whether the transaction data is transaction data relating to the first version series or the second version series, and receives the received transaction data. Data is stored in a distributed ledger corresponding to the version series corresponding to the specified transaction data of the first version series and the second version series.

次に、本実施の形態の台帳管理部14Aが管理しているブロックチェーン15及び15Aについて説明する。   Next, the block chains 15 and 15A managed by the ledger management unit 14A according to the present embodiment will be described.

図17及び図18は、本実施の形態に係るブロックチェーン15及び15Aに格納されているトランザクションデータを示す説明図である。具体的には、図17に示されるトランザクションデータは、バージョン1を含むバージョン系列である系列1に対応するブロックチェーン15に格納されているトランザクションデータである。図18に示されるトランザクションデータは、バージョン2を含むバージョン系列である系列2に対応するブロックチェーン15Aに格納されているトランザクションデータである。   FIGS. 17 and 18 are explanatory diagrams showing transaction data stored in the block chains 15 and 15A according to the present embodiment. Specifically, the transaction data shown in FIG. 17 is the transaction data stored in the block chain 15 corresponding to the series 1 that is the version series including the version 1. The transaction data shown in FIG. 18 is transaction data stored in the block chain 15A corresponding to the series 2 which is a version series including version 2.

図17に示されるように、系列1に対応するブロックチェーン15に含まれる各トランザクションデータは、図10に示されるブロックチェーン15と同様に、ソフトウェアの各バージョンについてのURL、新バージョン番号、基バージョン番号及び開発者IDを含んでいる。具体的には、ブロックチェーン15は、バージョン1.A1、1.A2及び1.B1などについての上記各情報を含んでいる。   As shown in FIG. 17, each transaction data included in the block chain 15 corresponding to the series 1 includes the URL, the new version number, and the base version of each version of the software, similarly to the block chain 15 shown in FIG. Number and developer ID. Specifically, the blockchain 15 has the version 1. A1,1. A2 and 1. Each of the above information about B1 and the like is included.

また、図18に示されるように、系列2に対応するブロックチェーン15Aに含まれる各トランザクションデータは、図10に示されるブロックチェーン15と同様に、ソフトウェアの各バージョンについてのURL、新バージョン番号、基バージョン番号及び開発者IDを含んでいる。具体的には、ブロックチェーン15Aは、バージョン2.D1、2.D2及び2.E1などについての上記各情報を含んでいる。   Also, as shown in FIG. 18, each transaction data included in the block chain 15A corresponding to the series 2 includes a URL for each version of the software, a new version number, as in the block chain 15 shown in FIG. It contains the base version number and the developer ID. Specifically, the blockchain 15A has version 2. D1, 2,. D2 and 2. Each of the above information about E1 and the like is included.

以降において、管理システム2の処理を説明する。   Hereinafter, the processing of the management system 2 will be described.

図19は、本実施の形態に係る管理システム2における処理を示すシーケンス図である。   FIG. 19 is a sequence diagram illustrating processing in the management system 2 according to the present embodiment.

図19に示されるように、制御装置70は、ステップS271において、Z社によるバージョン系列を分岐させる決定がなされたら、分岐指示を含む通信データを生成し、管理装置10Dに送信する。   As shown in FIG. 19, when it is determined in step S271 that the version sequence is branched by the company Z, the control device 70 generates communication data including a branch instruction and transmits the communication data to the management device 10D.

ステップS211において、管理装置10Dは、ステップS271で送信された分岐指示を受信したら、新たなバージョン系列に対応するブロックチェーン(図16のブロックチェーン15Aに相当)を生成するためのトランザクションデータを生成する。   In step S211, when receiving the branch instruction transmitted in step S271, the management device 10D generates transaction data for generating a block chain (corresponding to the block chain 15A in FIG. 16) corresponding to the new version sequence. .

ステップS212において、管理装置10Dは、ステップS211で生成したトランザクションデータを管理装置10E及び10Fに送信する。そして、管理装置10D等によるコンセンサスアルゴリズムの実行により、トランザクションデータを含むブロックがブロックチェーンに格納される。これにより、新たなバージョン系列に対応するソフトウェアの新バージョンに関する情報、より具体的には、開発者ID及びバージョン番号がブロックチェーンに格納され、格納時以降の改ざんが困難になる。   In step S212, the management device 10D transmits the transaction data generated in step S211 to the management devices 10E and 10F. Then, the block including the transaction data is stored in the block chain by executing the consensus algorithm by the management device 10D or the like. As a result, information on the new version of the software corresponding to the new version series, more specifically, the developer ID and the version number are stored in the blockchain, and it becomes difficult to falsify after the storage.

次に、複数のバージョン系列それぞれに対応するブロックチェーンが管理装置10D等によって管理されているときの、新たなバージョンの管理について説明する。   Next, management of a new version when a block chain corresponding to each of a plurality of version series is managed by the management device 10D or the like will be described.

図20は、本実施の形態に係るトランザクションデータの例であるトランザクションデータ40Aを示す説明図である。   FIG. 20 is an explanatory diagram showing transaction data 40A which is an example of the transaction data according to the present embodiment.

トランザクションデータ40Aは、図7に示されるトランザクションデータ40にさらに系列番号43Aが追加されている。   The transaction data 40A is obtained by further adding a sequence number 43A to the transaction data 40 shown in FIG.

系列番号43Aは、当該トランザクションデータ40Aにより新たに管理させることになる新バージョンの系列を示す情報である。   The series number 43A is information indicating a series of a new version to be newly managed by the transaction data 40A.

なお、署名46は、トランザクションデータ40Aに含まれる情報から、開発者の秘密鍵での暗号化により生成された電子署名である。署名46の生成の元になる情報には、図7の署名46の生成の元になる情報に加えて系列番号43Aも含まれる。   The signature 46 is an electronic signature generated by encrypting the information included in the transaction data 40A with the developer's private key. The information on which the signature 46 is generated includes the sequence number 43A in addition to the information on which the signature 46 is generated in FIG.

複数の系列が存在する場合、開発装置20Aは、ソフトウェアの新バージョンが属する系列を示す系列番号43Aをトランザクションデータ40Aに含めて、管理装置10Dに送信する。管理装置10Dは、トランザクションデータ40Aを受信すると、受信したトランザクションデータ40Aに含まれる系列番号を取得し、その系列番号に応じたブロックチェーンにトランザクションデータ40Aを格納する。   When there are a plurality of sequences, the development device 20A includes the sequence number 43A indicating the sequence to which the new version of the software belongs, in the transaction data 40A, and transmits the transaction data 40A to the management device 10D. When receiving the transaction data 40A, the management device 10D acquires the sequence number included in the received transaction data 40A, and stores the transaction data 40A in a block chain corresponding to the sequence number.

図21は、本実施の形態に係るコンセンサスアルゴリズムに含まれるバージョン系列に関する処理を示すフロー図である。図21に示される処理は、図12のステップS115のコンセンサスアルゴリズムに含まれる処理である。   FIG. 21 is a flowchart showing processing related to the version sequence included in the consensus algorithm according to the present embodiment. The process illustrated in FIG. 21 is a process included in the consensus algorithm of step S115 in FIG.

ステップS141において、管理装置10Dは、受信したトランザクションデータ40Aに含まれる系列番号を取得する。   In step S141, the management device 10D acquires the sequence number included in the received transaction data 40A.

ステップS142において、管理装置10Dは、台帳管理部14Aが管理している複数のブロックチェーンのうちから、ステップS141で取得した系列番号に対応するブロックチェーンを特定する。   In step S142, the management device 10D specifies a block chain corresponding to the sequence number acquired in step S141 from among a plurality of block chains managed by the ledger management unit 14A.

ステップS143において、管理装置10Dは、ステップS142で特定したブロックチェーンについて、管理装置10E及び10Fとの間でコンセンサスアルゴリズムを実行する。これにより、受信したトランザクションデータ40AをステップS142で特定したブロックチェーンに格納する。   In step S143, the management device 10D executes a consensus algorithm with the management devices 10E and 10F for the block chain specified in step S142. As a result, the received transaction data 40A is stored in the block chain specified in step S142.

このようにして、開発装置20Aによって指定された系列番号に応じたブロックチェーンにトランザクションデータが格納される。   In this way, the transaction data is stored in the block chain corresponding to the sequence number specified by the development device 20A.

以上のように、本実施の形態の管理方法によれば、複数のバージョン系列それぞれに対応した分散台帳を管理しており、バージョン系列の分岐の際に、新しい系列に対応する分散台帳を生成する。一の系列で多数のバージョンアップが行われると、バージョンアップの履歴などの情報を取得する際に、多数のバージョンアップそれぞれに対応する情報が得られ、処理負荷が高くなる可能性がある。このような場合にバージョン系列を分岐し、新たなバージョン系列を新たな分散台帳で管理することで、バージョンアップの履歴などの情報を少なくし、上記の処理負荷の上昇を未然に防ぐことができる。   As described above, according to the management method of the present embodiment, a distributed ledger corresponding to each of a plurality of version series is managed, and when a version series is branched, a distributed ledger corresponding to a new series is generated. . If a large number of version upgrades are performed in one series, when acquiring information such as a history of version upgrades, information corresponding to each of the multiple version upgrades is obtained, and there is a possibility that the processing load increases. In such a case, by branching the version series and managing the new version series with a new distributed ledger, it is possible to reduce information such as the history of version upgrades and prevent the above processing load from increasing. .

また、複数のバージョン系列が複数の分散台帳によって管理されているときに、どちらのバージョン系列に属するトランザクションデータかを特定し、当該トランザクションデータを適切な分散台帳により管理することができる。   Further, when a plurality of version series are managed by a plurality of distribution ledgers, it is possible to specify which version series the transaction data belongs to, and manage the transaction data by an appropriate distribution ledger.

(実施の形態3)
本実施の形態において、ソフトウェアのバージョン管理方法であって、管理している情報の改ざんの発生を抑制する管理方法などについて説明する。特に、ソフトウェアのバージョン系列の利用を停止するようにバージョンを管理する技術について説明する。バージョン系列の利用を停止することを、バージョン系列を廃止する、ともいう。
(Embodiment 3)
In the present embodiment, a software version management method, such as a management method for suppressing the occurrence of falsification of managed information, will be described. In particular, a technology for managing versions so as to stop using the version series of software will be described. Stopping the use of a version series is also called abolishing the version series.

図22は、本実施の形態に係る、バージョン系列の廃止を示す説明図である。   FIG. 22 is an explanatory diagram showing the abolition of the version series according to the present embodiment.

図22に示されるVer1及びVer2は、実施の形態2に係るソフトウェアのバージョンに相当する。   Ver1 and Ver2 shown in FIG. 22 correspond to software versions according to the second embodiment.

ソフトウェア開発において、比較的新しいバージョン系列が生成されたなどの理由から、比較的古いバージョン系列の利用を停止、つまり廃止することが行われる。廃止されたバージョン系列は、廃止された時点以降のバージョンアップが禁止されるよう制御される。また、廃止された時点以降において、廃止された系列に含まれる各バージョンのソフトウェアのユーザへの提供が禁止されるように、さらに制御されてもよい。   In software development, use of a relatively old version series is stopped, that is, abolished, because a relatively new version series is generated. The abolished version series is controlled so that version upgrade after the abolition point is prohibited. Further, after the point of discontinuation, further control may be performed so that the provision of the software of each version included in the discontinued series to the user is prohibited.

具体的には、図22に示されるように、バージョン1.Aのバージョン系列の最新バージョン1.A3、及び、バージョン1.Bのバージョン系列の最新バージョン1.B2が存在する時点において、系列1が廃止されるとする。すると、例えばバージョン1.Aのバージョン系列に含まれ得る次のバージョン1.A4(不図示)、又は、バージョン1.Bのバージョン系列に含まれ得る次のバージョン1.B3(不図示)の登録は禁止される。また、廃止された時点以降で、バージョン1、バージョン1.A及びバージョン1.Bの各系列のソフトウェアのユーザへの提供が禁止される。   Specifically, as shown in FIG. The latest version of the A version series A3 and version 1. The latest version of the B version series It is assumed that the sequence 1 is abolished when B2 exists. Then, for example, version 1. The next version that can be included in the version series of A1. A4 (not shown) or version 1. The next version that can be included in the version series of B1. Registration of B3 (not shown) is prohibited. In addition, since the time of discontinuation, version 1, version 1. A and version 1. Provision of the software of each series B to the user is prohibited.

本実施の形態に係る管理システム2は、実施の形態2における管理システム2と同様であり、制御装置及び管理装置の機能が一部異なる。具体的には、本実施の形態に係る管理システム2は、制御装置70Aを備え、管理装置10G、10H及び10I(10G等ともいう)。以降において、本実施の形態に係る制御装置70A及び管理装置10Gについて詳しく説明する。   The management system 2 according to the present embodiment is similar to the management system 2 according to the second embodiment, and the functions of the control device and the management device are partially different. Specifically, the management system 2 according to the present embodiment includes a control device 70A, and includes management devices 10G, 10H, and 10I (also referred to as 10G or the like). Hereinafter, the control device 70A and the management device 10G according to the present embodiment will be described in detail.

図23は、本実施の形態に係る制御装置70Aの構成を示すブロック図である。   FIG. 23 is a block diagram showing a configuration of a control device 70A according to the present embodiment.

図23に示されるように、制御装置70Aは、通信部71と、トランザクション生成部73とを備える。なお、制御装置70Aは、実施の形態2の制御装置70と同様に分岐指示部72を備えてもよい。   As shown in FIG. 23, the control device 70A includes a communication unit 71 and a transaction generation unit 73. Note that the control device 70A may include the branch instruction unit 72, similarly to the control device 70 of the second embodiment.

通信部71は、実施の形態2の制御装置70Aが有する通信部71と同じである。   Communication unit 71 is the same as communication unit 71 included in control device 70A of the second embodiment.

トランザクション生成部73は、バージョン系列を廃止することを示すトランザクションデータを生成する処理部である。トランザクション生成部73は、生成したトランザクションデータを管理装置10Gに送信する。上記トランザクションデータは、廃止するバージョン系列を特定しうる特定情報として、系列番号を少なくとも含む。   The transaction generation unit 73 is a processing unit that generates transaction data indicating that the version series is abolished. The transaction generation unit 73 transmits the generated transaction data to the management device 10G. The transaction data includes at least a sequence number as specific information that can specify a version sequence to be abolished.

図24は、本実施の形態に係る管理装置10Gの構成を示すブロック図である。   FIG. 24 is a block diagram illustrating a configuration of a management device 10G according to the present embodiment.

図24に示されるように、管理装置10Gは、通信部11と、番号管理部12と、トランザクション検証部13と、台帳管理部14Aと、廃止部18とを備える。また、管理装置10Gは、状態管理部19を備えてもよい。管理装置10Gが備える各機能は、プロセッサがメモリを用いて所定のプログラムを実行することで実現され得る。   As shown in FIG. 24, the management device 10G includes a communication unit 11, a number management unit 12, a transaction verification unit 13, a ledger management unit 14A, and an abolition unit 18. The management device 10G may include a state management unit 19. Each function of the management device 10G can be realized by a processor executing a predetermined program using a memory.

管理装置10Gは、廃止部18を備える点、および、状態管理部19を備え得る点で、実施の形態1の管理装置10Aおよび実施の形態2の管理装置10Dと異なる。以降、廃止部18および状態管理部19について主に説明する。   The management device 10G is different from the management device 10A according to the first embodiment and the management device 10D according to the second embodiment in that the management device 10G includes an abolition unit 18 and may include a state management unit 19. Hereinafter, the abolition unit 18 and the state management unit 19 will be mainly described.

廃止部18は、廃止するバージョン系列に対応するブロックチェーンに、当該バージョン系列を廃止することを示す情報を含むブロックを格納する処理部である。廃止部18は、制御装置70Aが送信した、バージョン系列を廃止することを示すトランザクションデータを受信する。廃止部18は、受信したトランザクションデータに含まれる系列番号によって特定されるバージョン系列に対応するブロックチェーンに、当該トランザクションデータを格納する。   The abolition unit 18 is a processing unit that stores a block including information indicating that the version series is abolished in a block chain corresponding to the version series to be abolished. The abolition unit 18 receives the transaction data indicating that the version series is abolished, transmitted by the control device 70A. The abolition unit 18 stores the transaction data in the block chain corresponding to the version sequence specified by the sequence number included in the received transaction data.

状態管理部19は、各バージョン系列のが運用状態であるか、又は、廃止状態であるかを示す情報を管理している処理部である。状態管理部19は、管理装置10Gが管理しているバージョン系列のそれぞれについて、運用状態であるか、又は、廃止状態であるかを示す情報を保持している。そして、廃止部18がバージョン系列を廃止するトランザクションをブロックチェーンに格納するときに、状態管理部19は、そのバージョン系列の状態を、運用状態から廃止状態に変更する。なお、状態管理部19は、必須の構成ではない。   The state management unit 19 is a processing unit that manages information indicating whether each version series is in the operating state or the discontinued state. The state management unit 19 holds information indicating whether each of the version series managed by the management device 10G is in the operating state or the abolished state. Then, when the revoking unit 18 stores the transaction for revoking the version sequence in the blockchain, the state management unit 19 changes the state of the version sequence from the operation status to the revoked status. Note that the state management unit 19 is not an essential component.

図25は、本実施の形態に係るトランザクションデータの例であるトランザクションデータ80を示す説明図である。   FIG. 25 is an explanatory diagram showing transaction data 80 which is an example of transaction data according to the present embodiment.

図25に示されるように、トランザクションデータ80は、系列番号81と、廃止情報82と、署名83とを含む。   As shown in FIG. 25, transaction data 80 includes sequence number 81, abolition information 82, and signature 83.

系列番号81は、トランザクションデータ80によって廃止されるバージョン系列を特定する情報である。   The sequence number 81 is information for specifying a version sequence to be abolished by the transaction data 80.

廃止情報82は、トランザクションデータ80が、廃止を意味するトランザクションデータであることを意味する情報である。   The abolition information 82 is information indicating that the transaction data 80 is transaction data indicating abolition.

署名83は、トランザクションデータ80に含まれる情報から、制御装置70Aの秘密鍵での暗号化により生成された電子署名である。具体的には、系列番号81及び廃止情報82を含む情報に対するハッシュ演算により得られたハッシュ値を、制御装置70Aの秘密鍵で暗号化した値である。   The signature 83 is an electronic signature generated by encrypting the information included in the transaction data 80 with the secret key of the control device 70A. Specifically, it is a value obtained by encrypting a hash value obtained by performing a hash operation on information including the sequence number 81 and the revocation information 82 with a secret key of the control device 70A.

図26は、本実施の形態に係るブロックチェーンに格納されているトランザクションデータを示す説明図である。具体的には、図26に示されるトランザクションデータは、バージョン1のバージョン系列に対応するブロックチェーン15である。   FIG. 26 is an explanatory diagram showing transaction data stored in the block chain according to the present embodiment. Specifically, the transaction data shown in FIG. 26 is the block chain 15 corresponding to the version series of version 1.

図26に示されるように、バージョン1のバージョン系列に対応するブロックチェーン15に含まれる各トランザクションデータは、図10に示されるブロックチェーン15と同様に、ソフトウェアの各バージョンについてのURL、新バージョン番号、基バージョン番号及び開発者IDを含んでいる。具体的には、ブロックチェーン15は、バージョン1.A1、1.A2及び1.B1などについての上記各情報を含んでいる。   As shown in FIG. 26, each transaction data included in the block chain 15 corresponding to the version series of version 1 includes the URL and the new version number of each version of the software, similarly to the block chain 15 shown in FIG. , Base version number and developer ID. Specifically, the blockchain 15 has the version 1. A1,1. A2 and 1. Each of the above information about B1 and the like is included.

そして、ブロックチェーン15に含まれるトランザクションデータ91が、バージョン系列1Aを廃止状態にするトランザクションデータである。また、ブロックチェーン15に含まれるトランザクションデータ92が、バージョン系列1Bを廃止状態にするトランザクションデータである。   Then, the transaction data 91 included in the block chain 15 is the transaction data for bringing the version series 1A into the abolished state. Further, the transaction data 92 included in the block chain 15 is the transaction data for putting the version series 1B into the abolished state.

図27は、本実施の形態に係る状態管理部19が管理している状態情報を示す状態テーブルT1の説明図である。   FIG. 27 is an explanatory diagram of a state table T1 indicating state information managed by the state management unit 19 according to the present embodiment.

図27に示されるように、状態テーブルT1は、バージョン系列1A及び1Bの状態を示す情報を有する。図27では、バージョン系列1Aが廃止状態であり、バージョン系列1Bが運用状態であることが示されている。これは、台帳管理部14Aがバージョン1とバージョン2の各系列に対応するブロックチェーンを保有しており、バージョン1の系列が廃止され、バージョン2の系列が運用中である場合に対応している。   As shown in FIG. 27, the state table T1 has information indicating the states of the version series 1A and 1B. FIG. 27 shows that version series 1A is in an abolished state and version series 1B is in an operating state. This corresponds to a case where the ledger management unit 14A has a block chain corresponding to each of the series of version 1 and version 2, the series of version 1 is abolished, and the series of version 2 is in operation. .

以降において、管理システム2の処理を説明する。   Hereinafter, the processing of the management system 2 will be described.

図28は、本実施の形態に係る管理システム2における処理を示すシーケンス図である。   FIG. 28 is a sequence diagram illustrating processing in the management system 2 according to the present embodiment.

図28に示されるように、制御装置70Aは、ステップS371において、バージョン系列を廃止させるトランザクションデータを生成し、管理装置10Gに送信する。   As shown in FIG. 28, in step S371, the control device 70A generates transaction data for abolishing the version sequence, and transmits the transaction data to the management device 10G.

ステップS311において、管理装置10Gは、ステップS371で送信されたトランザクションデータを受信したら、受信したトランザクションデータを検証する。トランザクションデータの検証は、当該トランザクションデータに含まれる情報と、制御装置70Aの公開鍵とによりなされる。ここでは、トランザクションデータの検証の結果、トランザクションデータが正当であると判定されたとする。   In step S311, upon receiving the transaction data transmitted in step S371, the management device 10G verifies the received transaction data. The verification of the transaction data is performed based on the information included in the transaction data and the public key of the control device 70A. Here, it is assumed that the transaction data is determined to be valid as a result of the verification of the transaction data.

ステップS312において、管理装置10Gは、ステップS312で生成したトランザクションデータを管理装置10H及び10Iに送信する。そして、管理装置10G等によるコンセンサスアルゴリズムの実行により、トランザクションデータを含むブロックがブロックチェーンに格納される。これにより、バージョン系列の廃止を示す情報がブロックチェーンに格納され、以降の改ざんが困難になる。そして、これ以降に、廃止したバージョン系列に対応するブロックチェーンへのブロックの接続が禁止され、また、廃止したバージョン系列に含まれるソフトウェアの提供も禁止される。   In step S312, the management device 10G transmits the transaction data generated in step S312 to the management devices 10H and 10I. Then, the block including the transaction data is stored in the block chain by executing the consensus algorithm by the management device 10G or the like. As a result, information indicating the abolition of the version series is stored in the block chain, and subsequent tampering becomes difficult. Thereafter, connection of the block to the block chain corresponding to the discontinued version series is prohibited, and provision of software included in the discontinued version series is also prohibited.

なお、ステップS311でトランザクションデータの検証に失敗した、つまり、トランザクションデータが正当でないと検証された場合には、その旨を制御装置70Aに通知するようにしてもよい。このようにすれば、制御装置70Aの運用者がそのことを認識し対処することができる。一方、上記通知はなされなくてもよい。   If the verification of the transaction data has failed in step S311, that is, if it is verified that the transaction data is not valid, the fact may be notified to the control device 70A. By doing so, the operator of the control device 70A can recognize this and take measures. On the other hand, the notification need not be made.

なお、管理装置10Gは、既に廃止されたバージョン系列に対して開発装置20Aから新バージョン番号の発行依頼を受信した場合には、当該バージョン系列が既に廃止されていることを示す通知を送信してもよい。また、管理装置10Gがバージョン系列を廃止したときに、トークン管理部16が、廃止したバージョン系列に含まれるバージョンの開発者にトークンを提供してもよい。このトークンは、報奨金または支度金としての意味あいを有するともいえる。   When the management device 10G receives a request to issue a new version number from the development device 20A for the already discontinued version series, the management device 10G transmits a notification indicating that the version series has already been discontinued. Is also good. When the management device 10G abolishes the version series, the token management unit 16 may provide a token to a developer of a version included in the abolished version series. This token can be said to have a meaning as a reward or reward.

上記各実施の形態におけるブロックチェーンについて補足的に説明する。   The block chain in each of the above embodiments will be supplementarily described.

図29は、ブロックチェーンのデータ構造を示す説明図である。   FIG. 29 is an explanatory diagram showing the data structure of the block chain.

ブロックチェーンは、その記録単位であるブロックがチェーン(鎖)上に接続されたものである。それぞれのブロックは、複数のトランザクションデータと、直前のブロックのハッシュ値とを有している。具体的には、ブロックB2には、その前のブロックB1のハッシュ値が含まれている。そして、ブロックB2に含まれる複数のトランザクションデータと、ブロックB1のハッシュ値とから演算されたハッシュ値が、ブロックB2のハッシュ値として、ブロックB3に含められる。このように、前のブロックの内容をハッシュ値として含めながら、ブロックをチェーン状に接続することで、記録されたトランザクションデータの改ざんを有効に防止する。   A block chain is a block in which blocks as recording units are connected on a chain. Each block has a plurality of transaction data and a hash value of the immediately preceding block. Specifically, the block B2 includes the hash value of the previous block B1. Then, the hash value calculated from the plurality of transaction data included in the block B2 and the hash value of the block B1 is included in the block B3 as the hash value of the block B2. In this way, by connecting the blocks in a chain while including the contents of the previous block as a hash value, falsification of the recorded transaction data is effectively prevented.

仮に過去のトランザクションデータが変更されると、ブロックのハッシュ値が変更前と異なる値になり、改ざんしたブロックを正しいものとみせかけるには、それ以降のブロックすべてを作り直さなければならず、この作業は現実的には非常に困難である。この性質を使用して、ブロックチェーンに改ざん困難性が担保されている。   If past transaction data is changed, the hash value of the block will be different from the value before the change, and in order to make the falsified block correct, all subsequent blocks must be recreated, and this work Is very difficult in practice. Using this property, the tampering difficulty of the blockchain is secured.

図30は、トランザクションデータのデータ構造を示す説明図である。   FIG. 30 is an explanatory diagram showing the data structure of the transaction data.

図30に示されるトランザクションデータは、トランザクション本体P1と、電子署名P2とを含む。トランザクション本体P1は、当該トランザクションデータに含まれるデータ本体である。電子署名P2は、トランザクション本体P1のハッシュ値に対して、当該トランザクションデータの作成者の署名鍵で署名する、より具体的には、作成者の秘密鍵で暗号化することで生成されたものである。   The transaction data shown in FIG. 30 includes a transaction body P1 and an electronic signature P2. The transaction body P1 is a data body included in the transaction data. The electronic signature P2 is generated by signing the hash value of the transaction body P1 with the signature key of the creator of the transaction data, more specifically, by encrypting the hash value with the secret key of the creator. is there.

トランザクションデータは、電子署名P2を有するので、改ざんが実質的に不可能である。これにより、トランザクション本体の改ざんが防止される。   Since the transaction data has the digital signature P2, falsification is substantially impossible. This prevents tampering of the transaction body.

以上のように、本実施の形態の管理方法によれば、所定のトランザクションデータによって、適切にバージョン系列を廃止することができる。よって、さらにバージョン系列の廃止を実現しながら、より容易に、管理している情報の改ざんの発生を抑制することができる。   As described above, according to the management method of the present embodiment, it is possible to appropriately abolish the version series using predetermined transaction data. Therefore, it is possible to more easily suppress the falsification of the managed information while further eliminating the version series.

なお、上記各実施の形態において、各構成要素は、専用のハードウェアで構成されるか、各構成要素に適したソフトウェアプログラムを実行することによって実現されてもよい。各構成要素は、CPUまたはプロセッサなどのプログラム実行部が、ハードディスクまたは半導体メモリなどの記録媒体に記録されたソフトウェアプログラムを読み出して実行することによって実現されてもよい。ここで、上記各実施の形態の管理装置などを実現するソフトウェアは、次のようなプログラムである。   In each of the above embodiments, each component may be configured by dedicated hardware, or may be realized by executing a software program suitable for each component. Each component may be realized by a program execution unit such as a CPU or a processor reading and executing a software program recorded on a recording medium such as a hard disk or a semiconductor memory. Here, the software for realizing the management device and the like in each of the above embodiments is the following program.

すなわち、このプログラムは、コンピュータに、バージョン管理システムにより実行される、ソフトウェアのバージョンの管理方法であって、前記バージョン管理システムは、分散台帳を保有している複数の管理装置を備え、前記管理方法は、前記複数の管理装置のうちの第一の管理装置が、前記ソフトウェアの第一バージョンに関する第一情報と、前記第一バージョンを元に開発者によってバージョンアップされた前記ソフトウェアの第二バージョンに関する第二情報と、前記開発者の識別情報と、電子署名とを含むトランザクションデータを、前記第一の管理装置にネットワークを介して接続されている装置から受信し、前記第一の管理装置が、受信した前記トランザクションデータに含まれる前記電子署名を用いて前記トランザクションデータの正当性を検証し、前記トランザクションデータが正当である場合に、前記複数の管理装置それぞれが前記トランザクションデータを前記分散台帳に格納する管理方法を実行させるプログラムである。   That is, this program is a software version management method executed on a computer by a version management system, wherein the version management system includes a plurality of management devices holding a distributed ledger, The first management device of the plurality of management devices is related to first information about a first version of the software and a second version of the software upgraded by a developer based on the first version. Transaction information including second information, the developer identification information, and an electronic signature is received from a device connected to the first management device via a network, and the first management device is Using the electronic signature included in the received transaction data, the transaction Verifies the validity of the data, if the transaction data is valid, a program for executing a method of managing each of the plurality of management apparatus storing the transaction data in the distributed ledger.

以上、一つまたは複数の態様に係る管理方法などについて、実施の形態に基づいて説明したが、本発明は、この実施の形態に限定されるものではない。本発明の趣旨を逸脱しない限り、当業者が思いつく各種変形を本実施の形態に施したものや、異なる実施の形態における構成要素を組み合わせて構築される形態も、一つまたは複数の態様の範囲内に含まれてもよい。   As described above, the management method according to one or more aspects has been described based on the embodiment, but the present invention is not limited to this embodiment. Unless departing from the gist of the present invention, various modifications conceivable to those skilled in the art may be applied to this embodiment, and a form constructed by combining components in different embodiments may be in the range of one or more aspects. May be included within.

本発明は、ソフトウェアのバージョン管理方法であって、管理している情報の改ざんの発生を抑制する管理システムなどに利用可能である。   INDUSTRIAL APPLICABILITY The present invention is a software version management method, and can be used for a management system or the like that suppresses the occurrence of falsification of managed information.

1、2 管理システム
10A、10B、10C、10D、10E、10F、10G、10H、10I 管理装置
11、21、31、71 通信部
12 番号管理部
13 トランザクション検証部
14、14A 台帳管理部
15、15A ブロックチェーン
16 トークン管理部
17 分岐部
18 廃止部
19 状態管理部
20A、20B、20C 開発装置
22 開発部
23、73 トランザクション生成部
24、34 記憶装置
30 保管サーバ
32 保管部
33 発行部
40、40A、50、60、80、91、92 トランザクションデータ
41、51、61 開発者ID
42、52、62 URL
43 新バージョン番号
43A、81 系列番号
44 基バージョン番号
45、53 新バージョンのハッシュ値
46、55、65、83 署名
54、64 基バージョンのハッシュ値
63 差分のハッシュ値
70、70A 制御装置
72 分岐指示部
82 廃止情報
B1、B2、B3 ブロック
N ネットワーク
T1 状態テーブル
P1 トランザクション本体
P2 電子署名
1, 2 management system 10A, 10B, 10C, 10D, 10E, 10F, 10G, 10H, 10I management device 11, 21, 31, 71 communication unit 12 number management unit 13 transaction verification unit 14, 14A ledger management unit 15, 15A Block chain 16 token management unit 17 branch unit 18 abolition unit 19 state management unit 20A, 20B, 20C development device 22 development unit 23, 73 transaction generation unit 24, 34 storage device 30 storage server 32 storage unit 33 issuing unit 40, 40A 50, 60, 80, 91, 92 Transaction data 41, 51, 61 Developer ID
42, 52, 62 URL
43 New version number 43A, 81 Sequence number 44 Base version number 45, 53 New version hash value 46, 55, 65, 83 Signature 54, 64 Base version hash value 63 Difference hash value 70, 70A Control device 72 Branch instruction Part 82 Revocation information B1, B2, B3 Block N Network T1 Status table P1 Transaction body P2 Electronic signature

Claims (13)

バージョン管理システムにより実行される、ソフトウェアのバージョンの管理方法であって、
前記バージョン管理システムは、分散台帳を保有している複数の管理装置を備え、
前記管理方法は、
前記複数の管理装置のうちの第一の管理装置が、前記ソフトウェアの第一バージョンに関する第一情報と、前記第一バージョンを元に開発者によってバージョンアップされた前記ソフトウェアの第二バージョンに関する第二情報と、前記開発者の識別情報と、電子署名とを含むトランザクションデータを、前記第一の管理装置にネットワークを介して接続されている装置から受信し、
前記第一の管理装置が、受信した前記トランザクションデータに含まれる前記電子署名を用いて前記トランザクションデータの正当性を検証し、
前記トランザクションデータが正当である場合に、前記複数の管理装置それぞれが前記トランザクションデータを前記分散台帳に格納する
管理方法。
A method for managing software versions performed by a version control system,
The version control system includes a plurality of management devices holding a distributed ledger,
The management method includes:
A first management device of the plurality of management devices has first information on a first version of the software and a second information on a second version of the software upgraded by a developer based on the first version. Information, transaction data including the developer identification information, and an electronic signature are received from a device connected to the first management device via a network,
The first management device verifies the validity of the transaction data using the electronic signature included in the received transaction data,
A management method in which each of the plurality of management devices stores the transaction data in the distribution ledger when the transaction data is valid.
前記第二情報は、前記第二バージョンのバージョン番号を含み、
前記管理方法は、さらに、
前記トランザクションデータを受信する前に、前記第二バージョンのバージョン番号の発行依頼を前記装置から受信した場合に、前記第二バージョンのバージョン番号として新たなバージョン番号を前記装置に送信し、
前記トランザクションデータを受信する際には、前記装置に送信した前記新たなバージョン番号を前記第二情報として含む前記トランザクションデータを受信する
請求項1に記載の管理方法。
The second information includes a version number of the second version,
The management method further includes:
Before receiving the transaction data, if a request to issue a version number of the second version is received from the device, a new version number is transmitted to the device as the version number of the second version,
The management method according to claim 1, wherein when receiving the transaction data, the transaction data including the new version number transmitted to the device as the second information is received.
前記第一情報は、前記ソフトウェアの前記第一バージョンのバージョン番号を含み、
前記第二情報は、前記ソフトウェアの前記第二バージョンのハッシュ値と、前記第二バージョンのバージョン番号とを含む
請求項1又は2に記載の管理方法。
The first information includes a version number of the first version of the software,
The management method according to claim 1, wherein the second information includes a hash value of the second version of the software and a version number of the second version.
前記第一情報は、前記ソフトウェアの前記第一バージョンのハッシュ値を含み、
前記第二情報は、前記ソフトウェアの前記第二バージョンのハッシュ値を含む
請求項1又は2に記載の管理方法。
The first information includes a hash value of the first version of the software,
The management method according to claim 1, wherein the second information includes a hash value of the second version of the software.
前記第一情報は、前記ソフトウェアの前記第一バージョンのハッシュ値を含み、
前記第二情報は、前記ソフトウェアの前記第一バージョンと前記第二バージョンとの差分のハッシュ値を含む
請求項1又は2に記載の管理方法。
The first information includes a hash value of the first version of the software,
The management method according to claim 1, wherein the second information includes a hash value of a difference between the first version and the second version of the software.
前記装置は、前記ソフトウェアの前記第二バージョンが格納されている場所を示す場所情報を保有しており、
前記管理方法は、
前記トランザクションデータを受信する際には、前記場所情報を含む前記トランザクションデータを受信する
請求項1〜5のいずれか1項に記載の管理方法。
The device has location information indicating where the second version of the software is stored,
The management method includes:
The management method according to any one of claims 1 to 5, wherein when receiving the transaction data, the transaction data including the location information is received.
前記管理方法は、前記ソフトウェアの第一バージョン系列から第二バージョン系列を分岐させる際には、
前記第一バージョン系列のうちの最後のバージョンを少なくとも含む1以上のバージョンを、前記第二バージョン系列の1以上のバージョンとして有する新たな分散台帳を生成し、前記複数の管理装置が前記新たな分散台帳を保有する
請求項1〜6のいずれか1項に記載の管理方法。
The management method, when branching the second version series from the first version series of the software,
A new distributed ledger having at least one version including at least the last version of the first version series as one or more versions of the second version series is generated, and the plurality of management apparatuses are configured to generate the new distributed ledger. The management method according to any one of claims 1 to 6, wherein a ledger is held.
前記トランザクションデータを受信する際には、前記トランザクションデータが前記第一バージョン系列又は前記第二バージョン系列のどちらに係るトランザクションデータであるかを特定し、
受信した前記トランザクションデータを、前記第一バージョン系列及び前記第二バージョン系列のうち、特定した前記トランザクションデータに対応するバージョン系列に対応する分散台帳に格納する
請求項7に記載の管理方法。
When receiving the transaction data, specify whether the transaction data is transaction data according to the first version series or the second version series,
The management method according to claim 7, wherein the received transaction data is stored in a distributed ledger corresponding to a version series corresponding to the specified transaction data among the first version series and the second version series.
前記管理方法は、さらに、
一のバージョン系列を廃止する際には、
前記一のバージョン系列を廃止することを示すトランザクションデータを生成し、生成したトランザクションデータを、前記一のバージョン系列に対応する前記分散台帳に格納する
請求項1〜8のいずれか1項に記載の管理方法。
The management method further includes:
When abolishing one version series,
9. The transaction data indicating that the one version series is abolished is generated, and the generated transaction data is stored in the distributed ledger corresponding to the one version series. 10. Management method.
前記管理方法は、さらに、
前記分散台帳に格納されている前記トランザクションデータを参照して、前記開発者にトークンを提供する
請求項1〜9のいずれか1項に記載の管理方法。
The management method further includes:
The management method according to any one of claims 1 to 9, wherein a token is provided to the developer with reference to the transaction data stored in the distribution ledger.
前記分散台帳はブロックチェーンであり、
前記トランザクションデータが正当である場合、前記複数の管理装置のそれぞれが前記トランザクションデータを前記ブロックチェーンに格納する
請求項1〜10のいずれか1項に記載の管理方法。
The distributed ledger is a blockchain,
The management method according to any one of claims 1 to 10, wherein when the transaction data is valid, each of the plurality of management devices stores the transaction data in the block chain.
ソフトウェアのバージョンを管理するためのバージョン管理システムが備える、分散台帳を保有している複数の管理装置のうちの第一の管理装置であって、
前記ソフトウェアの第一バージョンに関する第一情報と、前記第一バージョンを元に開発者によってバージョンアップされた前記ソフトウェアの第二バージョンに関する第二情報と、前記開発者の識別情報と、電子署名とを含むトランザクションデータを、前記第一の管理装置にネットワークを介して接続されている装置から受信し、受信した前記トランザクションデータに含まれる前記電子署名を用いて前記トランザクションデータの正当性を検証するトランザクション検証部と、
前記トランザクションデータが正当である場合に、前記トランザクションデータを前記分散台帳に格納する台帳管理部とを備える
管理装置。
A version management system for managing software versions, the first management device among a plurality of management devices holding a distributed ledger,
First information on the first version of the software, second information on the second version of the software upgraded by a developer based on the first version, identification information of the developer, and an electronic signature A transaction verification that receives transaction data including the transaction data from a device connected to the first management device via a network, and verifies the validity of the transaction data using the electronic signature included in the received transaction data. Department and
A management device comprising: a ledger management unit that stores the transaction data in the distributed ledger when the transaction data is valid.
ソフトウェアのバージョンを管理するためのバージョン管理システムが備える、分散台帳を保有している複数の管理装置のうちの第一の管理装置として、コンピュータを動作させるためのプログラムであって、
前記ソフトウェアの第一バージョンに関する第一情報と、前記第一バージョンを元に開発者によってバージョンアップされた前記ソフトウェアの第二バージョンに関する第二情報と、前記開発者の識別情報と、電子署名とを含むトランザクションデータを、前記第一の管理装置にネットワークを介して接続されている装置から受信し、受信した前記トランザクションデータに含まれる前記電子署名を用いて前記トランザクションデータの正当性を検証し、
前記トランザクションデータが正当である場合に、前記トランザクションデータを前記分散台帳に格納する
プログラム。
A version management system for managing software versions, a first management device among a plurality of management devices holding a distributed ledger, a program for operating a computer,
First information on the first version of the software, second information on the second version of the software upgraded by a developer based on the first version, identification information of the developer, and an electronic signature Transaction data including, received from a device connected to the first management device via a network, verify the validity of the transaction data using the electronic signature included in the received transaction data,
A program for storing the transaction data in the distributed ledger when the transaction data is valid.
JP2019054577A 2018-06-18 2019-03-22 Management method, management device, and program Active JP7316812B2 (en)

Priority Applications (4)

Application Number Priority Date Filing Date Title
EP19180158.8A EP3584759B1 (en) 2018-06-18 2019-06-14 Management method, management apparatus, and program
CN201910514732.5A CN110619235A (en) 2018-06-18 2019-06-14 Management method, management apparatus, and recording medium
US16/441,814 US11327745B2 (en) 2018-06-18 2019-06-14 Preventing falsification in version management
JP2023069332A JP7472359B2 (en) 2018-06-18 2023-04-20 Management method, management device, and program

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201862686359P 2018-06-18 2018-06-18
US62/686,359 2018-06-18

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2023069332A Division JP7472359B2 (en) 2018-06-18 2023-04-20 Management method, management device, and program

Publications (2)

Publication Number Publication Date
JP2019220146A true JP2019220146A (en) 2019-12-26
JP7316812B2 JP7316812B2 (en) 2023-07-28

Family

ID=69096755

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019054577A Active JP7316812B2 (en) 2018-06-18 2019-03-22 Management method, management device, and program

Country Status (1)

Country Link
JP (1) JP7316812B2 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106897348A (en) * 2016-08-19 2017-06-27 阿里巴巴集团控股有限公司 A kind of data storage, data check, data source tracing method and equipment
US20170237569A1 (en) * 2016-02-16 2017-08-17 Xerox Corporation Secure revisioning auditing system for electronic document files

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170237569A1 (en) * 2016-02-16 2017-08-17 Xerox Corporation Secure revisioning auditing system for electronic document files
CN106897348A (en) * 2016-08-19 2017-06-27 阿里巴巴集团控股有限公司 A kind of data storage, data check, data source tracing method and equipment

Also Published As

Publication number Publication date
JP7316812B2 (en) 2023-07-28

Similar Documents

Publication Publication Date Title
JP7472359B2 (en) Management method, management device, and program
JP6821020B2 (en) Domain name management method for cross-chain interaction in blockchain system
US20110321172A1 (en) Management apparatus, license management server, electronic equipment, electronic equipment management system, management method, program, and recording medium
US11372980B2 (en) Blockchains for software component vulnerability databases
CN102904927B (en) Distributed computer systems with time-dependent credentials
US11861360B2 (en) Management method, management apparatus, and program
JP5428685B2 (en) License introduction support device, license introduction support method, and license introduction support program
CN111052120A (en) Digital asset traceability and assurance using distributed ledgers
CN110168552A (en) Verified guidance and key rotation
JP2010237898A (en) Apparatus, and method for processing login and program
WO2020256998A1 (en) Scalable, secure, efficient, and adaptable distributed digital ledger transaction network
JPWO2008146408A1 (en) License management program, software usage control method, and license management apparatus
US20200394162A1 (en) Operation management method for distributed ledger system, operation management system for distributed ledger system, and operation management program for distributed ledger system
JP2023525576A (en) Scope of control of authentication keys for software updates
JP7303653B2 (en) Management method, management device, and program
JP6477073B2 (en) License management system, program, and license management method
JP7316812B2 (en) Management method, management device, and program
JP2008134819A (en) Information processing system, electronic permission information issuing device, electronic information using device, right issuing device, electronic permission information issuing program, electronic information using program, and right issuing program
US9336361B2 (en) Feature license-related repair/replacement processes and credit handling
WO2022163619A1 (en) Control method, control device, and program
CN115361390B (en) Method for joining a blockchain network, computer storage medium and electronic device
JP2019144995A (en) Information processing device and information processing program
Stengele Decentralizing Software Identity Management
Milton A Brief Security Analysis of Arch Linux and its Package Management System
Di Carlo et al. Debian Developer’s Reference

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20211018

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220825

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220906

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221201

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20230110

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230420

C60 Trial request (containing other claim documents, opposition documents)

Free format text: JAPANESE INTERMEDIATE CODE: C60

Effective date: 20230420

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20230428

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: 20230620

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230718

R150 Certificate of patent or registration of utility model

Ref document number: 7316812

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150