KR101978185B1 - Method for managing license of software based on blockchain, and license management server using the same - Google Patents

Method for managing license of software based on blockchain, and license management server using the same Download PDF

Info

Publication number
KR101978185B1
KR101978185B1 KR1020170138692A KR20170138692A KR101978185B1 KR 101978185 B1 KR101978185 B1 KR 101978185B1 KR 1020170138692 A KR1020170138692 A KR 1020170138692A KR 20170138692 A KR20170138692 A KR 20170138692A KR 101978185 B1 KR101978185 B1 KR 101978185B1
Authority
KR
South Korea
Prior art keywords
license
software
identification value
value
information
Prior art date
Application number
KR1020170138692A
Other languages
Korean (ko)
Other versions
KR20190045754A (en
Inventor
정정용
김의석
이진우
임현석
윤인철
송주한
나승일
전영배
김정소
이준섭
Original Assignee
한국조폐공사
주식회사 코인플러그
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 한국조폐공사, 주식회사 코인플러그 filed Critical 한국조폐공사
Priority to KR1020170138692A priority Critical patent/KR101978185B1/en
Publication of KR20190045754A publication Critical patent/KR20190045754A/en
Application granted granted Critical
Publication of KR101978185B1 publication Critical patent/KR101978185B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/105Arrangements for software license management or administration, e.g. for managing licenses at corporate level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • G06F21/125Restricting unauthorised execution of programs by manipulating the program code, e.g. source code, compiled code, interpreted code, machine code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates

Abstract

본 발명은 라이센스 발급 요청 트랜잭션에 대응하여 라이센스 발급 스마트 컨트렉트를 실행하여 소프트웨어 식별값에 대응하는 라이센스 식별값을 생성하며, 라이센스 식별값을 포함하는 라이센스 발급 정보를 소프트웨어 제공자 단말로 전송하여 라이센스 식별값을 소프트웨어 식별값과 매칭하여 관리하도록 하고, 라이센스 발급 정보를 블록체인 데이터베이스에 등록하며, 라이센스 식별값과 이에 대응되는 라이센스 상태 정보를 상태 데이터베이스에 등록하는 블록체인 기반의 소프트웨어 라이센스 관리 방법 및 이를 이용한 라이센스 관리 서버에 관한 것이다.The present invention executes a license issuance smart contract in response to a license issuance request transaction to generate a license identification value corresponding to a software identification value, and transmits license issuance information including the license identification value to a software provider terminal for license identification. A blockchain-based software license management method for registering a license issuance information in a blockchain database, registering license issuance information in a blockchain database, and registering the license identification value and corresponding license status information in a state database, and using the same. A license management server.

Figure R1020170138692
Figure R1020170138692

Description

블록체인 기반의 소프트웨어 라이센스 관리 방법 및 이를 이용한 라이센스 관리 서버{METHOD FOR MANAGING LICENSE OF SOFTWARE BASED ON BLOCKCHAIN, AND LICENSE MANAGEMENT SERVER USING THE SAME}TECHNICAL FOR MANAGING LICENSE OF SOFTWARE BASED ON BLOCKCHAIN, AND LICENSE MANAGEMENT SERVER USING THE SAME}

본 발명은 블록체인 기반의 소프트웨어 라이센스 관리 방법 및 이를 이용한 라이센스 관리 서버에 관한 것으로, 보다 상세하게는, 라이센스 발급 요청 트랜잭션에 대응하여 라이센스 발급 스마트 컨트렉트를 실행하여 소프트웨어 식별값에 대응하는 라이센스 식별값을 생성하며, 라이센스 식별값을 포함하는 라이센스 발급 정보를 소프트웨어 제공자 단말로 전송하여 라이센스 식별값을 소프트웨어 식별값과 매칭하여 관리하도록 하고, 라이센스 발급 정보를 블록체인 데이터베이스에 등록하며, 라이센스 식별값과 이에 대응되는 라이센스 상태 정보를 상태 데이터베이스에 등록하는 블록체인 기반의 소프트웨어 라이센스 관리 방법 및 이를 이용한 라이센스 관리 서버에 관한 것이다.The present invention relates to a blockchain-based software license management method and a license management server using the same, and more particularly, to identify a license corresponding to a software identification value by executing a license issuing smart contract in response to a license issuance request transaction. A value is generated, and license issuance information including the license identification value is transmitted to the software provider terminal so that the license identification value is managed by matching the software identification value, the license issuance information is registered in the blockchain database, and the license identification value and The present invention relates to a blockchain-based software license management method for registering license status information corresponding thereto in a state database and a license management server using the same.

일반적으로 소프트웨어는 만들기는 어려운 반면, 카피하기는 쉽다. 좋은 소프트웨어 애플리케이션을 만드는 것은 종종 수백 또는 수천 시간이 걸릴 수도 있지만, 일반 컴퓨터를 갖고 있는 비도덕적인 사용자들은 때때로 그 동일한 작업 제품을 수초내에 카피할 수 있다.In general, software is difficult to create, while copying is easy. Creating a good software application can often take hundreds or thousands of hours, but immoral users with regular computers can sometimes copy the same work product in seconds.

따라서, 소프트웨어 개발사에서는 소프트웨어의 라이센스를 관리하기 위한 기법을 적용하고 있으나 일부 해커들이 해당 라이센스를 무력화시킨 설치 또는 실행 소프트웨어가 배포하여 불법적으로 설치사용이 가능하도록 하고 있다.Therefore, the software developer applies a technique for managing the license of the software, but some hackers distribute illegally installed or executed software to enable illegal installation.

특히, 라이선스를 획득한 소프트웨어를 라이센스에 대한 권한이 없는 제3자가 사용하는 경우에는 이를 확인하고 제재할 수 있는 방법이 없다.In particular, there is no way to verify and sanction the licensed software if it is used by a third party who is not authorized to license it.

본 발명은 상술한 문제점들을 모두 해결하는 것을 그 목적으로 한다.The present invention aims to solve all the above-mentioned problems.

또한, 본 발명은 권한없는 자가 소프트웨어 라이센스를 임의로 사용하는 것을 방지할 수 있도록 하는 것을 또 다른 목적으로 한다.It is another object of the present invention to prevent an unauthorized person from using the software license arbitrarily.

또한, 본 발명은 발급된 소프트웨어 라이센스는 권한자에 의하여 만들어지고 권한이 있는 사용자가 사용하고 있음을 확인할 수 있도록 하는 것을 또 다른 목적으로 한다.It is another object of the present invention to make sure that the issued software license is made by an authorized user and used by an authorized user.

또한, 본 발명은 소프트웨어 라이센스의 무결성을 검증할 수 있도록 하여 라이센스의 위변조가 이루어지지 않았다는 점을 보장하는 것을 또 다른 목적으로 한다.It is another object of the present invention to ensure that the integrity of the software license can be verified to ensure that the forgery of the license has not been made.

상기 목적을 달성하기 위한 본 발명의 대표적인 구성은 다음과 같다.Representative configuration of the present invention for achieving the above object is as follows.

본 발명의 일 실시예에 따르면, 블록체인 기반의 소프트웨어 라이센스를 관리하는 방법에 있어서, (a) 소프트웨어 제공자 단말로부터 소프트웨어에 대한 라이센스 발급 요청 트랜잭션이 획득되면, 라이센스 관리 서버가, 상기 라이센스 발급 요청 트랜잭션의 유효 여부를 확인하여 유효일 경우, 라이센스 발급 스마트 컨트렉트 - 상기 라이센스 발급 스마트 컨트렉트는 실행 가능한 바이트 코드로 컴파일되어 적어도 하나의 컴퓨팅 장치 상에서 실행될 수 있는 소스 코드이고, 상기 소프트웨어에 대한 식별값인 소프트웨어 식별값에 대응하는 라이센스를 발급하여 주기 위하여 미리 정해진 절차를 수행하도록 구성된 것임 - 를 실행하는 단계; 및 (b) 상기 라이센스 관리 서버가, 상기 라이센스 발급 스마트 컨트렉트에 의해 상기 소프트웨어 식별값에 대응하는 라이센스 식별값이 생성되면, 상기 라이센스 식별값을 포함하는 라이센스 발급 정보를 상기 소프트웨어 제공자 단말로 전송하거나 상기 라이센스 관리 서버에 연동되는 타 장치로 하여금 상기 라이센스 발급 정보를 상기 소프트웨어 제공자 단말로 전송하도록 지원함으로써 상기 소프트웨어 제공자 단말로 하여금 상기 라이센스 식별값을 상기 소프트웨어 식별값과 매칭하여 관리하도록 하고, 상기 라이센스 발급 정보를 블록체인 데이터베이스에 등록하거나 상기 라이센스 관리 서버에 연동되는 타 장치로 하여금 상기 라이센스 발급 정보를 블록체인 데이터베이스에 등록하도록 지원하며, 상기 라이센스 식별값과 이에 대응되는 라이센스 상태 정보를 상태 데이터베이스에 등록하는 단계; 를 포함하는 방법이 제공된다.According to an embodiment of the present invention, in a method for managing a blockchain-based software license, (a) when a license issuance request transaction for software is obtained from a software provider terminal, a license management server requests the license issuance request transaction. Is valid by checking whether the license is valid, the license issuing smart contract is source code that can be compiled into executable bytecode and executed on at least one computing device, and is an identification value for the software. Executing a predetermined procedure to issue a license corresponding to the software identification value; And (b) when the license management server generates a license identification value corresponding to the software identification value by the license issuance smart contract, transmits license issuance information including the license identification value to the software provider terminal. Or by allowing another device linked to the license management server to transmit the license issuance information to the software provider terminal, allowing the software provider terminal to manage the license identification value by matching the software identification value, and the license Register the issuing information in the blockchain database or allow other devices linked to the license management server to register the license issuing information in the blockchain database. Steps to register a sense of status information to the state database; There is provided a method comprising a.

또한, 본 발명의 일 실시예에 따르면, 블록체인 기반의 소프트웨어 라이센스를 관리하는 방법에 있어서, (a) 라이센스 관리 서버가 소프트웨어 제공자 단말로부터의 소프트웨어에 대한 라이센스 발급 요청에 대응하여 라이센스 발급 스마트 컨트렉트에 의해 소프트웨어 식별값에 대응하는 라이센스 식별값을 생성하여 주며, 상기 라이센스 식별값과 이에 대응되는 라이센스 상태 정보를 상태 데이터베이스에 등록한 상태에서, 상기 소프트웨어 제공자 단말로부터 상기 소프트웨어에 대한 라이센스 활성화 요청 트랜잭션 - 상기 라이센스 활성화 요청 트랜잭션은 상기 소프트웨어 식별값, 상기 라이센스 식별값, 상기 소프트웨어에 의해 생성된 퍼블릭키, 및 상기 라이센스 식별값을 상기 소프트웨어에 의해 생성된 프라이빗키로 서명한 라이센스 서명값을 포함함 - 이 획득되면, 상기 라이센스 관리 서버가, 상기 라이센스 활성화 요청 트랜잭션의 유효 여부를 확인하여 유효일 경우, 라이센스 활성화 스마트 컨트렉트 - 상기 라이센스 활성화 스마트 컨트렉트는 실행 가능한 바이트 코드로 컴파일되어 적어도 하나의 컴퓨팅 장치 상에서 실행될 수 있는 소스 코드이고, 상기 라이센스 식별값에 대응하는 상기 소프트웨어의 라이센스를 활성화하기 위하여 미리 정해진 절차를 수행하도록 구성된 것임 - 를 실행하는 단계; 및 (b) 상기 라이센스 관리 서버가, 상기 라이센스 활성화 스마트 컨트렉트에 의해 상기 활성화 요청 트랜잭션에 포함된 상기 퍼블릭키와 상기 라이센스 서명값을 검증하고 검증이 완료되면 상기 라이센스를 활성화시키기 위한 활성화 코드를 생성하며, 상기 활성화 코드를 포함하는 라이센스 활성화 정보를 상기 소프트웨어 제공자 단말로 전송하거나 상기 라이센스 관리 서버에 연동되는 타 장치로 하여금 상기 라이센스 활성화 정보를 상기 소프트웨어 제공자 단말로 전송하도록 지원함으로써 상기 소프트웨어 제공자 단말로 하여금 상기 라이센스 활성화 코드를 이용하여 상기 라이센스 식별값에 대응되는 상기 소프트웨어의 라이센스를 활성화시키도록 하고, 상기 라이센스 활성화 정보를 블록체인 데이터베이스에 등록하거나 상기 라이센스 관리 서버에 연동되는 타 장치로 하여금 상기 라이센스 활성화 정보를 블록체인 데이터베이스에 등록하도록 지원하며, 상기 상태 데이터베이스에 등록된 상기 라이센스 식별값에 대응되는 라이센스 상태 정보를 상기 라이센스 활성화 정보를 참조하여 업데이트하는 단계; 를 포함하는 방법이 제공된다..In addition, according to an embodiment of the present invention, in a method for managing a blockchain-based software license, (a) the license management server in response to a license issuance request for software from a software provider terminal, the license issuance smart contract Generates a license identification value corresponding to the software identification value by using a server, and registers the license identification value and corresponding license status information in a state database, and requests a license activation request transaction for the software from the software provider terminal. The license activation request transaction includes a license signature value by signing the software identification value, the license identification value, the public key generated by the software, and the license identification value with a private key generated by the software. Includes-if is obtained, the license management server checks whether the license activation request transaction is valid, and if so, a license activation smart contract-the license activation smart contract is compiled into executable bytecode and at least one Source code that can be executed on a computing device of the computer, and configured to perform a predetermined procedure to activate a license of the software corresponding to the license identification value; And (b) the license management server verifies the public key and the license signature value included in the activation request transaction by the license activation smart contract, and activates the license to activate the license when verification is completed. Generating the license activation information including the activation code to the software provider terminal or by supporting another device linked to the license management server to transmit the license activation information to the software provider terminal. Enable the license activation code to activate a license of the software corresponding to the license identification value, and register the license activation information in a blockchain database or manage the license. Supporting other devices linked to a server to register the license activation information in a blockchain database, and updating license status information corresponding to the license identification value registered in the state database with reference to the license activation information; Provided is a method comprising a.

또한, 본 발명의 일 실시예에 따르면, 블록체인 기반의 소프트웨어 라이센스를 관리하는 방법에 있어서, (a) 라이센스 관리 서버가 소프트웨어 제공자 단말로부터의 소프트웨어에 대한 라이센스 발급 요청에 대응하여 라이센스 발급 스마트 컨트렉트에 의해 소프트웨어 식별값에 대응하는 라이센스 식별값을 생성하여 주며, 상기 라이센스 식별값과 이에 대응되는 라이센스 상태 정보를 상태 데이터베이스에 등록하고, 상기 소프트웨어에 대한 라이센스 활성화 요청 트랜잭션에 대응하여 라이센스 활성화 스마트 컨트렉트에 의해 상기 라이센스를 활성화시키기 위한 활성화 코드를 생성하여 주며, 라이센스 활성화 정보를 참조하여 상기 상태 데이터베이스의 상기 라이센스 상태 정보를 업데이트한 상태에서, 상기 소프트웨어 제공자 단말에서 제공된 상기 소프트웨어에 의해 상기 라이센스 식별값과 상기 라이센스 활성화 코드를 포함하는 라이센스 유효성 확인 요청 트랜잭션이 생성되어 상기 소프트웨어 제공자 단말을 통해 전송되면, 상기 라이센스 관리 서버가, 상기 라이센스 유효성 확인 요청 트랜잭션의 유효 여부를 확인하여 유효일 경우, 라이센스 유효성 확인 스마트 컨트렉트 - 상기 라이센스 유효성 확인 스마트 컨트렉트는 실행 가능한 바이트 코드로 컴파일되어 적어도 하나의 컴퓨팅 장치 상에서 실행될 수 있는 소스 코드이고, 상기 라이센스 식별값에 대응하는 상기 소프트웨어의 라이센스에 대한 유효성을 확인하기 위하여 미리 정해진 절차를 수행하도록 구성된 것임 - 를 실행하는 단계; (b) 상기 라이센스 관리 서버가, 상기 라이센스 유효성 확인 스마트 컨트렉트에 의해 상기 라이센스 식별값에 대응하여 상기 상태 데이터베이스에 등록된 상기 라이센스 상태 정보로부터 상기 라이센스 식별값과 상기 라이센스 활성화 코드를 확인하여 라이센스의 상태를 확인하며, 상기 라이센스 식별값에 대응하는 라이센스 검증 식별값과 논스값을 생성하고 상기 라이센스 식별값에 대응되는 상기 상태 데이터베이스의 라이센스 검증 상태 정보에 상기 라이센스 검증 식별값과 상기 논스값을 등록하고, 상기 라이센스 검증 식별값과 논스값을 포함하는 서명 요청 트랜잭션을 생성하여 상기 소프트웨어 제공자 단말을 통해 상기 소프트웨어로 전송되도록 하는 단계; 및 (c) 상기 소프트웨어로부터의 상기 라이센스 검증 식별값과 프라이빗키로 상기 논스값을 서명한 서명값을 포함하는 서명 트랜잭션이 상기 소프트웨어 제공자 단말을 통해 획득되면, 상기 라이센스 관리 서버가, 상기 서명 트랜잭션이 유효한지를 확인하여 유효하면 상기 서명 트랜잭션에 대응하는 서명 검증 스마트 컨트렉트를 실행하여, 상기 서명값을 검증하고 그 결과 정보를 블록체인 데이터베이스에 등록하며, 상기 결과 정보를 상기 소프트웨어 제공자 단말을 통해 상기 소프트웨어로 전달함으로써 상기 소프트웨어가 상기 사용자 단말에서 실행되도록 하고, 상기 결과 정보를 참조하여 상기 상태 데이터베이스에 등록된 상기 라이센스 검증 식별값에 대응하는 라이센스 검증 상태 정보를 업데이트하는 단계; 를 포함하는 방법이 제공된다.In addition, according to an embodiment of the present invention, in a method for managing a blockchain-based software license, (a) the license management server in response to a license issuance request for software from a software provider terminal, the license issuance smart contract Generates a license identification value corresponding to the software identification value by registering the license identification value, registers the license identification value and corresponding license status information in a state database, and generates a license activation smart controller in response to a license activation request transaction for the software. Generates an activation code for activating the license by the contract, provided by the software provider terminal in the state of updating the license state information of the state database with reference to license activation information When a license validation request transaction including the license identification value and the license activation code is generated by the existing software and transmitted through the software provider terminal, the license management server checks whether the license validation request transaction is valid. License validation smart contract, wherein the license validation smart contract is source code that can be compiled into executable bytecode and executed on at least one computing device, and corresponds to the license identification value. Executing a predetermined procedure to verify validity of a license; (b) The license management server checks the license identification value and the license activation code from the license status information registered in the state database in correspondence with the license identification value by the license validation smart contract, and licenses the license. Confirm the status of the license identification value, generate a license verification identification value and a nonce value corresponding to the license identification value, and register the license verification identification value and the nonce value in license verification status information of the state database corresponding to the license identification value. Generating a signature request transaction including the license verification identification value and the nonce value and transmitting the signature request transaction to the software through the software provider terminal; And (c) if a signature transaction including the license verification identification value from the software and a signature value signing the nonce value with a private key is obtained through the software provider terminal, the license management server determines that the signature transaction is valid. Verify the signature value and execute a signature verification smart contract corresponding to the signature transaction, verifying the signature value and registering the result information in the blockchain database, and registering the result information through the software provider terminal. Updating the license verification status information corresponding to the license verification identification value registered in the status database with reference to the result information by causing the software to be executed in the user terminal by transferring the information to the license information; There is provided a method comprising a.

또한, 본 발명의 일 실시예에 따르면, 상기의 방법들을 수행하기 위한 라이센스 관리 서버가 제공된다.In addition, according to an embodiment of the present invention, there is provided a license management server for performing the above methods.

이 외에도, 본 발명의 방법을 실행하기 위한 컴퓨터 프로그램을 기록하기 위한 컴퓨터 판독 가능한 기록 매체가 더 제공된다.In addition to this, a computer readable recording medium for recording a computer program for executing the method of the present invention is further provided.

본 발명에 의하면, 다음과 같은 효과가 있다.According to the present invention, the following effects are obtained.

본 발명은 스마트 컨트렉트(smart contract)를 이용함으로써 소프트웨어의 라이센스와 관련한 권한이 엄격하게 관리되어 권한 없는 자가 임의로 소프트웨어를 사용하는 것을 방지할 수 있는 효과가 있다.The present invention has the effect that by using a smart contract (smart contract) is strictly managed rights related to the license of the software to prevent unauthorized use of the software.

다시 말하자면, 본 발명에 따르면 한번 발행된 소프트웨어의 라이센스는 권한자에 의하여 만들어지고 권한인 있는 사용자가 사용하고 있음을 확인시켜줄 수 있다.In other words, according to the present invention, a license of a software issued once can be confirmed by an authorized user and used by an authorized user.

또한, 본 발명에 의하면 소프트웨어의 라이센스에 대한 무결성이 검증됨으로써 라이센스의 위변조가 이루어지지 않았다는 점이 보장되는 효과가 있다.In addition, the present invention has the effect of ensuring that the forgery of the license is not made by verifying the integrity of the license of the software.

도 1은 본 발명의 일 실시예에 따라 소프트웨어 라이센스를 관리하는 라이센스 관리 서버를 개략적으로 도시한 것이고,
도 2는 본 발명의 일 실시예에 따라 소프트웨어 라이센스를 발급하는 방법을 개략적으로 도시한 것이고,
도 3은 본 발명의 일 실시예에 따라 소프트웨어 라이센스를 활성화하는 방법을 개략적으로 도시한 것이고,
도 4는 본 발명의 일 실시예에 따라 소프트웨어 라이센스의 유효성을 확인하는 방법을 개략적으로 도시한 것이고,
도 5와 도 6은 본 발명의 일 실시예에 따라 문서 관리와 관련한 정보를 다른 블록체인 데이터베이스 또는 퍼블릭 블록체인 데이터베이스에 등록하는 과정을 개략적으로 도시한 것이다.
1 schematically illustrates a license management server for managing software licenses according to an embodiment of the present invention.
2 schematically illustrates a method of issuing a software license according to an embodiment of the present invention.
3 schematically illustrates a method of activating a software license according to an embodiment of the present invention,
4 schematically illustrates a method for checking the validity of a software license according to an embodiment of the present invention.
5 and 6 schematically illustrate a process of registering information related to document management in another blockchain database or a public blockchain database according to an embodiment of the present invention.

후술하는 본 발명에 대한 상세한 설명은, 본 발명이 실시될 수 있는 특정 실시예를 예시로서 도시하는 첨부 도면을 참조한다. 이들 실시예는 당업자가 본 발명을 실시할 수 있기에 충분하도록 상세히 설명된다. 본 발명의 다양한 실시예는 서로 다르지만 상호 배타적일 필요는 없음이 이해되어야 한다. 예를 들어, 여기에 기재되어 있는 특정 형상, 구조 및 특성은 일 실시예에 관련하여 본 발명의 정신 및 범위를 벗어나지 않으면서 다른 실시예로 구현될 수 있다. 또한, 각각의 개시된 실시예 내의 개별 구성요소의 위치 또는 배치는 본 발명의 정신 및 범위를 벗어나지 않으면서 변경될 수 있음이 이해되어야 한다. 따라서, 후술하는 상세한 설명은 한정적인 의미로서 취하려는 것이 아니며, 본 발명의 범위는, 적절하게 설명된다면, 그 청구항들이 주장하는 것과 균등한 모든 범위와 더불어 첨부된 청구항에 의해서만 한정된다. 도면에서 유사한 참조부호는 여러 측면에 걸쳐서 동일하거나 유사한 기능을 지칭한다.DETAILED DESCRIPTION The following detailed description of the invention refers to the accompanying drawings that show, by way of illustration, specific embodiments in which the invention may be practiced. These embodiments are described in sufficient detail to enable those skilled in the art to practice the invention. It should be understood that the various embodiments of the present invention are different but need not be mutually exclusive. For example, certain shapes, structures, and characteristics described herein may be embodied in other embodiments without departing from the spirit and scope of the invention with respect to one embodiment. In addition, it is to be understood that the location or arrangement of individual components within each disclosed embodiment may be changed without departing from the spirit and scope of the invention. The following detailed description, therefore, is not to be taken in a limiting sense, and the scope of the present invention, if properly described, is defined only by the appended claims, along with the full range of equivalents to which such claims are entitled. Like reference numerals in the drawings refer to the same or similar functions throughout the several aspects.

이하, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있도록 하기 위하여, 본 발명의 바람직한 실시예들에 관하여 첨부된 도면을 참조하여 상세히 설명하기로 한다.Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings so that those skilled in the art can easily implement the present invention.

도 1은 본 발명의 일 실시예에 따라 블록체인 기반의 소프트웨어 라이센스를 관리하는 라이센스 관리 서버를 개략으로 도시한 것이고, 라이센스 관리 서버(300)는 통신부(310)와 프로세서(320)를 포함할 수 있다. 동일한 참조 부호를 이용하여 나타낸 것은 설명의 편의를 위한 것일 뿐, 이들 개별 장치들이 동일하다는 의미로 의도된 것은 아니다. 그리고, 본 발명의 다른 실시예에서의 방법은 서버를 상이하게 구성하여 해당 방법을 수행하거나 동일한 서버(300)를 통해 해당 방법을 수행할 수도 있다.FIG. 1 schematically illustrates a license management server managing a blockchain based software license according to an embodiment of the present invention, and the license management server 300 may include a communication unit 310 and a processor 320. have. The same reference numerals are used for the convenience of description and are not intended to mean that these individual devices are the same. In another embodiment of the present invention, the server may be configured differently to perform the method, or the method may be performed through the same server 300.

또한, 라이센스 관리 서버(300)는 소프트웨어 라이센스 관리와 관련하여 각각 기능을 수행하는 다수의 서버로 구성될 수 있다. 또한, 라이센스 관리 서버(300)는 블록체인 데이터베이스의 각각의 노드에 대응되는 서버이거나, 블록체인 데이터베이스의 각각의 노드를 관리하는 서버일 수 있다. 이에 더하여, 라이센스 관리 서버(300)는 상태 데이터베이스와의 통신을 통해 소프트웨어 라이센스의 상태 정보를 관리할 수 있다. 그리고, 블록체인 데이터베이스는 제1 블록체인 데이터베이스와 제2 블록체인 데이터베이스로 구성될 수 있다. 이때, 제1 블록체인 데이터베이스는 프라이빗 블록체인 데이터베이스로 구성될 수 있으며, 제2 블록체인 데이터베이스는 프라이빗 블록체인 데이터베이스 또는 퍼블릭 블록체인 데이터베이스로 구성될 수 있다.In addition, the license management server 300 may be composed of a plurality of servers each performing a function related to software license management. In addition, the license management server 300 may be a server corresponding to each node of the blockchain database, or may be a server managing each node of the blockchain database. In addition, the license management server 300 may manage state information of the software license through communication with the state database. The blockchain database may be composed of a first blockchain database and a second blockchain database. In this case, the first blockchain database may be configured as a private blockchain database, and the second blockchain database may be configured as a private blockchain database or a public blockchain database.

구체적으로, 라이센스 관리 서버(300)는 전형적으로 컴퓨팅 장치(예컨대, 컴퓨터 프로세서, 메모리, 스토리지, 입력 장치 및 출력 장치, 기타 기존의 컴퓨팅 장치의 구성요소들을 포함할 수 있는 장치; 라우터, 스위치 등과 같은 전자 통신 장치; 네트워크 부착 스토리지(NAS) 및 스토리지 영역 네트워크(SAN)와 같은 전자 정보 스토리지 시스템)와 컴퓨터 소프트웨어(즉, 컴퓨팅 장치로 하여금 특정의 방식으로 기능하게 하는 인스트럭션들)의 조합을 이용하여 원하는 시스템 성능을 달성하는 것일 수 있다.Specifically, license management server 300 is typically a computing device (eg, a device that may include components of a computer processor, memory, storage, input and output devices, other conventional computing devices; routers, switches, etc.). Electronic communication devices; electronic information storage systems such as network attached storage (NAS) and storage area network (SAN) and computer software (i.e., instructions that cause a computing device to function in a particular manner). It may be to achieve system performance.

이와 같은 컴퓨팅 장치의 통신부(310)는 연동되는 타 컴퓨팅 장치와 요청과 응답을 송수신할 수 있는바, 일 예시로서 그러한 요청과 응답은 동일한 TCP 세션에 의하여 이루어질 수 있지만, 이에 한정되지는 않는바, 예컨대 UDP 데이터그램으로서 송수신될 수도 있을 것이다.The communication unit 310 of such a computing device may transmit and receive a request and a response with another computing device to be interlocked. For example, the request and response may be made by the same TCP session, but are not limited thereto. For example, it may be transmitted and received as a UDP datagram.

또한, 컴퓨팅 장치의 프로세서(320)는 MPU(Micro Processing Unit) 또는 CPU(Central Processing Unit), 캐쉬 메모리(Cache Memory), 데이터 버스(Data Bus) 등의 하드웨어 구성을 포함할 수 있다. 또한, 운영체제, 특정 목적을 수행하는 애플리케이션의 소프트웨어 구성을 더 포함할 수도 있다.In addition, the processor 320 of the computing device may include a hardware configuration such as a micro processing unit (MPU) or a central processing unit (CPU), a cache memory, a data bus, and the like. In addition, the operating system may further include a software configuration of an application performing a specific purpose.

먼저, 도 2를 참조하여 본 발명의 일 실시예에 따른 소프트웨어 라이센스를 발급하는 방법을 도 1의 라이센스 관리 서버(300)를 통해 설명하면 다음과 같다.First, a method of issuing a software license according to an embodiment of the present invention will be described with reference to FIG. 2 through the license management server 300 of FIG. 1.

소프트웨어 등록자가 등록자 단말을 통해 해당 소프트웨어가 등록되어 배포되는 소프트웨어 제공자 단말(200)로 자신이 등록한 소프트웨어에 대한 라이센스 발급을 요청하면, 소프트웨어 제공자 단말(200)은 소프트웨어 등록자에 의해 요청된 라이센스를 발급하기 위한 라이센스 발급 요청 트랜잭션을 라이센스 관리 서버(300)로 전송하여 준다(S11). 이때, 라이센스 발급 요청 트랜잭션은 라이센스를 발급받고자 하는 소프트웨어에 대한 정보인 소프트웨어 식별값을 포함할 수 있으나, 이에 한정되지 않으며, 소프트웨어 등록자의 퍼블릭키, 소프트웨어 등록자의 프라이빗키를 이용한 서명값 등을 포함할 수 있다.When the software registrant requests a license for the software registered by the software provider terminal 200 through which the corresponding software is registered and distributed, the software provider terminal 200 issues a license requested by the software registrant. The license issuance request transaction is transmitted to the license management server 300 (S11). In this case, the license issuance request transaction may include a software identification value, which is information about the software to be licensed, but is not limited thereto, and may include a signature value using a software registrant's public key and a software registrant's private key. Can be.

그러면, 라이센스 관리 서버(300)의 통신부(310)는 소프트웨어 제공자 단말(200)로부터 전송되는 라이센스 발급 요청 트랜잭션을 획득하며, 라이센스 관리 서버(300)의 프로세서(320)는 통신부(310)에서 획득된 라이센스 발급 요청 트랜잭션의 유효성을 검증한다(S12).Then, the communication unit 310 of the license management server 300 obtains a license issuance request transaction transmitted from the software provider terminal 200, and the processor 320 of the license management server 300 is obtained from the communication unit 310. Validate the license issuance request transaction (S12).

일 예로, 라이센스 관리 서버(300)는 획득된 라이센스 발급 요청 트랜잭션에 대한 포맷 형식의 유효 여부를 확인할 수 있다. 또한, 라이센스 관리 서버(300)는 획득된 라이센스 발급 요청 트랜잭션으로부터 서명값을 확인함으로써 라이센스 발급 요청 트랜잭션의 유효 여부를 확인할 수 있다. 즉, 라이센스 발급 요청 트랜잭션의 서명값이 소프트웨어 등록자의 프라이빗키를 이용하여 발급받고자 하는 소프트웨어에 대한 소프트웨어 식별값을 서명한 것일 경우, 라이센스 관리 서버(300)는 소프트웨어 등록자의 퍼블릭키를 이용하여 라이센스 발급 요청 트랜잭션의 서명값을 확인하여 서명된 소프트웨어 식별값을 확인하며, 서명값으로부터 확인한 소프트웨어 식별값이 라이센스 발급 요청 트랜잭션에 포함된 소프트웨어 식별값과 일치하는 지를 확인하여 라이센스 발급 요청 트랜잭션이 유효하며 정상적인 소프트웨어 등록자에 의해 서명된 것인지를 확인할 수 있게 된다.For example, the license management server 300 may check whether the format format for the obtained license issuance request transaction is valid. In addition, the license management server 300 may check the validity of the license issuance request transaction by checking the signature value from the obtained license issuance request transaction. That is, when the signature value of the license issuance request transaction is a software identification value for the software to be issued using the private key of the software registrant, the license management server 300 issues a license using the public key of the software registrant. The signature value of the request transaction is checked to verify the signed software identification value, and the software identification value confirmed from the signature value matches the software identification value included in the license issuance transaction so that the license issuance transaction is valid and is valid. The signature can be verified by the registrant.

그리고, 라이센스 관리 서버(300)는 검증 결과(S12) 유효한 것으로 판단되면, 라이센스 발급 스마트 컨트렉트를 실행한다(S13).If it is determined that the verification result (S12) is valid, the license management server 300 executes a license issuing smart contract (S13).

이때, 라이센스 발급 스마트 컨트렉트는 실행 가능한 바이트 코드로 컴파일되어 적어도 하나의 컴퓨팅 장치 상에서 실행될 수 있는 소스 코드이며, 라이센스 발급 요청 트랜잭션에 대응하여 소프트웨어에 대한 라이센스를 발급하여 주기 위하여 미리 정해진 절차를 수행하도록 구성될 수 있다.At this time, the license issuance smart contract is a source code that can be compiled into executable byte code and executed on at least one computing device, and to perform a predetermined procedure to issue a license for the software in response to a license issuance request transaction. Can be configured.

그러면, 라이센스 관리 서버(300)는 라이센스 발급 스마트 컨트렉트에 대응하여 라이센스 발급 요청된 소프트웨어에 대한 식별값인 소프트웨어 식별값에 대응하는 라이센스 식별값을 생성한다(S14).Then, the license management server 300 generates a license identification value corresponding to a software identification value, which is an identification value for the software for which license issuance is requested, in response to the license issuance smart contract (S14).

이때, 라이센스 관리 서버(300)는 라이센스 식별값을 소프트웨어 제공자 단말(200)로부터 획득하거나, 획득된 소프트웨어 식별값을 참조하여 생성할 수도 있다. 즉, 소프트웨어 등록자가 특정 라이센스 식별값을 소프트웨어 식별값과 매칭하여 소프트웨어에 대한 라이센스 발급을 요청할 수 있으며, 라이센스 관리 서버(300)는 해당 소프트웨어에 대해 발급 요청된 라이센스 식별값을 이용하여 소프트웨어에 대한 러이센스를 발급하여 줄 수 있다.In this case, the license management server 300 may obtain a license identification value from the software provider terminal 200 or generate the license identification value with reference to the acquired software identification value. That is, the software registrant may request issuance of a license for the software by matching a specific license identification value with the software identification value, and the license management server 300 uses the license identification value requested for the software to issue a license for the software. You can issue a sense.

그리고, 라이센스 관리 서버(300)는 라이센스 발급 정보를 블록체인 데이터베이스(410)에 등록하거나 라이센스 관리 서버(300)에 연동되는 타 장치로 하여금 라이센스 발급 정보를 블록체인 데이터베이스(410)에 등록하도록 지원하며(S15), 블록체인 데이터베이스(410)에 등록된 라이센스 발급 정보의 블록체인 데이터베이스(410) 상의 위치를 나타내는 트랜잭션 아이디를 획득하여 관리할 수 있다(S16).The license management server 300 may register license issuance information in the blockchain database 410 or allow other devices linked to the license management server 300 to register license issuance information in the blockchain database 410. In operation S15, a transaction ID indicating a location on the blockchain database 410 of license issuance information registered in the blockchain database 410 may be obtained and managed (S16).

또한, 라이센스 관리 서버(300)는 라이센스 식별값과 이에 대응되는 라이센스 상태 정보를 상태 데이터베이스(420)에 등록하여 줄 수 있다(S17). 이때, 라이센스 상태 정보는 소프트웨어 식별값, 라이센스의 등록 시각 정보, 라이센스의 활성화 상태 정보, 라이센스의 소유자 정보, 라이센스의 활성화 코드 정보, 및 라이센스의 종료 시각 정보 중 적어도 하나를 포함할 수 있으나, 이에 한정되지 않으며, 라이센스의 활성화 이후 종료 시각까지의 규칙 정보 등을 더 포함할 수 있다.In addition, the license management server 300 may register a license identification value and license status information corresponding thereto in the state database 420 (S17). In this case, the license status information may include at least one of a software identification value, license registration time information, license activation status information, license owner information, license activation code information, and license end time information, but is not limited thereto. The rule information may further include rule information from the activation of the license until the end time.

또한, 라이센스 관리 서버(300)는 라이센스 식별값을 포함하는 라이센스 발급 정보를 소프트웨어 제공자 단말(200)로 전송하거나 라이센스 관리 서버(300)에 연동되는 타 장치로 하여금 라이센스 발급 정보를 소프트웨어 제공자 단말(200)로 전송하도록 지원함으로써 소프트웨어 제공자 단말(200)로 하여금 라이센스 식별값을 소프트웨어 식별값과 매칭하여 관리하도록 할 수 있다.In addition, the license management server 300 transmits the license issuance information including the license identification value to the software provider terminal 200 or causes another device linked to the license management server 300 to transmit the license issuance information to the software provider terminal 200. In this case, the software provider terminal 200 may manage the license identification value by matching the software identification value.

상기에서 라이센스 관리 서버(300)가 라이센스 발급 정보를 블록체인 데이터베이스(410)로 등록하는 동작(S16), 라이센스 상태 정보를 상태 데이터베이스(420)에 등록하는 동작(S17), 및 라이센스 발급 정보를 소프트웨어 제공자 단말(200)로 전송하는 동작(S18)을 순차적으로 설명하였지만, 이는 단순히 동작의 설명을 위한 것이며, 실제 동작시에는 서로 다른 순서를 가지고 실행될 수 있다.In the above, the license management server 300 registers license issuance information to the blockchain database 410 (S16), registers license state information to the state database 420 (S17), and license issuance information. Although the operation S18 of transmitting to the provider terminal 200 has been described in sequence, this is merely for the description of the operation and may be executed in a different order in actual operation.

또한, 상기에서는 소프트웨어에 대하여 하나의 라이센스 발급을 예시적으로 설명하였지만, 이와는 달리, 해당 소프트웨어에 대하여 특정 개수의 라이센스 발급이 요청될 수 있으며, 이 경우, 라이센스 관리 서버(300)가 발급 요청된 개수에 대응하는 회수만큼 라이센스 발급 스마트 컨트렉트를 수행하는 해당 소프트웨어에 대하여 요청된 개수만큼의 라이센스를 발급하여 주거나, 소프트웨어 제공자 단말(200)이 발급 요청된 개수에 대응하는 회수만큼 라이센스 발급 요청 트랜잭션을 라이센스 관리 서버(300)로 전송하여 줄 수도 있다.In addition, the above has been described as an example of issuing one license for the software, but, alternatively, a specific number of licenses may be requested for the corresponding software, and in this case, the license management server 300 requests for issuance. Issuance of the requested number of licenses for the corresponding software that performs the license issuance smart contract as many times as the number of times, or the software provider terminal 200 issues a license issuance request transaction as many times as the requested number of issuance. It may be transmitted to the license management server 300.

다음으로, 도 3을 참조하여 본 발명의 일 실시예에 따른 라이센스를 활성화하는 방법을 설명하면 다음과 같다.Next, a method of activating a license according to an embodiment of the present invention will be described with reference to FIG. 3.

도 2를 참조하여 설명한 방법에 의해 라이센스 관리 서버(300)가 소프트웨어 제공자 단말(200)로부터의 소프트웨어에 대한 라이센스 발급 요청에 대응하여 라이센스 발급 스마트 컨트렉트에 의해 소프트웨어 식별값에 대응하는 라이센스 식별값을 생성하여 주며, 상기 라이센스 식별값과 이에 대응되는 라이센스 상태 정보를 상태 데이터베이스(420)에 등록한 상태에서, 소프트웨어 제공 단말(200)로부터 해당 소프트웨어와 라이센스 식별값을 획득한 사용자가 사용자 단말(110)에 해당 소프트웨어를 실행하면, 소프트웨어는 기설정된 동작 조건에 따라 사용자에게 라이센스 식별값을 입력하도록 요청한다.The license identification value corresponding to the software identification value by the license issuance smart contract by the license management server 300 in response to the license issuance request for the software from the software provider terminal 200 by the method described with reference to FIG. 2. The user who acquires the corresponding software and license identification value from the software providing terminal 200 while registering the license identification value and corresponding license status information in the state database 420 is generated. When the corresponding software is executed, the software requests the user to input a license identification value according to a preset operating condition.

그리고, 사용자에 의해 라이센스 식별값이 입력되면, 소프트웨어는 사용자 인증을 위한 키페어인 퍼블릭키와 프라이빗 키를 생성하여 사용자 단말(110)에 저장되도록 한다. 이때, 퍼블릭키와 프라이빗키는 해당 소프트웨어에 대한 키페어이거나 사용자에 대한 키페어일 수 있다.When the license identification value is input by the user, the software generates a public key and a private key, which are key pairs for user authentication, to be stored in the user terminal 110. At this time, the public key and the private key may be a key pair for the corresponding software or a key pair for the user.

이후, 사용자 단말(110)의 소프트웨어는 소프트웨어 식별값, 라이센스 식별값, 소프트웨어에 의해 생성된 퍼블릭키, 및 라이센스 식별값을 소프트웨어에 의해 생성된 프라이빗키로 서명한 라이센스 서명값을 포함하는 라이센스 활성화 요청 신호를 소프트웨어 제공자 서버(200)로 전송(S21)하면, 소프트웨어 제공자 서버(200)는 소프트웨어 식별값, 라이센스 식별값, 소프트웨어에 의해 생성된 퍼블릭키, 및 라이센스 식별값을 소프트웨어에 의해 생성된 프라이빗키로 서명한 라이센스 서명값을 포함하는 라이센스 활성화 요청 트랜잭션을 라이센스 관리 서버(300)로 전송하여 준다(S22).Thereafter, the software of the user terminal 110 receives a license activation request signal including a software identification value, a license identification value, a public key generated by the software, and a license signature value signed by the private identification key generated by the software. In step S21, the software provider server 200 signs the software identification value, the license identification value, the public key generated by the software, and the license identification value with the private key generated by the software. The license activation request transaction including the license signature value is transmitted to the license management server 300 (S22).

그러면, 라이센스 관리 서버(300)의 통신부(310)는 소프트웨어 제공자 단말(200)로부터 전송되는 라이센스 활성화 요청 트랜잭션을 획득하며, 라이센스 관리 서버(300)의 프로세서(320)는 통신부(310)에서 획득된 라이센스 활성화 요청 트랜잭션의 유효성을 검증한다(S23). 일 예로, 라이센스 관리 서버(300)는 획득된 라이센스 활성화 요청 트랜잭션에 대한 포맷 형식의 유효 여부를 확인할 수 있다.Then, the communication unit 310 of the license management server 300 obtains a license activation request transaction transmitted from the software provider terminal 200, and the processor 320 of the license management server 300 is obtained from the communication unit 310. Validate the license activation request transaction (S23). For example, the license management server 300 may check whether the format format for the obtained license activation request transaction is valid.

그리고, 라이센스 관리 서버(300)는 검증 결과(S23) 유효한 것으로 판단되면, 라이센스 활성화 스마트 컨트렉트를 실행한다(S24).If it is determined that the verification result (S23) is valid, the license management server 300 executes a license activation smart contract (S24).

이때, 라이센스 활성화 스마트 컨트렉트는 실행 가능한 바이트 코드로 컴파일되어 적어도 하나의 컴퓨팅 장치 상에서 실행될 수 있는 소스 코드이며, 라이센스 활성화 요청 트랜잭션에 대응하여 라이센스 식별값에 대응하는 소프트웨어의 라이센스를 활성화하기 위하여 미리 정해진 절차를 수행하도록 구성될 수 있다.At this time, the license activation smart contract is source code that can be compiled into executable byte code and executed on at least one computing device, and is predetermined to activate a license of software corresponding to a license identification value in response to a license activation request transaction. It may be configured to perform a procedure.

그러면, 라이센스 관리 서버(300)는 라이센스 활성화 스마트 컨트렉트에 의해 활성화 요청 트랜잭션에 포함된 퍼블릭키와 라이센스 서명값을 검증한다(S25).Then, the license management server 300 verifies the public key and the license signature value included in the activation request transaction by the license activation smart contract (S25).

일 예로, 라이센스 관리 서버(300)는 라이센스 활성화 요청 트랜잭션의 서명값이 소프트웨어에 의해 생성된 프라이빗키를 이용하여 활성화하고자 하는 라이센스 식별값을 서명한 것일 경우, 라이센스 관리 서버(300)는 소프트웨어에 의해 생성된 퍼블릭키를 이용하여 라이센스 활성화 요청 트랜잭션의 서명값을 확인하여 서명된 라이센스 식별값을 확인하며, 서명값으로부터 확인한 라이센스 식별값이 라이센스 활성화 요청 트랜잭션에 포함된 라이센스 식별값과 일치하는 지를 확인하여 퍼블릭키와 라이센스 서명값을 검증할 수 있다.For example, when the license value of the license activation request transaction is a signature of a license identification value to be activated using a private key generated by the software, the license management server 300 is configured by the software. Check the signed license identification value by checking the signature value of the license activation request transaction using the generated public key, and check whether the license identification value verified from the signature value matches the license identification value included in the license activation request transaction. You can verify the public key and license signatures.

이후, 퍼블릭키와 라이센스 서명값이 검증되면, 라이센스 관리 서버(300)는 라이센스를 활성화시키기 위한 활성화 코드를 생성하며(S26), 활성화 코드를 포함하는 라이센스 활성화 정보를 소프트웨어 제공자 단말(200)을 통해 사용자 단말(110)로 전송하여 줄 수 있다(S29, S30). 즉, 라이센스 관리 서버(300)는 라이센스 활성화 정보를 소프트웨어 제공자 단말(200)로 전송하여 라이센스 활성화 코드를 이용하여 라이센스 식별값에 대응되는 소프트웨어의 라이센스를 활성화시키도록 하거나, 사용자 단말(110) 등을 통해 해당 소프트웨어에 대응하는 라이센스 식별값이 활성화되었다는 정보를 알 수 있도록 할 수 있다.Thereafter, when the public key and the license signature value are verified, the license management server 300 generates an activation code for activating a license (S26), and receives license activation information including the activation code through the software provider terminal 200. It may be transmitted to the user terminal 110 (S29, S30). That is, the license management server 300 transmits the license activation information to the software provider terminal 200 to activate the license of the software corresponding to the license identification value using the license activation code, or the user terminal 110 or the like. This allows the user to know that the license identification corresponding to the software has been activated.

