KR102346293B1 - Blockchain system and performance method for distributed processing of transaction using common keyset information - Google Patents

Blockchain system and performance method for distributed processing of transaction using common keyset information Download PDF

Info

Publication number
KR102346293B1
KR102346293B1 KR1020210061714A KR20210061714A KR102346293B1 KR 102346293 B1 KR102346293 B1 KR 102346293B1 KR 1020210061714 A KR1020210061714 A KR 1020210061714A KR 20210061714 A KR20210061714 A KR 20210061714A KR 102346293 B1 KR102346293 B1 KR 102346293B1
Authority
KR
South Korea
Prior art keywords
transaction
information
common
proposal
key
Prior art date
Application number
KR1020210061714A
Other languages
Korean (ko)
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 엘에스웨어(주)
Application granted granted Critical
Publication of KR102346293B1 publication Critical patent/KR102346293B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/466Transaction processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing

Abstract

The present invention relates to a blockchain system for distributed processing of transactions by using common keyset information, which comprises: a transaction packer generating a transaction proposal (Tx Proposal) which shows transaction information according to a transaction request from a user and adding key information corresponding to the transaction request to the generated Tx proposal; a transaction aggregator generating common keyset information corresponding to the Tx proposal and common transaction batch information according to the key information included in the Tx proposal delivered by the transaction packer and making classification by the generated common transaction batch information to transmit the same to a predetermined execution node group; and at least one transaction executor belonging to the execution node group and performing simulation of the Tx proposals included in the common transaction batch information transmitted by the transaction aggregator.

Description

공통 키셋정보를 이용한 트랜잭션 분산처리를 위한 블록체인 시스템 및 수행방법{Blockchain system and performance method for distributed processing of transaction using common keyset information}Blockchain system and performance method for distributed processing of transaction using common keyset information}

본 발명은 블록체인 프레임워크에서 효율적인 트랜잭션 분산처리를 위해, 트랜잭션 요청에 대응하는 공통 키셋 정보를 이용하여 분산처리가 이루어질 수 있도록 하는 블록체인 분산처리 기술에 관한 것이다. The present invention relates to a blockchain distributed processing technology that enables distributed processing to be performed using common keyset information corresponding to a transaction request for efficient transaction distributed processing in a blockchain framework.

병행 컴퓨팅의 큰 문제 중 하나는, 하나의 변수에 대한 참조 및 변경에 의한 충돌이다. 가장 일반적인 방법은 단일 변수에 대한 배타적 접근 제어를 위한 Lock Strategy이지만, 1993년 이후 STM(Software Transactional Memory)이나 RLU (Read-Log-Update) 등 Lock-Free Strategy가 개발되었다. 대표적인 Lock-Free Strategy인 STM은 SMP (Shared Memory Multi-Processor) 같은 단일 머신 내에서 완결되는 병렬처리, etcd와 같은 분산 컴퓨팅 상의 메모리 공유 모델, 그리고 블록체인의 분산 처리된 트랜잭션 간 충돌 검출 등에서 활용하는 병렬처리 기법이다.One of the big problems of concurrent computing is collisions due to references and changes to one variable. The most common method is a lock strategy for controlling exclusive access to a single variable, but since 1993, lock-free strategies such as STM (Software Transactional Memory) and RLU (Read-Log-Update) have been developed. STM, a representative lock-free strategy, is used in parallel processing completed within a single machine such as SMP (Shared Memory Multi-Processor), memory sharing model in distributed computing such as etcd, and collision detection between distributed transactions in blockchain. It is a parallel processing technique.

블록체인 기술은 관리 주체를 분산시킬 수 있다는 그 독특한 특성으로 인해, 기존 산업에 적용되면 그 파급효과는 매우 클 것으로 예상되어왔다. 하지만, 기존 산업에 대한 블록체인 기술의 적용은 예상보다 늦어지고 있는데, 그 이유 중 하나는 처리 성능(throughput)이 매우 낮다는 점이다. 이러한 블록체인의 성능 문제에 관하여 합의 알고리즘과 멀티체인과 같은 기술을 통해 합의 시간 감소 및 블록 당 처리 용량 증가 및 체인 당 트랜잭션 분산을 통한 플랫폼의 전체 처리 성능 향상을 꾀하고 있다.Due to its unique characteristic of being able to decentralize management entities, blockchain technology has been expected to have a very large ripple effect when applied to existing industries. However, the application of blockchain technology to existing industries has been delayed than expected, and one of the reasons is that the processing performance (throughput) is very low. Regarding the performance problems of these blockchains, we are trying to improve the overall processing performance of the platform by reducing the consensus time, increasing the processing capacity per block, and distributing transactions per chain through consensus algorithms and technologies such as multi-chain.

일반적으로 마이닝이란 1. 실행할 트랜잭션 선택, 2. 트랜잭션 실행(Execution), 3. 트랜잭션 기록 순서 결정(Ordering), 4. Hash & Nonce Finding의 총 4가지 작업을 통칭한다.In general, mining refers to a total of four tasks: 1. Select transaction to be executed, 2. Transaction execution (Execution), 3. Transaction record ordering (Ordering), and 4. Hash & Nonce Finding.

일반적으로 합의 알고리즘 개발은, 위의 3번째 및 4번째 단계 및 검증 과정의 최적화 및 고속화에 그 방점을 둔다. 초창기의 블록체인 프레임워크는 Public 블록체인을 위한 비트코인의 PoW 합의 방식을 답습하였기 때문에, 3번째 및 4번째 단계의 속도 향상을 위해서 안전하면서 효율적인 합의 알고리즘이 개발되어왔다. 하지만, 기존의 합의 알고리즘에 관한 연구는 2번째 단계인 트랜잭션 실행의 고속화는 그 대상이 아니다. 합의 알고리즘의 개선과는 다른 접근 방식으로, 체인별로 서로 다른 영역 또는 유형의 트랜잭션 요청을 처리함으로써 전체 처리 성능을 향상하는 멀티 체인(멀티채널, 사이드 체인) 방식도 있다. 블록을 체인마다 별도로 처리 및 생성함으로써 전체 성능(throughput)을 향상할 수 있으나, 체인 간에 공유하는 정보 혹은 체인 간의 상호 연동을 위한 변수와 같이 서로 다른 체인이 같은 키를 참조 및 변경하고자 하는 경우, 단일 블록 키 충돌 문제로 인한 성능 저하 문제가 발생한다. 이는 재고 관리와 같은 기존 산업이 요구하는 프로세스를 블록체인 상에 그대로 구현하는 경우, 효율적으로 처리하는 것이 어렵다는 것을 의미한다.In general, consensus algorithm development focuses on optimization and speeding up of the 3rd and 4th steps and the verification process. Since the early blockchain framework followed Bitcoin's PoW consensus method for public blockchains, safe and efficient consensus algorithms have been developed to speed up the 3rd and 4th steps. However, research on the existing consensus algorithm does not focus on the second step, speeding up transaction execution. As an approach different from the improvement of the consensus algorithm, there is also a multi-chain (multi-channel, side-chain) method that improves overall processing performance by processing different domains or types of transaction requests for each chain. By processing and generating blocks separately for each chain, overall throughput can be improved, but when different chains want to reference and change the same key, such as information shared between chains or variables for inter-chain interaction, a single key There is a performance degradation problem due to the block key collision problem. This means that if the process required by the existing industry, such as inventory management, is implemented on the blockchain as it is, it is difficult to process it efficiently.

블록체인은 상호 검증을 위해 분산 노드로 구성되어 있으나, 노드 수에 따른 성능 향상(Scalability)이 불가능하다는 고질적인 문제를 가지고 있다. 블록체인에서 Scalability를 달성하기 어려운 이유 중 가장 대표적인 요인은 단일 블록 키 충돌 문제이다.Although the blockchain is composed of distributed nodes for mutual verification, it has a chronic problem that it is impossible to improve performance (scalability) according to the number of nodes. The most representative factor among the reasons why it is difficult to achieve scalability in a blockchain is the problem of single block key collision.

단일 블록 키 충돌 문제는 둘 이상의 계산 주체(트랜잭션 요청을 실행하는 주체)에서 실행되는 트랜잭션이 같은 키를 참조 및 변경하는 경우, 해당 트랜잭션 간에 그 키가 충돌하기 때문에 한 블록에서 한 번에 처리할 수 없다. 이는 같은 키를 참조하는 트랜잭션이 참조 후 변경한 값이 다르면(R/W Set이 충돌하면) 원장 기록의 일관성이 깨지기 때문이다. 이는 STM의 R/W Set validation에 해당하는 과정으로, 블록체인에서도 STM과 같이 트랜잭션을 반영할 때 R/W Set이 충돌하는 경우, 해당 트랜잭션의 처리 결과를 파기하고 재실행 후, 다음 블록에서 반영을 시도해야 한다. 결과적으로 상호 간에 간섭하는 트랜잭션을 확정하기 위해서는 간섭하는 트랜잭션의 개수만큼의 블록이 필요하다.The single-block key conflict problem cannot be handled in one block at a time because the key conflicts between the transactions when a transaction running on two or more computational principals (the one executing the transaction request) references and changes the same key. none. This is because the consistency of the ledger record is broken if the values changed after reference by transactions referencing the same key are different (R/W Set conflicts). This is a process corresponding to the R/W set validation of STM. If the R/W set conflicts when a transaction is reflected like STM in the block chain, the processing result of the transaction is destroyed and re-executed, and reflected in the next block. should try As a result, in order to confirm mutually interfering transactions, as many blocks as the number of interfering transactions are required.

상호 간에 변경된 값을 공유할 수 있다면 이러한 문제를 해결할 수 있으나, 블록체인은 분산 노드로 구성되어있기 때문에 공유 메모리가 아닌 분산 공유 메모리 모델을 사용해야 하지만, 이는 더 큰 성능 저하를 의미하기 때문에, 서로 다른 노드 간에 처리 결과를 공유하는 것은 바람직하지 않다.This problem can be solved if the changed values can be shared with each other, but since the blockchain is composed of distributed nodes, a distributed shared memory model should be used instead of shared memory, but since this means a greater performance degradation, different It is not desirable to share processing results between nodes.

결과적으로, 단일 블록 키 충돌 문제는 블록체인의 성능 저하를 의미할 뿐만이 아니라, 블록 밀도 감소(한 블록에 담기는 트랜잭션 수 감소), 트랜잭션 계산자원 효율 저하(동일 트랜잭션을 반복해서 재실행함으로써, 유효 트랜잭션 실행률 저하) 등의 문제를 발생시킨다. As a result, the single-block key collision problem not only means degradation of the blockchain performance, but also decreases the block density (reduces the number of transactions contained in one block), and decreases the efficiency of transaction computation resources (by repeatedly re-executing the same transaction, valid transactions decrease in execution rate), etc.

즉, 초기의 블록체인 기술의 경우, 처리해야 할 트랜잭션 요청을 한개의 노드에서 계산한 다음 나머지 노드에서 검증하는 구조를 채택하고 있었기 때문에, 노드간에 트랜잭션을 분산해서 처리하기 때문에 발생하는 문제가 없었다. 하지만, I/O 성능 또는 CPU 성능 등 하드웨어적 한계로 인하여, 한 블록 생성 주기에 단일 노드가 처리할 수 있는 트랜잭션 수에는 한계가 있다. 이는 단위 시간마다 처리를 요청하는 트랜잭션 수가 많아지면, 주어진 트랜잭션을 단일 노드에서는 처리하지 못하고 여러 개의 노드에서 나누어 처리할 수 밖에 없다는 뜻이며, 이를 위해 블록체인상의 노드간 트랜잭션 분산처리가 중요해졌다.In other words, in the case of early blockchain technology, there was no problem because the transaction was processed by distributing the transaction between nodes because one node calculated the transaction request to be processed and then verified it in the remaining nodes. However, due to hardware limitations such as I/O performance or CPU performance, there is a limit to the number of transactions that a single node can process in one block generation cycle. This means that if the number of transactions requesting processing per unit time increases, a given transaction cannot be processed by a single node, but has to be processed in multiple nodes.

이 문제를 해결하기 위해서 기존에는 다양한 기술이 제안되어왔다. Riden/Lightening Network와 같이 부분적·특수한 경우를 해결하기 위한 방식에서부터 Sharding, Multi-chain 과 같이 거시적으로 문제를 해결하려는 방식까지 다양한 기술이 제안되어왔다. 하지만, 이 기술들은 직간접적으로 STM(Software Transactional Memory)방식에 의한 트랜잭션 처리 및 에러 복구 기능에 기반하고 있기 때문에, 단일 블록 키 충돌 문제(within-block collision)가 필연적으로 발생한다.In order to solve this problem, various techniques have been proposed in the past. Various technologies have been proposed, from methods to solve partial and special cases such as Riden/Lightening Network to methods to solve problems macroscopically such as sharding and multi-chain. However, since these technologies are directly or indirectly based on transaction processing and error recovery by STM (Software Transactional Memory) method, a single block key collision problem (within-block collision) inevitably occurs.

어떤 transactional system에서 동시에 실행되는 Tx의 종료 시점, 즉 결과의 반영 주기가 거의 일치하지 않고, 각 Tx간에 R/W Set 충돌이 발생할 확률이 낮다면, Lock Strategy에 비해 STM 방식의 병렬 처리 성능이 더 높다. 하지만, 블록체인에서는 Tx의 실행 결과의 반영은 블록 생성 시점에서만 이루어진다. 한 블록에서 Tx를 하나씩만 실행하는 경우에는 문제가 될 수 없으나, 병행처리, 나아가서 분산처리를 하고자 하는 경우에는 모든 Tx의 실행 결과의 반영 시점이 항상 일치하기 때문에 모든 Tx의 R/W Set의 충돌이 한 번에 발생하고, 그 결과 STM의 retry의 발생 확률이 일반적인 SMP 환경에 비해 필연적으로 올라감으로써 블록체인 시스템의 병렬 처리 성능은 매우 낮다. 즉, STM 방식을 그대로 블록체인에 적용하는 것은 위에서 설명한 이유로 인해 부적합하기 때문에, 이 문제를 해결하기 위한 방법이 필요하다. 선행기술문헌 : 한국공개특허 제10-2018-0115778호In a transactional system, the parallel processing performance of the STM method is higher than that of the lock strategy if the timing of the simultaneous execution of Tx in a transactional system, that is, the reflection period of the results does not match, and the probability of R/W set collision between each Tx is low. high. However, in the block chain, the reflection of the execution result of Tx is made only at the time of block creation. This is not a problem if only one Tx is executed in one block, but in case of parallel processing and further distributed processing, the time of reflection of the execution results of all Tx is always the same, so the R/W set collision of all Tx This occurs at once, and as a result, the probability of occurrence of STM retry inevitably increases compared to the general SMP environment, so the parallel processing performance of the blockchain system is very low. In other words, since it is inappropriate to apply the STM method to the blockchain as it is for the reasons described above, a method to solve this problem is required. Prior art literature: Korean Patent Publication No. 10-2018-0115778

본 발명이 해결하고자 하는 과제는 단일 원장 블록체인 프레임워크에서 효율적인 트랜잭션 분산처리를 위해, 공통 키셋정보를 이용한 트랜잭션 분산처리를 위한 블록체인 시스템 및 수행방법에 관한 것이다. The problem to be solved by the present invention relates to a blockchain system and a method for performing transaction distributed processing using common keyset information for efficient transaction distributed processing in a single ledger blockchain framework.

상기의 과제를 해결하기 위한 본 발명에 따른 공통 키셋정보를 이용한 트랜잭션 분산처리를 위한 블록체인 시스템은, 사용자의 트랜잭션 요청에 따른 트랜잭션 정보를 나타내는 트랜잭션 프로포절(Tx Proposal)을 생성하고, 상기 생성된 트랜잭션 프로포절에 상기 트랜잭션 요청에 대응하는 키(key) 정보를 추가하는 트랜잭션 패커(Transaction Packer); 상기 트랜잭션 패커에서 전달받은 상기 트랜잭션 프로포절에 포함된 상기 키 정보에 따라 상기 트랜잭션 프로포절에 대응하는 공통 키셋 정보 및 공통 트랜잭션 배치(Transaction batch)정보를 생성하고, 상기 생성된 공통 트랜잭션 배치정보 별로 구분하여 미리 지정된 실행 노드그룹으로 전송하는 트랜잭션 에그리게이터(Transaction Aggregator); 및 상기 실행노드 그룹에 속하는 것으로, 상기 트랜잭션 에그리게이터로부터 전송된 상기 공통 트랜잭션 배치정보에 포함된 상기 트랜잭션 프로포절들에 대한 시뮬레이션을 실행하는 적어도 하나 이상의 트랜잭션 실행기(Transction executor)를 포함하는 것을 특징으로 한다.A blockchain system for distributed transaction processing using common keyset information according to the present invention for solving the above problems generates a transaction proposal (Tx Proposal) indicating transaction information according to a user's transaction request, and the generated transaction a transaction packer for adding key information corresponding to the transaction request to a proposal; According to the key information included in the transaction proposal received from the transaction packer, common keyset information and common transaction batch information corresponding to the transaction proposal are generated, and divided by the generated common transaction batch information in advance. a transaction aggregator that transmits to a specified execution nodegroup; and at least one or more transaction executors belonging to the execution node group and executing simulations for the transaction proposals included in the common transaction arrangement information transmitted from the transaction aggregator. do.

상기 키 정보는, 배열이나 복합키를 포함하는 미확정 형태의 부분 키 정보를 포함하는 것을 특징으로 한다.The key information is characterized in that it includes partial key information in an unconfirmed form including an array or composite key.

상기 공통 키셋 정보는, 복수의 트랜잭션 프로포절들에 포함되는 키 정보들 중 동일한 키를 갖는 것들에 대한 키 집합을 나타내는 것을 특징으로 한다.The common keyset information is characterized in that it indicates a key set for those having the same key among key information included in a plurality of transaction proposals.

상기 공통 트랜잭션 배치정보는, 상기 공통 키셋 정보에 포함된 키 정보들에 각각 대응하는 트랜잭션 프로포절들의 집합을 나타내는 것을 특징으로 한다.The common transaction arrangement information is characterized in that it represents a set of transaction proposals respectively corresponding to key information included in the common keyset information.

상기 트랜잭션 에그리게이터는, 다수의 실행 노드들로부터 상기 실행 노드들 각각의 처리능력정보의 수신에 따라, 상기 공통 트랜잭션 배치정보의 계산을 위한 상기 실행 노드그룹을 지정하고, 상기 지정된 실행 노드그룹으로 상기 공통 트랜잭션 배치정보를 전송하는 것을 특징으로 한다.The transaction aggregator is configured to designate the execution node group for calculation of the common transaction arrangement information according to reception of processing capability information of each of the execution nodes from a plurality of execution nodes, and to the designated execution node group. It is characterized in that the common transaction arrangement information is transmitted.

상기 트랜잭션 실행기는, 적어도 하나 이상의 캐쉬 메모리를 구비하고, 상기 캐쉬 메모리에 상기 트랜잭션 프로포절들의 시뮬레이션 실행에 따른 상태 정보를 저장하고 있으며, 상기 저장된 상태 정보를 다음의 트랜잭션 프로포절에 대한 시뮬레이션을 위한 값으로 사용하는 것을 특징으로 한다.The transaction executor includes at least one cache memory, stores state information according to simulation execution of the transaction proposals in the cache memory, and uses the stored state information as a value for simulation for the next transaction proposal characterized in that

상기 트랜잭션 실행기는, 상기 트랜잭션 프로포절의 시뮬레이션을 위해, 먼저 상기 캐쉬 메모리를 액세스하여 상기 상태 정보를 참고하고, 상기 캐쉬 메모리에 상기 트랜잭션 프로포절의 시뮬레이션을 위한 상태 정보가 존재하지 않는 경우에 블록체인에 저장된 원장 정보를 액세스하여 상기 캐쉬 메모리에 저장해 놓는 것을 특징으로 한다.For the simulation of the transaction proposal, the transaction executor first accesses the cache memory to refer to the state information, and when the state information for the simulation of the transaction proposal does not exist in the cache memory, stored in the block chain It is characterized in that the ledger information is accessed and stored in the cache memory.

상기 트랜잭션 실행기는, 상기 블록체인에 저장된 상기 원장 정보를 상기 트랜잭션 프로포절의 시뮬레이션 전에 미리 상기 캐쉬 메모리에 저장해 놓는 것을 특징으로 한다.The transaction executor is characterized in that the ledger information stored in the block chain is stored in the cache memory in advance before the simulation of the transaction proposal.

상기의 과제를 해결하기 위한 본 발명에 따른 공통 키셋정보를 이용한 트랜잭션 분산처리를 위한 블록체인 수행방법은, 트랜잭션 패커(Transaction Packer)에서, 사용자의 트랜잭션 요청에 따른 트랜잭션 정보를 나타내는 트랜잭션 프로포절(Tx Proposal)을 생성하고, 상기 생성된 트랜잭션 프로포절에 상기 트랜잭션 요청에 대응하는 키(key) 정보를 추가하는 단계; 트랜잭션 에그리게이터(Transaction Aggregator)에서, 상기 전달받은 트랜잭션 프로포절에 포함된 상기 키 정보에 따라 상기 트랜잭션 프로포절에 대응하는 공통 키셋 정보 및 공통 트랜잭션 배치(Transaction batch)정보를 생성하고, 상기 생성된 공통 트랜잭션 배치정보 별로 구분하여 미리 지정된 실행 노드그룹으로 전송하는 단계; 및 상기 실행노드 그룹에 속하는 적어도 하나 이상의 트랜잭션 실행기(Transction executor)에서, 상기 전송된 공통 트랜잭션 배치정보에 포함된 상기 트랜잭션 프로포절들에 대한 시뮬레이션을 실행하는 단계를 포함하는 것을 특징으로 한다.The blockchain execution method for distributed transaction processing using common keyset information according to the present invention for solving the above problems is a transaction proposal (Tx Proposal) indicating transaction information according to a user's transaction request in a transaction packer. ) and adding key information corresponding to the transaction request to the generated transaction proposal; In a transaction aggregator, common keyset information and common transaction batch information corresponding to the transaction proposal are generated according to the key information included in the received transaction proposal, and the generated common transaction classifying each batch information and transmitting it to a pre-designated execution node group; and executing a simulation on the transaction proposals included in the transmitted common transaction arrangement information in at least one or more transaction executors belonging to the execution node group.

상기 키 정보는, 배열이나 복합키를 포함하는 미확정 형태의 부분 키 정보를 포함하는 것을 특징으로 한다.The key information is characterized in that it includes partial key information in an unconfirmed form including an array or composite key.

상기 공통 키셋 정보는, 복수의 트랜잭션 프로포절들에 포함되는 키 정보들 중 동일한 키를 갖는 것들에 대한 키 집합을 나타내는 것을 특징으로 한다.The common keyset information is characterized in that it indicates a key set for those having the same key among key information included in a plurality of transaction proposals.

상기 공통 트랜잭션 배치정보는, 상기 공통 키셋 정보에 포함된 키 정보들에 각각 대응하는 트랜잭션 프로포절들의 집합을 나타내는 것을 특징으로 한다.The common transaction arrangement information is characterized in that it represents a set of transaction proposals respectively corresponding to key information included in the common keyset information.

상기 생성된 공통 트랜잭션 배치정보 별로 구분하여 미리 지정된 실행 노드그룹으로 전송하는 단계는, 다수의 실행 노드들로부터 상기 실행 노드들 각각의 처리능력정보의 수신에 따라, 상기 공통 트랜잭션 배치정보의 계산을 위한 상기 실행 노드그룹을 지정하고, 상기 지정된 실행 노드그룹으로 상기 공통 트랜잭션 배치정보를 전송하는 것을 특징으로 한다.The step of classifying the generated common transaction arrangement information and transmitting it to a pre-designated execution node group includes receiving processing capability information of each of the execution nodes from a plurality of execution nodes for calculation of the common transaction arrangement information. Designating the execution node group, and transmitting the common transaction arrangement information to the designated execution node group.

상기 트랜잭션 프로포절들의 시뮬레이션을 실행하는 단계는, 캐쉬 메모리에 상기 트랜잭션 프로포절들의 시뮬레이션에 따른 상태 정보를 저장하고 있으며, 상기 저장된 상태 정보를 다음 트랜잭션 프로포절의 시뮬레이션을 위한 값으로 활용하는 것을 특징으로 한다.In the step of executing the simulation of the transaction proposals, state information according to the simulation of the transaction proposals is stored in a cache memory, and the stored state information is used as a value for the simulation of the next transaction proposal.

상기 트랜잭션 프로포절들의 시뮬레이션을 실행하는 단계는, 상기 트랜잭션 프로포절의 시뮬레이션을 위해, 먼저 상기 캐쉬 메모리를 액세스하여 상기 상태 정보를 참고하고, 상기 캐쉬 메모리에 상기 트랜잭션 프로포절의 시뮬레이션을 위한 상기 상태 정보가 존재하지 않는 경우에 블록체인에 저장된 원장 정보를 액세스하여 상기 캐쉬 메모리에 저장해 놓는 것을 특징으로 한다.In the step of executing the simulation of the transaction proposals, for the simulation of the transaction proposal, first access the cache memory to refer to the state information, and the state information for the simulation of the transaction proposal does not exist in the cache memory If not, it is characterized in that it accesses the ledger information stored in the block chain and stores it in the cache memory.

상기 트랜잭션 프로포절들의 시뮬레이션을 실행하는 단계는, 상기 블록체인에 저장된 상기 원장 정보를 상기 트랜잭션 프로포절의 시뮬레이션 전에 미리 상기 캐쉬 메모리에 저장해 놓는 것을 특징으로 한다.The step of executing the simulation of the transaction proposals is characterized in that the ledger information stored in the block chain is stored in the cache memory in advance before the simulation of the transaction proposals.

본 발명에 따르면, 복수의 트랜잭션 요청들에 대해, 이를 처리할 실행 노드들에 상호 간섭이 없도록 분류하여 실행할 수 있도록 공통 키셋정보를 기준으로, 기존의 멀티체인 블록체인 기술 및 Transaction Pre-Ordering 기술과 달리 높은 트랜잭션 유효 실행 효율을 달성할 수 있다.According to the present invention, for a plurality of transaction requests, the existing multi-chain blockchain technology and Transaction Pre-Ordering technology and Otherwise, high transaction effective execution efficiency can be achieved.

또한, 트랜잭션 실행기에서 공통 트랜잭션 배치정보에 근거하여 시뮬레이션을 실행할 때에, 일차적으로 캐쉬 메모리에 저장된 정보를 이용하되, 캐쉬 메모리에 저장되어 있지 않은 경우에만 블록체인을 참조하여 트랜잭션 프로포절에 대한 시뮬레이션을 실행함으로써, 트랜잭션 프로포절의 시뮬레이션 실행 속도를 현저히 향상시킬 수 있다.In addition, when the transaction executor executes the simulation based on the common transaction batch information, the information stored in the cache memory is used primarily, but only when it is not stored in the cache memory, by executing the simulation on the transaction proposal by referring to the block chain. , it can significantly improve the simulation execution speed of transaction proposals.

이에 따라, 단일 블록 키 충돌이 없는 실행 결과를 보장하는 노드 그룹별 트랜잭션 그룹을 충분히 빠른 속도로 생성할 수 있다. 공통 트랜잭션 배치정보를 블록체인 상의 노드 그룹에 분할 배분하여, 이를 순차적 또는 병행적으로 처리함으로써 노드 수 증가에 따른 Scalability를 얻을 수 있는 블록체인 프레임워크 기술을 구현할 수 있다.Accordingly, it is possible to create a transaction group for each node group at a sufficiently high speed that guarantees an execution result without a single block key collision. By dividing and distributing common transaction arrangement information to a group of nodes on the blockchain and processing them sequentially or in parallel, it is possible to implement a blockchain framework technology that can achieve scalability according to an increase in the number of nodes.

도 1은 본 발명에 따른 공통 키셋정보를 이용한 트랜잭션 분산처리를 위한 블록체인 시스템을 설명하기 위한 일 실시예의 구성 블록도이다.
도 2는 사용자의 요청에 따른 트랜잭션들을 예시하는 참조도이다.
도 3은 트랜잭션 에그리게이터가 공통 키셋 정보 및 공통 트랜잭션 배치정보를 생성하는 과정을 설명하기 위한 일 예의 참조도이다.
도 4는 트랜잭션 에그리게이터가 공통 키셋 정보 및 공통 트랜잭션 배치정보를 생성하는 과정을 설명하기 위한 다른 예의 참조도이다.
도 5는 트랜잭션 에그리게이터가 공통 키셋 정보 및 공통 트랜잭션 배치정보를 생성하는 과정을 설명하기 위한 또다른 예의 참조도이다.
도 6은 트랜잭션 에그리게이터가 공통 키셋 정보 및 공통 트랜잭션 배치정보를 생성하는 과정을 설명하기 위한 또다른 예의 참조도이다.
도 7은 트랜잭션 에그리게이터가 공통 키셋 정보 및 공통 트랜잭션 배치정보를 생성하는 과정을 설명하기 위한 또다른 예의 참조도이다.
도 8은 트랜잭션 에그리게이터가 공통 키셋 정보 및 공통 트랜잭션 배치정보를 생성하는 과정을 설명하기 위한 또다른 예의 참조도이다.
도 9는 트랜잭션 에그리게이터가 공통 키셋 정보 및 공통 트랜잭션 배치정보를 생성하는 과정을 설명하기 위한 또다른 예의 참조도이다.
도 10은 트랜잭션 에그리게이터가 공통 키셋 정보 및 공통 트랜잭션 배치정보를 생성하는 과정을 설명하기 위한 또다른 예의 참조도이다.
도 11은 트랜잭션 에그리게이터가 공통 키셋 정보 및 공통 트랜잭션 배치정보를 생성하는 과정을 설명하기 위한 또다른 예의 참조도이다.
도 12는 트랜잭션 에그리게이터가 공통 키셋 정보 및 공통 트랜잭션 배치정보를 생성하는 과정을 설명하기 위한 또다른 예의 참조도이다.
도 13은 트랜잭션 에그리게이터가 공통 키셋 정보 및 공통 트랜잭션 배치정보를 생성하는 과정을 설명하기 위한 또다른 예의 참조도이다.
도 14는 트랜잭션 실행기가 공통 트랜잭션 배치정보를 이용하여 각각의 트랜잭션 프로포절들에 대한 시뮬레이션을 실행하는 과정을 설명하기 위한 일 예의 참조도이다.
도 15는 본 발명에 따른 공통 키셋정보를 이용한 트랜잭션 분산처리를 위한 블록체인 수행방법을 설명하기 위한 일 실시예의 플로차트이다.
1 is a block diagram of an embodiment for explaining a blockchain system for distributed transaction processing using common keyset information according to the present invention.
2 is a reference diagram illustrating transactions according to a user's request.
3 is a reference diagram illustrating an example of a process in which a transaction aggregator generates common keyset information and common transaction arrangement information.
4 is a reference diagram of another example for explaining a process in which the transaction aggregator generates common keyset information and common transaction arrangement information.
5 is a reference diagram of another example for explaining a process in which the transaction aggregator generates common keyset information and common transaction arrangement information.
6 is a reference diagram of another example for explaining a process in which the transaction aggregator generates common keyset information and common transaction arrangement information.
7 is a reference diagram of another example for explaining a process in which the transaction aggregator generates common keyset information and common transaction arrangement information.
8 is a reference diagram of another example for explaining a process in which the transaction aggregator generates common keyset information and common transaction arrangement information.
9 is a reference diagram of another example for explaining a process in which the transaction aggregator generates common keyset information and common transaction arrangement information.
10 is a reference diagram of another example for explaining a process in which the transaction aggregator generates common keyset information and common transaction arrangement information.
11 is a reference diagram of another example for explaining a process in which the transaction aggregator generates common keyset information and common transaction arrangement information.
12 is a reference diagram for another example for explaining a process in which the transaction aggregator generates common keyset information and common transaction arrangement information.
13 is a reference diagram of another example for explaining a process in which the transaction aggregator generates common keyset information and common transaction arrangement information.
14 is a reference diagram for explaining a process in which a transaction executor executes a simulation for each transaction proposal using common transaction arrangement information.
15 is a flowchart of an embodiment for explaining a block chain execution method for distributed transaction processing using common keyset information according to the present invention.

이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명하기로 한다. Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings.

본 발명의 실시예들은 당해 기술 분야에서 통상의 지식을 가진 자에게 본 발명을 더욱 완전하게 설명하기 위하여 제공되는 것이며, 아래의 실시예들은 여러 가지 다른 형태로 변형될 수 있으며, 본 발명의 범위가 아래의 실시예들로 한정되는 것은 아니다. 오히려, 이들 실시예는 본 개시를 더욱 충실하고 완전하게 하며 당업자에게 본 발명의 사상을 완전하게 전달하기 위하여 제공되는 것이다.  The embodiments of the present invention are provided to more completely explain the present invention to those of ordinary skill in the art, and the following embodiments can be modified in various other forms, and the scope of the present invention is not limited It is not limited to the following examples. Rather, these examples are provided so that this disclosure will be more thorough and complete, and will fully convey the spirit of the invention to those skilled in the art.

본 명세서에서 사용된 용어는 특정 실시예를 설명하기 위하여 사용되며, 본 발명을 제한하기 위한 것이 아니다. 본 명세서에서 사용된 바와 같이 단수 형태는 문맥상 다른 경우를 분명히 지적하는 것이 아니라면, 복수의 형태를 포함할 수 있다. 또한, 본 명세서에서 사용된 바와 같이, 용어 "및/또는"은 해당 열거된 항목 중 어느 하나 및 하나 이상의 모든 조합을 포함한다.  The terminology used herein is used to describe specific embodiments, not to limit the present invention. As used herein, the singular form may include the plural form unless the context clearly dictates otherwise. Also, as used herein, the term “and/or” includes any one and all combinations of one or more of those listed items.

본 발명이 제안하는 기술은 트랜잭션 병렬처리 기술을 블록체인 프레임워크에 응용한 것으로, 서로 다른 노드에서 처리되는 트랜잭션 간에 단일 블록 키 충돌 문제가 발생하지 않도록 트랜잭션 요청을 나눔으로써, 블록체인의 병렬처리 효율을 높이기 위한 방식이다.The technology proposed by the present invention applies the transaction parallel processing technology to the blockchain framework. By dividing the transaction request so that a single block key collision problem does not occur between transactions processed in different nodes, the parallel processing efficiency of the blockchain is method to increase it.

이 방식은 크게, 트랜잭션 요청에 따른 키 정보 생성, 생성된 키 정보에 기초하여 공통의 키셋 정보를 갖는 트랜잭션들끼리 분류(Transaction Proposal Aggregation: TPA) 및 분류된 트랜잭션들끼리 계산을 실행할 수 있도록 하는 Cached Tx Executor으로 구성된다. TPA는 실시간으로 주어지는 트랜잭션 요청을 그룹 간에 키 중복이 없도록 노드 그룹별로 분류함으로써, Cached Tx Executor는 분류·할당된 트랜잭션을 순서대로 실행한다.This method largely generates key information according to a transaction request, classifies transactions with common keyset information based on the generated key information (Transaction Proposal Aggregation: TPA), and cached that allows calculations between classified transactions to be executed. It is composed of Tx Executor. TPA classifies real-time transaction requests by node group so that there is no key duplication between groups. Cached Tx Executor executes the classified and assigned transactions in order.

먼저, 본발명 관련한 용어 및 데이터 구조 등에 대한 상세한 내용을 정리하면 다음과 같다.First, the detailed contents of terms and data structures related to the present invention are summarized as follows.

Tx: 트랜잭션의 약자이다. Tx는 하나의 처리를 의미하며, 적용 대상의 블록체인 아키텍처가 요구하는 트랜잭션 처리에 필요한 정보로 구성된다.Tx: Abbreviation for transaction. Tx means one processing, and it consists of information necessary for transaction processing required by the target blockchain architecture.

Tx Proposal: 트랜잭션 요청에 따른 트랜잭션 정보를 포함한다.Tx Proposal: Includes transaction information according to a transaction request.

Tx Simulation: 트랜잭션 요청에 대한 트랜잭션 실행기에서의 실행 결과를 의미한다.Tx Simulation: It means the execution result in the transaction executor for the transaction request.

Ledger Key: 원장에 기록되는 값의 키(변수명)을 의미한다. 원장에 기록되지 않는 변수 또는 구조체 내의 field명 등을 의미하지 않는다.Ledger Key: It means the key (variable name) of the value recorded in the ledger. It does not mean variables that are not recorded in the ledger or field names in structures.

Partial Ledger Key: 원장에 기록되는 값의 키의 일부로 구성되는 정보이다.Partial Ledger Key: Information composed of a part of the key of the value recorded in the ledger.

R/W Key Set (RWKS): 임의의 Tx Proposal의 실행시, 참조 및 변경한 값의 Ledger Key 정보의 집합을 의미한다.R/W Key Set (RWKS): It means a set of Ledger Key information of referenced and changed values when executing arbitrary Tx Proposal.

eTP (encapsulated Tx Proposal): 기존의 Tx Proposal에 트랜잭션 에그리게이터에 전달하기 위한 R/W Key Set Description 정보가 부가된 Tx Proposal이다.eTP (encapsulated Tx Proposal): This is a Tx Proposal with R/W Key Set Description information added to the existing Tx Proposal for transmission to the transaction aggregator.

Tx Tree는 그 자체가 하나의 Tx 유형의 분류를 표현하는 표현형인 동시에, 분류된 Tx의 집합을 표현하는 데이터 구조이다.The Tx Tree itself is a phenotype expressing the classification of one Tx type, and at the same time, a data structure expressing a set of classified Tx.

Tx Tree는 크게 2가지의 데이터로 구성된다. 하나는 Tx Tree의 RWKS으로, 해당 Tx Tree의 유형 분류 기준을 표현하는 정보이다. 또 하나는 Tx Set으로, 해당 Tx Tree의 유형 분류 기준에 부합하는 Tx의 집합이다.Tx Tree consists of two types of data. One is the RWKS of the Tx Tree, which is information expressing the type classification criteria of the corresponding Tx Tree. Another is Tx Set, which is a set of Tx that meets the type classification criteria of the corresponding Tx Tree.

eTPB: 상호 영향이 있는 eTP의 순서가 정해진 묶음이다. eTPB내의 순서는 eTPID(TxID)에 의해 정의된다.eTPB: An ordered bundle of eTPs with mutual influence. The order within the eTPB is defined by the eTPID (TxID).

eTPBs(Forest, ForestContainer): 순서가 정해진 eTPB의 묶음이다. eTPBs내의 eTPB의 순서는eTPBID(TreeID)에 의해 정의된다.eTPBs (Forest, ForestContainer): A set of ordered eTPBs. The order of eTPBs within eTPBs is defined by the eTPBID (TreeID).

eTSBs: eTPBs에서 정해진 순서대로 트랜잭션 실행기에서 실행된 Tx Simulation의 묶음이다.eTSBs: A bundle of Tx Simulations executed in the transaction executor in the order specified in the eTPBs.

eTPRBs: eTPBs에서 정해진 순서대로 실행된 Tx Proposal Response의 묶음이다.eTPRBs: It is a bundle of Tx Proposal Responses executed in the order determined by eTPBs.

NodeInfoMap: 블록체인에 참가한 모든 Node의 상태 정보를 의미한다.NodeInfoMap: Indicates the status information of all nodes participating in the blockchain.

Capacity: 각 노드 그룹이 한 블록 생성 주기 내에 처리할 수 있는 Tx 처리 성능 용량을 의미한다.Capacity: It means the Tx processing capacity capacity that each node group can process within one block generation cycle.

Arithmetic Load: 원장에 대한 키 참조 및 변경 조작을 포함하지 않는 Tx 실행에 걸리는 시간을 의미한다.Arithmetic Load: refers to the time taken for Tx execution that does not include key reference and change operations on the ledger.

Key load: 원장에 대한 키 참조 및 변경에 필요한 실행 시간을 의미한다.Key load: refers to the execution time required for key reference and change on the ledger.

eTP는 다음과 같은 정보로 구성된다.eTP consists of the following information.

종류Kinds 내용Contents EtpId (string)EtpId (string) eTP의 identifier. 일반적으로 Tx Proposal의 Tx ID를 준용함eTP identifier. In general, Tx ID of Tx Proposal is applied mutatis mutandis. TaskLoad (int32)TaskLoad(int32) 해당 Tx Proposal을 실행하는데 필요한 cost(≒시간). 단 원장에서 값을 읽거나 쓰는데 걸리는 시간을 제외함The cost (≒ time) required to execute the corresponding Tx Proposal. Except for the time it takes to read or write a value to the ledger. ParKeys ([]string, 또는 []([]string))ParKeys ([]string, or []([]string)) 해당 Tx Proposal이 참조·변경할 가능성이 있는 Ledger Key의 부분키(Partial Ledger Key)의 배열Array of Partial Ledger Keys of Ledger Keys that the Tx Proposal may refer to and change Keys ([]string)Keys([]string) 해당 Tx Proposal이 참조·변경할 가능성이 있는 Ledger Key의 배열Array of Ledger Keys that can be referenced or changed by the Tx Proposal Proposal (적용 블록체인 플랫폼에 따라 바뀜)Proposal (depending on the applied blockchain platform) 적용 블록체인 플랫폼의 Tx Proposal의 원 데이터(Tx Proposal을 그대로 넣으면 됨)Raw data of Tx Proposal of the applied blockchain platform (just insert Tx Proposal as it is) Receptor (string)Receptor (string) 해당 Tx Proposal을 접수한 Node(API Server)의 정보. 본 문서에서는 다루지 않음.Information of the Node (API Server) that received the Tx Proposal. Not covered in this document.

eTPB는 다음과 같은 정보로 구성된다.The eTPB consists of the following information.

종류Kinds 내용Contents TreeId (string)TreeId (string) 해당 Tree의 identifieridentifier of the tree TreeCoreLoad (int32)TreeCoreLoad(int32) 해당 Tree에 담긴 Tx Proposal의 TaskLoad의 합Sum of TaskLoad of Tx Proposal contained in the tree ParKeys (map[string]bool, 또는 map[[]string]bool)ParKeys (map[string]bool, or map[[]string]bool) 해당 Tree에 담긴 모든 Tx Proposal이 참조·변경할 가능성이 있는 Ledger Key의 부분키(Partial Ledger Key)의 배열Array of Partial Ledger Keys of Ledger Keys that all Tx Proposals in the Tree can reference and change Keys (map[string]bool)Keys (map[string]bool) 해당 Tree에 담긴 모든 Tx Proposal이 참조·변경할 가능성이 있는 Ledger Key의 배열Array of Ledger Keys that all Tx Proposals in the tree can reference and change Etps ([]ETP)Etps ([]ETP) 해당 Tree에 담긴 Tx Proposal의 배열Array of Tx Proposal in the Tree

eTPBs는 다음과 같은 정보로 구성된다.eTPBs consist of the following information:

종류Kinds 내용Contents Forest ([]eTPB)Forest ([]eTPB) 전송 대상의 Node Group에서 처리하는 모든 eTP Tree의 집합
eTP Tree의 데이터 적재 순서는 보장되지 않으므로, eTP Tree의 TreeID에 의해 순서가 결정됨
A set of all eTP trees processed by the node group of the transmission target
The order of loading data in the eTP Tree is not guaranteed, so the order is determined by the TreeID of the eTP Tree.
ForestID (NodeGroupID:int32)ForestID (NodeGroupID:int32) 해당 eTPB의 전송 대상 Node Group IDSend destination Node Group ID of the eTPB ForestLoad (int32)ForestLoad(int32) 해당 eTPBs를 전부 실행할 때의 부하값Load value when running all the relevant eTPBs

dTPA(distributed TPA)간 통신 프로토콜dTPA (distributed TPA) communication protocol

dTPA는 네트워크 상에 분산되어 존재하는 TPA 머신이다. dTPA는 각 API Server로부터 독점적으로 또는 동시에 eTP 정보를 입력받는다.dTPA is a TPA machine that exists distributedly on the network. dTPA receives eTP information exclusively or simultaneously from each API Server.

각 dTPA는 동일한 알고리즘을 사용하여 eTP를 분류하나, 복수의 eTP 정보를 입력받는 순서 및 방법에 따라서 모든 TPA에서 동일한 방식으로 eTP를 분류할 수 없다. 이 문제를 해결하기 위해서 dTPA는 상호간에 정보를 선택적 또는 비선택적으로 공유함으로서 모든 TPA가 동일한 방식으로 eTP를 분류하고, 그 분류 결과를 각 Endorsing Peer 노드에 대해 중복되지 않게 전송할 수 있어야 한다. Each dTPA classifies eTPs using the same algorithm, but it is impossible to classify eTPs in the same way in all TPAs depending on the order and method of receiving a plurality of eTP information. To solve this problem, dTPAs selectively or non-selectively share information with each other, so that all TPAs classify eTPs in the same way, and the classification result must be transmitted to each Endorsing Peer node without overlapping.

이를 위해서 dTPA는 다음과 같은 정보를 상호간에 교환한다.For this, dTPA exchanges the following information with each other.

종류Kinds 통신 방식communication method 내용Contents eTP_ChargeeTP_Charge BroadcastBroadcast 임의의 eTP를 특정 TPA에서 담당하겠다는 신호
eTP 및 TPA_Id로 구성됨
Signal that any eTP will be handled by a specific TPA
Configured with eTP and TPA_Id
Charge_NegotiateCharge_Negotiate P2PP2P 임의의 eTP에 대한 담당 TPA 선언이 중복되는 경우, 해결하기 위한 통신
Negotiation 알고리즘에 따라서 데이터 구성은 달라질 수 있음
Communication to resolve the overlapping declaration of responsible TPA for any eTP
Data composition may vary depending on the negotiation algorithm
eTPBs_BroadcasteTPBs_Broadcast BroadcastBroadcast 발신 시점에서 TPA가 현재까지 담당하고 있는 eTPBs를 다른 TPA에 알리기 위한 신호
eTPBs 또는 ΔeTPBs 정보를 공유
A signal to inform other TPAs of the eTPBs that the TPA is currently in charge of at the time of origination
Share eTPBs or ΔeTPBs information
RWKS_BroadcastRWKS_Broadcast BroadcastBroadcast 발신 시점에서 TPA가 현재까지 담당하고 있는 eTPBs의 RWKS를 다른 TPA에 알리기 위한 신호
eTPBs 또는 ΔeTPBs 정보를 공유
Signal to inform other TPA of RWKS of eTPBs that TPA is currently in charge of at the time of sending
Share eTPBs or ΔeTPBs information
eTP_TosseTP_Toss P2PP2P 해당 TPA가 담당할 수 없는 eTP를 대상 TPA에 넘기기 위한 통신Communication to pass the eTP to the target TPA that the TPA cannot handle eTPB_Exchange_
Negotiation
eTPB_Exchange_
Negotiation
P2PP2P TPA간에 eTPB를 상호 교환하기 위한 Negotiation 신호Negotiation signal for exchanging eTPBs between TPAs
eTPB_ExchangeeTPB_Exchange P2PP2P TPA간에 eTPB를 상호 교환하기 위한 Negotiation 신호Negotiation signal for exchanging eTPBs between TPAs

특정 eTP에 대한 담당 선언이 중복되는 경우, Charge Negotiation을 한 TPA들은 그 결정 결과를 다른 TPA에 전달할 필요가 없다. 선언을 하지 않은 TPA 는 그 eTP에 대한 분류 작업을 하지 않고, 그 결과만 eTPB_Broadcast를 통해서 전달받으면 되기 때문이다.혹여, 아직 그 분류 결과를 전달받지 못한 시점에 해당 eTP와 변수 중복이 있는 eTP를 전달받은 경우, 해당 TPA는 그 eTP에 대해서 담당 선언을 했던 모든 TPA에게 그 eTP를 eTP_Toss를 통해 전달하면 된다. dTPA의 데이터 구조는 다음과 같다.If the declaration of responsibility for a specific eTP is duplicated, the TPAs that have made the Charge Negotiation do not need to transmit the decision result to another TPA. This is because the TPA that has not declared the eTP does not classify the eTP and only needs to receive the result through eTPB_Broadcast. In any case, when the classification result is not yet delivered, the eTP and the eTP with overlapping variables are transmitted. If received, the TPA can deliver the eTP to all TPAs that have declared responsibility for the eTP through eTP_Toss. The data structure of dTPA is as follows.

종류Kinds 데이터구조data structure eTP_ChargeeTP_Charge eTP(ETP), TPA_Id(int32)eTP(ETP), TPA_Id(int32) Charge_NegotiateCharge_Negotiate 예) TPA_Id(int32), related_tx_count(int32), releated_forest_count(int32)Ex) TPA_Id(int32), related_tx_count(int32), released_forest_count(int32) eTPBs_BroadcasteTPBs_Broadcast eTPBs 전체, 또는 변경된 eTPBs 이력인 ΔeTPBs에 포함된 eTP의 ID ID of all eTPBs or eTPs included in the history of altered eTPBs, ΔeTPBs RWKS_BroadcastRWKS_Broadcast eTPBs 전체, 또는 변경된 eTPBs 이력인 ΔeTPBs에 포함된
eTPBS의 Ledger Key RWKS 및 Partial Key RWKS
All eTPBs, or included in the history of altered eTPBs, ΔeTPBs
Ledger Key RWKS and Partial Key RWKS of eTPBS
eTP_TosseTP_Toss eTP 전체eTP All eTPB_Exchange_
Negotiation
eTPB_Exchange_
Negotiation
예) eTPB_IDs([]int32), eTPB_IDs([]int32), bool
(

Figure 112021055246616-pat00001
주고자 하는 eTPB의 ID, 받고자 하는 eTPB의 ID, 승낙 여부)ex) eTPB_IDs([]int32), eTPB_IDs([]int32), bool
(
Figure 112021055246616-pat00001
ID of eTPB you want to give, ID of eTPB you want to receive, whether or not you agree) eTPB_ExchangeeTPB_Exchange []eTPB[]eTPB

분산처리 가능한 캐쉬 포함 트랜잭션 실행기에 대한 내용을 다음과 같다.The contents of the transaction executor with cache that can be distributed are as follows.

본 발명은 TPA를 통해서 분산 컴퓨팅을 위해 계획 및 분류된 Tx batch 정보를 효율적으로 실행하기 위한 트랜잭션 실행기 구조를 제시한다. 동시에, 원장으로부터 값을 참조하는 과정에서 발생하는 I/O delay를 효과적으로 줄임으로서 실행 속도를 향상시키는 트랜잭션 실행기 구조를 제시한다.The present invention proposes a transaction executor structure for efficiently executing planned and classified Tx batch information for distributed computing through TPA. At the same time, we propose a transaction executor structure that improves execution speed by effectively reducing the I/O delay that occurs in the process of referencing values from the ledger.

먼저, 이를 위한 용어를 정리하면 다음과 같다.First, the terminology for this is summarized as follows.

블록 생성 주기: 한 개의 블록에 들어가는 모든 트랜잭션을 실행하는 시간을 의미한다.Block generation cycle: It means the time to execute all transactions in one block.

Global Cache: 한 블록 생성 주기 내에서 실행된 모든 트랜잭션 프로포절이 참조 및 변경한 값을 보관하는 Cache 메모리를 의미한다.Global Cache: It refers to the cache memory that stores the referenced and changed values of all transaction proposals executed within one block generation cycle.

Read Entry: 트랜잭션 프로포절이 읽어들인 키와 값의 정보로서, Read Set이 보관하는 정보의 형태이다. 키, 값, 그 값의 참조 위치(그 값의 블록 번호 및 그 블록 내 Tx 번호)를 포함한다.Read Entry: This is the key and value information read by the transaction proposal, and it is the type of information stored by the Read Set. Contains the key, the value, and the reference position of that value (the block number of that value and the Tx number within that block).

Write Entry: Tx가 기록 및 변경한 키와 값의 정보로서, Write Set이 보관하는 정보의 형태이다. 키, 값, 그 값의 삭제 여부를 포함한다.Write Entry: This is the key and value information written and changed by Tx, and it is the type of information stored by the Write Set. Includes keys, values, and whether to delete them.

본 발명에서 제안하는 트랜잭션 실행기는 다음과 같은 특징을 지닌다. The transaction executor proposed in the present invention has the following characteristics.

Global Cache는 한 블록 생성 주기내에서 유효하다. Local Cached R/W Set은 한 트랜잭션 프로포절의 실행 중에 유효하다. 트랜잭션 프로포절이 값을 참조할 때, Local Cached R/W Set -> Global Cache -> 원장 순으로 참조한다. 트랜잭션 프로포절이 값을 기록 및 변경할 때, Local Cached R/W Set에만 기록하고 Global Cache에는 반영하지 않는다. 트랜잭션 프로포절의 실행이 정상적으로 완료된 경우에만 그 트랜잭션 프로포절의 기록 및 변경사항(즉, Local Cached R/W Set)을 Global Cache에 반영한다. 트랜잭션 프로포절은 Batch에서 지정된 순서로 순차 실행하고, 그 결과(R/W Set)도 순차적으로 기록한다.Global Cache is valid within one block generation cycle. A Local Cached R/W Set is valid during the execution of one transaction proposal. When a transaction proposal refers to a value, it is referred to in the order of Local Cached R/W Set -> Global Cache -> Ledger. When a transaction proposal records or changes a value, it is recorded only in the Local Cached R/W Set and is not reflected in the Global Cache. Only when the execution of the transaction proposal is normally completed, records and changes (ie, Local Cached R/W Set) of the transaction proposal are reflected in the Global Cache. Transaction proposals are executed sequentially in the order specified in the batch, and the result (R/W set) is also recorded sequentially.

트랜잭션 실행기는 크게 2가지의 새로운 데이터 구조를 갖는다.The transaction executor has two new data structures.

Global Cache는 한 블록 생성 주기 내에 실행되는 모든 Tx의 Read/Write 값을 일시적으로 보관하는 Cache이다.Global Cache is a cache that temporarily stores the read/write values of all Tx executed within one block generation cycle.

Local Cached R/W Set은 한개의 Tx를 실행하는 동안의 Read/Write 값을 일시적으로 보관하는 Cache이다.Local Cached R/W Set is a cache that temporarily stores Read/Write values while executing one Tx.

Global Cache 및 Local Cached R/W Set은 Key를 기준으로 Read Set에는 Read Entry, Write Set에는 Write Entry를 보관한다.Global Cache and Local Cached R/W Set store Read Entry in Read Set and Write Entry in Write Set based on Key.

Global Cache 및 Local Cached R/W Set의 Read entry는 다음과 같은 정보로 구성된다.The Read entry of Global Cache and Local Cached R/W Set consists of the following information.

종류Kinds 내용Contents Key (string)Key (string) 원장상의 값의 키, type은 블록체인 구조에 따라 변경될 수 있음The key and type of the value on the ledger can be changed according to the block chain structure Value (string)Value (string) 원장상의 값, type은 블록체인의 구조에 따라 변경될 수 있음.Values and types on the ledger can be changed depending on the structure of the block chain. Version (int, int)Version(int, int) 해당 값이 기록되어있던 원장상의 위치.
첫번째 값은 블록 번호, 두번째 값은 해당 블록 내의 Tx 번호이다.
의논하는 내용에 따라, 블록 번호만 가질 수 도 있다.
The location on the ledger where the value was recorded.
The first value is the block number, and the second value is the Tx number within the block.
Depending on what is being discussed, it may have only a block number.

Global Cache 및 Local Cached R/W Set의 Write entry는 다음과 같은 정보로 구성된다.Write entry of Global Cache and Local Cached R/W Set consists of the following information.

종류Kinds 내용Contents Key (string)Key (string) 원장상의 값의 키, type은 블록체인 구조에 따라 변경될 수 있음The key and type of the value on the ledger can be changed according to the block chain structure Value (string)Value (string) 원장상의 값, type은 블록체인의 구조에 따라 변경될 수 있음.Values and types on the ledger can be changed depending on the structure of the block chain. Is_Deleted(bool)Is_Deleted(bool) 해당 값의 삭제 여부.
해당 트랜잭션(Local Cached R/W Set) 또는 블록 생성 주기(Global Cache)에 해당 값에 대한 삭제가 있었는지를 표현한다.
Whether to delete the value.
It expresses whether the corresponding value has been deleted in the corresponding transaction (Local Cached R/W Set) or block generation cycle (Global Cache).

트랜잭션 실행기는 한 개의 Tx 단위가 아니라 Tx batch 단위로 트랜잭션을 실행하고 그 결과를 반환한다.The transaction executor executes a transaction in Tx batch units instead of one Tx unit and returns the result.

1. 트랜잭션 실행기가 트랜잭션 요청의 batch인 batchP를 수령한다.1. The transaction executor receives batch P , a batch of transaction requests.

2. 빈 트랜잭션 실행 결과의 batch인 batchQ를 생성한다.2. Create batch Q , which is a batch of empty transaction execution results.

3. 빈 Global Cache인 CacheG를 생성한다.3. Create an empty Global Cache, Cache G.

4. 블록 생성 주기가 시작되면 수령한 Batch를 실행한다.4. When the block generation cycle starts, the received batch is executed.

5. Batch내에 남은 TxPropA가 없으면 다음 단계로 진행한다.5. If there is no remaining TxProp A in the batch, proceed to the next step.

6. 빈 TxPropA의 Local Cached R/W Set인 CacheL을 생성한다. 6. Create Cache L , which is a Local Cached R/W Set of empty TxProp A.

7. TxPropA를 실행한다.7. Execute TxProp A.

8. TxPropA가 정상적으로 실행되었으면 TxPropA의 Local Cached R/W Set의 Write Set을 Global Cache의 Write Set에 overwrite한다.8. If TxProp A is executed normally, overwrite the Write Set of the Local Cached R/W Set of TxProp A to the Write Set of the Global Cache.

9. TxPropA와 CacheL을 batchQ에 추가한다.9. Add TxProp A and Cache L to batch Q.

10. Batch의 모든 트랜잭션 요청 실행이 끝나면, batchQ를 실행 결과로서 Committing Node에 전송한다.10. When all transaction requests in Batch are executed, batch Q is sent to the Committing Node as the execution result.

Global Cache인 CacheG의 및 Local Cached R/W Set CacheL은 다음과 같은 상황에서 변경된다.Global Cache, Cache G , and Local Cached R/W Set Cache L are changed in the following situations.

A. 임의의 Tx를 실행할 때, 키 X의 값을 참조하는 경우 A. When executing arbitrary Tx, referencing the value of key X

먼저, Local Cached R/W Set(CacheL)에서 키 X를 참조하여, 있으면 해당 값을 반환한다.First, the key X is referenced in Local Cached R/W Set(Cache L ), and if there is, the corresponding value is returned.

CacheL에 없는 경우, Global Cache(CacheG)를 참조하여, 있으면 해당 값을 반환하고, 그 Read Entry를 CacheL에 추가한다.If it is not in Cache L , it refers to the Global Cache (Cache G ), returns the corresponding value if it exists, and adds the Read Entry to Cache L.

CacheG에도 없는 경우, 원장을 참조하고, 해당 값을 반환하고, 그 Read Entry를 CacheG와 CacheL에 추가한다.If it is not in Cache G , it refers to the ledger, returns the corresponding value, and adds the Read Entry to Cache G and Cache L.

B. 임의의 Tx를 실행할 때, 키 X의 값을 추가·변경·삭제하는 경우, Local Cached R/W Set(CacheL)에만 반영한다.B. When executing arbitrary Tx, if key X value is added, changed, or deleted, it is reflected only in Local Cached R/W Set (Cache L ).

C. 임의의 Tx의 실행이 정상적으로 완료(위 알고리즘의 4.4)한 경우, 즉 해당 Tx이 추가·변경·삭제한 값을 반영하는 경우, CacheL의 write set 내용을 Global Cache(CacheG)에 반영한다.C. When the execution of a random Tx is normally completed (4.4 of the algorithm above), that is, when the value added, changed, or deleted by the corresponding Tx is reflected, the write set contents of Cache L are reflected in the Global Cache (Cache G ) do.

위와 같이 실행함으로서, 한 블록 생성 주기내에 하나의 키의 값을 여러 번 참조·변경하는 Tx를 실행하더라도 단일 블록 키 충돌 문제없이 블록을 생성할 수 있다.By executing as above, it is possible to create a block without a single block key collision problem even if Tx that references/changes the value of one key multiple times within one block generation cycle is executed.

Prefetching by Read/Write Key SetPrefetching by Read/Write Key Set

위에서 제안한 Global Cache 및 Local Cached R/W Set 구조를 도입함으로서 단일 블록 키 충돌 문제를 해결할 수 있다. 이에 더하여 Tx Proposal Batch가 제공하는 RWKS 정보를 활용한 I/O delay 감소에 의한 실행 성능을 향상시킬 수 있다.By introducing the Global Cache and Local Cached R/W Set structures proposed above, the single block key collision problem can be solved. In addition, execution performance can be improved by reducing I/O delay using RWKS information provided by Tx Proposal Batch.

RWKS는 그 RWKS를 포함하는 Tx Proposal batch의 모든 Tx를 실행할 때에 참조 또는 변경하는 값의 키를 망라하고 있다.RWKS contains the key of the value referenced or changed when executing all Tx of the Tx Proposal batch including the RWKS.

즉, RWKS의 Read Key Set에 들어있는 모든 Key를 미리 Global Cache에 올려놓으면, Tx 실행중에 발생하는 참조가 원장에서 읽어오는 것을 대기하면서 발생하는 I/O Delay를 효과적으로 제거할 수 있다.That is, if all the keys in the Read Key Set of RWKS are put in the Global Cache in advance, I/O Delay that occurs while waiting for references to be read from the ledger during Tx execution can be effectively removed.

Prefetching은 기존의 Tx 실행 thread와 독립적인 thread로 실행함으로서 충분히 효율적으로 구현할 수 있다.Prefetching can be implemented efficiently enough by executing it as a thread independent of the existing Tx execution thread.

요구되는 Read Key의 순서 또한 미리 알 수 있기 때문에 그 순서대로 Prefetching을 할 수 도 있지만, if-then-else와 같은 분기 등으로 인해 참조 순서가 항상 일정하지는 않다. 이를 해결하기 위해서 Prioritized Queue를 활용하는 방식을 도입할 수 있다.Prefetching can be performed in that order because the order of the required Read Key is also known in advance, but the reference order is not always constant due to branches such as if-then-else. To solve this problem, a method using a Prioritized Queue can be introduced.

본 발명에서 소개한 executor의 구조는 모든 Tx를 순차처리하는 것을 전제로 설명하고 있다. 하지만, 본 executor에서도 병행처리가 가능하다. 예를 들어, Tree 단위의 병행 처리 또는 Tx 의존성 그래프에 의한 순서에 의한 병렬 처리가 가능하다.The structure of the executor introduced in the present invention is described on the premise that all Tx are sequentially processed. However, parallel processing is also possible in this executor. For example, parallel processing in a tree unit or parallel processing by an order by a Tx dependency graph is possible.

트랜잭션 실행기가 수령하는 Tx batch는 Tx Forest, 즉 키 상호 독립적인 Tx Tree의 집합이다. 즉, Tx Tree 단위로 executor thread를 만들어서 병행 실행하는 것은 쉽게 가능하다. 이 때에 I/O load는 모든 thread(Tx Tree)가 공유하는 자원이기 때문에, TPA의 각 Node에 대한 Tx batch의 Key load 계산방식은 거의 동일하다.The Tx batch received by the transaction executor is a Tx Forest, that is, a set of Tx Trees independent of each other. In other words, it is easy to create an executor thread in units of Tx Tree and execute them concurrently. At this time, since I/O load is a resource shared by all threads (Tx Tree), the key load calculation method of Tx batch for each node of TPA is almost the same.

하지만 Tx batch의 Tx Execution Load의 계산 방식은 달라질 수 있다. 만일 memory I/O resource 경합을 무시할 수 있다면, Tx Execution Load는 Tx batch내의 모든 Tx Tree의 Tx Execution load의 합이 아닌 max값을 구해야 한다.However, the calculation method of Tx Execution Load of Tx batch may be different. If the memory I/O resource contention can be ignored, the Tx Execution Load should obtain the max value, not the sum of the Tx Execution loads of all Tx Trees in the Tx batch.

이하, 본 발명에 따른 공통 키셋정보를 이용한 트랜잭션 분산처리를 위한 블록체인 시스템 및 수행방법을 상세히 설명한다.Hereinafter, a block chain system and execution method for transaction distributed processing using common keyset information according to the present invention will be described in detail.

도 1은 본 발명에 따른 공통 키셋정보를 이용한 트랜잭션 분산처리를 위한 블록체인 시스템(이하, 블록체인 시스템이라 칭함)을 설명하기 위한 일 실시예의 구성 블록도이다.1 is a block diagram of an embodiment for explaining a blockchain system (hereinafter referred to as a blockchain system) for distributed processing of transactions using common keyset information according to the present invention.

도 1을 참조하면, 블록체인 시스템(100)은 트랜잭션 패커(Transaction Packer: 110), 트랜잭션 에그리게이터(Transaction Aggregator: 120) 및 실행 노드 그룹(130)을 포함한다.Referring to FIG. 1 , the blockchain system 100 includes a transaction packer 110 , a transaction aggregator 120 , and an execution node group 130 .

트랜잭션 패커(110)는 사용자의 트랜잭션 요청(IN)에 따른 트랜잭션 정보를 나타내는 트랜잭션 프로포절(Tx Proposal)을 생성하고, 상기 생성된 트랜잭션 프로포절에 상기 트랜잭션 요청에 대응하는 키(key) 정보를 추가하여, 트랜잭션 에그리게이터(Transaction Aggregator: 120)로 전달한다. The transaction packer 110 generates a transaction proposal (Tx Proposal) indicating transaction information according to the user's transaction request (IN), and adds key information corresponding to the transaction request to the generated transaction proposal, It is passed to the Transaction Aggregator (120).

트랜잭션 프로포절은 사용자의 트랜잭션 요청에 대응하는 트랜잭션 정보를 포함하는 것으로, 트랜잭션 에그리게이터(120)에서 사용될 수 있는 트랜잭션의 데이터 형식을 나타낸다.The transaction proposal includes transaction information corresponding to a user's transaction request, and indicates a data format of a transaction that can be used in the transaction aggregator 120 .

키(key) 정보는 전술한 용어 정리에서 Ledger Key를 의미한다. 또한, 키(key) 정보는 배열이나 복합키를 포함하는 미확정 형태의 부분 키 정보를 포함할 수 있다. 이는 전술한 용어 정리에서, Partial Ledger Key를 의미한다.Key information means a Ledger Key in the above-mentioned term summary. In addition, the key information may include partial key information in an unconfirmed form including an array or a composite key. This means Partial Ledger Key in the above-mentioned glossary of terms.

다양한 케이스에서 참조 및 변경하는 Ledger Key는 그 Tx를 실행하는 시점에 결정되거나, Tx를 실행해보기 전에 전부 파악하는 것이 어려운 경우가 있다. Partial Ledger Key는 다음과 같은 상황에서 활용한다.In various cases, the Ledger Key to be referenced and changed is determined at the time the Tx is executed, or it is sometimes difficult to figure out all of them before executing the Tx. Partial Ledger Key is used in the following situations.

해당 Tx에서 참조 변경하는 Ledger Key의 부분집합이 어떠한 특징을 공유하는 경우이다. 배열인 경우(배열 abc 의 모든 또는 일부의 값에 접근하는 경우), 선두 문자열이 동일한 경우, 후미 문자열이 동일한 경우, 일부 문자열을 포함하는 경우 등이 있을 수 있다. 또한, 해당 Tx에서 참조 및 변경하는 Ledger Key가 실행 도중에 생성 또는 취득되며, 그 특징을 사전에 알고 있는 경우이다.This is a case in which a subset of Ledger Keys that are referenced and changed in the corresponding Tx share certain characteristics. In the case of an array (accessing all or part of the values of the array abc ), when the leading string is the same, when the trailing string is the same, or when including some strings, etc. In addition, the Ledger Key referenced and changed in the corresponding Tx is generated or acquired during execution, and its characteristics are known in advance.

배열은 선두 문자열의 경우와 동일하게 취급 가능하고, 후미 문자열도 문자열을 반전시키면 동일하게 사용 가능하고, 일부 문자열 일치 방식 또한 데이터 구조 및 알고리즘을 적절하게 수정하면 사용 가능하다. 단, 후미 문자열 일치 및 일부 문자열 일치를 추가하는 경우에는 Dictionary Layer를 하나씩 더 추가하면 된다. 설명을 위해서, 선두 문자열이 동일한 경우에 대해서 다룬다.Array can be treated the same as in the case of the leading character string, and the trailing character string can be used in the same way if the character string is inverted, and some string matching methods can also be used if the data structure and algorithm are appropriately modified. However, when adding trailing string matching and partial string matching, you need to add one more dictionary layer. For the sake of explanation, the case where the leading character strings are the same is dealt with.

R/W Key Set (RWKS)을 Ledger Key에 대해서 뿐만이 아니라 Partial Ledger Key와 Ledger Key 두가지를 위해서 준비한다. 이를 테면, Partial Ledger Key 및 Ledger Key를 보관하는 Dictionary의 데이터 구조로서 Trie를 사용할 수 있다. 어떤 Smart Contract의 Tx에서 주로 “APPLESEED”, “APPLEJUICE”와 같이 “APPLE”로 시작하는 문자열에 접근하는 것을 알 수 있는 경우, 이 Tx의 Partial Key는 “APPLE*”으로 표현된다. Prepare R/W Key Set (RWKS) not only for Ledger Key but also Partial Ledger Key and Ledger Key. For example, you can use Trie as a data structure of a Dictionary that stores Partial Ledger Keys and Ledger Keys. If it can be seen that the Tx of a certain Smart Contract mainly accesses a string starting with “APPLE” such as “APPLESEED” and “APPLEJUICE”, the Partial Key of this Tx is expressed as “APPLE*”.

이렇게, Partial Ledger Key가 주어지는 경우, 새로 주어진 Tx A의 Partial Ledger Key RWKS의 모든 Partial Ledger Key K를 가지고, 모든Tx Tree B1~Bk의 Partial Ledger Key에 대한 RWKS에서 K을 검색한다. 이러한 알고리즘과 동일한 내용을 Partial Ledger Key K와 Partial Ledger Key의 RWKS에 대해서 수행한다.In this way, when a Partial Ledger Key is given, with all the Partial Ledger Keys K of the newly given Partial Ledger Key RWKS of Tx A, K is retrieved from the RWKS for the Partial Ledger Keys of all Tx Tree B 1 ~ B k. The same contents as these algorithms are performed for Partial Ledger Key K and RWKS of Partial Ledger Key.

Partial Ledger Key K를 발견하지 못한 경우, 위의 알고리즘을 그대로 실행함으로서, Partial Ledger Key를 포함하는 Tx에 대해서도 위의 알고리즘을 통해 Tx를 분류할 수 있다.If the Partial Ledger Key K is not found, by executing the above algorithm as it is, Tx including the Partial Ledger Key can also be classified as Tx through the above algorithm.

한편,위의 Partial Key Tx Aggregation으로도 분류가 어려운 Tx가 존재한다. 해당 Tx에서 참조 및 변경하는 Ledger Key가 실행 도중에 생성 또는 취득되며, 그 특징을 사전에 알 수 없는 경우이다. Random하게 정해지는 Ledger Key의 경우, 원장상의 값을 Ledger Key로 삼는 경우 등이다. 이와 같은 경우에는, Uncertain Key를 포함하는 Tx를 하나의 Tx Tree로 분류하고, 분류된 Uncertain Key Tx Tree의 크기가 큰 경우, 적절한 크기까지만 채택하고, 나머지는 보류한다. 위의 알고리즘으로 분류된 모든 eTPBs에 Uncertain Key Tx Tree를 추가한다. On the other hand, there are Tx that are difficult to classify even with the above Partial Key Tx Aggregation. This is a case where the Ledger Key referenced and changed in the relevant Tx is generated or acquired during execution, and its characteristics cannot be known in advance. In the case of a Ledger Key that is determined randomly, it is a case where the value on the ledger is used as the Ledger Key. In such a case, Tx including the Uncertain Key is classified as one Tx Tree, and if the size of the classified Uncertain Key Tx Tree is large, only an appropriate size is adopted, and the rest is reserved. Add Uncertain Key Tx Tree to all eTPBs classified by the above algorithm.

트랜잭션 실행기에서 이 Uncertain Key Tx Tree를 가장 먼저 실행한 다음에 그 실행 결과(Cache)상에서 나머지 Tx Tree를 실행하면 Uncertain Key로 인해 분류하지 못한 Tx들에 대해서도 Tx Tree간 R/W Set의 충돌 없이 병렬 처리하는 것이 가능하다. 이를테면, 해당 Smart Contract에 대한 argument로 주어진 값이 선두 문자열로 활용되는 경우에는, 그 값 “XYZ”를 사용해서 “XYZ*”와 같이 생성한다. 여기서 ‘*’ 문자는 일반 문자가 아닌 특수 문자로 생각한다. If the transaction executor executes this Uncertain Key Tx Tree first and then executes the rest of the Tx Tree on the execution result (Cache), even for Tx that cannot be classified due to the Uncertain Key, there is no conflict of R/W Set between Tx Trees. It is possible to process For example, if the value given as an argument to the Smart Contract is used as the leading string, the value “XYZ” is used to create something like “XYZ*”. Here, the ‘*’ character is considered a special character, not a regular character.

트랜잭션 패커(110)는 사용자의 트랜잭션 요청을 Tx Proposal으로 변환하고, 부가 정보를 추가하여 eTP(encapsulated Tx Proposal)를 생성하고, 생성된 eTP를 트랜잭션 에그리게이터(120)에 전달한다. 여기서, eTP는 기존의 Tx Proposal에 트랜잭션 에그리게이터(120)에 전달하기 위해 부가정보(R/W Key Set Description 정보)가 추가된 Tx Proposal이다.The transaction packer 110 converts a user's transaction request into a Tx proposal, adds additional information to generate an encapsulated Tx proposal (eTP), and transmits the generated eTP to the transaction aggregator 120 . Here, the eTP is a Tx Proposal in which additional information (R/W Key Set Description information) is added to be transmitted to the transaction aggregator 120 to the existing Tx Proposal.

도 2는 사용자의 요청에 따른 트랜잭션들(Tx 1 ~ Tx 11)을 예시하는 참조도이다. 도 2를 참조하면, 트랜잭션들(Tx 1 ~ Tx 11)에서 A, B, C, D, E, F, G, H는 금전 거래에 있어서 송금자와 수금자를 예시하는 것일 수 있다. 예를 들어, Tx 1: A -> C는 A라는 사람이 C라는 사람에게 일정 금액을 송금하는 트랜잭션을 예시하는 것일 수 있다.2 is a reference diagram illustrating transactions (Tx 1 to Tx 11) according to a user's request. Referring to FIG. 2 , A, B, C, D, E, F, G, and H in transactions Tx 1 to Tx 11 may illustrate a sender and a receiver in a money transaction. For example, Tx 1: A -> C may be an example of a transaction in which person A remits a certain amount to person C.

트랜잭션 패커(110)는 사용자들의 트랜잭션 요청에 따라, 트랜잭션들(Tx 1 ~ Tx 11)에 대응하는 트랜잭션 프로포절을 각각 생성한다. 여기서, 트랜잭션 프로포절은 요청된 트랜잭션들(Tx 1 ~ Tx 11)에 대응하는 송금자와 수금자, 송금되는 방향 및 금액 등을 포함하는 트랜잭션의 데이터 형식으로서, 도 2에서 A -> C, A -> D, A -> E, B -> F, B -> G, B -> H, A -> B, C -> D, E -> F, D -> H, G -> H로 이미지화하여 표시하였다.The transaction packer 110 generates transaction proposals corresponding to the transactions Tx 1 to Tx 11, respectively, according to the transaction request of the users. Here, the transaction proposal is a data format of a transaction including the sender and the receiver corresponding to the requested transactions (Tx 1 to Tx 11), the direction and amount of the remittance, etc. In FIG. 2, A -> C, A - > D, A -> E, B -> F, B -> G, B -> H, A -> B, C -> D, E -> F, D -> H, G -> H indicated.

트랜잭션 패커(110)는 생성된 트랜잭션 프로포절에 트랜잭션 요청에 대응하는 키(key)정보를 추가한다. 여기서, 키 정보는 Ledger Key를 의미하는 것으로, 예를 들어, 도 2의 트랜잭션들(Tx 1 ~ Tx 11)을 구성하는 A, B, C, D, E, F, G, H를 의미한다.The transaction packer 110 adds key information corresponding to the transaction request to the generated transaction proposal. Here, the key information refers to a ledger key, for example, A, B, C, D, E, F, G, H constituting the transactions (Tx 1 to Tx 11) of FIG. 2 .

예를 들어, 트랜잭션 패커(110)는 생성된 트랜잭션 프로포절 A -> C에 대응하는 키정보 A 및 C를 추가한 eTP(encapsulated Tx Proposal)를 생성하고, 생성된 eTP를 트랜잭션 에그리게이터(120)에 전달한다. 또한, 트랜잭션 패커(110)는 생성된 트랜잭션 프로포절 A -> D에 대응하는 키정보 A 및 D를 추가한 eTP(encapsulated Tx Proposal)를 생성하고, 생성된 eTP를 트랜잭션 에그리게이터(120)에 전달한다. 이와 같이, 트랜잭션 패커(110)는 일정 시간동안 요청된 트랜잭션에 대해, 순차적으로 트랜잭션들(Tx 1 ~ Tx 11)에 대한 각각의 eTP들을 생성하여 트랜잭션 에그리게이터(120)에 전달한다.For example, the transaction packer 110 generates an encapsulated Tx Proposal (eTP) by adding key information A and C corresponding to the generated transaction proposal A -> C, and uses the generated eTP with the transaction aggregator 120 . forward to In addition, the transaction packer 110 generates an encapsulated Tx Proposal (eTP) to which key information A and D corresponding to the generated transaction proposal A -> D is added, and delivers the generated eTP to the transaction aggregator 120 . do. As described above, the transaction packer 110 sequentially generates eTPs for the transactions Tx 1 to Tx 11 for a transaction requested for a predetermined time and transmits the eTPs to the transaction aggregator 120 .

트랜잭션 에그리게이터(120)는 트랜잭션 패커(110)에서 전달받은 상기 트랜잭션 프로포절(eTP)에 포함된 상기 키 정보에 따라 상기 트랜잭션 프로포절에 대응하는 공통 키셋 정보 및 공통 트랜잭션 배치(Transaction batch) 정보를 생성하고, 상기 생성된 트랜잭션 배치정보 별로 구분하여 미리 지정된 실행노드 그룹으로 전송(OUT)한다.The transaction aggregator 120 generates common keyset information and common transaction batch information corresponding to the transaction proposal according to the key information included in the transaction proposal (eTP) received from the transaction packer 110 . Then, the generated transaction arrangement information is divided for each type and transmitted (OUT) to a pre-designated execution node group.

공통 키셋 정보는 복수의 트랜잭션 프로포절들에 포함되는 키 정보들 중 동일한 키를 갖는 것들에 대한 키 집합을 나타낸다. 여기서, 공통 키셋 정보는 전술한 용어 정리에서 R/W Key Set(RWKS)정보를 의미한다. The common keyset information indicates a key set for those having the same key among key information included in a plurality of transaction proposals. Here, the common key set information means R/W Key Set (RWKS) information in the above-described terminology.

트랜잭션 배치정보는, 상기 공통 키셋 정보에 포함된 키 정보들에 각각 대응하는 트랜잭션 프로포절들의 집합을 나타낸다. 여기서, 트랜잭션 배치정보는 전술한 용어 정리에서 eTPB를 의미하며, eTPB내의 순서는 eTPID(TxID)에 의해 정의된다.The transaction arrangement information indicates a set of transaction proposals respectively corresponding to key information included in the common keyset information. Here, the transaction arrangement information refers to the eTPB in the above term summary, and the order in the eTPB is defined by the eTPID (TxID).

도 3은 트랜잭션 에그리게이터(120)에서 수행되는 공통 키셋 정보 및 공통 트랜잭션 배치(Transaction batch) 정보를 생성하는 과정을 설명하기 위한 일 예의 참조도이다.FIG. 3 is a reference diagram for explaining a process of generating common keyset information and common transaction batch information performed in the transaction aggregator 120 .

도 3의 (a)는 트랜잭션 패커(110)에서 전달받은 트랜잭션 프로포절(eTP): A -> C를 나타낸다. 도 3의 (a)에는 표시되지 않았지만, 트랜잭션 프로포절(eTP)인 A -> C에는 키 정보에 해당하는 A 및 C의 정보가 포함되어 있다. 3A illustrates a transaction proposal (eTP): A -> C received from the transaction packer 110 . Although not shown in (a) of FIG. 3 , the transaction proposal (eTP) A -> C includes information on A and C corresponding to key information.

도 3의 (b)는 트랜잭션 프로포절(eTP): A -> C에 포함된 키 정보 A 및 C를 이용해 트랜잭션 프로포절(eTP)에 대한 제1 공통 키셋정보인 A 및 C를 생성하였음을 나타내는 참조도이다. 또한, 도 3의 (c)는 공통 키셋 정보인 A 및 C에 대응하는 제1 공통 트랜잭션 배치정보인 A -> C를 예시하는 참조도이다. 도 3의 (b) 및 (c)를 참조하면, 트랜잭션 프로포절(eTP): A -> C에 대응하는 제1 공통 키셋 정보(A, C) 및 제1 공통 트랜잭션 배치정보(A -> C)가 각각 트랜잭션 에그리게이터(120)에 의해 생성됨을 확인할 수 있다.3 (b) is a reference diagram showing that the first common keyset information A and C for the transaction proposal (eTP) were generated using key information A and C included in the transaction proposal (eTP): A -> C to be. Also, FIG. 3C is a reference diagram illustrating the first common transaction arrangement information A -> C corresponding to the common keyset information A and C. Referring to (b) and (c) of FIG. 3 , transaction proposal (eTP): first common keyset information (A, C) corresponding to A -> C and first common transaction arrangement information (A -> C) It can be seen that each is generated by the transaction aggregator 120 .

도 4는 트랜잭션 에그리게이터(120)에서 수행되는 공통 키셋 정보 및 공통 트랜잭션 배치정보를 생성하는 과정을 설명하기 위한 다른 예의 참조도이다.4 is a reference diagram of another example for explaining a process of generating common keyset information and common transaction arrangement information performed in the transaction aggregator 120 .

도 4의 (a)는 트랜잭션 패커(110)에서 전달받은 트랜잭션 프로포절(eTP): A -> D를 나타낸다. 도 4의 (a)에는 표시되지 않았지만, 트랜잭션 프로포절(eTP)인 A -> D에는 키 정보에 해당하는 A 및 D의 정보가 포함되어 있다. 4A illustrates a transaction proposal (eTP) received from the transaction packer 110: A -> D. Although not shown in (a) of FIG. 4 , A -> D, which is a transaction proposal (eTP), includes information of A and D corresponding to key information.

도 4의 (b)는 트랜잭션 프로포절(eTP): A -> D에 포함된 키 정보 A 및 D를 이용해 트랜잭션 프로포절(eTP)에 대한 제1 공통 키셋정보인 A, C 및 D를 생성하였음을 나타내는 참조도이다. 제1 공통 키셋 정보는 트랜잭션 프로포절(eTP): A -> C와 A -> D에 공통인 키 정보 집합에 해당하는 A, C 및 D를 나타낸다. 또한, 도 4의 (c)는 제1 공통 키셋 정보인 A, C 및 D에 대응하는 제1 공통 트랜잭션 배치정보인 A -> C, A -> D를 예시하는 참조도이다. 도 4의 (b) 및 (c)를 참조하면, 트랜잭션 프로포절(eTP): A -> C, A -> D 각각에 대응하는 제1 공통 키셋 정보(A, C, D) 및 제1 공통 트랜잭션 배치정보(A -> C, A -> D)가 각각 트랜잭션 에그리게이터(120)에 의해 생성됨을 확인할 수 있다.Figure 4 (b) shows that the first common keyset information A, C, and D for the transaction proposal (eTP) was generated using key information A and D included in the transaction proposal (eTP): A -> D It is a reference diagram. The first common keyset information indicates A, C, and D corresponding to a set of key information common to transaction proposal (eTP): A -> C and A -> D. Also, FIG. 4C is a reference diagram illustrating first common transaction arrangement information A -> C, A -> D corresponding to first common keyset information A, C, and D. Referring to (b) and (c) of FIG. 4 , transaction proposal (eTP): first common keyset information (A, C, D) and first common transaction corresponding to each of A -> C, A -> D It can be seen that the batch information (A -> C, A -> D) is respectively generated by the transaction aggregator 120 .

도 5는 트랜잭션 에그리게이터(120)에서 수행되는 공통 키셋 정보 및 공통 트랜잭션 배치정보를 생성하는 과정을 설명하기 위한 또다른 예의 참조도이다.5 is a reference diagram of another example for explaining a process of generating common keyset information and common transaction arrangement information performed in the transaction aggregator 120 .

도 5의 (a)는 트랜잭션 패커(110)에서 전달받은 트랜잭션 프로포절(eTP): A -> E를 나타낸다. 도 5의 (a)에는 표시되지 않았지만, 트랜잭션 프로포절(eTP)인 A -> E에는 키 정보에 해당하는 A 및 E의 정보가 포함되어 있다. 5A illustrates a transaction proposal (eTP): A -> E received from the transaction packer 110 . Although not shown in (a) of FIG. 5 , A -> E, which is a transaction proposal (eTP), includes information on A and E corresponding to key information.

도 5의 (b)는 트랜잭션 프로포절(eTP): A -> E에 포함된 키 정보 A 및 E를 이용해 트랜잭션 프로포절(eTP)에 대한 제1 공통 키셋정보인 A, C, D 및 E를 생성하였음을 나타내는 참조도이다. 제1 공통 키셋 정보는 트랜잭션 프로포절(eTP): A -> C, A -> D 및 A -> E에 공통인 키 정보 집합에 해당하는 A, C, D 및 E를 나타낸다. 또한, 도 5의 (c)는 제1 공통 키셋 정보인 A, C, D 및 E에 대응하는 제1 공통 트랜잭션 배치정보인 A -> C, A -> D, A -> E를 예시하는 참조도이다. 도 5의 (b) 및 (c)를 참조하면, 트랜잭션 프로포절(eTP): A -> C, A -> D 및 A -> E 각각에 대응하는 제1 공통 키셋 정보(A, C, D, E) 및 제1 공통 트랜잭션 배치정보(A -> C, A -> D, 및 A -> E)가 각각 트랜잭션 에그리게이터(120)에 의해 생성됨을 확인할 수 있다.In Figure 5 (b), the first common keyset information for the transaction proposal (eTP), A, C, D, and E, was generated using key information A and E included in the transaction proposal (eTP): A -> E. It is a reference diagram showing The first common keyset information indicates A, C, D, and E corresponding to a set of key information common to transaction proposals (eTP): A -> C, A -> D and A -> E. In addition, (c) of FIG. 5 is a reference illustrating the first common transaction arrangement information A -> C, A -> D, A -> E corresponding to the first common keyset information A, C, D and E It is also Referring to (b) and (c) of Figure 5, transaction proposal (eTP): A -> C, A -> D and A -> first common keyset information corresponding to each of E (A, C, D, It can be seen that E) and the first common transaction arrangement information (A -> C, A -> D, and A -> E) are respectively generated by the transaction aggregator 120 .

도 6은 트랜잭션 에그리게이터(120)에서 수행되는 공통 키셋 정보 및 공통 트랜잭션 배치정보를 생성하는 과정을 설명하기 위한 또다른 예의 참조도이다.6 is a reference diagram of another example for explaining a process of generating common keyset information and common transaction arrangement information performed in the transaction aggregator 120 .

도 6의 (a)는 트랜잭션 패커(110)에서 전달받은 트랜잭션 프로포절(eTP): B -> F를 나타낸다. 도 6의 (a)에는 표시되지 않았지만, 트랜잭션 프로포절(eTP)인 B -> F에는 키 정보에 해당하는 B 및 F의 정보가 포함되어 있다. 6A illustrates a transaction proposal (eTP) received from the transaction packer 110: B -> F. Although not shown in (a) of FIG. 6 , the transaction proposal (eTP) B -> F includes information of B and F corresponding to key information.

도 6의 (b) 및 도 6의 (c)는 각각 도 5의 (b) 및 도 5의 (c)에 대응하는 것으로, 트랜잭션 패커(110)에서 전달받은 트랜잭션 프로포절(eTP): B -> F의 키 정보가 B 및 F에 해당하므로, 제1 공통 키셋 정보와 제1 공통 트랜잭션 배치정보는 변동이 없다. 6 (b) and 6 (c) correspond to FIGS. 5 (b) and 5 (c), respectively, and the transaction proposal (eTP) received from the transaction packer 110: B -> Since the key information of F corresponds to B and F, the first common keyset information and the first common transaction arrangement information do not change.

이에 비해, 도 6의 (d)는 트랜잭션 프로포절(eTP): B -> F에 포함된 키 정보 B 및 F를 이용해 트랜잭션 프로포절(eTP)에 대한 제2 공통 키셋정보인 B 및 F를 새로이 생성하였음을 나타내는 참조도이다.In contrast, in (d) of FIG. 6 , the second common keyset information for the transaction proposal (eTP), B and F, was newly created using key information B and F included in the transaction proposal (eTP): B -> F. It is a reference diagram showing

또한, 도 6의 (e)는 제2 공통 키셋 정보인 B 및 F에 대응하는 제2 공통 트랜잭션 배치정보인 B -> F를 예시하는 참조도이다. 도 6의 (d) 및 (e)를 참조하면, 트랜잭션 프로포절(eTP): B -> F에 대응하는 제2 공통 키셋 정보(B, F) 및 제2 공통 트랜잭션 배치정보(B -> F)가 각각 트랜잭션 에그리게이터(120)에 의해 생성됨을 확인할 수 있다.Also, FIG. 6E is a reference diagram illustrating the second common transaction arrangement information B -> F corresponding to the second common keyset information B and F. 6 (d) and (e), transaction proposal (eTP): second common keyset information (B, F) corresponding to B -> F and second common transaction arrangement information (B -> F) It can be seen that each is generated by the transaction aggregator 120 .

도 7은 트랜잭션 에그리게이터(120)에서 수행되는 공통 키셋 정보 및 공통 트랜잭션 배치정보를 생성하는 과정을 설명하기 위한 또다른 예의 참조도이다.7 is a reference diagram of another example for explaining a process of generating common keyset information and common transaction arrangement information performed in the transaction aggregator 120 .

도 7의 (a)는 트랜잭션 패커(110)에서 전달받은 트랜잭션 프로포절(eTP): B -> G를 나타낸다. 도 7의 (a)에는 표시되지 않았지만, 트랜잭션 프로포절(eTP)인 B -> G에는 키 정보에 해당하는 B 및 G의 정보가 포함되어 있다. 7A illustrates a transaction proposal (eTP) received from the transaction packer 110: B -> G. Although not shown in (a) of FIG. 7 , B -> G, which is a transaction proposal (eTP), includes information of B and G corresponding to key information.

도 7의 (b) 및 도 7의 (c)는 각각 도 6의 (b) 및 도 6의 (c)에 대응하는 것으로, 트랜잭션 패커(110)에서 전달받은 트랜잭션 프로포절(eTP): B -> G의 키 정보가 B 및 G에 해당하므로, 제1 공통 키셋 정보와 제1 공통 트랜잭션 배치정보는 변동이 없다. 7 (b) and 7 (c) correspond to FIGS. 6 (b) and 6 (c), respectively, and the transaction proposal (eTP) received from the transaction packer 110: B -> Since the key information of G corresponds to B and G, the first common keyset information and the first common transaction arrangement information do not change.

이에 비해, 도 7의 (d)는 트랜잭션 프로포절(eTP): B -> G에 포함된 키 정보 B 및 G를 이용해 트랜잭션 프로포절(eTP)에 대한 제2 공통 키셋정보인 B, F 및 G를 생성하였음을 나타내는 참조도이다. 제2 공통 키셋 정보는 트랜잭션 프로포절(eTP): B -> F 및 B -> G에 공통인 키 정보 집합에 해당하는 B, F, G를 나타낸다. 또한, 도 7의 (e)는 제2 공통 키셋 정보인 B, F, G에 대응하는 제2 공통 트랜잭션 배치정보인 B -> F 및 B -> G를 예시하는 참조도이다. 도 7의 (d) 및 (e)를 참조하면, 트랜잭션 프로포절(eTP): B -> F 및 B -> G 각각에 대응하는 제2 공통 키셋 정보(B, F, G) 및 제2 공통 트랜잭션 배치정보(B -> F 및 B -> G)가 각각 트랜잭션 에그리게이터(120)에 의해 생성됨을 확인할 수 있다.In contrast, in FIG. 7( d ), the second common keyset information for the transaction proposal (eTP), B, F, and G, is generated using key information B and G included in the transaction proposal (eTP): B -> G It is a reference diagram indicating that The second common keyset information indicates B, F, and G corresponding to a set of key information common to transaction proposal (eTP): B -> F and B -> G. In addition, FIG. 7E is a reference diagram illustrating second common transaction arrangement information B -> F and B -> G corresponding to the second common keyset information B, F, and G. Referring to (d) and (e) of FIG. 7 , transaction proposal (eTP): second common keyset information (B, F, G) and second common transaction corresponding to each of B -> F and B -> G It can be seen that the batch information (B -> F and B -> G) is generated by the transaction aggregator 120, respectively.

도 8은 트랜잭션 에그리게이터(120)에서 수행되는 공통 키셋 정보 및 공통 트랜잭션 배치정보를 생성하는 과정을 설명하기 위한 또다른 예의 참조도이다.8 is a reference diagram of another example for explaining a process of generating common keyset information and common transaction arrangement information performed in the transaction aggregator 120 .

도 8의 (a)는 트랜잭션 패커(110)에서 전달받은 트랜잭션 프로포절(eTP): B -> H를 나타낸다. 도 8의 (a)에는 표시되지 않았지만, 트랜잭션 프로포절(eTP)인 B -> H에는 키 정보에 해당하는 B 및 H의 정보가 포함되어 있다. 8A illustrates a transaction proposal (eTP) received from the transaction packer 110: B -> H. Although not shown in (a) of FIG. 8 , information of B and H corresponding to key information is included in the transaction proposal (eTP) B -> H.

도 8의 (b) 및 도 8의 (c)는 각각 도 7의 (b) 및 도 7의 (c)에 대응하는 것으로, 트랜잭션 패커(110)에서 전달받은 트랜잭션 프로포절(eTP): B -> H의 키 정보가 B 및 H에 해당하므로, 제1 공통 키셋 정보와 제1 공통 트랜잭션 배치정보는 변동이 없다. 8 (b) and 8 (c) correspond to FIGS. 7 (b) and 7 (c), respectively, and the transaction proposal (eTP) received from the transaction packer 110: B -> Since the key information of H corresponds to B and H, the first common keyset information and the first common transaction arrangement information do not change.

이에 비해, 도 8의 (d)는 트랜잭션 프로포절(eTP): B -> H에 포함된 키 정보 B 및 H를 이용해 트랜잭션 프로포절(eTP)에 대한 제2 공통 키셋정보인 B, F, G 및 H를 생성하였음을 나타내는 참조도이다. 제2 공통 키셋 정보는 트랜잭션 프로포절(eTP): B -> F, B -> G, B -> H에 공통인 키 정보 집합에 해당하는 B, F, G, H를 나타낸다. 또한, 도 8의 (e)는 제2 공통 키셋 정보인 B, F, G, H에 대응하는 제2 공통 트랜잭션 배치정보인 B -> F, B -> G, B -> H를 예시하는 참조도이다. 도 8의 (d) 및 (e)를 참조하면, 트랜잭션 프로포절(eTP): B -> F, B -> G, B -> H 각각에 대응하는 제2 공통 키셋 정보(B, F, G, H) 및 제2 공통 트랜잭션 배치정보(B -> F, B -> G, B -> H)가 각각 트랜잭션 에그리게이터(120)에 의해 생성됨을 확인할 수 있다.In comparison, (d) of FIG. 8 shows the second common keyset information B, F, G and H for the transaction proposal (eTP) using key information B and H included in the transaction proposal (eTP): B -> H. It is a reference diagram showing that a was created. The second common keyset information indicates B, F, G, and H corresponding to a set of key information common to transaction proposal (eTP): B -> F, B -> G, B -> H. In addition, (e) of FIG. 8 is a reference exemplifying the second common transaction arrangement information B -> F, B -> G, B -> H corresponding to the second common keyset information B, F, G, H It is also Referring to (d) and (e) of FIG. 8 , transaction proposal (eTP): B -> F, B -> G, B -> second common keyset information (B, F, G, It can be seen that H) and the second common transaction arrangement information (B -> F, B -> G, B -> H) are respectively generated by the transaction aggregator 120 .

도 9는 트랜잭션 에그리게이터(120)에서 수행되는 공통 키셋 정보 및 공통 트랜잭션 배치정보를 생성하는 과정을 설명하기 위한 또다른 예의 참조도이다.9 is a reference diagram of another example for explaining a process of generating common keyset information and common transaction arrangement information performed in the transaction aggregator 120 .

도 9의 (a)는 트랜잭션 패커(110)에서 전달받은 트랜잭션 프로포절(eTP): A -> B를 나타낸다. 도 9의 (a)에는 표시되지 않았지만, 트랜잭션 프로포절(eTP)인 A -> B에는 키 정보에 해당하는 A 및 B의 정보가 포함되어 있다. FIG. 9A illustrates a transaction proposal (eTP) received from the transaction packer 110: A -> B. Although not shown in (a) of FIG. 9 , information of A and B corresponding to key information is included in A -> B, which is a transaction proposal (eTP).

트랜잭션 프로포절(eTP): A -> B에 포함된 키 정보인 A 및 B는 각각 제1 공통 키셋 정보(A, C, D, E)와 제2 공통 키셋 정보(B, F, G, H)에 각각 포함되어 있다. 따라서, 트랜잭션 프로포절(eTP): A -> B에 대해서는 제1 공통 키셋 정보(A, C, D, E)와 이에 대응하는 제1 공통 트랜잭션 배치정보(A -> C, A -> D, 및 A -> E)에 포함되도록 분류할 수 없으며, 또한, 제2 공통 키셋 정보(B, F, G, H)와 이에 대응하는 제2 공통 트랜잭션 배치정보(B -> F, B -> G, B -> H)에 포함되도록 분류할 수도 없다.Transaction proposal (eTP): A and B, which are key information included in A -> B, are first common keyset information (A, C, D, E) and second common keyset information (B, F, G, H), respectively included in each. Accordingly, transaction proposal (eTP): for A -> B, the first common keyset information (A, C, D, E) and the corresponding first common transaction arrangement information (A -> C, A -> D, and It cannot be classified to be included in A -> E), and in addition, the second common keyset information (B, F, G, H) and the corresponding second common transaction arrangement information (B -> F, B -> G, It cannot be classified to be included in B -> H).

이에 따라, 트랜잭션 에그리게이터(120)는 키 정보가 복수의 공통 키셋정보들과 교집합을 이루는 경우에는, 해당 키 정보를 포함하는 트랜잭션 프로포절(eTP)에 대해서는 공통 키셋 정보 및 공통 트랜잭션 배치정보를 생성하지 않고, 다음 주기의 블록체인 실행 시점에 처리할 수 있도록 별도의 임시 저장공간에 저장해 놓는다. Accordingly, when the key information intersects with a plurality of common keyset information, the transaction aggregator 120 generates common keyset information and common transaction arrangement information for a transaction proposal (eTP) including the corresponding key information. Instead, it is stored in a separate temporary storage space so that it can be processed at the time of blockchain execution of the next cycle.

결국, 도 9의 (b), 도 9의 (c), 도 9의 (d) 및 도 9의 (e)는 각각 도 8의 (b), 도 8의 (c), 도 8의 (d) 및 도 8의 (e)에 대응하는 것으로, 제1 및 제2 공통 키셋 정보와 제1 및 제2 공통 트랜잭션 배치정보는 변동이 없다. 또한, 도 9의 (f)는 트랜잭션 프로포절(eTP): A -> B에 대해 다음번의 블록체인 처리시점에 실행하기 위해, 별도의 저장공간에 임시 저장한 상태를 나타낸다.As a result, FIGS. 9(b), 9(c), 9(d), and 9(e) are respectively shown in FIGS. 8(b), 8(c), and 8(d) ) and corresponding to (e) of FIG. 8 , the first and second common keyset information and the first and second common transaction arrangement information do not change. In addition, FIG. 9(f) shows a state in which the transaction proposal (eTP): A -> B is temporarily stored in a separate storage space to be executed at the next block chain processing time.

도 10은 트랜잭션 에그리게이터(120)에서 수행되는 공통 키셋 정보 및 공통 트랜잭션 배치정보를 생성하는 과정을 설명하기 위한 또다른 예의 참조도이다.10 is a reference diagram of another example for explaining a process of generating common keyset information and common transaction arrangement information performed in the transaction aggregator 120 .

도 10의 (a)는 트랜잭션 패커(110)에서 전달받은 트랜잭션 프로포절(eTP): C -> D를 나타낸다. 도 10의 (a)에는 표시되지 않았지만, 트랜잭션 프로포절(eTP)인 C -> D에는 키 정보에 해당하는 C 및 D의 정보가 포함되어 있다. 10A illustrates a transaction proposal (eTP) received from the transaction packer 110: C -> D. Although not shown in (a) of FIG. 10 , C -> D, which is a transaction proposal (eTP), includes information on C and D corresponding to key information.

도 10의 (b)는 도 9의 (b)에 대응하는 것으로, 트랜잭션 패커(110)에서 전달받은 트랜잭션 프로포절(eTP): C -> D의 키 정보가 C 및 D에 해당하므로, 제1 공통 키셋 정보는 변동이 없다. 다만, 도 10의 (c)는 제1 공통 트랜잭션 배치정보를 나타내는 것으로, 트랜잭션 프로포절(eTP)인 C -> D가 추가된 공통 트랜잭션 배치정보로서, A -> C, A -> D, A -> E 및 C -> D를 포함하고 있다.FIG. 10 (b) corresponds to FIG. 9 (b), and since key information of the transaction proposal (eTP): C -> D received from the transaction packer 110 corresponds to C and D, the first common There is no change in keyset information. However, (c) of FIG. 10 shows the first common transaction arrangement information, which is the common transaction arrangement information to which C -> D, which is a transaction proposal (eTP), is added, A -> C, A -> D, A - It contains > E and C -> D.

또한, 도 10의 (d) 및 도 10의 (e)는 각각 도 9의 (d) 및 도 9의 (e)에 대응하는 것으로, 트랜잭션 패커(110)에서 전달받은 트랜잭션 프로포절(eTP): C -> D의 키 정보가 C 및 D에 해당하므로, 제2 공통 키셋 정보와 제2 공통 트랜잭션 배치정보는 변동이 없다. 또한, 도 10의 (f)는 다음번에 실행되기 위해 임시 저장된 트랜잭션 프로포절(eTP): A -> B에 해당한다는 점에서, 변동이 없다.In addition, FIGS. 10 (d) and 10 (e) correspond to FIGS. 9 (d) and 9 (e), respectively, and the transaction proposal (eTP) received from the transaction packer 110: C -> Since key information of D corresponds to C and D, there is no change in the second common keyset information and the second common transaction arrangement information. In addition, there is no change in (f) of FIG. 10 in that it corresponds to a temporarily stored transaction proposal (eTP): A -> B to be executed next time.

도 11은 트랜잭션 에그리게이터(120)에서 수행되는 공통 키셋 정보 및 공통 트랜잭션 배치정보를 생성하는 과정을 설명하기 위한 또다른 예의 참조도이다.11 is a reference diagram of another example for explaining a process of generating common keyset information and common transaction arrangement information performed by the transaction aggregator 120 .

도 11의 (a)는 트랜잭션 패커(110)에서 전달받은 트랜잭션 프로포절(eTP): E -> F를 나타낸다. 도 11의 (a)에는 표시되지 않았지만, 트랜잭션 프로포절(eTP)인 E -> F에는 키 정보에 해당하는 E 및 F의 정보가 포함되어 있다. 11A illustrates a transaction proposal (eTP) received from the transaction packer 110: E -> F. Although not shown in (a) of FIG. 11 , E -> F, which is a transaction proposal (eTP), includes information on E and F corresponding to key information.

트랜잭션 프로포절(eTP): E -> F에 포함된 키 정보인 E 및 F는 각각 제1 공통 키셋 정보(A, C, D, E)와 제2 공통 키셋 정보(B, F, G, H)에 각각 포함되어 있다. 따라서, 트랜잭션 프로포절(eTP): E -> F에 대해서는 제1 공통 키셋 정보(A, C, D, E)와 이에 대응하는 제1 공통 트랜잭션 배치정보(A -> C, A -> D, A -> E 및C -> D)에 포함되도록 분류할 수 없으며, 또한, 제2 공통 키셋 정보(B, F, G, H)와 이에 대응하는 제2 공통 트랜잭션 배치정보(B -> F, B -> G, B -> H)에 포함되도록 분류할 수도 없다.Transaction proposal (eTP): E and F, which are key information included in E -> F, are first common keyset information (A, C, D, E) and second common keyset information (B, F, G, H), respectively included in each. Therefore, for transaction proposal (eTP): E -> F, the first common keyset information (A, C, D, E) and the corresponding first common transaction arrangement information (A -> C, A -> D, A) -> E and C -> D) cannot be classified, and also, the second common keyset information (B, F, G, H) and the corresponding second common transaction arrangement information (B -> F, B) -> G, B -> H) cannot be classified.

이에 따라, 트랜잭션 에그리게이터(120)는 키 정보가 복수의 공통 키셋정보들과 교집합을 이루는 경우에는, 해당 키 정보를 포함하는 트랜잭션 프로포절(eTP)에 대해서는 공통 키셋 정보 및 공통 트랜잭션 배치정보를 생성하지 않고, 다음 주기의 블록체인 실행 시점에 처리할 수 있도록 별도의 임시 저장공간에 저장해 놓는다. Accordingly, when the key information intersects with a plurality of common keyset information, the transaction aggregator 120 generates common keyset information and common transaction arrangement information for a transaction proposal (eTP) including the corresponding key information. Instead, it is stored in a separate temporary storage space so that it can be processed at the time of blockchain execution of the next cycle.

결국, 도 11의 (b), 도 11의 (c), 도 11의 (d) 및 도 11의 (e)는 각각 도 10의 (b), 도 10의 (c), 도 10의 (d) 및 도 10의 (e)에 대응하는 것으로, 제1 및 제2 공통 키셋 정보와 제1 및 제2 공통 트랜잭션 배치정보는 변동이 없다. As a result, FIGS. 11 (b), 11 (c), 11 (d) and 11 (e) are shown in FIGS. 10 (b), 10 (c), and 10 (d), respectively. ) and FIG. 10 (e), the first and second common keyset information and the first and second common transaction arrangement information do not change.

또한, 도 11의 (f)는 트랜잭션 프로포절(eTP): E -> F에 대해 다음번의 블록체인 처리시점에 실행하기 위해, 별도의 저장공간에 임시 저장한 상태를 나타낸다. 이에 따르면, 이전에 저장되어 있는 트랜잭션 프로포절(eTP): A -> B에 추가적으로 트랜잭션 프로포절(eTP): E -> F가 저장되어 있음을 확인할 수 있다.In addition, FIG. 11(f) shows a state in which the transaction proposal (eTP): E -> F is temporarily stored in a separate storage space to be executed at the next block chain processing time. According to this, it can be confirmed that the previously stored transaction proposal (eTP): A -> B is additionally stored, and the transaction proposal (eTP): E -> F is stored.

도 12는 트랜잭션 에그리게이터(120)에서 수행되는 공통 키셋 정보 및 공통 트랜잭션 배치정보를 생성하는 과정을 설명하기 위한 또다른 예의 참조도이다.12 is a reference diagram of another example for explaining a process of generating common keyset information and common transaction arrangement information performed by the transaction aggregator 120 .

도 12의 (a)는 트랜잭션 패커(110)에서 전달받은 트랜잭션 프로포절(eTP): D -> H를 나타낸다. 도 12의 (a)에는 표시되지 않았지만, 트랜잭션 프로포절(eTP)인 D -> H에는 키 정보에 해당하는 D 및 H의 정보가 포함되어 있다. 12A illustrates a transaction proposal (eTP) received from the transaction packer 110: D -> H. Although not shown in (a) of FIG. 12 , D -> H, which is a transaction proposal (eTP), includes information on D and H corresponding to key information.

트랜잭션 프로포절(eTP): D -> H에 포함된 키 정보인 D 및 H는 각각 제1 공통 키셋 정보(A, C, D, E)와 제2 공통 키셋 정보(B, F, G, H)에 각각 포함되어 있다. 따라서, 트랜잭션 프로포절(eTP): D -> H에 대해서는 제1 공통 키셋 정보(A, C, D, E)와 이에 대응하는 제1 공통 트랜잭션 배치정보(A -> C, A -> D, A -> E 및C -> D)에 포함되도록 분류할 수 없으며, 또한, 제2 공통 키셋 정보(B, F, G, H)와 이에 대응하는 제2 공통 트랜잭션 배치정보(B -> F, B -> G, B -> H)에 포함되도록 분류할 수도 없다.Transaction proposal (eTP): D and H, which are key information included in D -> H, are first common keyset information (A, C, D, E) and second common keyset information (B, F, G, H), respectively included in each. Therefore, for transaction proposal (eTP): D -> H, the first common keyset information (A, C, D, E) and the corresponding first common transaction arrangement information (A -> C, A -> D, A) -> E and C -> D) cannot be classified, and also, the second common keyset information (B, F, G, H) and the corresponding second common transaction arrangement information (B -> F, B) -> G, B -> H) cannot be classified.

이에 따라, 트랜잭션 에그리게이터(120)는 키 정보가 복수의 공통 키셋정보들과 교집합을 이루는 경우에는, 해당 키 정보를 포함하는 트랜잭션 프로포절(eTP)에 대해서는 공통 키셋 정보 및 공통 트랜잭션 배치정보를 생성하지 않고, 다음 주기의 블록체인 실행 시점에 처리할 수 있도록 별도의 임시 저장공간에 저장해 놓는다. Accordingly, when the key information intersects with a plurality of common keyset information, the transaction aggregator 120 generates common keyset information and common transaction arrangement information for a transaction proposal (eTP) including the corresponding key information. Instead, it is stored in a separate temporary storage space so that it can be processed at the time of blockchain execution of the next cycle.

결국, 도 12의 (b), 도 12의 (c), 도 12의 (d) 및 도 12의 (e)는 각각 도 11의 (b), 도 11의 (c), 도 11의 (d) 및 도 11의 (e)에 대응하는 것으로, 제1 및 제2 공통 키셋 정보와 제1 및 제2 공통 트랜잭션 배치정보는 변동이 없다. As a result, FIGS. 12(b), 12(c), 12(d) and 12(e) are shown in FIGS. 11(b), 11(c), and 11(d), respectively. ) and FIG. 11 (e), the first and second common keyset information and the first and second common transaction arrangement information do not change.

또한, 도 12의 (f)는 트랜잭션 프로포절(eTP): D -> H에 대해 다음번의 블록체인 처리시점에 실행하기 위해, 별도의 저장공간에 임시 저장한 상태를 나타낸다. 이에 따르면, 이전에 저장되어 있는 트랜잭션 프로포절(eTP): A -> B, 및 E -> F에 추가적으로 트랜잭션 프로포절(eTP): D -> H가 저장되어 있음을 확인할 수 있다.In addition, FIG. 12(f) shows a state in which the transaction proposal (eTP): D -> H is temporarily stored in a separate storage space to be executed at the next block chain processing time. Accordingly, it can be confirmed that the transaction proposal (eTP): D -> H is stored in addition to the previously stored transaction proposal (eTP): A -> B, and E -> F.

도 13은 트랜잭션 에그리게이터(120)에서 수행되는 공통 키셋 정보 및 공통 트랜잭션 배치정보를 생성하는 과정을 설명하기 위한 또다른 예의 참조도이다.13 is a reference diagram of another example for explaining a process of generating common keyset information and common transaction arrangement information performed in the transaction aggregator 120 .

도 13의 (a)는 트랜잭션 패커(110)에서 전달받은 트랜잭션 프로포절(eTP): G -> H를 나타낸다. 도 13의 (a)에는 표시되지 않았지만, 트랜잭션 프로포절(eTP)인 G -> H에는 키 정보에 해당하는 G 및 H의 정보가 포함되어 있다. 13A illustrates a transaction proposal (eTP) received from the transaction packer 110: G -> H. Although not shown in (a) of FIG. 13 , G -> H, which is a transaction proposal (eTP), includes information on G and H corresponding to key information.

도 13의 (b) 및 도 13의 (c)는 각각 도 12의 (b) 및 도 12의 (c)에 대응하는 것으로, 트랜잭션 패커(110)에서 전달받은 트랜잭션 프로포절(eTP): G -> H의 키 정보가 G 및 H에 해당하므로, 제1 공통 키셋 정보와 제1 공통 트랜잭션 배치정보는 변동이 없다.13 (b) and 13 (c) correspond to FIGS. 12 (b) and 12 (c), respectively, and the transaction proposal (eTP) received from the transaction packer 110: G -> Since the key information of H corresponds to G and H, the first common keyset information and the first common transaction arrangement information do not change.

또한, 도 13의 (d)는 도 12의 (d)에 대응하는 것으로, 트랜잭션 패커(110)에서 전달받은 트랜잭션 프로포절(eTP): G -> H의 키 정보가 G 및 H에 해당하므로, 제2 공통 키셋 정보는 변동이 없다. 다만, 도 13의 (e)는 제2 공통 트랜잭션 배치정보를 나타내는 것으로, 트랜잭션 프로포절(eTP)인 G -> H가 추가된 공통 트랜잭션 배치정보로서, A -> C, A -> D, A -> E 및 G -> H를 포함하고 있다. 또한, 도 13의 (f)는 다음번에 실행되기 위해 임시 저장된 트랜잭션 프로포절(eTP): A -> B, E -> F 및 D -> H에 해당한다는 점에서, 변동이 없다.In addition, (d) of FIG. 13 corresponds to (d) of FIG. 12 , and since the key information of the transaction proposal (eTP): G -> H received from the transaction packer 110 corresponds to G and H, the first 2 There is no change in common keyset information. However, (e) of FIG. 13 shows the second common transaction arrangement information, which is the common transaction arrangement information to which G -> H, which is a transaction proposal (eTP), is added, A -> C, A -> D, A - It contains > E and G -> H. In addition, there is no change in FIG. 13(f) in that it corresponds to the temporarily stored transaction proposals (eTPs) to be executed next time: A -> B, E -> F and D -> H.

트랜잭션 에그리게이터(120)는 다수의 실행 노드들로부터 상기 실행 노드들 각각의 처리능력정보의 수신에 따라, 상기 공통 트랜잭션 배치정보의 계산을 위한 상기 실행 노드 그룹(130)을 지정하고, 상기 지정된 실행 노드 그룹(130)으로 상기 공통 트랜잭션 배치정보를 전송한다. 트랜잭션 에그리게이터(120)는 공통 키셋정보 및 공통 트랜잭션 배치정보의 생성 시점에 다수의 실행 노드들로부터 처리능력정보를 수신하여, 이에 따라 실행 노드 그룹(130)을 지정할 수 있다. The transaction aggregator 120 designates the execution node group 130 for calculation of the common transaction arrangement information according to the reception of processing capability information of each of the execution nodes from a plurality of execution nodes, and The common transaction arrangement information is transmitted to the execution node group 130 . The transaction aggregator 120 may receive processing capability information from a plurality of execution nodes at the time of generation of the common keyset information and the common transaction arrangement information, and may designate the execution node group 130 accordingly.

실행 노드 그룹(130)은 적어도 하나 이상의 적어도 하나 이상의 트랜잭션의 시뮬레이션을 위한 실행 노드들을 포함하고 있다. 이러한 실행 노드 그룹(130)은 복수개가 존재할 수 있다. 실행 노드 그룹(130)에 속하는 각각의 실행 노드를 트랜잭션 실행기(Transction executor)라 칭한다.The execution node group 130 includes execution nodes for simulating at least one or more at least one transaction. A plurality of such execution node groups 130 may exist. Each execution node belonging to the execution node group 130 is called a transaction executor.

도 1에 도시된 바와 같이, 실행 노드 그룹(130)은 복수개의 트랜잭션 실행기들(130-1, 130-2, 130-3, ...)를 포함하고 있다. 트랜잭션 실행기들(130-1, 130-2, 130-3, ...) 각각은 트랜잭션 에그리게이터(120)로부터 전송된 트랜잭션 배치정보에 포함된 트랜잭션 프로포절들에 대한 시뮬레이션(Simulation)을 순차적으로 실행한다. 한편, 트랜잭션 실행기들(130-1, 130-2, 130-3, ...) 각각은 또 다른 실행 노드 그룹에 속하는 다른 트랜잭션 실행기들과 병렬적으로 시뮬레이션을 실행할 수 있다. As shown in Figure 1, the execution node group 130 includes a plurality of transaction executors (130-1, 130-2, 130-3, ...). Each of the transaction executors 130-1, 130-2, 130-3, ... sequentially performs simulations for transaction proposals included in the transaction arrangement information transmitted from the transaction aggregator 120. run Meanwhile, each of the transaction executors 130-1, 130-2, 130-3, ... may execute a simulation in parallel with other transaction executors belonging to another execution node group.

트랜잭션 실행기들(130-1, 130-2, 130-3, ...) 각각은 적어도 하나 이상의 캐쉬 메모리를 구비하고 있다. 여기서 캐쉬 메모리는 전술한 Global Cache와 Local Cached R/W Set을 포함할 수 있다. 이때, Global Cache는 글로벌 캐쉬 메모리로 칭하고, Local Cached R/W Set은 로컬 캐쉬 메모리로 칭할 수 있다. Each of the transaction executors 130-1, 130-2, 130-3, ... has at least one or more cache memories. Here, the cache memory may include the aforementioned Global Cache and Local Cached R/W Set. In this case, the Global Cache may be referred to as a global cache memory, and the Local Cached R/W Set may be referred to as a local cache memory.

글로벌 캐쉬 메모리는 한 블록 생성 주기 내에 실행되는 모든 트랜잭션의 Read/Write 값을 일시적으로 보관하는 메모리이다. 또한, 로컬 캐쉬 메모리는 한개의 트랜잭션을 실행하는 동안의 Read/Write 값을 일시적으로 보관하는 메모리이다. The global cache memory is a memory that temporarily stores the read/write values of all transactions executed within one block creation cycle. Also, the local cache memory is a memory that temporarily stores Read/Write values while executing one transaction.

도 14는 트랜잭션 실행기가 공통 트랜잭션 배치정보를 이용하여 각각의 트랜잭션 프로포절들에 대한 시뮬레이션을 실행하는 과정을 설명하기 위한 일 예의 참조도이다.14 is a reference diagram for explaining a process in which a transaction executor executes a simulation for each transaction proposal using common transaction arrangement information.

도 14를 참조하면, 트랜잭션 실행기가 글로벌 캐쉬 메모리(GCM)와 로컬 캐쉬 메모리(LCM)를 포함하고 있는 것을 예시하고 있다.Referring to FIG. 14 , it is exemplified that the transaction executor includes a global cache memory (GCM) and a local cache memory (LCM).

트랜잭션 실행기들(130-1, 130-2, 130-3, ...) 각각은 글로벌 캐쉬 메모리(GCM)와 로컬 캐쉬 메모리(LCM)에 트랜잭션 프로포절들의 시뮬레이션에 따른 상태 정보를 저장하고 있으며, 저장된 상태 정보를 다음의 트랜잭션 프로포절의 시뮬레이션을 위한 값으로 사용한다. Each of the transaction executors 130-1, 130-2, 130-3, ... stores state information according to the simulation of transaction proposals in the global cache memory (GCM) and the local cache memory (LCM), and the stored The state information is used as a value for the simulation of the next transaction proposal.

트랜잭션 실행기들(130-1, 130-2, 130-3, ...) 각각은 트랜잭션 프로포절의 시뮬레이션을 위해, 먼저 상기 캐쉬 메모리를 액세스하여 상기 상태 정보를 참고하고, 상기 캐쉬 메모리에 상기 트랜잭션 프로포절의 시뮬레이션을 위한 상태 정보가 존재하지 않는 경우에 블록체인에 저장된 원장 정보를 액세스하여 상기 캐쉬 메모리에 저장해 놓는다. Each of the transaction executors 130-1, 130-2, 130-3, ..., accesses the cache memory to refer to the state information for simulation of the transaction proposal, When the state information for the simulation of the data does not exist, the ledger information stored in the block chain is accessed and stored in the cache memory.

도 14를 참조하여 트랜잭션 실행기들(130-1, 130-2, 130-3, ...) 각각에 대한 시뮬레이션 실행 과정을 설명한다.A simulation execution process for each of the transaction executors 130-1, 130-2, 130-3, ... will be described with reference to FIG. 14.

예를 들어, 트랜잭션 실행기들(130-1, 130-2, 130-3, ...) 각각은 트랜잭션 에그리게이터(120)로부터 임의의 공통 트랜잭션 배치정보를 수신한다. 이때, 공통 트랜잭션 배치정보는 도 14에 도시된 바와 같이, {A, B, C, D}에 해당하는 키 정보를 갖는 트랜잭션 프로포절들(A -> B, A -> C)을 포함하고 있다. 트랜잭션 프로포절: A -> B는 A 계좌에서 50에 해당하는 금액만큼 차감하고, 차감된 금액 50을 B 계좌에 입금하라는 요청신호이다. 또한, 트랜잭션 프로포절: A -> C는 A 계좌에서 D에 해당하는 금액만큼 차감하고, 차감된 금액 D를 C 계좌에 입금하라는 요청신호이다.For example, each of the transaction executors 130 - 1 , 130 - 2 , 130 - 3 , ... receives any common transaction arrangement information from the transaction aggregator 120 . In this case, the common transaction arrangement information includes transaction proposals (A -> B, A -> C) having key information corresponding to {A, B, C, D}, as shown in FIG. 14 . Transaction proposal: A -> B is a request signal to deduct the amount corresponding to 50 from the A account and deposit the deducted 50 to the B account. Also, transaction proposal: A -> C is a request signal to deduct the amount corresponding to D from account A and deposit the deducted amount D to account C.

트랜잭션 실행기들(130-1, 130-2, 130-3, ...) 각각은 수신된 공통 트랜잭션 배치정보에 포함된 트랜잭션 프로포절들에 대해 순차적으로 시뮬레이션을 실행한다. Each of the transaction executors 130-1, 130-2, 130-3, ... sequentially executes simulations on transaction proposals included in the received common transaction arrangement information.

이때, 트랜잭션 실행기들(130-1, 130-2, 130-3, ...) 각각은 시뮬레이션을 위해 필요한 키 정보와 키값 정보를 블록체인의 원장으로부터 읽어들여서 글로벌 캐쉬 메모리(GCM)에 미리 저장해 놓을 수 있다. 예를 들어, 도 14에 기재된 바와 같이, 트랜잭션 실행기들(130-1, 130-2, 130-3, ...) 각각은 시뮬레이션 전에 미리, 블록체인에 등록된 원장 정보 즉, 키 정보(A, B, C, D)와 이에 대응하는 키값 정보(100, 40, 30, 20)을 미리 블록체인으로부터 읽어들여서 글로벌 캐쉬 메모리(GCM)에는 저장해 놓을 수 있다.At this time, each of the transaction executors (130-1, 130-2, 130-3, ...) reads key information and key value information required for simulation from the ledger of the block chain and stores it in the global cache memory (GCM) in advance. can be put For example, as described in FIG. 14 , each of the transaction executors 130-1, 130-2, 130-3, ... has ledger information registered in the block chain in advance, that is, key information (A , B, C, D) and the corresponding key value information (100, 40, 30, 20) can be read from the block chain in advance and stored in the global cache memory (GCM).

그 후, 트랜잭션 실행기들(130-1, 130-2, 130-3, ...) 각각은 첫번째 순위에 해당하는 트랜잭션 프로포절: A -> B에 대한 시뮬레이션을 실행한다. 이를 위해, 트랜잭션 실행기들(130-1, 130-2, 130-3, ...) 각각은 먼저 트랜잭션 프로포절: A -> B의 시뮬레이션을 위한 정보로서, 키 정보 A에 대응하는 키값정보 "100"과 키 정보 B에 대응하는 키값정보 "40"을 글로벌 캐쉬 메모리(GCM)로부터 읽어들인다. Then, each of the transaction executors 130-1, 130-2, 130-3, ... executes a simulation for the transaction proposal corresponding to the first rank: A -> B. To this end, each of the transaction executors 130-1, 130-2, 130-3, ... is information for the simulation of the transaction proposal: A -> B, and the key value information "100 corresponding to the key information A" " and key value information "40" corresponding to key information B are read from the global cache memory (GCM).

트랜잭션 실행기들(130-1, 130-2, 130-3, ...) 각각은 글로벌 캐쉬 메모리(GCM)로부터 읽어들인 키 정보와 이에 대응하는 키값 정보를 이용하여, 트랜잭션 프로포절: A -> B의 시뮬레이션을 실행하고, 이에 따른 상태 정보인 A'= 50과 B'=90을 로컬 캐쉬 메모리(LCM)에 저장한다. 그 후, 트랜잭션 실행기들(130-1, 130-2, 130-3, ...) 각각은 로컬 캐쉬 메모리(LCM)에 저장된 상태 정보인 A'= 50과 B'=90을 참조하여, 글로벌 캐쉬 메모리(GCM)의 키 정보와 키값 정보를 업데이트한다.Each of the transaction executors (130-1, 130-2, 130-3, ...) uses the key information read from the global cache memory (GCM) and the corresponding key value information to propose a transaction: A -> B , and the corresponding state information, A'=50 and B'=90, is stored in the local cache memory (LCM). Then, each of the transaction executors (130-1, 130-2, 130-3, ...) refers to the state information stored in the local cache memory (LCM), A' = 50 and B' = 90, Update key information and key value information in the cache memory (GCM).

그 후, 트랜잭션 실행기들(130-1, 130-2, 130-3, ...) 각각은 공통 트랜잭션 배치정보에 포함된 트랜잭션 프로포절들 중 두번째 순위에 해당하는 트랜잭션 프로포절: A -> C에 대한 시뮬레이션을 실행한다. 이를 위해, 트랜잭션 실행기들(130-1, 130-2, 130-3, ...) 각각은 먼저 트랜잭션 프로포절: A -> C의 시뮬레이션을 위한 정보로서, 키 정보 A에 대응하는 키값정보 "50"과 키 정보 C에 대응하는 키값정보 "30"을 글로벌 캐쉬 메모리(GCM)로부터 읽어들인다. 한편, 트랜잭션 프로포절: A -> C의 시뮬레이션을 위한 정보로서, 키 정보 D와 이에 대응하는 키값정보 "20"가 글로벌 캐쉬 메모리(GCM)에 저장되어 있지 않는 경우에는, 트랜잭션 실행기들(130-1, 130-2, 130-3, ...) 각각은 블록체인에 접근하여, 원장 정보에 포함된 키 정보 D와 이에 대응하는 키값정보 20을 읽어들여서 글로벌 캐쉬 메모리(GCM)에 저장한 후에, 저장된 정보를 이용하여 트랜잭션 프로포절에 대응하는 시뮬레이션을 실행할 수 있다.Then, each of the transaction executors 130-1, 130-2, 130-3, ... is a transaction proposal corresponding to the second rank among the transaction proposals included in the common transaction arrangement information: A -> C Run the simulation. To this end, each of the transaction executors 130-1, 130-2, 130-3, ... is information for the simulation of the transaction proposal: A -> C, and the key value information "50 corresponding to the key information A " and key value information "30" corresponding to key information C are read from the global cache memory (GCM). On the other hand, as information for simulation of transaction proposal: A -> C, when key information D and corresponding key value information "20" are not stored in the global cache memory (GCM), transaction executors 130-1 , 130-2, 130-3, ...) each access the block chain, read the key information D included in the ledger information and the corresponding key value information 20, and store it in the global cache memory (GCM) A simulation corresponding to the transaction proposal can be executed using the stored information.

트랜잭션 실행기들(130-1, 130-2, 130-3, ...) 각각은 글로벌 캐쉬 메모리(GCM)로부터 읽어들인 키 정보와 이에 대응하는 키값 정보를 이용하여, 트랜잭션 프로포절: A -> C의 시뮬레이션을 실행하고, 이에 따른 상태 정보인 A"= 30과 C'=50을 로컬 캐쉬 메모리(LCM)에 저장한다. 그 후, 트랜잭션 실행기들(130-1, 130-2, 130-3, ...) 각각은 로컬 캐쉬 메모리(LCM)에 저장된 상태 정보인 A"= 30과 C'=50을 참조하여, 글로벌 캐쉬 메모리(GCM)의 키 정보와 키값 정보를 업데이트한다.Each of the transaction executors (130-1, 130-2, 130-3, ...) uses key information read from the global cache memory (GCM) and corresponding key value information, transaction proposal: A -> C , and stores the corresponding state information A"=30 and C'=50 in the local cache memory (LCM). After that, the transaction executors 130-1, 130-2, 130-3, ...) each updates the key information and key value information of the global cache memory (GCM) with reference to A" = 30 and C' = 50, which are state information stored in the local cache memory (LCM).

그 후, 트랜잭션 실행기들(130-1, 130-2, 130-3, ...) 각각은 공통 트랜잭션 배치정보에 포함된 모든 트랜잭션 프로포절들에 대한 시뮬레이션 실행을 완료하였으므로, 해당 시뮬레이션에 따른 상태 정보인 글로벌 캐쉬 메모리(GCM)의 키 정보와 키값 정보를 블록체인에 전달하여, 해당 블록체인의 원장 정보에 추가할 수 있도록 한다. After that, since each of the transaction executors 130-1, 130-2, 130-3, ... has completed simulation execution for all transaction proposals included in the common transaction arrangement information, state information according to the simulation It transmits the key information and key value information of the in-global cache memory (GCM) to the block chain so that it can be added to the ledger information of the block chain.

그 후, 트랜잭션 실행기들(130-1, 130-2, 130-3, ...) 각각은 공통 트랜잭션 배치정보에 포함된 모든 트랜잭션 프로포절들에 대한 시뮬레이션 실행을 완료하였다는 응답정보를 원장 정보를 기록하는 커미팅 피어(Committing Peer: 미도시)로 전달한다.Then, each of the transaction executors (130-1, 130-2, 130-3, ...) transmits the response information that the simulation execution for all transaction proposals included in the common transaction arrangement information has been completed and the ledger information It is forwarded to the writing Committing Peer (not shown).

도 15는 본 발명에 따른 공통 키셋정보를 이용한 트랜잭션 분산처리를 위한 블록체인 수행방법을 설명하기 위한 일 실시예의 플로차트이다.15 is a flowchart of an embodiment for explaining a block chain execution method for distributed transaction processing using common keyset information according to the present invention.

트랜잭션 패커가 사용자의 트랜잭션 요청에 따른 트랜잭션 정보를 나타내는 트랜잭션 프로포절(Tx Proposal)을 생성하고, 상기 생성된 트랜잭션 프로포절에 상기 트랜잭션 요청에 대응하는 키(key) 정보를 추가한다(S200 단계). 트랜잭션 프로포절은 사용자의 트랜잭션 요청에 대응하는 트랜잭션 정보를 포함하는 것으로, 트랜잭션 에그리게이터(120)에서 사용될 수 있는 트랜잭션의 데이터 형식을 나타낸다.The transaction packer generates a transaction proposal (Tx Proposal) indicating transaction information according to a user's transaction request, and adds key information corresponding to the transaction request to the generated transaction proposal (step S200). The transaction proposal includes transaction information corresponding to a user's transaction request, and indicates a data format of a transaction that can be used in the transaction aggregator 120 .

키(key) 정보는 전술한 용어 정리에서 Ledger Key를 의미한다. 또한, 키(key) 정보는 배열이나 복합키를 포함하는 미확정 형태의 부분 키 정보를 포함할 수 있다. 이는 전술한 용어 정리에서, Partial Ledger Key를 의미한다.Key information means a Ledger Key in the above-mentioned term summary. In addition, the key information may include partial key information in an unconfirmed form including an array or a composite key. This means Partial Ledger Key in the above-mentioned glossary of terms.

트랜잭션 패커는 사용자의 트랜잭션 요청을 Tx Proposal으로 변환하고, 부가 정보를 추가하여 eTP(encapsulated Tx Proposal)를 생성하고, 생성된 eTP를 트랜잭션 에그리게이터에 전달한다. 여기서, eTP는 기존의 Tx Proposal에 트랜잭션 에그리게이터(120)에 전달하기 위해 부가정보(R/W Key Set Description 정보)가 추가된 Tx Proposal이다.The transaction packer converts a user's transaction request into a Tx Proposal, adds additional information to create an encapsulated Tx Proposal (eTP), and delivers the generated eTP to the transaction aggregator. Here, the eTP is a Tx Proposal in which additional information (R/W Key Set Description information) is added to transmit to the transaction aggregator 120 to the existing Tx Proposal.

S200 단계 후에, 상기 트랜잭션 패커에서 전달받은 상기 트랜잭션 프로포절에 포함된 상기 키 정보에 따라 상기 트랜잭션 프로포절에 대응하는 공통 키셋 정보 및 공통 트랜잭션 배치(Transaction batch)정보를 생성하고, 상기 생성된 공통 트랜잭션 배치정보 별로 구분하여 미리 지정된 실행 노드그룹으로 전송한다(S202 단계). After step S200, common keyset information and common transaction batch information corresponding to the transaction proposal are generated according to the key information included in the transaction proposal received from the transaction packer, and the generated common transaction batch information It is divided by each and transmitted to a pre-designated execution node group (step S202).

공통 키셋 정보는 복수의 트랜잭션 프로포절들에 포함되는 키 정보들 중 동일한 키를 갖는 것들에 대한 키 집합을 나타낸다. 여기서, 공통 키셋 정보는 전술한 용어 정리에서 R/W Key Set(RWKS)정보를 의미한다. The common keyset information indicates a key set for those having the same key among key information included in a plurality of transaction proposals. Here, the common key set information means R/W Key Set (RWKS) information in the above-described terminology.

트랜잭션 배치정보는, 상기 공통 키셋 정보에 포함된 키 정보들에 각각 대응하는 트랜잭션 프로포절들의 집합을 나타낸다. 여기서, 트랜잭션 배치정보는 전술한 용어 정리에서 eTPB를 의미하며, eTPB내의 순서는 eTPID(TxID)에 의해 정의된다.The transaction arrangement information indicates a set of transaction proposals respectively corresponding to key information included in the common keyset information. Here, the transaction arrangement information refers to the eTPB in the above term summary, and the order in the eTPB is defined by the eTPID (TxID).

상기 생성된 공통 트랜잭션 배치정보 별로 구분하여 미리 지정된 실행 노드그룹으로 전송하는 단계는, 다수의 실행 노드들로부터 상기 실행 노드들 각각의 처리능력정보의 수신에 따라, 상기 공통 트랜잭션 배치정보의 계산을 위한 상기 실행 노드그룹을 지정하고, 상기 지정된 실행 노드그룹으로 상기 공통 트랜잭션 배치정보를 전송한다.The step of dividing the generated common transaction arrangement information and transmitting it to a pre-designated execution node group includes receiving processing capability information of each of the execution nodes from a plurality of execution nodes for calculation of the common transaction arrangement information. The execution node group is designated, and the common transaction arrangement information is transmitted to the designated execution node group.

트랜잭션 에그리게이터는 다수의 실행 노드들로부터 상기 실행 노드들 각각의 처리능력정보의 수신에 따라, 상기 공통 트랜잭션 배치정보의 계산을 위한 상기 실행 노드그룹을 지정하고, 상기 지정된 실행 노드그룹으로 상기 공통 트랜잭션 배치정보를 전송한다. 트랜잭션 에그리게이터는 공통 키셋정보 및 공통 트랜잭션 배치정보의 생성 시점에 다수의 실행 노드들로부터 처리능력정보를 수신하여, 이에 따라 실행 노드그룹을 지정할 수 있다. The transaction aggregator designates the execution node group for calculation of the common transaction arrangement information according to the reception of processing capability information of each of the execution nodes from a plurality of execution nodes, and assigns the common execution node group to the designated execution node group. Transmits transaction batch information. The transaction aggregator may receive processing capability information from a plurality of execution nodes at the time of generating common keyset information and common transaction arrangement information, and may designate an execution node group accordingly.

실행 노드들 각각은 시뮬레이션 결과에 대해 트랜잭션 에그리게이터로 전송한다. 실행 노드들 각각은 트랜잭션 프로포절에 저장된 정보(트랜잭션 프로포절에 대한 Receptor field의 정보)를 참조하여 Tx Proposal Response를 해당 트랜잭션 에그리게이터로 전송한다.Each of the execution nodes transmits the simulation result to the transaction aggregator. Each of the execution nodes transmits a Tx Proposal Response to the corresponding transaction aggregator by referring to the information stored in the transaction proposal (information in the Receptor field for the transaction proposal).

S202 단계 후에, 상기 실행노드 그룹에 속하는 적어도 하나 이상의 트랜잭션 실행기(Transction executor)에서, 상기 전송된 공통 트랜잭션 배치정보에 포함된 상기 트랜잭션 프로포절들에 대한 시뮬레이션을 실행한다(S204 단계).After step S202, at least one transaction executor belonging to the execution node group executes a simulation on the transaction proposals included in the transmitted common transaction arrangement information (step S204).

이때, 상기 블록체인에 저장된 상기 원장 정보를 상기 트랜잭션 프로포절의 시뮬레이션 전에 미리 상기 캐쉬 메모리에 저장해 놓을 수 있다. 또한, 트랜잭션 프로포절들의 시뮬레이션을 실행하는 단계는, 캐쉬 메모리에 상기 트랜잭션 프로포절들의 시뮬레이션에 따른 상태 정보를 저장하고 있으며, 상기 저장된 상태 정보를 다음 트랜잭션 프로포절의 시뮬레이션을 위한 값으로 활용할 수 있다. In this case, the ledger information stored in the block chain may be stored in the cache memory in advance before the simulation of the transaction proposal. Also, in the step of executing the simulation of the transaction proposals, state information according to the simulation of the transaction proposals is stored in a cache memory, and the stored state information may be used as a value for the simulation of the next transaction proposal.

또한, 상기 트랜잭션 프로포절의 시뮬레이션을 위해, 먼저 상기 캐쉬 메모리를 액세스하여 상기 상태 정보를 참고하고, 상기 캐쉬 메모리에 상기 트랜잭션 프로포절의 시뮬레이션을 위한 상기 상태 정보가 존재하지 않는 경우에 블록체인에 저장된 원장 정보를 액세스하여 상기 캐쉬 메모리에 저장해 놓을 수 있다. In addition, for the simulation of the transaction proposal, first access the cache memory to refer to the state information, and when the state information for the simulation of the transaction proposal does not exist in the cache memory, the ledger information stored in the block chain can be accessed and stored in the cache memory.

이제까지 본 발명에 대하여 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 따라서 본 발명의 범위는 전술한 실시예에 한정되지 않고 특허청구범위에 기재된 내용 및 그와 동등한 범위 내에 있는 다양한 실시 형태가 포함되도록 해석되어야 할 것이다. Up to now, the present invention has been mainly looked at with respect to the embodiments. Those of ordinary skill in the art to which the present invention pertains will understand that it can be implemented in a modified form without departing from the essential characteristics of the present invention. Therefore, the disclosed embodiments are to be considered in an illustrative rather than a restrictive sense. Therefore, the scope of the present invention is not limited to the above-described embodiments, and should be construed to include various embodiments within the scope of the claims and equivalents thereto.

100: 블록체인 시스템
110: 트랜잭션 패커
120: 트랜잭션 에그리게이터
130: 실행 노드 그룹
100: Blockchain system
110: transaction packer
120: transaction aggregator
130: Execution node group

Claims (16)

사용자의 트랜잭션 요청에 따른 트랜잭션 정보를 나타내는 트랜잭션 프로포절(Tx Proposal)을 생성하고, 상기 생성된 트랜잭션 프로포절에 상기 트랜잭션 요청에 대응하는 키(key) 정보를 추가하는 트랜잭션 패커(Transaction Packer);
상기 트랜잭션 패커에서 전달받은 상기 트랜잭션 프로포절에 포함된 상기 키 정보에 따라 상기 트랜잭션 프로포절에 대응하는 공통 키셋 정보 및 공통 트랜잭션 배치(Transaction batch)정보를 생성하고, 상기 생성된 공통 트랜잭션 배치정보 별로 구분하여 미리 지정된 실행 노드그룹으로 전송하는 트랜잭션 에그리게이터(Transaction Aggregator); 및
상기 실행노드 그룹에 속하는 것으로, 상기 트랜잭션 에그리게이터로부터 전송된 상기 공통 트랜잭션 배치정보에 포함된 상기 트랜잭션 프로포절들에 대한 시뮬레이션을 실행하는 적어도 하나 이상의 트랜잭션 실행기(Transction executor)를 포함하고,
상기 트랜잭션 패커는,
문자열 복합키의 일부에 해당하는 선두 문자열 또는 후미 문자열이 동일한 미확정 형태의 부분 키 정보를 상기 트랜잭션 프로포절에 추가하고,
상기 트랜잭션 에그리게이터는,
상기 부분 키 정보를 이용하여 상기 공통 키셋 정보 및 상기 공통 트랜잭션 배치정보를 생성하고,
상기 트랜잭션 실행기는,
적어도 하나 이상의 캐쉬 메모리를 구비하고, 상기 캐쉬 메모리에 상기 트랜잭션 프로포절들의 시뮬레이션 실행에 따른 상태 정보를 저장하고 있으며, 상기 저장된 상태 정보를 다음의 트랜잭션 프로포절에 대한 시뮬레이션을 위한 값으로 사용하는 것을 특징으로 하는 공통 키셋정보를 이용한 트랜잭션 분산처리를 위한 블록체인 시스템.
a transaction packer that generates a transaction proposal indicating transaction information according to a user's transaction request, and adds key information corresponding to the transaction request to the generated transaction proposal;
According to the key information included in the transaction proposal received from the transaction packer, common keyset information and common transaction batch information corresponding to the transaction proposal are generated, and divided by the generated common transaction batch information in advance. a transaction aggregator that transmits to a specified execution nodegroup; and
It belongs to the execution node group and includes at least one or more transaction executors that execute simulations for the transaction proposals included in the common transaction arrangement information transmitted from the transaction aggregator,
The transaction packer,
adding partial key information in an unconfirmed form having the same leading string or trailing string corresponding to a part of the string composite key to the transaction proposal;
The transaction aggregator is
generating the common keyset information and the common transaction arrangement information using the partial key information;
The transaction executor is
At least one cache memory is provided, state information according to simulation execution of the transaction proposals is stored in the cache memory, and the stored state information is used as a value for simulation for the next transaction proposal, characterized in that A blockchain system for distributed processing of transactions using common keyset information.
삭제delete 청구항 1에 있어서,
상기 공통 키셋 정보는,
복수의 트랜잭션 프로포절들에 포함되는 키 정보들 중 동일한 키를 갖는 것들에 대한 키 집합을 나타내는 것을 특징으로 하는 공통 키셋정보를 이용한 트랜잭션 분산처리를 위한 블록체인 시스템.
The method according to claim 1,
The common keyset information is
A blockchain system for distributed transaction processing using common keyset information, characterized in that it indicates a key set for those having the same key among key information included in a plurality of transaction proposals.
청구항 1에 있어서,
상기 공통 트랜잭션 배치정보는,
상기 공통 키셋 정보에 포함된 키 정보들에 각각 대응하는 트랜잭션 프로포절들의 집합을 나타내는 것을 특징으로 하는 공통 키셋정보를 이용한 트랜잭션 분산처리를 위한 블록체인 시스템.
The method according to claim 1,
The common transaction arrangement information is
A block chain system for distributed transaction processing using common keyset information, characterized in that it represents a set of transaction proposals respectively corresponding to the key information included in the common keyset information.
청구항 1에 있어서,
상기 트랜잭션 에그리게이터는,
다수의 실행 노드들로부터 상기 실행 노드들 각각의 처리능력정보의 수신에 따라, 상기 공통 트랜잭션 배치정보의 계산을 위한 상기 실행 노드그룹을 지정하고, 상기 지정된 실행 노드그룹으로 상기 공통 트랜잭션 배치정보를 전송하는 것을 특징으로 하는 공통 키셋정보를 이용한 트랜잭션 분산처리를 위한 블록체인 시스템.
The method according to claim 1,
The transaction aggregator is
Upon receipt of the processing capability information of each of the execution nodes from a plurality of execution nodes, the execution node group for calculating the common transaction configuration information is designated, and the common transaction configuration information is transmitted to the designated execution node group. A blockchain system for distributed processing of transactions using common keyset information, characterized in that
삭제delete 청구항 1에 있어서,
상기 트랜잭션 실행기는,
상기 트랜잭션 프로포절의 시뮬레이션을 위해, 먼저 상기 캐쉬 메모리를 액세스하여 상기 상태 정보를 참고하고, 상기 캐쉬 메모리에 상기 트랜잭션 프로포절의 시뮬레이션을 위한 상태 정보가 존재하지 않는 경우에 블록체인에 저장된 원장 정보를 액세스하여 상기 캐쉬 메모리에 저장해 놓는 것을 특징으로 하는 공통 키셋정보를 이용한 트랜잭션 분산처리를 위한 블록체인 시스템.
The method according to claim 1,
The transaction executor is
For the simulation of the transaction proposal, first access the cache memory to refer to the state information, and when the state information for the simulation of the transaction proposal does not exist in the cache memory, access the ledger information stored in the block chain A blockchain system for distributed processing of transactions using common keyset information, characterized in that it is stored in the cache memory.
청구항 7에 있어서,
상기 트랜잭션 실행기는,
상기 블록체인에 저장된 상기 원장 정보를 상기 트랜잭션 프로포절의 시뮬레이션 전에 미리 상기 캐쉬 메모리에 저장해 놓는 것을 특징으로 하는 공통 키셋정보를 이용한 트랜잭션 분산처리를 위한 블록체인 시스템.
8. The method of claim 7,
The transaction executor is
A block chain system for distributed transaction processing using common keyset information, characterized in that the ledger information stored in the block chain is stored in the cache memory in advance before the simulation of the transaction proposal.
트랜잭션 패커(Transaction Packer)에서, 사용자의 트랜잭션 요청에 따른 트랜잭션 정보를 나타내는 트랜잭션 프로포절(Tx Proposal)을 생성하고, 상기 생성된 트랜잭션 프로포절에 상기 트랜잭션 요청에 대응하는 키(key) 정보를 추가하는 단계;
트랜잭션 에그리게이터(Transaction Aggregator)에서, 상기 트랜잭션 프로포절에 포함된 상기 키 정보에 따라 상기 트랜잭션 프로포절에 대응하는 공통 키셋 정보 및 공통 트랜잭션 배치(Transaction batch)정보를 생성하고, 상기 생성된 공통 트랜잭션 배치정보 별로 구분하여 미리 지정된 실행 노드그룹으로 전송하는 단계; 및
상기 실행노드 그룹에 속하는 적어도 하나 이상의 트랜잭션 실행기(Transction executor)에서, 상기 전송된 공통 트랜잭션 배치정보에 포함된 상기 트랜잭션 프로포절들에 대한 시뮬레이션을 실행하는 단계를 포함하고,
상기 트랜잭션 패커는,
문자열 복합키의 일부에 해당하는 선두 문자열 또는 후미 문자열이 동일한 미확정 형태의 부분 키 정보를 상기 트랜잭션 프로포절에 추가하고,
상기 트랜잭션 에그리게이터는,
상기 부분 키 정보를 이용하여 상기 공통 키셋 정보 및 상기 공통 트랜잭션 배치정보를 생성하고,
상기 트랜잭션 실행기는,
적어도 하나 이상의 캐쉬 메모리를 구비하고, 상기 캐쉬 메모리에 상기 트랜잭션 프로포절들의 시뮬레이션 실행에 따른 상태 정보를 저장하고 있으며, 상기 저장된 상태 정보를 다음의 트랜잭션 프로포절에 대한 시뮬레이션을 위한 값으로 사용하는 것을 특징으로 하는 공통 키셋정보를 이용한 트랜잭션 분산처리를 위한 블록체인 수행방법.
generating, in a transaction packer, a transaction proposal indicating transaction information according to a user's transaction request, and adding key information corresponding to the transaction request to the generated transaction proposal;
In a transaction aggregator, common keyset information and common transaction batch information corresponding to the transaction proposal are generated according to the key information included in the transaction proposal, and the generated common transaction batch information separating them by each and transmitting them to a pre-designated execution node group; and
In at least one transaction executor belonging to the execution node group, executing a simulation on the transaction proposals included in the transmitted common transaction arrangement information;
The transaction packer,
adding partial key information in an unconfirmed form having the same leading string or trailing string corresponding to a part of the string composite key to the transaction proposal;
The transaction aggregator is
generating the common keyset information and the common transaction arrangement information using the partial key information;
The transaction executor is
At least one cache memory is provided, state information according to simulation execution of the transaction proposals is stored in the cache memory, and the stored state information is used as a value for simulation for the next transaction proposal, characterized in that A blockchain implementation method for distributed transaction processing using common keyset information.
삭제delete 청구항 9에 있어서,
상기 공통 키셋 정보는,
복수의 트랜잭션 프로포절들에 포함되는 키 정보들 중 동일한 키를 갖는 것들에 대한 키 집합을 나타내는 것을 특징으로 하는 공통 키셋정보를 이용한 트랜잭션 분산처리를 위한 블록체인 수행방법.
10. The method of claim 9,
The common keyset information is
A method of performing a blockchain for distributed transaction processing using common keyset information, characterized in that it indicates a key set for those having the same key among key information included in a plurality of transaction proposals.
청구항 9에 있어서,
상기 공통 트랜잭션 배치정보는,
상기 공통 키셋 정보에 포함된 키 정보들에 각각 대응하는 트랜잭션 프로포절들의 집합을 나타내는 것을 특징으로 하는 공통 키셋정보를 이용한 트랜잭션 분산처리를 위한 블록체인 수행방법.
10. The method of claim 9,
The common transaction arrangement information is
A block chain execution method for distributed transaction processing using common keyset information, characterized in that it represents a set of transaction proposals respectively corresponding to the key information included in the common keyset information.
청구항 9에 있어서,
상기 생성된 공통 트랜잭션 배치정보 별로 구분하여 미리 지정된 실행 노드그룹으로 전송하는 단계는,
다수의 실행 노드들로부터 상기 실행 노드들 각각의 처리능력정보의 수신에 따라, 상기 공통 트랜잭션 배치정보의 계산을 위한 상기 실행 노드그룹을 지정하고, 상기 지정된 실행 노드그룹으로 상기 공통 트랜잭션 배치정보를 전송하는 것을 특징으로 하는 공통 키셋정보를 이용한 트랜잭션 분산처리를 위한 블록체인 수행방법.
10. The method of claim 9,
The step of classifying the generated common transaction arrangement information and transmitting it to a pre-designated execution node group includes:
Upon receipt of the processing capability information of each of the execution nodes from a plurality of execution nodes, the execution node group for calculating the common transaction configuration information is designated, and the common transaction configuration information is transmitted to the designated execution node group. A block chain execution method for distributed processing of transactions using common keyset information, characterized in that
삭제delete 청구항 9에 있어서,
상기 트랜잭션 프로포절들의 시뮬레이션을 실행하는 단계는,
상기 트랜잭션 프로포절의 시뮬레이션을 위해, 먼저 상기 캐쉬 메모리를 액세스하여 상기 상태 정보를 참고하고, 상기 캐쉬 메모리에 상기 트랜잭션 프로포절의 시뮬레이션을 위한 상기 상태 정보가 존재하지 않는 경우에 블록체인에 저장된 원장 정보를 액세스하여 상기 캐쉬 메모리에 저장해 놓는 것을 특징으로 하는 공통 키셋정보를 이용한 트랜잭션 분산처리를 위한 블록체인 수행방법.
10. The method of claim 9,
The step of executing the simulation of the transaction proposals,
For the simulation of the transaction proposal, first access the cache memory to refer to the state information, and when the state information for the simulation of the transaction proposal does not exist in the cache memory, access the ledger information stored in the block chain and a block chain execution method for transaction distribution processing using common keyset information, characterized in that it is stored in the cache memory.
청구항 15에 있어서,
상기 트랜잭션 프로포절들의 시뮬레이션을 실행하는 단계는,
상기 블록체인에 저장된 상기 원장 정보를 상기 트랜잭션 프로포절의 시뮬레이션 전에 미리 상기 캐쉬 메모리에 저장해 놓는 것을 특징으로 하는 공통 키셋정보를 이용한 트랜잭션 분산처리를 위한 블록체인 수행방법.
16. The method of claim 15,
The step of executing the simulation of the transaction proposals,
A block chain execution method for distributed transaction processing using common keyset information, characterized in that the ledger information stored in the block chain is stored in the cache memory in advance before the simulation of the transaction proposal.
KR1020210061714A 2020-12-08 2021-05-13 Blockchain system and performance method for distributed processing of transaction using common keyset information KR102346293B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020200170479 2020-12-08
KR20200170479 2020-12-08

Publications (1)

Publication Number Publication Date
KR102346293B1 true KR102346293B1 (en) 2022-01-03

Family

ID=79348327

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210061714A KR102346293B1 (en) 2020-12-08 2021-05-13 Blockchain system and performance method for distributed processing of transaction using common keyset information

Country Status (1)

Country Link
KR (1) KR102346293B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023128273A1 (en) * 2021-12-27 2023-07-06 엘에스웨어(주) System and method for accessing ledger information by using common keyset information

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05101015A (en) * 1991-10-07 1993-04-23 Mitsubishi Electric Corp Device and method for simulation
KR20150002283A (en) * 2013-06-28 2015-01-07 삼성전자주식회사 Simulation apparatus and Distributed simulation system
KR101986081B1 (en) * 2018-12-24 2019-06-05 (주)소프트제국 Method for sharing and verifing a block between specific nodes in a blockchain
KR20200012705A (en) * 2018-07-27 2020-02-05 박기업 Apparatus for managing group of nodes which comprises transaction of dual signature based on group key on blockchain network and computing apparatus
KR20200080265A (en) * 2017-11-09 2020-07-06 엔체인 홀딩스 리미티드 System for recording the confirmation key on the blockchain
KR20200120863A (en) * 2019-04-12 2020-10-22 알리바바 그룹 홀딩 리미티드 Parallel execution of transactions in a distributed ledger system

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05101015A (en) * 1991-10-07 1993-04-23 Mitsubishi Electric Corp Device and method for simulation
KR20150002283A (en) * 2013-06-28 2015-01-07 삼성전자주식회사 Simulation apparatus and Distributed simulation system
KR20200080265A (en) * 2017-11-09 2020-07-06 엔체인 홀딩스 리미티드 System for recording the confirmation key on the blockchain
KR20200012705A (en) * 2018-07-27 2020-02-05 박기업 Apparatus for managing group of nodes which comprises transaction of dual signature based on group key on blockchain network and computing apparatus
KR101986081B1 (en) * 2018-12-24 2019-06-05 (주)소프트제국 Method for sharing and verifing a block between specific nodes in a blockchain
KR20200120863A (en) * 2019-04-12 2020-10-22 알리바바 그룹 홀딩 리미티드 Parallel execution of transactions in a distributed ledger system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023128273A1 (en) * 2021-12-27 2023-07-06 엘에스웨어(주) System and method for accessing ledger information by using common keyset information

Similar Documents

Publication Publication Date Title
JP7472333B2 (en) METHOD AND SYSTEM FOR MINING BLOCKCHAIN TRANSACTIONS PROVIDED BY VALIDATOR NODES
US20220029811A1 (en) Consensus layer architecture for maintaining security with reduced processing power dependency in untrusted decentralized computing platforms
KR102548540B1 (en) Method and apparatus for cross-ledger transfer between distributed ledgers and systems using cross-ledger transfer
JP7114629B2 (en) System and method for parallel verification of blockchain transactions
EP4254183A1 (en) Transaction processing method and apparatus, computer device, and storage medium
CN109472572B (en) Contract system based on block chain main chain and parallel multiple sub-chains
CN111711526B (en) Method and system for consensus of block chain nodes
CN110287205A (en) A kind of across the fragment transaction data processing method of block chain and device
CN112162846B (en) Transaction processing method, device and computer readable storage medium
Verdian et al. Quant overledger whitepaper
CN113259478B (en) Method and device for executing transaction in blockchain system and blockchain system
CN103038718B (en) Localization data affinity system and mixed method
KR102346293B1 (en) Blockchain system and performance method for distributed processing of transaction using common keyset information
Zhao et al. A novel enhanced lightweight node for blockchain
Pop et al. Blockchain based decentralized applications: Technology review and development guidelines
Ko et al. Survey on blockchain‐based non‐fungible tokens: History, technologies, standards, and open challenges
KR102346292B1 (en) System and method for classifing transaction using key information
Hutton et al. Design of a scalable distributed ledger
KR20230099011A (en) System and method for accessing ledger information using common keyset information
KR20230099012A (en) System and method for accessing ledger information having multipe storage
CN110321218A (en) A method of based on point to point network system solution MIXED INTEGER program
Min et al. Blockchain-native mechanism supporting the circulation of complex physical assets
Rai et al. Load balanced distributed directories
JP7274498B2 (en) How transactions are executed
CN110019057A (en) Request processing method and device

Legal Events

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