JP7053031B2 - Information processing system, information processing device, information processing method and information processing program - Google Patents

Information processing system, information processing device, information processing method and information processing program Download PDF

Info

Publication number
JP7053031B2
JP7053031B2 JP2018153949A JP2018153949A JP7053031B2 JP 7053031 B2 JP7053031 B2 JP 7053031B2 JP 2018153949 A JP2018153949 A JP 2018153949A JP 2018153949 A JP2018153949 A JP 2018153949A JP 7053031 B2 JP7053031 B2 JP 7053031B2
Authority
JP
Japan
Prior art keywords
license
encrypted data
information
processing unit
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2018153949A
Other languages
Japanese (ja)
Other versions
JP2020030454A (en
Inventor
一樹 客野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Axell Corp
Original Assignee
Axell Corp
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 Axell Corp filed Critical Axell Corp
Priority to JP2018153949A priority Critical patent/JP7053031B2/en
Publication of JP2020030454A publication Critical patent/JP2020030454A/en
Application granted granted Critical
Publication of JP7053031B2 publication Critical patent/JP7053031B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Description

本発明は、情報処理システムに関し、特にブロックチェーンを活用してソフトウェア等のライセンスを管理するシステムに関する。 The present invention relates to an information processing system, and more particularly to a system that manages licenses of software and the like by utilizing a blockchain.

従来、アプリケーションソフトウェア(以下、単にアプリケーションと記載する)や、音楽、電子書籍などのデジタルコンテンツ(以下、単にコンテンツと記載する)の利用に際して、利用者が正当なライセンスを保持しているか否かを所謂クライアント・サーバシステムによって判定していた。
従来の方法において、クライアント装置は、アプリケーションやコンテンツの実行、利用時にサーバ装置に許諾要求を送信する。許諾要求を受信したサーバ装置は、許諾要求を検証したのち、許諾情報をクライアント装置に送信する。クライアント装置は、この許諾情報を受信したことに応じて、アプリケーションやコンテンツの実行を可能とする。
クライアント装置が送信する許諾要求は、例えば、クライアント装置あるいはユーザ自身を特定する識別情報(ユーザID)と、ライセンスコードのペアである。このような識別情報を受信したサーバ装置は認証用データベースを参照し、該当のペアがデータベースに登録されていれば、許諾情報をクライアント装置に送信する。
または、特許文献1に開示されるシステムでは、利用者端末(クライアント装置)は、鍵生成部と、許諾要求部と、コンテンツ利用部とを備える。鍵生成部は、第1鍵ペアと第2鍵ペアとを生成する。許諾要求部は、第2鍵ペアの公開の暗号鍵を含む許諾要求を、第1鍵ペアの秘密の暗号鍵で電子署名して送信する。
それに対し、権利者端末(サーバ装置)は、鍵管理部と、許諾検証部と、許諾発行部を備える。鍵管理部は、第3鍵ペアとコンテンツ復号鍵とを格納する。許諾検証部は、利用者端末から受信した許諾要求を検証する。許諾発行部は、許諾要求に含まれる第2鍵ペアの公開の暗号鍵を用いてコンテンツ復号鍵を暗号化し、暗号化したコンテンツ復号鍵を含む許諾情報を第3鍵ペアの秘密の暗号鍵で電子署名して送信する。
許諾情報を受信した利用者端末のコンテンツ利用部は、許諾情報から第2鍵ペアの秘密の復号鍵を用いてコンテンツ復号鍵を取得し、コンテンツを利用する。
Conventionally, whether or not the user holds a legitimate license when using application software (hereinafter, simply referred to as application) and digital contents such as music and electronic books (hereinafter, simply referred to as contents). It was determined by the so-called client / server system.
In the conventional method, the client device sends a permission request to the server device when the application or content is executed or used. After receiving the license request, the server device verifies the license request and then sends the license information to the client device. The client device can execute the application or the content in response to receiving this permission information.
The permission request transmitted by the client device is, for example, a pair of identification information (user ID) that identifies the client device or the user himself / herself and a license code. The server device that receives such identification information refers to the authentication database, and if the corresponding pair is registered in the database, sends the permission information to the client device.
Alternatively, in the system disclosed in Patent Document 1, the user terminal (client device) includes a key generation unit, a license request unit, and a content utilization unit. The key generation unit generates a first key pair and a second key pair. The license request unit digitally signs and transmits a license request including the public encryption key of the second key pair with the secret encryption key of the first key pair.
On the other hand, the right holder terminal (server device) includes a key management unit, a license verification unit, and a license issuing unit. The key management unit stores the third key pair and the content decryption key. The license verification unit verifies the license request received from the user terminal. The license issuing department encrypts the content decryption key using the public encryption key of the second key pair included in the license request, and the license information including the encrypted content decryption key is used as the secret encryption key of the third key pair. Digitally sign and send.
The content user unit of the user terminal that has received the license information acquires the content decryption key from the license information using the secret decryption key of the second key pair, and uses the content.

特開2017-050763公報JP-A-2017-050763

従来行われているクライアント・サーバシステムに則ったライセンス認証(クラウド認証)には、以下のような問題がある。すなわち、サーバ装置、権利者端末が障害やメンテナンスによって非稼動状態にある場合、ライセンス認証を行うことが出来ない。さらに、ライセンスを付与した主体がサービスを終了し、サーバ装置や権利者端末の稼働を終了してしまった場合、もはや認証を行うことが出来ず、アプリケーションやコンテンツの利用が不可能となってしまう。
本願発明は、上記の課題を鑑みてなされたものであり、アプリケーションやコンテンツのライセンス認証を安定的、継続的に実行可能なシステムを提供することを目的とする。
The conventional license authentication (cloud authentication) based on the client / server system has the following problems. That is, if the server device and the right holder terminal are in a non-operating state due to a failure or maintenance, license authentication cannot be performed. Furthermore, if the licensed entity terminates the service and the operation of the server device or the right holder terminal is terminated, authentication can no longer be performed and the application or content cannot be used. ..
The present invention has been made in view of the above problems, and an object of the present invention is to provide a system capable of stably and continuously executing license authentication of applications and contents.

本発明は、上述の課題を解決するためになされたものであり、以下の形態により実現することが可能である。
第1の形態は、第1の装置と、第2の装置と、を備え、前記第1の装置は、入力されたデータの暗号化処理を行って暗号化データを出力する暗号化処理部と、前記第2の装置の利用者に対して前記データに係るライセンスの付与を行い、当該ライセンスの付与に係るライセンス情報をブロックチェーンネットワークに送出するライセンス付与処理部と、を備え、前記暗号化データは、当該暗号化データを特定するために作成された第1の仮想通貨ウォレットアドレスを含み、前記第2の装置は、前記暗号化データの利用時に、ブロックチェーン上に記録されたライセンス情報に基づく認証を行うライセンス認証処理部と、前記認証が成功した場合に前記暗号化データに対する復号処理を行う復号処理部と、を備える、情報処理システムを特徴とする。
第2の形態は、入力されたデータの暗号化処理を行って暗号化データを出力する暗号化処理部と、他の装置の利用者に対して前記データに係るライセンスの付与を行い、当該ライセンスの付与に係るライセンス情報をブロックチェーンネットワークにする送出するライセンス付与処理部と、を備え、前記暗号化データは、当該暗号化データを特定するために作成された第1の仮想通貨ウォレットアドレスを含む情報処理装置を特徴とする。
第3の形態は、暗号化データの利用時に、ブロックチェーン上に記憶されたライセンス情報に基づいて認証を行うライセンス認証処理部と、前記認証が成功した場合に前記暗号化データに対する復号処理を行う復号処理部と、を備え、前記暗号化データは、当該暗号化データを特定するために作成された第1の仮想通貨ウォレットアドレスを含む情報処理装置を特徴とする。
第4の形態は、データに対する暗号化処理を行い、暗号化データを生成する暗号化処理部と、前記データの利用者に対して前記データに係るライセンスの付与を行い、前記ライセンスの付与に係るライセンス情報をブロックチェーンネットワークに送出するライセンス付与処理部と、前記暗号化データの利用時に前記ライセンス情報に応じて認証を行うために、前記ライセンス情報をブロックチェーンネットワークに問い合わせるコードを、前記暗号化データに付加する付加部と、を備え、前記付加部は、さらに、前記暗号化データの利用時に前記暗号化データを特定するために作成された第1の仮想通貨ウォレットアドレスを前記暗号化データに付加する情報処理装置を特徴とする。
第5の形態は、コンピュータによって実行される情報処理方法であって、データに対する暗号化処理を行い、暗号化データを生成し、前記データの利用者に対して前記データに係るライセンスを付与し、前記ライセンスの付与に係るライセンス情報をブロックチェーンネットワークに送出し、前記暗号化データの利用時に前記ライセンス情報に応じて認証を行うために、前記ライセンス情報をブロックチェーンネットワークに問い合わせるコードを、前記暗号化データに付加し、前記暗号化データの利用時に前記暗号化データを特定するために作成された第1の仮想通貨ウォレットアドレスを前記暗号化データに付加する情報処理方法を特徴とする。
第6の形態は、データに対する暗号化処理を行い、暗号化データを生成し、前記データの利用者に対して前記データに係るライセンスを付与し、前記ライセンスの付与に係るライセンス情報をブロックチェーンネットワークに送出し、前記暗号化データの利用時に前記ライセンス情報に応じて認証を行うために、前記ライセンス情報をブロックチェーンネットワークに問い合わせるコードを、前記暗号化データに付加し、前記暗号化データの利用時に前記暗号化データを特定するために作成された第1の仮想通貨ウォレットアドレスを前記暗号化データに付加する処理をコンピュータに実行させる情報処理プログラムを特徴とする。
The present invention has been made to solve the above-mentioned problems, and can be realized by the following forms.
The first embodiment includes a first device and a second device, and the first device includes an encryption processing unit that performs encryption processing of input data and outputs encrypted data. The encrypted data is provided with a license granting processing unit that grants a license related to the data to a user of the second device and sends license information related to the granting of the license to a blockchain network. Includes a first virtual currency wallet address created to identify the encrypted data, the second device is based on license information recorded on the blockchain when the encrypted data is used. It is characterized by an information processing system including a license authentication processing unit that performs authentication and a decryption processing unit that performs decryption processing on the encrypted data when the authentication is successful.
The second form is to grant a license related to the data to a user of another device and an encryption processing unit that performs encryption processing of the input data and outputs the encrypted data, and the license is given. The encrypted data includes a first virtual currency wallet address created to identify the encrypted data, including a license granting processing unit that sends out the license information related to the granting to the blockchain network. It features an information processing device.
The third mode is a license authentication processing unit that authenticates based on the license information stored on the blockchain when the encrypted data is used, and a decryption process for the encrypted data when the authentication is successful. The encrypted data includes a decryption processing unit, and the encrypted data is characterized by an information processing device including a first virtual currency wallet address created for specifying the encrypted data .
The fourth embodiment relates to an encryption processing unit that performs encryption processing on data and generates encrypted data, and grants a license related to the data to a user of the data, and grants the license. The encryption processing unit that sends license information to the blockchain network and the code that inquires the blockchain network about the license information in order to authenticate according to the license information when using the encrypted data are encrypted. The additional unit includes an additional unit to be added to the data, and the additional unit further converts the first virtual currency wallet address created for identifying the encrypted data when the encrypted data is used into the encrypted data. It features an additional information processing device.
A fifth form is an information processing method executed by a computer, in which data is encrypted, encrypted data is generated, and a user of the data is licensed for the data. The code for inquiring the license information to the blockchain network in order to send the license information related to the grant of the license to the blockchain network and perform authentication according to the license information when the encrypted data is used is the encryption. It is characterized by an information processing method in which a first virtual currency wallet address is added to the encrypted data and created to specify the encrypted data when the encrypted data is used, and the first virtual currency wallet address is added to the encrypted data .
In the sixth mode, data is encrypted, encrypted data is generated, a license related to the data is granted to a user of the data, and license information related to the granting of the license is distributed to a blockchain network. In order to perform authentication according to the license information when the encrypted data is used, a code for inquiring the license information to the blockchain network is added to the encrypted data, and the encrypted data is used. It is characterized by an information processing program that causes a computer to execute a process of adding a first virtual currency wallet address created for specifying the encrypted data to the encrypted data .

以上のように構成したので、本発明によれば、アプリケーションやコンテンツ等のライセンス認証を安定的、継続的に実行可能なシステムを実現することが出来る。 With the above configuration, according to the present invention, it is possible to realize a system capable of stably and continuously executing license authentication of applications, contents, and the like.

本実施形態のシステム構成を示す概略図である。It is a schematic diagram which shows the system configuration of this embodiment. 本実施形態のライセンス管理システムの概略を説明する図である。It is a figure explaining the outline of the license management system of this embodiment. 本実施形態においてアプリケーションを実行する利用者端末装置の機能構成を示す図である。It is a figure which shows the functional structure of the user terminal apparatus which executes an application in this embodiment. 本実施形態においてアプリケーションを提供する提供者端末装置の機能構成を示す図である。It is a figure which shows the functional structure of the provider terminal apparatus which provides an application in this embodiment. 暗号化ツールによって生成される暗号化アプリケーションを説明する図である。It is a figure explaining the encryption application generated by the encryption tool. 提供者端末装置が実行するアプリケーション暗号化処理を説明するフローチャートである。It is a flowchart explaining the application encryption process executed by the provider terminal apparatus. 利用者端末装置が実行するアプリケーション起動時処理を説明するフローチャートである。It is a flowchart explaining the process at the time of starting an application executed by a user terminal apparatus. 図7のライセンス認証処理を説明するフローチャートである。It is a flowchart explaining the license authentication process of FIG. 提供者端末装置が実行するライセンス付与処理を説明するフローチャートである。It is a flowchart explaining the license granting process which a provider terminal apparatus executes. 利用者端末装置が実行するライセンス移行処理を説明するフローチャートである。It is a flowchart explaining the license transfer process executed by a user terminal apparatus.

以下に、図面を参照して本発明の実施の形態を詳細に説明する。
図1は、本実施形態のシステム構成を示す概略図である。
図1(a)は、本実施形態のシステムに係るネットワーク構成を示す概略図である。
本実施形態に係るシステム1において、アプリケーションの利用者が使用する利用者端末装置10と、アプリケーションの提供者(開発者)が使用する提供者端末装置20と、がインターネットを介して相互に接続されている。
さらにインターネットには、ブロックチェーンネットワークに参加してマイニング作業を行うマイナーが用いる多数のマイナー装置30が接続されている。
Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings.
FIG. 1 is a schematic diagram showing a system configuration of the present embodiment.
FIG. 1A is a schematic diagram showing a network configuration according to the system of the present embodiment.
In the system 1 according to the present embodiment, the user terminal device 10 used by the user of the application and the provider terminal device 20 used by the provider (developer) of the application are connected to each other via the Internet. ing.
Further, a large number of minor devices 30 used by miners who participate in the blockchain network and perform mining work are connected to the Internet.

多数のマイナー装置30x(30x-1、30x-2・・・)によってブロックチェーンネットワークxが構成され、多数のマイナー装置30y(30y-1、30y-2・・・)によってブロックチェーンネットワークyが構成されている。
これらのブロックチェーンネットワークは、P2P(Peer to Peer)ネットワークであり、ブロックチェーンネットワークxは仮想通貨Xのネットワーク、ブロックチェーンネットワークyは仮想通貨Yのネットワークである。
The blockchain network x is configured by a large number of minor devices 30x (30x-1, 30x-2 ...), And the blockchain network y is configured by a large number of minor devices 30y (30y-1, 30y-2 ...). Has been done.
These blockchain networks are P2P (Peer to Peer) networks, the blockchain network x is a network of virtual currency X, and the blockchain network y is a network of virtual currency Y.

ブロックチェーンには、仮想通貨に用いられるものを含め、多くのものが存在している。仮想通貨にも、代表的なビットコインの他に、アルトコインと呼ばれるものが知られている。アルトコインの代表的なものとして、Ethereum(イーサリアム)やMonacoin(モナコイン:登録商標)などが知られている。 There are many things in the blockchain, including those used for cryptocurrencies. In addition to the typical Bitcoin, altcoin is also known as a virtual currency. As representatives of altcoin, Ethereum and Monacoin (registered trademark) are known.

インターネット上においてはビットコインを運営、機能させるためのブロックチェーンネットワークと、各種アルトコインを運営、機能させるためのブロックチェーンネットワークと、が存在する。
各ブロックチェーンネットワークには、それぞれマイナー装置30が多く接続されて、プルーフオブワーク(PoW)を行っている。なお、他のブロックチェーンネットワークには、コンセンサスアルゴリズムとしてプルーフオブステーク(PoS)、プルーフオブコンセンサス(PoC)を採用するものがある。
On the Internet, there are a blockchain network for operating and functioning Bitcoin, and a blockchain network for operating and functioning various altcoins.
Many minor devices 30 are connected to each blockchain network to perform proof of work (PoW). In addition, some other blockchain networks adopt proof of stake (PoS) and proof of consensus (PoC) as consensus algorithms.

いずれの場合においても、ブロックチェーンネットワークは、中央集権的なサーバを持たないP2Pネットワークである。ブロックチェーンは、ブロックチェーンネットワークに属するそれぞれのマイナー装置が有するストレージ、サーバ装置、及びプールサーバに備えるストレージに、同じ取引情報が格納されている。ブロックチェーンが、分散型取引台帳と呼ばれる所以である。 In either case, the blockchain network is a P2P network that does not have a centralized server. In the blockchain, the same transaction information is stored in the storage of each minor device belonging to the blockchain network, the server device, and the storage provided in the pool server. This is why blockchain is called a decentralized transaction ledger.

図1(b)は、ブロックチェーンネットワークに属する装置が有するブロックチェーンを示す図である。
図1(b)を用いて、ブロックチェーンの概略を説明する。
ブロックチェーンは、逐次発生する取引情報などをブロック単位で接続することにより成立する。
FIG. 1B is a diagram showing a blockchain included in a device belonging to a blockchain network.
The outline of the blockchain will be described with reference to FIG. 1 (b).
A blockchain is established by connecting transaction information and the like that are generated sequentially in block units.

すなわち、ブロックチェーン技術では、取引記録や契約など、内容を保証したいデータをブロックという単位で扱う。ブロックを所定の方法で連結して保管したものがブロックチェーンである。ブロックチェーンの生成にあたってはハッシュ関数が用いられており、ハッシュ関数は任意長の任意データに対して固定長のハッシュ値を求めるための関数である。
ハッシュ関数には一方向性という特徴があり、任意データからハッシュ値を求めることは容易であるが、逆に、ハッシュ値から元のデータを復元することは現実的には不可能であるとされる。
That is, in blockchain technology, data whose contents are to be guaranteed, such as transaction records and contracts, are handled in units called blocks. A blockchain is a block that is connected and stored by a predetermined method. A hash function is used in the generation of the blockchain, and the hash function is a function for obtaining a fixed-length hash value for arbitrary data of arbitrary length.
The hash function has the characteristic of one-way, and it is easy to obtain the hash value from arbitrary data, but conversely, it is said that it is practically impossible to restore the original data from the hash value. To.

マイナー装置は、ブロックチェーンに対して新たなブロックを接続するとき、直前のブロックのハッシュ値と、現ブロックのデータと、任意のNonceとを用いた元のデータに対して、ハッシュ関数を適用する。そして、マイナー装置は、元のデータのハッシュ値の上位数ビットが0となるようなNonce値を探索する。現ブロックのデータは、接続すべき新たなブロックのトランザクションデータを1まとめにしたマークルルートと呼ばれるデータである。Nonceは、例えば、32bit固定長の値である。ハッシュ関数には、例えば、任意のデータを用いて256bitのハッシュ値を算出するSHA-256などが用いられる。SHA-256を適用において、ハッシュ値の上位10bitが0となる確率は1024分の1となる。 When connecting a new block to the blockchain, the miner device applies a hash function to the hash value of the previous block, the data of the current block, and the original data using any Nonce. .. Then, the minor device searches for a Nonce value such that the upper-order bit of the hash value of the original data becomes 0. The data of the current block is data called Merkle root, which is a collection of transaction data of a new block to be connected. The Nonce is, for example, a 32-bit fixed length value. As the hash function, for example, SHA-256 that calculates a hash value of 256 bits using arbitrary data is used. When SHA-256 is applied, the probability that the upper 10 bits of the hash value becomes 0 is 1/1024.

マイナー装置は、ハッシュ値から元のデータを復元することは困難なので、Nonceの値を変えながら元のデータにハッシュ関数を適用し、ハッシュ値の上位数ビットに決められた個数の0が並ぶ正しいNonceを探索する。正しいNonceを探し出したマイナー装置は、ブロックチェーンネットワークに正しいNonceを送信する。そして、ブロックチェーンネットワークに含まれる他のマイナー装置が、受け取ったNonceが正しいことを承認することにより、ブロックがブロックチェーンに連結される。
上記のブロックを承認するためのコンセンサスアルゴリズムは、プルーフオブワークと呼ばれる。
プルーフオブワークによる承認作業をすることにより、ブロックチェーンの各ブロックには、図1(b)に示すように、ブロックのデータと、直前のブロックのハッシュ値と、探索されたNonce値と、を含む。
Since it is difficult for a minor device to restore the original data from the hash value, the hash function is applied to the original data while changing the Nonce value, and the specified number of 0s are lined up in the upper few bits of the hash value. Explore the Nonce. The minor device that finds the correct Nonce sends the correct Nonce to the blockchain network. Then, another minor device included in the blockchain network approves that the received Nonce is correct, so that the block is connected to the blockchain.
The consensus algorithm for approving the above blocks is called proof of work.
By performing the approval work by the proof of work, as shown in FIG. 1 (b), the data of the block, the hash value of the immediately preceding block, and the searched Nonce value are added to each block of the blockchain. include.

このようなブロックチェーンは、各ブロックが直前のブロックのハッシュ値を持っているため、先端の(起点となる最古の)ブロックから順に辿ることで、全てのブロックの正当性を確認することが出来る。
なお途中のブロックを改ざんしようとすると、そのブロック以降全てのブロックのNonceを再計算する必要があるが、上記した総当たりを全てのブロックについて行うしかないため、計算量的に不可能である。
このような特徴を有することで、ブロックチェーンの信頼性は担保されている。
In such a blockchain, each block has the hash value of the previous block, so it is possible to confirm the validity of all blocks by tracing from the tip (oldest starting point) in order. I can.
If an attempt is made to tamper with a block in the middle, it is necessary to recalculate the Nonce of all blocks after that block, but it is impossible in terms of computational complexity because the above-mentioned round-robin must be performed for all blocks.
By having such a feature, the reliability of the blockchain is guaranteed.

なお、ブロックチェーンを利用した仮想通貨の分野において、「仮想通貨を利用者に対して送金する」とは、あくまで便宜的な表現である。
ビットコインにおいて、仮想通貨の送金は、利用者のアドレスにロックされている、ビットコインの額を含む未使用のトランザクションアウトプットをアンロックし、送金先の利用者のアドレスにロックする処理である。ビットコインでは、未使用のトランザクションアウトプットのことを、UTXO(Unspent Transaction Output)ともいう。以下の説明では、トランザクションアウトプットのことを単にアウトプットともいう。
UTXOは、トランザクションにおいて他のトランザクションと接続されていないアウトプットのことであり、所有者のアドレスを記載したScriptPubKeyを含んでいる。なお、所有者のアドレスは、所有者の公開鍵または公開鍵ハッシュである。以下の説明では、所有者のアドレスは、公開鍵ハッシュであるものとして説明する。
In the field of virtual currency using blockchain, "sending virtual currency to users" is just a convenient expression.
In Bitcoin, remittance of virtual currency is a process that unlocks unused transaction output including the amount of Bitcoin, which is locked to the user's address, and locks it to the destination user's address. .. In Bitcoin, unused transaction output is also referred to as UTXO (Unspent Transaction Output). In the following description, transactional output is also simply referred to as output.
A UTXO is an output in a transaction that is not connected to another transaction and includes a ScriptPubKey that describes the owner's address. The owner's address is the owner's public key or public key hash. In the following description, the owner's address is assumed to be a public key hash.

すなわち、仮想通貨の送金では、所有者の公開鍵ハッシュ(アドレス)を含むScriptPubKeyによってロックされているUTXOを、所有者の秘密鍵を用いて生成した電子署名によってアンロックする。そして、アンロックしたUTXOを、所有者が新たに作成したトランザクションと接続する。また、仮想通貨の送金では、新たに作成したトランザクションのUTXOを、次の所有者の公開鍵ハッシュを含むScriptPubKeyによってロックする。
所有者は、新たに作成したトランザクションをブロックチェーンネットワークに送信する。そして、マイナー装置がトランザクションを承認し、ブロックチェーンに新たに作成したトランザクションを含むブロックが組み込まれることにより、仮想通貨の送金(UTXOの所有権の移転)が完了する。
That is, in the virtual currency remittance, the UTXO locked by the ScriptPubKey including the owner's public key hash (address) is unlocked by the electronic signature generated by the owner's private key. Then, the unlocked UTXO is connected to the transaction newly created by the owner. Also, in the virtual currency remittance, the UTXO of the newly created transaction is locked by the ScriptPubKey including the public key hash of the next owner.
The owner sends the newly created transaction to the blockchain network. Then, the miner device approves the transaction, and the block including the newly created transaction is incorporated into the blockchain, so that the remittance of the virtual currency (transfer of the ownership of UTXO) is completed.

従って、仮想通貨の送金では、何らかの価値情報がデータとして利用者端末装置間でやりとりされることはない。従って、端末装置内に、仮想通貨の残高を示す情報が格納されることはない。
端末装置にインストールされたウォレットソフトウェアは、利用者のアドレスに紐付けられたUTXOをブロックチェーンネットワークから検索することによって、利用者が有する仮想通貨の残高を利用者に提示する。
Therefore, in the remittance of virtual currency, some value information is not exchanged between the user terminal devices as data. Therefore, the information indicating the balance of the virtual currency is not stored in the terminal device.
The wallet software installed in the terminal device presents the balance of the virtual currency possessed by the user to the user by searching the UTXO associated with the user's address from the blockchain network.

図2は、本実施形態のライセンス管理システムの概略を説明する図である。
図中の(1)~(7)のステップに従って、処理を概説する。
(1)提供者端末装置20は、アプリケーションを任意の手段で利用者端末装置10に提供する。このアプリケーションは暗号化された暗号化アプリケーションの状態で配布される。利用者端末装置10は、利用者に対する有効なライセンスの存在が確認されることを条件に、暗号化アプリケーションを復号することにより、実行することが出来る。
FIG. 2 is a diagram illustrating an outline of the license management system of the present embodiment.
The process is outlined according to the steps (1) to (7) in the figure.
(1) The provider terminal device 20 provides the application to the user terminal device 10 by any means. This application is distributed in the form of an encrypted encrypted application. The user terminal device 10 can be executed by decrypting the encryption application on condition that the existence of a valid license for the user is confirmed.

(2)利用者端末装置10は、提供者端末装置20に対して、暗号化アプリケーションを利用するためのライセンスの付与要求を行う。この付与要求において、利用者の仮想通貨ウォレットアドレスが送信される。
仮想通貨のウォレットアドレスによって、アプリケーションを利用する利用者が特定され得る。
アプリケーションのライセンスは、特定のウォレットアドレスを有する利用者が、そのアプリケーションを利用可能なように付与される。
(2) The user terminal device 10 requests the provider terminal device 20 to grant a license for using the encryption application. In this grant request, the user's virtual currency wallet address is transmitted.
The wallet address of the virtual currency can identify the user who uses the application.
The application is licensed so that the user with a specific wallet address can use the application.

好適には、利用者のウォレットアドレスとともに、利用者端末装置10の端末固有情報が提供者端末装置20に送信される。端末固有情報によっては、利用者端末装置10が一意に特定され得る。端末固有情報とは、例えば、CPUIDやDISKIDなどのハードウェア固有情報である。CPUIDは、CPUに対して製造時に一意に与えられた識別情報である。また、DISKIDは、ハードディスクに対して製造時に一意に与えられた識別情報である。
端末固有情報が送信される場合、ライセンスは、特定のウォレットアドレスを有する利用者が、そのアプリケーションを特定の利用者端末装置でのみ実行可能なように付与される。
ライセンスを有する利用者が、複数の端末装置でアプリケーションを同時起動することや、ライセンスを複数の利用者で使い回したりすることを防止することが出来る。
Preferably, the terminal-specific information of the user terminal device 10 is transmitted to the provider terminal device 20 together with the wallet address of the user. The user terminal device 10 can be uniquely identified depending on the terminal-specific information. The terminal-specific information is, for example, hardware-specific information such as CPUID and DISKID. The CPUID is identification information uniquely given to the CPU at the time of manufacture. Further, DISKID is identification information uniquely given to the hard disk at the time of manufacture.
When terminal-specific information is transmitted, a license is granted so that a user with a particular wallet address can run the application only on a particular user terminal device.
It is possible to prevent a user who has a license from simultaneously starting an application on a plurality of terminal devices and reusing the license by a plurality of users.

(3)利用者端末装置からのライセンスの付与要求を受信した提供者端末装置20は、付与要求に含まれる利用者のウォレットアドレス、端末固有情報と、提供者端末装置20が有するアプリケーションごとに作成されたイーサリアムウォレットアドレス(公開鍵)に基づいて、上記ライセンス情報としてのライセンストークンを作成する。
アプリケーションごとのウォレットアドレスによって、ライセンスの付与及び認証時に、その対象となるアプリケーションを特定することが出来る。
(3) The provider terminal device 20 that has received the license grant request from the user terminal device is created for each user's wallet address, terminal-specific information included in the grant request, and the application possessed by the provider terminal device 20. Create a license token as the above license information based on the Ethereum wallet address (public key).
The wallet address for each application can be used to identify the target application at the time of license granting and authentication.

本実施形態において、仮想通貨のウォレットアドレスは、イーサリアムのウォレットアドレスが好適に用いられる。
本実施形態において、アプリケーションのライセンス情報(特定の利用者がアプリケーションのライセンスを有しているか否かを示す情報)はブロックチェーン上に記録される。そして、利用者端末装置10におけるアプリケーションの実行時に、ブロックチェーン上に記録されたライセンス情報に基づいてライセンス認証を行う。
この仕組みは、その他のブロックチェーン(仮想通貨)、例えば、ビットコインやモナコインを用いても基本的に実現可能である。しかしながら、イーサリアムは、他のブロックチェーンシステムが備えないスマートコントラクトという仕組みを有している。
スマートコントラクトは、ブロックチェーンネットワークを構成する各ノードで実行される仮想マシン(EVM:Etheruem Virtual Machine)で行われる分散的な処理によって実現される。
スマートコントラクトは、ブロックチェーン上で、様々な契約や売買を自動化することが出来る。
In the present embodiment, the wallet address of the virtual currency is preferably the wallet address of Ethereum.
In this embodiment, application license information (information indicating whether or not a specific user has an application license) is recorded on the blockchain. Then, when the application is executed on the user terminal device 10, license authentication is performed based on the license information recorded on the blockchain.
This mechanism can basically be realized by using other blockchains (virtual currencies) such as Bitcoin and MonaCoin. However, Ethereum has a mechanism called smart contract that other blockchain systems do not have.
The smart contract is realized by distributed processing performed by a virtual machine (EVM: Ethereum Virtual Machine) executed on each node constituting the blockchain network.
Smart contracts can automate various contracts and buys and sells on the blockchain.

本実施形態の場合、スマートコントラクトでは、後述のトークン形式によるライセンス情報のブロックチェーンへの登録(デプロイ)と、ライセンス情報を用いたライセンス認証を、ブロックチェーンネットワーク上で完結した処理によって、自動的に行うことができる。
ライセンス情報は、特定のサーバではなく、ブロックチェーンのメモリ領域に格納され、ライセンス情報を用いた認証はこれも特定のサーバでなく各ノードによる分散処理によって行われる。
すなわち、他のブロックチェーンシステムではなく、時にイーサリアムを用いることで、ブロックチェーン上に記録されたライセンス情報を用いてライセンス認証を行うサーバ装置を別途用意する必要がなくなる。
本実施形態では、利用者にアプリケーションのライセンスを付与し、その付与に係るライセンス情報を登録するために用いるブロックチェーンシステムとして、イーサリアムを用いることを前提に説明を行うものとする。
(4)提供者端末装置20は、作成したライセンストークンを、スマートコントラクトにデプロイする。これにより、利用者に対してアプリケーションのライセンスが付与されたことがブロックチェーンに登録され、ライセンスの付与が完了する。
In the case of this embodiment, in the smart contract, the registration (deployment) of the license information in the token format described later in the blockchain and the license authentication using the license information are automatically performed by the completed process on the blockchain network. It can be carried out.
The license information is stored in the memory area of the blockchain instead of the specific server, and the authentication using the license information is also performed by the distributed processing by each node instead of the specific server.
That is, by using Ethereum instead of other blockchain systems, it is not necessary to separately prepare a server device for license authentication using the license information recorded on the blockchain.
In this embodiment, it is assumed that Ethereum is used as a blockchain system used for granting a license of an application to a user and registering license information related to the grant.
(4) The provider terminal device 20 deploys the created license token to the smart contract. As a result, the fact that the application license has been granted to the user is registered in the blockchain, and the license grant is completed.

(5)利用者端末装置10は、暗号化アプリケーションの起動時に、暗号化アプリケーションに組み込まれた復号用コードを実行する。
復号用コードは、復号の条件となるライセンス認証のために、ブロックチェーンネットワーク上で実行されるスマートコントラクトに対する問い合わせを行う。
この問い合わせは、利用者のイーサリアムウォレットアドレス、暗号化アプリケーションに含まれるアプリケーションごとのイーサリアムウォレットアドレス、をクエリとしたブロックチェーンに対する検索である。
アプリケーションごとのイーサリアムウォレットアドレスによっては、ライセンス認証の対象となるアプリケーションを特定することが出来る。
(5) The user terminal device 10 executes the decryption code embedded in the encryption application when the encryption application is started.
The decryption code makes an inquiry to a smart contract executed on the blockchain network for license authentication which is a condition of decryption.
This query is a search for the blockchain using the user's Ethereum wallet address and the Ethereum wallet address for each application included in the encryption application as queries.
Depending on the Ethereum wallet address for each application, it is possible to specify the application to be activated.

(6)スマートコントラクトは、クエリに対する応答として、ライセンスの有無、あるいは端末固有情報を利用者端末装置10に返す。
上記(2)乃至(4)のように、ブロックチェーン上には、利用者のイーサリアムウォレットアドレス、端末固有情報、アプリケーションごとのイーサリアムウォレットアドレスに基づいて生成されたライセンストークンが記録されている。
問い合わせを受けて、スマートコントラクトは、クエリに含まれるウォレットアドレスによって、ライセンストークンをトークンリスト中から特定する。
そして、スマートコントラクトは、特定したライセンストークンに含まれる端末固有情報を、利用者端末装置10に返す。あるいは、単にライセンストークンの有無に基づいて、正常なライセンス有無を利用者端末装置10に返す。
(7)利用者端末装置10で実行されている復号用コードは、ブロックチェーン(スマートコントラクト)から返された端末固有情報と、利用者端末装置10の実際の端末固有情報が一致したことを条件に暗号化アプリケーションを復号し、アプリケーションを実行する。
(6) The smart contract returns the presence or absence of a license or terminal-specific information to the user terminal device 10 as a response to the query.
As described in (2) to (4) above, the license token generated based on the user's Ethereum wallet address, terminal-specific information, and the Ethereum wallet address for each application is recorded on the blockchain. ..
Upon receiving the inquiry, the smart contract identifies the license token from the token list by the wallet address included in the query.
Then, the smart contract returns the terminal-specific information included in the specified license token to the user terminal device 10. Alternatively, the presence or absence of a normal license is simply returned to the user terminal device 10 based on the presence or absence of the license token.
(7) The decryption code executed by the user terminal device 10 is conditioned on the condition that the terminal-specific information returned from the blockchain (smart contract) matches the actual terminal-specific information of the user terminal device 10. Decrypt the encrypted application and run the application.

本実施形態をより詳細に説明する。利用者は、ダウンロードした暗号化アプリケーションを自身の利用者端末装置10で起動する。
利用者端末装置10にイーサリアムウォレットが存在しない場合、利用者端末装置10では、自動的にイーサリアムウォレットが作成される。
本実施形態において、ライセンス認証は、利用者のイーサリアムウォレットアドレスを用いて行われるため、イーサリアムウォレットが作成されていることが大前提となる。従って、イーサリアムウォレットが存在しない場合、暗号化アプリケーションのライセンスは付与されていないことになる。
利用者端末装置10は、ライセンス付与要求として、イーサリアムウォレットアドレスと、利用者端末装置10の端末固有情報と、を提供者端末装置20に提供する。これらの情報は、電子メールやその他の通信手段を用いて送信することが出来る。
This embodiment will be described in more detail. The user activates the downloaded encryption application on his / her own user terminal device 10.
If the user terminal device 10 does not have an Ethereum wallet, the user terminal device 10 automatically creates an Ethereum wallet.
In this embodiment, since the license authentication is performed using the user's Ethereum wallet address, it is a major premise that the Ethereum wallet has been created. Therefore, if the Ethereum wallet does not exist, the encryption application is not licensed.
The user terminal device 10 provides the provider terminal device 20 with the Ethereum wallet address and the terminal-specific information of the user terminal device 10 as a license grant request. This information can be transmitted using e-mail or other means of communication.

提供者端末装置20は、利用者端末装置10から受け取ったイーサリアムウォレットアドレス及び端末固有情報に対してライセンスの付与を行う。
ライセンスの付与とは、具体的には、スマートコントラクトのAPIを呼び出し、受け取ったイーサリアムウォレットアドレスにトークンを追加することである。
トークンには、利用者端末装置10の端末固有情報を含めるため、ノードロックを行うことができる。ノードロックとはすなわち、端末固有情報で特定される特定の端末装置でのみ、暗号化アプリケーションの実行を許可するものである。複数の端末装置でのアプリケーションの同時起動を制限したい場合、トークンに端末固有情報を含めることは好適である。ただし、ライセンスの付与にあたって端末固有情報は必ずしも必要ではない。
利用者端末装置10は、ライセンス付与要求として、イーサリアムウォレットアドレスのみを提供者端末装置20に送信してもよい。
その場合、ライセンス情報(トークン)に端末固有情報は含まれず、上記ノードロックを行うことは出来ないが、アプリケーションを実行可能なハードウェアに制限がなくなるため、後述するライセンスの移行がより容易となる。
The provider terminal device 20 grants a license to the Ethereum wallet address and the terminal-specific information received from the user terminal device 10.
Granting a license specifically means calling the API of a smart contract and adding a token to the received Ethereum wallet address.
Since the token includes the terminal-specific information of the user terminal device 10, node locking can be performed. In other words, node lock allows the execution of an encrypted application only on a specific terminal device specified by terminal-specific information. If you want to limit the simultaneous launch of applications on multiple terminal devices, it is preferable to include terminal-specific information in the token. However, terminal-specific information is not always required when granting a license.
The user terminal device 10 may transmit only the Ethereum wallet address to the provider terminal device 20 as a license grant request.
In that case, the license information (token) does not include terminal-specific information and the above node lock cannot be performed, but since there are no restrictions on the hardware that can execute the application, it becomes easier to transfer the license described later. ..

アプリケーションの提供者は、Solidity等の言語を用いてトークンを記述し、これをブロックチェーンに対してデプロイするためのトランザクションを作成して公開する。
提供者端末装置20は、ウォレットアドレスで特定される利用者がライセンスをもっていることを示すトークンを、スマートコントラクトを使用して書き込む。
トークンの実体は、スマートコントラクト上のメモリ領域に格納される。
トークンは、例えば、以下のように記述される。

Figure 0007053031000001
上記のコードにおいては、PC(利用者端末装置10)の端末固有情報と、アプリケーションごとのイーサリアムウォレットアドレスと、購入者(利用者)のイーサリアムウォレットアドレスと、をトークンに組み込み、トークンリストにマッピングすることが行われている。
これにより、特定のアプリケーションソフトウェアに関する利用者のライセンスがブロックチェーンネットワークに記録されたことになる。
スマートコントラクトが使用できないブロックチェーンを使用する場合は、OP_RETURNにPCの固有ノード情報を記載した、提供者の秘密鍵で署名したトランザクションを購入者のアドレスに送信することによって、ブロックチェーンに書き込む。 The application provider describes the token using a language such as Solidity, and creates and publishes a transaction for deploying it to the blockchain.
The provider terminal device 20 uses a smart contract to write a token indicating that the user specified by the wallet address has a license.
The entity of the token is stored in the memory area on the smart contract.
The token is described, for example, as follows.
Figure 0007053031000001
In the above code, the terminal-specific information of the PC (user terminal device 10), the Ethereum wallet address for each application, and the Ethereum wallet address of the purchaser (user) are embedded in the token and added to the token list. Mapping is being done.
As a result, the user's license for the specific application software is recorded on the blockchain network.
When using a blockchain that cannot be used by smart contracts, write it to the blockchain by sending a transaction signed with the provider's private key, which describes the unique node information of the PC in OP_RETURN, to the purchaser's address.

暗号化アプリケーションの起動時、利用者端末装置10にイーサリアムウォレットが見つかった場合、暗号化アプリケーションに含まれる復号用DLL(復号用コード)は、有効なライセンスが付与されているかをブロックチェーンネットワークに問い合わせる。
イーサリアムウォレットが存在する場合でも、そのアドレスにたいして必ずしも暗号化アプリケーションのライセンスが付与されているとは限らないのは当然である。よって、復号用DLLはライセンス認証として、ブロックチェーンネットワークに対する問い合わせを行う。
この問い合わせは、アプリケーションごとのイーサリアムウォレットアドレスと、利用者のイーサリアムウォレットアドレスと、をクエリ(検索キー)として、ブロックチェーンネットワークの検索を行うことによって行われる。
検索結果は、例えば、クエリに対応する端末固有情報として返される。
復号用DLLは、返された端末固有情報と実際の端末固有情報との照合を行い、これらが一致すれば、正しくライセンスが付与されていると判断する。
ライセンス付与時に端末固有情報を送信していない場合、スマートコントラクトが返す問い合わせ結果は正常なライセンスの有無のみである。
正常なライセンスの存在が確認された結果、復号用DLLは、アプリケーションに含まれる共通鍵によって暗号化アプリケーションを復号してそれを実行可能とする。
If an Ethereum wallet is found in the user terminal device 10 when the encryption application is started, the decryption DLL (decryption code) included in the encryption application tells the blockchain network whether a valid license is granted. Contact us.
Of course, even if an Ethereum wallet exists, it does not necessarily mean that the address is licensed for the cryptographic application. Therefore, the DLL for decryption makes an inquiry to the blockchain network as license authentication.
This inquiry is made by searching the blockchain network using the Ethereum wallet address for each application and the user's Ethereum wallet address as a query (search key).
The search result is returned, for example, as terminal-specific information corresponding to the query.
The decryption DLL collates the returned terminal-specific information with the actual terminal-specific information, and if they match, it is determined that the license is correctly granted.
If the terminal-specific information is not sent when the license is granted, the only inquiry result returned by the smart contract is the presence or absence of a normal license.
As a result of confirming the existence of a normal license, the decryption DLL decrypts the encrypted application by the common key included in the application and makes it executable.

なお、ライセンス認証にあたって、利用者端末装置10がすべてのブロックチェーンのデータ(フルノード)を保持することは記録媒体の容量を考慮しても困難である。
従って、任意のサーバで起動しているフルノードに問い合わせを行うことが望ましい。
接続先のフルノードは暗号化アプリケーションの起動時に利用者が選択することができる。
また、ライセンスの二重使用を防ぐため、接続先のフルノードを、提供者端末装置20におけるアプリケーションの暗号化時に限定可能としてもよい。すなわち、アプリケーションが使用することができるフルノードのアドレス(接続先URL)のリストを暗号化時に指定する。すなわち、接続先URLのリストを暗号化アプリケーションに含める。
In license authentication, it is difficult for the user terminal device 10 to hold all blockchain data (full nodes) even in consideration of the capacity of the recording medium.
Therefore, it is desirable to make an inquiry to the full node running on any server.
The full node to connect to can be selected by the user when the encryption application is started.
Further, in order to prevent double use of the license, the connection destination full node may be limited to the encryption of the application in the provider terminal device 20. That is, a list of full node addresses (connection destination URLs) that can be used by the application is specified at the time of encryption. That is, the list of connection destination URLs is included in the encryption application.

提供者端末装置20によって、一度ライセンストークンがブロックチェーンにデプロイされると、もはや提供者端末装置20が介在することなく、スマートコントラクトの機能として、利用者のライセンス認証が実行される。
従って、アプリケーションの提供者がサービスを終了したり、障害が発生したりすることによって、提供者端末装置20の稼働が終了あるいは停止した場合でも、利用者端末装置10は、ブロックチェーン上に記録されたライセンストークンを利用可能である。これにより、利用者端末10は、提供者端末装置20の稼働が終了あるいは停止した場合でも、ライセンス認証を行って暗号化アプリケーションを実行することが出来る。
従来のクライアントサーバ方式の認証では、サーバ装置が稼働しなければライセンス認証を行うことが出来ず、アプリケーションやコンテンツを利用することが出来ない。
しかしながら、ライセンスに必要な情報をブロックチェーン上で管理するともに、ライセンス認証をブロックチェーン上で自動的に行うようにしたことで、上記のような問題を回避することが出来る。
また、認証用のサーバ装置を常時稼働させておく必要もないため、サービスの運営側にとっても、コスト面や運用面でも非常に有利であると言える。
Once the license token is deployed on the blockchain by the provider terminal device 20, the user's license authentication is executed as a function of the smart contract without the intervention of the provider terminal device 20 anymore.
Therefore, even if the operation of the provider terminal device 20 is terminated or stopped due to the termination of the service or the occurrence of a failure of the application provider, the user terminal device 10 is recorded on the blockchain. License tokens are available. As a result, the user terminal 10 can execute the encryption application by performing license authentication even when the operation of the provider terminal device 20 is terminated or stopped.
In the conventional client-server method authentication, license authentication cannot be performed unless the server device is operating, and applications and contents cannot be used.
However, by managing the information required for the license on the blockchain and automatically performing the license authentication on the blockchain, the above-mentioned problems can be avoided.
Moreover, since it is not necessary to keep the server device for authentication always in operation, it can be said that it is very advantageous in terms of cost and operation for the service operator.

以下に、上記のような処理を実現するための本実施形態の構成を詳しく説明する。
図3は、利用者端末装置の機能構成を示す図であり、(a)はハードウェアによる機能構成を示す図、(b)はソフトウェアによる機能構成を示すブロック図である。
利用者端末装置10は、例えば、図3(a)に示すコンピュータ装置である。
利用者端末装置10は、CPU(Central Processing Unit:プロセッサ)41と、RAM(Random Access Memory)42と、を備える。さらに、利用者端末装置10は、ドライブ装置43と、記録媒体44と、不図示のROM(Read Only Memory)と、ネットワークI/F45と、を備える。
CPU41は、装置全体の制御を行う汎用のオペレーティングシステムを実行するとともに、利用者端末装置10の機能を実現するプログラムを実行する。RAM42には、CPU41による処理のために各種のプログラムや一時データ、変数が展開される。
Hereinafter, the configuration of the present embodiment for realizing the above processing will be described in detail.
3A and 3B are diagrams showing a functional configuration of a user terminal device, FIG. 3A is a diagram showing a functional configuration by hardware, and FIG. 3B is a block diagram showing a functional configuration by software.
The user terminal device 10 is, for example, a computer device shown in FIG. 3A.
The user terminal device 10 includes a CPU (Central Processing Unit: processor) 41 and a RAM (Random Access Memory) 42. Further, the user terminal device 10 includes a drive device 43, a recording medium 44, a ROM (Read Only Memory) (not shown), and a network I / F 45.
The CPU 41 executes a general-purpose operating system that controls the entire device, and also executes a program that realizes the functions of the user terminal device 10. Various programs, temporary data, and variables are expanded in the RAM 42 for processing by the CPU 41.

ドライブ装置43は、記録媒体44に記憶された情報の読み出しか書き込みかの少なくともいずれか一方を行なう装置である。記録媒体44は、ドライブ装置43によって書き込まれた情報を記憶する。記録媒体44は、例えば、ハードディスク、SSD(Solid State Drive)、CD(Compact Disc)、DVD(Digital Versatile Disc)、ブルーレイディスクなどの種類の記憶媒体のうちの少なくとも1つである。また、例えば、利用者端末装置10は、利用者端末装置10内の記録媒体44の種類に対応したドライブ装置43を含む。
記録媒体44及びROMのすくなくとも一方には、プログラムやデータが格納される。ネットワークI/F45は、利用者端末装置10をネットワークに接続する。
さらに、利用者端末装置10は、マウスやキーボードなどの入力装置46と、液晶ディスプレイなどの表示装置47と、を備える。
The drive device 43 is a device that reads or writes information stored in the recording medium 44 at least one of them. The recording medium 44 stores the information written by the drive device 43. The recording medium 44 is at least one of types such as a hard disk, SSD (Solid State Drive), CD (Compact Disc), DVD (Digital Versaille Disc), and Blu-ray Disc. Further, for example, the user terminal device 10 includes a drive device 43 corresponding to the type of the recording medium 44 in the user terminal device 10.
Programs and data are stored in at least one of the recording medium 44 and the ROM. The network I / F45 connects the user terminal device 10 to the network.
Further, the user terminal device 10 includes an input device 46 such as a mouse and a keyboard, and a display device 47 such as a liquid crystal display.

また、図3(b)に示すように、CPU41は、処理部として、ライセンス要求処理部50、ライセンス認証処理部51、復号処理部52、ライセンス移行処理部53と、を実行する。
ライセンス要求処理部50は、提供者端末装置20によって提供されるアプリケーションに対する初回のラインセンス付与を、提供者端末装置20に対して要求する処理を行う処理部である。
ライセンス認証処理部51、復号処理部52は、提供者端末装置20から提供される暗号化アプリケーションの一部であり、記録媒体44にダウンロードされた暗号化アプリケーションが起動されることによって実行される。
ライセンス認証処理部51は、暗号化アプリケーションの起動時に、ブロックチェーンネットワークに問い合わせを行い、有効なライセンスが存在するか否かを確認するライセンス認証を行う処理部である。ブロックチェーンネットワークへの問い合わせは、ブロックチェーンネットワークに対するライセンスの認証要求であるとも言える。
復号処理部52は、ライセンス認証処理部51による処理によって有効なライセンスが確認されたことを条件に、暗号化アプリケーションを復号して実行可能とする処理部である。
ライセンス移行処理部53は、スマートコントラクトに関連する処理を行い、ライセンストークンを、他の利用者に移譲するためのトランザクションを作成、送信する処理を行う処理部である。
Further, as shown in FIG. 3B, the CPU 41 executes the license request processing unit 50, the license authentication processing unit 51, the decryption processing unit 52, and the license transfer processing unit 53 as processing units.
The license request processing unit 50 is a processing unit that performs processing for requesting the provider terminal device 20 to grant the license for the first time to the application provided by the provider terminal device 20.
The license authentication processing unit 51 and the decryption processing unit 52 are a part of the encryption application provided by the provider terminal device 20, and are executed by activating the encryption application downloaded to the recording medium 44.
The license authentication processing unit 51 is a processing unit that performs license authentication to make an inquiry to the blockchain network at the time of starting the encryption application and confirm whether or not a valid license exists. It can be said that the inquiry to the blockchain network is a license authentication request to the blockchain network.
The decryption processing unit 52 is a processing unit that decrypts and executes the encryption application on condition that a valid license is confirmed by the processing by the license authentication processing unit 51.
The license transfer processing unit 53 is a processing unit that performs processing related to smart contracts and creates and transmits a transaction for transferring a license token to another user.

図4は、提供者端末装置の機能構成を示す図であり、(a)はハードウェアによる機能構成を示す図、(b)はソフトウェアによる機能構成を示すブロック図である。
提供者端末装置20は、例えば、図4(a)に示すコンピュータ装置である。
提供者端末装置20は、CPU61と、RAM62と、を備える。さらに、提供者端末装置20は、ドライブ装置63と、記録媒体64と、不図示のROMと、ネットワーク I/F65と、を備える。
CPU61は、装置全体の制御を行う汎用のオペレーティングシステムを実行するとともに、提供者端末装置20の機能を実現するプログラムを実行する。RAM62は、CPU61による処理のために各種のプログラムや一時データ、変数が展開される。
4A and 4B are diagrams showing a functional configuration of a provider terminal device, FIG. 4A is a diagram showing a functional configuration by hardware, and FIG. 4B is a block diagram showing a functional configuration by software.
The provider terminal device 20 is, for example, a computer device shown in FIG. 4A.
The provider terminal device 20 includes a CPU 61 and a RAM 62. Further, the provider terminal device 20 includes a drive device 63, a recording medium 64, a ROM (not shown), and a network I / F 65.
The CPU 61 executes a general-purpose operating system that controls the entire device, and also executes a program that realizes the functions of the provider terminal device 20. In the RAM 62, various programs, temporary data, and variables are expanded for processing by the CPU 61.

ドライブ装置63は、記録媒体64に記憶された情報の読み出しか書き込みかの少なくともいずれか一方を行なう装置である。記録媒体64は、ドライブ装置63によって書き込まれた情報を記憶する。記録媒体64は、例えば、ハードディスク、SSD、CD、DVD、ブルーレイディスクなどの種類の記憶媒体のうちの少なくとも1つである。また、例えば、提供者端末装置20は、提供者端末装置20内の記録媒体64の種類に対応したドライブ装置63を含む。
記録媒体64及びROMのすくなくとも一方には、プログラムやデータが格納される。ネットワーク I/F65は、提供者端末装置20をネットワークに接続する。
さらに、提供者端末装置20は、マウスやキーボードなどの入力装置66と、液晶ディスプレイなどの表示装置67と、を備える。
The drive device 63 is a device that reads or writes information stored in the recording medium 64 at least one of them. The recording medium 64 stores the information written by the drive device 63. The recording medium 64 is, for example, at least one of a type of storage medium such as a hard disk, SSD, CD, DVD, or Blu-ray disc. Further, for example, the provider terminal device 20 includes a drive device 63 corresponding to the type of the recording medium 64 in the provider terminal device 20.
Programs and data are stored in at least one of the recording medium 64 and the ROM. The network I / F65 connects the provider terminal device 20 to the network.
Further, the provider terminal device 20 includes an input device 66 such as a mouse and a keyboard, and a display device 67 such as a liquid crystal display.

また、図4(b)に示すように、CPU61は、処理部として、暗号化処理部(暗号化ツール)71、ライセンス付与処理部72を実行する。
暗号化処理部71は、アプリケーションの提供者によるアプリケーションのバイナリデータの入力をうけて、暗号化処理を行い、暗号化アプリケーションを出力する暗号化ツールである。
提供者は1つのアプリケーションについて1つのイーサリアムウォレットを作成し、暗号化アプリケーションには、アプリケーションごとのイーサリアムウォレットアドレスが含まれる。
アプリケーションごとに作成されるイーサリアムウォレットアドレスによって、ライセンスの付与や認証時に、対象のアプリケーションが特定される。
イーサリアム以外のブロックチェーンシステムを用いる場合には、ウォレットアドレスによって、認証のために問い合わせるブロックチェーンを特定することも可能である。
Further, as shown in FIG. 4B, the CPU 61 executes an encryption processing unit (encryption tool) 71 and a license grant processing unit 72 as processing units.
The encryption processing unit 71 is an encryption tool that receives input of application binary data by an application provider, performs encryption processing, and outputs an encrypted application.
The provider creates one Ethereum wallet for one application, and the encryption application contains the Ethereum wallet address for each application.
The Ethereum wallet address created for each application identifies the target application when granting or authenticating a license.
When using a blockchain system other than Ethereum, it is also possible to specify the blockchain to be queried for authentication by the wallet address.

ライセンス付与処理部72は、利用者端末装置10からのライセンス付与要求に応じて、スマートコントラクトAPIを呼び出してライセンストークンの生成を行い、ブロックチェーン(スマートコントラクト)に登録(デプロイ)するスマートコントラクト処理部である。ライセンストークンは、ライセンス認証をスマートコントラクトによって行うためのライセンス情報である。
本実施形態のシステムにおいて、提供者端末装置20は、アプリケーションのライセンストークンを、ブロックチェーン上に保持する。
The license granting processing unit 72 calls the smart contract API in response to the license granting request from the user terminal device 10, generates a license token, and registers (deploys) it in the blockchain (smart contract). Is. The license token is license information for performing license authentication by a smart contract.
In the system of the present embodiment, the provider terminal device 20 holds the license token of the application on the blockchain.

図5は、提供者端末装置の暗号化ツールによって生成される暗号化アプリケーションを説明する図である。
上記のように提供者端末装置20には、暗号化ツールがインストールされている。
暗号化ツールは、暗号化前アプリケーションのデータを暗号化するための暗号化コードを有する。
FIG. 5 is a diagram illustrating an encryption application generated by an encryption tool of a provider terminal device.
As described above, the encryption tool is installed in the provider terminal device 20.
The encryption tool has an encryption code for encrypting the data of the pre-encryption application.

本実施形態において、アプリケーションは暗号化されて配布されるため、バイナリデータに対してなされる書き換えや解析によるクラッキングを防止することができる。
なお、採用される共通鍵暗号化方式としては、AES(Advanced Encryption Standard)が典型であるが、その他の共通鍵暗号化方式でもよい。
暗号化アプリケーションは、任意のウェブサイトやストアアプリ等から好適にダウンロード可能である。
In the present embodiment, since the application is encrypted and distributed, it is possible to prevent cracking due to rewriting or analysis performed on the binary data.
The common key encryption method to be adopted is typically AES (Advanced Encryption Standard), but other common key encryption methods may also be used.
The encryption application can be suitably downloaded from any website, store application, or the like.

図5(a)に示すように、提供者端末装置20は、暗号化ツールにより暗号化前アプリケーションのデータを所定の共通鍵を使用して暗号化し、暗号化アプリケーションのデータを出力する。
暗号化ツールは、ブロックチェーンに問い合わせるプログラム、アプリケーションのウォレットアドレス、復合化用の共通鍵を含む復号用ダイナミックリンクライブラリ(DLL)を予め備えている。復号用DLLは、その本体として暗号化データを復号するための復号用コードを有する。
暗号化後の暗号化アプリケーションは、上記復号用DLLと共に出力される。
アプリケーションの暗号化に用いる共通鍵は、暗号化ツールの外部から入力されてもよいし、復号用DLLに含まれるものを用いてもよい。
As shown in FIG. 5A, the provider terminal device 20 encrypts the data of the pre-encryption application using a predetermined common key by the encryption tool, and outputs the data of the encrypted application.
The encryption tool is pre-loaded with a decryption dynamic link library (DLL) that includes a program that queries the blockchain, an application wallet address, and a common key for decryption. The decryption DLL has a decryption code for decrypting encrypted data as its main body.
The encrypted application after encryption is output together with the above-mentioned decryption DLL.
The common key used for encryption of the application may be input from the outside of the encryption tool, or may be the one included in the decryption DLL.

図5(b)に示すように、提供者端末装置20の記録媒体64に格納されている暗号化前のアプリケーションは、暗号化前のプログラム、リソース、及びエントリーポイントから構成される。エントリーポイントはプログラムの始点を指し示している。 As shown in FIG. 5B, the pre-encryption application stored in the recording medium 64 of the provider terminal device 20 is composed of a pre-encryption program, a resource, and an entry point. The entry point points to the starting point of the program.

図5(c)は、暗号化アプリケーションのデータ構成を示している。暗号化アプリケーションは、図5(b)の暗号化前アプリケーションの構成にスタブプログラムが加わった構成である。
暗号化前とは異なり、エントリーポイントはスタブプログラムの始点を指し示し、スタブプログラムが、暗号化後のプログラムの始点を指し示す。
FIG. 5 (c) shows the data structure of the encryption application. The encryption application is a configuration in which a stub program is added to the configuration of the pre-encryption application shown in FIG. 5 (b).
Unlike before encryption, the entry point points to the starting point of the stub program, and the stub program points to the starting point of the program after encryption.

利用者端末装置10にダウンロードされた暗号化アプリケーションが実行されると、スタブプログラムがまず実行される。スタブプログラムは、復号用DLLを呼び出し、暗号化プログラムの復号のための処理を行わせる。この処理は、ブロックチェーンに対してライセンスの有無を問い合わせる処理を含む。
すなわち、復号用DLLは、上記のライセンス認証処理部51、復号処理部52の機能に相当するプログラムを含んでいる。
復合用DLLの本体は、利用者端末装置10で実行されたときに復号処理部52として機能する。また、復号用DLLが含むブロックチェーンに問い合わせるプログラムは、利用者端末装置10で実行されたときにライセンス認証処理部51の一部として機能する。
暗号化ツールでは、任意のアプリケーションをフックして暗号化アプリケーション実行時に復号用DLLが呼ばれるようにインジェクションすることで、ブロックチェーンに問い合わせるプログラムが暗号化アプリケーションに自動的に挿入(付加)される。ブロックチェーンに問い合わせるプログラムは、CPU41をライセンス認証処理部51として機能させるプログラムである。
暗号化アプリケーションにおいて暗号化されているのは、図5(b)におけるプログラム本体のみである。暗号化されたプログラム本体は、図5(c)の暗号化アプリケーションにおける暗号化後プログラムとなる。
復号用DLLは、エントリーポイント、リソース、スタブプログラムと同様に、暗号化後プログラムとは別体のコードとして、暗号化後アプリケーション内に挿入される。
復号用DLLは、暗号化アプリケーションの実行バイナリとは別ファイルとして付加されてもよいし、実行バイナリに含まれていてもよい。
When the encryption application downloaded to the user terminal device 10 is executed, the stub program is first executed. The stub program calls the decryption DLL and causes the encryption program to perform the decryption process. This process includes inquiring the blockchain for the existence of a license.
That is, the decryption DLL includes a program corresponding to the functions of the license authentication processing unit 51 and the decryption processing unit 52 described above.
The main body of the recovery DLL functions as a decoding processing unit 52 when executed by the user terminal device 10. Further, the program for inquiring about the blockchain included in the decryption DLL functions as a part of the license authentication processing unit 51 when executed by the user terminal device 10.
In the encryption tool, a program that queries the blockchain is automatically inserted (added) into the encryption application by hooking an arbitrary application and injecting it so that the decryption DLL is called when the encryption application is executed. The program that inquires about the blockchain is a program that causes the CPU 41 to function as the license authentication processing unit 51.
Only the program body in FIG. 5B is encrypted in the encryption application. The encrypted program body is the post-encryption program in the encryption application of FIG. 5 (c).
The decryption DLL is inserted into the encrypted application as a code separate from the encrypted program, like the entry point, the resource, and the stub program.
The decryption DLL may be added as a file separate from the execution binary of the encryption application, or may be included in the execution binary.

図6は、提供者端末装置が実行するアプリケーション暗号化処理を説明するフローチャートである。
CPU61(暗号化処理部71)は、ステップS51において、暗号化対象のアプリケーションのバイナリデータの入力を受け付ける。
上記のように、アプリケーションの実行ファイルは、エントリーポイント、プログラム本体、リソースよりなる。
CPU61(暗号化処理部71)は、ステップS52において、入力されたアプリケーションデータのうちのプログラム本体を、所定の共通鍵を用いて暗号化し、暗号化プログラムを生成する。
FIG. 6 is a flowchart illustrating an application encryption process executed by the provider terminal device.
In step S51, the CPU 61 (encryption processing unit 71) accepts the input of the binary data of the application to be encrypted.
As mentioned above, the application executable file consists of an entry point, a program body, and resources.
In step S52, the CPU 61 (encryption processing unit 71) encrypts the program main body of the input application data using a predetermined common key to generate an encryption program.

CPU61(暗号化処理部71)は、ステップS53において、エントリーポイント、暗号化プログラム、リソースよりなる暗号化アプリケーションに対し、復号用DLL、スタブブログラムを挿入する。
上記のように、復号用DLLには、ライセンス認証のためのブロックチェーンへの問い合わせプログラム、アプリケーションごとのイーサリアムウォレットアドレス、復号用の共通鍵を含む。
CPU61(暗号化処理部71)は、ステップS54において、エントリーポイント、暗号化プログラム、リソース、復号用DLLを含む「暗号化アプリケーション」のデータを出力する。
In step S53, the CPU 61 (encryption processing unit 71) inserts a decryption DLL and a stub program into an encryption application including an entry point, an encryption program, and a resource.
As described above, the decryption DLL includes a blockchain inquiry program for license authentication, an Ethereum wallet address for each application, and a common key for decryption.
In step S54, the CPU 61 (encryption processing unit 71) outputs the data of the "encryption application" including the entry point, the encryption program, the resource, and the DLL for decryption.

図7は、利用者端末装置が実行するアプリケーション起動時処理を説明するフローチャートである。
CPU41は、ステップS101において、マウスのダブルクリック操作などによるアプリケーションの起動操作が行われたか否かを判定する。
アプリケーションの起動操作が行われていないと判定した場合(ステップ101でNo)、CPU41は、そのまま処理を終了する。
アプリケーションの起動操作が行われたと判定した場合(ステップS101でYes)、CPU41は、ステップS102において、暗号化されたアプリケーションの起動処理を開始する。
FIG. 7 is a flowchart illustrating the application startup process executed by the user terminal device.
In step S101, the CPU 41 determines whether or not an application startup operation such as a mouse double-click operation has been performed.
When it is determined that the application start operation has not been performed (No in step 101), the CPU 41 ends the process as it is.
When it is determined that the application start operation has been performed (Yes in step S101), the CPU 41 starts the encrypted application start process in step S102.

CPU41(ライセンス要求処理部50)は、ステップS103において、利用者端末装置10に利用者のイーサリアムウォレットが存在するか否かを判定する。
イーサリアムウォレットが利用者端末装置10に存在しないと判定した場合(ステップS103でNo)、CPU41(ライセンス要求処理部50)は、ステップS107において、イーサリアムウォレットを新規に作成する。そして、CPU41(ライセンス要求処理部50)は、ステップS108において、そのイーサリアムウォレットアドレスと、利用者端末装置10の端末固有情報を、提供者端末装置20に対して送信することによりライセンス付与要求を行う。
In step S103, the CPU 41 (license request processing unit 50) determines whether or not the user's Ethereum wallet exists in the user terminal device 10.
When it is determined that the Ethereum wallet does not exist in the user terminal device 10 (No in step S103), the CPU 41 (license request processing unit 50) newly creates an Ethereum wallet in step S107. Then, in step S108, the CPU 41 (license request processing unit 50) sends a license grant request to the provider terminal device 20 by transmitting the Ethereum wallet address and the terminal-specific information of the user terminal device 10. conduct.

ウォレットが存在すると判定した場合(ステップS103でYes)、CPU41(ライセンス認証処理部51)は、ステップS104において、図8で説明するライセンス認証処理を行う。
CPU41は、ステップS105において、ステップS104のライセンス認証が成功したか否か、すなわち、暗号化プログラムが復号されたか否か暗号化が解除されたか否かを判定する。
暗号化が解除されたと判定した場合(ステップS105でYes)、CPU41は、ステップS106において、アプリケーションを起動し、処理を終了する。
暗号化が解除されていないと判定した場合(ステップS105でNo)、CPU41は、アプリケーションを起動できず、そのまま処理を終了する。
When it is determined that the wallet exists (Yes in step S103), the CPU 41 (license authentication processing unit 51) performs the license authentication process described with reference to FIG. 8 in step S104.
In step S105, the CPU 41 determines whether or not the license authentication in step S104 was successful, that is, whether or not the encryption program was decrypted or whether or not the encryption was decrypted.
If it is determined that the encryption has been decrypted (Yes in step S105), the CPU 41 starts the application in step S106 and ends the process.
If it is determined that the encryption has not been decrypted (No in step S105), the CPU 41 cannot start the application and ends the process as it is.

図8は、図7のライセンス認証処理を説明するフローチャートである。
ライセンス認証処理部51は、ステップS111において、有効ライセンスの有無をブロックチェーンネットワークに問い合わせる。このときライセンス認証処理部51は、アプリケーションごとのウォレットアドレス、利用者のウォレットアドレスをブロックチェーンネットワークに送信する。
ライセンス認証処理部51は、ステップS112において、ブロックチェーンネットワークから問い合わせ結果(端末固有情報、正常なライセンスの有無)を受信したか否かを判定する。
問い合わせ結果を受信していないと判定した場合(ステップS112でNo)、ライセンス認証処理部51は、ステップ112の処理を繰り返し、問い合わせ結果の受信を待機する。
FIG. 8 is a flowchart illustrating the license authentication process of FIG. 7.
In step S111, the license authentication processing unit 51 inquires the blockchain network whether or not there is a valid license. At this time, the license authentication processing unit 51 transmits the wallet address for each application and the wallet address of the user to the blockchain network.
In step S112, the license authentication processing unit 51 determines whether or not the inquiry result (terminal-specific information, presence / absence of a normal license) has been received from the blockchain network.
If it is determined that the inquiry result has not been received (No in step S112), the license authentication processing unit 51 repeats the process of step 112 and waits for the inquiry result to be received.

問い合わせ結果を受信したと判定した場合(ステップS112でYes)、ライセンス認証処理部51は、ステップS113において、問い合わせ結果の端末固有情報が実際の端末固有情報と一致するか否か、問い合わせ結果が正常なライセンスの存在を示すか否か、を判定する。
問い合わせ結果の端末固有情報が実際の端末固有情報と一致する、あるいは問い合わせ結果が正常なライセンスの存在を示すと判定した場合(ステップS113でYes)、ライセンス認証処理部51は、ステップS114において、共通鍵を用いてアプリケーションの暗号化を解除し、処理を終了する。
問い合わせ結果の端末固有情報が実際の端末固有情報と一致しない、あるいは問い合わせ結果が正常なライセンスの存在を示さないと判定した場合(ステップS113でNo)、ライセンス認証処理部51は、そのまま処理を終了し、アプリケーションの暗号化を解除しない。
When it is determined that the inquiry result has been received (Yes in step S112), the license authentication processing unit 51 determines in step S113 whether the terminal-specific information of the inquiry result matches the actual terminal-specific information, and the inquiry result is normal. Determines whether or not to indicate the existence of a unique license.
When it is determined that the terminal-specific information of the inquiry result matches the actual terminal-specific information, or the inquiry result indicates the existence of a normal license (Yes in step S113), the license authentication processing unit 51 is common in step S114. Decrypt the application using the key and end the process.
If it is determined that the terminal-specific information of the inquiry result does not match the actual terminal-specific information, or the inquiry result does not indicate the existence of a normal license (No in step S113), the license authentication processing unit 51 ends the processing as it is. And do not deactivate the application.

図9は、アプリケーション提供者(開発者)の端末装置が実行するライセンス付与処理を説明するフローチャートである。
CPU61(ライセンス付与処理部72)は、ステップS201において、ライセンス付与要求として、利用者のイーサリアムウォレットアドレスと、利用者端末装置10の端末固有情報を受信したか否かを判定する。上記のように、ライセンス付与要求にあたって利用者端末装置10の端末固有情報は必須ではない。
ライセンス付与要求を受信したと判定した場合(ステップS201でYes)、CPU61(ライセンス付与処理部72)は、ステップS202において、スマートコントラクトAPI(スマートコントラクト処理部)を呼び出し、ステップS203において、利用者のウォレットアドレスに対してライセンストークンを付与し、ライセンス付与処理を終了する。
FIG. 9 is a flowchart illustrating a license granting process executed by the terminal device of the application provider (developer).
In step S201, the CPU 61 (license granting processing unit 72) determines whether or not the user's Ethereum wallet address and the terminal-specific information of the user terminal device 10 have been received as the license grant request. As described above, the terminal-specific information of the user terminal device 10 is not indispensable for the license grant request.
When it is determined that the license grant request has been received (Yes in step S201), the CPU 61 (license grant processing unit 72) calls the smart contract API (smart contract processing unit) in step S202, and in step S203, the user's A license token is given to the wallet address, and the license granting process is completed.

本実施形態のシステムにおける、ライセンス移行の手続きを説明する。
ライセンスを有する利用者は、自身のウォレットの秘密鍵を使って認証することで、ライセンストークンを別の利用者に譲渡することができる。
すなわち利用者は、任意のウォレットに対してライセンスを移行するスマートコントラクトを実行することができる。
イーサリアムにおけるスマートコントラクトの実行にはガスと呼ばれる手数料が必要となるが、利用者のウォレットに対してイーサリアムを自動的に付与することで、利用者がイーサリアムを購入する必要がないようにすることも可能である。
例えば、ライセンスの移行に先だって、一の利用者は、他の利用者にライセンスを移行する旨を示す移行通知を提供者端末装置20に送信する。
この移行通知は、移行元の利用者のウォレットアドレス、移行先の利用者のウォレットアドレスを少なくも含む。
この場合、利用者端末装置10は、図3(b)の処理部に加え、移行通知を送信する移行通知送信部を備える。移行通知送信部は、例えば、電子メールを送信可能な電子メールクライアントソフトウェアである。そして、移行通知は、移行通知送信部によって、提供者端末装置20に送信される。
移行通知を受け取った提供者端末装置20は、移行通知に記載されている移行元となるウォレットアドレスに対するイーサリアムの送金を行う。
この場合、提供者端末装置20は、図4(b)の処理部に加え、移行通知を受信するための移行通知受信部と、利用者のウォレットに仮想通貨(イーサリアム)を付与するトランザクションを作成、公開する処理を行う送金部を備える。
移行通知が電子メールによって送信される場合、移行通知受信部もまた、電子メールを受信可能な電子メールクライアントソフトウェアである。
図3(b)に示したライセンス移行処理部53は、移行元利用者のウォレットを確認し、提供者端末装置20からのイーサリアムが入金されたか否かを確認する。
ライセンス移行処理部53は、入金を確認すると、以下に説明するライセンス移行処理を実行する。
また、提供者端末装置20からの移行通知の送信は、ライセンスを移行するためのスマートコントラクトを実行後に行っても良い。
The procedure of license transfer in the system of this embodiment will be described.
A licensed user can transfer the license token to another user by authenticating with the private key of his wallet.
That is, the user can execute a smart contract that transfers the license to any wallet.
Execution of smart contracts in Ethereum requires a fee called gas, but by automatically granting Ethereum to the user's wallet, it is possible to prevent users from having to purchase Ethereum. It is possible.
For example, prior to the license transfer, one user sends a transfer notification to the provider terminal device 20 indicating that the license is transferred to another user.
This migration notification includes at least the wallet address of the migration source user and the wallet address of the migration destination user.
In this case, the user terminal device 10 includes a transition notification transmission unit that transmits a transition notification, in addition to the processing unit of FIG. 3 (b). The migration notification transmitter is, for example, e-mail client software capable of transmitting e-mail. Then, the transition notification is transmitted to the provider terminal device 20 by the transition notification transmission unit.
Upon receiving the migration notification, the provider terminal device 20 remits Ethereum to the wallet address that is the migration source described in the migration notification.
In this case, the provider terminal device 20 creates, in addition to the processing unit of FIG. 4B, a transition notification receiving unit for receiving the migration notification and a transaction for granting virtual currency (Ethereum) to the user's wallet. , Equipped with a remittance department that processes public information.
If the migration notification is sent by email, the migration notification receiver is also an email client software capable of receiving the email.
The license transfer processing unit 53 shown in FIG. 3B confirms the wallet of the migration source user and confirms whether or not Ethereum from the provider terminal device 20 has been deposited.
Upon confirming the payment, the license transfer processing unit 53 executes the license transfer process described below.
Further, the transfer notification may be transmitted from the provider terminal device 20 after executing the smart contract for transferring the license.

図10は、アプリケーションの利用者端末装置が実行するライセンス移行処理を説明するフローチャートである。
CPU41(ライセンス移行処理部53)は、ステップS301において、譲渡先の利用者のウォレットに対してライセンストークンを移譲するための移譲トランザクションを作成する。
移譲トランザクションには、当該利用者端末装置を利用する移行元利用者のウォレットの秘密鍵に基づく電子署名と、移行先利用者のウォレットアドレスと、が少なくとも含まれる。
CPU41(ライセンス移行処理部53)は、ステップS302において、ステップS301で作成した譲渡トランザクションをブロックチェーンネットワークに公開する。
これにより、トークンを移行するスマートコントラクトがブロックチェーン上で実行され、ライセンスの移行が実現する。
なお、ライセンス移行に伴う手数料分のイーサリアムの送金は、利用者端末装置10が送信する移行通知に基づいて行われるのではなく、提供者端末装置20がブロックチェーンを監視し、ライセンス移行が行われたことを提供者端末装置20が発見したことを契機に行われても良い。
この場合、提供者端末装置20は、図4(b)の処理部に加え、ブロックチェーンを常時監視するブロックチェーン監視部、利用者に仮想通貨(イーサリアム)を付与するトランザクションを作成、公開する処理を行う送金部を備える。
ブロックチェーンを監視していたブロックチェーン監視部が、ライセンス移行のための譲渡トランザクションを発見すると、送金部は、譲渡トラザクションを公開した利用者のウォレットに対して、イーサリアムを送金する処理を行う。
FIG. 10 is a flowchart illustrating a license transfer process executed by the user terminal device of the application.
In step S301, the CPU 41 (license transfer processing unit 53) creates a transfer transaction for transferring the license token to the wallet of the transferee user.
The transfer transaction includes at least an electronic signature based on the private key of the wallet of the migration source user who uses the user terminal device, and the wallet address of the migration destination user.
In step S302, the CPU 41 (license transfer processing unit 53) exposes the transfer transaction created in step S301 to the blockchain network.
As a result, smart contracts that transfer tokens will be executed on the blockchain, and license transfer will be realized.
It should be noted that the remittance of Ethereum for the fee associated with the license transfer is not performed based on the transfer notification transmitted by the user terminal device 10, but the provider terminal device 20 monitors the blockchain and the license transfer is performed. This may be done when the provider terminal device 20 discovers that.
In this case, the provider terminal device 20 creates and publishes a blockchain monitoring unit that constantly monitors the blockchain and a transaction that grants a virtual currency (Ethereum) to the user, in addition to the processing unit shown in FIG. 4B. It is equipped with a remittance department.
When the blockchain monitoring department, which was monitoring the blockchain, discovers a transfer transaction for license transfer, the remittance department processes the transfer of Ethereum to the wallet of the user who published the transfer transaction.

なお、本実施形態のシステム1において、このような、ブロックチェーンの監視、イーサリアムの自動付与の処理は、提供者端末装置20で行うのではなく、これらの端末装置とは別途設けたサーバ装置によって行ってもよい。
サーバ装置は、少なくとも、制御部としてCPU、RAMを備え、ネットワークI/Fによってインターネットに接続されている。
サーバ装置のCPUは、ブロックチェーンを常時監視するブロックチェーン監視部、利用者に仮想通貨(イーサリアム)を付与するトランザクションを作成、公開する処理を行う送金部を実行する。
ブロックチェーンを監視していたブロックチェーン監視部が、ライセンス移行のための譲渡トランザクションを発見すると、送金部は、譲渡トラザクションを公開した利用者のウォレットに対して、イーサリアムを送金する処理を行う。
In the system 1 of the present embodiment, such processing of blockchain monitoring and automatic granting of Ethereum is not performed by the provider terminal device 20, but by a server device separately provided from these terminal devices. You may go.
The server device includes at least a CPU and RAM as a control unit, and is connected to the Internet by a network I / F.
The CPU of the server device executes a blockchain monitoring unit that constantly monitors the blockchain, and a remittance unit that creates and publishes a transaction that grants a virtual currency (Ethereum) to a user.
When the blockchain monitoring department, which was monitoring the blockchain, discovers a transfer transaction for license transfer, the remittance department processes the transfer of Ethereum to the wallet of the user who published the transfer transaction.

上記のように構成したので、本実施形態のシステムによれば、アプリケーションを提供した提供者がサービスを終了したり、障害が発生したりすることによって提供者端末装置20の稼働が終了あるいは停止した場合でも、利用者端末装置10は、ブロックチェーン上に記録されたライセンストークンを利用して、常にライセンス認証を行って暗号化アプリケーションを実行することが出来る。
サービス提供側も、認証サーバ(ライセンスサーバ)を常時稼働させる必要がなくなり、コスト面や運用面で有利なシステムとすることが出来る。
Since it is configured as described above, according to the system of the present embodiment, the operation of the provider terminal device 20 is terminated or stopped due to the provider who provided the application terminating the service or a failure. Even in this case, the user terminal device 10 can always perform license authentication and execute the encryption application by using the license token recorded on the blockchain.
The service provider also does not need to constantly operate the authentication server (license server), which can be an advantageous system in terms of cost and operation.

なお、上記の説明においては、イーサリアムが有するスマートコントラクトの仕組みを用い、ブロックチェーン上にライセンスに関する情報を記録するとともに、アプリケーションにおけるライセンス認証の機能を、ブロックチェーン上で完結して(完全にサーバーレスで)実現している。
それに対し、ブロックチェーン上にライセンス情報を記録するが、ブロックチェーンを探索してライセンスの有無を問い合わせる探索サーバを別途設ける構成としてもよい。
上記で説明したイーサリアム以外のブロックチェーンのプロトコルによっても、ライセンス情報を格納するストレージとしてブロックチェーンを用い、ライセンス認証は別途設けたサーバ装置によって行うことで、類似の仕組みを実現することが出来る。
この場合、復号用DLLに含まれるライセンス認証処理部51は、暗号化アプリケーションの実行時に探索サーバに対して問い合わせを行う。すなわち、アプリケーションのウォレットアドレス、利用者のウォレットアドレスを探索サーバに送信する。
探索サーバは、これらの情報に基づいて、ブロックチェーンのメモリ領域を探索し、ライセンスの有無をライセンス認証処理部51に返す処理を行う。
In the above explanation, the smart contract mechanism of Ethereum is used to record the license information on the blockchain, and the license authentication function in the application is completed on the blockchain (completely serverless). It has been realized.
On the other hand, although the license information is recorded on the blockchain, a search server that searches the blockchain and inquires about the existence of a license may be separately provided.
Even with the blockchain protocol other than Ethereum described above, a similar mechanism can be realized by using the blockchain as the storage for storing the license information and performing the license authentication by the server device provided separately.
In this case, the license authentication processing unit 51 included in the decryption DLL makes an inquiry to the search server when the encryption application is executed. That is, the wallet address of the application and the wallet address of the user are transmitted to the search server.
Based on this information, the search server searches the memory area of the blockchain and performs a process of returning the presence or absence of a license to the license authentication processing unit 51.

また、上記の説明ではライセンスの付与、認証の対象がアプリケーションソフトウェアに限られていたが、本発明はそれに限定されることはない。
電子書籍や動画、音楽などのコンテンツについても、同様に適用可能である。
例えば、提供者は、これらのコンテンツデータを暗号化して配信する。暗号化されたコンテンツデータを取得した利用者が用いる端末装置で実行される閲覧ソフトウェアは、コンテンツの表示のたびに、ブロックチェーンネットワークに問い合わせて認証を行う。
認証が成功した場合、閲覧ソフトウェアは、暗号化コンテンツデータを復号して表示を行う。このような構成とすることにより、デジタルコンテンツを提供した提供者がサービスを終了したり、障害が発生したりすることによって提供者端末装置20の稼働が終了あるいは停止した場合でも、利用者端末装置10は、ブロックチェーン上に記録されたライセンストークンを利用して、ライセンス認証を行ってデジタルコンテンツを表示することが出来る。
Further, in the above description, the subject of license granting and authentication is limited to application software, but the present invention is not limited thereto.
The same applies to contents such as electronic books, videos, and music.
For example, the provider encrypts and distributes these content data. The browsing software executed on the terminal device used by the user who has acquired the encrypted content data queries the blockchain network and authenticates each time the content is displayed.
If the authentication is successful, the browsing software decrypts and displays the encrypted content data. With such a configuration, even if the provider who provided the digital content terminates the service or the operation of the provider terminal device 20 is terminated or stopped due to the occurrence of a failure, the user terminal device 10 can use the license token recorded on the blockchain to perform license authentication and display digital contents.

1 システム、10 利用者端末装置、20 提供者端末装置、30 マイナー装置、41 CPU、42 RAM、43 ドライブ装置、44 記録媒体、45 ネットワークI/F、46 入力装置、47 表示装置、51 ライセンス認証処理部、52 復号処理部、53 ライセンス移行処理部、61 CPU、62 RAM、63 ドライブ装置、64 記録媒体、65 ネットワークI/F、66 入力装置、67 表示装置、71 暗号化処理部(暗号化ツール)、72 ライセンス付与処理部、73 スマートコントラクト処理部 1 system, 10 user terminal device, 20 provider terminal device, 30 minor device, 41 CPU, 42 RAM, 43 drive device, 44 recording medium, 45 network I / F, 46 input device, 47 display device, 51 license authentication Processing unit, 52 Decryption processing unit, 53 License transfer processing unit, 61 CPU, 62 RAM, 63 drive device, 64 recording medium, 65 network I / F, 66 input device, 67 display device, 71 encryption processing unit (encryption) Tools), 72 License Grant Processing Department, 73 Smart Contract Processing Department

Claims (11)

第1の装置と、第2の装置と、を備え、
前記第1の装置は、
入力されたデータの暗号化処理を行って暗号化データを出力する暗号化処理部と、
前記第2の装置の利用者に対して前記データに係るライセンスの付与を行い、当該ライセンスの付与に係るライセンス情報をブロックチェーンネットワークに送出するライセンス付与処理部と、を備え、
前記暗号化データは、当該暗号化データを特定するために作成された第1の仮想通貨ウォレットアドレスを含み、
前記第2の装置は、
前記暗号化データの利用時に、ブロックチェーン上に記録されたライセンス情報に基づく認証を行うライセンス認証処理部と、
前記認証が成功した場合に前記暗号化データに対する復号処理を行う復号処理部と、
を備える、
ことを特徴とする情報処理システム。
A first device and a second device are provided,
The first device is
An encryption processing unit that performs encryption processing of the input data and outputs the encrypted data,
It is provided with a license granting processing unit that grants a license related to the data to a user of the second device and sends license information related to the granting of the license to a blockchain network.
The encrypted data includes a first virtual currency wallet address created to identify the encrypted data.
The second device is
When using the encrypted data, the license authentication processing unit that performs authentication based on the license information recorded on the blockchain, and
A decryption processing unit that performs decryption processing on the encrypted data when the authentication is successful, and
To prepare
An information processing system characterized by this.
請求項1に記載の情報処理システムにおいて、 In the information processing system according to claim 1,
前記ライセンス付与処理部は、前記利用者に係る第2の仮想通貨ウォレットアドレスと、前記第1の仮想通貨ウォレットアドレスと、に基づくライセンス情報を前記ブロックチェーンネットワークに送出することを特徴とする情報処理システム。 The information processing unit is characterized by transmitting license information based on the second virtual currency wallet address related to the user and the first virtual currency wallet address to the blockchain network. system.
請求項1に記載の情報処理システムにおいて、 In the information processing system according to claim 1,
前記ライセンス付与処理部は、前記利用者に係る第2の仮想通貨ウォレットアドレスと、前記第1の仮想通貨ウォレットアドレスと、前記第2の装置に係る固有情報と、に基づくライセンス情報を前記ブロックチェーンネットワークに送出することを特徴とする情報処理システム。 The license granting processing unit uses the blockchain for license information based on the second virtual currency wallet address related to the user, the first virtual currency wallet address, and the unique information related to the second device. An information processing system characterized by sending to a network.
請求項1乃至3の何れか一項に記載の情報処理システムにおいて、 In the information processing system according to any one of claims 1 to 3,
前記ライセンス認証処理部は、前記認証時に、ブロックチェーンを記憶する外部装置に対する問い合わせを行い、 At the time of the authentication, the license authentication processing unit makes an inquiry to an external device that stores the blockchain.
前記暗号化処理部は、前記データの暗号化時に、前記ライセンス認証処理部が利用可能な外部装置の接続先リストを前記暗号化データに含めることを特徴とする情報処理システム。 The encryption processing unit is an information processing system characterized in that, at the time of encrypting the data, the encryption processing unit includes a list of connection destinations of external devices that can be used by the license authentication processing unit in the encrypted data.
請求項1乃至4の何れか一項に記載の情報処理システムにおいて、 In the information processing system according to any one of claims 1 to 4.
前記第2の装置は、前記利用者から他の利用者に前記ライセンスを移行するための移行情報を前記ブロックチェーンネットワークに公開することにより前記ライセンスの移行を行うライセンス移行処理部を備えることを特徴とする情報処理システム。 The second device is characterized by comprising a license transfer processing unit that transfers the license by disclosing the migration information for transferring the license from the user to another user to the blockchain network. Information processing system.
請求項5に記載の情報処理システムにおいて、 In the information processing system according to claim 5,
前記第2の装置は、前記ライセンスの移行を行うことを通知する移行通知を前記第1の装置に送信する移行通知送信処理部をさらに備え、 The second device further includes a migration notification transmission processing unit that transmits a migration notification notifying the transfer of the license to the first device.
前記第1の装置は、前記移行通知に基づいて、前記利用者に仮想通貨を送金する処理を行う送金部をさらに備えることを特徴とする情報処理システム。 The first device is an information processing system further comprising a remittance unit that performs a process of remittance of virtual currency to the user based on the transition notification.
入力されたデータの暗号化処理を行って暗号化データを出力する暗号化処理部と、 An encryption processing unit that performs encryption processing of the input data and outputs the encrypted data,
他の装置の利用者に対して前記データに係るライセンスの付与を行い、当該ライセンスの付与に係るライセンス情報をブロックチェーンネットワークにする送出するライセンス付与処理部と、を備え、 It is equipped with a license granting processing unit that grants a license related to the data to users of other devices and sends out the license information related to the granting of the license to a blockchain network.
前記暗号化データは、当該暗号化データを特定するために作成された第1の仮想通貨ウォレットアドレスを含む、 The encrypted data includes a first virtual currency wallet address created to identify the encrypted data.
ことを特徴とする情報処理装置。An information processing device characterized by this.
暗号化データの利用時に、ブロックチェーン上に記憶されたライセンス情報に基づいて認証を行うライセンス認証処理部と、 A license authentication processing unit that authenticates based on the license information stored on the blockchain when using encrypted data,
前記認証が成功した場合に前記暗号化データに対する復号処理を行う復号処理部と、 A decryption processing unit that performs decryption processing on the encrypted data when the authentication is successful, and
を備え、Equipped with
前記暗号化データは、当該暗号化データを特定するために作成された第1の仮想通貨ウォレットアドレスを含む、 The encrypted data includes a first virtual currency wallet address created to identify the encrypted data.
ことを特徴とする情報処理装置。An information processing device characterized by this.
データに対する暗号化処理を行い、暗号化データを生成する暗号化処理部と、
前記データの利用者に対して前記データに係るライセンスの付与を行い、前記ライセンスの付与に係るライセンス情報をブロックチェーンネットワークに送出するライセンス付与処理部と、
前記暗号化データの利用時に前記ライセンス情報に応じて認証を行うために、前記ライセンス情報をブロックチェーンネットワークに問い合わせるコードを、前記暗号化データに付加する付加部と、
を備え
前記付加部は、さらに、
前記暗号化データの利用時に前記暗号化データを特定するために作成された第1の仮想通貨ウォレットアドレスを前記暗号化データに付加する
ことを特徴とする情報処理装置。
An encryption processing unit that performs encryption processing on data and generates encrypted data,
A license granting processing unit that grants a license related to the data to a user of the data and sends the license information related to the granting of the license to the blockchain network.
An additional part that adds a code for inquiring the license information to the blockchain network to the encrypted data in order to authenticate according to the license information when the encrypted data is used.
Equipped with
The additional part further
A first virtual currency wallet address created to identify the encrypted data when the encrypted data is used is added to the encrypted data.
An information processing device characterized by this.
コンピュータによって実行される情報処理方法であって、
データに対する暗号化処理を行い、暗号化データを生成し、
前記データの利用者に対して前記データに係るライセンスを付与し、
前記ライセンスの付与に係るライセンス情報をブロックチェーンネットワークに送出し、
前記暗号化データの利用時に前記ライセンス情報に応じて認証を行うために、前記ライセンス情報をブロックチェーンネットワークに問い合わせるコードを、前記暗号化データに付加し、
前記暗号化データの利用時に前記暗号化データを特定するために作成された第1の仮想通貨ウォレットアドレスを前記暗号化データに付加する
ことを特徴とする情報処理方法。
An information processing method executed by a computer
Performs encryption processing on the data, generates encrypted data,
Grant the license related to the data to the user of the data,
The license information related to the grant of the license is sent to the blockchain network,
In order to authenticate according to the license information when using the encrypted data, a code for inquiring the license information to the blockchain network is added to the encrypted data.
A first virtual currency wallet address created to identify the encrypted data when the encrypted data is used is added to the encrypted data.
An information processing method characterized by that.
データに対する暗号化処理を行い、暗号化データを生成し、
前記データの利用者に対して前記データに係るライセンスを付与し、
前記ライセンスの付与に係るライセンス情報をブロックチェーンネットワークに送出し、
前記暗号化データの利用時に前記ライセンス情報に応じて認証を行うために、前記ライセンス情報をブロックチェーンネットワークに問い合わせるコードを、前記暗号化データに付加し、
前記暗号化データの利用時に前記暗号化データを特定するために作成された第1の仮想通貨ウォレットアドレスを前記暗号化データに付加する
処理をコンピュータに実行させることを特徴とする情報処理プログラム。
Performs encryption processing on the data, generates encrypted data,
Grant the license related to the data to the user of the data,
The license information related to the grant of the license is sent to the blockchain network,
In order to authenticate according to the license information when using the encrypted data, a code for inquiring the license information to the blockchain network is added to the encrypted data.
A first virtual currency wallet address created to identify the encrypted data when the encrypted data is used is added to the encrypted data.
An information processing program characterized by having a computer execute processing.
JP2018153949A 2018-08-20 2018-08-20 Information processing system, information processing device, information processing method and information processing program Active JP7053031B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2018153949A JP7053031B2 (en) 2018-08-20 2018-08-20 Information processing system, information processing device, information processing method and information processing program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018153949A JP7053031B2 (en) 2018-08-20 2018-08-20 Information processing system, information processing device, information processing method and information processing program

Publications (2)

Publication Number Publication Date
JP2020030454A JP2020030454A (en) 2020-02-27
JP7053031B2 true JP7053031B2 (en) 2022-04-12

Family

ID=69622479

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018153949A Active JP7053031B2 (en) 2018-08-20 2018-08-20 Information processing system, information processing device, information processing method and information processing program

Country Status (1)

Country Link
JP (1) JP7053031B2 (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6730504B1 (en) * 2019-11-27 2020-07-29 株式会社Artrigger Program and information processing method
EP4114075A4 (en) 2020-02-26 2024-04-10 Ntt Docomo, Inc. Terminal, wireless communication method, and base station
KR102393403B1 (en) * 2021-10-28 2022-04-29 차경운 Method and system for managing software multi-ownership account
WO2024009982A1 (en) * 2022-07-07 2024-01-11 Sushi Top Marketing株式会社 Information processing device, information processing system, and information processing method

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018075129A1 (en) 2016-10-20 2018-04-26 Sony Corporation Blockchain-based digital rights management

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018075129A1 (en) 2016-10-20 2018-04-26 Sony Corporation Blockchain-based digital rights management

Also Published As

Publication number Publication date
JP2020030454A (en) 2020-02-27

Similar Documents

Publication Publication Date Title
JP7436568B2 (en) Methods and systems realized by blockchain
JP6877448B2 (en) Methods and systems for guaranteeing computer software using distributed hash tables and blockchain
CN111541727B (en) Block chain all-in-one machine and automatic chain building method and device thereof
KR101781583B1 (en) File management and search system based on block chain and file management and search method
JP7053031B2 (en) Information processing system, information processing device, information processing method and information processing program
CN103098070B (en) For the methods, devices and systems of Data Position in monitoring network service
JP5196883B2 (en) Information security apparatus and information security system
JP5365502B2 (en) File management apparatus, file management program, and file management method
US12052259B2 (en) Blockchain folding
JP6543743B1 (en) Management program
JP2013514587A (en) Content management method using certificate revocation list
JP4525609B2 (en) Authority management server, authority management method, authority management program
KR102107438B1 (en) Apparatus for managing electronic document using blockchain and operating method thereof
KR20210064675A (en) Security system for data trading and data storage based on block chain and method therefor
CN115066863A (en) Systems and techniques for cross-account device key transfer in a benefit denial system
KR102359826B1 (en) Digital property code management system based on blockchain and method thereof
TWI636415B (en) Decentralization know your customer (kyc) system based on blockchain smart contract and method thereof
CN108881261A (en) Service authentication method and system based on block chain technology under a kind of container environment
WO2019163040A1 (en) Access management system and program thereof
JP7457406B2 (en) virtual currency system
US8755521B2 (en) Security method and system for media playback devices
US20230283466A1 (en) Content protection system
US7373672B2 (en) Method for securely managing information in database
JPH11331145A (en) Information sharing system, information preserving device, information processing method and recording medium therefor
JP6901373B2 (en) User management device, user management system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210210

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20211029

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20211109

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20211227

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220324

R150 Certificate of patent or registration of utility model

Ref document number: 7053031

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150