또한, 라이센스 관리 서버(300)는 라이센스 활성화 정보를 블록체인 데이터베이스(410)에 등록하거나 라이센스 관리 서버(300)에 연동되는 타 장치로 하여금 라이센스 활성화 정보를 블록체인 데이터베이스(410)에 등록하도록 지원할 수 있다(S27).In addition, the license management server 300 may register the license activation information in the blockchain database 410 or support other devices linked to the license management server 300 to register the license activation information in the blockchain database 410. There is (S27).

또한, 라이센스 관리 서버(300)는 상태 데이터베이스(420)에 등록된 라이센스 식별값에 대응되는 라이센스 상태 정보를 라이센스 활성화 정보를 참조하여 업데이트할 수 있다(S28).In addition, the license management server 300 may update the license state information corresponding to the license identification value registered in the state database 420 with reference to the license activation information (S28).

즉, 라이센스 관리 서버(300)는 라이센스 식별값에 대응되는 라이센스 상태 정보로, 퍼블릭키, 라이센스 활성화 코드, 및 상기 라이센스의 종료 시각 정보 중 적어도 하나를 상태 데이터베이스(420)에 등록할 수 있다.That is, the license management server 300 may register at least one of a public key, a license activation code, and end time information of the license as license state information corresponding to a license identification value in the state database 420.

특히, 라이센스 관리 서버(300)는 상태 데이터베이스(420)에서 라이센스 식별값에 대응하는 라이센스 활성화 상태 정보를 “활성 상태”로 업데이트할 수 있다. 즉, 라이센스 활성화 상태 정보는, 라이센스의 활성화 상태를 나타내는 것으로 조건에 따라 “비활성 상태”, “활성 상태”, “중지 상태” 등으로 나타내어질 수 있다.In particular, the license management server 300 may update the license activation state information corresponding to the license identification value in the state database 420 to an “active state”. That is, the license activation state information indicates the activation state of the license and may be represented as "inactive state", "active state", "suspended state", or the like depending on conditions.

상기에서 라이센스 관리 서버(300)가 및 라이센스 활성화 정보를 소프트웨어 제공자 단말(200)로 전송하는 동작(S29), 라이센스 활성화 정보를 블록체인 데이터베이스(410)로 등록하는 동작(S27), 및 라이센스 활성화 정보를 참조하여 상태 데이터베이스(420)를 업데이트하는 동작(S28)을 순차적으로 설명하였지만, 이는 단순히 동작의 설명을 위한 것이며, 실제 동작시에는 서로 다른 순서를 가지고 실행될 수 있다.In operation S29, the license management server 300 transmits the license activation information to the software provider terminal 200, registers the license activation information with the blockchain database 410, and license activation information. Although an operation S28 of updating the state database 420 is sequentially described with reference to FIG. 6, this is merely for explaining an operation and may be executed in a different order in actual operation.

다음으로, 도 4를 참조하여 본 발명의 일 실시예에 따른 라이센스의 유효성을 확인하는 설명하면 다음과 같다.Next, referring to FIG. 4, the validity of the license according to an embodiment of the present invention will be described.

도 2와 도 3을 참조하여 설명한 방법에 의해, 라이센스 관리 서버(300)가 소프트웨어 제공자 단말(200)로부터의 소프트웨어에 대한 라이센스 발급 요청에 대응하여 라이센스 발급 스마트 컨트렉트에 의해 소프트웨어 식별값에 대응하는 라이센스 식별값을 생성하여 주며, 상기 라이센스 식별값과 이에 대응되는 라이센스 상태 정보를 상태 데이터베이스(420)에 등록하고, 소프트웨어에 대한 라이센스 활성화 요청 트랜잭션에 대응하여 라이센스 활성화 스마트 컨트렉트에 의해 라이센스를 활성화시키기 위한 활성화 코드를 생성하여 주며, 라이센스 활성화 정보를 참조하여 상태 데이터베이스(420)의 라이센스 상태 정보를 업데이트한 상태에서, 사용자가 사용자 단말(110)에 설치된 소프트웨어를 실행하면 소프트웨어는 라이센스 식별값과 라이센스 활성화 코드를 포함하는 라이센스 유효성 확인 요청 신호를 소프트웨어 제공자 단말(200)로 전송하여 주면(S51), 소프트웨어 제공자 서버(200)는 라이센스 식별값과 라이센스 활성화 코드를 포함하는 라이센스 유효성 확인 요청 트랜잭션을 라이센스 관리 서버(300)로 전송하여 준다(S52).By the method described with reference to FIGS. 2 and 3, the license management server 300 corresponds to the software identification value by the license issuing smart contract in response to a license issuance request for software from the software provider terminal 200. Generates a license identification value, registers the license identification value and corresponding license status information in the state database 420, and licenses the license by a license activation smart contract in response to a license activation request transaction for the software. Generates an activation code for activating, and when the user executes the software installed in the user terminal 110 with the license status information of the state database 420 updated with reference to the license activation information, the software generates a license identification value. License activation When the license validation request signal including the code is transmitted to the software provider terminal 200 (S51), the software provider server 200 performs a license validation request transaction including a license identification value and a license activation code. Give it to 300 (S52).

그러면, 라이센스 관리 서버(300)의 통신부(310)는 소프트웨어 제공자 단말(200)로부터 전송되는 라이센스 유효성 확인 요청 트랜잭션을 획득하며, 라이센스 관리 서버(300)의 프로세서(320)는 통신부(310)에서 획득된 라이센스 유효성 확인 요청 트랜잭션의 유효성을 검증한다(S53). 일 예로, 라이센스 관리 서버(300)는 획득된 라이센스 유효성 확인 요청 트랜잭션에 대한 포맷 형식의 유효 여부를 확인할 수 있다.Then, the communication unit 310 of the license management server 300 obtains a license validation request transaction transmitted from the software provider terminal 200, and the processor 320 of the license management server 300 is obtained from the communication unit 310. The validity of the license validation request transaction is verified (S53). For example, the license management server 300 may check whether the format format for the obtained license validation request transaction is valid.

그리고, 라이센스 관리 서버(300)는 검증 결과(S53) 유효한 것으로 판단되면, 라이센스 유효성 확인 스마트 컨트렉트를 실행한다(S54).If it is determined that the verification result (S53) is valid, the license management server 300 executes a license validity verification smart contract (S54).

이때, 라이센스 유효성 확인 스마트 컨트렉트는 실행 가능한 바이트 코드로 컴파일되어 적어도 하나의 컴퓨팅 장치 상에서 실행될 수 있는 소스 코드이며, 라이센스 식별값에 대응하는 소프트웨어의 라이센스에 대한 유효성을 확인하기 위하여 미리 정해진 절차를 수행하도록 구성될 수 있다.At this time, the license validation smart contract is source code that can be compiled into executable bytecode and executed on at least one computing device, and performs a predetermined procedure to validate the license of the software corresponding to the license identification value. It can be configured to.

그러면, 라이센스 관리 서버(300)는 라이센스 유효성 확인 스마트 컨트렉트에 의해 라이센스 식별값에 대응하여 상태 데이터베이스(420)에 등록된 라이센스 상태 정보로부터 라이센스 식별값과 라이센스 활성화 코드를 확인하여 라이센스의 상태를 확인한다(S55). 즉, 라이센스 식별값을 참조하여 라이센스가 발급되고 활성화되었는지를 확인하다.Then, the license management server 300 checks the license identification value and the license activation code from the license status information registered in the state database 420 in response to the license identification value by the license validation smart contract to check the status of the license. Check (S55). That is, it checks whether a license has been issued and activated by referring to the license identification value.

그리고, 라이센스 관리 서버(300)는 라이센스 식별값에 대응하는 라이센스 검증 식별값과 논스값을 생성하고(S56) 라이센스 식별값에 대응되는 상태 데이터베이스(420)의 라이센스 검증 상태 정보에 라이센스 검증 식별값과 논스값을 등록하며(S57), 라이센스 검증 식별값과 논스값을 포함하는 서명 요청 트랜잭션을 생성하여 소프트웨어 제공자 단말(200)을 통해 사용자 단말(110)의 소프트웨어로 전송하여 준다(S58, S59). Then, the license management server 300 generates a license verification identification value and a nonce value corresponding to the license identification value (S56), and the license verification identification value and the license verification status information of the state database 420 corresponding to the license identification value. The nonce value is registered (S57), and a signature request transaction including the license verification identification value and the nonce value is generated and transmitted to the software of the user terminal 110 through the software provider terminal 200 (S58 and S59).

이에 따라, 사용자 단말(110)의 소프트웨어는 서명 요청 트랜잭션에 대응하여 라이센스 검증 식별값과 프라이빗키로 논스값을 서명한 서명값을 포함하는 서명 트랜잭션을 생성하며, 생성된 서명 트랜잭션을 소프트웨어 제공자 단말(200)을 통해 라이센스 관리 서버(300)로 전송되도록 한다(S60, S61).Accordingly, the software of the user terminal 110 generates a signature transaction including a license verification identification value and a signature value signed with a nonce value with a private key in response to the signature request transaction, and generates the generated signature transaction into the software provider terminal 200. In order to be transmitted to the license management server 300 through the (S60, S61).

그리고, 사용자 단말(110)의 소프트웨어로부터의 라이센스 검증 식별값과 서명값을 포함하는 서명 트랜잭션이 소프트웨어 제공자 단말(200)을 통해 획득되면, 라이센스 관리 서버(300)는 서명 트랜잭션이 유효한지를 확인하여 유효하면 서명 트랜잭션에 대응하는 서명 검증 스마트 컨트렉트를 실행하여 서명값을 검증한다(S62).When a signature transaction including a license verification identification value and a signature value from the software of the user terminal 110 is obtained through the software provider terminal 200, the license management server 300 checks whether the signature transaction is valid and then validates it. In operation S62, a signature verification smart contract corresponding to the signature transaction is executed to verify the signature value.

이때, 라이센스 관리 서버(300)는 라이센스 검증 식별값과 매칭되는 라이센스 식별값을 참조하여 상태 데이터베이스(420)에 등록된 라이센스 상태 정보로부터 퍼블릭키를 획득하며, 상태 데이터베이스(420)로부터 획득된 퍼블릭키를 이용하여 서명값으로부터 논스값을 확인하고, 서명값으로부터 확인한 논스값과 라이센스 검증 식별값에 대응하여 상기 상태 데이터베이스의 상기 라이센스 검증 상태 정보에 등록된 상기 논스값이 일치하는지를 확인하여 상기 서명값을 검증할 수 있다.At this time, the license management server 300 obtains the public key from the license status information registered in the state database 420 with reference to the license identification value matching the license verification identification value, and obtains the public key obtained from the state database 420. The nonce value is checked from the signature value by using, and the nonce value confirmed from the signature value and the license verification identification value correspond to the nonce value registered in the license verification status information of the state database to match the signature value. Can be verified

이후, 라이센스 관리 서버(300)는 서명값의 검증 결과(S62) 서명값이 유효한 것으로 검증되면, 검증 결과 정보를 블록체인 데이터베이스(410)에 등록하며(S63), 검증 결과 정보를 소프트웨어 제공자 단말(200)을 통해 사용자 단말(110)의 소프트웨어로 전달함으로써 소프트웨어가 사용자 단말(110)에서 실행되도록 한다(S65, S66).Subsequently, when the verification result of the signature value (S62) is verified as the validity of the signature value, the license management server 300 registers the verification result information in the blockchain database 410 (S63), and verifies the verification result information on the software provider terminal (S63). The software is executed in the user terminal 110 by transferring the software to the user terminal 110 through the 200 (S65 and S66).

또한, 라이센스 관리 서버(300)는 검증 결과 정보를 참조하여 상태 데이터베이스(420)에 등록된 라이센스 검증 식별값에 대응하는 라이센스 검증 상태 정보를 업데이트할 수 있다(S64).In addition, the license management server 300 may update the license verification status information corresponding to the license verification identification value registered in the status database 420 with reference to the verification result information (S64).

이때, 라이센스 관리 서버(300)는 라이센스 검증 식별값에 대응하는 상태 데이터베이스(420)의 라이센스 검증 상태 정보에 서명값, 검증 결과 정보, 및 서명값을 검증한 시각 정보 중 적어도 하나를 등록할 수 있다.In this case, the license management server 300 may register at least one of a signature value, verification result information, and time information of verifying the signature value in the license verification status information of the state database 420 corresponding to the license verification identification value. .

상기 도 2 내지 도 4의 방법에서는 라이센스 관리 서버(300)가 하나의 네트워크로 이루어진 블록체인 데이터베이스에 소프트웨어 라이센스 관리와 관련한 정보를 등록하는 것으로 설명하였지만, 이와는 달리, 블록체인 데이터베이스를 제1 블록체인 데이터베이스와 제2 데이터베이스로 구성할 경우에는 제1 블록체인 데이터베이스에 정보를 등록하며, 제2 블록체인 데이터베이스에 머클트리를 이용하여 블록을 등록할 수 있다.In the method of FIGS. 2 to 4, the license management server 300 registers information related to software license management in a blockchain database composed of one network. However, the blockchain database is a first blockchain database. In the case of configuring a second database and a second database, information may be registered in the first blockchain database, and a block may be registered in the second blockchain database using Merkle Tree.

일 예로, 라이센스 관리 서버(300)는 제2 블록체인 데이터베이스에 소정의 해시값을 등록하기 위한 트리거링 조건이 만족되면, 제1 블록체인 데이터베이스(410)에 등록된 트랜잭션에 해시 함수를 적용하여 생성한 특정 해시값 및 특정 해시값과 매칭되는 적어도 하나의 이웃 해시값을 연산함으로써 대표 해시값 또는 대표 해시값을 가공한 값을 머클 루트로 생성하고, 생성된 머클 루트인 대표 해시값 또는 대표 해시값을 가공한 값을 제2 블록체인 데이터베이스에 등록하거나 타 장치로 하여금 등록하도록 지원하며, 제2 블록체인 데이터베이스에 등록된 대표 해시값 또는 대표 해시값을 가공한 값의 제2 블록체인 데이터베이스 상의 위치 정보를 나타내는 트랜잭션 아이디를 획득하여 관리할 수 있다.For example, if the triggering condition for registering a predetermined hash value in the second blockchain database is satisfied, the license management server 300 generates a license function by applying a hash function to a transaction registered in the first blockchain database 410. By calculating the hash value or at least one neighboring hash value matching the specific hash value, a representative hash value or a value obtained by processing the representative hash value is generated as a merkle root, and the generated hash value or the representative hash value, Register the processed value to the second blockchain database or allow other devices to register the location information on the second blockchain database of the representative hash value or the processed hash value registered in the second blockchain database. It can acquire and manage the transaction ID that indicates.

이때, 이웃 해시값 중 적어도 하나는, 블록 내에 포함되는 모든 트랜잭션에 의해 업데이트된 상태 데이터베이스(420)의 최종 상태 정보에 해시 함수를 적용하여 생성한 해시값일 수 있다.In this case, at least one of the neighbor hash values may be a hash value generated by applying a hash function to final state information of the state database 420 updated by all transactions included in the block.

그리고, 특정 해시값과 적어도 하나의 이웃 해시값과의 연산은 다양한 해시 함수에 의해 수행될 수 있으며, 해시함수는 MD4 함수, MD5 함수, SHA-0 함수, SHA-1 함수, SHA-224 함수, SHA-256 함수, SHA-384 함수, SHA-512 함수 및 HAS-160 함수를 포함할 수 있으나, 이에 한정되지 않음은 통상의 기술자가 알 수 있을 것이다. 예를 들어 Triple SHA256도 가능할 것이다.In addition, the operation of a specific hash value and at least one neighboring hash value may be performed by various hash functions, and the hash function may be an MD4 function, an MD5 function, a SHA-0 function, a SHA-1 function, a SHA-224 function, It will be appreciated by those skilled in the art that the present invention may include, but is not limited to, an SHA-256 function, an SHA-384 function, an SHA-512 function, and an HAS-160 function. For example, Triple SHA256 would be possible.

이때, 라이센스 관리 서버(300)는 특정 해시값과 적어도 하나의 이웃 해시값을 소정의 데이터 구조로 저장하여 관리할 수 있다. 여기서, 데이터 구조는 다양할 수 있는데, 일 예로 머클 트리(merkle tree) 구조가 될 수도 있다.In this case, the license management server 300 may store and manage a specific hash value and at least one neighbor hash value in a predetermined data structure. Here, the data structure may vary, for example, may be a merkle tree structure.

즉, 라이센스 관리 서버(300)는 특정 해시값이 특정 리프 노드에 할당된 머클 트리(merkle tree)를 생성하거나 생성하도록 지원할 수 있고, 소정의 조건이 만족되면, 특정 해시값과 매칭되는 적어도 하나의 다른 리프 노드에 할당된 해시값을 연산하여 생성되는 대표 해시값 또는 대표 해시값을 가공한 값을 제2 블록체인 데이터베이스에 등록하거나 등록하도록 지원할 수 있다.That is, the license management server 300 may support to generate or generate a merkle tree in which a specific hash value is assigned to a specific leaf node, and if a predetermined condition is satisfied, at least one matching the specific hash value. A representative hash value generated by calculating a hash value assigned to another leaf node or a processed value of the representative hash value may be registered or registered in the second blockchain database.

좀 더 구체적으로 설명하면, (x1) 라이센스 관리 서버(300)는, (i) 특정 해시값과 (ii) 특정 해시값이 할당된 노드의 형제 노드에 할당된 해시값을 연산하거나 연산하도록 지원하고, 연산값에 대한 해시값을 노드의 부모 노드에 할당하거나 할당하도록 지원할 수 있다. (x2) 만일, 부모 노드가 머클 트리의 루트 노드이면, 부모 노드에 할당된 해시값이 대표 해시값이 된다. (x3) 반면, 부모 노드가 머클 트리의 루트 노드가 아니면, 서버(100)는, 부모 노드에 할당된 해시값을 특정 해시값으로 하여 (x1) 내지 (x3)를 반복하여 수행한다.More specifically, (x1) the license management server 300 supports or calculates (i) a hash value assigned to a sibling node of a node to which (i) a specific hash value and (ii) a specific hash value is assigned. For example, it may support assigning or assigning a hash value for an operation value to a node's parent node. (x2) If the parent node is the root node of the Merkle tree, the hash value assigned to the parent node becomes the representative hash value. (x3) On the other hand, if the parent node is not the root node of the Merkle tree, the server 100 repeats (x1) to (x3) by using the hash value assigned to the parent node as a specific hash value.

그리고, 라이센스 관리 서버(300)는 최종적으로 머클 트리의 루트 노드에 할당된 해시값을 대표 해시값으로서 제2 블록체인 데이터베이스에 등록하거나 등록하도록 지원한다. 이때, 대표 해시값을 가공한 값이 등록될 수도 있다. 예를 들어, 대표 해시값에 hex 연산이 수행된 결과값이 등록될 수도 있다.In addition, the license management server 300 supports to register or register the hash value finally assigned to the root node of the Merkle tree as the representative hash value in the second blockchain database. At this time, a value obtained by processing the representative hash value may be registered. For example, a result value of performing a hex operation may be registered in the representative hash value.

한편, 라이센스 관리 서버(100)가 특정 해시값과 적어도 하나의 이웃 해시값을 소정의 제1 데이터 구조로 저장하고, 이후 제1 데이터 구조와 동일한 형태의 제2 데이터 구조를 저장하여 관리하는 경우, 제1 데이터 구조와 제2 데이터 구조는 체인 형태로 연결될 수 있다.Meanwhile, when the license management server 100 stores a specific hash value and at least one neighbor hash value in a predetermined first data structure, and then stores and manages a second data structure having the same form as the first data structure, The first data structure and the second data structure may be connected in a chain form.

특히, 상술한 예에서와 같이 제1 데이터 구조 및 제2 데이터 구조가 머클 트리인 경우, 제1 데이터 구조의 루트값 또는 루트값의 해시값이 제2 데이터 구조의 첫번째 리프 노드에 할당될 수 있다.In particular, when the first data structure and the second data structure are Merkle trees as in the above-described example, a root value of the first data structure or a hash value of the root value may be allocated to the first leaf node of the second data structure. .

또한, 제2 데이터 구조를 생성할 때는 제1 데이터 구조에 대한 검증이 이루어짐으로써 데이터 integrity가 좀 더 보장될 수 있다. 제2 데이터 구조의 검증에 대해서는 후술하기로 한다. In addition, when the second data structure is generated, data integrity may be more guaranteed by verifying the first data structure. The verification of the second data structure will be described later.

또한, 체인 형태로 연결된 적어도 하나의 머클 트리 중 첫번째 머클 트리의 경우, 첫번째 머클 트리의 첫번째 리프 노드에는 텍스트, 숫자, 또는 기호로 이루어진 소정의 메시지 데이터의 해시값 또는 이를 가공한 값이 할당될 수 있다. 예를 들어, 머클 트리 생성시 라이센스 관리 서버(300)에 의해 최초로 부여된 입력 메시지의 해시값이 할당될 수 있다. In addition, in the case of the first Merkle tree of at least one Merkle tree connected in a chain form, the first leaf node of the first Merkle tree may be assigned a hash value of a predetermined message data composed of text, numbers, or symbols or a processed value thereof. have. For example, a hash value of an input message initially given by the license management server 300 may be assigned when generating the merkle tree.

도 5 및 9는 본 발명의 일 실시예에 따라 생성된 머클 트리의 예를 도시한 도면이다.5 and 9 illustrate an example of a merkle tree generated according to an embodiment of the present invention.

도 5에서는 리프 노드의 개수가 4개인 머클 트리가 도시된다. 도시된 머클 트리는 첫번째 머클 트리이기 때문에(tree_id=0), 첫번째 리프 노드인 h0 노드에는 소정의 메시지 데이터의 해시값 (sha256digest(coinplug_unique_message))이 할당되었음을 알 수 있다. 기록 데이터에 대한 등록 요청이 있는 경우, 라이센스 관리 서버(300)는 현재 구성 중인 머클 트리의 가장 마지막 리프 노드의 다음 리프 노드를 생성하여 특정 해시값 또는 특정 해시값을 가공한 값을 할당하거나 할당하도록 지원한다. 예를 들어, 도 5의 머클 트리에서 두번째 리프 노드인 h1 노드까지 값 할당이 완료된 상태에서 새로운 리프 노드를 생성하여야 하는 경우, 다음 리프 노드인 h2 노드를 생성하여 특정 해시값 또는 특정 해시값을 가공한 값(sha256digest(input2))을 할당할 수 있다. 또한, 라이센스 관리 서버(300)는 (i) h2 노드에 할당된 특정 해시값과 (ii) h2 노드의 형제 노드인 h3 노드에 할당된 해시값을 연산하거나 연산하도록 지원할 수 있다. 연산값에 대한 해시값은 h2 노드와 h3 노드의 부모 노드(h23 노드)에 할당된다. 부모 노드(h23 노드)가 머클 트리의 루트 노드가 아니므로 라이센스 관리 서버(300)는 h23 노드에 할당된 해시값을 특정 해시값으로 하여 상기 과정을 반복하여 수행할 수 있다. 즉, h23 노드에 할당된 해시값을 특정 해시값으로 하고, h23 노드에 할당된 해시값과 h01 노드에 할당된 해시값을 연산하여 h23 노드와 h01 노드의 부모 노드(h0123 노드)에 할당할 수 있다. 이때, h0123 노드가 머클 트리의 루트 노드이므로 라이센스 관리 서버(300)는, h0123 노드에 할당된 해시값을 가공한 값(hex(h{node_index}))을 제2 블록체인 데이터베이스에 등록하거나 등록하도록 지원할 수 있다.5 shows a Merkle tree with four leaf nodes. Since the illustrated Merkle tree is the first Merkle tree (tree_id = 0), it can be seen that a hash value (sha256digest (coinplug_unique_message)) of predetermined message data is allocated to the h0 node which is the first leaf node. When there is a registration request for the historical data, the license management server 300 generates the next leaf node of the last leaf node of the Merkle tree currently being configured to assign or assign a specific hash value or a processed value of the specific hash value. Support. For example, when a new leaf node needs to be created while the value allocation is completed from the merkle tree of FIG. 5 to the second leaf node h1, the next leaf node h2 is created to process a specific hash value or a specific hash value. You can assign one value (sha256digest (input2)). In addition, the license management server 300 may support to calculate or calculate (i) a specific hash value assigned to the h2 node and (ii) a hash value assigned to the h3 node that is a sibling node of the h2 node. The hash value for the operation value is assigned to the parent node (h23 node) of node h2 and node h3. Since the parent node (h23 node) is not the root node of the Merkle tree, the license management server 300 may repeat the above process by using the hash value assigned to the h23 node as a specific hash value. That is, the hash value assigned to the h23 node is designated as a specific hash value, and the hash value assigned to the h23 node and the hash value assigned to the h01 node can be calculated and assigned to the parent node (h0123 node) of the h23 node and the h01 node. have. At this time, since the h0123 node is the root node of the Merkle tree, the license management server 300 registers or registers a value (hex (h {node_index})) of the hash value assigned to the h0123 node in the second blockchain database. Can support

한편, 전술한 소정의 조건, 즉, 트리거링 조건은, (i) 소정의 개수만큼 라이센스 관리와 관련한 트랜잭션이 생성되는 조건, (ii) 소정 시간이 경과하는 조건, (iii) 제1 블록체인 데이터베이스에서 블록이 생성되는 조건, (iv) 서비스 특성에 대한 조건 중 적어도 하나를 포함할 수 있다.Meanwhile, the above-described predetermined conditions, that is, triggering conditions, include (i) a condition in which transactions related to license management are generated by a predetermined number, (ii) a condition in which a predetermined time elapses, and (iii) a first blockchain database. It may include at least one of a condition that the block is generated, (iv) a condition for the service characteristic.

한편, 예를 들어, 복수의 라이센스 관리 트랜잭션이 머클 트리의 리프 노드 수만큼 획득되면 머클 트리를 생성하고, 머클 트리의 루트값을 제2 블록체인 데이터베이스에 등록하거나 등록하도록 지원할 수 있다.On the other hand, for example, when a plurality of license management transactions are acquired by the number of leaf nodes of the Merkle tree, the Merkle tree may be generated, and the root value of the Merkle tree may be supported or registered in the second blockchain database.

또한, 라이센스 관리 서버(300)는 소정 시간 단위로 전술한 머클 트리의 루트값을 생성할 수 있다(상기 (ii) 조건). 이 경우 라이센스 관리 서버(300)는 소정의 시간이 경과되면 그때까지의 입력값을 이용하여 머클 트리를 생성하고 머클 트리의 루트값을 제2 블록체인 데이터베이스에 등록하거나 등록하도록 지원할 수 있다.In addition, the license management server 300 may generate the root value of the aforementioned Merkle tree on a predetermined time basis (condition (ii) above). In this case, when a predetermined time elapses, the license management server 300 may generate a Merkle tree by using input values up to that point and register or register a root value of the Merkle tree in the second blockchain database.

그런데, 이 경우에는 소정 시간이 경과하였음에도 머클 트리의 특정 해시값이 할당된 노드의 형제 노드에 값이 할당되지 않을 수 있다. 이처럼 소정의 조건이 만족되었음에도 특정 해시값이 할당된 노드의 형제 노드에 해시값이 할당되어 있지 않은 경우, 라이센스 관리 서버(300)는, 형제 노드에 소정의 해시값을 할당하거나 할당하도록 지원하여 전술한 방식으로 머클 트리의 루트값이 산출되도록 할 수 있다. 예를 들어, 라이센스 관리 서버(300)는 특정 해시값을 복제하여 형제 노드에 할당하거나 할당하도록 지원할 수 있다.In this case, however, a value may not be assigned to a sibling node of a node to which a specific hash value of the Merkle tree is assigned even after a predetermined time has elapsed. When the hash value is not assigned to the sibling node of the node to which the specific hash value is assigned even though the predetermined condition is satisfied as described above, the license management server 300 supports to assign or allocate the predetermined hash value to the sibling node. In one way, the root value of the Merkle tree can be calculated. For example, the license management server 300 may duplicate a specific hash value and assign or assign it to a sibling node.

또한, 라이센스 관리 서버(100)는 제1 블록체인 데이터베이스에서 블록이 생성되는 때(상기 (iii) 조건)에, 상기 생성되는 블록의 블록 헤더(block header)에 상태 데이터베이스에 등록된 최종 라이센스 상태 정보에 대한 해시값인 상태 데이터베이스 해시값이 기록되도록 하거나 기록되도록 지원할 수 있다.In addition, when the block is generated in the first blockchain database (condition (iii) above), the license management server 100 registers the last license state information registered in the state database in the block header of the generated block. The state database hash value, which is a hash value for, can be recorded or supported to be recorded.

일 예로, (i) random nonce, random nonce 서명값 및 public key로부터 연산된 해시값들만이 리프 노드들에 할당된 머클 트리로부터 대표 해시값인 거래자 정보 대표 해시값이 생성되고, (ii) 라이센스 관리 데이터, public key 및 서명값으로부터 연산된 해시값들만이 리프 노드들에 할당된 머클 트리로부터 대표 해시값인 라이센스 관리 정보 대표 해시값이 생성된 후, 거래자 정보 대표 해시값 및 라이센스 관리 정보 대표 해시값이 생성되는 블록의 블록 헤더에 더 기록된 상태에서, 라이센스 관리 서버(300)가, 상태 데이터베이스 해시값, 거래자 정보 대표 해시값 및 라이센스 관리 정보 대표 해시값 또는 이들을 가공한 값에 대한 해시값을 제2 블록체인 데이터베이스에 등록하거나 등록하도록 지원할 수도 있다.For example, (i) only the hash values computed from the random nonce, random nonce signature value, and public key are generated from the Merkle tree assigned to the leaf nodes. After only the hash values calculated from the data, public key and signature value are generated from the Merkle Tree assigned to the leaf nodes, the license management information representative hash value, which is the representative hash value, the trader information representative hash value and the license management information representative hash value. In the state further recorded in the block header of the generated block, the license management server 300 removes the state database hash value, the trader information representative hash value, the license management information representative hash value, or a hash value for the processed values thereof. 2 It can also be supported to register or register in the blockchain database.

또한, 라이센스 관리 서버(300)는 (i) random nonce, random nonce 서명값 및 public key로부터 연산된 해시값, 및 (ii) 라이센스 관리 데이터, public key 및 서명값으로부터 연산된 해시값들이 리프 노드들에 할당된 머클 트리로부터 프라이빗 대표 해시값이 생성된 후, 상기 프라이빗 대표 해시값이 상기 생성되는 블록의 블록 헤더에 더 기록된 상태에서, 상기 상태 데이터베이스 해시값 및 상기 프라이빗 대표 해시값, 또는 이들을 가공한 값을 제2 블록체인 데이터베이스에 등록하거나 등록하도록 지원할 수도 있다.In addition, the license management server 300 may include (i) hash values computed from random nonce, random nonce signature value and public key, and (ii) hash values computed from license management data, public key and signature value. After the private representative hash value is generated from the Merkle tree assigned to, the state database hash value and the private representative hash value, or these are processed while the private representative hash value is further recorded in the block header of the generated block. A value may be registered or supported to be registered in the second blockchain database.

그리고, 서비스 특성이란, 라이센스 관리와 관련한 트랜잭션 등록을 요청한 사용자가 제공한 비용 정보, 라이센스 관리와 관련한 트랜잭션 등록이 이루어지는 시간대 정보, 라이센스 관리와 관련한 트랜잭션 등록 서비스가 이루어지는 지역 정보, 라이센스 관리와 관련한 트랜잭션 등록 요청을 한 회사 타입 정보 중 적어도 일부가 될 수 있다. 다만, 여기서 기재한 것에 한정할 것은 아니고, 통상적으로 인정되는 차등적 서비스가 제공될 수 있는 다양한 조건 정보를 포함한다.The service characteristics include cost information provided by the user who requested transaction registration related to license management, time zone information for transaction registration related to license management, region information for transaction registration service related to license management, and transaction registration related to license management. It may be at least part of the type of company that made the request. However, the present invention is not limited to the above description and includes various condition information in which a generally accepted differential service can be provided.

한편, 새로운 머클 트리 생성이 시작되고, 라이센스 관리와 관련한 트랜잭션이 없는 상태에서 소정의 조건이 만족되면, 라이센스 관리 서버(300)는, 소정의 메시지 데이터가 첫번째 리프 노드와 두번째 리프 노드에 할당된 머클 트리를 생성하거나 생성하도록 지원하고, 머클 트리의 루트값 또는 이를 가공한 값을 제2 블록체인 데이터베이스에 등록하거나 등록하도록 지원할 수 있다. 이 경우에는 리프 노드 2개짜리 머클 트리가 생성될 수도 있는 것이다.On the other hand, when a new Merkle tree generation is started and a predetermined condition is satisfied in a state where there is no transaction related to license management, the license management server 300 determines whether the license message has been assigned to the first leaf node and the second leaf node. It is possible to support the creation or creation of the tree, and to register or register the root value of the Merkle tree or the processed value in the second blockchain database. In this case, a two leaf node Merkle tree may be created.

한편, 전술한 것처럼 라이센스 관리 서버(300)가 특정 해시값과 적어도 하나의 이웃 해시값을 소정의 제1 데이터 구조로 저장하고, 이후 제1 데이터 구조와 동일한 형태의 제2 데이터 구조를 저장하여 관리하는 경우, 제1 데이터 구조와 제2 데이터 구조는 체인 형태로 연결될 수 있다. 특히, 제1 데이터 구조 및 제2 데이터 구조가 머클 트리인 경우, 제1 데이터 구조의 루트값 또는 루트값의 해시값이 제2 데이터 구조의 첫번째 리프 노드에 할당될 수 있다.Meanwhile, as described above, the license management server 300 stores the specific hash value and the at least one neighbor hash value in a predetermined first data structure, and then stores and manages a second data structure having the same form as the first data structure. In this case, the first data structure and the second data structure may be connected in a chain form. In particular, when the first data structure and the second data structure are Merkle trees, a root value of the first data structure or a hash value of the root value may be assigned to the first leaf node of the second data structure.

도 6은 본 발명의 일 실시예에 따라 제2 데이터 구조로서 생성된 머클 트리를 도시한 도면이다.6 illustrates a Merkle tree generated as a second data structure according to an embodiment of the present invention.

도 6을 참조하면, 도 5의 머클 트리(tree_id=0)의 루트값(hex(h0123))이 새로운 머클 트리의 첫번째 리프 노드(h4 노드)에 할당되었음을 알 수 있다(sha256digest(input4)). 본 발명은 이와 같이 트랜잭션 발생시 생성되는 복수의 데이터 구조를 연결함으로써 중간에 데이터가 변조가 발생되는 경우라도 쉽게 트래킹이 가능하여 데이터 integrity를 향상시키는 장점을 가진다.Referring to FIG. 6, it can be seen that the root value hex (h0123) of the merkle tree (tree_id = 0) of FIG. 5 is allocated to the first leaf node (h4 node) of the new merkle tree (sha256digest (input4)). The present invention has an advantage of improving data integrity by easily tracking even when data is tampered with by connecting a plurality of data structures generated when a transaction occurs.

또한, 이상 설명된 본 발명에 따른 실시예들은 다양한 컴퓨터 구성요소를 통하여 수행될 수 있는 프로그램 명령어의 형태로 구현되어 컴퓨터 판독 가능한 기록 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능한 기록 매체는 프로그램 명령어, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 컴퓨터 판독 가능한 기록 매체에 기록되는 프로그램 명령어는 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능한 기록 매체의 예에는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 ROM, RAM, 플래시 메모리 등과 같은 프로그램 명령어를 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령어의 예에는, 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함된다. 상기 하드웨어 장치는 본 발명에 따른 처리를 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.In addition, the embodiments according to the present invention described above may be implemented in the form of program instructions that may be executed by various computer components, and may be recorded in a computer-readable recording medium. The computer-readable recording medium may include program instructions, data files, data structures, etc. alone or in combination. Program instructions recorded on the computer-readable recording medium may be those specially designed and configured for the present invention, or may be known and available to those skilled in the computer software arts. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks and magnetic tape, optical recording media such as CD-ROMs, DVDs, and magneto-optical media such as floptical disks. media), and hardware devices specifically configured to store and execute program instructions, such as ROM, RAM, flash memory, and the like. Examples of program instructions include not only machine code generated by a compiler, but also high-level language code that can be executed by a computer using an interpreter or the like. The hardware device may be configured to operate as one or more software modules to perform the process according to the invention, and vice versa.

이상에서 본 발명이 구체적인 구성요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나, 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명이 상기 실시예들에 한정되는 것은 아니며, 본 발명이 속하는 기술분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형을 꾀할 수 있다.Although the present invention has been described by specific embodiments such as specific components and the like, but the embodiments and the drawings are provided to assist in a more general understanding of the present invention, the present invention is not limited to the above embodiments. For those skilled in the art, various modifications and variations can be made from these descriptions.

따라서, 본 발명의 사상은 상기 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등하게 또는 등가적으로 변형된 모든 것들은 본 발명의 사상의 범주에 속한다고 할 것이다.Accordingly, the spirit of the present invention should not be limited to the above-described embodiments, and all of the equivalents or equivalents of the claims, as well as the appended claims, fall within the scope of the spirit of the present invention. I will say.

110: 사용자 단말,
200: 소프트웨어 제공자 단말,
300: 라이센스 관리 서버,
310: 통신부,
320: 프로세서,
410: 블록체인 데이터베이스
420: 상태 데이터베이스
110: user terminal,
200: software provider terminal,
300: license management server,
310: communication unit,
320: processor,
410: blockchain database
420: State database

Claims (24)

블록체인 기반의 소프트웨어 라이센스를 관리하는 방법에 있어서,
(a) 소프트웨어 제공자 단말로부터 소프트웨어에 대한 라이센스 발급 요청 트랜잭션이 획득되면, 라이센스 관리 서버가, 상기 라이센스 발급 요청 트랜잭션의 유효 여부를 확인하여 유효일 경우, 라이센스 발급 스마트 컨트렉트 - 상기 라이센스 발급 스마트 컨트렉트는 실행 가능한 바이트 코드로 컴파일되어 적어도 하나의 컴퓨팅 장치 상에서 실행될 수 있는 소스 코드이고, 상기 소프트웨어에 대한 식별값인 소프트웨어 식별값에 대응하는 라이센스를 발급하여 주기 위하여 미리 정해진 절차를 수행하도록 구성된 것임 - 를 실행하는 단계; 및
(b) 상기 라이센스 관리 서버가, 상기 라이센스 발급 스마트 컨트렉트에 의해 상기 소프트웨어 식별값에 대응하는 라이센스 식별값이 생성되면, 상기 라이센스 식별값을 포함하는 라이센스 발급 정보를 상기 소프트웨어 제공자 단말로 전송하거나 상기 라이센스 관리 서버에 연동되는 타 장치로 하여금 상기 라이센스 발급 정보를 상기 소프트웨어 제공자 단말로 전송하도록 지원함으로써 상기 소프트웨어 제공자 단말로 하여금 상기 라이센스 식별값을 상기 소프트웨어 식별값과 매칭하여 관리하도록 하고, 상기 라이센스 발급 정보를 블록체인 데이터베이스에 등록하거나 상기 라이센스 관리 서버에 연동되는 타 장치로 하여금 상기 라이센스 발급 정보를 블록체인 데이터베이스에 등록하도록 지원하며, 상기 라이센스 식별값과 이에 대응되는 라이센스 상태 정보를 상태 데이터베이스에 등록하는 단계;
를 포함하는 것을 특징으로 하는 방법.
In the blockchain-based software license management method,
(a) If a license issuance request transaction for the software is obtained from the software provider terminal, the license management server checks whether the license issuance request transaction is valid and is valid, and if it is valid, a license issuing smart contract-the license issuing smart contract. Is source code that can be compiled into executable bytecode and executed on at least one computing device, and is configured to perform a predetermined procedure to issue a license corresponding to a software identification value that is an identification value for the software. Executing; And
(b) when the license management server generates a license identification value corresponding to the software identification value by the license issuance smart contract, transmits license issuance information including the license identification value to the software provider terminal; By supporting other devices linked to the license management server to transmit the license issuance information to the software provider terminal, the software provider terminal matches the license identification value with the software identification value, and issues the license. Register information in the blockchain database or allow other devices linked to the license management server to register the license issuance information in the blockchain database, and the license identification value and the corresponding license Registering the switch status information with the state database;
Method comprising a.
제1항에 있어서,
상기 라이센스 상태 정보는, 상기 소프트웨어 식별값, 상기 라이센스의 등록 시각 정보, 상기 라이센스의 활성화 상태 정보, 상기 라이센스의 소유자 정보, 상기 라이센스의 활성화 코드 정보, 및 상기 라이센스의 종료 시각 정보 중 적어도 하나를 포함하는 것을 특징으로 하는 방법.
The method of claim 1,
The license state information includes at least one of the software identification value, registration time information of the license, activation state information of the license, owner information of the license, activation code information of the license, and end time information of the license. Characterized in that.
제2항에 있어서,
상기 라이센스 상태 정보는, 상기 라이센스의 활성화 이후 종료 시각까지의 규칙 정보를 더 포함하는 것을 특징으로 하는 방법.
The method of claim 2,
The license status information further comprises rule information from the activation of the license until the end time.
제1항에 있어서,
상기 라이센스 관리 서버는, 상기 라이센스 식별값을 상기 소프트웨어 제공자 단말로부터 획득하거나, 상기 소프트웨어 식별값을 참조하여 생성하는 것을 특징으로 하는 방법.
The method of claim 1,
And the license management server obtains the license identification value from the software provider terminal or generates the license identification value with reference to the software identification value.
블록체인 기반의 소프트웨어 라이센스를 관리하는 방법에 있어서,
(a) 라이센스 관리 서버가 소프트웨어 제공자 단말로부터의 소프트웨어에 대한 라이센스 발급 요청에 대응하여 라이센스 발급 스마트 컨트렉트에 의해 소프트웨어 식별값에 대응하는 라이센스 식별값을 생성하여 주며, 상기 라이센스 식별값과 이에 대응되는 라이센스 상태 정보를 상태 데이터베이스에 등록한 상태에서, 상기 소프트웨어 제공자 단말로부터 상기 소프트웨어에 대한 라이센스 활성화 요청 트랜잭션 - 상기 라이센스 활성화 요청 트랜잭션은 상기 소프트웨어 식별값, 상기 라이센스 식별값, 상기 소프트웨어에 의해 생성된 퍼블릭키, 및 상기 라이센스 식별값을 상기 소프트웨어에 의해 생성된 프라이빗키로 서명한 라이센스 서명값을 포함함 - 이 획득되면, 상기 라이센스 관리 서버가, 상기 라이센스 활성화 요청 트랜잭션의 유효 여부를 확인하여 유효일 경우, 라이센스 활성화 스마트 컨트렉트 - 상기 라이센스 활성화 스마트 컨트렉트는 실행 가능한 바이트 코드로 컴파일되어 적어도 하나의 컴퓨팅 장치 상에서 실행될 수 있는 소스 코드이고, 상기 라이센스 식별값에 대응하는 상기 소프트웨어의 라이센스를 활성화하기 위하여 미리 정해진 절차를 수행하도록 구성된 것임 - 를 실행하는 단계; 및
(b) 상기 라이센스 관리 서버가, 상기 라이센스 활성화 스마트 컨트렉트에 의해 상기 활성화 요청 트랜잭션에 포함된 상기 퍼블릭키와 상기 라이센스 서명값을 검증하고 검증이 완료되면 상기 라이센스를 활성화시키기 위한 활성화 코드를 생성하며, 상기 활성화 코드를 포함하는 라이센스 활성화 정보를 상기 소프트웨어 제공자 단말로 전송하거나 상기 라이센스 관리 서버에 연동되는 타 장치로 하여금 상기 라이센스 활성화 정보를 상기 소프트웨어 제공자 단말로 전송하도록 지원함으로써 상기 소프트웨어 제공자 단말로 하여금 상기 라이센스 활성화 코드를 이용하여 상기 라이센스 식별값에 대응되는 상기 소프트웨어의 라이센스를 활성화시키도록 하고, 상기 라이센스 활성화 정보를 블록체인 데이터베이스에 등록하거나 상기 라이센스 관리 서버에 연동되는 타 장치로 하여금 상기 라이센스 활성화 정보를 블록체인 데이터베이스에 등록하도록 지원하며, 상기 상태 데이터베이스에 등록된 상기 라이센스 식별값에 대응되는 라이센스 상태 정보를 상기 라이센스 활성화 정보를 참조하여 업데이트하는 단계;
를 포함하는 것을 특징으로 하는 방법.
In the blockchain-based software license management method,
(a) The license management server generates a license identification value corresponding to a software identification value by a license issuing smart contract in response to a license issuance request for software from a software provider terminal, and corresponds to the license identification value and the license identification value. A license activation request transaction for the software from the software provider terminal, wherein the license activation information transaction is registered in the state database, wherein the license activation request transaction is the software identification value, the license identification value, and the public key generated by the software. And a license signature value in which the license identification value is signed with a private key generated by the software. If obtained, the license management server determines whether the license activation request transaction is valid. License Activation Smart Contract, if verified and valid, the License Activation Smart Contract is source code that can be compiled into executable bytecode and executed on at least one computing device, the license of the software corresponding to the license identification value. To perform a predetermined procedure to activate a; And
(b) the license management server verifies the public key and the license signature value included in the activation request transaction by the license activation smart contract, and generates an activation code for activating the license when verification is completed. The software provider terminal may be configured to transmit license activation information including the activation code to the software provider terminal or to allow another device interworking with the license management server to transmit the license activation information to the software provider terminal. The license activation code is used to activate a license of the software corresponding to the license identification value, and register the license activation information in a blockchain database or the license management document. Cause the other device to be linked to the updating to the license condition information corresponding to the license information and the activated support to register with the chain block the database, wherein the license identification value registered in the condition database, referring to the enabled license information;
Method comprising a.
제5항에 있어서,
상기 (b) 단계에서,
상기 라이센스 관리 서버는, 상기 퍼블릭키를 이용하여 상기 라이센스 서명값으로부터 상기 라이센스 식별값을 확인하며, 상기 라이센스 서명값으로부터 확인된 상기 라이센스 식별값과 상기 라이센스 활성화 요청 트랜잭션에 포함된 상기 라이센스 식별값이 일치하는지 확인함으로써 상기 퍼블릭키 및 상기 라이센스 서명값을 검증하는 것을 특징으로 하는 방법.
The method of claim 5,
In step (b),
The license management server checks the license identification value from the license signature value using the public key, and the license identification value confirmed from the license signature value and the license identification value included in the license activation request transaction are determined. Verifying the public key and the license signature value by verifying a match.
제5항에 있어서,
상기 (b) 단계에서,
상기 라이센스 관리 서버는, 상기 라이센스 식별값에 대응되는 라이센스 상태 정보로, 상기 퍼블릭키, 상기 라이센스 활성화 코드, 및 상기 라이센스의 종료 시각 정보 중 적어도 하나를 상기 상태 데이터베이스에 등록하는 것을 특징으로 하는 방법.
The method of claim 5,
In step (b),
And the license management server registers at least one of the public key, the license activation code, and end time information of the license into the state database as license state information corresponding to the license identification value.
제7항에 있어서,
상기 라이센스 관리 서버는, 상기 상태 데이터베이스에서 상기 라이센스 식별값에 대응하는 라이센스 활성화 상태 정보를 활성 상태로 업데이트하는 것을 특징으로 하는 방법.
The method of claim 7, wherein
The license management server, characterized in that for updating the license activation state information corresponding to the license identification value in the state database to an active state.
제5항에 있어서,
상기 활성화 요청 트랜잭션은, 상기 소프트웨어 제공자 단말에 의해 상기 라이센스 식별값과 함께 제공된 상기 소프트웨어가 사용자 단말에서 실행되며 상기 라이센스 식별값이 입력됨으로써 상기 소프트웨어에 의해 상기 사용자 단말에 상기 퍼블릭키와 이와 매칭되는 프라이빗키가 생성되어 저장되며, 상기 퍼블릭키와 상기 프라이빗키를 이용하여 생성된 것을 특징으로 하는 방법.
The method of claim 5,
The activation request transaction is executed by the software provider terminal with the license identification value and the software is executed in the user terminal and the license identification value is inputted by the software to the public terminal and the private key corresponding thereto. The key is generated and stored, characterized in that generated using the public key and the private key.
블록체인 기반의 소프트웨어 라이센스를 관리하는 방법에 있어서,
(a) 라이센스 관리 서버가 소프트웨어 제공자 단말로부터의 소프트웨어에 대한 라이센스 발급 요청에 대응하여 라이센스 발급 스마트 컨트렉트에 의해 소프트웨어 식별값에 대응하는 라이센스 식별값을 생성하여 주며, 상기 라이센스 식별값과 이에 대응되는 라이센스 상태 정보를 상태 데이터베이스에 등록하고, 상기 소프트웨어에 대한 라이센스 활성화 요청 트랜잭션에 대응하여 라이센스 활성화 스마트 컨트렉트에 의해 상기 라이센스를 활성화시키기 위한 활성화 코드를 생성하여 주며, 라이센스 활성화 정보를 참조하여 상기 상태 데이터베이스의 상기 라이센스 상태 정보를 업데이트한 상태에서, 상기 소프트웨어 제공자 단말에서 제공된 상기 소프트웨어에 의해 상기 라이센스 식별값과 상기 라이센스 활성화 코드를 포함하는 라이센스 유효성 확인 요청 트랜잭션이 생성되어 상기 소프트웨어 제공자 단말을 통해 전송되면, 상기 라이센스 관리 서버가, 상기 라이센스 유효성 확인 요청 트랜잭션의 유효 여부를 확인하여 유효일 경우, 라이센스 유효성 확인 스마트 컨트렉트 - 상기 라이센스 유효성 확인 스마트 컨트렉트는 실행 가능한 바이트 코드로 컴파일되어 적어도 하나의 컴퓨팅 장치 상에서 실행될 수 있는 소스 코드이고, 상기 라이센스 식별값에 대응하는 상기 소프트웨어의 라이센스에 대한 유효성을 확인하기 위하여 미리 정해진 절차를 수행하도록 구성된 것임 - 를 실행하는 단계;
(b) 상기 라이센스 관리 서버가, 상기 라이센스 유효성 확인 스마트 컨트렉트에 의해 상기 라이센스 식별값에 대응하여 상기 상태 데이터베이스에 등록된 상기 라이센스 상태 정보로부터 상기 라이센스 식별값과 상기 라이센스 활성화 코드를 확인하여 라이센스의 상태를 확인하며, 상기 라이센스 식별값에 대응하는 라이센스 검증 식별값과 논스값을 생성하고 상기 라이센스 식별값에 대응되는 상기 상태 데이터베이스의 라이센스 검증 상태 정보에 상기 라이센스 검증 식별값과 상기 논스값을 등록하고, 상기 라이센스 검증 식별값과 논스값을 포함하는 서명 요청 트랜잭션을 생성하여 상기 소프트웨어 제공자 단말을 통해 상기 소프트웨어로 전송되도록 하는 단계; 및
(c) 상기 소프트웨어로부터의 상기 라이센스 검증 식별값과 프라이빗키로 상기 논스값을 서명한 서명값을 포함하는 서명 트랜잭션이 상기 소프트웨어 제공자 단말을 통해 획득되면, 상기 라이센스 관리 서버가, 상기 서명 트랜잭션이 유효한지를 확인하여 유효하면 상기 서명 트랜잭션에 대응하는 서명 검증 스마트 컨트렉트를 실행하여, 상기 서명값을 검증하고 그 결과 정보를 블록체인 데이터베이스에 등록하며, 상기 결과 정보를 상기 소프트웨어 제공자 단말을 통해 상기 소프트웨어로 전달함으로써 상기 소프트웨어가 사용자 단말에서 실행되도록 하고, 상기 결과 정보를 참조하여 상기 상태 데이터베이스에 등록된 상기 라이센스 검증 식별값에 대응하는 라이센스 검증 상태 정보를 업데이트하는 단계;
를 포함하는 것을 특징으로 하는 방법.
In the blockchain-based software license management method,
(a) The license management server generates a license identification value corresponding to a software identification value by a license issuing smart contract in response to a license issuance request for software from a software provider terminal, and corresponds to the license identification value and the license identification value. Register license status information to a state database, generate an activation code for activating the license by a license activation smart contract in response to a license activation request transaction for the software, and refer to the license activation information. License validity including the license identification value and the license activation code by the software provided from the software provider terminal in the state of updating the license state information of the state database. When a confirmation request transaction is generated and transmitted through the software provider terminal, the license management server checks whether the license validation request transaction is valid and valid, and if it is valid, a license validation smart contract-the license validation smart controller. A contract is source code that can be compiled into executable bytecode and executed on at least one computing device, and configured to perform a predetermined procedure to validate a license of the software corresponding to the license identification value. Executing;
(b) The license management server checks the license identification value and the license activation code from the license status information registered in the state database in correspondence with the license identification value by the license validation smart contract, and licenses the license. Confirm the status of the license identification value, generate a license verification identification value and a nonce value corresponding to the license identification value, and register the license verification identification value and the nonce value in license verification status information of the state database corresponding to the license identification value. Generating a signature request transaction including the license verification identification value and the nonce value and transmitting the signature request transaction to the software through the software provider terminal; And
(c) if a signature transaction including the license verification identification value from the software and a signature value signing the nonce value with a private key is obtained through the software provider terminal, the license management server determines whether the signature transaction is valid. If it is confirmed and valid, it executes a signature verification smart contract corresponding to the signature transaction, verifies the signature value and registers the result information in the blockchain database, and sends the result information to the software through the software provider terminal. Forwarding the software to be executed in a user terminal, and updating license verification status information corresponding to the license verification identification value registered in the status database with reference to the result information;
Method comprising a.
제10항에 있어서,
상기 (c) 단계에서,
상기 라이센스 관리 서버는, 상기 라이센스 검증 식별값과 매칭되는 상기 라이센스 식별값에 대응하여 상기 상태 데이터베이스에 등록된 라이센스 상태 정보로부터 퍼블릭키를 획득하며, 상기 퍼블릭키를 이용하여 상기 서명값으로부터 상기 논스값을 확인하고, 상기 서명값으로부터 확인한 상기 논스값과 상기 라이센스 검증 식별값에 대응하여 상기 상태 데이터베이스의 상기 라이센스 검증 상태 정보에 등록된 상기 논스값이 일치하는지를 확인하여 상기 서명값을 검증하는 것을 특징으로 하는 방법.
The method of claim 10,
In the step (c),
The license management server obtains a public key from license state information registered in the state database in response to the license identification value matching the license verification identification value, and uses the public key to generate the nonce value from the signature value. Verify the signature value by verifying that the nonce value registered in the license verification state information of the state database corresponds to the nonce value identified from the signature value and the license verification identification value; How to.
제10항에 있어서,
상기 (c) 단계에서,
상기 라이센스 관리 서버는, 상기 라이센스 검증 식별값에 대응하는 상기 상태 데이터베이스의 상기 라이센스 검증 상태 정보에 상기 서명값, 상기 결과 정보, 및 상기 서명값을 검증한 시각 정보 중 적어도 하나를 등록하는 것을 특징으로 하는 방법.
The method of claim 10,
In the step (c),
The license management server registers at least one of the signature value, the result information, and time information of verifying the signature value in the license verification status information of the state database corresponding to the license verification identification value. How to.
블록체인 기반의 소프트웨어 라이센스를 관리하는 라이센스 관리 서버에 있어서,
소프트웨어 제공자 단말로부터 소프트웨어에 대한 라이센스 발급 요청 트랜잭션을 획득하는 통신부; 및
(i) 상기 통신부에서 획득된 상기 라이센스 발급 요청 트랜잭션의 유효 여부를 확인하여 유효일 경우, 라이센스 발급 스마트 컨트렉트 - 상기 라이센스 발급 스마트 컨트렉트는 실행 가능한 바이트 코드로 컴파일되어 적어도 하나의 컴퓨팅 장치 상에서 실행될 수 있는 소스 코드이고, 상기 소프트웨어에 대한 식별값인 소프트웨어 식별값에 대응하는 라이센스를 발급하여 주기 위하여 미리 정해진 절차를 수행하도록 구성된 것임 - 를 실행하는 프로세스, 및 (ii) 상기 라이센스 발급 스마트 컨트렉트에 의해 상기 소프트웨어 식별값에 대응하는 라이센스 식별값이 생성되면, 상기 라이센스 식별값을 포함하는 라이센스 발급 정보를 상기 소프트웨어 제공자 단말로 전송하거나 상기 라이센스 관리 서버에 연동되는 타 장치로 하여금 상기 라이센스 발급 정보를 상기 소프트웨어 제공자 단말로 전송하도록 지원함으로써 상기 소프트웨어 제공자 단말로 하여금 상기 라이센스 식별값을 상기 소프트웨어 식별값과 매칭하여 관리하도록 하고, 상기 라이센스 발급 정보를 블록체인 데이터베이스에 등록하거나 상기 라이센스 관리 서버에 연동되는 타 장치로 하여금 상기 라이센스 발급 정보를 블록체인 데이터베이스에 등록하도록 지원하며, 상기 라이센스 식별값과 이에 대응되는 라이센스 상태 정보를 상태 데이터베이스에 등록하는 프로세스를 수행하는 프로세서;
를 포함하는 것을 특징으로 하는 라이센스 관리 서버.
A license management server that manages blockchain-based software licenses,
A communication unit for obtaining a license issuance request transaction for software from a software provider terminal; And
(i) if the license issuance request transaction obtained from the communication unit is valid and valid, a license issuance smart contract-the license issuance smart contract is compiled into executable bytecode and executed on at least one computing device; And source code, which is configured to perform a predetermined procedure for issuing a license corresponding to a software identification value that is an identification value for the software, and (ii) the license issuing smart contract. When a license identification value corresponding to the software identification value is generated by the third party, the license issuance information including the license identification value is transmitted to the software provider terminal or the other device linked to the license management server causes the license issuing information to be transmitted. To transmit the license identification value to the software identification value by managing the transmission to the software provider terminal, and register the license issuing information in a blockchain database or interworking with the license management server. A processor for allowing another device to register the license issuing information in a blockchain database and performing a process of registering the license identification value and corresponding license status information in a state database;
License management server comprising a.
제13항에 있어서,
상기 라이센스 상태 정보는, 상기 소프트웨어 식별값, 상기 라이센스의 등록 시각 정보, 상기 라이센스의 활성화 상태 정보, 상기 라이센스의 소유자 정보, 상기 라이센스의 활성화 코드 정보, 및 상기 라이센스의 종료 시각 정보 중 적어도 하나를 포함하는 것을 특징으로 하는 라이센스 관리 서버.
The method of claim 13,
The license state information includes at least one of the software identification value, registration time information of the license, activation state information of the license, owner information of the license, activation code information of the license, and end time information of the license. License management server, characterized in that.
제14항에 있어서,
상기 라이센스 상태 정보는, 상기 라이센스의 활성화 이후 종료 시각까지의 규칙 정보를 더 포함하는 것을 특징으로 하는 라이센스 관리 서버.
The method of claim 14,
The license status information further includes rule information from the activation of the license until the end time.
제13항에 있어서,
상기 프로세서는, 상기 라이센스 식별값을 상기 소프트웨어 제공자 단말로부터 획득하거나, 상기 소프트웨어 식별값을 참조하여 생성하는 것을 특징으로 하는 라이센스 관리 서버.
The method of claim 13,
And the processor obtains the license identification value from the software provider terminal or generates the license identification value with reference to the software identification value.
블록체인 기반의 소프트웨어 라이센스를 관리하는 라이센스 관리 서버에 있어서,
상기 라이센스 관리 서버가 소프트웨어 제공자 단말로부터의 소프트웨어에 대한 라이센스 발급 요청에 대응하여 라이센스 발급 스마트 컨트렉트에 의해 소프트웨어 식별값에 대응하는 라이센스 식별값을 생성하여 주며, 상기 라이센스 식별값과 이에 대응되는 라이센스 상태 정보를 상태 데이터베이스에 등록한 상태에서, 상기 소프트웨어 제공자 단말로부터 상기 소프트웨어에 대한 라이센스 활성화 요청 트랜잭션 - 상기 라이센스 활성화 요청 트랜잭션은 상기 소프트웨어 식별값, 상기 라이센스 식별값, 상기 소프트웨어에 의해 생성된 퍼블릭키, 및 상기 라이센스 식별값을 상기 소프트웨어에 의해 생성된 프라이빗키로 서명한 라이센스 서명값을 포함함 - 을 획득하는 통신부; 및
(i) 상기 통신부에서 획득된 상기 라이센스 활성화 요청 트랜잭션의 유효 여부를 확인하여 유효일 경우, 라이센스 활성화 스마트 컨트렉트 - 상기 라이센스 활성화 스마트 컨트렉트는 실행 가능한 바이트 코드로 컴파일되어 적어도 하나의 컴퓨팅 장치 상에서 실행될 수 있는 소스 코드이고, 상기 라이센스 식별값에 대응하는 상기 소프트웨어의 라이센스를 활성화하기 위하여 미리 정해진 절차를 수행하도록 구성된 것임 - 를 실행하는 프로세스, 및 (ii) 상기 라이센스 활성화 스마트 컨트렉트에 의해 상기 활성화 요청 트랜잭션에 포함된 상기 퍼블릭키와 상기 라이센스 서명값을 검증하고 검증이 완료되면 상기 라이센스를 활성화시키기 위한 활성화 코드를 생성하며, 상기 활성화 코드를 포함하는 라이센스 활성화 정보를 상기 소프트웨어 제공자 단말로 전송하거나 상기 라이센스 관리 서버에 연동되는 타 장치로 하여금 상기 라이센스 활성화 정보를 상기 소프트웨어 제공자 단말로 전송하도록 지원함으로써 상기 소프트웨어 제공자 단말로 하여금 상기 라이센스 활성화 코드를 이용하여 상기 라이센스 식별값에 대응되는 상기 소프트웨어의 라이센스를 활성화시키도록 하고, 상기 라이센스 활성화 정보를 블록체인 데이터베이스에 등록하거나 상기 라이센스 관리 서버에 연동되는 타 장치로 하여금 상기 라이센스 활성화 정보를 블록체인 데이터베이스에 등록하도록 지원하며, 상기 상태 데이터베이스에 등록된 상기 라이센스 식별값에 대응되는 라이센스 상태 정보를 상기 라이센스 활성화 정보를 참조하여 업데이트하는 프로세스를 수행하는 것을 특징으로 하는 라이센스 관리 서버.
A license management server that manages blockchain-based software licenses,
The license management server generates a license identification value corresponding to a software identification value by a license issuing smart contract in response to a license issuance request for software from a software provider terminal, and the license identification value and corresponding license is generated. In a state in which state information is registered in a state database, a license activation request transaction for the software from the software provider terminal-the license activation request transaction includes the software identification value, the license identification value, a public key generated by the software, and A communication signature to obtain the license identification value, the license signature value being signed with a private key generated by the software; And
(i) if the license activation request transaction obtained from the communication unit is valid and valid, a license activation smart contract-the license activation smart contract is compiled into executable bytecode and executed on at least one computing device And source code that is capable of performing a predetermined procedure to activate a license of the software corresponding to the license identification value, and (ii) the activation by the license activation smart contract. The software provider terminal verifies the public key and the license signature value included in the request transaction, generates an activation code for activating the license when verification is completed, and receives license activation information including the activation code. The software provider terminal by using the license activation code to allow the other device linked to the license management server to transmit the license activation information to the software provider terminal. And activate the license of the license activation information in the blockchain database or register the license activation information in the blockchain database or allow other devices linked to the license management server to register the license activation information in the blockchain database. And updating the license status information corresponding to the license identification value with reference to the license activation information.
제17항에 있어서,
프로세서는,
상기 (ii) 프로세스에서,
상기 퍼블릭키를 이용하여 상기 라이센스 서명값으로부터 상기 라이센스 식별값을 확인하며, 상기 라이센스 서명값으로부터 확인된 상기 라이센스 식별값과 상기 라이센스 활성화 요청 트랜잭션에 포함된 상기 라이센스 식별값이 일치하는지 확인함으로써 상기 퍼블릭키 및 상기 라이센스 서명값을 검증하는 것을 특징으로 하는 라이센스 관리 서버.
The method of claim 17,
The processor,
In the above (ii) process,
Verifying the license identification value from the license signature value by using the public key, and verifying that the license identification value identified from the license signature value and the license identification value included in the license activation request transaction match. And verifying a key and the license signature value.
제17항에 있어서,
프로세서는,
상기 (ii) 프로세스에서,
상기 라이센스 식별값에 대응되는 라이센스 상태 정보로, 상기 퍼블릭키, 상기 라이센스 활성화 코드, 및 상기 라이센스의 종료 시각 정보 중 적어도 하나를 상기 상태 데이터베이스에 등록하는 것을 특징으로 하는 라이센스 관리 서버.
The method of claim 17,
The processor,
In the above (ii) process,
And at least one of the public key, the license activation code, and end time information of the license as license status information corresponding to the license identification value, in the status database.
제19항에 있어서,
상기 프로세서는, 상기 상태 데이터베이스에서 상기 라이센스 식별값에 대응하는 라이센스 활성화 상태 정보를 활성 상태로 업데이트하는 것을 특징으로 하는 라이센스 관리 서버.
The method of claim 19,
And the processor is configured to update license activation state information corresponding to the license identification value to the active state in the state database.
제17항에 있어서,
상기 활성화 요청 트랜잭션은, 상기 소프트웨어 제공자 단말에 의해 상기 라이센스 식별값과 함께 제공된 상기 소프트웨어가 사용자 단말에서 실행되며 상기 라이센스 식별값이 입력됨으로써 상기 소프트웨어에 의해 상기 사용자 단말에 상기 퍼블릭키와 이와 매칭되는 프라이빗키가 생성되어 저장되며, 상기 퍼블릭키와 상기 프라이빗키를 이용하여 생성된 것을 특징으로 하는 라이센스 관리 서버.
The method of claim 17,
The activation request transaction is executed by the software provider terminal with the license identification value and the software is executed in the user terminal and the license identification value is inputted by the software to the public terminal and the private key corresponding thereto. The key is generated and stored, the license management server, characterized in that generated using the public key and the private key.
블록체인 기반의 소프트웨어 라이센스를 관리하는 라이센스 관리 서버에 있어서,
상기 라이센스 관리 서버가 소프트웨어 제공자 단말로부터의 소프트웨어에 대한 라이센스 발급 요청에 대응하여 라이센스 발급 스마트 컨트렉트에 의해 소프트웨어 식별값에 대응하는 라이센스 식별값을 생성하여 주며, 상기 라이센스 식별값과 이에 대응되는 라이센스 상태 정보를 상태 데이터베이스에 등록하고, 상기 소프트웨어에 대한 라이센스 활성화 요청 트랜잭션에 대응하여 라이센스 활성화 스마트 컨트렉트에 의해 상기 라이센스를 활성화시키기 위한 활성화 코드를 생성하여 주며, 라이센스 활성화 정보를 참조하여 상기 상태 데이터베이스의 상기 라이센스 상태 정보를 업데이트한 상태에서, 상기 소프트웨어 제공자 단말에서 제공된 상기 소프트웨어에 의해 생성된 상기 라이센스 식별값과 상기 라이센스 활성화 코드를 포함하는 라이센스 유효성 확인 요청 트랜잭션을 상기 소프트웨어 제공자 단말을 통해 획득하는 통신부; 및
(i) 상기 통신부에서 획득된 상기 라이센스 유효성 확인 요청 트랜잭션의 유효 여부를 확인하여 유효일 경우, 라이센스 유효성 확인 스마트 컨트렉트 - 상기 라이센스 유효성 확인 스마트 컨트렉트는 실행 가능한 바이트 코드로 컴파일되어 적어도 하나의 컴퓨팅 장치 상에서 실행될 수 있는 소스 코드이고, 상기 라이센스 식별값에 대응하는 상기 소프트웨어의 라이센스에 대한 유효성을 확인하기 위하여 미리 정해진 절차를 수행하도록 구성된 것임 - 를 실행하는 프로세스, (ii) 상기 라이센스 유효성 확인 스마트 컨트렉트에 의해 상기 라이센스 식별값에 대응하여 상기 상태 데이터베이스에 등록된 상기 라이센스 상태 정보로부터 상기 라이센스 식별값과 상기 라이센스 활성화 코드를 확인하여 라이센스의 상태를 확인하며, 상기 라이센스 식별값에 대응하는 라이센스 검증 식별값과 논스값을 생성하고 상기 라이센스 식별값에 대응되는 상기 상태 데이터베이스의 라이센스 검증 상태 정보에 상기 라이센스 검증 식별값과 상기 논스값을 등록하고, 상기 라이센스 검증 식별값과 논스값을 포함하는 서명 요청 트랜잭션을 생성하여 상기 소프트웨어 제공자 단말을 통해 상기 소프트웨어로 전송되도록 하는 프로세스, 및 (iii) 상기 소프트웨어로부터의 상기 라이센스 검증 식별값과 프라이빗키로 상기 논스값을 서명한 서명값을 포함하는 서명 트랜잭션이 상기 소프트웨어 제공자 단말을 통해 획득되면, 상기 서명 트랜잭션이 유효한지를 확인하여 유효하면 상기 서명 트랜잭션에 대응하는 서명 검증 스마트 컨트렉트를 실행하여, 상기 서명값을 검증하고 그 결과 정보를 블록체인 데이터베이스에 등록하며, 상기 결과 정보를 상기 소프트웨어 제공자 단말을 통해 상기 소프트웨어로 전달함으로써 상기 소프트웨어가 사용자 단말에서 실행되도록 하고, 상기 결과 정보를 참조하여 상기 상태 데이터베이스에 등록된 상기 라이센스 검증 식별값에 대응하는 라이센스 검증 상태 정보를 업데이트하는 프로세스를 수행하는 프로세서;
를 포함하는 것을 특징으로 하는 라이센스 관리 서버.
A license management server that manages blockchain-based software licenses,
The license management server generates a license identification value corresponding to a software identification value by a license issuing smart contract in response to a license issuance request for software from a software provider terminal, and the license identification value and corresponding license is generated. Register status information in a status database, generate an activation code for activating the license by a license activation smart contract in response to a license activation request transaction for the software, and refer to the license activation information for the status database. A license including the license identification value and the license activation code generated by the software provided by the software provider terminal in the state of updating the license status information of A communication unit for acquiring a license validation request transaction through the software provider terminal; And
(i) if the license validation request transaction obtained from the communication unit is valid and valid, a license validation smart contract-the license validation smart contract is compiled into executable bytecode and at least one computing Source code executable on the device and configured to perform a predetermined procedure to validate the license of the software corresponding to the license identification value, (ii) the license validation smart controller Confirms the license identification value and the license activation code from the license status information registered in the state database in response to the license identification value, and confirms the license status. Generate a corresponding license verification identification value and a nonce value, register the license verification identification value and the nonce value in license verification status information of the state database corresponding to the license identification value, and register the license verification identification value and the nonce value. A process for generating a signature request transaction that includes a signature request transaction to be transmitted to the software through the software provider terminal, and (iii) a signature value that signs the nonce value with the license verification identification value and private key from the software. If a transaction is obtained through the software provider terminal, verify that the signature transaction is valid and, if valid, execute a signature verification smart contract corresponding to the signature transaction, verifying the signature value and returning the information to the blockchain database. Enroll in License verification status information corresponding to the license verification identification value registered in the status database by executing the software on the user terminal by transferring the result information to the software through the software provider terminal and referring to the result information. A processor for performing a process of updating a;
License management server comprising a.
제22항에 있어서,
상기 프로세서는,
상기 (iii) 프로세스에서,
상기 라이센스 검증 식별값과 매칭되는 상기 라이센스 식별값에 대응하여 상기 상태 데이터베이스에 등록된 라이센스 상태 정보로부터 퍼블릭키를 획득하며, 상기 퍼블릭키를 이용하여 상기 서명값으로부터 상기 논스값을 확인하고, 상기 서명값으로부터 확인한 상기 논스값과 상기 라이센스 검증 식별값에 대응하여 상기 상태 데이터베이스의 상기 라이센스 검증 상태 정보에 등록된 상기 논스값이 일치하는지를 확인하여 상기 서명값을 검증하는 것을 특징으로 하는 라이센스 관리 서버.
The method of claim 22,
The processor,
In the above (iii) process,
Obtain a public key from license status information registered in the state database in response to the license identification value matching the license verification identification value, verify the nonce value from the signature value using the public key, and sign the signature. And verifying the signature value by checking whether the nonce value identified from the value and the nonce value registered in the license verification state information of the state database correspond to the license verification identification value.
제22항에 있어서,
상기 프로세서는,
상기 (iii) 프로세스에서,
상기 라이센스 검증 식별값에 대응하는 상기 상태 데이터베이스의 상기 라이센스 검증 상태 정보에 상기 서명값, 상기 결과 정보, 및 상기 서명값을 검증한 시각 정보 중 적어도 하나를 등록하는 것을 특징으로 하는 라이센스 관리 서버.
The method of claim 22,
The processor,
In the above (iii) process,
And at least one of the signature value, the result information, and time information of verifying the signature value in the license verification status information of the state database corresponding to the license verification identification value.
KR1020170138692A 2017-10-24 2017-10-24 Method for managing license of software based on blockchain, and license management server using the same KR101978185B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170138692A KR101978185B1 (en) 2017-10-24 2017-10-24 Method for managing license of software based on blockchain, and license management server using the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170138692A KR101978185B1 (en) 2017-10-24 2017-10-24 Method for managing license of software based on blockchain, and license management server using the same

Publications (2)

Publication Number Publication Date
KR20190045754A KR20190045754A (en) 2019-05-03
KR101978185B1 true KR101978185B1 (en) 2019-08-28

Family

ID=66582952

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170138692A KR101978185B1 (en) 2017-10-24 2017-10-24 Method for managing license of software based on blockchain, and license management server using the same

Country Status (1)

Country Link
KR (1) KR101978185B1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102057570B1 (en) * 2019-09-16 2020-01-23 (주) 모로보기 Blockchain network
EP3920055A1 (en) * 2020-06-02 2021-12-08 Siemens Aktiengesellschaft Secured software license management system and a method thereof

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111899103B (en) 2018-10-25 2024-05-03 创新先进技术有限公司 Transaction processing method and device based on blockchain and electronic equipment
KR102253238B1 (en) * 2020-12-09 2021-05-18 넷마블 주식회사 Method of verifying to distributed compiling

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015219911A (en) 2014-05-16 2015-12-07 ソーラーウインズ ワールドワイド、エルエルシー Reusable license activation key
JP2016071644A (en) 2014-09-30 2016-05-09 富士通エフ・アイ・ピー株式会社 License management method and license management system
KR101628005B1 (en) 2015-02-05 2016-06-13 주식회사 코인플러그 Copyright detection system that is based on the block chain

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101691355B1 (en) * 2014-12-29 2017-01-10 주식회사 디지캡 License verification system for web application

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015219911A (en) 2014-05-16 2015-12-07 ソーラーウインズ ワールドワイド、エルエルシー Reusable license activation key
JP2016071644A (en) 2014-09-30 2016-05-09 富士通エフ・アイ・ピー株式会社 License management method and license management system
KR101628005B1 (en) 2015-02-05 2016-06-13 주식회사 코인플러그 Copyright detection system that is based on the block chain

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102057570B1 (en) * 2019-09-16 2020-01-23 (주) 모로보기 Blockchain network
EP3920055A1 (en) * 2020-06-02 2021-12-08 Siemens Aktiengesellschaft Secured software license management system and a method thereof

Also Published As

Publication number Publication date
KR20190045754A (en) 2019-05-03

Similar Documents

Publication Publication Date Title
KR101849917B1 (en) Method for providing certificate service based on smart contract and server using the same
KR101849912B1 (en) Method for providing certificate service based on smart contract and server using the same
CN110268678B (en) PKI-based login method for authentication agent user and server using same
KR20230163971A (en) Method for providing certificate service based on smart contract and server using the same
KR101816651B1 (en) Method for providing login flow via authentication based on public key infrastructure in response to user’s login request for using service provided by service provider server in use of blockchain database with unspent transaction output based protocol and server using the same
KR101978185B1 (en) Method for managing license of software based on blockchain, and license management server using the same
KR102254499B1 (en) Method for oauth service through blockchain, and terminal and server using the same
KR20230163970A (en) Method for providing certificate service based on smart contract and server using the same
KR102116235B1 (en) Method and server for managing user identity using blockchain network, and method and terminal for verifying user using user identity based on blockchain network
KR102192370B1 (en) Method for oauth service through blockchain, and terminal and server using the same
KR101798119B1 (en) Method and server for registering stockholder's list, recording transfer of stock ownership and verifying the registered stockholder's list file
KR101816652B1 (en) Method for providing login flow via authentication based on public key infrastructure in response to user’s login request for using service provided by service provider server in use of merkle tree structure on the basis of unspent transaction output protocol and server using the same
US20140157368A1 (en) Software authentication
KR102118935B1 (en) Method and server for managing user identity using blockchain network, and method and terminal for verifying user using user identity based on blockchain network
KR101849920B1 (en) Method for providing certificate service based on m of n multiple signatures in use of merkle tree structure and server using the same
KR101890584B1 (en) Method for providing certificate service based on m of n multiple signatures and server using the same
KR102118947B1 (en) Method and server for managing user identity using blockchain network, and method and terminal for verifying user using user identity based on blockchain network
CN112702419B (en) Data processing method, device, equipment and storage medium based on block chain
US11615168B2 (en) Method and system for generating and verifying licenses with multiple signatures
KR101849908B1 (en) Method for providing certificate service based on m of n multiple signatures and server using the same
JP2023525576A (en) Scope of control of authentication keys for software updates
KR20180041050A (en) Method for providing certificate service based on m of n multiple signatures in use of merkle tree structure and server using the same
KR101829731B1 (en) Method and server for registering stockholder's list and recording transfer of stock ownership
CN111953477B (en) Terminal equipment, generation method of identification token of terminal equipment and interaction method of client
KR101890587B1 (en) Method for providing certificate service based on m of n multiple signatures in use of merkle tree structure and server using the same

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant