KR102142688B1 - Method and Apparatus for Creating Smart Contract in Blockchain Using Natural language - Google Patents
Method and Apparatus for Creating Smart Contract in Blockchain Using Natural language Download PDFInfo
- Publication number
- KR102142688B1 KR102142688B1 KR1020200001218A KR20200001218A KR102142688B1 KR 102142688 B1 KR102142688 B1 KR 102142688B1 KR 1020200001218 A KR1020200001218 A KR 1020200001218A KR 20200001218 A KR20200001218 A KR 20200001218A KR 102142688 B1 KR102142688 B1 KR 102142688B1
- Authority
- KR
- South Korea
- Prior art keywords
- smart contract
- document
- template
- cnl
- predicate
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/50—Service provisioning or reconfiguring
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/009—Security arrangements; Authentication; Protecting privacy or anonymity specially adapted for networks, e.g. wireless sensor networks, ad-hoc networks, RFID networks or cloud networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W16/00—Network planning, e.g. coverage or traffic planning tools; Network deployment, e.g. resource partitioning or cells structures
- H04W16/14—Spectrum sharing arrangements between different networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W88/00—Devices specially adapted for wireless communication networks, e.g. terminals, base stations or access point devices
- H04W88/18—Service support devices; Network management devices
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
본 실시예는 자연어에 기반한 블록체인 스마트 계약을 제안하고, 협상 및 수정한 후 자동생성 및 자동실행을 하는 자연 언어 기반 블록 체인 스마트 계약 생성방법 및 그를 위한 장치에 관한 것이다.The present embodiment relates to a method for generating a block chain smart contract based on a natural language and a device therefor that proposes a block chain smart contract based on natural language, auto-generates and automatically executes it after negotiation and modification.
Description
본 실시예는 자연 언어 기반 블록 체인 스마트 계약 생성방법 및 그를 위한 장치에 관한 것이다. 더욱 상세하게는, 자연어에 기반한 블록체인 스마트 계약을 제안하고, 협상 및 수정한 후 자동생성 및 자동실행을 하는 자연 언어 기반 블록 체인 스마트 계약 생성방법 및 그를 위한 장치에 관한 것이다.The present embodiment relates to a method for generating a blockchain smart contract based on natural language and an apparatus therefor. More specifically, the present invention relates to a method for generating a block chain smart contract based on natural language and a device therefor for auto-generation and auto-execution after proposal, negotiation and modification of a block chain smart contract based on natural language.
이 부분에 기술된 내용은 단순히 본 실시예에 대한 배경 정보를 제공할 뿐 종래기술을 구성하는 것은 아니다.The contents described in this section merely provide background information for this embodiment, and do not constitute a prior art.
스마트 계약은 계약당사자들이 합의한 계약의 내용을 소프트웨어로 구현하여 블록체인에서 실행하도록 한 프로그램이다. 인간 사이의 계약은 일반적으로 자연어로 기록되는데, 이를 스마트 계약으로 만들기 위해서는 이 계약의 상세 내용을 잘 이해하는 프로그래머가 프로그래밍 언어로 코딩을 한 후 컴파일 등의 과정을 거쳐 기계에서 실행이 가능한 소프트웨어를 만드는 것이 일반적인 절차이다.The smart contract is a program that implements the contents of the contract agreed by the contract parties in software and executes it on the blockchain. The contract between humans is generally written in natural language, and in order to make it a smart contract, programmers who understand the details of this contract code in a programming language, and then compile and create software that can run on the machine. This is the general procedure.
여기에서 프로그래머는 계약의 상세 내용은 물론 계약 당사자들의 의도까지 파악하고 있어야 하며 또 프로그래밍, 즉 코딩 과정에서 오류를 범하지 않아야 한다는 전제 조건이 깔려 있다. 그렇다 하더라도 프로그래머가 아닌 일반 계약 당사자들은 이렇게 만들어진 스마트 계약 소프트웨어를 읽고, 이해하고, 검증하여, 계약의 상세 내역과 의도가 제대로 구현되었는지 확인하기 어렵다는 문제가 있다.Here, the prerequisite is that the programmer must understand the details of the contract as well as the intentions of the contracting parties, and should not make errors in programming or coding. Even so, the general contracting party, not the programmer, has a problem that it is difficult to read, understand, and verify the smart contract software thus created, to confirm whether the details and intent of the contract are properly implemented.
특히 많은 생태계 참여자가 모여 다양한 관련 당사자들끼리 다양한 비즈니스 계약을 체결해야 하는 경우 블록체인에서 이를 지원하기 위해서는 많은 스마트 계약을 만들고 블록체인에 업로드하여 실행해야 할 부담이 크게 늘어나게 된다. 이 경우 프로그래머에 의존하여 전통적인 방법으로 스마트 계약을 생성하고 업로드 하는 방식은 시간과 노력을 필요로 할 뿐 아니라 스마트 계약의 이해 및 검증 등의 문제를 포함할 수밖에 없다.In particular, if many ecosystem participants have to gather and sign various business contracts between various related parties, the burden of creating and uploading many smart contracts and executing them on the blockchain will greatly increase in order to support them in the blockchain. In this case, the method of creating and uploading a smart contract in a traditional way relying on a programmer not only takes time and effort, but also involves problems such as understanding and verification of the smart contract.
이러한 이유로 많은 생태계 참여자가 모여 다양한 관련 당사자들끼리 다양한 비즈니스 계약을 합의하고 체결 및 운영을 지원하는 블록체인에서는 아래와 같은 기능을 제공할 필요가 있다. For this reason, it is necessary to provide the following functions in a blockchain where many ecosystem participants gather and agree on various business contracts between various related parties and support the conclusion and operation.
- 스마트 계약 다량 생성(Mass generation of smart contracts)-Mass generation of smart contracts
- 프로그래밍 없이 스마트 계약 생성(Generation of smart contract with no programming)-Generation of smart contract with no programming
- 스마트 계약 자동 업로드 및 실행(Automatic uploading and execution of smart contract)-Automatic uploading and execution of smart contract
- 자연어 기반 스마트 계약 협상 및 수정(Natural Language-based negotiation and modification of smart contract)-Natural Language-based negotiation and modification of smart contract
본 발명은 자연어에 기반한 블록체인 스마트 계약을 제안하고, 협상 및 수정한 후 자동생성 및 자동실행을 하는 자연 언어 기반 블록 체인 스마트 계약 생성방법 및 그를 위한 장치를 제공하고자 하는 데 그 목적이 있다.An object of the present invention is to propose a block chain smart contract based on natural language, and to provide a method for generating a block chain smart contract based on natural language that automatically generates and automatically executes after negotiation and modification, and an apparatus therefor.
본 실시예는, 스마트 계약(Smart Contract)과 관련하여 상기 스마트 계약을 구성할 수 있는 기 정의된 템플릿을 저장하는 저장부; 사용자 선택에 따라 적어도 하나의 상기 템플릿을 조합하여 문서 템플릿을 생성하고, 사용자 협약결과에 따라 상기 문서 템플릿 상의 변수 값들을 확정하여 상기 스마트 계약에 상응하는 확정 문서를 생성하는 문서 템플릿 편집부; 및 상기 확정 문서를 기반으로 블록체인 상에서 실행되는 상기 스마트 계약을 생성하는 메타 스마트 계약부를 포함하는 것을 특징으로 하는 스마트 계약 생성장치를 제공한다.This embodiment includes a storage unit for storing a predefined template that can configure the smart contract with respect to a smart contract (Smart Contract); A document template editing unit for generating a document template by combining at least one of the templates according to a user's selection, and determining variable values on the document template according to a user agreement result to generate a confirmation document corresponding to the smart contract; And a meta smart contract unit for generating the smart contract executed on the blockchain based on the confirmed document.
또한, 본 실시예의 다른 측면에 의하면, 스마트 계약 생성장치의 스마트 계약 생성방법에 있어서, 스마트 계약과 관련하여 상기 스마트 계약을 구성할 수 있는 기 정의된 템플릿을 기반으로 사용자 선택에 따라 적어도 하나의 상기 템플릿을 조합하여 문서 템플릿을 생성하는 과정; 사용자 협약결과에 따라 상기 문서 템플릿 상의 변수 값들을 확정하여 상기 스마트 계약에 상응하는 확정 문서를 생성하는 과정; 및 상기 확정 문서를 기반으로 블록체인 상에서 실행되는 상기 스마트 계약을 생성하는 과정을 포함하는 것을 특징으로 하는 스마트 계약 생성장치의 스마트 계약 생성방법을 제공한다.In addition, according to another aspect of the present embodiment, in the smart contract generating method of the smart contract generating device, based on a predefined template that can configure the smart contract in relation to the smart contract, at least one of the Creating a document template by combining the templates; Determining variable values on the document template according to a user agreement result to generate a confirmation document corresponding to the smart contract; And generating the smart contract executed on a blockchain based on the confirmed document.
또한, 본 실시예의 다른 측면에 의하면, 컴퓨터로 읽을 수 있는 기록매체에 저장된 컴퓨터프로그램으로서, 상기 컴퓨터프로그램은 적어도 하나의 프로세서에 의해 수행될 때, 스마트 계약과 관련하여 상기 스마트 계약을 구성할 수 있는 기 정의된 템플릿을 기반으로 사용자 선택에 따라 적어도 하나의 상기 템플릿을 조합하여 문서 템플릿을 생성하는 과정; 사용자 협약결과에 따라 상기 문서 템플릿 상의 변수 값들을 확정하여 상기 스마트 계약에 상응하는 확정 문서를 생성하는 과정; 및 상기 확정 문서를 기반으로 블록체인 상에서 실행되는 상기 스마트 계약을 생성하는 과정을 수행하기 위한 코드들을 포함하는 컴퓨터프로그램을 제공한다.In addition, according to another aspect of the present embodiment, as a computer program stored in a computer-readable recording medium, the computer program, when executed by at least one processor, can configure the smart contract in relation to the smart contract Generating a document template by combining at least one of the templates according to a user selection based on a predefined template; Determining variable values on the document template according to a user agreement result to generate a confirmation document corresponding to the smart contract; And a code for performing the process of generating the smart contract executed on the blockchain based on the confirmed document.
본 발명의 실시예들에 의하면, 자연어에 기반한 블록체인 스마트 계약을 제안하고, 협상 및 수정한 후 자동생성 및 자동실행을 하는 자연 언어 기반 블록 체인 스마트 계약 생성방법을 제공함으로써 스마트 계약의 다량 생성, 프로그래밍 없이 스마트 계약의 생성, 스마트 계약 자동 업로드 및 실행, 자연어 기반 스마트 계약 협상 및 수정 등의 효과를 제공할 수 있다.According to embodiments of the present invention, a large amount of smart contracts is generated by providing a method for generating a block chain smart contract based on natural language, which proposes a block chain smart contract based on natural language, auto-generates and executes automatically after negotiation and modification, It can provide effects such as creation of smart contracts without programming, automatic upload and execution of smart contracts, and negotiation and modification of natural language-based smart contracts.
도 1은 본 실시예에 따른 스마트 계약 생성장치를 개략적으로 나타낸 블록 구성도이다.
도 2는 본 실시예에 따른 스마트 계약의 생성, 수정 및 실행방법을 설명하기 위한 개념도이다.
도 3은 본 실시예에 따른 스마트 계약 생성방법을 설명하기 위한 순서도이다.
도 4는 본 실시예에 따른 모듈 컬렉션을 설명하기 위한 예시도이다.
도 5 내지 도 8은 본 실시예에 따른 스마트 계약 실행을 위한 각 수행 시나리오를 설명하기 위한 흐름도이다.1 is a block diagram schematically showing an apparatus for generating a smart contract according to the present embodiment.
2 is a conceptual diagram illustrating a method for generating, modifying, and executing a smart contract according to the present embodiment.
3 is a flow chart for explaining a smart contract generation method according to the present embodiment.
4 is an exemplary diagram for describing a module collection according to the present embodiment.
5 to 8 are flowcharts for explaining each execution scenario for executing a smart contract according to the present embodiment.
이하, 본 발명의 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings.
블록 체인(Blockchain)은 트랜잭션들로 구성된 블록들로 이루어진 컴퓨터 기반의 분산형 분산 시스템으로 구현되는 전자 원장(Ledgers)이다. 각 트랜잭션은 적어도 하나의 입력과 적어도 하나의 출력을 포함한다. 각 블록은 이전 블록의 해시를 포함하여 처음부터 블록 체인에 기록된 모든 트랜잭션에 대하여 영구적이며 변경 불가능한 기록을 생성하도록 해당 블록들이 함께 연결된다.Blockchains are electronic ledgers implemented as a computer-based decentralized distributed system composed of blocks composed of transactions. Each transaction includes at least one input and at least one output. Each block is concatenated together to create a permanent and immutable record for every transaction recorded on the blockchain from the beginning, including the hash of the previous block.
스마트 계약은 계약 또는 합의 조건의 실행을 자동화하도록 설계된 컴퓨터 프로그램이다. 자연어로 기재된 전통적인 계약과는 달리, 스마트 계약은 결과를 산출하기 위해 입력을 처리할 수 있는 규칙을 포함하는 기계가 실행할 수 있는 프로그램으로, 그 결과들에 따라 수행되어야 하는 액션들이 유발될 수 있다.Smart contracts are computer programs designed to automate the execution of contract or agreement terms. Unlike traditional contracts written in natural language, smart contracts are machine-executable programs that contain rules that can process input to produce results, and actions that must be performed based on the results can be triggered.
본 발명은 자연어에 기반한 블록체인 스마트 계약을 제안하고, 협상 및 수정한 후 자동생성 및 자동실행을 하는 자연 언어 기반 블록 체인 스마트 계약 생성방법을 제안한다.The present invention proposes a block chain smart contract based on natural language, and proposes a method for generating a block chain smart contract based on natural language that automatically generates and automatically executes after negotiation and modification.
보다 자세하게는, 본 실시예에 따른 자연 언어 기반 블록 체인 스마트 계약 생성방법을 통해 해결하고자 하는 과제 및 그 효과는 다음과 같다.More specifically, the problems to be solved through the natural language-based blockchain smart contract generation method according to this embodiment and its effects are as follows.
(1) 스마트 계약 다량 생성(Mass generation of smart contracts)(1) Mass generation of smart contracts
블록체인 생태계 참여자가 많고 또 그 사이에 많은 스마트 계약이 빈번하게 일어나는 경우 이 많은 계약을 모두 일일이 프로그래밍 한다는 것은 여러가지 문제점을 야기할 수 있다. 특히 이런 많은 계약들이 공통적 요소를 가지고 이의 다양한 변형이나 여러가지 경우의 수 중 하나의 선택으로 이루어지는 경우 공통의 핵심부로부터 다양한 스마트 계약을 생성하는 것이 더 효율적이다. 본 발명에서는 이러한 방식으로 많은 스마트 계약을 다량으로 생성하는 기술을 제시한다.If there are many participants in the blockchain ecosystem and many smart contracts frequently occur in the meantime, programming all these contracts individually can cause various problems. In particular, it is more efficient to generate various smart contracts from a common core when many of these contracts have a common element and a variety of variations or one of a number of cases. The present invention proposes a technique for generating a large number of smart contracts in this manner.
(2) 프로그래밍 없이 스마트 계약 생성(Generation of smart contract with no programming)(2) Generation of smart contract with no programming
스마트 계약은 일반적으로 프로그래머가 정해진 프로그래밍 언어에 따라 소스코드를 만들고 이를 컴퓨터가 실행할 수 있는 실행코드로 바꾸는 방식으로 생성된다. 그러나 이 경우 프로그래밍 시간과 비용, 특히 프로그래머 오류의 우려 때문에 검증 과정에서 많은 노력과 시간이 들기 때문에 다량의 스마트 계약을 빠른 속도로 생성할 수 없다는 단점이 있다. 본 발명에서 이러한 문제를 해결할 수 있는 기술을 제시한다.Smart contracts are usually created by a programmer creating source code according to a set programming language and turning it into executable code that can be executed by a computer. However, in this case, there is a disadvantage in that a large amount of smart contracts cannot be generated at a high speed because of the time and cost of programming, in particular, because of the concern of programmer errors, the verification process takes a lot of effort and time. The present invention proposes a technique to solve this problem.
(3) 스마트 계약 자동 업로드 및 실행(Automatic uploading and execution of smart contract)(3) Automatic uploading and execution of smart contract
스마트 계약을 프로그래밍 없이 생성하는 경우에도 이를 실행하려면 블록체인에 업로드해서 실행하도록 해야 한다. 통상의 경우 이 작업은 시스템 운영자가 수행한다. 본 발명에서는 이러한 추가 작업 없이 상기 프로그래밍 없이 생성된 스마트 계약을 자동으로 업로드하고 실행되게 하는 기술을 제시한다. Even if a smart contract is created without programming, it must be uploaded to the blockchain and executed. Normally, this is done by the system operator. The present invention proposes a technique for automatically uploading and executing a smart contract created without the programming without such additional work.
(4) 자연어 기반 스마트 계약 협상 및 수정(Natural Language-based negotiation and modification of smart contract)(4) Natural Language-based negotiation and modification of smart contract
통상의 경우 비즈니스 계약은 일반적으로 비즈니스 영역에 따라 사용하는 계약의 틀을 기반으로 쌍방이 수정, 삭제, 추가 등의 협상 과정을 거쳐 계약을 완성하는 프로세스를 따른다. 블록체인 상에서 실행되는 비즈니스 계약도 실제로 이러한 과정을 밟아 만들어진다. 이 계약은 물론 쌍방이 이해할 수 있는 자연어로 작성되며, 이를 기반으로 프로그래머가 스마트 계약을 코딩하는 것이 통상의 방식이다. 본 발명에서는 이러한 방식을 지양하고 자연어 상태에서 협상하고, 계약 내용, 추가, 삭제 및 변경하는 기술을 제시한다. 또한 이렇게 완성된 자연어 상태의 계약을 추가 작업 없이 자동으로 업로드하고 실행하는 기술도 제시한다.In the general case, the business contract generally follows the process of completing the contract through negotiation processes such as modification, deletion, and addition, based on the framework of the contract used according to the business area. Business contracts executed on the blockchain are actually created through this process. This contract, of course, is written in natural language that can be understood by both parties, and based on this, it is common for programmers to code smart contracts. In the present invention, a technique for avoiding such a method, negotiating in a natural language state, and contracting, adding, deleting, and changing is proposed. It also presents a technique for automatically uploading and executing a contract in natural language completed without additional work.
이하, 본 발명에서 사용하는 용어 중 특수한 의미를 가지고 사용하는 것들을 아래에 리스트하고 설명한다.Hereinafter, those used with a special meaning among terms used in the present invention are listed and described below.
(1) 술어논리(Predicate Logic)(1) Predicate Logic
본 발명에서 사용하는 용어인 술어논리(Predicate logic)는 논리학의 한 분야인 술어논리학(Predicate logic)에서 사용하는 방식(convention)을 따른다. 이러한 술어논리학의 방식에 따라 기술된 문장을 술어논리문장(Predicate logic statement) 또는 줄여서 술어문장(Predicate statement)이라 부른다. 술어문장의 예를 들면 아래와 같다The term used in the present invention, predicate logic, follows a convention used in predicate logic, which is a field of logic. The sentence described according to this method of predicate logic is called a predicate logic statement or abbreviated as a predicate statement. Examples of predicates are:
(예) service_contract (x, y)(Example) service_contract (x, y)
이때 x와 y가 각각 “Horizon Telecom”과 “Smith WiFi”로 특정 지어질 경우 이 문장은 아래와 같이 된다.At this time, if x and y are specified as “Horizon Telecom” and “Smith WiFi” respectively, this sentence will be as follows.
(예) service_contract (Horizon Telecom, Smith WiFi)(Example) service_contract (Horizon Telecom, Smith WiFi)
(2) 한정 자연어(CNL: Controlled Natural Language)(2) Controlled Natural Language (CNL)
본 발명에서 사용하는 계약은 자연어를 사용하여 체결된다. 이 문서는 일반인이 이해할 수 있는 자연어를 사용하지만 모든 자연어 문장을 허용할 경우 이를 자동으로 스마트 계약으로 변경할 때 모호함과 같은 문제점을 내포할 수 있기 때문에 본 발명에서 사용하는 자연어 문장은 술어논리학(Predicate logic)에서 사용하는 술어논리문장(predicate logic statement)을 자연어로 표현한 문장에 한정하여 사용한다. 이러한 자연어를 한정 자연어 (CNL: Controlled Natural Language)라 부르고 한정 자연어로 표현된 자연어 문장을 한정 자연어 문장 또는 CNL 문장이라 부른다. 위에 예를 든 술어문장 “service_contract (x, y)”에 대응하는 CNL 문장은 아래와 같다The contract used in the present invention is concluded using natural language. This document uses natural language that can be understood by the general public, but if all natural language sentences are allowed, it can have problems such as ambiguity when it is automatically changed to a smart contract. Therefore, natural language sentences used in the present invention are predicate logic. Predicate logic statements used in) are limited to sentences expressed in natural language. These natural languages are called Controlled Natural Languages (CNL) and natural language sentences expressed in limited natural languages are called limited natural language sentences or CNL sentences. The CNL statement corresponding to the predicate sentence “service_contract (x, y)” in the example above is as follows.
(예) x and y enter into a service contract (Example) x and y enter into a service contract
마찬가지로 x와 y값이 특징지어질 경우 이 문장은 아래와 같이 된다.Likewise, if the x and y values are characterized, the sentence would look like this:
(예) Horizon Telecom and Smith WiFi enter into a service contract(Example) Horizon Telecom and Smith WiFi enter into a service contract
(3) 템플릿(Template)(3) Template
술어논리문장(predicate logic statement) 또는 한정 자연어 문장이 값이 확정되지 않는 변수를 포함하고 있는 경우 이를 총칭해서 템플릿이라 부른다. 이때 변수는 예를 들어 숫자, 문자열, 객체(object), 엔티티(entity) 등 다양한 형태의 값을 가질 수 있다. 수학식에 비유한다면 템플릿은 수학 함수에서 변수에 특정 값이 대입되지 않은 경우와 유사하다고 할 수 있다. 위에서 예를 든 “service_contract (x, y)”나 “x and y enter into a service contract”는 모두 템플릿들이다.If a predicate logic statement or a qualified natural language statement contains a variable whose value is not determined, it is collectively called a template. In this case, the variable may have various types of values, such as numbers, strings, objects, and entities. In the analogy with equations, a template can be said to be similar to the case where a specific value is not assigned to a variable in a mathematical function. The “service_contract (x, y)” or “x and y enter into a service contract” examples above are all templates.
(4) 술어 템플릿(Predicate Template)(4) Predicate Template
술어논리(predicate logic) 문장이 값이 확정되지 않는 변수를 적어도 하나 이상 포함하고 있는 템플릿을 총칭해서 술어 템플릿(Predicate template)이라 부른다. A template in which a predicate logic statement contains at least one variable whose value is not determined is collectively called a predicate template.
(예) service_contract (x, y)(Example) service_contract (x, y)
(5) CNL 템플릿(CNL Template)(5) CNL Template
템플릿이 CNL 문장으로 구성된 경우 이를 CNL 템플릿(CNL template)이라 부른다. 이 경우 CNL 템플릿은 값이 확정되지 않는 변수를 적어도 하나 이상 포함하고 있다. When a template consists of CNL sentences, it is called a CNL template. In this case, the CNL template includes at least one variable whose value is not determined.
(예) x and y enter into a service contract. (Example) x and y enter into a service contract.
이 CNL 템플릿은 위에 있는 술어 템플릿 “service_contract (x, y)”에 대응하는 CNL 템플릿이다.This CNL template is a CNL template corresponding to the predicate template “service_contract (x, y)” above.
(6) 확정/확정된(Assigned)(6) Confirmed/Assigned
템플릿의 모든 변수의 값이 확정된 경우 이를 확정 템플릿(Assigned template)이라 부른다. 특히 술어 템플릿의 모든 변수 값이 확정된 경우 이를 확정 술어 템플릿(Assigned predicate template) 또는 줄여서 확정 술어(Assigned predicate)라 부르고, CNL 템플릿의 변수 값이 모두 확정된 경우 이를 확정 CNL 템플릿(Assigned CNL Template)이라 부른다.When the values of all the variables in the template are confirmed, it is called an assigned template. In particular, when all variable values of a predicate template are confirmed, this is called an assigned predicate template or abbreviated as an assigned predicate. This is called.
(예)“service_contract (x, y)”는 술어 템플릿이고 이에 대응하는 CNL 버전“x and y enter into a service contract”은 CNL 템플릿이다. 여기에 x와 y값이 확정된 경우인“service_contract (Horizon Telecom, Smith WiFi)”은 확정 술어 템플릿이고“Horizon Telecom and Smith WiFi enter into a service contract”은 확정 CNL 템플릿이다. (Example) “service_contract (x, y)” is a predicate template, and the corresponding CNL version “x and y enter into a service contract” is a CNL template. Here, if the values of x and y are confirmed, “service_contract (Horizon Telecom, Smith WiFi)” is a confirmed predicate template and “Horizon Telecom and Smith WiFi enter into a service contract” is a confirmed CNL template.
(7) 문서 템플릿(Document Template)(7) Document Template
한 개 이상의 템플릿을 포함하고 있는 문서의 일부 또는 전부를 총칭하여 문서 템플릿 (Document Template)이라 부른다. 이때 문서가 술어 템플릿으로 구성되어 있으면 술어 문서 템플릿(Predicate Document Template)이라 부르고 CNL 템플릿으로 구성되어 있으면 CNL 문서 템플릿(CNL Document Template)이라 부른다. 이 경우 값이 확정되지 않는 변수를 적어도 하나 이상 포함하고 있다.A part or all of a document including one or more templates is collectively called a document template. At this time, if the document is composed of predicate templates, it is called a Predicate Document Template, and if it is composed of CNL templates, it is called a CNL Document Template. In this case, at least one variable whose value is not determined is included.
(8) 확정문서 템플릿(Assigned Document Template)(8) Assigned Document Template
문서 템플릿 (Document Template)의 모든 변수의 값이 확정된 경우 이를 확정문서 템플릿(Assigned Document Template) 또는 줄여서 확정문서(Assigned Document)라 부른다. 이때 확정문서가 술어 템플릿으로 구성되어 있으면 확정 술어 문서(Assigned Predicate Document)이라 부르고 CNL 템플릿으로 구성되어 있으면 확정 CNL 문서(Assigned CNL Document)라 부른다. 확정문서의 경우 값이 확정되지 않는 변수는 하나도 없다는 것이 중요한 특징이다.When the values of all the variables in the document template are confirmed, this is called an assigned document template or an abbreviated document. At this time, if the definitive document is composed of a predicate template, it is called an Assigned Predicate Document, and if it is composed of a CNL template, it is called an Assigned CNL Document. In the case of a definitive document, it is an important feature that none of the variables have no fixed value.
(9) 모듈(Module) 및 모듈 컬렉션(Collection of Modules):(9) Module and Collection of Modules:
대응하는 CNL 템플릿과 술어 템플릿 쌍 중에서 같은 기능을 하는 템플릿이지만 조건이나 실행 방식이 조금씩 상이한 템플릿을 한 그룹으로 모아 놓은 것을 모듈이라 부르고 이 모듈들의 집합(컬렉션)을 모듈 컬렉션(Collection of Modules)이라 부른다.Among the pair of corresponding CNL templates and predicate templates, templates that have the same function but are slightly different in terms of conditions and execution methods are grouped together as a group, and these modules are called collections of modules. .
도 1은 본 실시예에 따른 스마트 계약 생성장치를 개략적으로 나타낸 블록 구성도이며, 도 2는 본 실시예에 따른 스마트 계약의 생성, 수정 및 실행방법을 설명하기 위한 개념도이다.1 is a block diagram schematically showing a smart contract generating device according to the present embodiment, and FIG. 2 is a conceptual diagram illustrating a method of generating, modifying, and executing a smart contract according to the present embodiment.
이하, 도 1 및 도 2를 함께 참조하여, 본 실시예에 따른 스마트 계약 생성장치에 대하여 설명하도록 한다.Hereinafter, a smart contract generating device according to this embodiment will be described with reference to FIGS. 1 and 2 together.
도 1에 도시하듯이, 본 실시예에 따른 스마트 계약 생성장치(100)는 저장부(110), 템플릿 편집부(120), 문서 템플릿 편집부(130), 메타 스마트 계약부(140) 및 블록체인(150)을 포함한다. 이때, 본 실시예에 따른 스마트 계약 생성장치(100)에 포함되는 구성요소는 반드시 이에 한정되는 것은 아니다. 예컨대, 다른 실시예에 있어서, 스마트 계약 생성장치(100) 내 저장부(110) 및 블록체인(150)은 각각 별개의 구성요소로서 구현될 수 있다.As shown in FIG. 1, the smart
저장부(110)는 스마트 계약(Smart Contract)과 관련하여 기 정의된 CNL 템플릿 및 CNL 템플릿에 대응하는 술어(Predicate) 템플릿의 집합으로 이루어진 복수 개의 CNL-술어 템플릿 쌍을 저장한다.The
본 실시예에 따른 스마트 계약 생성방법에 의하는 경우 프로그래머가 스마트 계약을 코딩하는 통상의 방식이 아닌 자연어 상태에서 협상하고, 계약 내용을 추가, 삭제 및 변경하는 과정을 거쳐 계약이 이루어진다.In the case of the smart contract generation method according to the present embodiment, the programmer negotiates in the natural language state rather than the normal way of coding the smart contract, and the contract is made through the process of adding, deleting, and changing the contract content.
이로 인해, 본 실시예에 따른 스마트 계약 프로그램과 관계되는 문장은 모두 자연어 기반으로 이루어진다. 즉, 본 실시예의 경우 스마트 계약 프로그램과 관계되는 문장은 CNL 자연어 문장과 술어문장의 쌍으로 구현되어지며, 보다 자세하게는 CNL 템플릿과 술어 템플릿 쌍의 집합으로 표현될 수 있다. 이때, 술어 템플릿은 값이 확정되지 않은 적어도 하나 이상의 변수를 포함하는 술어 논리학 기반의 술어문장으로 구성된다. CNL 템플릿은, 술어문장을 자연어로 표현한 문장인 한정 자연어 문장으로 구성된다.For this reason, all sentences related to the smart contract program according to the present embodiment are based on natural language. That is, in the present embodiment, the sentences related to the smart contract program are implemented as a pair of CNL natural language sentences and predicate sentences, and more specifically, may be expressed as a set of CNL templates and predicate template pairs. At this time, the predicate template is composed of a predicate logic-based predicate sentence including at least one variable whose value is not determined. The CNL template is composed of limited natural language sentences, which are sentences in which a predicate sentence is expressed in natural language.
예를 들어,“x and y enter into a service contract”라는 CNL 템플릿과 이에 대응하는“service_contract (x, y)”라는 술어 템플릿의 쌍이 그 예이다. 저장부(110)는 이러한 쌍들을 모두 저장하고 있다.For example, a pair of CNL templates “x and y enter into a service contract” and corresponding predicate templates “service_contract (x, y)”. The
이러한 CNL 템플릿과 술어 템플릿 쌍은 서비스 제공자가 계약과 관련하여 사용 가능한 모든 쌍을 미리 만들어 제공하는 것이 일반적이나 반드시 이에 한정되는 것은 아니다. 다른 실시예에서, 일반 사용자도 편집 수단 예컨대, 템플릿 편집부(120) 등을 통해 이러한 쌍을 추가할 수도 있다.These CNL template and predicate template pairs are generally provided by the service provider in advance, but not necessarily limited to all available pairs in connection with the contract. In other embodiments, the general user may also add these pairs through editing means, such as the
한편, 저장부(110) 상에 저장된 CNL-술어 템플릿 쌍의 경우 계약과 관련하여 사용 가능한 모든 쌍이 제공됨에 따라 CNL-술어 템플릿 쌍 내 술어 문장들 중 서로 상충하는 문장이 있을 수 있다.On the other hand, in the case of a pair of CNL-predicate templates stored on the
예컨대,“If delivery of goods from x to y is not done by the promised date, the payment from y to x shall be forfeited”와“If delivery of goods from x to y is not done by the promised date, the penalty shall be 5 percent (%) of the amount of the payment from y to x”는 서로 상충되는 문장으로서 이 두 문장이 동시에 계약 문서에 들어가서는 안된다. 이러한 문제를 방지하기 위하여 상충되는 실행 방식을 표현하는 문장들을 하나의 그룹으로 묶어 그 중의 하나만 계약문서에 포함되도록 제약을 가할 필요가 있다.For example, “If delivery of goods from x to y is not done by the promised date, the payment from y to x shall be forfeited” and “If delivery of goods from x to y is not done by the promised date, the penalty shall be 5 percent (%) of the amount of the payment from y to x” is a conflicting statement, and these two statements should not be included in the contract document at the same time. In order to prevent such a problem, it is necessary to group sentences expressing conflicting execution methods into a group, and restrict the restriction so that only one of them is included in the contract document.
이를 위하여 본 실시예에 따른 저장부(110)는 저장부(110) 내 저장된 술어 템플릿 중 동일 기능을 수행하나 서로 상충되는 실행 방식을 갖는 템플릿들을 하나의 그룹으로 그룹화하여 모듈 컬렉션으로서 저장한다.To this end, the
예컨대, 도 4를 참조하면, 모듈 컬렉션의 한 예시로, 배달 지체 페널티 조항들을 묶은“Delay Penalty”모듈의 형태를 확인할 수 있다. 이러한, 모듈 컬렉션에 의하는 경우 제시되는 여러 페널티 중 한가지만 선택될 수 있도록 하는 제약이 가해지게 된다.For example, referring to FIG. 4, as an example of a module collection, a form of a “Delay Penalty” module that bundles delivery delay penalty provisions may be confirmed. In the case of such a module collection, a constraint is imposed so that only one of several proposed penalties can be selected.
템플릿 편집부(120)는 스마트 계약 실행 과정에서 이용되는 템플릿에 대한 편집 기능을 제공한다.The
본 실시예에 있어서, 템플릿 편집부(120)는 저장부(110) 상에 저장되는 CNL-술어 템플릿 쌍의 생성, 변경 및 삭제 등의 편집 기능을 제공한다.In the present embodiment, the
또한, 템플릿 편집부(120)는 CNL-술어 템플릿 쌍 내 술어 템플릿의 변수 값에 치환될 숫자, 문자열, 객체, 엔티티 중 적어도 하나의 대상정보를 정의할 수 있다.In addition, the
문서 템플릿 편집부(130)는 저장부(110) 상에 저장된 CNL-술어 템플릿 쌍을 활용하여 CNL 문서 템플릿을 생성하고, 이를 기반으로 자연어 기반 블록 체인 스마트 계약을 생성 및 수정하는 기능을 수행한다.The document
문서 템플릿 편집부(130)는 저장부(110) 상에 저장된 CNL-술어 템플릿 쌍을 기반으로 CNL 템플릿을 선택하고, 선택된 CNL 템플릿을 배치하는 과정을 통해 CNL 문서 템플릿을 생성할 수 있다.The document
한편, 본 실시예에 있어서, 문서 템플릿 편집부(130)는 CNL 문서 템플릿을 서비스 제공자가 서비스하려는 비즈니스의 요구 사항에 맞게 미리 만들어진 다양한 초벌 문서로 사전 제공할 수 있다. 예컨대, 서비스 제공자는 사용자의 편의를 위해 일종의 계약 문서의 틀을 만들고 그에 포함되어 있는 조항들에 해당하는 CNL 템플릿을 삽입하여 계약 문서 템플릿을 제공할 수 있다.On the other hand, in the present embodiment, the document
이를 통해, 본 실시예에 따른 사용자는 서비스 제공자와 같이 직접 CNL 문서 템플릿을 만들 수 있지만, 대부분의 경우 서비스 제공자가 제공하는 초벌 문서를 기반으로 CNL 템플릿을 삭제, 추가, 변경하는 방법으로 원하는 최종 CNL 문서 템플릿을 생성할 수 있다. 즉, 문서 템플릿 편집부(130)는 초벌 문서로서 제공되는 계약 문서 템플릿 내 각 조항들을 사용자에 의해 선택된 CNL 템플릿을 기초로 변경, 추가 삭제하여 CNL 문서 템플릿을 생성할 수 있다. 이러한 CNL 문서 템플릿은 실제로 계약서에 준하는 양식으로 만들어지지만, 여기에 포함되어 있는 템플릿의 변수 값은 확정되지 않은 상태이다.Through this, the user according to the present embodiment can create a CNL document template directly like a service provider, but in most cases, a final CNL desired by deleting, adding, or changing a CNL template based on a draft document provided by a service provider You can create document templates. In other words, the document
문서 템플릿 편집부(130)는 계약 당사자 간 협약결과에 따라 CNL 문서 템플릿 상의 변수 값들을 확정하여 스마트 계약에 상응하는 확정 CNL 문서를 생성한다. 즉, 계약의 주체인 일반 사용자들이 CNL 문서 템플릿을 가지고 변수 값들을 확정함으로써 최종적으로 확정 CNL 문서가 생성될 수 있다. 한편, 본 실시예에서는 이러한 확정 CNL 문서가 일반 사용자가 보는 계약 문서에 해당될 수 있다.The document
문서 템플릿 편집부(130)는 확정 CNL 문서를 복수의 계약 당사자에게 제공하며, 확정 CNL 문서에 대한 복수의 계약 당사자들 간 합의결과에 기반하여 스마트 계약을 생성한다.The document
예컨대, 문서 템플릿 편집부(130)는 계약 당사자들 간 합의결과에 따라 계약 당사자 각각으로부터 획득되는 디지털 서명을 기반으로 확정 CNL 문서와 관련한 계약을 최종 확정하고, 확정 결과를 블록체인(150) 상에 기록시켜 스마트 계약을 생성한다.For example, the document
한편, 본 실시예에의 경우, 스마트 계약 프로그램 입장에서 보면 프로그램이 다루는 대상이 CNL 문서 자체가 아니고 이와 대응하는 술어 템플릿이기 때문에, 스마트 계약 프로그램 실행 입장에서는 확장 술어 문서가 가장 중요한 기본 문서가 된다.On the other hand, in the present embodiment, from the standpoint of the smart contract program, since the object covered by the program is not the CNL document itself, but a predicate template corresponding thereto, the extended predicate document is the most important basic document in terms of executing the smart contract program.
이에, 문서 템플릿 편집부(130)는 저장부(110)에 저장된 CNL-술어 템플릿 쌍을 기반으로 하여 CNL 문서 템플릿에 상응하는 술어 문서 템플릿 및 확정 CNL 문서에 대응하는 확정 술어 문서를 순차적으로 생성하고, 생성한 확정 술어 문서를 확정 CNL 문서와 함께 블록체인(150) 상에 기록시킨다.Accordingly, the document
메타 스마트 계약부(140)는 확정 CNL 문서 및 블록체인(150) 상에 기 등록된 메타 스마트 계약 수단에 기반하여 스마트 계약을 실행하는 기능을 수행한다.The meta
본 실시예에 있어서, 메타 스마트 계약부(140)는 확정 CNL 문서에 대응하는 확정 술어 문서로부터 실행 정보 데이터를 산출하고, 산출한 실행 정보 데이터 및 스마트 계약 수단에 기반하여 스마트 계약을 실행한다. 이때, 실행 정보 데이터는 확정 술어 문서와 관련하여 선택된 템플릿의 종류, 해당 템플릿에 대하여 확정된 변수 값, 전자서명 등의 다양한 정보들이 포함될 수 있다. 이러한, 실행 정보 데이터는 스마트 계약을 실행시키기 위한 조건정보로서 활용되며, 실행 정보 데이터에 따라 스마트 계약의 실행 내용이 결정될 수 있다.In the present embodiment, the meta
메타 스마트 계약 수단은 그 자체를 블록체인에서 실행하기 위한 단순한 절차적 프로그램이 아니고, 모든 가능성을 수용할 수 있는 일종의 메타 프로그램을 의미한다. 즉, 메타 스마트 계약 수단은 어떠한 확정 술어 문서가 주어지더라도, 이를 실행할 수 있는 프로그램일 수 있다. 이러한, 메타 스마트 계약 수단은 Java, JavaScript, Python. Go, Ruby 등 다양한 프로그래밍 언어를 사용하여 구현할 수 있다.The meta smart contract means is not a simple procedural program for executing itself on the blockchain, but a kind of meta program that can accommodate all possibilities. That is, the meta smart contract means may be a program that can execute any given predicate document. These, meta smart contract means are Java, JavaScript, Python. It can be implemented using various programming languages such as Go and Ruby.
본 실시예에 있어서, 메타 스마트 계약 수단은 저장부(110) 내 술어 템플릿을 실행할 수 있으며, 이를 기반으로 스마트 계약의 실행을 위한 조건정보가 주어지는 경우 해당 조건정보에 기반하여 스마트 계약을 실행하도록 구현된다.In the present embodiment, the meta-smart contract means can execute a predicate template in the
메타 스마트 계약부(140)는 실행 정보 데이터를 메타 스마트 계약 수단 상에 조건정보로서 입력시켜 스마트 계약이 실행되도록 한다. 즉, 메타 스마트 계약 수단은 실행 정보 데이터에 따라 실제 실행 내용이 결정되며, 이를 통해 스마트 계약을 실행시킨다.The meta
메타 스마트 계약부(140)는 스마트 계약 실행 시 블록체인(150) 상에 기록된 확정 술어 문서로부터 실행 정보 데이터를 산출할 수도 있지만, 산출된 실행 정보 데이터를 스마트 계약 실행과 관련하여 별도로 블록체인(150) 상에 기록시킴으로써 이후, 이를 기반으로 스마트 계약이 실행되도록 할 수 있다. 즉, 메타 스마트 계약부(140)는 스마트 계약 실행 시 블록체인(150) 상에 기록된 실행 정보 데이터 및 스마트 계약 수단을 호출시킴으로써 스마트 계약이 자동 실행되도록 할 수 있다.The meta
한편, 메타 스마트 계약 수단은 버전업에 따라 대응되는 버전정보가 부여되며, 메타 스마트 계약부(140)는 스마트 계약 실행 시 실행 정보 데이터 상에 포함되는 버전정보에 기반하여 블록체인(150) 내 실행 정보 데이터에 대응하는 메타 스마트 계약 수단을 산출할 수 있다.On the other hand, the meta smart contract means is provided with corresponding version information according to the version up, and the meta
한편, 메타 스마트 계약 수단은 저장부(110) 내 모든 술어 템플릿을 실행할 수 있으며, 이는, 자칫 서로 상충되는 술어 템플릿이 동시에 확정 CNL 문서 상에 들어가는 경우 잘못된 스마트 계약을 실행시킬 수 있다는 문제가 존재한다.On the other hand, the meta smart contract means can execute all the predicate templates in the
이 점에 기인하여, 메타 스마트 계약부(140)는 앞서 저장부(110)에 저장된 모듈 컬렉션에 기반한 필터링 절차를 수행할 수 있다. 즉, 메타 스마트 계약부(140)는 서로 상충되는 계약 조건이 하나의 스마트 계약 상에서 실행되지 않도록 제약을 가한다. 이러한, 모듈 컬렉션에 기반한 필터링 절차는 문서 템플릿 편집부(130)가 CNL 문서 템플릿을 생성하는 과정에서 수행될 수도 있다.Due to this point, the meta-
도 3은 본 실시예에 따른 스마트 계약 생성방법을 설명하기 위한 순서도이다.3 is a flow chart for explaining a smart contract generation method according to the present embodiment.
스마트 계약 생성장치(100)는 복수 개의 CNL-술어 템플릿 쌍을 기반으로 사용자 선택에 따라 적어도 하나의 CNL 템플릿을 조합하여 CNL 문서 템플릿을 생성한다(S302). 단계 S302에서 초벌 문서로서 제공되는 계약 문서 템플릿 내 각 조항들을 사용자에 의해 선택된 CNL 템플릿을 기초로 변경, 추가 삭제하여 CNL 문서 템플릿을 생성할 수 있다.The smart
스마트 계약 생성장치(100)는 사용자 협약결과에 따라 단계 S302의 CNL 문서 템플릿 상의 변수 값들을 확정하여 스마트 계약에 상응하는 확정 CNL 문서를 생성한다(S304). 단계 S304에서 스마트 계약 생성장치(100)는 계약 당사자들 간 합의결과에 따라 계약 당사자 각각으로부터 획득되는 디지털 서명을 기반으로 확정 CNL 문서와 관련한 계약을 최종 확정하고, 확정 결과를 블록체인 상에 기록시켜 스마트 계약을 생성한다.The smart
스마트 계약 생성장치(100)는 저장부(110)에 저장된 CNL-술어 템플릿 쌍을 기반으로 하여 CNL 문서 템플릿에 상응하는 술어 문서 템플릿 및 확정 CNL 문서에 대응하는 확정 술어 문서를 순차적으로 생성하고, 생성한 확정 술어 문서를 확정 CNL 문서와 함께 블록체인 상에 기록시킨다.The smart
스마트 계약 생성장치(100)는 단계 S304의 확정 CNL 문서 및 블록체인 상에 기 등록된 메타 스마트 계약에 기반하여 스마트 계약을 실행한다(S306). 단계 S306에서 스마트 계약 생성장치(100)는 확정 CNL 문서에 대응하는 확정 술어 문서로부터 실행 정보 데이터를 산출하고, 산출한 실행 정보 데이터 및 스마트 계약 수단에 기반하여 스마트 계약을 실행한다.The smart
스마트 계약 생성장치(100)는 실행 정보 데이터를 메타 스마트 계약 수단 상에 조건정보로서 입력시켜 스마트 계약을 실행시킨다.The smart
도 3에서는 각각의 과정을 순차적으로 실행하는 것으로 기재하고 있으나, 반드시 이에 한정되는 것은 아니다. 다시 말해, 도 3에 기재된 과정을 변경하여 실행하거나 하나 이상의 과정을 병렬적으로 실행하는 것으로 적용 가능할 것이므로, 도 2는 시계열적인 순서로 한정되는 것은 아니다.Although FIG. 3 describes that each process is executed sequentially, the present invention is not limited thereto. In other words, since the process described in FIG. 3 may be changed or executed or one or more processes may be executed in parallel, FIG. 2 is not limited to the time series order.
전술한 바와 같이 도 3에 기재된 스마트 계약 생성방법은 프로그램으로 구현되고 컴퓨터의 소프트웨어를 이용하여 읽을 수 있는 기록매체(CD-ROM, RAM, ROM, 메모리 카드, 하드 디스크, 광자기 디스크, 스토리지 디바이스 등)에 기록될 수 있다.As described above, the smart contract generation method described in FIG. 3 is implemented as a program and can be read using a computer software (CD-ROM, RAM, ROM, memory card, hard disk, magneto-optical disk, storage device, etc.) ).
도 5 내지 도 8은 본 실시예에 따른 스마트 계약 실행을 위한 각 수행 시나리오를 설명하기 위한 흐름도이다. 한편, 도 5 내지 도 8에서는 저장부(110) 및 블록체인(150)이 스마트 계약 생성장치(100)와 별개의 장치로 구현된 것으로 도시하였으나, 이는, 수행 시나리오의 각 과정을 보다 명확하게 설명하기 위함이며, 실질적으로 하나의 장치로 구현될 수 있다.5 to 8 are flowcharts for explaining each execution scenario for executing a smart contract according to the present embodiment. On the other hand, in FIGS. 5 to 8, the
도 5는 본 실시예에 따른 스마트 계약 생성과 관련한 수행 시나리오를 설명하기 위한 흐름도이다.5 is a flowchart illustrating a performance scenario related to smart contract generation according to the present embodiment.
단계 S502 내지 단계 S508는 스마트 계약 생성장치(100)가 저장소 내 초벌 문서로서 제공되는 계약 문서 템플릿 내 각 조항들을 사용자에 의해 선택된 CNL 템플릿을 기초로 변경, 추가 삭제하여 CNL 문서 템플릿을 생성하고, 이를 계약 문서로 사용자에게 제공하는 과정에 해당된다.In step S502 to step S508, the smart
단계 S510 내지 단계 S518은 스마트 계약 생성장치(100)가 계약 당사자 간 협약결과에 따라 CNL 문서 템플릿 상의 변수 값들을 확정하여 스마트 계약에 상응하는 확정 CNL 문서를 생성하고, 계약 당사자들 간 합의결과에 따라 계약 당사자 각각으로부터 획득되는 디지털 서명을 기반으로 확정 CNL 문서와 관련한 계약을 최종 확정하는 과정에 해당된다. In step S510 to step S518, the smart
단계 S520 내지 단계 S524는 확정 CNL 문서에 대응하는 확정 술어 문서로부터 실행 정보 데이터를 산출하고, 이를 블록체인 상에 등록하여 스마트 계약이 생성 및 실행되도록 하는 과정에 해당된다.Steps S520 to S524 correspond to a process of calculating execution information data from a confirmed predicate document corresponding to the confirmed CNL document and registering it on the blockchain to generate and execute a smart contract.
도 6은 본 실시예에 따른 계약 당사자 간의 협상과 관련한 수행 시나리오를 설명하기 위한 흐름도이다.6 is a flowchart illustrating a performance scenario related to negotiation between contracting parties according to the present embodiment.
단계 S602 내지 단계 S614는 스마트 계약 생성장치(100)가 저장소 내 초벌 문서로서 제공되는 계약 문서 템플릿을 제1 계약 당사자로 전달하여 계약 문서 템플릿 내 각 조항들을 사용자에 의해 선택된 CNL 템플릿을 기초로 변경, 추가 삭제하도록 하는 과정에 해당한다.In step S602 to step S614, the smart
단계 S616 내지 단계 S620은 스마트 계약 생성장치(100)가 제1 계약 당사자로부터 전달받은 수정 문서 템플릿을 제2 계약 당사자로 전달하여 마찬가지로, 계약 문서 템플릿 내 각 조항들을 사용자에 의해 선택된 CNL 템플릿을 기초로 변경, 추가 삭제하도록 하는 과정에 해당한다.Steps S616 to S620, the smart
단계 S622 내지 단계 S632는 스마트 계약 생성장치(100)가 계약 당사자 간 협약결과에 따라 스마트 계약에 상응하는 확정 CNL 문서를 생성하고, 계약 당사자들 간 합의결과에 따라 계약 당사자 각각으로부터 획득되는 디지털 서명을 기반으로 확정 CNL 문서와 관련한 계약을 최종 확정하는 과정에 해당된다. In steps S622 to S632, the smart
도 7은 본 실시예에 따른 서비스 제공자의 CNL-술어 템플릿 쌍 제공과 관련한 수행 시나리오를 설명하기 위한 흐름도이다.7 is a flowchart illustrating a performance scenario related to providing a CNL-predicate template pair of a service provider according to the present embodiment.
단계 S702 내지 S708은 서비스 제공자가 계약과 관련하여 사용 가능한 CNL 문서 템플릿 및 이에 대응하는 술어 문서 템플릿을 생성하여 등록함으로써 사용 가능한 모든 CNL-술어 템플릿 쌍을 만들어 제공하는 과정에 해당한다.Steps S702 to S708 correspond to a process in which a service provider creates and provides all available CNL-predicate template pairs by generating and registering a CNL document template usable in connection with a contract and a corresponding predicate document template.
단계 S710 내지 S714는 스마트 계약 생성장치(100)가 생성된 CNL-술어 템플릿 쌍에 대한 유효성을 검증하고, 이를 저장소 내 최종 등록하는 과정에 해당한다.Steps S710 to S714 correspond to a process in which the smart
도 8은 본 실시예에 따른 모듈 컬렉션에 기반한 필터링 절차 수행 시나리오를 설명하기 위한 흐름도이다.8 is a flowchart illustrating a scenario for performing a filtering procedure based on a module collection according to the present embodiment.
단계 S802 내지 S808은 스마트 계약 생성장치(100)가 대응하는 CNL 템플릿과 술어 템플릿 쌍 중에서 같은 기능을 하는 템플릿이지만 조건이나 실행 방식이 조금씩 상이한 템플릿을 한 그룹으로 모아 놓은 모듈 컬렉션을 계약 당사자에게 전달하는 과정에 해당한다.Steps S802 to S808 are templates in which the
단계 S810 내지 S812 계약 당사자가 서로 상충되는 계약 조건이 하나의 스마트 계약 상에서 실행되지 않도록 모듈 컬렉션에 기반하여 여러 페널티 중 한가지만을 선택하여 제공하는 필터링 절차에 해당한다.Steps S810 to S812 correspond to a filtering procedure in which only one of several penalties is selected and provided based on the module collection so that contract terms that are in conflict with each other are not executed on one smart contract.
단계 S810 내지 S818은 스마트 계약 생성장치(100)가 계약 당사자 간 협약결과에 따라 CNL 문서 템플릿 상의 변수 값들을 확정하여 스마트 계약에 상응하는 확정 CNL 문서를 생성하고, 계약 당사자들 간 합의결과에 따라 계약 당사자 각각으로부터 획득되는 디지털 서명을 기반으로 확정 CNL 문서와 관련한 계약을 최종 확정하는 과정에 해당된다.In steps S810 to S818, the smart
단계 S820 내지 S824는 확정 CNL 문서에 대응하는 확정 술어 문서로부터 실행 정보 데이터를 산출하고, 이를 블록체인 상에 등록하여 스마트 계약이 생성 및 실행되도록 하는 과정에 해당된다.Steps S820 to S824 correspond to a process of calculating execution information data from the determined predicate document corresponding to the confirmed CNL document and registering it on the blockchain to generate and execute the smart contract.
이상의 설명은 본 실시예의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 실시예의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 실시예들은 본 실시예의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 실시예의 기술 사상의 범위가 한정되는 것은 아니다. 본 실시예의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 실시예의 권리범위에 포함되는 것으로 해석되어야 할 것이다.The above description is merely illustrative of the technical idea of the present embodiment, and those skilled in the art to which this embodiment belongs will be capable of various modifications and variations without departing from the essential characteristics of the present embodiment. Therefore, the present embodiments are not intended to limit the technical spirit of the present embodiment, but to explain, and the scope of the technical spirit of the present embodiment is not limited by these embodiments. The protection scope of the present embodiment should be interpreted by the claims below, and all technical spirits within the equivalent range should be interpreted as being included in the scope of the present embodiment.
100: 스마트 계약 생성장치 110: 저장부
120: 템플릿 편집부 130: 문서 템플릿 편집부
140: 메타 스마트 계약부 150: 블록체인100: smart contract generation device 110: storage unit
120: template editing unit 130: document template editing unit
140: meta smart contract unit 150: blockchain
Claims (17)
사용자 선택에 따라 적어도 하나의 상기 템플릿을 조합하여 문서 템플릿을 생성하고, 사용자 협약결과에 따라 상기 문서 템플릿 상의 변수 값들을 확정하여 상기 스마트 계약에 상응하는 확정 문서를 생성하는 문서 템플릿 편집부; 및
상기 확정 문서를 기반으로 블록체인 상에서 실행되는 상기 스마트 계약을 생성하는 메타 스마트 계약부
를 포함하는 것을 특징으로 하는 스마트 계약 생성장치.A storage unit for storing a predefined template capable of constructing the smart contract in connection with a smart contract;
A document template editing unit for generating a document template by combining at least one of the templates according to a user's selection, and determining variable values on the document template according to a user agreement result to generate a confirmation document corresponding to the smart contract; And
Meta smart contract unit that generates the smart contract executed on the blockchain based on the confirmed document
Smart contract generation device comprising a.
상기 저장부는,
상기 기 정의된 템플릿으로서 CNL(Controlled Natural Language) 템플릿 및 상기 CNL 템플릿에 대응하는 술어(Predicate) 템플릿 쌍의 집합으로 이루어진 복수 개의 CNL-술어 템플릿 쌍을 저장하는 것을 특징으로 하는 스마트 계약 생성장치.According to claim 1,
The storage unit,
A smart contract generating apparatus characterized by storing a plurality of pairs of CNL-predicate templates consisting of a set of CNL (Controlled Natural Language) templates and a pair of Predicate templates corresponding to the CNL templates.
상기 문서 템플릿 편집부는,
상기 CNL 템플릿을 조합하여 CNL 문서 템플릿을 생성하고, 상기 사용자 협약결과에 따라 상기 CNL 문서 템플릿 상의 변수 값들을 확정하여 상기 스마트 계약에 상응하는 확정 CNL 문서를 생성하는 것을 특징으로 하는 스마트 계약 생성장치.According to claim 2,
The document template editing unit,
The CNL document template is generated by combining the CNL template, and the determined CNL document corresponding to the smart contract is generated by determining variable values on the CNL document template according to the result of the user agreement.
상기 메타 스마트 계약부는,
상기 확정 CNL 문서 및 상기 블록체인 상에 기 등록된 메타 스마트 계약 수단에 기반하여 상기 스마트 계약을 생성하는 것을 특징으로 하는 스마트 계약 생성장치.According to claim 3,
The meta smart contract unit,
A smart contract generating device, characterized in that the smart contract is generated based on the confirmed CNL document and the meta smart contract means previously registered on the blockchain.
상기 술어 템플릿은, 값이 확정되지 않은 적어도 하나 이상의 변수를 포함하는 술어 논리학 기반의 술어문장으로 구성되며,
상기 CNL 템플릿은, 상기 술어문장을 자연어로 표현한 문장인 한정 자연어 문장으로 구성되는 것을 특징으로 하는 스마트 계약 생성장치.According to claim 2,
The predicate template is composed of predicate logic-based predicate sentences including at least one variable whose value is not determined,
The CNL template, the smart contract generation device characterized in that it consists of a limited natural language sentence that is a sentence expressing the predicate sentence in natural language.
상기 저장부 상에 저장되는 CNL-술어 템플릿 쌍 및 상기 술어 템플릿 상의 변수 값에 치환될 숫자, 문자열, 객체, 엔티티 중 적어도 하나의 대상정보를 정의하는 템플릿 편집부를 더 포함하는 것을 특징으로 하는 스마트 계약 생성장치.According to claim 2,
A smart contract further comprising a template editing unit defining target information of at least one of a number, a character string, an object, and an entity to be substituted for a CNL-predicate template pair stored in the storage unit and a variable value on the predicate template. Generator.
상기 문서 템플릿 편집부는,
서비스 제공자가 서비스하려는 비지니스의 요구 사항에 대응하여 기 생성된 계약 문서 템플릿을 초벌 문서로 제공하며, 상기 계약 문서 템플릿 내 각 조항들을 상기 사용자에 의해 선택된 상기 CNL 템플릿을 기초로 변경, 추가, 삭제하여 상기 CNL 문서 템플릿을 생성하는 것을 특징으로 하는 스마트 계약 생성장치.According to claim 3,
The document template editing unit,
The service provider provides a pre-generated contract document template in response to the requirements of the business to be serviced, and changes, adds, and deletes each provision in the contract document template based on the CNL template selected by the user. Smart contract generating device, characterized in that for generating the CNL document template.
상기 문서 템플릿 편집부는,
상기 확정 CNL 문서를 계약 문서로 복수의 계약 당사자에게 제공하며, 상기 확정 CNL 문서에 대한 복수의 계약 당사자들 간 합의결과에 기반하여 상기 스마트 계약을 생성하는 것을 특징으로 하는 스마트 계약 생성장치.According to claim 3,
The document template editing unit,
A smart contract generating apparatus comprising providing the confirmed CNL document as a contract document to a plurality of contracting parties, and generating the smart contract based on an agreement result between a plurality of contracting parties for the confirmed CNL document.
상기 문서 템플릿 편집부는,
상기 합의결과에 따라 상기 복수의 계약 당사자 각각으로부터 획득되는 디지털 서명을 기반으로 상기 확정 CNL 문서와 관련한 계약을 최종 확정하고, 확정 결과를 상기 블록체인 상에 기록시켜 상기 스마트 계약을 생성하는 것을 특징으로 하는 스마트 계약 생성장치.The method of claim 8,
The document template editing unit,
According to the result of the agreement, based on the digital signature obtained from each of the plurality of contract parties, the contract related to the confirmed CNL document is finally confirmed, and the result of the determination is recorded on the blockchain to generate the smart contract. Smart contract generator.
상기 문서 템플릿 편집부는,
상기 저장부에 저장된 상기 CNL-술어 템플릿 쌍을 기반으로 하여 상기 CNL 문서 템플릿에 상응하는 술어 문서 템플릿 및 상기 확정 CNL 문서에 대응하는 확정 술어 문서를 순차적으로 생성하고, 상기 확정 술어 문서를 상기 확정 CNL 문서와 함께 상기 블록체인 상에 기록시키는 것을 특징으로 하는 스마트 계약 생성장치.The method of claim 4,
The document template editing unit,
Based on the pair of CNL-predicate templates stored in the storage unit, a predicate document template corresponding to the CNL document template and a confirmation predicate document corresponding to the confirmation CNL document are sequentially generated, and the confirmation predicate document is the confirmation CNL Smart contract generation device characterized in that it is recorded on the blockchain together with the document.
상기 메타 스마트 계약부는,
상기 확정 술어 문서로부터 상기 확정 술어 문서와 관련하여 선택된 템플릿의 종류 및 선택된 템플릿에 대하여 확정된 변수 값을 포함하는 실행 정보 데이터를 산출하고, 상기 실행 정보 데이터 및 상기 메타 스마트 계약 수단에 기반하여 상기 스마트 계약을 실행하는 것을 특징으로 하는 스마트 계약 생성장치.The method of claim 10,
The meta smart contract unit,
Calculating execution information data including variable types determined for a selected template type and a selected template in relation to the determined predicate document from the determined predicate document, and based on the execution information data and the meta smart contract means Smart contract generation device characterized in that for executing the contract.
상기 메타 스마트 계약부는,
상기 스마트 계약 실행과 관련하여 상기 실행 정보 데이터를 별로도 상기 블록체인 상에 기록시키는 것을 특징으로 하는 스마트 계약 생성장치.The method of claim 11,
The meta smart contract unit,
Smart contract generating apparatus characterized in that the execution information data in relation to the execution of the smart contract is also recorded on the blockchain.
상기 메타 스마트 계약 수단은 상기 저장부 내 상기 술어 템플릿을 실행할 수 있는 프로그램으로서, 상기 스마트 계약의 실행을 위한 조건정보가 주어지는 경우 상기 조건정보에 기반하여 상기 스마트 계약을 실행하도록 구현되며,
상기 메타 스마트 계약부는, 상기 실행 정보 데이터를 상기 메타 스마트 계약 수단 상에 상기 조건정보로서 입력시켜 상기 스마트 계약이 실행되도록 하는 것을 특징으로 하는 스마트 계약 생성장치.The method of claim 11,
The meta smart contract means is a program capable of executing the predicate template in the storage unit, and is implemented to execute the smart contract based on the condition information when condition information for execution of the smart contract is given,
The smart contract contract unit, the smart contract generating apparatus characterized in that the smart contract is executed by inputting the execution information data as the condition information on the smart contract means.
상기 메타 스마트 계약 수단은 버전업에 따라 대응되는 버전정보가 부여되며,
상기 메타 스마트 계약부는, 상기 실행 정보 데이터 상에 포함되는 버전정보에 기반하여 상기 블록체인 내 상기 실행 정보 데이터에 대응하는 메타 스마트 계약 수단을 산출하는 것을 특징으로 하는 스마트 계약 생성장치.The method of claim 13,
The meta-smart contract means is provided with corresponding version information according to the version up,
The meta smart contract unit, the smart contract generating device, characterized in that for calculating the meta smart contract means corresponding to the execution information data in the blockchain based on the version information included in the execution information data.
상기 저장부는, 상기 저장부 내 저장된 술어 템플릿 중 동일 기능을 수행하나 서로 상충되는 실행 방식을 갖는 템플릿들을 하나의 그룹으로 그룹화하여 모듈 컬렉션으로서 저장하며,
상기 문서 템플릿 편집부 및 상기 메타 스마트 계약부 중 적어도 하나는 상기 모듈 컬렉션에 기반한 필터링 절차를 수행하는 것을 특징으로 하는 스마트 계약 생성장치.According to claim 2,
The storage unit, which performs the same function among the predicate templates stored in the storage unit, but stores the templates having conflicting execution methods into one group and stores them as a module collection,
At least one of the document template editing unit and the meta-smart contract unit performs a smart contract generation device, characterized in that for performing a filtering procedure based on the module collection.
스마트 계약과 관련하여 상기 스마트 계약을 구성할 수 있는 기 정의된 템플릿을 기반으로 사용자 선택에 따라 적어도 하나의 상기 템플릿을 조합하여 문서 템플릿을 생성하는 과정;
사용자 협약결과에 따라 상기 문서 템플릿 상의 변수 값들을 확정하여 상기 스마트 계약에 상응하는 확정 문서를 생성하는 과정; 및
상기 확정 문서를 기반으로 블록체인 상에서 실행되는 상기 스마트 계약을 생성하는 과정
을 포함하는 것을 특징으로 하는 스마트 계약 생성장치의 스마트 계약 생성방법.In the smart contract generation method of the smart contract generation device,
Generating a document template by combining at least one of the templates according to a user's selection based on a predefined template that can configure the smart contract in relation to a smart contract;
Determining variable values on the document template according to a user agreement result and generating a confirmation document corresponding to the smart contract; And
The process of generating the smart contract executed on the blockchain based on the confirmed document
Smart contract generation method of a smart contract generation device comprising a.
스마트 계약과 관련하여 상기 스마트 계약을 구성할 수 있는 기 정의된 템플릿을 기반으로 사용자 선택에 따라 적어도 하나의 상기 템플릿을 조합하여 문서 템플릿을 생성하는 과정;
사용자 협약결과에 따라 상기 문서 템플릿 상의 변수 값들을 확정하여 상기 스마트 계약에 상응하는 확정 문서를 생성하는 과정; 및
상기 확정 문서를 기반으로 블록체인 상에서 실행되는 상기 스마트 계약을 생성하는 과정
을 수행하기 위한 코드들을 포함하는 컴퓨터프로그램.A computer program stored in a computer-readable recording medium, when the computer program is executed by at least one processor,
Generating a document template by combining at least one of the templates according to a user's selection based on a predefined template that can configure the smart contract in relation to a smart contract;
Determining variable values on the document template according to a user agreement result to generate a confirmation document corresponding to the smart contract; And
The process of generating the smart contract executed on the blockchain based on the confirmed document
A computer program comprising code for performing a program.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/KR2020/000175 WO2020145591A1 (en) | 2019-01-08 | 2020-01-06 | Method for generating natural language-based blockchain smart contract and apparatus therefor |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20190002204 | 2019-01-08 | ||
KR1020190002204 | 2019-01-08 | ||
KR20190068222 | 2019-06-10 | ||
KR1020190068222 | 2019-06-10 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20200086224A KR20200086224A (en) | 2020-07-16 |
KR102142688B1 true KR102142688B1 (en) | 2020-08-07 |
Family
ID=71839588
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020200001218A KR102142688B1 (en) | 2019-01-08 | 2020-01-06 | Method and Apparatus for Creating Smart Contract in Blockchain Using Natural language |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102142688B1 (en) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101782754B1 (en) | 2015-11-24 | 2017-09-27 | 시아오미 아이엔씨. | Method and device for constructing a template, method and device for identifying information |
US10158479B2 (en) | 2017-02-06 | 2018-12-18 | Northern Trust Corporation | Systems and methods for generating, uploading and executing code blocks within distributed network nodes |
US20180365686A1 (en) | 2017-06-19 | 2018-12-20 | Hitachi, Ltd. | Smart contract lifecycle management |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017145019A1 (en) * | 2016-02-23 | 2017-08-31 | nChain Holdings Limited | Registry and automated management method for blockchain-enforced smart contracts |
KR101946235B1 (en) * | 2017-02-16 | 2019-02-11 | 주식회사 인프라웨어 | Method and apparatus for prividing templates in document creating program |
-
2020
- 2020-01-06 KR KR1020200001218A patent/KR102142688B1/en active IP Right Grant
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101782754B1 (en) | 2015-11-24 | 2017-09-27 | 시아오미 아이엔씨. | Method and device for constructing a template, method and device for identifying information |
US10158479B2 (en) | 2017-02-06 | 2018-12-18 | Northern Trust Corporation | Systems and methods for generating, uploading and executing code blocks within distributed network nodes |
US20180365686A1 (en) | 2017-06-19 | 2018-12-20 | Hitachi, Ltd. | Smart contract lifecycle management |
Also Published As
Publication number | Publication date |
---|---|
KR20200086224A (en) | 2020-07-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10810583B2 (en) | Digital asset modeling | |
US20170236130A1 (en) | Emulating Manual System of Filing Using Electronic Document and Electronic File | |
CN112650766A (en) | Database data operation method, system and server | |
Anjorin et al. | 20 years of triple graph grammars: A roadmap for future research | |
CN112417178B (en) | Document template definition-based on-chain contract processing method and device and electronic equipment | |
US11886810B2 (en) | System and method for electronic document interaction with external resources | |
CN112740214A (en) | Digital contract generation with escrow security | |
Cai et al. | A pattern-based code transformation approach for cloud application migration | |
KR102142688B1 (en) | Method and Apparatus for Creating Smart Contract in Blockchain Using Natural language | |
CN110968307A (en) | Micro-service construction method and device based on intelligent generation of basic codes | |
CN103377076A (en) | Method and system for adjusting task execution plans during operation | |
Thalheim | From Models_For_Programming to Modelling_To_Program and Towards Models_As_A_Program | |
KR100922526B1 (en) | Method and system of managing data quality through provisioning of metadata in the execution of business process | |
CN113918198B (en) | Model-code synchronization method | |
Pietsch et al. | Delta-oriented development of model-based software product lines with DeltaEcore and SiPL: A comparison | |
WO2020145591A1 (en) | Method for generating natural language-based blockchain smart contract and apparatus therefor | |
Roldán | Pentaho Data Integration Beginner's Guide | |
US20220318209A1 (en) | Computer mechanism for analytics outcome transparency | |
GB2528697A (en) | Generating a database structure from a scanned drawing | |
JP6336922B2 (en) | Business impact location extraction method and business impact location extraction device based on business variations | |
CN113761863A (en) | List page configuration method, device and storage medium | |
JP5891201B2 (en) | Design document management verification apparatus and method | |
CN116931896A (en) | Chained execution method and device of business rules, computer equipment and storage medium | |
Rodríguez et al. | Model‐based assisted migration of oracle forms applications: The overall process in an industrial setting | |
Gómez et al. | GraCoT, a tool for co-creation of models and metamodels in specific domains |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
GRNT | Written decision to grant |