KR102424841B1 - Method for generating block chain and verifying integrity in smart contract system - Google Patents
Method for generating block chain and verifying integrity in smart contract system Download PDFInfo
- Publication number
- KR102424841B1 KR102424841B1 KR1020180025331A KR20180025331A KR102424841B1 KR 102424841 B1 KR102424841 B1 KR 102424841B1 KR 1020180025331 A KR1020180025331 A KR 1020180025331A KR 20180025331 A KR20180025331 A KR 20180025331A KR 102424841 B1 KR102424841 B1 KR 102424841B1
- Authority
- KR
- South Korea
- Prior art keywords
- key
- value
- smart contract
- transaction
- block
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Administration; Management
- G06Q10/10—Office automation; Time management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3827—Use of message hashing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Strategic Management (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Accounting & Taxation (AREA)
- Entrepreneurship & Innovation (AREA)
- Human Resources & Organizations (AREA)
- General Business, Economics & Management (AREA)
- Data Mining & Analysis (AREA)
- Computer Networks & Wireless Communication (AREA)
- Tourism & Hospitality (AREA)
- Operations Research (AREA)
- Marketing (AREA)
- Economics (AREA)
- Signal Processing (AREA)
- Quality & Reliability (AREA)
- Finance (AREA)
- Power Engineering (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
본 발명은 블록체인이 블록을 추가할 때마다 키와 키의 값의 형태로 저장되는 스마트 계약 데이터베이스와 키 높이 머클 트리를 갱신하고, 라이트 클라이언트에서 트랜잭션을 검증할 때, 스마트 계약 데이터베이스와 키 높이 머클 트리를 이용해서 트랜잭션의 무결성을 검증하는 방법에 관한 것이다.The present invention updates the smart contract database and key height merkle tree, which are stored in the form of keys and key values, whenever the blockchain adds a block, and when verifying a transaction in a light client, the smart contract database and key height merkle It relates to a method of verifying the integrity of a transaction using a tree.
Description
이하의 일 실시 예들은 스마트 계약에 특화된 블록체인 플랫폼에 관한 것으로, 스마트 계약 시스템에서 블록체인을 생성하고 무결성을 검증하는 방법에 관한 것이다.The following embodiments relate to a blockchain platform specialized for smart contracts, and to a method for creating a blockchain in a smart contract system and verifying the integrity.
스마트 계약(Smart Contract)은 Nick Szabo가 1994년 최초 제안한 개념이다. 기존 계약서(Contract)는 서면으로 되어있어 계약 조건을 이행하려면 실제 사람이 계약서 대로 수행을 해야 하지만 디지털 명령어로 계약을 작성하면 조건에 따라 계약 내용을 자동으로 실행할 수 있다고 주장하였습니다.Smart contract is a concept first proposed by Nick Szabo in 1994. Existing contracts are in writing, so a real person must perform the contract in order to fulfill the terms of the contract.
디지털로 된 계약서는 조건에 따른 계약 결과가 명확하고, 계약 내용을 즉각 이행할 수 있다. 각자의 자산이 연결된 디지털로 양자 합의를 하고 계약서를 작성하고 실행하기로 한다면 계약을 이행하는데 복잡한 프로세스를 엄청나게 간소화 될 것 이다. 또한 다양한 그러나 디지털로 된 자료들은 쉽게 복사되고 조작이 쉬워 1994년에 제안한 스마트 계약은 개념으로만 존재하고 구체적인 서비스에 이용될 수 없었다.In digital contracts, the contract results according to the conditions are clear and the contract contents can be executed immediately. If each asset is digitally connected to a quantum agreement, and the contract is drawn up and executed, the complex process of executing the contract will be greatly simplified. In addition, various but digital materials are easily copied and manipulated The smart contract proposed in 1994 exists only as a concept and cannot be used for specific services.
블록체인은 디지털 데이터를 신뢰할 수 있게 만들어 주는 기술이다. 다수의 노드가 같은 데이터를 공유하고 검증하는 방식을 통해 디지털상에 신뢰관계를 만들수 있다.Blockchain is a technology that makes digital data reliable. A trust relationship can be created digitally through a method in which multiple nodes share and verify the same data.
이더리움(Ethereum)은 스마트 계약과 블록체인을 결합하여 생성된 것으로, 스마트 계약 특화 블록체인 플랫폼이다.Ethereum is a smart contract-specific blockchain platform created by combining smart contracts and blockchains.
이하의 설명에서 스마트 계약 특화 블록체인 플랫폼을 "스마트 계약 시스템"이라 칭한다.In the following description, a smart contract-specific blockchain platform is referred to as a “smart contract system”.
스마트 계약 시스템에 포함된 각 노드들은 블록체인에 포함되는 블록을 생성하기도 하지만 블록에 포함된 트랜잭션을 검증하기도 한다.Each node included in the smart contract system not only creates a block included in the block chain, but also verifies the transactions included in the block.
하지만 검증을 위해서는 블록체인의 많은 정보를 가지고 있어야 해서 많은 저장 용량을 요구하거나 또는 검증을 위한 오랜 검색 시간을 필요로 한다. 하지만, 스마트 계약 시스템이 보급됨에 따라서 블록체인의 정보를 최소화 하여 저장하여 스마트 계약 시스템을 이용하는 라이트 클라이언트(Light Client)가 늘어나고 있다. However, for verification, it is necessary to have a lot of information on the block chain, so it requires a lot of storage capacity or a long search time for verification. However, as the smart contract system spreads, the number of light clients using the smart contract system by minimizing and storing block chain information is increasing.
이에 라이트 클라이언트에서 많은 블록체인의 정보를 저장하지 않고도 빠르게 트랜잭션을 검증할 수 있는 방법이 요구된다.Accordingly, there is a need for a method that allows the light client to quickly verify transactions without storing a lot of blockchain information.
본 발명은 상기와 같은 종래 기술의 문제점을 해결하고자 도출된 것으로서, 스마트 계약 시스템에서 블록체인을 생성하고 무결성을 검증하는 방법을 제공하는 것을 목적으로 한다.The present invention was derived to solve the problems of the prior art as described above, and an object of the present invention is to provide a method for generating a block chain in a smart contract system and verifying the integrity.
구체적으로, 본 발명은 블록체인이 블록을 추가할 때마다 키와 키의 값의 형태로 저장되는 스마트 계약 데이터베이스와 키 높이 머클 트리를 갱신하고, 라이트 클라이언트에서 트랜잭션을 검증할 때, 스마트 계약 데이터베이스와 키 높이 머클 트리를 이용해서 보다 간단하게 트랜잭션의 무결성을 검증하는 방법을 제공하는 것을 목적으로 한다.Specifically, the present invention updates the smart contract database and key height Merkle tree stored in the form of keys and key values whenever the blockchain adds blocks, and when verifying transactions in the light client, the smart contract database and The purpose of this is to provide a simpler method of verifying the integrity of a transaction using a key-height Merkle tree.
또한, 본 발명은 스마트 계약 데이터베이스의 키 값의 갱신 상태를 블록에 저장해 공유하여 소수의 노드의 장애가 발생해도 같은 스마트 계약 데이터베이스가 갱신되기 때문에 블록체인의 특정 노드의 장애로 발생하는 결함을 허용(fault tolerance)하는 것을 목적으로 한다.In addition, the present invention stores and shares the update state of the key value of the smart contract database in a block so that even if a small number of nodes fail, the same smart contract database is updated. tolerance).
상기와 같은 목적을 달성하기 위하여, 본 발명의 일 실시 예에 따른 스마트 계약 시스템에서 블록체인을 생성하는 방법은, 트랜잭션을 수신하는 단계; 수신된 트랜잭션으로 블록을 생성하는 단계; 상기 생성된 블록에 포함된 트랜잭션을 순차적으로 실행하여 트랜잭션 실행후의 최종 결과인 스마트 계약 상태를 키와 값의 형태로 도출하는 단계; 상기 스마트 계약 상태를 이용해서 키 높이 머클 트리를 갱신하는 단계; 상기 생성된 블록의 헤더에 상기 키 높이 머클 트리의 루트노드의 값을 포함시키는 단계; 합의 알고리즘에 따라 상기 생성된 블록 합의하는 단계; 상기 생성된 블록이 합의에 통과하면, 블록체인에 상기 생성된 블록을 연결하는 단계; 및 상기 스마트 계약 상태의 키와 값으로 상기 스마트 계약 데이터베이스를 갱신하는 단계를 포함한다.In order to achieve the above object, a method for generating a block chain in a smart contract system according to an embodiment of the present invention includes: receiving a transaction; generating a block with the received transaction; deriving a smart contract state, which is a final result after transaction execution, in the form of a key and a value, by sequentially executing the transactions included in the generated block; updating the height Merkle tree using the smart contract state; including the value of the root node of the tall Merkle tree in the header of the generated block; agreeing on the generated block according to a consensus algorithm; if the generated block passes consensus, connecting the generated block to a block chain; and updating the smart contract database with the key and value of the smart contract state.
이때, 상기 키 높이 머클 트리는, 상기 키와 상기 키의 값이 변경된 블록의 정보를 포함하는 리프노드; 상기 리프노드를 해쉬해서 해쉬된 값을 포함하는 해쉬된 리프노드; 상기 리프노드를 제외한 2개의 자식 노드를 해쉬해서 생성된 값을 포함하는 중간노드; 및 상기 리프노드를 제외한 2개의 자식 노드를 해쉬해서 생성된 값을 포함하는 최상위에 위치한 루트노드를 포함할 수 있다.In this case, the key height Merkle tree may include: a leaf node including information on the key and the block in which the key value is changed; a hashed leaf node including a hashed value by hashing the leaf node; an intermediate node including a value generated by hashing two child nodes excluding the leaf node; and a root node located at the highest level including a value generated by hashing two child nodes excluding the leaf node.
이때, 상기 스마트 계약 데이터베이스는, 상기 블록체인에 포함된 모든 키와 각각의 키의 값을 저장할 수 있다.In this case, the smart contract database may store all keys included in the block chain and the values of each key.
본 발명의 일 실시 예에 따른 스마트 계약 시스템에서 트랜잭션을 검증하는 방법은, 트랜잭션의 검증을 요청받으면, 상기 트랜잭션에 대응하는 키를 포함하는 키 높이 머클 트리의 무결성을 검증하는 단계; 상기 키 높이 머클 트리의 검증 결과 무결하면, 상기 키가 갱신된 블록을 식별하는 단계; 상기 키가 갱신된 모든 블록을 수신하고, 상기 키가 변경된 내용을 확인하여 상기 키의 값을 확인하는 단계; 스마트 계약 데이터베이스에서 상기 키에 대응하는 키의 값을 확인하는 단계; 상기 변경된 내용을 통해서 확인된 상기 키의 값과 상기 스마트 계약 데이터베이스를 통해서 확인된 상기 키의 값을 비교하는 단계; 및 비교결과 상기 변경된 내용을 통해서 확인된 상기 키의 값과 상기 스마트 계약 데이터베이스를 통해서 확인된 상기 키의 값이 동일하면 무결성 검증에 성공했다고 판단하고, 동일하지 않으면 무결성 검증에 실패했다고 판단하는 단계를 포함한다.A method of verifying a transaction in a smart contract system according to an embodiment of the present invention includes: verifying the integrity of a key height Merkle tree including a key corresponding to the transaction when a request for verification of the transaction is received; identifying a block in which the key is updated if the verification result of the key height Merkle tree is intact; receiving all the blocks in which the key has been updated, and confirming the value of the key by confirming the contents of the key change; checking a value of a key corresponding to the key in a smart contract database; comparing the value of the key confirmed through the changed contents with the value of the key confirmed through the smart contract database; And if the value of the key confirmed through the changed contents and the value of the key confirmed through the smart contract database are the same as a result of comparison, determining that the integrity verification has succeeded, and if not, determining that the integrity verification has failed. include
이때, 스마트 계약 시스템에서 트랜잭션을 검증하는 방법은, 블록체인에 블록이 추가될 때마다 블록헤더와 상기 키 높이 머클 트리를 동기화 하는 단계를 더 포함할 수 있다.At this time, the method of verifying the transaction in the smart contract system may further include the step of synchronizing the block header and the key height Merkle tree whenever a block is added to the block chain.
이때, 상기 키 높이 머클 트리는, 상기 키와 상기 키의 값이 변경된 블록의 정보를 포함하는 리프노드; 상기 리프노드를 해쉬해서 해쉬된 값을 포함하는 해쉬된 리프노드; 상기 리프노드를 제외한 2개의 자식 노드를 해쉬해서 생성된 값을 포함하는 중간노드; 및 상기 리프노드를 제외한 2개의 자식 노드를 해쉬해서 생성된 값을 포함하는 최상위에 위치한 루트노드를 포함할 수 있다.In this case, the key height Merkle tree may include: a leaf node including information on the key and the block in which the key value is changed; a hashed leaf node including a hashed value by hashing the leaf node; an intermediate node including a value generated by hashing two child nodes excluding the leaf node; and a root node located at the highest level including a value generated by hashing two child nodes excluding the leaf node.
이때, 상기 스마트 계약 데이터베이스는, 블록체인에 포함된 모든 키와 각각의 키의 값을 저장할 수 있다.In this case, the smart contract database may store all keys included in the block chain and the value of each key.
이때, 상기 키 높이 머클 트리의 무결성을 검증하는 단계는, 상기 키 높이 머클 트리에서 상기 트랜잭션에 대응하는 상기 키의 리프노드를 확인하는 단계; 상기 리프노드를 해쉬하고 해쉬한 값을 상기 키 높이 머클 트리의 부모노드와 비교하여 무결성을 검증하는 단계; 이웃노드의 해쉬값과 함께 해쉬해서 생성된 해쉬값을 상기 키 높이 머클 트리의 부모노드와 비교하여 무결성 검증하는 것을 루트 노드까지 수행하는 단계; 및 상기 루트 노드까지 무결성을 검증한 결과 모든 검증에서 이상이 없으면, 상기 키 높이 머클 트리가 무결하다고 판단하는 단계를 포함할 수 있다.In this case, the step of verifying the integrity of the key-height merkle tree may include: checking a leaf node of the key corresponding to the transaction in the key-height merkle tree; verifying integrity by hashing the leaf node and comparing the hashed value with the parent node of the key height Merkle tree; performing integrity verification up to the root node by comparing the hash value generated by hashing with the hash value of the neighboring node with the parent node of the key-height Merkle tree; and determining that the key height Merkle tree is intact if there is no abnormality in all verifications as a result of verifying the integrity up to the root node.
본 발명은 블록체인이 블록을 추가할 때마다 키와 키의 값의 형태로 저장되는 스마트 계약 데이터베이스와 키 높이 머클 트리를 갱신하고, 라이트 클라이언트에서 트랜잭션을 검증할 때, 스마트 계약 데이터베이스와 키 높이 머클 트리를 이용해서 트랜잭션의 무결성을 검증하는 방법에 관한 것으로, 적은 양의 데이터를 이용해서 보다 빠른 시간에 트랜잭션의 무결성을 검증할 수 있도록 할 수 있다. 또한, 스마트 계약 데이터베이스의 키 값의 갱신 상태를 블록에 저장하여 공유함으로써 소수의 노드의 장애로 발생하는 결함을 허용(fault tolerance)할 수 있다.The present invention updates the smart contract database and key height merkle tree, which are stored in the form of keys and key values, whenever the blockchain adds a block, and when verifying a transaction in a light client, the smart contract database and key height merkle It relates to a method of verifying the integrity of a transaction using a tree, and it is possible to verify the integrity of a transaction in a shorter time using a small amount of data. In addition, by storing and sharing the update state of the key value of the smart contract database in a block, fault tolerance caused by the failure of a small number of nodes can be tolerated.
도 1은 본 발명의 일 실시 예에 따른 스마트 계약에 특화된 블록체인 시스템인 스마트 계약 시스템의 개략적인 구성을 도시한 도면이다.
도 2는 본 발명의 일 실시 예에 따른 스마트 계약 시스템에서 블록체인에 블록을 추가하는 과정을 도시한 흐름도이다.
도 3은 본 발명의 일 실시 예에 따른 스마트 계약 시스템에서 트랜잭션을 검증하는 과정을 도시한 흐름도이다.
도 4는 본 발명의 일 실시 예에 따른 스마트 계약 시스템에서 키 높이 머클 트리를 검증하는 과정을 도시한 흐름도이다.
도 5는 본 발명의 일 실시 예에 따른 키 높이 머클 트리의 예를 도시한 도면이다.
도 6은 본 발명의 일 실시 예에 따른 스마트 계약 데이터베이스의 예를 도시한 도면이다.1 is a diagram showing a schematic configuration of a smart contract system, which is a block chain system specialized for smart contracts according to an embodiment of the present invention.
2 is a flowchart illustrating a process of adding a block to a block chain in a smart contract system according to an embodiment of the present invention.
3 is a flowchart illustrating a process of verifying a transaction in a smart contract system according to an embodiment of the present invention.
4 is a flowchart illustrating a process of verifying a key height Merkle tree in a smart contract system according to an embodiment of the present invention.
5 is a diagram illustrating an example of a tall Merkle tree according to an embodiment of the present invention.
6 is a diagram illustrating an example of a smart contract database according to an embodiment of the present invention.
본 명세서에 개시되어 있는 본 발명의 개념에 따른 실시 예들에 대해서 특정한 구조적 또는 기능적 설명들은 단지 본 발명의 개념에 따른 실시 예들을 설명하기 위한 목적으로 예시된 것으로서, 본 발명의 개념에 따른 실시 예들은 다양한 형태로 실시될 수 있으며 본 명세서에 설명된 실시 예들에 한정되지 않는다.Specific structural or functional descriptions for the embodiments according to the concept of the present invention disclosed in this specification are only exemplified for the purpose of explaining the embodiments according to the concept of the present invention, and the embodiments according to the concept of the present invention are It may be implemented in various forms and is not limited to the embodiments described herein.
본 발명의 개념에 따른 실시 예들은 다양한 변경들을 가할 수 있고 여러 가지 형태들을 가질 수 있으므로 실시 예들을 도면에 예시하고 본 명세서에 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시 예들을 특정한 개시형태들에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 변경, 균등물, 또는 대체물을 포함한다.Since the embodiments according to the concept of the present invention may have various changes and may have various forms, the embodiments will be illustrated in the drawings and described in detail herein. However, this is not intended to limit the embodiments according to the concept of the present invention to specific disclosed forms, and includes changes, equivalents, or substitutes included in the spirit and scope of the present invention.
제1 또는 제2 등의 용어를 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만, 예를 들어 본 발명의 개념에 따른 권리 범위로부터 이탈되지 않은 채, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.Terms such as first or second may be used to describe various elements, but the elements should not be limited by the terms. The above terms are used only for the purpose of distinguishing one element from other elements, for example, without departing from the scope of rights according to the concept of the present invention, a first element may be named as a second element, Similarly, the second component may also be referred to as the first component.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 표현들, 예를 들어 "~사이에"와 "바로~사이에" 또는 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.When a component is referred to as being “connected” or “connected” to another component, it may be directly connected or connected to the other component, but it is understood that other components may exist in between. it should be On the other hand, when it is said that a certain element is "directly connected" or "directly connected" to another element, it should be understood that the other element does not exist in the middle. Expressions describing the relationship between elements, for example, “between” and “between” or “directly adjacent to”, etc. should be interpreted similarly.
본 명세서에서 사용한 용어는 단지 특정한 실시 예들을 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 실시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함으로 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terms used herein are used only to describe specific embodiments, and are not intended to limit the present invention. The singular expression includes the plural expression unless the context clearly dictates otherwise. In the present specification, terms such as "comprise" or "have" are intended to designate that an embodied feature, number, step, operation, component, part, or combination thereof exists, and includes one or more other features or numbers, It should be understood that the possibility of the presence or addition of steps, operations, components, parts or combinations thereof is not precluded in advance.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless defined otherwise, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art to which this invention belongs. Terms such as those defined in a commonly used dictionary should be interpreted as having a meaning consistent with the meaning in the context of the related art, and should not be interpreted in an ideal or excessively formal meaning unless explicitly defined in the present specification. does not
이하, 실시 예들을 첨부된 도면을 참조하여 상세하게 설명한다. 그러나, 특허출원의 범위가 이러한 실시 예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.Hereinafter, embodiments will be described in detail with reference to the accompanying drawings. However, the scope of the patent application is not limited or limited by these examples. Like reference numerals in each figure indicate like elements.
이하에서는, 본 발명의 일 실시 예에 따른 스마트 계약 시스템(Smart Contract System)에서 블록체인(Blockchain)을 생성하고 무결성을 검증하는 방법을 첨부된 도 1 내지 도 6을 참조하여 상세히 설명한다.Hereinafter, a method of generating a blockchain and verifying the integrity in a smart contract system according to an embodiment of the present invention will be described in detail with reference to the accompanying FIGS. 1 to 6 .
도 1은 본 발명의 일 실시 예에 따른 스마트 계약(Smart Contract)에 특화된 블록체인 시스템인 스마트 계약 시스템의 개략적인 구성을 도시한 도면이다.1 is a diagram illustrating a schematic configuration of a smart contract system, which is a block chain system specialized for a smart contract according to an embodiment of the present invention.
도 1을 참조하면, 스마트 계약 시스템은 다수의 통신 장치들(110 - 180)로 구성되고, 통신 장치들(110 - 180) 중에서 어떤 통신장치는 블록을 생성하여 블록체인에 블록을 추가할 수도 있다. 이때, 스마트 계약 시스템의 통신 장치에서 트랜잭션의 검증이 용이한 블록을 생성하여 블록체인에 블록을 추가하는 방법을 아래 도 2를 참조하여 보다 상세히 후술한다.Referring to FIG. 1 , the smart contract system is composed of a plurality of communication devices 110 - 180, and a communication device among the communication devices 110 - 180 may generate a block and add a block to the block chain. . In this case, a method of adding a block to the block chain by creating a block for easy verification of a transaction in the communication device of the smart contract system will be described in more detail below with reference to FIG. 2 below.
그리고, 통신 장치들(110 - 180) 중에서 어떤 통신 장치는 사용자의 요청에 따라서 블록체인에 포함되어 있는 트랜잭션(Transaction)의 무결성을 검증할 수도 있다. 이때, 통신 장치들(110 - 180) 중에는 블록체인에 추가할 블록을 생성하지 않고, 트랜잭션을 생성하여 블록을 생성하는 통신 장치로 제공하고, 트랜잭션의 무결성을 검증하는 라이트 클라이언트의 통신 장치가 포함될 수 있다. 스마트 계약 시스템의 통신 장치에서 트랜잭션의 무결성을 검증하는 방법을 아래 도 2를 참조하여 보다 상세히 후술한다.In addition, any communication device among the communication devices 110 - 180 may verify the integrity of a transaction included in the block chain according to a user's request. At this time, among the communication devices 110 - 180, a communication device of a light client that generates a transaction and provides it to a communication device that generates a block without generating a block to be added to the block chain, and verifies the integrity of the transaction may be included. have. A method of verifying the integrity of a transaction in the communication device of the smart contract system will be described below in more detail with reference to FIG. 2 below.
이하, 상기와 같이 구성된 본 발명에 따른 스마트 계약 시스템에서 블록체인을 생성하고 무결성을 검증하는 방법을 아래에서 도면을 참조하여 설명한다.Hereinafter, a method for generating a block chain and verifying integrity in the smart contract system according to the present invention configured as described above will be described with reference to the drawings below.
도 2는 본 발명의 일 실시 예에 따른 스마트 계약 시스템에서 블록체인에 블록을 추가하는 과정을 도시한 흐름도이다.2 is a flowchart illustrating a process of adding a block to a block chain in a smart contract system according to an embodiment of the present invention.
도 2를 참조하면, 스마트 계약 시스템의 블록체인 생성 장치는 블록에 포함될 트랜잭션을 수신한다(210).Referring to FIG. 2 , the block chain generating device of the smart contract system receives a transaction to be included in a block ( 210 ).
그리고, 블록체인 생성 장치는 수신된 트랜잭션으로 블록을 생성한다(212).Then, the block chain generating device generates a block with the received transaction ( 212 ).
그리고, 블록체인 생성 장치는 생성된 블록에 포함된 트랜잭션을 순차적으로 실행하여 트랜잭션 실행후의 최종 결과인 스마트 계약 상태를 키와 값의 형태로 도출한다(214). 그리고, 블록체인 생성 장치는 스마트 계약 상태를 이용해서 키 높이 머클 트리(Key-Height Merkle tree)를 갱신한다(216).Then, the block chain generating device sequentially executes the transactions included in the generated blocks to derive the smart contract state, which is the final result after the execution of the transaction, in the form of a key and a value (214). Then, the block chain generating device uses the smart contract state to update the Key-Height Merkle tree ( 216 ).
이때, 키 높이 머클 트리는 아래 도 4와 같은 형태로 구성될 수 있다. In this case, the tall Merkle tree may be configured in the form shown in FIG. 4 below.
도 5는 본 발명의 일 실시 예에 따른 키 높이 머클 트리의 예를 도시한 도면이다.5 is a diagram illustrating an example of a tall Merkle tree according to an embodiment of the present invention.
도 5를 참조하면, 키 높이 머클 트리는 리프노드(510), 해쉬된 리프노드(520), 중간노드(530) 및 루트노드(540)로 구성된다.Referring to FIG. 5 , the tall Merkle tree is composed of a leaf node 510 , a hashed leaf node 520 , an intermediate node 530 , and a root node 540 .
리프노드(510)는 키와 키의 값이 변경된 블록의 정보를 포함하여 구성된다.The leaf node 510 is configured by including the key and the information of the block in which the key value is changed.
해쉬된 리프노드(520)는 리프노드를 해쉬해서 해쉬된 값으로 구성된다.The hashed leaf node 520 is composed of a hashed value by hashing the leaf node.
중간노드(530)는 리프노드를 제외한 2개의 자식 노드를 해쉬해서 생성된 값으로 구성된다.The intermediate node 530 is composed of a value generated by hashing two child nodes excluding the leaf node.
루트노드(540)는 리프노드를 제외한 2개의 자식 노드를 해쉬해서 생성된 값으로 구성된 최상위에 위치한 노드이다.The root node 540 is a node located at the highest level composed of values generated by hashing two child nodes excluding the leaf node.
다시 도 2의 설명으로 돌아와서, 블록체인 생성 장치는 생성된 블록의 헤더에 키 높이 머클 트리의 루트노드의 값을 포함시킨다(218).Returning to the description of FIG. 2 again, the block chain generating device includes the value of the root node of the tall Merkle tree in the header of the generated block ( 218 ).
그리고, 블록체인 생성 장치는 합의 알고리즘에 따라 생성된 블록 합의를 수행한다(220).Then, the block chain generating device performs a block consensus generated according to the consensus algorithm (220).
그리고, 블록체인 생성 장치는 생성된 블록이 합의에 통과하면, 블록체인에 생성된 블록을 연결한다(222).Then, when the generated block passes the consensus, the block chain generating device connects the generated block to the block chain ( 222 ).
그리고, 블록체인 생성 장치는 스마트 계약 상태의 키와 값으로 스마트 계약 데이터베이스(Smart Contract Database)를 갱신한다(224).Then, the block chain generating device updates the smart contract database with the key and value of the smart contract state ( 224 ).
이때, 스마트 계약 데이터베이스는 아래 도 6과 같은 형태로 구현될 수 있다.In this case, the smart contract database may be implemented in the form shown in FIG. 6 below.
도 6은 본 발명의 일 실시 예에 따른 스마트 계약 데이터베이스의 예를 도시한 도면이다.6 is a diagram illustrating an example of a smart contract database according to an embodiment of the present invention.
도 6을 참조하면, 스마트 계약 데이터베이스(600)는 블록체인에 포함된 모든 키와 각각의 키의 값을 저장할 수 있다.Referring to FIG. 6 , the
도 3은 본 발명의 일 실시 예에 따른 스마트 계약 시스템에서 트랜잭션을 검증하는 과정을 도시한 흐름도이다.3 is a flowchart illustrating a process of verifying a transaction in a smart contract system according to an embodiment of the present invention.
도 3을 참조하면, 스마트 계약 시스템의 트랜잭션 검증 장치는 블록체인에 블록이 추가될 때마다 블록헤더와 키 높이 머클 트리를 동기화 한다(310).Referring to FIG. 3 , the transaction verification device of the smart contract system synchronizes the block header and the key height Merkle tree whenever a block is added to the block chain ( 310 ).
그리고, 트랜잭션 검증 장치는 트랜잭션의 검증을 요청받으면(312), 트랜잭션에 대응하는 키를 포함하는 키 높이 머클 트리를 검증한다(314). 키 높이 머클 트리를 검증하는 구체적인 방법은 이후 도 4를 참조하여 후술한다.Then, when the transaction verification device is requested to verify the transaction ( 312 ), it verifies the key height Merkle tree including the key corresponding to the transaction ( 314 ). A detailed method of verifying the height Merkle tree will be described later with reference to FIG. 4 .
그리고, 트랜잭션 검증 장치는 키 높이 머클 트리의 검증 결과 무결한지 확인한다(316).Then, the transaction verification apparatus checks whether the verification result of the key height Merkle tree is intact (316).
316단계의 확인결과, 키 높이 머클 트리가 무결하면, 트랜잭션 검증 장치는 키 높이 머클 트리의 해당 키에 대응하는 리프노드에 키와 함께 저장된 키가 갱신된 블록에 관한 정보를 이용해서 키가 갱신된 블록을 식별한다(318).As a result of checking in
그리고, 트랜잭션 검증 장치는 키가 갱신된 모든 블록을 수신하고, 키가 변경된 내용을 확인하여 키의 값(제1값)을 확인한다(320).Then, the transaction verification apparatus receives all blocks in which the key is updated, checks the contents of the key change, and confirms the value (first value) of the key ( 320 ).
그리고, 트랜잭션 검증 장치는 스마트 계약 데이터베이스에서 키에 대응하는 키의 값(제2값)을 확인한다(322).Then, the transaction verification device checks the value (second value) of the key corresponding to the key in the smart contract database ( 322 ).
그리고, 트랜잭션 검증 장치는 변경된 내용을 통해서 확인된 키의 값(제1값)과 스마트 계약 데이터베이스를 통해서 확인된 키의 값(제2값)이 동일한지 비교한다(324).Then, the transaction verification device compares whether the value (first value) of the key confirmed through the changed content and the value (second value) of the key confirmed through the smart contract database are the same ( 324 ).
324단계의 비교결과 변경된 내용을 통해서 확인된 키의 값(제1값)과 스마트 계약 데이터베이스를 통해서 확인된 키의 값(제2값)이 동일하면, 트랜잭션 검증 장치는 무결성 검증에 성공했다고 판단하고, 검증을 요청한 트랜잭션이 무결하다고 판단한다(326).As a result of the comparison in
316단계의 확인결과 키 높이 머클 트리가 무결하지 않거나, 324단계의 비교결과 변경된 내용을 통해서 확인된 키의 값(제1값)과 스마트 계약 데이터베이스를 통해서 확인된 키의 값(제2값)이 동일하지 않으면, 트랜잭션 검증 장치는 무결성 검증에 실패했다고 판단하고, 검증을 요청한 트랜잭션이 무결하지 않다고 판단한다(328).As a result of the verification in
도 4는 본 발명의 일 실시 예에 따른 스마트 계약 시스템에서 키 높이 머클 트리를 검증하는 과정을 도시한 흐름도이다.4 is a flowchart illustrating a process of verifying a key height Merkle tree in a smart contract system according to an embodiment of the present invention.
도 4를 참조하면, 스마트 계약 시스템의 트랜잭션 검증 장치는 키 높이 머클 트리에서 트랜잭션에 대응하는 키의 리프노드를 확인한다(410).Referring to FIG. 4 , the transaction verification apparatus of the smart contract system checks the leaf node of the key corresponding to the transaction in the key height Merkle tree ( 410 ).
그리고, 트랜잭션 검증 장치는 리프노드를 해쉬하고 해쉬한 값을 키 높이 머클 트리의 부모노드와 비교하여 무결성을 검증한다(412).Then, the transaction verification apparatus hashes the leaf node and compares the hashed value with the parent node of the key height Merkle tree to verify the integrity ( 412 ).
그리고, 트랜잭션 검증 장치는 이웃노드의 해쉬값과 함께 해쉬해서 생성된 해쉬값을 키 높이 머클 트리의 부모노드와 비교하여 무결성을 검증하는 것을 루트 노드까지 수행한다(414).Then, the transaction verification apparatus compares the hash value generated by hashing with the hash value of the neighboring node with the parent node of the key height Merkle tree to verify the integrity up to the root node (414).
그리고, 트랜잭션 검증 장치는 루트노드까지 검증한 결과 모든 검증에서 이상이 없는지 확인한다(416).Then, as a result of verifying up to the root node, the transaction verification apparatus confirms that there is no abnormality in all verifications ( 416 ).
416단계의 확인결과 리프노드에서 루트노드까지 모든 노드의 무결성 검증에 이상이 없으면, 트랜잭션 검증 장치는 키 높이 머클 트리가 무결하다고 판단한다(418).As a result of the verification in
416단계의 확인결과 리프노드에서 루트노드까지 모든 노드의 무결성 검증에 실패하면, 트랜잭션 검증 장치는 키 높이 머클 트리가 무결하지 않다고 판단한다(420).As a result of the verification in
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 실시 예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.The device described above may be implemented as a hardware component, a software component, and/or a combination of the hardware component and the software component. Devices and components described in the embodiments may include, for example, a processor, a controller, an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, a field programmable gate array (FPGA), and a programmable logic unit (PLU). unit), a microprocessor, or any other device capable of executing and responding to instructions, may be implemented using one or more general purpose or special purpose computers. The processing device may execute an operating system (OS) and one or more software applications running on the operating system. The processing device may also access, store, manipulate, process, and generate data in response to execution of the software. For convenience of understanding, although one processing device is sometimes described as being used, one of ordinary skill in the art will recognize that the processing device includes a plurality of processing elements and/or a plurality of types of processing elements. It can be seen that may include For example, the processing device may include a plurality of processors or one processor and one controller. Other processing configurations are also possible, such as parallel processors.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.The software may comprise a computer program, code, instructions, or a combination of one or more thereof, which configures a processing device to operate as desired or is independently or collectively processed You can command the device. The software and/or data may be any kind of machine, component, physical device, virtual equipment, computer storage medium or device, to be interpreted by or to provide instructions or data to the processing device. , or may be permanently or temporarily embody in a transmitted signal wave. The software may be distributed over networked computer systems and stored or executed in a distributed manner. Software and data may be stored in one or more computer-readable recording media.
실시 예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시 예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The method according to the embodiment may be implemented in the form of program instructions that can be executed through various computer means and recorded in a computer-readable medium. The computer-readable medium may include program instructions, data files, data structures, etc. alone or in combination. The program instructions recorded on the medium may be specially designed and configured for the embodiment, or may be known and available to those skilled in the art of computer software. Examples of the computer-readable recording medium include magnetic media such as hard disks, floppy disks and magnetic tapes, optical media such as CD-ROMs and DVDs, and magnetic such as floppy disks. - includes magneto-optical media, and hardware devices specially configured to store and execute program instructions, such as ROM, RAM, flash memory, and the like. Examples of program instructions include not only machine language codes such as those generated by a compiler, but also high-level language codes that can be executed by a computer using an interpreter or the like. The hardware devices described above may be configured to operate as one or more software modules to perform the operations of the embodiments, and vice versa.
이상과 같이 실시 예들이 비록 한정된 실시 예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.As described above, although the embodiments have been described with reference to the limited embodiments and drawings, various modifications and variations are possible by those skilled in the art from the above description. For example, the described techniques are performed in a different order than the described method, and/or the described components of the system, structure, apparatus, circuit, etc. are combined or combined in a different form than the described method, or other components Or substituted or substituted by equivalents may achieve an appropriate result.
그러므로, 다른 구현들, 다른 실시 예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.Therefore, other implementations, other embodiments, and equivalents to the claims are also within the scope of the following claims.
Claims (9)
상기 블록 체인 생성 장치에서 수신된 트랜잭션으로 블록을 생성하는 단계;
상기 블록 체인 생성 장치에서 상기 생성된 블록에 포함된 트랜잭션을 순차적으로 실행하여 트랜잭션 실행후의 최종 결과인 스마트 계약 상태를 키와 값의 형태로 도출하는 단계;
상기 블록 체인 생성 장치에서 상기 스마트 계약 상태를 이용해서 키 높이 머클 트리를 갱신하는 단계;
상기 블록 체인 생성 장치에서 상기 생성된 블록의 헤더에 상기 키 높이 머클 트리의 루트노드의 값을 포함시키는 단계;
상기 블록 체인 생성 장치에서 합의 알고리즘에 따라 상기 생성된 블록 합의하는 단계;
상기 블록 체인 생성 장치에서 상기 생성된 블록이 합의에 통과하면, 블록체인에 상기 생성된 블록을 연결하는 단계; 및
상기 블록 체인 생성 장치에서 상기 스마트 계약 상태의 키와 값으로 스마트 계약 데이터베이스를 갱신하는 단계
를 포함하고,
상기 키 높이 머클 트리는,
상기 키와 상기 키의 값이 변경된 블록의 정보를 포함하는 리프노드;
상기 리프노드를 해쉬해서 해쉬된 값을 포함하는 해쉬된 리프노드;
상기 리프노드를 제외한 2개의 자식 노드를 해쉬해서 생성된 값을 포함하는 중간노드; 및
상기 리프노드를 제외한 2개의 자식 노드를 해쉬해서 생성된 값을 포함하는 최상위에 위치한 루트노드
를 포함하는
스마트 계약 시스템에서 블록체인을 생성하는 방법.
receiving a transaction from a blockchain generating device;
generating a block from the transaction received in the block chain generating device;
deriving a smart contract state, which is a final result after transaction execution, in the form of a key and a value, by sequentially executing the transactions included in the generated block in the block chain generating device;
updating a key height Merkle tree using the smart contract state in the block chain generating device;
including the value of the root node of the key height Merkle tree in the header of the generated block in the block chain generating device;
agreeing on the generated block according to a consensus algorithm in the block chain generating device;
linking the generated block to a block chain when the generated block in the block chain generating device passes consensus; and
Updating the smart contract database with the key and value of the smart contract state in the block chain generating device
including,
The tall merkle tree is,
a leaf node including information on the key and the block in which the value of the key is changed;
a hashed leaf node including a hashed value by hashing the leaf node;
an intermediate node including a value generated by hashing two child nodes excluding the leaf node; and
The root node located at the top including the value generated by hashing two child nodes excluding the leaf node.
containing
How to create a blockchain in a smart contract system.
상기 스마트 계약 데이터베이스는,
상기 블록체인에 포함된 모든 키와 각각의 키의 값을 저장하는
스마트 계약 시스템에서 트랜잭션을 검증하는 방법.
According to claim 1,
The smart contract database is
It stores all the keys included in the block chain and the value of each key.
How to validate a transaction in a smart contract system.
상기 트랜잭션 검증 장치에서 상기 키 높이 머클 트리의 검증 결과 무결하면, 상기 키가 갱신된 블록을 식별하는 단계;
상기 트랜잭션 검증 장치에서 상기 키가 갱신된 모든 블록을 수신하고, 상기 키가 변경된 내용을 확인하여 상기 키의 값을 확인하는 단계;
상기 트랜잭션 검증 장치에서 스마트 계약 데이터베이스에서 상기 키에 대응하는 키의 값을 확인하는 단계;
상기 트랜잭션 검증 장치에서 상기 변경된 내용을 통해서 확인된 상기 키의 값과 상기 스마트 계약 데이터베이스를 통해서 확인된 상기 키의 값을 비교하는 단계; 및
비교결과 상기 변경된 내용을 통해서 확인된 상기 키의 값과 상기 스마트 계약 데이터베이스를 통해서 확인된 상기 키의 값이 동일하면, 상기 트랜잭션 검증 장치에서 무결성 검증에 성공했다고 판단하고, 동일하지 않으면 무결성 검증에 실패했다고 판단하는 단계
를 포함하고,
상기 키와 상기 키의 값은,
블록에 포함된 트랜잭션이 순차적으로 실행되어 트랜잭션 실행후의 최종 결과인 스마트 계약 상태를 키와 값의 형태로 도출된 것이고,
상기 키 높이 머클 트리는,
상기 키와 상기 키의 값이 변경된 블록의 정보를 포함하는 리프노드;
상기 리프노드를 해쉬해서 해쉬된 값을 포함하는 해쉬된 리프노드;
상기 리프노드를 제외한 2개의 자식 노드를 해쉬해서 생성된 값을 포함하는 중간노드; 및
상기 리프노드를 제외한 2개의 자식 노드를 해쉬해서 생성된 값을 포함하는 최상위에 위치한 루트노드
를 포함하는
스마트 계약 시스템에서 트랜잭션을 검증하는 방법.
verifying the integrity of a key height Merkle tree including a key corresponding to the transaction when a transaction verification device is requested to verify the transaction;
identifying a block in which the key is updated if the transaction verification device determines that the key height Merkle tree is intact;
receiving all blocks in which the key has been updated from the transaction verification device, and confirming the value of the key by confirming the contents of the key change;
checking the value of the key corresponding to the key in the smart contract database in the transaction verification device;
comparing the value of the key confirmed through the changed contents in the transaction verification device with the value of the key confirmed through the smart contract database; and
As a result of comparison, if the value of the key confirmed through the changed contents is the same as the value of the key confirmed through the smart contract database, the transaction verification device determines that the integrity verification has been successful, and if not, the integrity verification fails step to determine
including,
The key and the value of the key are
The transactions included in the block are executed sequentially, and the smart contract state, which is the final result after the execution of the transaction, is derived in the form of keys and values.
The tall merkle tree is,
a leaf node including information on the key and the block in which the value of the key is changed;
a hashed leaf node including a hashed value by hashing the leaf node;
an intermediate node including a value generated by hashing two child nodes excluding the leaf node; and
The root node located at the top including the value generated by hashing two child nodes excluding the leaf node.
containing
How to validate a transaction in a smart contract system.
상기 트랜잭션 검증 장치에서 블록체인에 블록이 추가될 때마다 블록헤더와 상기 키 높이 머클 트리를 동기화 하는 단계
를 더 포함하는 스마트 계약 시스템에서 트랜잭션을 검증하는 방법.
5. The method of claim 4,
Synchronizing the block header and the key height Merkle tree whenever a block is added to the block chain in the transaction verification device
A method of verifying a transaction in a smart contract system further comprising a.
상기 스마트 계약 데이터베이스는,
블록체인에 포함된 모든 키와 각각의 키의 값을 저장하는
스마트 계약 시스템에서 트랜잭션을 검증하는 방법.
5. The method of claim 4,
The smart contract database is
It stores all the keys included in the blockchain and the value of each key.
How to validate a transaction in a smart contract system.
상기 키 높이 머클 트리의 무결성을 검증하는 단계는,
상기 키 높이 머클 트리에서 상기 트랜잭션에 대응하는 상기 키의 리프노드를 확인하는 단계;
상기 리프노드를 해쉬하고 해쉬한 값을 상기 키 높이 머클 트리의 부모노드와 비교하여 무결성을 검증하는 단계;
이웃노드의 해쉬값과 함께 해쉬해서 생성된 해쉬값을 상기 키 높이 머클 트리의 부모노드와 비교하여 무결성 검증하는 것을 루트 노드까지 수행하는 단계; 및
상기 루트 노드까지 무결성을 검증한 결과 모든 검증에서 이상이 없으면, 상기 키 높이 머클 트리가 무결하다고 판단하는 단계
를 포함하는 스마트 계약 시스템에서 트랜잭션을 검증하는 방법.
5. The method of claim 4,
The step of verifying the integrity of the key height Merkle tree comprises:
identifying a leaf node of the key corresponding to the transaction in the key height Merkle tree;
verifying integrity by hashing the leaf node and comparing the hashed value with the parent node of the key height Merkle tree;
performing integrity verification up to the root node by comparing the hash value generated by hashing with the hash value of the neighboring node with the parent node of the key-height Merkle tree; and
Determining that the key height Merkle tree is intact if there is no abnormality in all verifications as a result of verifying the integrity up to the root node
How to validate transactions in a smart contract system that includes
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180025331A KR102424841B1 (en) | 2018-03-02 | 2018-03-02 | Method for generating block chain and verifying integrity in smart contract system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180025331A KR102424841B1 (en) | 2018-03-02 | 2018-03-02 | Method for generating block chain and verifying integrity in smart contract system |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20190104793A KR20190104793A (en) | 2019-09-11 |
KR102424841B1 true KR102424841B1 (en) | 2022-07-26 |
Family
ID=67949261
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020180025331A KR102424841B1 (en) | 2018-03-02 | 2018-03-02 | Method for generating block chain and verifying integrity in smart contract system |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102424841B1 (en) |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111080288B (en) * | 2019-10-18 | 2023-08-18 | 湖南天河国云科技有限公司 | Block chain consensus achieving method and device based on directed acyclic graph |
SG11202010724PA (en) * | 2019-11-06 | 2020-11-27 | Alipay Hangzhou Inf Tech Co Ltd | Consenus of shared blockchain data storage based on error correction code |
US11468044B2 (en) * | 2019-11-25 | 2022-10-11 | Visa International Service Association | Optimizations for verification of interactions system and method using probability density functions |
US11489663B2 (en) | 2020-01-31 | 2022-11-01 | International Business Machines Corporation | Correlation-based hash tree verification |
CN111339191B (en) * | 2020-02-20 | 2023-05-26 | 百度在线网络技术(北京)有限公司 | Data storage method, device, equipment and medium of block chain |
CN112148794B (en) * | 2020-09-23 | 2024-09-20 | 京东科技控股股份有限公司 | Version management method, device and storage medium of intelligent contract |
CN112308561A (en) * | 2020-10-16 | 2021-02-02 | 浙江甲骨文超级码科技股份有限公司 | Block chain-based evidence storing method and system, computer equipment and storage medium |
KR102473672B1 (en) * | 2020-10-20 | 2022-12-02 | 주식회사 커먼컴퓨터 | Method and system for managing states for a block chain including a state database of tree structure |
KR20220060336A (en) * | 2020-11-04 | 2022-05-11 | 삼성전자주식회사 | Electronic device for generating transaction including internal data and operating method thereof |
CN112488683B (en) * | 2020-12-11 | 2024-02-23 | 深圳前海微众银行股份有限公司 | Under-chain transaction method and device of blockchain |
CN113268408B (en) * | 2020-12-28 | 2023-11-28 | 上海零数众合信息科技有限公司 | Automatic testing method for open license chain |
CN112862477B (en) * | 2021-02-07 | 2024-05-07 | 中国人民大学 | Digital commodity atomic transaction method and system based on blockchain |
CN115017226B (en) * | 2021-03-05 | 2024-10-18 | 京东科技信息技术有限公司 | Data storage method and device, electronic equipment and storage medium |
CN113076558B (en) * | 2021-04-20 | 2024-05-28 | 西安交通大学 | Block chain data connection query method capable of efficiently supporting privacy protection and verifiable |
CN113657900B (en) * | 2021-07-13 | 2024-03-22 | 中国人民银行数字货币研究所 | Cross-chain transaction verification method and system and cross-chain transaction system |
CN113704249B (en) * | 2021-07-14 | 2024-07-26 | 杭州溪塔科技有限公司 | Method and device for using static merck tree in blockchain |
CN113886399A (en) * | 2021-10-25 | 2022-01-04 | 支付宝(杭州)信息技术有限公司 | Index database updating method and device and index database-based retrieval method and device |
CN114328540A (en) * | 2021-12-31 | 2022-04-12 | 杭州趣链科技有限公司 | Data management method, device, system and storage medium |
CN115099817B (en) * | 2022-06-17 | 2023-03-24 | 北京中科深智科技有限公司 | Efficient block chain transaction verification and query method and system |
CN115632791B (en) * | 2022-10-12 | 2024-03-19 | 南京航空航天大学 | Dynamic cross-chain data consistency decentration verification method |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140298010A1 (en) | 2013-03-26 | 2014-10-02 | Cloudtomo Limited | Public-key certificate management system and method |
KR101701131B1 (en) | 2016-04-28 | 2017-02-13 | 주식회사 라피 | Data recording and validation methods and systems using the connecting of blockchain between different type |
KR101816653B1 (en) | 2017-02-14 | 2018-02-21 | 주식회사 코인플러그 | Method for providing login flow via authentication based on public key infrastructure in response to user’s login request for using service provided by service provider server in use of smart contract with blockchain database and server using the same |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101786006B1 (en) * | 2016-01-29 | 2017-10-17 | 한국과학기술원 | Method And Apparatus for Memory Integrity Verification Based on Merkle Tree |
KR20180005542A (en) * | 2016-07-06 | 2018-01-16 | 주식회사 케이티 | Apparatus and method for verifing data integrity |
-
2018
- 2018-03-02 KR KR1020180025331A patent/KR102424841B1/en active IP Right Grant
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140298010A1 (en) | 2013-03-26 | 2014-10-02 | Cloudtomo Limited | Public-key certificate management system and method |
KR101701131B1 (en) | 2016-04-28 | 2017-02-13 | 주식회사 라피 | Data recording and validation methods and systems using the connecting of blockchain between different type |
KR101816653B1 (en) | 2017-02-14 | 2018-02-21 | 주식회사 코인플러그 | Method for providing login flow via authentication based on public key infrastructure in response to user’s login request for using service provided by service provider server in use of smart contract with blockchain database and server using the same |
Non-Patent Citations (1)
Title |
---|
Ethan Buchman, "Tendermint: Byzantine Fault Tolerance in the Age of Blockchains"(2016.06.)* |
Also Published As
Publication number | Publication date |
---|---|
KR20190104793A (en) | 2019-09-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102424841B1 (en) | Method for generating block chain and verifying integrity in smart contract system | |
US11914712B1 (en) | Blockchain based secure naming and update verification | |
TWI737944B (en) | Block chain-based transaction execution method and device, and electronic equipment | |
US11128467B2 (en) | Systems and methods for digital identity management and permission controls within distributed network nodes | |
US10810001B2 (en) | Device-driven auto-recovery using multiple recovery sources | |
US10630463B2 (en) | Meta block chain | |
CN110300984B (en) | Changing smart contracts recorded in a blockchain | |
CN107577427B (en) | data migration method, device and storage medium for blockchain system | |
US20200412526A1 (en) | Method and apparatus for verifying smart contracts in blockchain, and storage medium | |
US9922074B1 (en) | Method of ensuring real-time transaction integrity in the indestructible scalable computing cloud | |
US11074139B2 (en) | Dynamic block chain system using metadata for backing up data based on digest rules | |
KR20190111037A (en) | Smart Contract Upgrade Method and System by Consortium Blockchain | |
JP2023100981A (en) | Control flow in block chain script | |
JP2021535668A (en) | Systems and methods for improved blockchain implementation smart contracts | |
US20230090296A1 (en) | Transaction verification of a transaction based on a blockchain network | |
US20230060916A1 (en) | Efficient execution of blockchain smart contracts using cloud resource primitives | |
KR102309503B1 (en) | Method, node appratus and computer readable recording medium for transaction using blockchain | |
JP6868728B2 (en) | Methods and Equipment for Continuous Delivery of Permissioned Blockchain Applications | |
US10970196B1 (en) | Semantic-aware fuzz-based functional testing | |
CN113362068B (en) | Method for verifying block chain state transfer by light node | |
CN107451007B (en) | Verification method and system of block chain for error correction aiming at added blocks | |
JP2018106700A (en) | Cloud access method monitorable in real time | |
US10909122B2 (en) | Using modified blockchain concepts to guarantee no tuple loss and/or no tuple corruption | |
CN110807195A (en) | Intelligent contract issuing method, issuing platform device and issuing system | |
JP7421443B2 (en) | Data migration methods, data migration systems, and nodes |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |