KR102123320B1 - Smart Contract System and Smart Contract method - Google Patents

Smart Contract System and Smart Contract method Download PDF

Info

Publication number
KR102123320B1
KR102123320B1 KR1020180071532A KR20180071532A KR102123320B1 KR 102123320 B1 KR102123320 B1 KR 102123320B1 KR 1020180071532 A KR1020180071532 A KR 1020180071532A KR 20180071532 A KR20180071532 A KR 20180071532A KR 102123320 B1 KR102123320 B1 KR 102123320B1
Authority
KR
South Korea
Prior art keywords
node
contract
smart contract
seller
information
Prior art date
Application number
KR1020180071532A
Other languages
Korean (ko)
Other versions
KR20190134432A (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 주식회사 한컴위드
Publication of KR20190134432A publication Critical patent/KR20190134432A/en
Application granted granted Critical
Publication of KR102123320B1 publication Critical patent/KR102123320B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/102Entity profiles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]

Abstract

스마트 계약 시스템 및 방법이 개시된다. 일 양상에 따른 스마트 계약 방법은, 판매자 노드가 매물을 블록체인에 등록하는 단계와, 전문 회원 노드가 참가한 상태에서 상기 판매자 노드가 구매자 노드와 상기 매물에 대한 계약 내용을 협상하여 전자 계약서를 작성하고, 작성된 전자 계약서의 법적 유효성을 검증하는 단계와, 상기 판매자 노드가 상기 전자 계약서에 대응하는 스마트 계약 코드를 검증하는 단계와, 상기 판매자 노드가 상기 전자 계약서에서 개인정보 및 민감정보를 추출하고 추출된 개인정보 및 민감정보를 비식별화 및 암호화하는 단계와, 상기 판매자 노드가 개인정보 및 민감정보가 비식별화 및 암호화된 전자 계약서를 분산데이터 저장소에 저장하는 단계와, 상기 판매자 노드가 상기 전자 계약서를 블록체인에 등록하는 단계를 포함할 수 있다.Disclosed is a smart contract system and method. In a smart contract method according to an aspect, a seller node registers a sale on a blockchain, and in a state in which a professional member node participates, the seller node negotiates a contract for the sale with the buyer node to prepare an electronic contract, , Verifying the legal validity of the created electronic contract, verifying the smart contract code corresponding to the electronic contract by the seller node, and extracting and extracting personal information and sensitive information from the electronic contract by the seller node De-identifying and encrypting personal information and sensitive information, and storing the electronic contract in which the seller node has personal information and sensitive information de-identified and encrypted in a distributed data storage, and wherein the seller node stores the electronic contract. It may include the step of registering in the blockchain.

Description

스마트 계약 시스템 및 방법{Smart Contract System and Smart Contract method}Smart contract system and smart contract method

블록체인 기반의 스마트 계약 기술과 관련된다.It is related to blockchain-based smart contract technology.

초기 블록체인은 암호화 화폐를 저장하는 기술로 주목을 받았지만, 현재는 블록체인의 스마트 계약을 통해 플랫폼으로서 활용하는 기술로서 주목을 받고 있다. 스마트 계약은 신뢰할 수 있는 컴퓨터 인터넷 환경에서 고도로 발달된 계약을 준수하는 프로토콜로 정의할 수 있다. 스마트 계약은 특정 조건을 실행 가능한 코드로 구현한 일종의 계약으로, 이더리움에서는 트랜잭션을 통하여 블록체인에 배포할 수 있다. 이더리움은 블록체인을 기반으로 한 암호화폐 시스템의 한 종류로, 스마트 계약을 효율적으로 배포 및 실행시킬 수 있는 환경을 구축하고 있다. 이더리움에는 비밀키에 의해 통제되는 외부 소유 계정 (Externally Owned Account)과 코드에 의해 통제되는 컨트랙트 계정(Contract Account)이 존재하며, 사용자는 외부 소유 계정을 통해 트랜잭션을 생성하여 스마트 계약을 배포하거나, 스마트 계약에 포함된 코드를 실행할 수 있다.Initially, blockchain has received attention as a technology for storing cryptocurrency, but it is currently receiving attention as a technology utilized as a platform through a smart contract of blockchain. Smart contracts can be defined as a protocol that complies with highly developed contracts in a trusted computer Internet environment. Smart contracts are a type of contract that implements certain conditions as executable code. In Ethereum, they can be distributed to blockchains through transactions. Ethereum is a kind of cryptocurrency system based on blockchain, and is building an environment that can efficiently distribute and execute smart contracts. In Ethereum, there are externally owned accounts controlled by secret keys and contract accounts controlled by code, and users create transactions through externally owned accounts to distribute smart contracts, or You can run the code included in the smart contract.

전자 계약 분야에서 스마트 계약을 이용하는 경우에는, 법적 효력을 갖는 계약이 성사되기 위해 계약 당사자간의 개인을 확인할 수 있는 정보, 즉 개인 인적 정보를 필요로 하며, 이 경우 블록에 개인정보를 저장한다. 그러나 블록체인에 이러한 개인정보가 평문으로 기록이 되면, 블록체인에 저장된 정보는 기본적으로 해당 네트워크에 참여하고 있는 참여자 모두에게 공개되므로 의도하지 않게 블록체인에 등재된 기밀데이터 및 개인정보가 공개될 수 있는 위험이 있다.In the case of using a smart contract in the field of electronic contracts, in order for a contract having a legal effect to be established, information that can identify individuals between contracting parties, that is, personal information is required, in which case, personal information is stored in a block. However, if such personal information is recorded in plain text on the blockchain, the information stored on the blockchain is basically disclosed to all participants participating in the network, so confidential data and personal information registered on the blockchain may be unintentionally disclosed. There is a risk.

대한민국 등록특허공보 제10-1849917호(2018.05.31)Republic of Korea Registered Patent Publication No. 10-1849917 (May 31, 2018)

블록체인 기반의 스마트 계약시 발생할 수 있는 정보보호 문제를 해소할 수 있는 스마트 계약 시스템 및 방법을 제공하는 것을 목적으로 한다.It is an object of the present invention to provide a smart contract system and method that can solve information protection problems that may occur in a blockchain-based smart contract.

일 양상에 따른 스마트 계약 방법은, 판매자 노드가 매물을 블록체인에 등록하는 단계와, 전문 회원 노드가 참가한 상태에서 상기 판매자 노드가 구매자 노드와 상기 매물에 대한 계약 내용을 협상하여 전자 계약서를 작성하고, 작성된 전자 계약서의 법적 유효성을 검증하는 단계와, 상기 판매자 노드가 상기 전자 계약서에 대응하는 스마트 계약 코드를 검증하는 단계와, 상기 판매자 노드가 상기 전자 계약서에서 개인정보 및 민감정보를 추출하고 추출된 개인정보 및 민감정보를 비식별화 및 암호화하는 단계와, 상기 판매자 노드가 개인정보 및 민감정보가 비식별화 및 암호화된 전자 계약서를 분산데이터 저장소에 저장하는 단계와, 상기 판매자 노드가 상기 전자 계약서를 블록체인에 등록하는 단계를 포함할 수 있다.In a smart contract method according to an aspect, a seller node registers a sale on a blockchain, and in a state in which a professional member node participates, the seller node negotiates a contract for the sale with the buyer node to prepare an electronic contract, , Verifying the legal validity of the created electronic contract, verifying the smart contract code corresponding to the electronic contract by the seller node, and extracting and extracting personal information and sensitive information from the electronic contract by the seller node De-identifying and encrypting personal information and sensitive information, and storing the electronic contract in which the seller node has personal information and sensitive information de-identified and encrypted in a distributed data storage, and wherein the seller node stores the electronic contract. It may include the step of registering in the blockchain.

상기 전문 회원 노드는, 상기 계약에 대한 법률 자문을 위한 노드일 수 있다.The professional member node may be a node for legal advice on the contract.

상기 법적 유효성을 검증하는 단계는, 상기 판매자 노드가 상기 구매자 노드의 요청에 따라 사이드 채널을 오픈하는 단계와, 상기 판매자 노드가 상기 전문 회원 노드의 참가하에 상기 사이드 채널을 통해 상기 구매자 노드와 계약 내용을 협상하는 단계와, 상기 판매자 노드가 계약 내용 협상이 완료되면 상기 오픈된 사이드 채널을 종료하는 단계와, 상기 판매자 노드가 상기 사이드 채널 상에서 발생한 대화 내용을 분산데이터 저장소에 저장하는 단계와, 상기 판매자 노드가 전자 계약서를 생성하고, 생성된 전자 계약서의 법적 유효성을 검증하는 단계를 포함할 수 있다.In the step of verifying the legal validity, the seller node opens a side channel at the request of the buyer node, and the seller node engages with the buyer node through the side channel under the participation of the professional member node Negotiating, and when the seller node negotiates the contents of the contract, the open side channel is terminated, and the seller node stores the conversations generated on the side channel in a distributed data storage, and the seller The node may include generating an electronic contract and verifying the legal validity of the generated electronic contract.

상기 사이드 채널은, 이더리움의 상태 채널일 수 있다.The side channel may be a state channel of Ethereum.

상기 사이드 채널의 오픈 및 종료는, 상기 판매자 노드 및 상기 구매자 노드의 개인키 서명을 통해 이루어질 수 있다.The opening and closing of the side channel may be performed through the private key signature of the seller node and the buyer node.

상기 스마트 계약 코드를 검증하는 단계는, 상기 판매자 노드가 상기 스마트 계약 코드의 실행시 코드 상의 오류가 일어나지 않도록, 상호 호환성 체크, 실행 코드 검증, 트랜잭션 유효성 검증 중 적어도 하나를 수행할 수 있다.In the step of verifying the smart contract code, the seller node may perform at least one of a cross-compatibility check, execution code verification, and transaction validation so that no error occurs in the code when the smart contract code is executed.

스마트 계약 방법은, 상기 판매자 노드가 상기 스마트 계약 코드 검증 결과 오류가 발생하면, 그 오류를 해결하기 위해 컨트롤러 노드를 호출하는 단계를 더 포함할 수 있다.The smart contract method may further include a step in which the seller node calls a controller node to resolve the error when the smart contract code verification error occurs.

상기 컨트롤러 노드는, 거래를 중재 및 감사하고, 블록체인 네트워크 상에 이상 징후 발생시 이를 탐지하여 거래 정상화를 수행하는 노드일 수 있다.The controller node may be a node that mediates and audits transactions and detects abnormalities on the blockchain network to normalize transactions.

상기 비식별화 및 암호화하는 단계는, 상기 판매자 노드가 상기 개인정보 및 상기 민감정보의 유무에 대한 내용을 정보주체에게 고지하고, 정보주체로부터 정보 이용에 대한 동의를 받는 단계를 더 포함할 수 있다.The step of de-identifying and encrypting may further include the step of the seller node notifying the information subject of the presence or absence of the personal information and the sensitive information, and receiving consent from the information subject to use the information. .

상기 비식별화 및 암호화하는 단계는, 상기 판매자 노드가 암호화 및 비식별화된 정보에 대하여 정보 주체의 명령에 따라 정보 이용에 대한 유효 기간을 설정하는 단계를 더 포함할 수 있다.The step of de-identifying and encrypting may further include the step of setting, by the seller node, an expiration date for the use of information according to an instruction of the information subject for the encrypted and de-identified information.

스마트 계약 방법은, 애플리케이션 또는 서버를 통해 블록체인 네트워크를 구성하는 각 노드에 역할을 부여하는 단계를 더 포함할 수 있다.The smart contract method may further include granting a role to each node constituting the blockchain network through an application or a server.

상기 역할을 부여하는 단계는, 1차 인증을 수행한 노드에 일반 사용자 노드의 역할을 부여하는 단계와, 1차 인증 후 2차 인증을 수행한 노드에 판매자 노드, 구매자 노드, 전문 회원 노드 또는 컨트롤러 노드 중 하나의 역할을 부여하는 단계를 더 포함할 수 있다.The step of granting the role includes assigning a role of a normal user node to a node that has undergone primary authentication, and a seller node, a buyer node, a professional member node, or a controller to a node that has undergone secondary authentication after primary authentication. It may further include the step of granting the role of one of the nodes.

상기 1차 인증은 지갑 주소를 등록하는 것이고, 상기 2차 인증은 실명 인증하는 것일 수 있다.The primary authentication is to register a wallet address, and the secondary authentication may be to authenticate a real name.

상기 1차 인증은 애플리케이션 또는 서버에 회원 가입하는 것이고, 상기 2차 인증은 지갑 주소 등록 및 실명 인증하는 것일 수 있다.The primary authentication is to sign up for an application or server, and the secondary authentication can be to register a wallet address and to authenticate a real name.

각 역할에 따른 권한은 하나의 스마트 계약으로 구현될 수 있다.The authority for each role can be implemented as one smart contract.

스마트 계약 및 스마트 계약 실행시 개인정보 및 민감정보의 공개 위험을 해소할 수 있다.When executing smart contracts and smart contracts, the risk of disclosure of personal and sensitive information can be eliminated.

도 1은 스마트 계약 시스템의 일 실시예를 도시한 블록도이다.
도 2는 노드에 블록체인 네트워크 상의 역할을 할당하는 방법의 일 실시예를 도시한 흐름도이다.
도 3은 노드에 블록체인 네트워크 상의 역할을 할당하는 방법의 다른 실시예를 도시한 흐름도이다.
도 4은 스마트 계약 방법의 일 실시예를 도시한 흐름도이다.
도 5는 블록체인에 매물을 등록하는 방법의 일 실시예를 도시한 흐름도이다.
도 6은 판매자 노드와 구매자 노드의 계약 협의 방법의 일 실시예를 도시한 흐름도이다.
도 7은 개인정보 및 민감정보의 보호 방법의 일 실시예를 도시한 흐름도이다.
1 is a block diagram showing an embodiment of a smart contract system.
2 is a flowchart illustrating an embodiment of a method of assigning a role on a blockchain network to a node.
3 is a flowchart illustrating another embodiment of a method of assigning a role on a blockchain network to a node.
4 is a flowchart illustrating an embodiment of a smart contract method.
5 is a flowchart illustrating an embodiment of a method for registering a sale in a blockchain.
6 is a flowchart illustrating an embodiment of a method for negotiating a contract between a seller node and a buyer node.
7 is a flowchart illustrating an embodiment of a method of protecting personal information and sensitive information.

이하, 첨부된 도면을 참조하여 본 발명의 일 실시예를 상세하게 설명한다. 각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 발명을 설명함에 있어 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다.Hereinafter, an embodiment of the present invention will be described in detail with reference to the accompanying drawings. It should be noted that in adding reference numerals to the components of each drawing, the same components have the same reference numerals as possible even though they are displayed on different drawings. In addition, in the description of the present invention, when it is determined that the detailed description of the related known functions or configurations may unnecessarily obscure the subject matter of the present invention, the detailed description will be omitted.

한편, 각 단계들에 있어, 각 단계들은 문맥상 명백하게 특정 순서를 기재하지 않은 이상 명기된 순서와 다르게 일어날 수 있다. 즉, 각 단계들은 명기된 순서와 동일하게 수행될 수 있고 실질적으로 동시에 수행될 수도 있으며 반대의 순서대로 수행될 수도 있다.On the other hand, for each step, each step may occur differently from the order specified unless a specific order is explicitly stated in the context. That is, each step may be performed in the same order as specified, may be performed substantially simultaneously, or may be performed in the reverse order.

후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.Terms to be described later are terms defined in consideration of functions in the present invention, which may vary according to a user's or operator's intention or practice. Therefore, the definition should be made based on the contents throughout this specification.

제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 구성요소들은 용어들에 의해 한정되어서는 안 된다. 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한 복수의 표현을 포함하고, '포함하다' 또는 '가지다' 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.Terms such as first and second may be used to describe various components, but the components should not be limited by the terms. The terms are only used to distinguish one component from other components. Singular expressions include plural expressions unless the context clearly indicates otherwise, and terms such as'include' or'have' include features, numbers, steps, actions, components, parts, or combinations thereof. It should be understood that it is intended to designate the existence of one, and does not preclude the existence or addition possibility of one or more other features or numbers, steps, operations, components, parts or combinations thereof.

또한, 본 명세서에서의 구성부들에 대한 구분은 각 구성부가 담당하는 주 기능별로 구분한 것에 불과하다. 즉, 2개 이상의 구성부가 하나의 구성부로 합쳐지거나 또는 하나의 구성부가 보다 세분화된 기능별로 2개 이상으로 분화되어 구비될 수도 있다. 그리고 구성부 각각은 자신이 담당하는 주기능 이외에도 다른 구성부가 담당하는 기능 중 일부 또는 전부의 기능을 추가적으로 수행할 수도 있으며, 구성부 각각이 담당하는 주기능 중 일부 기능이 다른 구성부에 의해 전담되어 수행될 수도 있다. 각 구성부는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다.In addition, the division of the components in the present specification is only divided by the main functions of each component. That is, two or more components may be combined into one component, or one component may be divided into two or more for each subdivided function. In addition, each of the constituent parts may additionally perform some or all of the functions of other constituent parts in addition to the main functions of the constituent parts, and some of the main functions of each constituent part are dedicated by other constituent parts It may be performed. Each component may be implemented in hardware or software, or a combination of hardware and software.

도 1은 스마트 계약 시스템의 일 실시예를 도시한 블록도이다.1 is a block diagram showing an embodiment of a smart contract system.

일 실시예에 따른 스마트 계약 시스템(100)은 개인정보보호 및 정보보호를 고려한 블록체인 기반의 신뢰할 수 있는 스마트 계약 방법을 수행할 수 있다.The smart contract system 100 according to an embodiment may perform a reliable smart contract method based on a blockchain in consideration of personal information protection and information protection.

도 1을 참조하면, 스마트 계약 시스템(100)은 복수의 노드(110)를 포함할 수 있다.Referring to FIG. 1, the smart contract system 100 may include a plurality of nodes 110.

복수의 노드(110)는 상호 연결되어 블록체인 네트워크(10)를 형성할 수 있다. 블록체인 네트워크(10)는 블록체인의 분산 원장을 저장하고 있는 복수의 노드(110)로 구성된 P2P 분산 네트워크를 의미할 수 있다. 블록체인 네트워크(10)는 적어도 일부의 노드(110)가 동일한 처리를 할 수 있도록 구성되기 때문에 일부의 노드(110)가 Shut down 되거나 변조되더라도 시스템 전체에 영향을 주지 않는 특징을 가질 수 있다. 노드(110)는 블록체인 네트워크(10)에 연결된 모든 컴퓨팅 장치를 의미할 수 있다. 이러한 노드(110)는 디지털 지갑, 블록체인 복사본, 검증 엔진, 채굴 엔진, P2P 네트워크 배포 기능 등을 포함할 수 있다.The plurality of nodes 110 may be interconnected to form a blockchain network 10. The blockchain network 10 may mean a P2P distributed network composed of a plurality of nodes 110 storing a distributed ledger of the blockchain. Since the blockchain network 10 is configured such that at least some of the nodes 110 can perform the same processing, even if some of the nodes 110 are shut down or tampered with, the entire system may not be affected. The node 110 may mean any computing device connected to the blockchain network 10. The node 110 may include a digital wallet, a blockchain copy, a verification engine, a mining engine, and a P2P network distribution function.

일 실시예에 따르면 블록체인 네트워크(10)는 컨소시엄 블록체인 네트워크일 수 있다. 즉, 각 노드(110)는 가입과 인증 절차를 통해 블록체인 네트워크(10)에 참여할 수 있다.According to an embodiment, the blockchain network 10 may be a consortium blockchain network. That is, each node 110 may participate in the blockchain network 10 through a subscription and authentication procedure.

블록체인 네트워크(10)는 각 노드(110)에서 만든 트랜잭션을 검증하고, 합의 알고리즘을 이용하여 트랜잭션을 포함한 블록을 생성하며, 생성된 블록을 네트워크 전체에서 공유하여 블록체인에 반영할 수 있다. 이때, 합의 알고리즘은 PoW(Proof of Work), PoS(Proof of Stake), DPoS(Delegated Proof of Stake), PoI(Proof of Importance), PBFT(Practical Byzantine Fault Tolerance), Tendermint(DPoS + PBFT) 등을 포함할 수 있다.The blockchain network 10 can verify the transactions made by each node 110, generate a block including a transaction using a consensus algorithm, and share the generated block across the network to reflect it on the blockchain. At this time, the consensus algorithm includes PoW (Proof of Work), PoS (Proof of Stake), DPoS (Delegated Proof of Stake), PoI (Proof of Importance), PBFT (Practical Byzantine Fault Tolerance), Tendermint (DPoS + PBFT), etc. It can contain.

각 노드(110)는 가입과 인증 절차를 거쳐 블록체인 네트워크(10) 상의 역할을 할당 받을 수 있다. 일 실시예에 따르면, 각 노드(110)는 각 노드(110)에 설치된 애플리케이션 또는 소정의 서버를 통해 회원 가입, 지갑 주소 등록, 또는 소정의 추가 본인 인증을 하여 그에 따른 역할을 할당 받을 수 있다.Each node 110 may be assigned a role on the blockchain network 10 through a subscription and authentication procedure. According to an embodiment, each node 110 may be assigned a role according to membership registration, wallet address registration, or additional authentication of a user through an application installed on each node 110 or a predetermined server.

일 실시예에 따르면, 스마트 계약 시스템(100)은 블록체인 네트워크(10)의 노드(110)의 지갑 주소를 이용해 검증하고, 각 노드(110)는 자신에게 할당된 역할(일반 사용자, 판매자, 구매자, 전문 회원, 컨트롤러) 별로 계약에 참여하는 것이 가능하다. 스마트 계약 시스템(100)은 각 노드(110)에 역할을 할당한 후 사용자가 계약 정보에 접근할 때 그 계약 정보에 민감 정보 또는 개인 정보가 포함되어 있다면, 사용자가 접근가능한지에 대한 검증 후, 접근 여부 및 이용할 수 있는 연산에 대한 알맞은 권한을 부여할 수 있다.According to one embodiment, the smart contract system 100 verifies using the wallet address of the node 110 of the blockchain network 10, and each node 110 is assigned to a role (general user, seller, buyer) , Professional members, controllers). The smart contract system 100 assigns a role to each node 110 and then, when a user accesses the contract information, if the contract information includes sensitive information or personal information, after verifying whether the user is accessible, access Appropriate authority can be given to whether and to which operation is available.

노드의 역할과 권한의 일 실시예는 표 1과 같다.Table 1 shows an example of a role and authority of a node.

Figure 112018061118853-pat00001
Figure 112018061118853-pat00001

일 실시예에 따르면, 노드(110)의 역할에 따른 권한을 하나의 스마트 계약으로 구현하여 이용할 수 있다. 이를 통해, 예외 없이 설정한 규칙대로 적용이 가능하며, 상태의 변경이 필요한 경우 계약 상태 업데이트를 통해 관리가 가능하다.According to an embodiment, authority according to the role of the node 110 may be implemented and used as a single smart contract. Through this, it can be applied according to the rules set without exception, and if it is necessary to change the status, it can be managed by updating the status of the contract.

도 2는 노드에 블록체인 네트워크 상의 역할을 할당하는 방법의 일 실시예를 도시한 흐름도이다.2 is a flowchart illustrating an embodiment of a method of assigning a role on a blockchain network to a node.

도 2를 참조하면, 노드(110)는 애플리케이션 또는 서버(120)를 통해 사용자의 지갑 주소를 등록하여 1차 인증을 수행할 수 있다(210). 애플리케이션 또는 서버(120)는 사용자의 지갑 주소를 등록하여 1차 인증이 완료된 노드(110)에 일반 사용자 역할을 부여할 수 있다(220).Referring to FIG. 2, the node 110 may perform primary authentication by registering a user's wallet address through the application or server 120 (210 ). The application or the server 120 may register the user's wallet address to grant the normal user role to the node 110 whose primary authentication is completed (220 ).

일반 사용자 역할을 부여받은 노드(110)는 블록체인(130)에 자신을 일반 사용자로 등록할 수 있다. 예컨대, 노드(110)는 역할 등록 트랜잭션을 생성하여 블록체인 네트워크 상의 모든 노드에 역할 등록 트랜잭션을 공유함으로써, 블록체인(130)에 자신을 일반 사용자로 등록할 수 있다.The node 110 that has been granted a general user role may register itself as a general user on the blockchain 130. For example, the node 110 can register itself as a general user on the blockchain 130 by creating a role registration transaction and sharing the role registration transaction with all nodes on the blockchain network.

노드(110)가 계약에 직접적으로 참여하기를 원한다면, 노드(110)는 애플리케이션 또는 서버(120)를 통해 추가 인증(예컨대, 실명 인증)의 2차 인증을 수행할 수 있다(250).If the node 110 wants to participate directly in the contract, the node 110 may perform secondary authentication of additional authentication (eg, real-name authentication) through the application or server 120 (250 ).

애플리케이션 또는 서버(120)는 2차 인증이 완료된 노드(110)에 노드(110)의 선택에 따라 판매자, 구매자, 전문 회원 또는 컨트롤러의 역할을 부여할 수 있다(250).The application or the server 120 may grant the role of a seller, a buyer, a professional member, or a controller 250 to the node 110 whose secondary authentication is completed according to the selection of the node 110 (250 ).

판매자, 구매자, 전문 회원 또는 컨트롤러의 역할을 부여받은 노드(110)는 블록체인(130)에 자신을 판매자, 구매자, 전문 회원 또는 컨트롤러로 등록할 수 있다. 예컨대, 노드(110)는 역할 등록 트랜잭션을 생성하여 블록체인 네트워크 상의 모든 노드에 역할 등록 트랜잭션을 공유함으로써, 블록체인(130)에 자신을 판매자, 구매자, 전문 회원 또는 컨트롤러로 등록할 수 있다.The node 110, which has been granted the role of a seller, a buyer, a professional member, or a controller, may register itself as a seller, a buyer, a professional member, or a controller in the blockchain 130. For example, the node 110 may register itself as a seller, buyer, professional member, or controller in the blockchain 130 by sharing the role registration transaction with all nodes on the blockchain network by creating a role registration transaction.

도 3은 노드에 블록체인 네트워크 상의 역할을 할당하는 방법의 다른 실시예를 도시한 흐름도이다. 도 3의 실시예는 도 2와는 달리 일반 사용자 노드의 경우 블록체인 네트워크에 참여할 수 없다. 즉, 일반 사용자 노드는 애플리케이션 또는 서버(120)를 통해 애플리케이션 또는 서버(120)에 등록된 매물을 검색할 수 있을 뿐이며, 블록체인 네트워크에 직접적인 참여를 할 수 없다.3 is a flowchart illustrating another embodiment of a method of assigning a role on a blockchain network to a node. Unlike the FIG. 2, the embodiment of FIG. 3 cannot participate in a blockchain network in the case of a general user node. That is, the general user node can only search for the property registered in the application or the server 120 through the application or the server 120, and cannot directly participate in the blockchain network.

도 3을 참조하면, 노드(110)는 애플리케이션 또는 서버(120)를 통해 애플리케이션 또는 서버(120)의 회원 가입을 수행하여 1차 인증을 수행할 수 있다(310).Referring to FIG. 3, the node 110 may perform primary authentication by performing membership registration of the application or server 120 through the application or server 120 (310 ).

애플리케이션 또는 서버(120)는 회원 가입을 통해 1차 인증이 완료된 노드(110)에 일반 사용자 역할을 부여할 수 있다(320).The application or the server 120 may grant a normal user role to the node 110, which has completed primary authentication through membership registration (320).

노드(110)가 블록체인 네트워크를 통해 계약에 직접적으로 참여하기를 원한다면, 노드(110)는 애플리케이션 또는 서버(120)를 통해 지갑 주소 등록 및 추가 인증(예컨대, 실명 인증)을 하여 2차 인증을 수행할 수 있다(330).If the node 110 wants to directly participate in the contract through the blockchain network, the node 110 performs secondary authentication by registering the wallet address and additional authentication (eg, real name authentication) through the application or the server 120. It can be performed (330).

애플리케이션 또는 서버(120)는 2차 인증이 완료된 노드(110)에 노드(110)의 선택에 따라 판매자, 구매자, 전문 회원 또는 컨트롤러의 역할을 부여할 수 있다(340).The application or the server 120 may grant a role of a seller, a buyer, a professional member, or a controller (340) to the node 110 whose secondary authentication is completed according to the selection of the node 110.

판매자, 구매자, 전문 회원 또는 컨트롤러의 역할을 부여받은 노드(110)는 블록체인(130)에 자신을 판매자, 구매자, 전문 회원 또는 컨트롤러로 등록할 수 있다. 예컨대, 노드(110)는 역할 등록 트랜잭션을 생성하여 블록체인 네트워크 상의 모든 노드에 역할 등록 트랜잭션을 공유함으로써, 블록체인(130)에 자신을 판매자, 구매자, 전문 회원 또는 컨트롤러로 등록할 수 있다.The node 110, which has been granted the role of a seller, a buyer, a professional member, or a controller, may register itself as a seller, a buyer, a professional member, or a controller in the blockchain 130. For example, the node 110 may register itself as a seller, buyer, professional member, or controller in the blockchain 130 by sharing the role registration transaction with all nodes on the blockchain network by creating a role registration transaction.

도 4은 스마트 계약 방법의 일 실시예를 도시한 흐름도이다. 도 4의 스마트 계약 방법은 도 1의 스마트 계약 시스템(100)에 의해 수행될 수 있다.4 is a flowchart illustrating an embodiment of a smart contract method. The smart contract method of FIG. 4 may be performed by the smart contract system 100 of FIG. 1.

도 4를 참조하면, 판매자 노드(111)는 애플리케이션 또는 서버를 통해 매물을 블록체인(130)에 등록할 수 있다(410). 예컨대, 판매자 노드(111)는 애플리케이션 또는 서버를 통해 매물 정보를 입력하고, 매물 등록 트랜잭션을 생성하여 블록체인 네트워크 상의 모든 노드에 매물 등록 트랜잭션을 공유함으로써, 블록체인(130)에 매물을 등록할 수 있다.Referring to FIG. 4, the seller node 111 may register the sale with the blockchain 130 through an application or a server (410). For example, the seller node 111 may register the sale on the blockchain 130 by inputting the sale information through an application or a server and creating a sale registration transaction to share the sale registration transaction with all nodes on the blockchain network. have.

구매자 노드(112)는 블록체인(130)에 등록된 매물을 검색하고 매물 정보를 열람할 수 있다(420).The purchaser node 112 may search for a listing registered in the blockchain 130 and view the listing information (420 ).

블록체인(130)에 등록된 매물을 구매하고자 하는 구매자 노드(112)는 판매자 노드(111)와 매매 계약 내용을 협상하여 전자 계약서를 작성하고, 그 전자 계약서의 법적 유효성을 검증할 수 있다(430). 이때, 필요에 따라 판매자 노드(111)와 구매자 노드(112)는 전문 회원 노드를 호출하여, 전문 회원 노드의 참여하에 계약 내용 협상, 합의 전자 계약서 작성과 그 전자 계약서의 법적 유효성을 검증할 수 있다. 이때, 전문 회원 노드는 표 1에 기재된 바와 같이, 법적인 부분에 대한 법률 자문을 위한 노드로, 법률 자문 및 계약 내용 검토 등을 수행할 수 있다.The buyer node 112 who wants to purchase a registered product on the blockchain 130 can negotiate the contents of the sales contract with the seller node 111 to create an electronic contract and verify the legal validity of the electronic contract (430) ). At this time, if necessary, the seller node 111 and the buyer node 112 may call a professional member node, and negotiate the contents of the contract with the participation of the professional member node, prepare an agreement electronic contract, and verify the legal validity of the electronic contract. . At this time, as described in Table 1, the professional member node is a node for legal advice on legal matters, and can perform legal advice and review contract contents.

일 실시예에 따르면, 판매자 노드(111)와 구매자 노드(112)의 매매 계약 내용의 협상은 메인 채널과는 별개의 사이드 채널(예컨대, 이더리움의 상태 채널(state channel))을 통해 이루어질 수 있다. 매매 계약 내용의 협상은 민감한 내용을 포함할 수 있기 때문에 전체 노드가 참여하고 있는 메인 블록체인 네트워크에서 이루어질 필요가 없다. 따라서, 일 실시예에 따르면, 판매자 노드(111)와 구매자 노드(112)의 매매 계약 내용의 협상은 사이드 채널에서 이루어지고, 그 협상 내용은 참가자의 개인키로 서명하여 분산데이터 저장소(예컨대 IPFS (Inter-Planetary File System) 또는 Swarm)에 저장됨으로써 데이터의 무결성과 부인방지 기능을 기대할 수 있고 트랜잭션 발생으로 인한 불필요한 수수료를 줄일 수 있다.According to an embodiment, negotiation of the contents of the sales contract between the seller node 111 and the buyer node 112 may be performed through a side channel (eg, a state channel of Ethereum) separate from the main channel. . Negotiation of the contents of the trading contract can include sensitive content, so there is no need to make it in the main blockchain network where all nodes participate. Therefore, according to one embodiment, the negotiation of the contents of the sales contract between the seller node 111 and the buyer node 112 is performed in the side channel, and the negotiation contents are signed with the private key of the participant, such as distributed data storage (for example, IPFS (Inter -Planetary File System) or Swarm), you can expect the integrity and non-repudiation of data and reduce unnecessary fees due to transaction occurrence.

한편, 전자 계약서는 사용자가 코드를 작성하지 않아도 쉽게 생성하는 것이 가능하도록 계약 변수(예컨대, 당사자의 신원 확인 정보(이름, 주민등록번호, 주소, 전화번호 등), 계약 조건과 내용(금액, 날짜 등) 등)를 입력받아 생성될 수 있다.On the other hand, the electronic contract is a contract variable (for example, identification information of the party (name, social security number, address, phone number, etc.), contract terms and contents (amount, date, etc.) so that the user can easily create it without writing a code. Etc.).

판매자 노드(111)와 구매자 노드(112) 사이에 전자 계약서 작성이 완료되면, 판매자 노드(111)는 스마트 계약 코드를 검증할 수 있다(440). 일 실시예에 따르면, 판매자 노드(111)는 전자 계약서에 대응하는 스마트 계약 코드가 오류 없이 실행될 수 있도록, 상호 호환성 체크, 실행 코드 검증, 트랜잭션 유효성 검증 및 데이터/트랜잭션 포맷 검증 등을 수행할 수 있다.When the electronic contract is completed between the seller node 111 and the buyer node 112, the seller node 111 may verify the smart contract code (440). According to an embodiment, the seller node 111 may perform a cross-compatibility check, execution code verification, transaction validation, data/transaction format verification, and the like so that the smart contract code corresponding to the electronic contract can be executed without error. .

실제 계약에 참여하는 사람들은 프로그래밍이 가능하지 않은 사람들이 대부분이다. 따라서, 일 실시예에 따르면, 스마트 계약 시스템은 표준 계약서를 스마트 계약 형태로 구현해 놓고, 계약서 형태로 작성된 HTML 페이지에서 입력받은 계약 변수를 기초로 전자 계약의 형태로 작성할 수 있다. 각각의 계약서는 스마트 계약으로 매번 배포되지 않으며, 입력된 데이터들은 무결성 확보를 위해 블록체인에 저장될 수 있다. 각각의 계약은 사전에 배포된 스마트 계약을 불러와 그 안에 저장될 수 있다. 따라서, 스마트 계약 시스템은 입력된 데이터들로 인해 스마트 계약 코드가 실행시 코드 상의 오류가 일어나지 않도록, 상호 호환성 체크, 실행 코드 검증, 트랜잭션 유효성 검증 및 데이터/트랜잭션 포맷 검증을 수행할 수 있다.Most people who actually participate in the contract are not programmable. Accordingly, according to an embodiment, the smart contract system may implement a standard contract in the form of a smart contract, and create an electronic contract based on the contract variable received from the HTML page written in the contract form. Each contract is not distributed every time as a smart contract, and the entered data can be stored on the blockchain to ensure integrity. Each contract can be loaded into a pre-distributed smart contract and stored therein. Accordingly, the smart contract system may perform cross-compatibility check, execution code verification, transaction validation, and data/transaction format verification, so that errors in the code do not occur when the smart contract code is executed due to the input data.

판매자 노드(111)는 스마트 계약 코드 검증 결과, 오류가 발생하면, 그 오류를 해결하기 위해 컨트롤러 노드를 호출할 수 있다(450). 이때, 컨트롤러 노드는 표 1에 기재된 바와 같이, 거래를 중재 및 감사(Audit)하고, 볼록체인 네트워크에 이상 징후 발생 시 이를 탐지하고 거래 정상화를 수행하고, 계약 당사자간 분쟁 발생시 이를 중재할 수 있다.As a result of verifying the smart contract code, the seller node 111 may call the controller node to resolve the error (450). At this time, as shown in Table 1, the controller node can arbitrate and audit transactions, detect anomalies in the convex chain network, perform transaction normalization, and mediate them in the event of a dispute between contracting parties.

판매자 노드(111)는 전자 계약서에서 개인정보 및 민감정보를 추출하고, 추출된 개인정보 및 민감정보에 대해 비식별화 및/또는 암호화를 적용하여 분산데이터 저장소(예컨대 IPFS 또는 Swarm)에 저장할 수 있다(460). 이때, 판매자 노드(111)는 정보 주체에게 이러한 사실을 고지하고, 정보 이용에 대한 추가적인 동의를 받을 수 있다. 또한, 판매자 노드(111)는 암호화 및 비식별화된 정보에 대해 정보 적절성을 평가한 뒤 정보 주체의 명령에 따라 정보 이용에 대한 유효 기간을 설정할 수 있다. 이때, 정보 주체의 명령이 없다면 소정의 기간(예컨대, 법령에 의한 정보 보유 기간 등)을 정보 이용에 대한 유효 기간으로 설정할 수 있다.The seller node 111 may extract personal information and sensitive information from the electronic contract, and apply the de-identification and/or encryption to the extracted personal information and sensitive information and store it in a distributed data storage (eg, IPFS or Swarm). (460). At this time, the seller node 111 may notify the information subject of this fact and receive additional consent for the use of the information. In addition, the seller node 111 may evaluate the adequacy of information on the encrypted and de-identified information, and then set a validity period for using the information according to the command of the information subject. At this time, if there is no command from the information subject, a predetermined period (eg, information retention period according to laws and regulations) may be set as an effective period for information use.

한편, 정보 이용에 대한 유효 기간이 지난 개인정보 및 민감정보는 다음과 같은 2가지 방법으로 논리적인 삭제가 가능하다.Meanwhile, the personal information and sensitive information that have expired for the use of information can be logically deleted in the following two ways.

첫째, 이더리움에서 제공하는 delete 함수를 이용하여 정보 이용에 대한 유효 기간이 지난 개인정보 및 민감정보를 삭제하는 것이 가능하다. 이 경우, 이더리움에서 제공하는 delete 함수를 통해 자산정보를 논리적으로 삭제할 수 되며, EVM(Ethereum Virtual Machine) Storage의 값이 초기화될 수 있다.First, by using the delete function provided by Ethereum, it is possible to delete personal information and sensitive information that have passed the validity period. In this case, asset information can be logically deleted through the delete function provided by Ethereum, and the value of EVM (Ethereum Virtual Machine) Storage can be initialized.

둘째, 분산데이터 저장소에 저장된 개인정보에 대한 참조 주소 값을 삭제함으로써 정보 이용에 대한 유효 기간이 지난 개인정보 및 민감정보를 삭제하는 것이 가능하다. 이 경우, 실제 정보가 저장되어 있는 분산데이터 저장소의 참조 주소를 삭제하여 더 이상 해당 스마트 계약에서 분산데이터 저장소에 저장된 데이터를 불러올 수 없도록 할 수 있다.Second, it is possible to delete personal information and sensitive information whose validity period has expired by deleting the reference address value for personal information stored in the distributed data storage. In this case, the reference address of the distributed data storage where the actual information is stored can be deleted so that the data stored in the distributed data storage can no longer be retrieved from the corresponding smart contract.

판매자 노드(111)는 전자 계약서를 블록체인(130)에 등록할 수 있다(470). 예컨대, 판매자 노드(111)는 계약서 등록 트랜잭션을 생성하여 블록체인 네트워크 상의 모든 노드에 계약서 등록 트랜잭션을 공유함으로써, 블록체인(130)에 전자 계약서를 등록할 수 있다.The seller node 111 may register the electronic contract with the blockchain 130 (470). For example, the seller node 111 may register an electronic contract in the blockchain 130 by creating a contract registration transaction and sharing the contract registration transaction with all nodes on the blockchain network.

한편, 도 4에서 스마트 계약 코드 검증(440), 오류시 컨트롤러 노드 호출(450), 개인정보 및 민감정보의 비식별화 및 암호화(460), 및 전자 계약서 등록(470)이 판매자 노드(111)가 수행하는 것으로 설명되나, 이에 한정되는 것은 아니다. 즉, 상기의 과정들(440, 450, 460, 470)은 구매자 노드(112)가 수행할 수도 있으며, 판매자 노드(111)와 구매자 노드(112) 모두가 수행할 수도 있다.Meanwhile, in FIG. 4, the smart contract code verification 440, the controller node call 450 in case of an error, the de-identification and encryption of personal information and sensitive information 460, and the electronic contract registration 470 are seller nodes 111. Is described as performing, but is not limited thereto. That is, the above-described processes 440, 450, 460, and 470 may be performed by the buyer node 112, or may be performed by both the seller node 111 and the buyer node 112.

도 5는 블록체인에 매물을 등록하는 방법의 일 실시예를 도시한 흐름도이다. 도 5의 매물 등록 방법은 도 4의 단계 410의 일 실시예일 수 있다.5 is a flowchart illustrating an embodiment of a method for registering a sale in a blockchain. The property registration method of FIG. 5 may be an embodiment of step 410 of FIG. 4.

도 5를 참조하면, 판매자 노드는 애플리케이션 또는 서버를 통해 매물 정보를 작성할 수 있다(410).Referring to FIG. 5, the seller node may create the sale information through an application or a server (410).

판매자 노드는 작성된 매물 정보에 개인정보 또는 민감정보가 있는지 여부를 판단하고(520), 개인정보 또는 민감정보가 있으면 개인정보 또는 민감정보를 비식별화 및 암호화하고 분산데이터 저장소에 저장할 수 있다(530). 또한, 판매자 노드는 매물 등록 트랜잭션을 생성하여 블록체인 네트워크 상의 모든 노드에 매물 등록 트랜잭션을 공유하여 매물을 블록체인(130)에 등록할 수 있다(540).The seller node may determine whether there is personal information or sensitive information in the created sale information (520), and if there is personal information or sensitive information, the personal information or sensitive information may be de-identified and encrypted and stored in a distributed data storage (530). ). In addition, the seller node may register the sale on the blockchain 130 by sharing the sale registration transaction with all nodes on the blockchain network by creating a sale registration transaction (540).

도 6은 판매자 노드와 구매자 노드의 계약 협의 방법의 일 실시예를 도시한 흐름도이다. 도 6의 협의 방법은 도 4의 단계 430의 일 실시예일 수 있다.6 is a flowchart illustrating an embodiment of a method for negotiating a contract between a seller node and a buyer node. The consultation method of FIG. 6 may be an embodiment of step 430 of FIG. 4.

도 6을 참조하면, 구매자 노드(112)는 자신의 개인키로 서명하여 판매자 노드(111)에 사이드 채널의 오픈을 요청하고(610), 판매자 노드(111)는 사이드 채널의 오픈 요청을 수락하고 자신의 개인키로 서명할 수 있다(620). 판매자 노드(111)는 사이드 채널을 오픈하고, 필요에 따라 전문 회원 노드의 참가를 전문 회원 노드에 요청할 수 있다(630).Referring to FIG. 6, the buyer node 112 signs the private channel with the private key to request the seller node 111 to open the side channel (610), and the seller node 111 accepts the side channel open request and the user It can be signed with the private key of (620). The seller node 111 may open the side channel and request participation of the professional member node to the professional member node as needed (630).

판매자 노드(111) 및 구매자 노드(112)는 전문 회원 노드의 참가하에 사이드 채널을 통해 계약 내용을 협상할 수 있다(640). 이때, 전문 회원 노드는 계약 내용 협상 과정에서 판매자 노드(111) 및 구매자 노드(112)에 법률 자문을 제공할 수 있다.The seller node 111 and the buyer node 112 may negotiate the contents of the contract through the side channel with the participation of the professional member node (640). At this time, the professional member node may provide legal advice to the seller node 111 and the buyer node 112 in the process of negotiating the contents of the contract.

판매자 노드(111)는 계약 내용 협상이 완료되면 자신의 개인키로 서명하고, 구매자 노드(112)가 개인키로 서명하면 사이드 채널을 종료할 수 있다(650). The seller node 111 may sign with its own private key when negotiation of the contract is completed, and terminate the side channel when the buyer node 112 signs with the private key (650).

판매자 노드(111)는 사이드 채널 상에서 발생한 대화 내용을 모두 해쉬(hash)하여 분산데이터 저장소에 저장할 수 있다(660).The seller node 111 may hash all the conversations that have occurred on the side channel and store them in a distributed data store (660).

판매자 노드(111)는 최종 계약 내용을 확인하여 자신의 개인키로 서명하고, 구매자 노드(112)가 개인키로 서명하여 전자 계약서를 작성하고, 전문 회원 노드의 자문에 따라 전자 계약서의 법적 유효성을 검증할 수 있다(670).The seller node 111 checks the final contract and signs it with its own private key, and the buyer node 112 signs it with the private key to create an electronic contract, and validates the legal validity of the electronic contract according to the advice of a professional member node Can (670).

도 7은 개인정보 및 민감정보의 보호 방법의 일 실시예를 도시한 흐름도이다. 도 7의 개인정보 및 민감정보의 보호 방법은 도 4의 단계 460의 일 실시예일 수 있다.7 is a flowchart illustrating an embodiment of a method of protecting personal information and sensitive information. The method of protecting personal information and sensitive information of FIG. 7 may be an embodiment of step 460 of FIG. 4.

도 7을 참조하면, 판매자 노드는 전자 계약서를 분석하여(710), 전자 계약서에 개인정보 또는 민감정보가 포함되어 있는지를 판단할 수 있다(720).Referring to FIG. 7, the seller node may analyze the electronic contract (710 ), and determine whether personal information or sensitive information is included in the electronic contract (720 ).

판매자 노드는 전자 계약서에 개인정보 또는 민감정보가 포함되어 있다고 판단되면, 개인정보 또는 민감정보를 추출하여 비식별화 및 암호화를 수행할 수 있다(730). 이때, 판매자 노드는 개인정보 또는 민감정보의 유무에 대한 내용을 정보주체에게 고지하고, 정보주체로부터 정보 이용에 대한 추가적인 동의를 받을 수 있다.If it is determined that the seller node contains personal information or sensitive information in the electronic contract, the seller node may extract personal information or sensitive information to perform de-identification and encryption (730). At this time, the seller node may notify the information subject of the presence or absence of personal information or sensitive information, and receive additional consent for the use of information from the information subject.

판매자 노드는 암호화 및 비식별화된 정보에 대하여 정보 주체의 명령에 따라 정보 이용에 대한 유효 기간을 설정할 수 있다(740). 이때, 정보 주체의 명령이 없다면 소정의 기간(예컨대, 법령에 의한 정보 보유 기간 등)을 정보 이용에 대한 유효 기간으로 설정할 수 있다.The seller node may set an expiration date for the use of the information according to the command of the information subject for the encrypted and de-identified information (740 ). At this time, if there is no command from the information subject, a predetermined period (eg, information retention period according to laws and regulations) may be set as an effective period for information use.

판매자 노드는 개인정보 또는 민감정보를 비식별화 및 암호화한 후 전자 계약서를 분산데이터 저장소에 저장할 수 있다(750).The seller node may store the electronic contract in a distributed data store after de-identifying and encrypting personal information or sensitive information (750).

한편, 이렇게 저장된 전자 계약서는 요청 주체와 그 주체의 권한을 확인하고, 정보 이용에 대한 유효 기간을 확인한 후 모든 조건이 충족되면 평문 형태로 다시 확인할 수 있다.On the other hand, the electronic contract stored in this way can confirm the requesting subject and the authority of the subject, check the validity period for the use of the information, and then check again in plain text form when all the conditions are satisfied.

본 발명의 일 양상은 컴퓨터로 읽을 수 있는 기록 매체에 컴퓨터가 읽을 수 있는 코드로서 구현될 수 있다. 상기의 프로그램을 구현하는 코드들 및 코드 세그먼트들은 당해 분야의 컴퓨터 프로그래머에 의하여 용이하게 추론될 수 있다. 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함할 수 있다. 컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 디스크 등을 포함할 수 있다. 또한, 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산 방식으로 컴퓨터가 읽을 수 있는 코드로 작성되고 실행될 수 있다.One aspect of the present invention can be embodied as computer readable code on a computer readable recording medium. The codes and code segments that implement the above program can be easily inferred by computer programmers in the art. The computer-readable recording medium may include any kind of recording device in which data readable by a computer system is stored. Examples of the computer-readable recording medium may include ROM, RAM, CD-ROM, magnetic tape, floppy disk, optical disk, and the like. In addition, the computer-readable recording medium can be distributed over network coupled computer systems so that the computer-readable code is written and executed in a distributed fashion.

이제까지 본 발명에 대하여 그 바람직한 실시 예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 따라서, 본 발명의 범위는 전술한 실시 예에 한정되지 않고 특허 청구범위에 기재된 내용과 동등한 범위 내에 있는 다양한 실시 형태가 포함되도록 해석되어야 할 것이다.So far, the present invention has been focused on the preferred embodiments. Those skilled in the art to which the present invention pertains will understand that the present invention may be implemented in a modified form without departing from the essential characteristics of the present invention. Therefore, the scope of the present invention is not limited to the above-described embodiments, it should be interpreted to include various embodiments within the scope equivalent to the contents described in the claims.

100: 스마트 계약 시스템
110: 노드
120: 애플리케이션 또는 서버
130: 블록체인
111: 판매자 노드
112: 구매자 노드
10: 블록체인 네트워크
100: smart contract system
110: node
120: application or server
130: Blockchain
111: Merchant node
112: buyer node
10: Blockchain network

Claims (15)

판매자 노드가 매물을 블록체인에 등록하는 단계;
전문 회원 노드가 참가한 상태에서 상기 판매자 노드가 구매자 노드와 상기 매물에 대한 계약 내용을 협상하여 전자 계약서를 작성하고, 작성된 전자 계약서의 법적 유효성을 검증하는 단계;
상기 판매자 노드가 상기 전자 계약서에 대응하는 스마트 계약 코드를 검증하는 단계;
상기 판매자 노드가 상기 전자 계약서에서 개인정보 및 민감정보를 추출하고 추출된 개인정보 및 민감정보를 비식별화 및 암호화하는 단계;
상기 판매자 노드가 개인정보 및 민감정보가 비식별화 및 암호화된 전자 계약서를 분산데이터 저장소에 저장하는 단계; 및
상기 판매자 노드가 상기 전자 계약서를 블록체인에 등록하는 단계; 를 포함하고,
상기 법적 유효성을 검증하는 단계는,
상기 판매자 노드가 상기 구매자 노드의 요청에 따라 사이드 채널을 오픈하는 단계;
상기 판매자 노드가 상기 전문 회원 노드의 참가하에 상기 사이드 채널을 통해 상기 구매자 노드와 계약 내용을 협상하는 단계;
상기 판매자 노드가 계약 내용 협상이 완료되면 상기 오픈된 사이드 채널을 종료하는 단계;
상기 판매자 노드가 상기 사이드 채널 상에서 발생한 대화 내용을 분산데이터 저장소에 저장하는 단계; 및
상기 판매자 노드가 전자 계약서를 생성하고, 생성된 전자 계약서의 법적 유효성을 검증하는 단계; 를 포함하는,
스마트 계약 방법.
The seller node registering the sale on the blockchain;
In a state in which a professional member node participates, the seller node negotiates the content of the contract with the buyer node to create an electronic contract, and verifies the legal validity of the created electronic contract;
Verifying the smart contract code corresponding to the electronic contract by the seller node;
The seller node extracting personal information and sensitive information from the electronic contract and de-identifying and encrypting the extracted personal information and sensitive information;
Storing, by the seller node, an electronic contract in which personal information and sensitive information are de-identified and encrypted in a distributed data storage; And
The seller node registering the electronic contract on a blockchain; Including,
The step of verifying the legal validity,
The seller node opening a side channel at the request of the buyer node;
Negotiating the contract contents with the buyer node through the side channel by the seller node participating in the specialized member node;
The seller node terminating the open side channel when negotiation of the contract is completed;
Storing, by the seller node, conversations occurring on the side channel in a distributed data storage; And
The seller node generating an electronic contract and verifying the legal validity of the generated electronic contract; Containing,
Smart contract method.
제1항에 있어서,
상기 전문 회원 노드는,
상기 계약에 대한 법률 자문을 위한 노드인,
스마트 계약 방법.
According to claim 1,
The professional member node,
A node for legal advice on the above contract,
Smart contract method.
삭제delete 제1항에 있어서,
상기 사이드 채널은,
이더리움의 상태 채널인,
스마트 계약 방법.
According to claim 1,
The side channel,
Ethereum's status channel,
Smart contract method.
제1항에 있어서,
상기 사이드 채널의 오픈 및 종료는,
상기 판매자 노드 및 상기 구매자 노드의 개인키 서명을 통해 이루어지는,
스마트 계약 방법.
According to claim 1,
The opening and closing of the side channel,
Through the private key signature of the seller node and the buyer node,
Smart contract method.
제1항에 있어서,
상기 스마트 계약 코드를 검증하는 단계는,
상기 판매자 노드가 상기 스마트 계약 코드의 실행시 코드 상의 오류가 일어나지 않도록, 상호 호환성 체크, 실행 코드 검증, 트랜잭션 유효성 검증 중 적어도 하나를 수행하는,
스마트 계약 방법.
According to claim 1,
The step of verifying the smart contract code,
The seller node performs at least one of a cross-compatibility check, execution code verification, and transaction validation, so that an error in the code does not occur when the smart contract code is executed,
Smart contract method.
제1항에 있어서,
상기 판매자 노드가 상기 스마트 계약 코드 검증 결과 오류가 발생하면, 그 오류를 해결하기 위해 컨트롤러 노드를 호출하는 단계; 를 더 포함하는,
스마트 계약 방법.
According to claim 1,
If the seller node encounters an error as a result of verifying the smart contract code, calling a controller node to resolve the error; Further comprising,
Smart contract method.
제7항에 있어서,
상기 컨트롤러 노드는,
거래를 중재 및 감사하고, 블록체인 네트워크 상에 이상 징후 발생시 이를 탐지하여 거래 정상화를 수행하는 노드인,
스마트 계약 방법.
The method of claim 7,
The controller node,
A node that mediates and audits transactions and detects abnormalities on the blockchain network to normalize transactions,
Smart contract method.
제1항에 있어서,
상기 비식별화 및 암호화하는 단계는,
상기 판매자 노드가 상기 개인정보 및 상기 민감정보의 유무에 대한 내용을 정보주체에게 고지하고, 정보주체로부터 정보 이용에 대한 동의를 받는 단계; 를 더 포함하는,
스마트 계약 방법.
According to claim 1,
The step of de-identification and encryption,
The seller node notifying the information subject of the presence or absence of the personal information and the sensitive information, and receiving consent from the information subject to use the information; Further comprising,
Smart contract method.
제1항에 있어서,
상기 비식별화 및 암호화하는 단계는,
상기 판매자 노드가 암호화 및 비식별화된 정보에 대하여 정보 주체의 명령에 따라 정보 이용에 대한 유효 기간을 설정하는 단계; 를 더 포함하는,
스마트 계약 방법.
According to claim 1,
The step of de-identification and encryption,
Setting, by the seller node, an effective period for information use according to an instruction of an information subject to the encrypted and de-identified information; Further comprising,
Smart contract method.
제1항에 있어서,
애플리케이션 또는 서버를 통해 블록체인 네트워크를 구성하는 각 노드에 역할을 부여하는 단계; 를 더 포함하는,
스마트 계약 방법.
According to claim 1,
Assigning a role to each node constituting the blockchain network through an application or a server; Further comprising,
Smart contract method.
제11항에 있어서,
상기 역할을 부여하는 단계는,
1차 인증을 수행한 노드에 일반 사용자 노드의 역할을 부여하는 단계;
1차 인증 후 2차 인증을 수행한 노드에 판매자 노드, 구매자 노드, 전문 회원 노드 또는 컨트롤러 노드 중 하나의 역할을 부여하는 단계; 를 더 포함하는,
스마트 계약 방법.
The method of claim 11,
Step of granting the role,
Granting a role of a normal user node to a node that has performed primary authentication;
Assigning a role of one of a seller node, a buyer node, a professional member node, or a controller node to the node that has performed the second authentication after the first authentication; Further comprising,
Smart contract method.
제12항에 있어서,
상기 1차 인증은 지갑 주소를 등록하는 것이고,
상기 2차 인증은 실명 인증하는 것인,
스마트 계약 방법.
The method of claim 12,
The first authentication is to register the wallet address,
The second authentication is to authenticate the real name,
Smart contract method.
제12항에 있어서,
상기 1차 인증은 애플리케이션 또는 서버에 회원 가입하는 것이고,
상기 2차 인증은 지갑 주소 등록 및 실명 인증하는 것인,
스마트 계약 방법.
The method of claim 12,
The first authentication is to sign up for an application or server,
The second authentication is to register the wallet address and authenticate the real name,
Smart contract method.
제11항에 있어서,
각 역할에 따른 권한은 하나의 스마트 계약으로 구현되는,
스마트 계약 방법.
The method of claim 11,
The authority for each role is implemented as one smart contract,
Smart contract method.
KR1020180071532A 2018-05-24 2018-06-21 Smart Contract System and Smart Contract method KR102123320B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020180058948 2018-05-24
KR20180058948 2018-05-24

Publications (2)

Publication Number Publication Date
KR20190134432A KR20190134432A (en) 2019-12-04
KR102123320B1 true KR102123320B1 (en) 2020-06-16

Family

ID=69004448

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180071532A KR102123320B1 (en) 2018-05-24 2018-06-21 Smart Contract System and Smart Contract method

Country Status (1)

Country Link
KR (1) KR102123320B1 (en)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102337836B1 (en) * 2019-11-11 2021-12-10 한국전자기술연구원 External information recognizing and information providing method using blockchain
KR102342145B1 (en) * 2020-01-17 2021-12-22 주식회사 다해줘테크 Management system for rental of coffee machine
KR102208399B1 (en) * 2020-07-07 2021-01-27 박재용 System for protecting personal Intellectual Property and method thereof
KR102568678B1 (en) * 2020-12-23 2023-08-21 주식회사 팜코브 Used transaction chat service provision system that blocks personal information exposure
KR102645446B1 (en) * 2021-06-29 2024-03-11 이도현 O2o based system and method for intermediating private investigation agent using blockchain
KR102529607B1 (en) * 2022-07-04 2023-05-10 헤딧 주식회사 Artificial intelligence-based business transaction platform system
KR102539908B1 (en) * 2022-09-05 2023-06-13 주식회사 악시오홀딩스 Digital currency clearing system using blockchain back office

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101585029B1 (en) * 2015-05-13 2016-01-13 (주)코드원시스템 Recognition and classification system of document
JP2017016629A (en) * 2016-02-25 2017-01-19 株式会社日本デジタル研究所 Personal information management system
JP2018018238A (en) * 2016-07-27 2018-02-01 株式会社三菱東京Ufj銀行 Contract server used for concluding electronic contract and method for concluding electronic contract

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101730895B1 (en) * 2015-07-09 2017-04-27 나이스신용정보 주식회사 Server and method for commercial concierge service, system for providing commercial concierge servic and computer program for the same
KR101849917B1 (en) 2016-10-13 2018-05-31 주식회사 코인플러그 Method for providing certificate service based on smart contract and server using the same
KR20180046930A (en) * 2018-04-18 2018-05-09 클레이웍스 주식회사 A FTA Origin Management System based on Blockchain distributed ledger

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101585029B1 (en) * 2015-05-13 2016-01-13 (주)코드원시스템 Recognition and classification system of document
JP2017016629A (en) * 2016-02-25 2017-01-19 株式会社日本デジタル研究所 Personal information management system
JP2018018238A (en) * 2016-07-27 2018-02-01 株式会社三菱東京Ufj銀行 Contract server used for concluding electronic contract and method for concluding electronic contract

Also Published As

Publication number Publication date
KR20190134432A (en) 2019-12-04

Similar Documents

Publication Publication Date Title
KR102123320B1 (en) Smart Contract System and Smart Contract method
US11880228B2 (en) Systems and methods for verifying data via blockchain
US20200380520A1 (en) Informational and analytical system and method for ensuring the level of trust, control and secure interaction of counterparties when using electronic currencies and contracts
US11303443B2 (en) Electronic system to enable rapid acquisition and delivery of services and to provide strong protection of security and privacy
US9613355B2 (en) Multi-layer transaction tracking and encryption
JP2022055352A (en) Method, system and computer program (compliance mechanisms in blockchain networks)
Egan Data portability and privacy
Oladejo Blockchain technology: Disruptor or enhancer to the accounting and auditing profession
Farao et al. INCHAIN: a cyber insurance architecture with smart contracts and self-sovereign identity on top of blockchain
WO2020242550A1 (en) Ensuring trust levels when using electronic currencies
Walsh et al. Multi-regulation computing: Examining the legal and policy questions that arise from secure multiparty computation
Kindt Best practices for privacy and data protection for the processing of biometric data
Ling Cybersecurity in International Arbitration: An Untapped Opportunity for Arbitral Institutions
Santiago et al. Industry Contribution: Digital signature as a method to strengthen enterprise risk management practices across the US government
Mik Electronic Platforms: Openness, Transparency & Privacy Issues
US20150206141A1 (en) Multi-layer transaction tracking
US20150206142A1 (en) Batch processing in a multi-layer transaction tracking system
Vaile et al. Data sovereignty and the cloud
John Implementing the Electronic Signature Law in Tanzania-Successes, Challenges, and Prospects
TAXIARCHIS et al. Comparative Analysis of Blockchain Technologies for Data Ownership and Smart Contract Negotiation
Das Design of blockchain based annonymous secure voting system using smart contract
Anwar Regulation and Protection of Cloud Computing: Literature Review Perspective
Srinivasan Meeting Compliance Requirements while using Cloud Services
Putica How Can the Government Sustain People's Privacy Interests as the Real Estate Industry Adopts and Applies a Fully Electronic System
US20150206144A1 (en) Multi-layer transaction tracking

Legal Events

Date Code Title Description
A201 Request for examination
N231 Notification of change of applicant
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant