KR20190045754A - 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
KR20190045754A
KR20190045754A KR1020170138692A KR20170138692A KR20190045754A KR 20190045754 A KR20190045754 A KR 20190045754A KR 1020170138692 A KR1020170138692 A KR 1020170138692A KR 20170138692 A KR20170138692 A KR 20170138692A KR 20190045754 A KR20190045754 A KR 20190045754A
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
KR101978185B1 (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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Technology Law (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

According to one embodiment of the present invention, provided is a platooning starting apparatus of a vehicle, which comprises: a communication circuit configured to communicate with at least one external vehicle included in a platooning group with a vehicle; a filter configured to filter particulate matter generated by the vehicle; and a control unit electrically connected with the communication module. If regeneration of the filter is determined to be required during the platooning, at least one of movement operation of the vehicle or a regeneration operation of the filter based on information on an order of the vehicle in the platooning group can be controlled.

Description

블록체인 기반의 소프트웨어 라이센스 관리 방법 및 이를 이용한 라이센스 관리 서버{METHOD FOR MANAGING LICENSE OF SOFTWARE BASED ON BLOCKCHAIN, AND LICENSE MANAGEMENT SERVER USING THE SAME}BACKGROUND OF THE INVENTION 1. Field of the Invention [0001] The present invention relates to a software license management method based on a block chain, and a license management server using the same.

본 발명은 블록체인 기반의 소프트웨어 라이센스 관리 방법 및 이를 이용한 라이센스 관리 서버에 관한 것으로, 보다 상세하게는, 라이센스 발급 요청 트랜잭션에 대응하여 라이센스 발급 스마트 컨트렉트를 실행하여 소프트웨어 식별값에 대응하는 라이센스 식별값을 생성하며, 라이센스 식별값을 포함하는 라이센스 발급 정보를 소프트웨어 제공자 단말로 전송하여 라이센스 식별값을 소프트웨어 식별값과 매칭하여 관리하도록 하고, 라이센스 발급 정보를 블록체인 데이터베이스에 등록하며, 라이센스 식별값과 이에 대응되는 라이센스 상태 정보를 상태 데이터베이스에 등록하는 블록체인 기반의 소프트웨어 라이센스 관리 방법 및 이를 이용한 라이센스 관리 서버에 관한 것이다.The present invention relates to a software license management method based on a block chain and a license management server using the method. More particularly, the present invention relates to a software license management method using a block chain, And sends the license issuance information including the license identification value to the software provider terminal to match and manage the license identification value with the software identification value, registers the license issuance information in the block chain database, And registering license state information corresponding to the license state information in the state database, and a license management server using the software chain management method.

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

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

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

본 발명은 상술한 문제점들을 모두 해결하는 것을 그 목적으로 한다.SUMMARY OF THE INVENTION The present invention has been made to solve all the problems described above.

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

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

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

상기 목적을 달성하기 위한 본 발명의 대표적인 구성은 다음과 같다.In order to accomplish the above object, a representative structure of the present invention is as follows.

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

또한, 본 발명의 일 실시예에 따르면, 블록체인 기반의 소프트웨어 라이센스를 관리하는 방법에 있어서, (a) 라이센스 관리 서버가 소프트웨어 제공자 단말로부터의 소프트웨어에 대한 라이센스 발급 요청에 대응하여 라이센스 발급 스마트 컨트렉트에 의해 소프트웨어 식별값에 대응하는 라이센스 식별값을 생성하여 주며, 상기 라이센스 식별값과 이에 대응되는 라이센스 상태 정보를 상태 데이터베이스에 등록한 상태에서, 상기 소프트웨어 제공자 단말로부터 상기 소프트웨어에 대한 라이센스 활성화 요청 트랜잭션 - 상기 라이센스 활성화 요청 트랜잭션은 상기 소프트웨어 식별값, 상기 라이센스 식별값, 상기 소프트웨어에 의해 생성된 퍼블릭키, 및 상기 라이센스 식별값을 상기 소프트웨어에 의해 생성된 프라이빗키로 서명한 라이센스 서명값을 포함함 - 이 획득되면, 상기 라이센스 관리 서버가, 상기 라이센스 활성화 요청 트랜잭션의 유효 여부를 확인하여 유효일 경우, 라이센스 활성화 스마트 컨트렉트 - 상기 라이센스 활성화 스마트 컨트렉트는 실행 가능한 바이트 코드로 컴파일되어 적어도 하나의 컴퓨팅 장치 상에서 실행될 수 있는 소스 코드이고, 상기 라이센스 식별값에 대응하는 상기 소프트웨어의 라이센스를 활성화하기 위하여 미리 정해진 절차를 수행하도록 구성된 것임 - 를 실행하는 단계; 및 (b) 상기 라이센스 관리 서버가, 상기 라이센스 활성화 스마트 컨트렉트에 의해 상기 활성화 요청 트랜잭션에 포함된 상기 퍼블릭키와 상기 라이센스 서명값을 검증하고 검증이 완료되면 상기 라이센스를 활성화시키기 위한 활성화 코드를 생성하며, 상기 활성화 코드를 포함하는 라이센스 활성화 정보를 상기 소프트웨어 제공자 단말로 전송하거나 상기 라이센스 관리 서버에 연동되는 타 장치로 하여금 상기 라이센스 활성화 정보를 상기 소프트웨어 제공자 단말로 전송하도록 지원함으로써 상기 소프트웨어 제공자 단말로 하여금 상기 라이센스 활성화 코드를 이용하여 상기 라이센스 식별값에 대응되는 상기 소프트웨어의 라이센스를 활성화시키도록 하고, 상기 라이센스 활성화 정보를 블록체인 데이터베이스에 등록하거나 상기 라이센스 관리 서버에 연동되는 타 장치로 하여금 상기 라이센스 활성화 정보를 블록체인 데이터베이스에 등록하도록 지원하며, 상기 상태 데이터베이스에 등록된 상기 라이센스 식별값에 대응되는 라이센스 상태 정보를 상기 라이센스 활성화 정보를 참조하여 업데이트하는 단계; 를 포함하는 방법이 제공된다..According to an embodiment of the present invention, there is provided a method for managing a software license based on a block chain, the method comprising the steps of: (a) in response to a license issuance request for software from a software provider terminal, The license identification value corresponding to the software identification value is generated by the software license terminal and the license identification value corresponding to the software identification value is registered in the status database, Wherein the license activation request transaction comprises a software identification value, a license identification value, a public key generated by the software, and a license signature value signed with a private key generated by the software , The license management server verifies the validity of the license activation request transaction and, if valid, a license activated smart contract - the license activated smart contract is compiled into executable bytecode, Executing a predetermined procedure to activate a license of the software corresponding to the license identification value, the source code being executable on a computing device of the computer; 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 transaction, and activates the license when the verification is completed And transmits the license activation information including the activation code to the software provider terminal or to allow another device linked to the license management server to transfer the license activation information to the software provider terminal, To activate the license of the software corresponding to the license identification value using the license activation code, to register the license activation information in the block chain database, Updating the license status information corresponding to the license identification value registered in the status database with reference to the license activation information, by supporting another device connected to the server to register the license activation information in the block chain database; Is provided.

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

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

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

본 발명에 의하면, 다음과 같은 효과가 있다.The present invention has the following effects.

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

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

또한, 본 발명에 의하면 소프트웨어의 라이센스에 대한 무결성이 검증됨으로써 라이센스의 위변조가 이루어지지 않았다는 점이 보장되는 효과가 있다.Further, according to the present invention, the integrity of the license of the software is verified, so that there is an advantage that the forgery and falsification of the license is not ensured.

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

후술하는 본 발명에 대한 상세한 설명은, 본 발명이 실시될 수 있는 특정 실시예를 예시로서 도시하는 첨부 도면을 참조한다. 이들 실시예는 당업자가 본 발명을 실시할 수 있기에 충분하도록 상세히 설명된다. 본 발명의 다양한 실시예는 서로 다르지만 상호 배타적일 필요는 없음이 이해되어야 한다. 예를 들어, 여기에 기재되어 있는 특정 형상, 구조 및 특성은 일 실시예에 관련하여 본 발명의 정신 및 범위를 벗어나지 않으면서 다른 실시예로 구현될 수 있다. 또한, 각각의 개시된 실시예 내의 개별 구성요소의 위치 또는 배치는 본 발명의 정신 및 범위를 벗어나지 않으면서 변경될 수 있음이 이해되어야 한다. 따라서, 후술하는 상세한 설명은 한정적인 의미로서 취하려는 것이 아니며, 본 발명의 범위는, 적절하게 설명된다면, 그 청구항들이 주장하는 것과 균등한 모든 범위와 더불어 첨부된 청구항에 의해서만 한정된다. 도면에서 유사한 참조부호는 여러 측면에 걸쳐서 동일하거나 유사한 기능을 지칭한다.The following detailed description of the invention refers to the accompanying drawings, which illustrate, 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 features, structures, and characteristics described herein may be implemented in other embodiments without departing from the spirit and scope of the invention in connection with an embodiment. It is also to be understood that the position or arrangement of the individual components within each disclosed embodiment may be varied without departing from the spirit and scope of the invention. The following detailed description is, therefore, not to be taken in a limiting sense, and the scope of the present invention is to be limited only by the appended claims, along with the full scope of equivalents to which such claims are entitled, if properly explained. In the drawings, like reference numerals refer to the same or similar functions throughout the several views.

이하, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있도록 하기 위하여, 본 발명의 바람직한 실시예들에 관하여 첨부된 도면을 참조하여 상세히 설명하기로 한다.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 carry out the present invention.

도 1은 본 발명의 일 실시예에 따라 블록체인 기반의 소프트웨어 라이센스를 관리하는 라이센스 관리 서버를 개략으로 도시한 것이고, 라이센스 관리 서버(300)는 통신부(310)와 프로세서(320)를 포함할 수 있다. 동일한 참조 부호를 이용하여 나타낸 것은 설명의 편의를 위한 것일 뿐, 이들 개별 장치들이 동일하다는 의미로 의도된 것은 아니다. 그리고, 본 발명의 다른 실시예에서의 방법은 서버를 상이하게 구성하여 해당 방법을 수행하거나 동일한 서버(300)를 통해 해당 방법을 수행할 수도 있다.FIG. 1 schematically illustrates a license management server for managing software licenses based on a block chain according to an embodiment of the present invention. The license management server 300 may include a communication unit 310 and a processor 320 have. The use of the same reference numerals is for convenience of explanation only and is 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 corresponding method, or may perform the corresponding method 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 functions in relation to software license management. Also, the license management server 300 may be a server corresponding to each node of the block-chain database, or a server managing each node of the block-chain database. In addition, the license management server 300 can manage status information of the software license through communication with the status database. The block-chain database may be composed of a first block-chain database and a second block-chain database. In this case, the first block chain database may be a private block chain database, and the second block chain database may be a private block chain database or a public block chain database.

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

이와 같은 컴퓨팅 장치의 통신부(310)는 연동되는 타 컴퓨팅 장치와 요청과 응답을 송수신할 수 있는바, 일 예시로서 그러한 요청과 응답은 동일한 TCP 세션에 의하여 이루어질 수 있지만, 이에 한정되지는 않는바, 예컨대 UDP 데이터그램으로서 송수신될 수도 있을 것이다.The communication unit 310 of such a computing device can send and receive requests and responses to and from other interworking computing devices. As an example, such requests and responses can be made by the same TCP session, For example, as a UDP datagram.

또한, 컴퓨팅 장치의 프로세서(320)는 MPU(Micro Processing Unit) 또는 CPU(Central Processing Unit), 캐쉬 메모리(Cache Memory), 데이터 버스(Data Bus) 등의 하드웨어 구성을 포함할 수 있다. 또한, 운영체제, 특정 목적을 수행하는 애플리케이션의 소프트웨어 구성을 더 포함할 수도 있다.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, and a data bus. It may further include a software configuration of an operating system and an application that performs 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 as follows.

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

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

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

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

이때, 라이센스 발급 스마트 컨트렉트는 실행 가능한 바이트 코드로 컴파일되어 적어도 하나의 컴퓨팅 장치 상에서 실행될 수 있는 소스 코드이며, 라이센스 발급 요청 트랜잭션에 대응하여 소프트웨어에 대한 라이센스를 발급하여 주기 위하여 미리 정해진 절차를 수행하도록 구성될 수 있다.At this time, the license-issued 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 issue a license to the software in response to the license issuing request transaction Lt; / RTI >

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

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

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

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

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

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

또한, 상기에서는 소프트웨어에 대하여 하나의 라이센스 발급을 예시적으로 설명하였지만, 이와는 달리, 해당 소프트웨어에 대하여 특정 개수의 라이센스 발급이 요청될 수 있으며, 이 경우, 라이센스 관리 서버(300)가 발급 요청된 개수에 대응하는 회수만큼 라이센스 발급 스마트 컨트렉트를 수행하는 해당 소프트웨어에 대하여 요청된 개수만큼의 라이센스를 발급하여 주거나, 소프트웨어 제공자 단말(200)이 발급 요청된 개수에 대응하는 회수만큼 라이센스 발급 요청 트랜잭션을 라이센스 관리 서버(300)로 전송하여 줄 수도 있다.In the above description, one license issuance is exemplarily described for the software. Alternatively, a certain number of license issuance requests may be issued to the corresponding software, and in this case, the license management server 300 determines the number The software provider terminal 200 issues a license issuance request transaction a number of times corresponding to the number requested to be issued by the software provider terminal 200 Or may be transferred 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.

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

그리고, 사용자에 의해 라이센스 식별값이 입력되면, 소프트웨어는 사용자 인증을 위한 키페어인 퍼블릭키와 프라이빗 키를 생성하여 사용자 단말(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, and stores the public key and the private key 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 generates 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 with a private key generated by the software, (S21) to the software provider server 200, the software provider server 200 transmits 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 And transmits a license activation request transaction including a license signature value to the license management server 300 (S22).

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

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

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

그러면, 라이센스 관리 서버(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 signature value of the license activation request transaction signifies the license identification value to be activated by using the private key generated by the software, the license management server 300 can acquire The signature value of the license activation request transaction is checked using the generated public key to check the signed license identification value and whether or not the license identification value determined from the signature value matches the license identification value included in the license activation request transaction You can verify the public key and license signature value.

이후, 퍼블릭키와 라이센스 서명값이 검증되면, 라이센스 관리 서버(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 the license (S26), and transmits the license activation information including the activation code to the software provider terminal 200 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, activates the license of the software corresponding to the license identification value using the license activation code, It is possible to know information indicating that the license identification value corresponding to the software is activated.

또한, 라이센스 관리 서버(300)는 라이센스 활성화 정보를 블록체인 데이터베이스(410)에 등록하거나 라이센스 관리 서버(300)에 연동되는 타 장치로 하여금 라이센스 활성화 정보를 블록체인 데이터베이스(410)에 등록하도록 지원할 수 있다(S27).The license management server 300 can also register the license activation information in the block chain database 410 or allow another device linked to the license management server 300 to register the license activation information in the block chain database 410 (S27).

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

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

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

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

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

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

그러면, 라이센스 관리 서버(300)의 통신부(310)는 소프트웨어 제공자 단말(200)로부터 전송되는 라이센스 유효성 확인 요청 트랜잭션을 획득하며, 라이센스 관리 서버(300)의 프로세서(320)는 통신부(310)에서 획득된 라이센스 유효성 확인 요청 트랜잭션의 유효성을 검증한다(S53). 일 예로, 라이센스 관리 서버(300)는 획득된 라이센스 유효성 확인 요청 트랜잭션에 대한 포맷 형식의 유효 여부를 확인할 수 있다.The communication unit 310 of the license management server 300 acquires the license validation request transaction transmitted from the software provider terminal 200 and the processor 320 of the license management server 300 acquires And validates the license validation request transaction (S53). For example, the license management server 300 can check whether the format of the acquired 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 the license validation confirmation 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 check the validity of the software license corresponding to the license identification value .

그러면, 라이센스 관리 서버(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 status database 420 in response to the license identification value by the license validation smart contract, (S55). That is, referring to the license identification value, it is confirmed whether the license is issued and activated.

그리고, 라이센스 관리 서버(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), adds the license verification identification value to the license verification status information of the state database 420 corresponding to the license identification value (S57). The 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, S59).

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

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

이때, 라이센스 관리 서버(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 by referring to the license identification value matched with the license verification identification value, and outputs the public key obtained from the state database 420 Verifies the nonce value from the signature value, confirms whether the nonce value registered in the license verification state information of the state database matches the nonce value and the license verification identification value confirmed from the signature value, Can be verified.

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

또한, 라이센스 관리 서버(300)는 검증 결과 정보를 참조하여 상태 데이터베이스(420)에 등록된 라이센스 검증 식별값에 대응하는 라이센스 검증 상태 정보를 업데이트할 수 있다(S64).Also, 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 by referring to the verification result information (S64).

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

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

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

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

그리고, 특정 해시값과 적어도 하나의 이웃 해시값과의 연산은 다양한 해시 함수에 의해 수행될 수 있으며, 해시함수는 MD4 함수, MD5 함수, SHA-0 함수, SHA-1 함수, SHA-224 함수, SHA-256 함수, SHA-384 함수, SHA-512 함수 및 HAS-160 함수를 포함할 수 있으나, 이에 한정되지 않음은 통상의 기술자가 알 수 있을 것이다. 예를 들어 Triple SHA256도 가능할 것이다.The hash function may be an MD4 function, an MD5 function, an SHA-0 function, a SHA-1 function, a SHA-224 function, A SHA-256 function, an SHA-384 function, a SHA-512 function, and a HAS-160 function. For example, Triple SHA256 would be possible.

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

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

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

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

한편, 라이센스 관리 서버(100)가 특정 해시값과 적어도 하나의 이웃 해시값을 소정의 제1 데이터 구조로 저장하고, 이후 제1 데이터 구조와 동일한 형태의 제2 데이터 구조를 저장하여 관리하는 경우, 제1 데이터 구조와 제2 데이터 구조는 체인 형태로 연결될 수 있다.On the other hand, 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 of the same type 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, if the first data structure and the second data structure are merc trees as in the above example, the root value of the first data structure or the hash value of the root value may be assigned to the first leaf node of the second data structure .

또한, 제2 데이터 구조를 생성할 때는 제1 데이터 구조에 대한 검증이 이루어짐으로써 데이터 integrity가 좀 더 보장될 수 있다. 제2 데이터 구조의 검증에 대해서는 후술하기로 한다. Further, when the second data structure is generated, verification of the first data structure is performed, so that data integrity can be further ensured. Verification of the second data structure will be described later.

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

도 5 및 9는 본 발명의 일 실시예에 따라 생성된 머클 트리의 예를 도시한 도면이다.5 and 9 are diagrams illustrating examples of a merge 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 블록체인 데이터베이스에 등록하거나 등록하도록 지원할 수 있다.FIG. 5 shows a merge tree having four leaf nodes. Since the illustrated merge tree is the first merge tree (tree_id = 0), it can be seen that a hash value (sha256digest (coinplug_unique_message)) of predetermined message data is assigned to the first leaf node h0. If there is a registration request for the record data, the license management server 300 generates a next leaf node of the last leaf node of the currently configured merge tree and allocates or assigns a value obtained by processing a specific hash value or a specific hash value Support. For example, if a new leaf node needs to be created in a state where value assignment from the merge tree to the h1 node as the second leaf node is completed, a h2 node, which is a next leaf node, is generated to process a specific hash value or a specific hash value One value (sha256digest (input2)) can be assigned. Also, the license management server 300 can support to calculate or calculate (i) a particular hash value assigned to the h2 node and (ii) the hash value assigned to the h3 node which is the sibling node of the h2 node. The hash value for the operation value is assigned to the h2 node and the parent node (h23 node) of the h3 node. Since the parent node (h23 node) is not the root node of the merge tree, the license management server 300 can repeat the above process with the hash value assigned to the h23 node as a specific hash value. That is, the hash value assigned to the h23 node is a specific hash value, and the hash value assigned to the h23 node and the hash value assigned to the h01 node are calculated and assigned to the h23 node and the parent node (h0123 node) of the h01 node have. At this time, since the h0123 node is the root node of the merge tree, the license management server 300 registers the value (hex (h {node_index})) obtained by processing the hash value assigned to the node h0123 in the second block chain database .

한편, 전술한 소정의 조건, 즉, 트리거링 조건은, (i) 소정의 개수만큼 라이센스 관리와 관련한 트랜잭션이 생성되는 조건, (ii) 소정 시간이 경과하는 조건, (iii) 제1 블록체인 데이터베이스에서 블록이 생성되는 조건, (iv) 서비스 특성에 대한 조건 중 적어도 하나를 포함할 수 있다.(Ii) a condition that a predetermined time elapses; (iii) a condition in which a transaction related to license management is generated for a predetermined number of times; A condition under which a block is created, and (iv) a condition for a service characteristic.

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

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

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

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

일 예로, (i) random nonce, random nonce 서명값 및 public key로부터 연산된 해시값들만이 리프 노드들에 할당된 머클 트리로부터 대표 해시값인 거래자 정보 대표 해시값이 생성되고, (ii) 라이센스 관리 데이터, public key 및 서명값으로부터 연산된 해시값들만이 리프 노드들에 할당된 머클 트리로부터 대표 해시값인 라이센스 관리 정보 대표 해시값이 생성된 후, 거래자 정보 대표 해시값 및 라이센스 관리 정보 대표 해시값이 생성되는 블록의 블록 헤더에 더 기록된 상태에서, 라이센스 관리 서버(300)가, 상태 데이터베이스 해시값, 거래자 정보 대표 해시값 및 라이센스 관리 정보 대표 해시값 또는 이들을 가공한 값에 대한 해시값을 제2 블록체인 데이터베이스에 등록하거나 등록하도록 지원할 수도 있다.For example, (i) only the hash values calculated from the random nonce, the random nonce signature value and the public key are generated from the merge tree assigned to the leaf nodes, the representative hash value being the representative hash value, (ii) After the license management information representative hash value, which is a representative hash value, is generated from the merge tree allocated to the leaf nodes, only the hash values calculated from the data, the public key, and the signature value are used to generate the representative information hash value and the license management information representative hash value The license management server 300 deletes the hash value of the state database hash value, the trader information representative hash value, and the license management information representative hash value, or the value obtained by processing them, into the block header of the generated block 2 block chain database.

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

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

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

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

도 6은 본 발명의 일 실시예에 따라 제2 데이터 구조로서 생성된 머클 트리를 도시한 도면이다.6 is a diagram illustrating a merge 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 merge tree (tree_id = 0) of FIG. 5 is assigned to the first leaf node (h4 node) of the new merge tree (sha256digest (input4)). The present invention has an advantage of improving data integrity by enabling easy tracking even when data is modulated in the middle by connecting a plurality of data structures generated at the time of occurrence of a transaction.

또한, 이상 설명된 본 발명에 따른 실시예들은 다양한 컴퓨터 구성요소를 통하여 수행될 수 있는 프로그램 명령어의 형태로 구현되어 컴퓨터 판독 가능한 기록 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능한 기록 매체는 프로그램 명령어, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 컴퓨터 판독 가능한 기록 매체에 기록되는 프로그램 명령어는 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능한 기록 매체의 예에는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 ROM, RAM, 플래시 메모리 등과 같은 프로그램 명령어를 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령어의 예에는, 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함된다. 상기 하드웨어 장치는 본 발명에 따른 처리를 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.In addition, the embodiments of the present invention described above can be implemented in the form of program instructions that can be executed through various computer components and recorded in a computer-readable recording medium. The computer-readable recording medium may include program commands, data files, data structures, and the like, alone or in combination. The program instructions recorded on the computer-readable recording medium may be those specially designed and constructed for the present invention or may be those known and used by 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 and DVDs, 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 machine language code such as those generated by a compiler, as well as 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 for performing the processing according to the present invention, and vice versa.

이상에서 본 발명이 구체적인 구성요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나, 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명이 상기 실시예들에 한정되는 것은 아니며, 본 발명이 속하는 기술분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형을 꾀할 수 있다.While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is to be understood that the invention is not limited to the disclosed exemplary embodiments, but, on the contrary, Those skilled in the art will appreciate that various modifications, additions and substitutions are possible, without departing from the scope and spirit of the invention as disclosed in the accompanying claims.

따라서, 본 발명의 사상은 상기 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등하게 또는 등가적으로 변형된 모든 것들은 본 발명의 사상의 범주에 속한다고 할 것이다.Therefore, the spirit of the present invention should not be construed as being limited to the above-described embodiments, and all of the equivalents or equivalents of the claims, as well as the following claims, 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: Block Chain Database
420: state database

Claims (24)

블록체인 기반의 소프트웨어 라이센스를 관리하는 방법에 있어서,
(a) 소프트웨어 제공자 단말로부터 소프트웨어에 대한 라이센스 발급 요청 트랜잭션이 획득되면, 라이센스 관리 서버가, 상기 라이센스 발급 요청 트랜잭션의 유효 여부를 확인하여 유효일 경우, 라이센스 발급 스마트 컨트렉트 - 상기 라이센스 발급 스마트 컨트렉트는 실행 가능한 바이트 코드로 컴파일되어 적어도 하나의 컴퓨팅 장치 상에서 실행될 수 있는 소스 코드이고, 상기 소프트웨어에 대한 식별값인 소프트웨어 식별값에 대응하는 라이센스를 발급하여 주기 위하여 미리 정해진 절차를 수행하도록 구성된 것임 - 를 실행하는 단계; 및
(b) 상기 라이센스 관리 서버가, 상기 라이센스 발급 스마트 컨트렉트에 의해 상기 소프트웨어 식별값에 대응하는 라이센스 식별값이 생성되면, 상기 라이센스 식별값을 포함하는 라이센스 발급 정보를 상기 소프트웨어 제공자 단말로 전송하거나 상기 라이센스 관리 서버에 연동되는 타 장치로 하여금 상기 라이센스 발급 정보를 상기 소프트웨어 제공자 단말로 전송하도록 지원함으로써 상기 소프트웨어 제공자 단말로 하여금 상기 라이센스 식별값을 상기 소프트웨어 식별값과 매칭하여 관리하도록 하고, 상기 라이센스 발급 정보를 블록체인 데이터베이스에 등록하거나 상기 라이센스 관리 서버에 연동되는 타 장치로 하여금 상기 라이센스 발급 정보를 블록체인 데이터베이스에 등록하도록 지원하며, 상기 라이센스 식별값과 이에 대응되는 라이센스 상태 정보를 상태 데이터베이스에 등록하는 단계;
를 포함하는 것을 특징으로 하는 방법.
A method for managing software licenses based on block chaining,
(a) When a license issuance request transaction for software is obtained from a software provider terminal, the license management server checks whether the license issuance request transaction is valid, and if valid, issues a license issued smart contract - The source code 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 the license identification value corresponding to the software identification value by the license issuance smart contract, transmits the license issuance information including the license identification value to the software provider terminal Allowing another device connected to the license management server to transfer the license issuance information to the software provider terminal, thereby allowing the software provider terminal to manage and match the license identification value with the software identification value, Information to the block chain database, or to allow another device linked to the license management server to register the license issuance information in the block chain database, and the license identification value and the corresponding license Registering the state information in the state database;
≪ / RTI >
제1항에 있어서,
상기 라이센스 상태 정보는, 상기 소프트웨어 식별값, 상기 라이센스의 등록 시각 정보, 상기 라이센스의 활성화 상태 정보, 상기 라이센스의 소유자 정보, 상기 라이센스의 활성화 코드 정보, 및 상기 라이센스의 종료 시각 정보 중 적어도 하나를 포함하는 것을 특징으로 하는 방법.
The method according to claim 1,
Wherein the license status information includes at least one of the software identification value, the registration time information of the license, the activation status information of the license, the owner information of the license, the activation code information of the license, . ≪ / RTI >
제2항에 있어서,
상기 라이센스 상태 정보는, 상기 라이센스의 활성화 이후 종료 시각까지의 규칙 정보를 더 포함하는 것을 특징으로 하는 방법.
3. The method of claim 2,
Wherein the license status information further includes rule information from activation to end time of the license.
제1항에 있어서,
상기 라이센스 관리 서버는, 상기 라이센스 식별값을 상기 소프트웨어 제공자 단말로부터 획득하거나, 상기 소프트웨어 식별값을 참조하여 생성하는 것을 특징으로 하는 방법.
The method according to claim 1,
Wherein 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) 상기 라이센스 관리 서버가, 상기 라이센스 활성화 스마트 컨트렉트에 의해 상기 활성화 요청 트랜잭션에 포함된 상기 퍼블릭키와 상기 라이센스 서명값을 검증하고 검증이 완료되면 상기 라이센스를 활성화시키기 위한 활성화 코드를 생성하며, 상기 활성화 코드를 포함하는 라이센스 활성화 정보를 상기 소프트웨어 제공자 단말로 전송하거나 상기 라이센스 관리 서버에 연동되는 타 장치로 하여금 상기 라이센스 활성화 정보를 상기 소프트웨어 제공자 단말로 전송하도록 지원함으로써 상기 소프트웨어 제공자 단말로 하여금 상기 라이센스 활성화 코드를 이용하여 상기 라이센스 식별값에 대응되는 상기 소프트웨어의 라이센스를 활성화시키도록 하고, 상기 라이센스 활성화 정보를 블록체인 데이터베이스에 등록하거나 상기 라이센스 관리 서버에 연동되는 타 장치로 하여금 상기 라이센스 활성화 정보를 블록체인 데이터베이스에 등록하도록 지원하며, 상기 상태 데이터베이스에 등록된 상기 라이센스 식별값에 대응되는 라이센스 상태 정보를 상기 라이센스 활성화 정보를 참조하여 업데이트하는 단계;
를 포함하는 것을 특징으로 하는 방법.
A method for managing software licenses based on block chaining,
(a) a 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, The license activation request transaction for the software from the software provider terminal, wherein the license activation request transaction is registered in the state database with the software identification value, the license identification value, the public key generated by the software And a license signing value obtained by signing the license identification value with a private key generated by the software, the license management server determines whether the license activation request transaction is valid or not Wherein the license activation smart contract is source code compiled into executable bytecode and executable on at least one computing device, wherein the license activation smart contract is a license of the software corresponding to the license identification value The method comprising the steps of: 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 the verification is completed And transmitting the license activation information including the activation code to the software provider terminal or allowing another device coupled to the license management server to transmit the license activation information to the software provider terminal, Activate the license of the software corresponding to the license identification value using the license activation code, register the license activation information in the block chain database, 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;
≪ / RTI >
제5항에 있어서,
상기 (b) 단계에서,
상기 라이센스 관리 서버는, 상기 퍼블릭키를 이용하여 상기 라이센스 서명값으로부터 상기 라이센스 식별값을 확인하며, 상기 라이센스 서명값으로부터 확인된 상기 라이센스 식별값과 상기 라이센스 활성화 요청 트랜잭션에 포함된 상기 라이센스 식별값이 일치하는지 확인함으로써 상기 퍼블릭키 및 상기 라이센스 서명값을 검증하는 것을 특징으로 하는 방법.
6. The method of claim 5,
In the step (b)
Wherein the license management server checks the license identification value from the license signature value using the public key, and if the license identification value identified from the license signature value and the license identification value included in the license activation request transaction are And verifying that the public key and the license signature value match.
제5항에 있어서,
상기 (b) 단계에서,
상기 라이센스 관리 서버는, 상기 라이센스 식별값에 대응되는 라이센스 상태 정보로, 상기 퍼블릭키, 상기 라이센스 활성화 코드, 및 상기 라이센스의 종료 시각 정보 중 적어도 하나를 상기 상태 데이터베이스에 등록하는 것을 특징으로 하는 방법.
6. The method of claim 5,
In the step (b)
Wherein the license management server registers at least one of the public key, the license activation code, and the end time information of the license in the status database with the license status information corresponding to the license identification value.
제7항에 있어서,
상기 라이센스 관리 서버는, 상기 상태 데이터베이스에서 상기 라이센스 식별값에 대응하는 라이센스 활성화 상태 정보를 활성 상태로 업데이트하는 것을 특징으로 하는 방법.
8. The method of claim 7,
Wherein the license management server updates license activation status information corresponding to the license identification value in the status database to an active status.
제5항에 있어서,
상기 활성화 요청 트랜잭션은, 상기 소프트웨어 제공자 단말에 의해 상기 라이센스 식별값과 함께 제공된 상기 소프트웨어가 사용자 단말에서 실행되며 상기 라이센스 식별값이 입력됨으로써 상기 소프트웨어에 의해 상기 사용자 단말에 상기 퍼블릭키와 이와 매칭되는 프라이빗키가 생성되어 저장되며, 상기 퍼블릭키와 상기 프라이빗키를 이용하여 생성된 것을 특징으로 하는 방법.
6. The method of claim 5,
Wherein the activation request transaction is a transaction in which the software provided by the software provider terminal with the license identification value is executed in the user terminal and the license identification value is input to the user terminal by the software, A key is generated and stored, and is generated using the public key and the private key.
블록체인 기반의 소프트웨어 라이센스를 관리하는 방법에 있어서,
(a) 라이센스 관리 서버가 소프트웨어 제공자 단말로부터의 소프트웨어에 대한 라이센스 발급 요청에 대응하여 라이센스 발급 스마트 컨트렉트에 의해 소프트웨어 식별값에 대응하는 라이센스 식별값을 생성하여 주며, 상기 라이센스 식별값과 이에 대응되는 라이센스 상태 정보를 상태 데이터베이스에 등록하고, 상기 소프트웨어에 대한 라이센스 활성화 요청 트랜잭션에 대응하여 라이센스 활성화 스마트 컨트렉트에 의해 상기 라이센스를 활성화시키기 위한 활성화 코드를 생성하여 주며, 라이센스 활성화 정보를 참조하여 상기 상태 데이터베이스의 상기 라이센스 상태 정보를 업데이트한 상태에서, 상기 소프트웨어 제공자 단말에서 제공된 상기 소프트웨어에 의해 상기 라이센스 식별값과 상기 라이센스 활성화 코드를 포함하는 라이센스 유효성 확인 요청 트랜잭션이 생성되어 상기 소프트웨어 제공자 단말을 통해 전송되면, 상기 라이센스 관리 서버가, 상기 라이센스 유효성 확인 요청 트랜잭션의 유효 여부를 확인하여 유효일 경우, 라이센스 유효성 확인 스마트 컨트렉트 - 상기 라이센스 유효성 확인 스마트 컨트렉트는 실행 가능한 바이트 코드로 컴파일되어 적어도 하나의 컴퓨팅 장치 상에서 실행될 수 있는 소스 코드이고, 상기 라이센스 식별값에 대응하는 상기 소프트웨어의 라이센스에 대한 유효성을 확인하기 위하여 미리 정해진 절차를 수행하도록 구성된 것임 - 를 실행하는 단계;
(b) 상기 라이센스 관리 서버가, 상기 라이센스 유효성 확인 스마트 컨트렉트에 의해 상기 라이센스 식별값에 대응하여 상기 상태 데이터베이스에 등록된 상기 라이센스 상태 정보로부터 상기 라이센스 식별값과 상기 라이센스 활성화 코드를 확인하여 라이센스의 상태를 확인하며, 상기 라이센스 식별값에 대응하는 라이센스 검증 식별값과 논스값을 생성하고 상기 라이센스 식별값에 대응되는 상기 상태 데이터베이스의 라이센스 검증 상태 정보에 상기 라이센스 검증 식별값과 상기 논스값을 등록하고, 상기 라이센스 검증 식별값과 논스값을 포함하는 서명 요청 트랜잭션을 생성하여 상기 소프트웨어 제공자 단말을 통해 상기 소프트웨어로 전송되도록 하는 단계; 및
(c) 상기 소프트웨어로부터의 상기 라이센스 검증 식별값과 프라이빗키로 상기 논스값을 서명한 서명값을 포함하는 서명 트랜잭션이 상기 소프트웨어 제공자 단말을 통해 획득되면, 상기 라이센스 관리 서버가, 상기 서명 트랜잭션이 유효한지를 확인하여 유효하면 상기 서명 트랜잭션에 대응하는 서명 검증 스마트 컨트렉트를 실행하여, 상기 서명값을 검증하고 그 결과 정보를 블록체인 데이터베이스에 등록하며, 상기 결과 정보를 상기 소프트웨어 제공자 단말을 통해 상기 소프트웨어로 전달함으로써 상기 소프트웨어가 상기 사용자 단말에서 실행되도록 하고, 상기 결과 정보를 참조하여 상기 상태 데이터베이스에 등록된 상기 라이센스 검증 식별값에 대응하는 라이센스 검증 상태 정보를 업데이트하는 단계;
를 포함하는 것을 특징으로 하는 방법.
A method for managing software licenses based on block chaining,
(a) a 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 activating the license by the license activation smart contract in response to the license activation request transaction for the software, wherein the license activation information generation unit generates the activation code by referring to the license activation information, Wherein the software provided by the software provider terminal updates the license status information of the status database, and the license validity code including the license identification value and the license activation code A license validation confirmation transaction is generated and transmitted through the software provider terminal, the license management server verifies whether the license validation request transaction is valid, and if valid, a license validation confirmation smart contract - Wherein the TRIT is source code compiled into executable bytecode and executable on at least one computing device and configured to perform a predetermined procedure to validate the 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 status database in response to the license identification value by the license validation smart contract, Generates a license verification identification value and a nonce value corresponding to the license identification value, registers the license verification identification value and the nonce value in the license verification status information of the status database corresponding to the license identification value And generating a signature request transaction including the license verification identification value and the nonce value to be transmitted to the software through the software provider terminal; And
(c) if a signature transaction comprising the license verification identity from the software and the signature value that signed the nonce value with a private key is obtained through the software provider terminal, then the license management server determines whether the signature transaction is valid Verifies the signature value, registers the result information in a block chain database, and transmits the result information to the software through the software provider terminal, if it is valid, executes a signature verification smart contract corresponding to the signature transaction, The license verification status information corresponding to the license verification identification value registered in the status database by referring to the result information;
≪ / RTI >
제10항에 있어서,
상기 (c) 단계에서,
상기 라이센스 관리 서버는, 상기 라이센스 검증 식별값과 매칭되는 상기 라이센스 식별값에 대응하여 상기 상태 데이터베이스에 등록된 라이센스 상태 정보로부터 퍼블릭키를 획득하며, 상기 퍼블릭키를 이용하여 상기 서명값으로부터 상기 논스값을 확인하고, 상기 서명값으로부터 확인한 상기 논스값과 상기 라이센스 검증 식별값에 대응하여 상기 상태 데이터베이스의 상기 라이센스 검증 상태 정보에 등록된 상기 논스값이 일치하는지를 확인하여 상기 서명값을 검증하는 것을 특징으로 하는 방법.
11. The method of claim 10,
In the step (c)
Wherein the license management server obtains a public key from license state information registered in the state database in correspondence with the license identification value matched with the license verification identification value and extracts the nonce value from the signature value using the public key And verifies whether or not the nonce value registered in the license verification state information of the state database coincides with the nonce value and the license verification identification value confirmed from the signature value to verify the signature value. How to.
제10항에 있어서,
상기 (c) 단계에서,
상기 라이센스 관리 서버는, 상기 라이센스 검증 식별값에 대응하는 상기 상태 데이터베이스의 상기 라이센스 검증 상태 정보에 상기 서명값, 상기 결과 정보, 및 상기 서명값을 검증한 시각 정보 중 적어도 하나를 등록하는 것을 특징으로 하는 방법.
11. 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 the time information obtained by verifying the signature value in the license verification state information of the state database corresponding to the license verification identification value How to.
블록체인 기반의 소프트웨어 라이센스를 관리하는 라이센스 관리 서버에 있어서,
소프트웨어 제공자 단말로부터 소프트웨어에 대한 라이센스 발급 요청 트랜잭션을 획득하는 통신부; 및
(i) 상기 통신부에서 획득된 상기 라이센스 발급 요청 트랜잭션의 유효 여부를 확인하여 유효일 경우, 라이센스 발급 스마트 컨트렉트 - 상기 라이센스 발급 스마트 컨트렉트는 실행 가능한 바이트 코드로 컴파일되어 적어도 하나의 컴퓨팅 장치 상에서 실행될 수 있는 소스 코드이고, 상기 소프트웨어에 대한 식별값인 소프트웨어 식별값에 대응하는 라이센스를 발급하여 주기 위하여 미리 정해진 절차를 수행하도록 구성된 것임 - 를 실행하는 프로세스, 및 (ii) 상기 라이센스 발급 스마트 컨트렉트에 의해 상기 소프트웨어 식별값에 대응하는 라이센스 식별값이 생성되면, 상기 라이센스 식별값을 포함하는 라이센스 발급 정보를 상기 소프트웨어 제공자 단말로 전송하거나 상기 라이센스 관리 서버에 연동되는 타 장치로 하여금 상기 라이센스 발급 정보를 상기 소프트웨어 제공자 단말로 전송하도록 지원함으로써 상기 소프트웨어 제공자 단말로 하여금 상기 라이센스 식별값을 상기 소프트웨어 식별값과 매칭하여 관리하도록 하고, 상기 라이센스 발급 정보를 블록체인 데이터베이스에 등록하거나 상기 라이센스 관리 서버에 연동되는 타 장치로 하여금 상기 라이센스 발급 정보를 블록체인 데이터베이스에 등록하도록 지원하며, 상기 라이센스 식별값과 이에 대응되는 라이센스 상태 정보를 상태 데이터베이스에 등록하는 프로세스를 수행하는 프로세서;
를 포함하는 것을 특징으로 하는 라이센스 관리 서버.
A license management server for managing a software license based on a block chain,
A communication unit for acquiring a license issuance request transaction for software from a software provider terminal; And
(i) validating the validity of the license issuance request transaction obtained in the communication unit and, if valid, issuing a license-issued smart contract, the license-issued smart contract being compiled into executable bytecode and executed on at least one computing device And executing a predetermined procedure for issuing and issuing a license corresponding to a software identification value that is an identification value for the software, and (ii) a process for executing the license-issuing smart contract When the license identification value corresponding to the software identification value is generated by the license management server, the license issuance information including the license identification value is transmitted to the software provider terminal, To the software provider terminal, thereby allowing the software provider terminal to manage and match the license identification value with the software identification value, to register the license issuance information in the block chain database, or to register the license issuance information in the block chain database A processor for supporting another device to register the license issuance information in the block chain database, and for registering the license identification value and corresponding license status information in a state database;
To the license management server.
제13항에 있어서,
상기 라이센스 상태 정보는, 상기 소프트웨어 식별값, 상기 라이센스의 등록 시각 정보, 상기 라이센스의 활성화 상태 정보, 상기 라이센스의 소유자 정보, 상기 라이센스의 활성화 코드 정보, 및 상기 라이센스의 종료 시각 정보 중 적어도 하나를 포함하는 것을 특징으로 하는 라이센스 관리 서버.
14. The method of claim 13,
Wherein the license status information includes at least one of the software identification value, the registration time information of the license, the activation status information of the license, the owner information of the license, the activation code information of the license, To the license management server.
제14항에 있어서,
상기 라이센스 상태 정보는, 상기 라이센스의 활성화 이후 종료 시각까지의 규칙 정보를 더 포함하는 것을 특징으로 하는 라이센스 관리 서버.
15. The method of claim 14,
Wherein the license status information further includes rule information from the activation to the end time after activation of the license.
제13항에 있어서,
상기 프로세서는, 상기 라이센스 식별값을 상기 소프트웨어 제공자 단말로부터 획득하거나, 상기 소프트웨어 식별값을 참조하여 생성하는 것을 특징으로 하는 라이센스 관리 서버.
14. The method of claim 13,
Wherein the processor obtains the license identification value from the software provider terminal or refers to the software identification value to generate the license identification value.
블록체인 기반의 소프트웨어 라이센스를 관리하는 라이센스 관리 서버에 있어서,
상기 라이센스 관리 서버가 소프트웨어 제공자 단말로부터의 소프트웨어에 대한 라이센스 발급 요청에 대응하여 라이센스 발급 스마트 컨트렉트에 의해 소프트웨어 식별값에 대응하는 라이센스 식별값을 생성하여 주며, 상기 라이센스 식별값과 이에 대응되는 라이센스 상태 정보를 상태 데이터베이스에 등록한 상태에서, 상기 소프트웨어 제공자 단말로부터 상기 소프트웨어에 대한 라이센스 활성화 요청 트랜잭션 - 상기 라이센스 활성화 요청 트랜잭션은 상기 소프트웨어 식별값, 상기 라이센스 식별값, 상기 소프트웨어에 의해 생성된 퍼블릭키, 및 상기 라이센스 식별값을 상기 소프트웨어에 의해 생성된 프라이빗키로 서명한 라이센스 서명값을 포함함 - 을 획득하는 통신부; 및
(i) 상기 통신부에서 획득된 상기 라이센스 활성화 요청 트랜잭션의 유효 여부를 확인하여 유효일 경우, 라이센스 활성화 스마트 컨트렉트 - 상기 라이센스 활성화 스마트 컨트렉트는 실행 가능한 바이트 코드로 컴파일되어 적어도 하나의 컴퓨팅 장치 상에서 실행될 수 있는 소스 코드이고, 상기 라이센스 식별값에 대응하는 상기 소프트웨어의 라이센스를 활성화하기 위하여 미리 정해진 절차를 수행하도록 구성된 것임 - 를 실행하는 프로세스, 및 (ii) 상기 라이센스 활성화 스마트 컨트렉트에 의해 상기 활성화 요청 트랜잭션에 포함된 상기 퍼블릭키와 상기 라이센스 서명값을 검증하고 검증이 완료되면 상기 라이센스를 활성화시키기 위한 활성화 코드를 생성하며, 상기 활성화 코드를 포함하는 라이센스 활성화 정보를 상기 소프트웨어 제공자 단말로 전송하거나 상기 라이센스 관리 서버에 연동되는 타 장치로 하여금 상기 라이센스 활성화 정보를 상기 소프트웨어 제공자 단말로 전송하도록 지원함으로써 상기 소프트웨어 제공자 단말로 하여금 상기 라이센스 활성화 코드를 이용하여 상기 라이센스 식별값에 대응되는 상기 소프트웨어의 라이센스를 활성화시키도록 하고, 상기 라이센스 활성화 정보를 블록체인 데이터베이스에 등록하거나 상기 라이센스 관리 서버에 연동되는 타 장치로 하여금 상기 라이센스 활성화 정보를 블록체인 데이터베이스에 등록하도록 지원하며, 상기 상태 데이터베이스에 등록된 상기 라이센스 식별값에 대응되는 라이센스 상태 정보를 상기 라이센스 활성화 정보를 참조하여 업데이트하는 프로세스를 수행하는 것을 특징으로 하는 라이센스 관리 서버.
A license management server for managing a software license based on a block chain,
The license management server generates a license identification value corresponding to the software identification value by the license issuing smart contract in response to the license issuance request for the software from the software provider terminal, A license activation request transaction for the software from the software provider terminal, wherein the license activation request transaction registers the software identification value, the license identification value, the public key generated by the software, And a license signing value obtained by signing the license identification value with a private key generated by the software; And
(i) validating the validity of the license activation request transaction obtained at the communication unit, and if valid, a license activated smart contract, the license activated smart contract being compiled into executable bytecode and executed on at least one computing device And performing a predetermined procedure to activate a license of the software corresponding to the license identification value, and (ii) a process for executing the activation by the license activated smart contract, And generating an activation code for activating the license when the verification is completed, and transmitting the license activation information including the activation code to the software provider terminal Or allowing another device connected to the license management server to transmit the license activation information to the software provider terminal, thereby causing the software provider terminal to transmit the license activation code to the software corresponding to the license identification value using the license activation code The license activation information is registered in the block chain database or the other device linked to the license management server registers the license activation information in the block chain database, And updates the license status information corresponding to the license identification value with reference to the license activation information.
제17항에 있어서,
상기 프로세서는,
상기 (ii) 프로세스에서,
상기 퍼블릭키를 이용하여 상기 라이센스 서명값으로부터 상기 라이센스 식별값을 확인하며, 상기 라이센스 서명값으로부터 확인된 상기 라이센스 식별값과 상기 라이센스 활성화 요청 트랜잭션에 포함된 상기 라이센스 식별값이 일치하는지 확인함으로써 상기 퍼블릭키 및 상기 라이센스 서명값을 검증하는 것을 특징으로 하는 라이센스 관리 서버.
18. The method of claim 17,
The processor comprising:
In the (ii) process,
Wherein the public key is used to identify the license identification value from the license signature value, and if the license identification value identified from the license signature value matches the license identification value included in the license activation request transaction, Key and the license signature value.
제17항에 있어서,
상기 프로세서는,
상기 (ii) 프로세스에서,
상기 라이센스 식별값에 대응되는 라이센스 상태 정보로, 상기 퍼블릭키, 상기 라이센스 활성화 코드, 및 상기 라이센스의 종료 시각 정보 중 적어도 하나를 상기 상태 데이터베이스에 등록하는 것을 특징으로 하는 라이센스 관리 서버.
18. The method of claim 17,
The processor comprising:
In the (ii) process,
And registers at least one of the public key, the license activation code, and the end time information of the license in the status database with the license status information corresponding to the license identification value.
제19항에 있어서,
상기 프로세서는, 상기 상태 데이터베이스에서 상기 라이센스 식별값에 대응하는 라이센스 활성화 상태 정보를 활성 상태로 업데이트하는 것을 특징으로 하는 라이센스 관리 서버.
20. The method of claim 19,
Wherein the processor updates license activation status information corresponding to the license identification value in the status database to an active status.
제17항에 있어서,
상기 활성화 요청 트랜잭션은, 상기 소프트웨어 제공자 단말에 의해 상기 라이센스 식별값과 함께 제공된 상기 소프트웨어가 사용자 단말에서 실행되며 상기 라이센스 식별값이 입력됨으로써 상기 소프트웨어에 의해 상기 사용자 단말에 상기 퍼블릭키와 이와 매칭되는 프라이빗키가 생성되어 저장되며, 상기 퍼블릭키와 상기 프라이빗키를 이용하여 생성된 것을 특징으로 하는 라이센스 관리 서버.
18. The method of claim 17,
Wherein the activation request transaction is a transaction in which the software provided by the software provider terminal with the license identification value is executed in the user terminal and the license identification value is input to the user terminal by the software, A key is generated and stored, and the generated license key is generated using the public key and the private key.
블록체인 기반의 소프트웨어 라이센스를 관리하는 라이센스 관리 서버에 있어서,
상기 라이센스 관리 서버가 소프트웨어 제공자 단말로부터의 소프트웨어에 대한 라이센스 발급 요청에 대응하여 라이센스 발급 스마트 컨트렉트에 의해 소프트웨어 식별값에 대응하는 라이센스 식별값을 생성하여 주며, 상기 라이센스 식별값과 이에 대응되는 라이센스 상태 정보를 상태 데이터베이스에 등록하고, 상기 소프트웨어에 대한 라이센스 활성화 요청 트랜잭션에 대응하여 라이센스 활성화 스마트 컨트렉트에 의해 상기 라이센스를 활성화시키기 위한 활성화 코드를 생성하여 주며, 라이센스 활성화 정보를 참조하여 상기 상태 데이터베이스의 상기 라이센스 상태 정보를 업데이트한 상태에서, 상기 소프트웨어 제공자 단말에서 제공된 상기 소프트웨어에 의해 생성된 상기 라이센스 식별값과 상기 라이센스 활성화 코드를 포함하는 라이센스 유효성 확인 요청 트랜잭션을 상기 소프트웨어 제공자 단말을 통해 획득하는 통신부; 및
(i) 상기 통신부에서 획득된 상기 라이센스 유효성 확인 요청 트랜잭션의 유효 여부를 확인하여 유효일 경우, 라이센스 유효성 확인 스마트 컨트렉트 - 상기 라이센스 유효성 확인 스마트 컨트렉트는 실행 가능한 바이트 코드로 컴파일되어 적어도 하나의 컴퓨팅 장치 상에서 실행될 수 있는 소스 코드이고, 상기 라이센스 식별값에 대응하는 상기 소프트웨어의 라이센스에 대한 유효성을 확인하기 위하여 미리 정해진 절차를 수행하도록 구성된 것임 - 를 실행하는 프로세스, (ii) 상기 라이센스 유효성 확인 스마트 컨트렉트에 의해 상기 라이센스 식별값에 대응하여 상기 상태 데이터베이스에 등록된 상기 라이센스 상태 정보로부터 상기 라이센스 식별값과 상기 라이센스 활성화 코드를 확인하여 라이센스의 상태를 확인하며, 상기 라이센스 식별값에 대응하는 라이센스 검증 식별값과 논스값을 생성하고 상기 라이센스 식별값에 대응되는 상기 상태 데이터베이스의 라이센스 검증 상태 정보에 상기 라이센스 검증 식별값과 상기 논스값을 등록하고, 상기 라이센스 검증 식별값과 논스값을 포함하는 서명 요청 트랜잭션을 생성하여 상기 소프트웨어 제공자 단말을 통해 상기 소프트웨어로 전송되도록 하는 프로세스, 및 (iii) 상기 소프트웨어로부터의 상기 라이센스 검증 식별값과 프라이빗키로 상기 논스값을 서명한 서명값을 포함하는 서명 트랜잭션이 상기 소프트웨어 제공자 단말을 통해 획득되면, 상기 서명 트랜잭션이 유효한지를 확인하여 유효하면 상기 서명 트랜잭션에 대응하는 서명 검증 스마트 컨트렉트를 실행하여, 상기 서명값을 검증하고 그 결과 정보를 블록체인 데이터베이스에 등록하며, 상기 결과 정보를 상기 소프트웨어 제공자 단말을 통해 상기 소프트웨어로 전달함으로써 상기 소프트웨어가 상기 사용자 단말에서 실행되도록 하고, 상기 결과 정보를 참조하여 상기 상태 데이터베이스에 등록된 상기 라이센스 검증 식별값에 대응하는 라이센스 검증 상태 정보를 업데이트하는 프로세스를 수행하는 프로세서;
를 포함하는 것을 특징으로 하는 라이센스 관리 서버.
A license management server for managing a software license based on a block chain,
The license management server generates a license identification value corresponding to the software identification value by the license issuing smart contract in response to the license issuance request for the software from the software provider terminal, And generates an activation code for activating the license by the license activation smart contract in response to the license activation request transaction for the software, The license identification information and the license activation code generated by the software provided by the software provider terminal and the license activation code, A communication unit for acquiring a validation confirmation request transaction through the software provider terminal; And
(i) validating the validity of the license validation request transaction obtained at the communication unit and validating the validity of the license validation smart contract, the license validation smart contract being compiled into executable bytecode, And executing a predetermined procedure to confirm the validity of the license of the software corresponding to the license identification value, (ii) a process of executing the license validation confirmation smart key The state of the license is confirmed by checking the license identification value and the license activation code from the license status information registered in the status database corresponding to the license identification value by the track, And generates the license verification identification value and the nonce value corresponding to the license verification value and the nonce value, registers the license verification identification value and the nonce value in the license verification state information of the state database corresponding to the license identification value, And (iii) a signature including a signature value obtained by signing the nonce value with the license verification identification value from the software and the private key, If the signature transaction is valid, executing a signature verification smart contract corresponding to the signature transaction if valid, and verifying the signature value, and transmitting the result information to the block chain database To register , And the result information is transmitted to the software through the software provider terminal, so that the software is executed in the user terminal, and a license verification status corresponding to the license verification identification value registered in the status database A processor for performing a process of updating information;
To the license management server.
제22항에 있어서,
상기 프로세서는,
상기 (iii) 프로세스에서,
상기 라이센스 검증 식별값과 매칭되는 상기 라이센스 식별값에 대응하여 상기 상태 데이터베이스에 등록된 라이센스 상태 정보로부터 퍼블릭키를 획득하며, 상기 퍼블릭키를 이용하여 상기 서명값으로부터 상기 논스값을 확인하고, 상기 서명값으로부터 확인한 상기 논스값과 상기 라이센스 검증 식별값에 대응하여 상기 상태 데이터베이스의 상기 라이센스 검증 상태 정보에 등록된 상기 논스값이 일치하는지를 확인하여 상기 서명값을 검증하는 것을 특징으로 하는 라이센스 관리 서버.
23. The method of claim 22,
The processor comprising:
In the process (iii)
Acquiring a public key from license state information registered in the state database corresponding to the license identification value matched with the license verification identification value, verifying the nonce value from the signature value using the public key, And verifies whether or not the nonce value registered in the license verification state information of the state database coincides with the nonce value and the license verification identification value, which have been confirmed from the value of the license verification state information, to verify the signature value.
제22항에 있어서,
상기 프로세서는,
상기 (iii) 프로세스에서,
상기 라이센스 검증 식별값에 대응하는 상기 상태 데이터베이스의 상기 라이센스 검증 상태 정보에 상기 서명값, 상기 결과 정보, 및 상기 서명값을 검증한 시각 정보 중 적어도 하나를 등록하는 것을 특징으로 하는 라이센스 관리 서버.
23. The method of claim 22,
The processor comprising:
In the process (iii)
And registers at least one of the signature value, the result information, and the time information obtained by verifying the signature value in the license verification state 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 true KR20190045754A (en) 2019-05-03
KR101978185B1 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
KR20210038453A (en) * 2020-12-09 2021-04-07 넷마블 주식회사 Method of verifying to distributed compiling
US11074661B2 (en) 2018-10-25 2021-07-27 Advanced New Technologies Co., Ltd. Transaction processing method, apparatus, and electronic device using a blockchain having nonce records

Families Citing this family (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

Citations (4)

* 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
KR20160082728A (en) * 2014-12-29 2016-07-11 주식회사 디지캡 License verification system for web application

Patent Citations (4)

* 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
KR20160082728A (en) * 2014-12-29 2016-07-11 주식회사 디지캡 License verification system for web application
KR101628005B1 (en) * 2015-02-05 2016-06-13 주식회사 코인플러그 Copyright detection system that is based on the block chain

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11074661B2 (en) 2018-10-25 2021-07-27 Advanced New Technologies Co., Ltd. Transaction processing method, apparatus, and electronic device using a blockchain having nonce records
US11521275B2 (en) 2018-10-25 2022-12-06 Advanced New Technologies Co., Ltd. Blockchain-based transaction processing method, apparatus, and electronic device
KR20210038453A (en) * 2020-12-09 2021-04-07 넷마블 주식회사 Method of verifying to distributed compiling

Also Published As

Publication number Publication date
KR101978185B1 (en) 2019-08-28

Similar Documents

Publication Publication Date Title
US10826888B2 (en) Method for providing certificate service based on smart contract and server using the same
KR101816653B1 (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 smart contract with blockchain database and server using the same
KR20230163971A (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
KR101829729B1 (en) Method for certifying a user by using mobile id through blockchain and merkle tree structure related thereto, and terminal 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
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
KR101978185B1 (en) Method for managing license of software based on blockchain, and license management server using the same
KR102118962B1 (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
CN112202705A (en) Digital signature verification generation and verification method and system
CN110535807B (en) Service authentication method, device and medium
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
KR101890584B1 (en) Method for providing certificate service based on m of n multiple signatures and server using the same
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
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
US20190052632A1 (en) Authentication system, method and non-transitory computer-readable storage medium
KR101849908B1 (en) Method for providing certificate service based on m of n multiple signatures and server using the same
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
KR20200083396A (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
KR102216285B1 (en) Method for sso service through blockchain, and terminal and server using the same
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
KR20200110118A (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
TWI646480B (en) System for issuing and verifying certificates based on blockchain and method thereof

Legal Events

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