JP2020030454A - Information processing system, information processing apparatus, information processing method and information processing program - Google Patents

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

Info

Publication number
JP2020030454A
JP2020030454A JP2018153949A JP2018153949A JP2020030454A JP 2020030454 A JP2020030454 A JP 2020030454A JP 2018153949 A JP2018153949 A JP 2018153949A JP 2018153949 A JP2018153949 A JP 2018153949A JP 2020030454 A JP2020030454 A JP 2020030454A
Authority
JP
Japan
Prior art keywords
license
information
encrypted data
processing unit
information processing
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
JP2018153949A
Other languages
Japanese (ja)
Other versions
JP7053031B2 (en
Inventor
一樹 客野
Kazuki Kakuno
一樹 客野
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

Abstract

To provide a license management system capable of improving an independence and a stability of a service.SOLUTION: A provider terminal apparatus 20 performs an encryption processing on an input application, outputs an encrypted application, gives a license based on a request from a user terminal apparatus 10, and transmits license information to a block-chain network. The user terminal apparatus 10 inquires to the block-chain network when starting the encrypted application, performs license authentication processing that confirms whether or not a valid license exists, and decrypts the encrypted application to make it possible to run when the valid license is confirmed.SELECTED DRAWING: Figure 2

Description

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

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

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

本発明は、上述の課題を解決するためになされたものであり、以下の形態により実現することが可能である。
第1の形態は、第1の装置と、第2の装置と、を備え、前記第1の装置は、入力されたデータの暗号化処理を行って暗号化データを出力する暗号化処理部と、前記第2の装置の利用者に対して前記データに係るライセンスの付与を行い、当該ライセンスの付与に係るライセンス情報をブロックチェーンネットワークに送出するライセンス付与処理部と、を備え、前記第2の装置は、前記暗号化データの利用時に、ブロックチェーン上に記録された前記ライセンス情報に基づく認証を行うライセンス認証処理部と、前記認証が成功した場合に前記暗号化データに対する復号処理を行う復号処理部と、を備える情報処理システムを特徴とする。
第2の形態は、入力されたデータの暗号化処理を行って暗号化データを出力する暗号化処理部と、他の装置の利用者に対して前記データに係るライセンスの付与を行い、当該ライセンスの付与に係るライセンス情報をブロックチェーンネットワークにする送出するライセンス付与処理部と、を備える情報処理装置を特徴とする。
第3の形態は、暗号化されたデータの利用時に、ブロックチェーン上に記憶されたライセンス情報に基づいて認証を行うライセンス認証処理部と、前記認証が成功した場合に前記暗号化データに対する復号処理を行う復号処理部と、を備える情報処理装置を特徴とする。
第4の形態は、データに対する暗号化処理を行い、暗号化データを生成する暗号化処理部と、前記暗号化データの利用時に当該暗号化データのライセンス情報をブロックチェーンネットワークに問い合わせるコードを、前記暗号化処理時に前記暗号化データに付加する付加部と、を備える情報処理装置を特徴とする。
第5の形態は、コンピュータによって実行される情報処理方法であって、データに対する暗号化処理を行い、暗号化データを生成し、前記暗号化データの利用時に当該暗号化データのライセンス情報をブロックチェーンネットワークに問い合わせるコードを、前記暗号化処理時に前記暗号化データに付加する情報処理方法を特徴とする。
第6の形態は、データに対する暗号化処理を行い、暗号化データを生成し、前記暗号化データの利用時に当該暗号化データのライセンス情報をブロックチェーンネットワークに問い合わせるコードを、前記暗号化処理時に前記暗号化データに付加する処理をコンピュータに実行させる情報処理プログラムを特徴とする。
The present invention has been made to solve the above-mentioned problem, and can be realized by the following modes.
A first embodiment includes a first device and a second device, wherein the first device performs an encryption process on input data and outputs encrypted data. A license granting unit that grants a license related to the data to a user of the second device, and sends license information related to the license grant to a blockchain network. The apparatus includes: a license authentication processing unit that performs authentication based on the license information recorded on a block chain when using the encrypted data; and a decryption process that performs decryption processing on the encrypted data when the authentication is successful. And an information processing system comprising:
In a second mode, an encryption processing unit that performs encryption processing of input data and outputs encrypted data, and a license for the data is provided to a user of another apparatus, and the license is provided. And a license assignment processing unit for sending license information related to the assignment to the blockchain network.
A third mode is a license authentication processing unit that performs authentication based on license information stored on a block chain when using encrypted data, and a decryption process on the encrypted data when the authentication is successful. And a decoding processing unit that performs the decoding.
According to a fourth aspect, an encryption processing unit that performs encryption processing on data to generate encrypted data, and a code for inquiring a blockchain network about license information of the encrypted data when using the encrypted data, An information processing apparatus comprising: an adding unit that adds the encrypted data at the time of encryption processing.
A fifth aspect is an information processing method executed by a computer, which performs an encryption process on data, generates encrypted data, and uses license information of the encrypted data in a block chain when the encrypted data is used. An information processing method for adding a code for inquiring a network to the encrypted data at the time of the encryption processing.
In a sixth mode, a code for performing encryption processing on data, generating encrypted data, and inquiring a blockchain network for license information of the encrypted data when using the encrypted data, An information processing program for causing a computer to execute a process of adding to encrypted data is characterized.

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

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

以下に、図面を参照して本発明の実施の形態を詳細に説明する。
図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 illustrating a system configuration of the present embodiment.
FIG. 1A is a schematic diagram illustrating a network configuration according to the system of the present embodiment.
In the system 1 according to the present embodiment, a user terminal device 10 used by a user of an application and a provider terminal device 20 used by a provider (developer) of the application are interconnected via the Internet. ing.
Furthermore, a number of miner devices 30 used by miners who participate in a mining operation by participating in a blockchain network 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のネットワークである。
A blockchain network x is configured by a number of minor devices 30x (30x-1, 30x-2,...), And a blockchain network y is configured by a number of minor devices 30y (30y-1, 30y-2,...). Have been.
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 on the blockchain, including those used for cryptocurrencies. As virtual currencies, besides typical bitcoin, what is called altcoin is known. As typical altcoins, 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 block chain network to perform proof of work (PoW). Some other blockchain networks employ proof of stake (PoS) and proof of consensus (PoC) as consensus algorithms.

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

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

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

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

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

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

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

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

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

図2は、本実施形態のライセンス管理システムの概略を説明する図である。
図中の(1)〜(7)のステップに従って、処理を概説する。
(1)提供者端末装置20は、アプリケーションを任意の手段で利用者端末装置10に提供する。このアプリケーションは暗号化された暗号化アプリケーションの状態で配布される。利用者端末装置10は、利用者に対する有効なライセンスの存在が確認されることを条件に、暗号化アプリケーションを復号することにより、実行することが出来る。
FIG. 2 is a diagram illustrating an outline of the license management system according to the present embodiment.
The processing will be 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 as an encrypted application. The user terminal device 10 can be executed by decrypting the encrypted 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 to use the encrypted application. In this grant request, the user's virtual currency wallet address is transmitted.
The user who uses the application can be specified by the wallet address of the virtual currency.
The application license is granted so that a user having a specific wallet address can use the application.

好適には、利用者のウォレットアドレスとともに、利用者端末装置10の端末固有情報が提供者端末装置20に送信される。端末固有情報によっては、利用者端末装置10が一意に特定され得る。端末固有情報とは、例えば、CPUIDやDISKIDなどのハードウェア固有情報である。CPUIDは、CPUに対して製造時に一意に与えられた識別情報である。また、DISKIDは、ハードディスクに対して製造時に一意に与えられた識別情報である。
端末固有情報が送信される場合、ライセンスは、特定のウォレットアドレスを有する利用者が、そのアプリケーションを特定の利用者端末装置でのみ実行可能なように付与される。
ライセンスを有する利用者が、複数の端末装置でアプリケーションを同時起動することや、ライセンスを複数の利用者で使い回したりすることを防止することが出来る。
Preferably, the terminal unique information of the user terminal device 10 is transmitted to the provider terminal device 20 together with the user's wallet address. Depending on the terminal unique information, the user terminal device 10 can be uniquely specified. The terminal unique information is, for example, hardware unique information such as a CPUID and a DISKID. The CPUID is identification information uniquely given to the CPU at the time of manufacture. DISKID is identification information uniquely given to a hard disk at the time of manufacture.
When the terminal-specific information is transmitted, the license is provided so that the user having the specific wallet address can execute the application only on the specific user terminal device.
It is possible to prevent a user having a license from simultaneously starting an application on a plurality of terminal devices and from reusing a license among 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 creates the wallet address and terminal unique information of the user included in the grant request and each application included in the provider terminal device 20. A license token as the license information is created based on the obtained Ethereum wallet address (public key).
With the wallet address of each application, the target application can be specified at the time of license grant and authentication.

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

本実施形態の場合、スマートコントラクトでは、後述のトークン形式によるライセンス情報のブロックチェーンへの登録(デプロイ)と、ライセンス情報を用いたライセンス認証を、ブロックチェーンネットワーク上で完結した処理によって、自動的に行うことができる。
ライセンス情報は、特定のサーバではなく、ブロックチェーンのメモリ領域に格納され、ライセンス情報を用いた認証はこれも特定のサーバでなく各ノードによる分散処理によって行われる。
すなわち、他のブロックチェーンシステムではなく、時にイーサリアムを用いることで、ブロックチェーン上に記録されたライセンス情報を用いてライセンス認証を行うサーバ装置を別途用意する必要がなくなる。
本実施形態では、利用者にアプリケーションのライセンスを付与し、その付与に係るライセンス情報を登録するために用いるブロックチェーンシステムとして、イーサリアムを用いることを前提に説明を行うものとする。
(4)提供者端末装置20は、作成したライセンストークンを、スマートコントラクトにデプロイする。これにより、利用者に対してアプリケーションのライセンスが付与されたことがブロックチェーンに登録され、ライセンスの付与が完了する。
In the case of the present embodiment, in the smart contract, registration (deployment) of license information in the token format described later in the blockchain and license authentication using the license information are automatically performed by processing completed on the blockchain network. It can be carried out.
The license information is stored not in a specific server but in a memory area of a blockchain, and authentication using the license information is also performed by distributed processing by each node, not the specific server.
That is, by using Ethereum sometimes instead of another blockchain system, it is not necessary to separately prepare a server device that performs license authentication using license information recorded on the blockchain.
In the present embodiment, description will be made on the assumption that an Ethereum is used as a block chain system used to grant a license of an application to a user and register 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) When the encryption application is activated, the user terminal device 10 executes the decryption code embedded in the encryption application.
The decryption code makes an inquiry to a smart contract executed on the blockchain network for license authentication as a decryption condition.
This inquiry 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, the application to be licensed can be specified.

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

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

提供者端末装置20は、利用者端末装置10から受け取ったイーサリアムウォレットアドレス及び端末固有情報に対してライセンスの付与を行う。
ライセンスの付与とは、具体的には、スマートコントラクトのAPIを呼び出し、受け取ったイーサリアムウォレットアドレスにトークンを追加することである。
トークンには、利用者端末装置10の端末固有情報を含めるため、ノードロックを行うことができる。ノードロックとはすなわち、端末固有情報で特定される特定の端末装置でのみ、暗号化アプリケーションの実行を許可するものである。複数の端末装置でのアプリケーションの同時起動を制限したい場合、トークンに端末固有情報を含めることは好適である。ただし、ライセンスの付与にあたって端末固有情報は必ずしも必要ではない。
利用者端末装置10は、ライセンス付与要求として、イーサリアムウォレットアドレスのみを提供者端末装置20に送信してもよい。
その場合、ライセンス情報(トークン)に端末固有情報は含まれず、上記ノードロックを行うことは出来ないが、アプリケーションを実行可能なハードウェアに制限がなくなるため、後述するライセンスの移行がより容易となる。
The provider terminal device 20 grants a license to the Ethereum wallet address and the terminal unique information received from the user terminal device 10.
Granting a license is, specifically, calling the API of the 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 lock can be performed. That is, the node lock permits execution of the encryption application only in a specific terminal device specified by the terminal unique information. When it is desired to restrict simultaneous activation of an application on a plurality of terminal devices, it is preferable to include terminal-specific information in the token. However, terminal-specific information is not necessarily required for 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 this case, the terminal information is not included in the license information (token), and the node lock cannot be performed. However, there is no restriction on the hardware that can execute the application, so that the license transfer described later becomes easier. .

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

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

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

なお、ライセンス認証にあたって、利用者端末装置10がすべてのブロックチェーンのデータ(フルノード)を保持することは記録媒体の容量を考慮しても困難である。
従って、任意のサーバで起動しているフルノードに問い合わせを行うことが望ましい。
接続先のフルノードは暗号化アプリケーションの起動時に利用者が選択することができる。
また、ライセンスの二重使用を防ぐため、接続先のフルノードを、提供者端末装置20におけるアプリケーションの暗号化時に限定可能としてもよい。すなわち、アプリケーションが使用することができるフルノードのアドレス(接続先URL)のリストを暗号化時に指定する。すなわち、接続先URLのリストを暗号化アプリケーションに含める。
In the license authentication, it is difficult for the user terminal device 10 to hold the data (full nodes) of all the block chains, even in consideration of the capacity of the recording medium.
Therefore, it is desirable to make an inquiry to a full node running on an arbitrary server.
The user can select the full node to be connected when starting the encryption application.
Further, in order to prevent double use of the license, the full node of the connection destination may be limited when the application is encrypted in the provider terminal device 20. That is, a list of addresses (connection destination URLs) of full nodes that can be used by the application is designated at the time of encryption. That is, a 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 license of the user 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 ends or stops due to the application provider ending the service or the occurrence of a failure, the user terminal device 10 is recorded on the blockchain. License token is available. Accordingly, the user terminal 10 can execute the license authentication and execute the encryption application even when the operation of the provider terminal device 20 ends or stops.
In the conventional client-server authentication, unless the server device operates, license authentication cannot be performed, and applications and contents cannot be used.
However, the above-mentioned problem can be avoided by managing the information necessary for the license on the blockchain and automatically performing the license authentication on the blockchain.
In addition, since it is not necessary to keep the authentication server device operating at all times, it can be said that the service management side is very advantageous in terms of cost and operation.

以下に、上記のような処理を実現するための本実施形態の構成を詳しく説明する。
図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 illustrating a functional configuration of the user terminal device, where FIG. 3A is a diagram illustrating a functional configuration using hardware, and FIG. 3B is a block diagram illustrating a functional configuration using software.
The user terminal device 10 is, for example, a computer device shown in FIG.
The user terminal device 10 includes a CPU (Central Processing Unit) 41 and a RAM (Random Access Memory) 42. Furthermore, 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 apparatus, and executes a program that implements the functions of the user terminal device 10. Various programs, temporary data, and variables are developed 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 performs at least one of reading and writing of information stored in the recording medium 44. The recording medium 44 stores information written by the drive device 43. The recording medium 44 is, for example, at least one of a storage medium of a type such as a hard disk, an SSD (Solid State Drive), a CD (Compact Disc), a DVD (Digital Versatile Disc), and a 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.
At least one of the recording medium 44 and the ROM stores programs and data. The network I / F 45 connects the user terminal device 10 to a 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 a license request processing unit 50, a license authentication processing unit 51, a decryption processing unit 52, and a license transfer processing unit 53 as processing units.
The license request processing unit 50 is a processing unit that performs a process of requesting the provider terminal device 20 to give an initial license to an 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 from 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 makes an inquiry to a blockchain network at the time of activation of an encryption application, and performs license authentication for checking whether a valid license exists. It can be said that the inquiry to the blockchain network is a request for license authentication to the blockchain network.
The decryption processing unit 52 is a processing unit that decrypts and executes the encrypted 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 the smart contract, and performs processing for creating and transmitting a transaction for transferring the 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 illustrating a functional configuration of the provider terminal device, where FIG. 4A is a diagram illustrating a functional configuration by hardware, and FIG. 4B is a block diagram illustrating a functional configuration by software.
The provider terminal device 20 is, for example, a computer device illustrated in FIG.
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 apparatus and executes a program that implements the functions of the provider terminal device 20. The RAM 62 stores various programs, temporary data, and variables 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 performs at least one of reading and writing of information stored in the recording medium 64. The recording medium 64 stores information written by the drive device 63. The recording medium 64 is, for example, at least one of storage media of a type such as a hard disk, an SSD, a CD, a DVD, and a 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.
At least one of the recording medium 64 and the ROM stores programs and data. The network I / F 65 connects the provider terminal device 20 to a 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 an input of binary data of an application from an application provider, performs an encryption process, and outputs an encrypted application.
The provider creates one Ethereum wallet for one application, and the encrypted application includes an Ethereum wallet address for each application.
The target application is specified at the time of license grant or authentication by the Ethereum wallet address created for each application.
When a blockchain system other than Ethereum is used, it is possible to specify a blockchain to be inquired for authentication by a wallet address.

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

図5は、提供者端末装置の暗号化ツールによって生成される暗号化アプリケーションを説明する図である。
上記のように提供者端末装置20には、暗号化ツールがインストールされている。
暗号化ツールは、暗号化前アプリケーションのデータを暗号化するための暗号化コードを有する。
FIG. 5 is a diagram illustrating an encryption application generated by the encryption tool of the 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 application data before encryption.

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

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

図5(c)は、暗号化アプリケーションのデータ構成を示している。暗号化アプリケーションは、図5(b)の暗号化前アプリケーションの構成にスタブプログラムが加わった構成である。
暗号化前とは異なり、エントリーポイントはスタブプログラムの始点を指し示し、スタブプログラムが、暗号化後のプログラムの始点を指し示す。
FIG. 5C shows a data configuration of the encryption application. The encryption application has a configuration in which a stub program is added to the configuration of the pre-encryption application in FIG.
Unlike before encryption, the entry point points to the start of the stub program, and the stub program points to the start 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, a stub program is first executed. The stub program calls the DLL for decryption and causes a process for decrypting the encrypted program to be performed. This process includes a process of inquiring the blockchain about the presence or absence 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 the decryption processing unit 52 when executed by the user terminal device 10. Further, the program that queries the block chain included in the decryption DLL functions as a part of the license authentication processing unit 51 when executed by the user terminal device 10.
The encryption tool automatically inserts (adds) a program for inquiring the blockchain into the encryption application by hooking an arbitrary application and injecting the decryption DLL when the encryption application is executed. The program that inquires the block chain 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 a program after encryption in the encryption application in FIG.
The decryption DLL is inserted into the post-encryption application as a code separate from the post-encryption program, like the entry point, the resource, and the stub program.
The decryption DLL may be added as a file separate from the executable binary of the encryption application, or may be included in the executable binary.

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

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

図7は、利用者端末装置が実行するアプリケーション起動時処理を説明するフローチャートである。
CPU41は、ステップS101において、マウスのダブルクリック操作などによるアプリケーションの起動操作が行われたか否かを判定する。
アプリケーションの起動操作が行われていないと判定した場合(ステップ101でNo)、CPU41は、そのまま処理を終了する。
アプリケーションの起動操作が行われたと判定した場合(ステップS101でYes)、CPU41は、ステップS102において、暗号化されたアプリケーションの起動処理を開始する。
FIG. 7 is a flowchart illustrating an application startup process executed by the user terminal device.
In step S101, the CPU 41 determines whether or not an application startup operation by a mouse double-click operation or the like has been performed.
If it is determined that the application has not been started (No in step 101), the CPU 41 ends the process.
If it is determined that the operation for starting the application has been performed (Yes in step S101), the CPU 41 starts the processing for starting the encrypted application 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 terminal device 10 has a user's Ethereum wallet.
If 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) transmits the Ethereum wallet address and the terminal unique information of the user terminal device 10 to the provider terminal device 20 to issue a license grant request. Do.

ウォレットが存在すると判定した場合(ステップS103でYes)、CPU41(ライセンス認証処理部51)は、ステップS104において、図8で説明するライセンス認証処理を行う。
CPU41は、ステップS105において、ステップS104のライセンス認証が成功したか否か、すなわち、暗号化プログラムが復号されたか否か暗号化が解除されたか否かを判定する。
暗号化が解除されたと判定した場合(ステップS105でYes)、CPU41は、ステップS106において、アプリケーションを起動し、処理を終了する。
暗号化が解除されていないと判定した場合(ステップS105でNo)、CPU41は、アプリケーションを起動できず、そのまま処理を終了する。
If it is determined that a wallet is present (Yes in step S103), the CPU 41 (license authentication processing unit 51) performs the license authentication processing described in FIG. 8 in step S104.
In step S105, the CPU 41 determines whether or not the license authentication in step S104 has been successful, that is, whether or not the encryption program has been decrypted and whether or not the encryption has been released.
If it is determined that the encryption has been released (Yes in step S105), the CPU 41 starts the application in step S106 and ends the processing.
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 processing 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.
In step S111, the license authentication processing unit 51 inquires of the blockchain network whether there is a valid license. At this time, the license authentication processing unit 51 transmits the wallet address of 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 an inquiry result (terminal specific information, presence or absence of a normal license) has been received from the blockchain network.
When 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 reception of the inquiry result.

問い合わせ結果を受信したと判定した場合(ステップS112でYes)、ライセンス認証処理部51は、ステップS113において、問い合わせ結果の端末固有情報が実際の端末固有情報と一致するか否か、問い合わせ結果が正常なライセンスの存在を示すか否か、を判定する。
問い合わせ結果の端末固有情報が実際の端末固有情報と一致する、あるいは問い合わせ結果が正常なライセンスの存在を示すと判定した場合(ステップS113でYes)、ライセンス認証処理部51は、ステップS114において、共通鍵を用いてアプリケーションの暗号化を解除し、処理を終了する。
問い合わせ結果の端末固有情報が実際の端末固有情報と一致しない、あるいは問い合わせ結果が正常なライセンスの存在を示さないと判定した場合(ステップS113でNo)、ライセンス認証処理部51は、そのまま処理を終了し、アプリケーションの暗号化を解除しない。
If 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 unique information of the inquiry result matches the actual terminal unique information, and determines whether the inquiry result is normal. It is determined whether or not it indicates the presence of a license.
If it is determined that the terminal unique information of the inquiry result matches the actual terminal unique information or that the inquiry result indicates that a normal license exists (Yes in step S113), the license authentication processing unit 51 determines in step S114 The application is decrypted using the key, and the process ends.
If it is determined that the terminal unique information of the inquiry result does not match the actual terminal unique information or that the inquiry result does not indicate the presence of a normal license (No in step S113), the license authentication processing unit 51 ends the processing as it is. And does not decrypt 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 grant processing unit 72) determines whether or not the user has received the Ethereum wallet address of the user and the terminal unique information of the user terminal device 10 as the license grant request. As described above, the terminal unique information of the user terminal device 10 is not essential for the license grant request.
If 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 The license token is assigned to the wallet address, and the license assignment process ends.

本実施形態のシステムにおける、ライセンス移行の手続きを説明する。
ライセンスを有する利用者は、自身のウォレットの秘密鍵を使って認証することで、ライセンストークンを別の利用者に譲渡することができる。
すなわち利用者は、任意のウォレットに対してライセンスを移行するスマートコントラクトを実行することができる。
イーサリアムにおけるスマートコントラクトの実行にはガスと呼ばれる手数料が必要となるが、利用者のウォレットに対してイーサリアムを自動的に付与することで、利用者がイーサリアムを購入する必要がないようにすることも可能である。
例えば、ライセンスの移行に先だって、一の利用者は、他の利用者にライセンスを移行する旨を示す移行通知を提供者端末装置20に送信する。
この移行通知は、移行元の利用者のウォレットアドレス、移行先の利用者のウォレットアドレスを少なくも含む。
この場合、利用者端末装置10は、図3(b)の処理部に加え、移行通知を送信する移行通知送信部を備える。移行通知送信部は、例えば、電子メールを送信可能な電子メールクライアントソフトウェアである。そして、移行通知は、移行通知送信部によって、提供者端末装置20に送信される。
移行通知を受け取った提供者端末装置20は、移行通知に記載されている移行元となるウォレットアドレスに対するイーサリアムの送金を行う。
この場合、提供者端末装置20は、図4(b)の処理部に加え、移行通知を受信するための移行通知受信部と、利用者のウォレットに仮想通貨(イーサリアム)を付与するトランザクションを作成、公開する処理を行う送金部を備える。
移行通知が電子メールによって送信される場合、移行通知受信部もまた、電子メールを受信可能な電子メールクライアントソフトウェアである。
図3(b)に示したライセンス移行処理部53は、移行元利用者のウォレットを確認し、提供者端末装置20からのイーサリアムが入金されたか否かを確認する。
ライセンス移行処理部53は、入金を確認すると、以下に説明するライセンス移行処理を実行する。
また、提供者端末装置20からの移行通知の送信は、ライセンスを移行するためのスマートコントラクトを実行後に行っても良い。
A license transfer procedure in the system according to the present embodiment will be described.
A user having a license can transfer a license token to another user by performing authentication using the private key of his or her own wallet.
That is, the user can execute a smart contract for transferring a license to an arbitrary wallet.
The execution of a smart contract in Ethereum requires a fee called gas, but it is also possible to automatically grant Ethereum to the user's wallet so that the user does not need to purchase Ethereum. It is possible.
For example, prior to the license transfer, one user transmits a transfer notification indicating that the license is transferred to another user to the provider terminal device 20.
This transfer notification includes at least the wallet address of the transfer source user and the wallet address of the transfer destination user.
In this case, the user terminal device 10 includes a transfer notification transmitting unit that transmits a transfer notification, in addition to the processing unit in FIG. The transfer notification transmitting unit is, for example, e-mail client software capable of transmitting an e-mail. Then, the transfer notification is transmitted to the provider terminal device 20 by the transfer notification transmitting unit.
The provider terminal device 20 that has received the transfer notification performs the remittance of Ethereum to the transfer source wallet address described in the transfer notification.
In this case, the provider terminal device 20 creates a transfer notification receiving unit for receiving a transfer notification and a transaction for adding virtual currency (Ethereum) to the user's wallet, in addition to the processing unit of FIG. , And a remittance unit that performs a process of making the information public.
When the transfer notification is sent by e-mail, the transfer notification receiving unit is also e-mail client software capable of receiving the e-mail.
The license transfer processing unit 53 shown in FIG. 3B checks the wallet of the transfer source user, and checks whether or not the Ethereum from the provider terminal device 20 has been received.
Upon confirming the payment, the license transfer processing unit 53 executes a license transfer process described below.
The transmission of the transfer notification from the provider terminal device 20 may be performed 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 transfer destination user's wallet.
The transfer transaction includes at least an electronic signature based on the secret key of the wallet of the transfer source user who uses the user terminal device, and a wallet address of the transfer destination user.
In step S302, the CPU 41 (license transfer processing unit 53) discloses the transfer transaction created in step S301 to the blockchain network.
Thereby, the smart contract for transferring the token is executed on the blockchain, and the transfer of the license is realized.
Note 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. It may be performed in response to the fact that the provider terminal device 20 discovers the fact.
In this case, the provider terminal device 20 includes, in addition to the processing unit of FIG. 4B, a blockchain monitoring unit that constantly monitors the blockchain, and a process of creating and publishing a transaction for providing a user with virtual currency (Ethereum). A remittance unit that performs
When the blockchain monitoring unit monitoring the blockchain finds a transfer transaction for license transfer, the remittance unit performs a process of remitting Ethereum to the wallet of the user who published the transfer transaction.

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

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

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

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

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 unit, 73 Smart contract processing unit

Claims (12)

第1の装置と、第2の装置と、を備え、
前記第1の装置は、
入力されたデータの暗号化処理を行って暗号化データを出力する暗号化処理部と、
前記第2の装置の利用者に対して前記データに係るライセンスの付与を行い、当該ライセンスの付与に係るライセンス情報をブロックチェーンネットワークに送出するライセンス付与処理部と、を備え、
前記第2の装置は、
前記暗号化データの利用時に、ブロックチェーン上に記録された前記ライセンス情報に基づく認証を行うライセンス認証処理部と、
前記認証が成功した場合に前記暗号化データに対する復号処理を行う復号処理部と、
を備えることを特徴とする情報処理システム。
Comprising a first device and a second device,
The first device comprises:
An encryption processing unit that performs encryption processing of input data and outputs encrypted data;
A license grant processing unit that grants a license related to the data to a user of the second device, and sends license information related to the grant of the license to a blockchain network.
The second device comprises:
When using the encrypted data, a license authentication processing unit that performs authentication based on the license information recorded on the blockchain,
A decryption processing unit that performs decryption processing on the encrypted data when the authentication is successful,
An information processing system comprising:
請求項1に記載の情報処理システムにおいて、
前記暗号化データは、当該暗号化データを特定するために作成された第1の仮想通貨ウォレットアドレスを含むことを特徴とすることを特徴とする情報処理システム。
The information processing system according to claim 1,
The information processing system according to claim 1, wherein the encrypted data includes a first virtual currency wallet address created for identifying the encrypted data.
請求項1又は2に記載の情報処理システムにおいて、
前記ライセンス付与処理部は、前記利用者に係る第2の仮想通貨ウォレットアドレスと、前記第1の仮想通貨ウォレットアドレスと、に基づくライセンス情報を前記ブロックチェーンネットワークに送出することを特徴とする情報処理システム。
The information processing system according to claim 1 or 2,
The information processing apparatus according to claim 1, wherein the license granting unit sends license information based on a second virtual currency wallet address of the user and the first virtual currency wallet address to the blockchain network. system.
請求項1又は2に記載の情報処理システムにおいて、
前記ライセンス付与処理部は、前記利用者に係る第2の仮想通貨ウォレットアドレスと、前記第1の仮想通貨ウォレットアドレスと、前記第2の装置に係る固有情報と、に基づくライセンス情報を前記ブロックチェーンネットワークに送出することを特徴とする情報処理システム。
The information processing system according to claim 1 or 2,
The license grant processing unit is configured to convert license information based on a second virtual currency wallet address of the user, the first virtual currency wallet address, and unique information of the second device into the block chain. An information processing system for transmitting to a network.
請求項1乃至4の何れか一項に記載の情報処理システムにおいて、
前記ライセンス認証処理部は、前記認証時に、ブロックチェーンを記憶する外部装置に対する問い合わせを行い、
前記暗号化処理部は、前記データの暗号化時に、前記ライセンス認証処理部が利用可能な外部装置の接続先リストを前記暗号化データに含めることを特徴とする情報処理システム。
The information processing system according to any one of claims 1 to 4,
The license authentication processing unit makes an inquiry to an external device that stores a block chain at the time of the authentication,
The information processing system according to claim 1, wherein the encryption processing unit includes a connection destination list of an external device that can be used by the license authentication processing unit in the encrypted data when encrypting the data.
請求項1乃至5の何れか一項に記載の情報処理システムにおいて、
前記第2の装置は、前記利用者から他の利用者に前記ライセンスを移行するための移行情報を前記ブロックチェーンネットワークに公開することにより前記ライセンスの移行を行うライセンス移行処理部を備えることを特徴とする情報処理システム。
The information processing system according to any one of claims 1 to 5,
The second device includes a license transfer processing unit that transfers the license by exposing transfer information for transferring the license from the user to another user on the blockchain network. Information processing system.
請求項6に記載の情報処理システムにおいて、
前記第2の装置は、前記ライセンスの移行を行うことを通知する移行通知を前記第1の装置に送信する移行通知送信処理部をさらに備え、
前記第1の装置は、前記移行通知に基づいて、前記利用者に仮想通貨を送金する処理を行う送金部をさらに備えることを特徴とする情報処理システム。
The information processing system according to claim 6,
The second device further includes a transfer notification transmission processing unit that transmits a transfer notification notifying that the license transfer is performed to the first device,
The information processing system according to claim 1, wherein the first device further includes a remittance unit that performs a process of remitting virtual currency to the user based on the transfer notification.
入力されたデータの暗号化処理を行って暗号化データを出力する暗号化処理部と、
他の装置の利用者に対して前記データに係るライセンスの付与を行い、当該ライセンスの付与に係るライセンス情報をブロックチェーンネットワークにする送出するライセンス付与処理部と、を備えることを特徴とする情報処理装置。
An encryption processing unit that performs encryption processing of input data and outputs encrypted data;
A license grant processing unit for granting a license related to the data to a user of another device, and sending out license information related to the grant of the license to a blockchain network. apparatus.
暗号化されたデータの利用時に、ブロックチェーン上に記憶されたライセンス情報に基づいて認証を行うライセンス認証処理部と、
前記認証が成功した場合に前記暗号化データに対する復号処理を行う復号処理部と、
を備えることを特徴とする情報処理装置。
A license authentication processing unit that performs authentication based on license information stored on the blockchain when using the encrypted data;
A decryption processing unit that performs decryption processing on the encrypted data when the authentication is successful,
An information processing apparatus comprising:
データに対する暗号化処理を行い、暗号化データを生成する暗号化処理部と、
前記暗号化データの利用時に当該暗号化データのライセンス情報をブロックチェーンネットワークに問い合わせるコードを、前記暗号化処理時に前記暗号化データに付加する付加部と、
を備えることを特徴とする情報処理装置。
An encryption processing unit that performs encryption processing on data and generates encrypted data;
An adding unit that adds a code for inquiring the blockchain network of the license information of the encrypted data when using the encrypted data to the encrypted data at the time of the encryption processing;
An information processing apparatus comprising:
コンピュータによって実行される情報処理方法であって、
データに対する暗号化処理を行い、暗号化データを生成し、
前記暗号化データの利用時に当該暗号化データのライセンス情報をブロックチェーンネットワークに問い合わせるコードを、前記暗号化処理時に前記暗号化データに付加する
ことを特徴とする情報処理方法。
An information processing method executed by a computer, comprising:
Performs encryption processing on the data, generates encrypted data,
An information processing method, wherein a code for inquiring a blockchain network about license information of the encrypted data when using the encrypted data is added to the encrypted data at the time of the encryption processing.
データに対する暗号化処理を行い、暗号化データを生成し、
前記暗号化データの利用時に当該暗号化データのライセンス情報をブロックチェーンネットワークに問い合わせるコードを、前記暗号化処理時に前記暗号化データに付加する
処理をコンピュータに実行させることを特徴とする情報処理プログラム。
Performs encryption processing on the data, generates encrypted data,
An information processing program for causing a computer to execute a process of adding a code for inquiring a blockchain network about license information of the encrypted data to the encrypted data at the time of using the encrypted data at the time of the encryption process.
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 true JP2020030454A (en) 2020-02-27
JP7053031B2 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)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021106507A1 (en) * 2019-11-27 2021-06-03 株式会社Artrigger Program, and information processing method
WO2021172149A1 (en) 2020-02-26 2021-09-02 株式会社Nttドコモ Terminal, wireless communication method, and base station
JP7312484B2 (en) 2021-10-28 2023-07-21 ウン チャ、ギョン Software multi-ownership account management method
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

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021106507A1 (en) * 2019-11-27 2021-06-03 株式会社Artrigger Program, and information processing method
JP2021086365A (en) * 2019-11-27 2021-06-03 株式会社Artrigger Program and information processing method
WO2021172149A1 (en) 2020-02-26 2021-09-02 株式会社Nttドコモ Terminal, wireless communication method, and base station
JP7312484B2 (en) 2021-10-28 2023-07-21 ウン チャ、ギョン Software multi-ownership account management method
WO2024009982A1 (en) * 2022-07-07 2024-01-11 Sushi Top Marketing株式会社 Information processing device, information processing system, and information processing method

Also Published As

Publication number Publication date
JP7053031B2 (en) 2022-04-12

Similar Documents

Publication Publication Date Title
TWI748387B (en) System and method for verifying verifiable claims
CN109144961B (en) Authorization file sharing method and device
CN107770115B (en) Method and system for distributing digital content in a peer-to-peer network
JP6877448B2 (en) Methods and systems for guaranteeing computer software using distributed hash tables and blockchain
CN110620810B (en) Non-linked ownership of continuous asset transfer over blockchain
CN107967416B (en) Copyright right-maintaining detection method, device and system
CN109961292B (en) Block chain verification code application method, equipment and storage medium
Ullah et al. Towards blockchain-based secure storage and trusted data sharing scheme for IoT environment
CN109697365B (en) Information processing method, block chain node and electronic equipment
JP2021502023A (en) Data sharing methods, clients, servers, computing devices, and storage media
US10382205B1 (en) Security system and method for using a blockchain service through privacy-aware blockchain arbitration server
JP7053031B2 (en) Information processing system, information processing device, information processing method and information processing program
JP2019512778A (en) Copyright management method and system
CN111541727A (en) Block chain all-in-one machine and automatic chain building method and device thereof
JP6543743B1 (en) Management program
KR20190089506A (en) System and method for e-contract with shared and distributed ledger coupled with outer storage devices
JP4525609B2 (en) Authority management server, authority management method, authority management program
US11831636B2 (en) Systems and techniques for trans-account device key transfer in benefit denial system
KR102359826B1 (en) Digital property code management system based on blockchain and method thereof
KR102098803B1 (en) Security Management System using Block Chain Technology and Method thereof
KR20210064675A (en) Security system for data trading and data storage based on block chain and method therefor
JP2023551458A (en) Key regeneration in blockchain networks via OPRF
JP7457406B2 (en) virtual currency system
JP7311745B2 (en) Administrator Terminal, Participant Terminal, Right Holder Terminal, User Terminal, Contents Usage System, Administrator Program, Participant Program, Right Holder Program and User Program
US11856085B2 (en) Information management system and method for the same

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