KR20220116655A - System of speculative transaction execution for Blockchain scalability and method thereof - Google Patents

System of speculative transaction execution for Blockchain scalability and method thereof Download PDF

Info

Publication number
KR20220116655A
KR20220116655A KR1020210019754A KR20210019754A KR20220116655A KR 20220116655 A KR20220116655 A KR 20220116655A KR 1020210019754 A KR1020210019754 A KR 1020210019754A KR 20210019754 A KR20210019754 A KR 20210019754A KR 20220116655 A KR20220116655 A KR 20220116655A
Authority
KR
South Korea
Prior art keywords
transaction
chain
predictive
processing
state
Prior art date
Application number
KR1020210019754A
Other languages
Korean (ko)
Other versions
KR102567091B1 (en
Inventor
박찬익
조용래
Original Assignee
포항공과대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 포항공과대학교 산학협력단 filed Critical 포항공과대학교 산학협력단
Priority to KR1020210019754A priority Critical patent/KR102567091B1/en
Publication of KR20220116655A publication Critical patent/KR20220116655A/en
Application granted granted Critical
Publication of KR102567091B1 publication Critical patent/KR102567091B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/04Forecasting or optimisation specially adapted for administrative or management purposes, e.g. linear programming or "cutting stock problem"
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/04Payment circuits
    • G06Q20/06Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
    • G06Q20/065Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes

Landscapes

  • Business, Economics & Management (AREA)
  • Engineering & Computer Science (AREA)
  • Strategic Management (AREA)
  • Theoretical Computer Science (AREA)
  • Human Resources & Organizations (AREA)
  • Economics (AREA)
  • Accounting & Taxation (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Finance (AREA)
  • Development Economics (AREA)
  • Signal Processing (AREA)
  • Game Theory and Decision Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Marketing (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

The present invention relates to a predictive transaction processing system for blockchain scalability and a method thereof. According to the present invention, the predictive transaction processing system for blockchain scalability, which is able to predictively process an off-chain transaction, and post-processes an on-chain transaction, comprises: a user terminal transmitting a request for using a service to a client; an off-chain client configuring the request transmitted from the user terminal as a transaction, and transmitting the transaction to a predictive processor of an off-chain and a blockchain of an on-chain; and the predictive processor using a data structure and calculation, and predictively processing the transaction, and transmitting the processed results to the client, and performing the post-processing for the block data transmitted from the client. The present invention aims to provide a predictive transaction processing system for blockchain scalability and a method thereof, which are capable of innovatively improving blockchain performance scalability.

Description

블록체인 확장성을 위한 예측적 트랜잭션 처리 시스템 및 방법{System of speculative transaction execution for Blockchain scalability and method thereof}System of speculative transaction execution for Blockchain scalability and method thereof

본 발명은 블록체인 확장성을 높이기 위한 오프 체인 상에서의 예측적 트랜잭션 처리 시스템 및 방법에 관한 발명이다.The present invention relates to an off-chain predictive transaction processing system and method for increasing blockchain scalability.

블록체인 기반 서비스를 실생활에서 이용하기 위해서는, 블록체인 트랜잭션 처리 속도가 중요하며, 블록체인 기술 확산의 큰 걸림돌은 낮은 확장성이다. 예를 들어, 비트코인은 한 트랜잭션이 확정될 때까지 평균 10분이 소요된다고 알려져 있으며, 이더리움은 평균 22초 정도 소요된다.In order to use blockchain-based services in real life, blockchain transaction processing speed is important, and a major obstacle to the spread of blockchain technology is low scalability. For example, Bitcoin is known to take an average of 10 minutes for a transaction to be confirmed, while Ethereum takes an average of 22 seconds.

블록체인 성능 확장성을 해결하기 위하여 합의 알고리즘 개선, 암호 기법 개선, 오프 체인 트랜잭션 처리 등 다양한 기법들이 개발되고 있다. 예를 들어, 블록체인 오프 체인 트랜잭션 처리 방법은 모든 블록체인 노드들이 참여하는 온 체인 트랜잭션 처리에 비해 속도가 매우 빠르다. 그 이유는 거래 당사자들만 참여하는 작은 규모의 네트워크(즉, 오프 체인)에서 신속한 합의가 진행되기 때문이다.In order to solve the block chain performance scalability, various techniques such as consensus algorithm improvement, encryption technique improvement, and off-chain transaction processing are being developed. For example, the blockchain off-chain transaction processing method is very fast compared to on-chain transaction processing in which all blockchain nodes participate. The reason for this is that rapid consensus occurs in a small network (ie, off-chain) in which only trading parties participate.

한편, 컴퓨터 프로그램의 성능 향상을 위해서, 예측적 처리 기법(Speculative execution)이 존재한다. 예측적 처리 기법은 프로그램이 실행하려는 어떤 연산이 완료되기 전에, 미리 그 결과를 예측하고, 그 예측된 결과 값을 다음 연산 실행에 활용하는 방식으로 성능을 높이는 일반적인 방법이다. 하지만, 예측적 처리 기법은 예측 결과가 실제 결과와 다를 경우, 별도의 후 처리 과정이 필요하다. 별도의 후 처리 과정으로는, 예측 실패한 연산 및 그 연산과 의존 관계를 가지는 다른 연산들의 효과를 실패 이전의 안정적인 상태로 복구하는 연산 등이 포함된다.On the other hand, in order to improve the performance of a computer program, a predictive processing technique (Speculative execution) exists. The predictive processing technique is a general method to improve performance by predicting the result in advance before any operation to be executed by the program is completed, and using the predicted result value for the next operation execution. However, the predictive processing technique requires a separate post-processing process when the predicted result is different from the actual result. A separate post-processing process includes an operation that restores an operation that has failed prediction and the effects of other operations that have a dependency relationship on the operation to a stable state before failure.

상기와 같은 문제점을 해결하기 위한 본 발명의 목적은, 오프 체인에서의 예측적 처리 기법을 이용하여 블록체인 트랜잭션의 신속한 처리를 지원하는 블록체인 확장성을 위한 예측적 트랜잭션 처리 시스템 및 방법을 제공하는데 있다.An object of the present invention to solve the above problems is to provide a predictive transaction processing system and method for blockchain scalability that supports rapid processing of blockchain transactions using off-chain predictive processing techniques. have.

상기 목적을 달성하기 위한 본 발명의 블록체인 확장성을 위한 예측적 트랜잭션 처리 시스템은, 오프 체인 트랜잭션을 예측적 처리하고, 온 체인 트랜잭션을 후 처리하는 블록체인 확장성을 위한 예측적 트랜잭션 처리 시스템에 있어서, 서비스 사용을 위한 요청을 클라이언트에게 전달하는 사용자 단말과; 사용자 단말로부터 전달 받은 요청을 트랜잭션으로 구성하여 오프 체인의 예측적 처리기와 온 체인의 블록체인에 전달하는 오프 체인의 클라이언트; 및 데이터 구조와 연산을 활용하여 트랜잭션을 예측적 처리하고, 처리된 결과를 클라이언트에 전달하고, 클라이언트로부터 전달된 블록 데이터에 대해 후 처리를 진행하는 예측적 처리기; 를 포함할 수 있다.The predictive transaction processing system for blockchain scalability of the present invention for achieving the above object is a predictive transaction processing system for blockchain scalability that predictively processes off-chain transactions and post-processes on-chain transactions. A user terminal comprising: a user terminal transmitting a request for service use to a client; an off-chain client that composes a request received from a user terminal into a transaction and delivers it to an off-chain predictive processor and an on-chain blockchain; and a predictive processor that predictively processes a transaction by utilizing a data structure and operation, delivers the processed result to the client, and performs post-processing on the block data transmitted from the client; may include.

예측적 처리기는, 클라이언트가 오프라인 상태인 경우에 온 체인의 블록 데이터를 주기적으로 가져와 로컬 확정 상태를 갱신하는 연산을 실행하기 위한 온 체인의 백그라운드 블록 동기화와 연동될 수 있다.The predictive processor may be linked with on-chain background block synchronization to execute an operation that periodically fetches on-chain block data and updates the local confirmed state when the client is offline.

예측적 처리기의 데이터 구조는, 오프 체인 상에서 예측적 처리 결과를 반영하는 예측 상태 정보 데이터 베이스와; 고유 순서 별 트랜잭션 및 그 상태를 저장하는 히스토리와; 트랜잭션간 의존성 정보를 관리하는 의존성 정보 관리 그래프; 및 온 체인상 트랜잭션 처리 결과를 관리하는 확정 상태 정보 데이터 베이스; 를 포함할 수 있다.The data structure of the predictive processor includes: a predictive state information database that reflects predictive processing results on an off-chain; a history for storing transactions and their states for each unique order; a dependency information management graph for managing dependency information between transactions; and a fixed state information database for managing on-chain transaction processing results; may include.

본 발명의 다른 목적을 달성하기 위한 본 발명의 블록체인 확장성을 위한 예측적 트랜잭션 처리 방법은, 예측적 처리기가 오프 체인 트랜잭션을 예측적 처리하는 예측 연산 수행 단계와; 온 체인 트랜잭션을 후 처리하는 후 처리 연산 수행 단계; 를 포함할 수 있다.A predictive transaction processing method for block chain scalability of the present invention for achieving another object of the present invention comprises the steps of performing a prediction operation in which a predictive processor predictively processes an off-chain transaction; performing post-processing operations for post-processing on-chain transactions; may include.

예측 연산 수행 단계는, 트랜잭션에 고유 순서 번호를 할당하는 순서 단계와; 트랜잭션을 실행하는 실행 단계와; 트랜잭션간 의존성 정보 분석 및 계산하는 단계; 및 실행 결과 및 데이터 구조를 갱신하는 단계; 를 포함할 수 있다.The predicting operation performing step may include: an ordering step of assigning a unique sequence number to a transaction; an execution step of executing a transaction; analyzing and calculating inter-transaction dependency information; and updating the execution result and data structure; may include.

예측 연산 수행 단계는, 클라이언트가 사용자 단말 트랜잭션을 예측적 처리기에 전달하는 단계와; 예측적 처리 단계 진입 및 사용자 단말 트랜잭션에 대한 고유 순서 번호 할당 단계와; 복수의 파라미터로 구성된 정보를 로컬 스토리지에 로그 선행 기입하는 단계와; 사용자 단말 트랜잭션 실행 결과 값을 예측 상태 정보 데이터 베이스에 저장하는 단계와; 트랜잭션 실행 결과 값을 클라이언트에 전달하는 단계와; 파라미터 사용자 단말 트랜잭션에 대한 의존성 정보를 계산하는 단계; 및 파라미터를 예측적 처리기의 데이터 구조의 히스토리와 의존성 정보 관리 그래프에 저장하는 단계; 를 포함할 수 있다.The predictive operation performing step may include: a client sending a user terminal transaction to a predictive processor; entering the predictive processing phase and assigning a unique sequence number to the user terminal transaction; pre-writing information composed of a plurality of parameters into a local storage; storing the user terminal transaction execution result value in a prediction state information database; transmitting a transaction execution result value to a client; calculating dependency information for a parametric user terminal transaction; and storing the parameters in the history and dependency information management graph of the data structure of the predictive processor; may include.

후 처리 연산 수행 단계는, 오프 체인상 트랜잭션의 예측 결과와 온 체인상 트랜잭션 실행 결과간 비교하는 검사 단계와; 검사 단계의 오프 체인상 트랜잭션의 예측 결과와 온 체인상 트랜잭션 실행 결과가 동일하면 확정하는 단계와; 검사 단계의 오프 체인상 트랜잭션의 예측 결과와 온 체인상 트랜잭션 실행 결과가 틀리면 취소하는 단계와; 취소하는 단계가 실행되면 예측 상태 정보 데이터 베이스를 온 체인 블록체인과 일관된 상태로 되돌리는 되감기(rollback) 단계; 및 되감기(rollback) 단계가 실행된 트랜잭션들을 재실행(re-execution)하는 재실행 단계; 를 포함할 수 있다.The performing post-processing operation may include: a checking step of comparing a prediction result of an off-chain transaction with an on-chain transaction execution result; determining if the prediction result of the off-chain transaction in the checking step and the on-chain transaction execution result are the same; canceling if the prediction result of the off-chain transaction in the checking step is different from the on-chain transaction execution result; a rollback step of returning the predicted state information database to a state consistent with the on-chain blockchain when the cancellation step is executed; and a re-execution step of re-executing the transactions in which the rollback step has been executed. may include.

후 처리 연산 수행 단계는, 예측적 처리기가 온 체인 처리된 트랜잭션를 전달 받고, 그와 동일한 고유 식별자를 가지는 오프 체인 처리된 트랜잭션를 검색하는 단계와; 온 체인 처리된 트랜잭션이 커밋(commit)되었는지 여부를 확정하는 단계와; 온 체인 처리된 트랜잭션이 커밋(commit)된 경우, 확정 상태 정보 데이터베이스에 온 체인 처리된 트랜잭션의 실행 결과를 반영하는 단계와; 온 체인 처리된 트랜잭션과 동일한 트랜잭션 고유 식별자를 가지며 예측적 실행되었던 트랜잭션의 순서 및 실행 결과가 서로 일치하는지 비교하는 단계와; 히스토리 자료 구조에 온 체인 처리된 트랜잭션 결과를 갱신하고, 프로그램을 종료하는 단계; 를 포함할 수 있다.The performing post-processing operation includes: receiving, by the predictive processor, an on-chain processed transaction, and searching for an off-chain processed transaction having the same unique identifier; determining whether an on-chain transaction has been committed; when the on-chain transaction is committed, reflecting the execution result of the on-chain transaction in the final state information database; Comparing whether an order and execution result of a transaction that has a transaction unique identifier identical to that of an on-chain processed transaction are identical to each other; updating the on-chain transaction result in the history data structure and terminating the program; may include.

후 처리 연산 수행 단계는, 예측적 처리기가 온 체인 처리된 트랜잭션을 전달 받고, 그와 동일한 고유 식별자를 가지는 오프 체인 처리된 트랜잭션을 검색하는 단계와; 온 체인 처리된 트랜잭션이 커밋(commit)되었는지 여부를 확정하는 단계와; 온 체인 처리된 트랜잭션이 커밋(commit)되지 않은 경우, 의존성 정보 관리 그래프상 온 체인 처리된 트랜잭션와 선행 및 후행 관계에 있는 모든 예측 상태의 트랜잭션을 계산하여 이를 집합 A 에 포함하는 단계와; 의존성 정보 관리 그래프에 집합 A가 비어 있는지 여부를 확인하는 단계를 실행하고, 집합 A가 비어 있는 경우 종료하는 단계와; 집합 A가 비어 있지 않은 경우, 의존성 정보 관리 그래프에서 집합 A를 삭제하고, 집합 A의 각 트랜잭션의 상태를 취소(abort) 상태로 갱신하는 단계와; 예측 상태 정보 데이터 베이스를 확정 상태 정보 데이터 베이스로 되감기(rollback)하는 단계; 및 예측 상태 정보 데이터 베이스에 대해 집합 A의 각 트랜잭션을 재실행하고 프로그램을 종료하는 단계; 를 포함할 수 있다.The performing post-processing operation includes: receiving, by the predictive processor, an on-chain processed transaction, and searching for an off-chain processed transaction having the same unique identifier; determining whether an on-chain transaction has been committed; when the on-chain processed transaction is not committed, calculating the transaction in all predicted states that have a preceding and following relationship with the on-chain processed transaction on the dependency information management graph and including it in a set A; executing the step of checking whether the set A is empty in the dependency information management graph, and terminating if the set A is empty; if the set A is not empty, deleting the set A from the dependency information management graph and updating the state of each transaction in the set A to an abort state; rolling back the predicted state information database to the definitive state information database; and re-executing each transaction in set A against the predicted state information database and terminating the program. may include.

예측적 처리 연산 단계는, 트랜잭션은 제출 시점에서 준비 상태로 진입하는 단계와; 예측적 실행에 의해 예비 확정 상태로 변화하는 단계와; 온 체인 처리 결과에 따라 후 처리 취소에 의한 최종 취소 상태로 변화하거나, 후 처리 확정에 의한 최종-확정 상태로 변화하는 단계와; 준비 상태로 진입하는 단계에서, 이전 취소된 트랜잭션과의 의존성 관계를 가지는 경우, 사전취소 상태로 변화하는 단계; 를 포함할 수 있다.The predictive processing operation step includes: a transaction entering a ready state at the time of submission; changing to a pre-determined state by predictive execution; changing to a final canceled state by post-processing cancellation or to a final-confirmed state by post-processing confirmation according to an on-chain processing result; in the step of entering the ready state, changing to the pre-cancellation state if there is a dependency relationship with the previously canceled transaction; may include.

온 체인 처리된 트랜잭션과 동일한 트랜잭션 고유 식별자를 가지며 예측적 실행되었던 트랜잭션의 순서 및 실행 결과가 서로 일치하는지 비교하는 단계는, 예측적 처리기가 온 체인 처리 완료된 트랜잭션을 통보 받는 단계와; 의존성 정보 관리 그래프에서 온 체인 처리 완료된 트랜잭션에 상응하는 노드를 검색하고, 그 노드의 진입 간선에 연결된 노드 집합을 계산하는 단계와; 노드 집합이 공집합이거나, 노드 집합의 각 노드 상태가 모두 최종 확정인지 여부를 확인하는 단계; 및 노드 집합의 각 노드 상태가 모두 최종 확정되었으면, "네"를 리턴하는 단계를; 노드 집합의 각 노드 상태가 모두 최종 확정되지 않았으면, "아니오"를 리턴하는 단계; 를 포함할 수 있다.Comparing whether the order and execution result of the transaction that has the same transaction unique identifier as the on-chain processed transaction match each other may include: receiving, by the predictive processor, notification of the on-chain processed transaction; retrieving a node corresponding to an on-chain processed transaction in a dependency information management graph, and calculating a node set connected to an entry edge of the node; confirming whether the node set is an empty set or all node states of the node set are final; and returning "yes" when the state of each node in the node set is finally confirmed; returning "No" when the state of each node of the node set is not finally confirmed; may include.

본 발명의 블록체인 확장성을 위한 예측적 트랜잭션 처리 시스템 및 방법에 의하면, 사용자 단말에서 제출한 트랜잭션을 오프 체인상에서 예측적 처리하고 결과를 사용자에게 전송함으로써, 온체인상 높은 지연을 갖는 분산 합의가 끝나기 전에 결과를 신속하게 알 수 있다. 이를 통해 블록체인 성능 확장성뿐만 아니라 트랜잭션 지연 시간을 획기적으로 개선할 수 있는 장점을 가진다. According to the predictive transaction processing system and method for block chain scalability of the present invention, a distributed consensus with high on-chain delay is achieved by predictively processing the transaction submitted by the user terminal off-chain and transmitting the result to the user. You can see the results quickly before it's over. This has the advantage of dramatically improving transaction latency as well as blockchain performance scalability.

본 발명의 블록체인 확장성을 위한 예측적 트랜잭션 처리 시스템 및 방법에 의하면, 예측 처리기는 다양한 블록체인 플랫폼의 전단계 처리 모듈로 적용할 수 있는 장점을 가진다. According to the predictive transaction processing system and method for blockchain scalability of the present invention, the predictive processor has the advantage of being applicable as a pre-processing module of various blockchain platforms.

도 1은 본 발명의 블록체인 확장성을 위한 예측적 트랜잭션 처리 시스템의 구성을 나타낸 도면이다.
도 2 는 도 1의 시스템에서 예측적 처리기에 의한 트랜잭션 처리를 위해 사용되는 데이터 구조를 나타낸 도면이다.
도 3은 도 1의 시스템에서 예측적 처리기에 의한 트랜잭션 처리를 위해 진행하는 연산을 나타낸 도면이다.
도 4는 도 1의 시스템에서 예측적 처리기에 의해 정의되는 트랜잭션 상태 변화도를 나타낸 도면이다.
도 5는 도 1의 시스템에서 예측적 처리기의 클라이언트 트랜잭션에 대한 예측적 처리 단계 동작을 나타낸 도면이다.
도 6a 및 6b는 도4의 예측적 처리기의 주요 연산에서 예측적 처리기의 온 체인 트랜잭션에 대한 후 처리 단계 동작을 나타낸 도면이다.
도 7 은 도 6a 및 6b의 온 체인 트랜잭션(T')와 오프-체인 트랜잭션(T)에 대해 순서 및 실행 결과를 비교하는 단계를 나타낸 도면이다.
1 is a diagram showing the configuration of a predictive transaction processing system for block chain scalability of the present invention.
FIG. 2 is a diagram illustrating a data structure used for transaction processing by a predictive processor in the system of FIG. 1 .
3 is a diagram illustrating an operation performed for transaction processing by a predictive processor in the system of FIG. 1 .
4 is a diagram illustrating a transaction state change diagram defined by a predictive processor in the system of FIG. 1 .
5 is a diagram illustrating a predictive processing step operation for a client transaction of a predictive processor in the system of FIG. 1 .
6A and 6B are diagrams illustrating post-processing step operations for an on-chain transaction of the predictive processor in the main operation of the predictive processor of FIG. 4 .
7 is a diagram illustrating the steps of comparing the order and execution results for the on-chain transaction (T′) and the off-chain transaction (T) of FIGS. 6A and 6B .

본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.Since the present invention can have various changes and can have various embodiments, specific embodiments are illustrated in the drawings and described in detail in the detailed description. However, this is not intended to limit the present invention to specific embodiments, and it should be understood that all modifications, equivalents and substitutes included in the spirit and scope of the present invention are included. In describing each figure, like reference numerals have been used for like elements.

제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는 데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. "및/또는"이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.Terms such as first, second, A, B, etc. may be used to describe various elements, but the elements should not be limited by the terms. The above terms are used only for the purpose of distinguishing one component from another. For example, without departing from the scope of the present invention, a first component may be referred to as a second component, and similarly, a second component may also be referred to as a first component. The term “and/or” includes a combination of a plurality of related listed items or any of a plurality of related listed items.

어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다When a component is referred to as being “connected” or “connected” to another component, it is understood that the other component may be directly connected or connected to the other component, but other components may exist in between. it should be On the other hand, when it is said that a certain element is "directly connected" or "directly connected" to another element, it should be understood that there is no other element in the middle.

본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terms used in the present application are only used to describe specific embodiments, and are not intended to limit the present invention. The singular expression includes the plural expression unless the context clearly dictates otherwise. In the present application, terms such as “comprise” or “have” are intended to designate that a feature, number, step, operation, component, part, or combination thereof described in the specification exists, but one or more other features It is to be understood that this does not preclude the possibility of the presence or addition of numbers, steps, operations, components, parts, or combinations thereof.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless defined otherwise, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art to which this invention belongs. Terms such as those defined in a commonly used dictionary should be interpreted as having a meaning consistent with the meaning in the context of the related art, and should not be interpreted in an ideal or excessively formal meaning unless explicitly defined in the present application. does not

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

도 1은 본 발명의 블록체인 확장성을 위한 예측적 트랜잭션 처리 시스템의 구성을 나타낸 도면이다.1 is a diagram showing the configuration of a predictive transaction processing system for block chain scalability of the present invention.

도 1을 참조하면, 본 발명의 블록체인 확장성을 위한 예측적 트랜잭션 처리 시스템은, 사용자 단말(110), 오프 체인(100)의 예측적 처리기(101) 및 클라이언트(102), 온 체인(120)을 포함한다.Referring to FIG. 1 , the predictive transaction processing system for blockchain scalability of the present invention includes a user terminal 110 , an off-chain 100 predictive processor 101 and a client 102 , and an on-chain 120 . ) is included.

사용자 단말(110)은 블록체인 기반 서비스 사용자로 간주될 수 있으며, 서비스 사용을 위한 요청(111)을 클라이언트(102)에게 전달한다. 클라이언트(102)는 전달 받은 요청을 트랜잭션(104)으로 구성하여 오프 체인(100)의 예측적 처리기(101)와 온 체인(120) 블록체인에 동시 전달한다. 온 체인(120)의 트랜잭션 처리가 진행되는 동안, 오프 체인(100)의 예측적 처리기(101)는 데이터 구조와 주요 연산을 활용하여 트랜잭션을 예측적 처리(speculative execution)한다. The user terminal 110 may be regarded as a blockchain-based service user, and transmits a request 111 for service use to the client 102 . The client 102 composes the received request as a transaction 104 and simultaneously transmits it to the predictive processor 101 of the off-chain 100 and the on-chain 120 block chain. While the transaction processing of the on-chain 120 is in progress, the speculative processor 101 of the off-chain 100 performs speculative execution of the transaction by utilizing the data structure and main operation.

예측적 처리기(101)는 처리된 결과를 클라이언트(102)에 전달하고 클라이언트(102)는 사용자 단말(110)에 최종 결과를 전달한다. 그리고 온 체인(120) 트랜잭션 결과가 블록 형태(106)로 송신되어 클라이언트(102)가 수신하면, 클라이언트(102)는 이를 예측적 처리기(101)에 전달(103)한다. The predictive processor 101 delivers the processed result to the client 102 , and the client 102 delivers the final result to the user terminal 110 . And when the on-chain 120 transaction result is transmitted in block form 106 and received by the client 102 , the client 102 transmits 103 it to the predictive processor 101 .

전달받은 블록 데이터(103)에 대해 예측적 처리기(101)는 후 처리 단계를 진행하며, 여기에는 오프 체인(100)상 예측한 트랜잭션 결과와 온 체인(120)상 트랜잭션 결과를 비교하는 단계, 그리고 결과 동일 유무에 따른 트랜잭션 상태 최종 확정 또는 트랜잭션 취소, 상태 되감기(rollback), 트랜잭션 재실행하는 단계가 포함된다.For the received block data 103, the predictive processor 101 performs a post-processing step, including a step of comparing the transaction result predicted on the off-chain 100 with the transaction result on the on-chain 120, and The steps include final confirmation of the transaction state or transaction cancellation, state rollback, and transaction re-execution depending on whether the result is the same.

또한, 백그라운드 블록 동기화(121)는, 클라이언트(102)가 오프라인 상태일 때는 예측적 처리기(101)가 클라이언트(102) 도움 없이 온 체인(120) 블록 데이터를 주기적으로 가져와 로컬 확정 상태를 갱신하는 연산이다.In addition, background block synchronization 121 is an operation in which when the client 102 is offline, the predictive processor 101 periodically fetches the on-chain 120 block data without the help of the client 102 to update the local fixed state. to be.

도 2 는 도 1의 시스템에서 예측적 처리기에 의한 트랜잭션 처리를 위해 사용되는 데이터 구조를 나타낸 블록도이다.FIG. 2 is a block diagram illustrating a data structure used for transaction processing by a predictive processor in the system of FIG. 1 .

도 2를 참조하면, 예측적 처리기(101)가 예측적 처리 및 후 처리에 사용하는 데이터 구조는 예측 상태 정보 데이터 베이스(DB)(131)와, 확정 상태 정보 데이터 베이스(DB)(134)와, 히스토리(132)와, 의존성 정보 관리 그래프(133)를 포함한다.Referring to FIG. 2 , the data structures used by the predictive processor 101 for predictive processing and post-processing include a prediction state information database (DB) 131 , a definite state information database (DB) 134 , and , a history 132 , and a dependency information management graph 133 .

예측 상태 정보 데이터 베이스(131)는 오프 체인(100) 상에서 예측적 처리 결과를 반영한다.The predictive state information database 131 reflects the predictive processing result on the off-chain 100 .

확정 상태 정보 데이터 베이스(134)는 온 체인(120)상 트랜잭션 처리 결과를 관리한다.The confirmed state information database 134 manages the transaction processing results on the on-chain 120 .

히스토리(132)는 고유 순서 별 트랜잭션 및 그 상태를 저장한다.The history 132 stores transactions and their states for each unique order.

의존성 정보 관리 그래프(133)는 트랜잭션간 의존성 정보를 관리한다.The dependency information management graph 133 manages inter-transaction dependency information.

도 3은 도 1의 시스템에서 예측적 처리기(101)가 트랜잭션 처리를 위해 진행하는 연산을 도시한 흐름도이다.3 is a flowchart illustrating an operation performed by the predictive processor 101 for transaction processing in the system of FIG. 1 .

도 3을 참조하면, 예측적 처리 연산 단계(S141)를 구성하는 단계는, 각 트랜잭션 별 고유 순서 번호를 할당하는 단계(S110), 트랜잭션을 실행하는 단계(S120), 트랜잭션간 의존성 정보 분석 및 계산하는 단계(S130), 실행 결과 및 데이터 구조를 갱신하는 단계(S140)를 포함한다. Referring to FIG. 3 , the steps of configuring the predictive processing operation step S141 include allocating a unique sequence number for each transaction (S110), executing the transaction (S120), analyzing and calculating inter-transaction dependency information. step (S130), and updating the execution result and data structure (S140).

후 처리 단계(S142)를 구성하는 단계는, 오프 체인(100)상 트랜잭션의 예측 결과와 온 체인(120)상 트랜잭션 실행 결과간 비교하는 검사 단계(S210), 그 결과가 옳다면 확정하는 단계(S220), 틀리면 취소하는 단계(S230), 취소된 경우에는 예측 상태 정보 데이터 베이스(DB)를 온 체인 블록체인과 일관된 상태로 되돌리는 되감기(rollback) 단계(S240), 되감기 된 트랜잭션들을 재실행(re-execution)하는 단계(S250)를 포함한다.The step of configuring the post-processing step (S142) is a checking step (S210) of comparing the prediction result of the transaction on the off-chain 100 and the transaction execution result on the on-chain 120 (S210), and a step of confirming if the result is correct ( S220), a step of canceling if wrong (S230), a rollback step of returning the predicted state information database (DB) to a state consistent with the on-chain blockchain in case of cancellation (S240), re-executing the rewound transactions (re -execution) includes a step (S250).

도 4는 도 1의 시스템에서 예측적 처리 연산 단계(S141)에 의해 정의되는 트랜잭션 상태 변화도를 도시한 흐름도이다.4 is a flowchart illustrating a transaction state change diagram defined by the predictive processing operation step S141 in the system of FIG. 1 .

도4를 참조하면, 트랜잭션은 제출 시점에서 준비 상태(S501)로 진입한다. Referring to Figure 4, the transaction enters the ready state (S501) at the time of submission.

다음으로, 예측적 실행(S506)에 의해 예비 확정 상태(S502)로 변화한다.Next, it changes to the pre-determined state (S502) by the predictive execution (S506).

온 체인 처리 결과에 따라 후 처리 취소(S507)에 의한 최종 취소 상태(S503) 또는 후 처리 확정(S509)에 의한 최종 확정 상태(S505)로 변화한다. According to the on-chain processing result, it changes to the final cancellation state (S503) by post-processing cancellation (S507) or the final confirmation state (S505) by post-processing confirmation (S509).

또한, 준비 단계에서 이전 취소된 트랜잭션과의 의존성 관계를 가지는 경우(S508), 사전 취소 상태(S504)로 변화한다.In addition, in the case of having a dependency relationship with a previously canceled transaction in the preparation step (S508), it changes to the pre-cancellation state (S504).

도 5는 도 1의 시스템에서 예측적 처리기의 클라이언트 트랜잭션에 대한 예측적 처리 단계 동작을 나타낸 흐름도이다.FIG. 5 is a flowchart illustrating the predictive processing step operation for a client transaction of the predictive processor in the system of FIG. 1 ;

도 5를 참조하면, 본 실시예에 따른 예측적 처리 방법의 예측적 처리 연산 단계(S141)는 S201 내지 S207의 일련의 단계들로 구성된다. Referring to FIG. 5 , the predictive processing operation step S141 of the predictive processing method according to the present embodiment includes a series of steps S201 to S207.

먼저, 클라이언트가 사용자 단말 트랜잭션(T)을 예측적 처리기(101)에 전달하는 단계(S201)가 실행된다.First, the step S201 of the client transferring the user terminal transaction T to the predictive processor 101 is executed.

다음으로, 예측적 처리 단계 진입 및 사용자 단말 트랜잭션(T)에 대한 고유 순서 번호(S) 할당 단계(S202)가 실행된다.Next, the predictive processing step entry and assignment of a unique sequence number S to the user terminal transaction T (S202) is executed.

그리고, 3개의 파라미터로 구성된 정보(S, T, I)를 로컬 스토리지에 로그 선행 기입하는 단계(S203)가 실행된다. Then, a step (S203) of pre-writing the information (S, T, I) composed of three parameters to the local storage is performed.

그리고, 사용자 단말 트랜잭션 T 실행 결과 값(R)을 예측 상태 정보 데이터 베이스(DB)에 저장하는 단계(S204)가 실행된다.Then, the step (S204) of storing the user terminal transaction T execution result value (R) in the prediction state information database (DB) is executed.

여기서, 결과 값(R)을 클라이언트에 전달하는 단계(S205)와, 파라미터 사용자 단말 트랜잭션(T)에 대한 의존성 정보(D)를 계산하는 단계(S206) 및 파라미터(T, S, D)를 데이터 구조 히스토리와 의존성 정보 관리 그래프에 저장하는 단계(S207)가 실행된다.Here, the step (S205) of delivering the result value (R) to the client, the step (S206) of calculating the dependency information (D) for the parameter user terminal transaction (T), and the data of the parameters (T, S, D) Storing the structure history and dependency information in the management graph (S207) is executed.

도 6a 및 6b는 도4의 예측적 처리기(101)의 주요 연산에서 예측적 처리기(101)의 온 체인(120) 트랜잭션에 대한 후 처리 단계(S142)의 동작을 나타낸 흐름도이다.6A and 6B are flowcharts illustrating the operation of the post-processing step S142 for the on-chain 120 transaction of the predictive processor 101 in the main operation of the predictive processor 101 of FIG. 4 .

도 6a 및 6b를 참조하면, 본 실시예에 따른 온 체인(120) 처리 결과에 대한 예측적 처리기(101)의 후 처리 방법은 S300 내지 S314의 일련의 단계들로 구성된다.6A and 6B , the post-processing method of the predictive processor 101 for the on-chain 120 processing result according to the present embodiment consists of a series of steps S300 to S314.

예측적 처리기(101)는 온 체인 처리된 트랜잭션(T')를 전달 받고, 그와 동일한 고유 식별자(ID)를 가지는 과거 오프 체인 처리된 트랜잭션(T)를 검색하여(S300), 그 확정 유무를 판단(S301)한다. 그리고 그 유무에 따라 실행 경로가 S302과 S310의 제1 실행 경로와 제2 실행 경로의 두 가지 경로로 나뉜다. The predictive processor 101 receives the on-chain processed transaction (T'), searches for the past off-chain processed transaction (T) having the same unique identifier (ID) (S300), and checks whether the transaction is confirmed or not (S300). A determination is made (S301). And depending on the presence or absence, the execution path is divided into two paths, the first execution path and the second execution path of S302 and S310.

S301이후 제1 실행 경로로, 온 체인 처리된 트랜잭션(T')가 확정된 경우, 확정 상태 정보 데이터베이스(134)에 온 체인(120) 처리된 트랜잭션(T')의 실행 결과를 반영한다(S302). As the first execution path after S301, when the on-chain processed transaction T' is confirmed, the execution result of the on-chain 120 processed transaction T' is reflected in the confirmation state information database 134 (S302) ).

그리고 온 체인 처리된 트랜잭션(T')와 동일한 트랜잭션 고유 식별자를 가지며 과거 예측적 실행되었던 트랜잭션(T)의 순서 및 실행 결과가 서로 일치하는지를 비교한다(S303). Then, it is compared whether the order and execution result of the transaction T that has the same transaction unique identifier as the on-chain processed transaction T' matches each other (S303).

S303 단계에서 온 체인 처리된 트랜잭션(T')와 동일한 트랜잭션 고유 식별자를 가지며 과거 예측적 실행되었던 트랜잭션(T)의 순서 및 실행 결과가 서로 일치한다면, 히스토리(132) 자료구조에 온 체인 처리된 트랜잭션(T')결과를 갱신하며(S304), 프로그램은 종료된다. If the order and execution result of the transaction (T) that has been predictively executed in the past and has the same transaction unique identifier as the on-chain processed transaction (T') in step S303 are identical to each other, the on-chain processed transaction in the history 132 data structure (T') The result is updated (S304), and the program ends.

하지만, S303 단계에서 온 체인 처리된 트랜잭션(T')와 동일한 트랜잭션 고유 식별자를 가지며 과거 예측적 실행되었던 트랜잭션(T)의 순서 및 실행 결과가 서로 일치하지 않는다면, 의존성 정보 관리 그래프(G) 상 온 체인 처리된 트랜잭션(T')와 선행 및 후행 관계에 있는 모든 예측 상태의 트랜잭션을 계산하여 이를 집합 A 에 포함한다. However, if the order and execution results of the transaction (T) that have been predictively executed in the past have the same transaction unique identifier as the on-chain processed transaction (T') in step S303 and do not match each other, the dependency information management graph (G) at room temperature Compute the chained transaction (T') and all the transactions in the predicted state that are in the preceding and following relationships and include them in the set A.

S301이후의 제2 실행 경로로, 온 체인 처리된 트랜잭션(T')가 확정되지 않은 경우, 의존성 정보 관리 그래프(G) 상 온 체인 처리된 트랜잭션(T')와 후행 관계에 있는 모든 예측 상태의 트랜잭션을 계산하여 이를 집합 A 에 포함한다(S310). As the second execution path after S301, if the on-chain processed transaction (T ') is not confirmed, the dependency information management graph (G) of all predicted states that have a trailing relationship with the on-chain processed transaction (T') The transaction is calculated and included in the set A (S310).

S301 이후의 제1 실행 경로 및 제2 실행 경로에서 집합 A 가 계산된 경우, 의존성 정보 관리 그래프(G)(133) 에서 집합 A가 비어 있는 지 여부를 확인한다(S311).When the set A is calculated in the first execution path and the second execution path after S301, it is checked whether the set A is empty in the dependency information management graph (G) 133 (S311).

만일, 의존성 정보 관리 그래프(G)(133)에서 집합 A가 비어 있지 않으면, 의존성 정보 관리 그래프(G)(133)에서 집합 A를 삭제하고, H에서 집합 A 의 각 트랜잭션의 상태를 취소(abort) 상태로 갱신한다(S312)하고, 의존성 정보 관리 그래프(G)(133)에서 집합 A가 비어 있으면 프로그램을 종료한다. If the set A is not empty in the dependency information management graph (G) 133, the set A is deleted from the dependency information management graph (G) 133, and the state of each transaction of the set A is aborted in H. ) state (S312), and if the set A is empty in the dependency information management graph (G) 133, the program is terminated.

그 후 예측 상태 정보 데이터 베이스(131)를 확정 상태 정보 데이터 베이스(134)로 되감기(rollback)한다(S313). Thereafter, the predicted state information database 131 is rolled back to the definite state information database 134 (S313).

마지막으로, 예측 상태 정보 데이터 베이스(131)에 대해 집합 A 의 각 트랜잭션을 재실행하고(S314), 프로그램은 종료된다.Finally, each transaction of the set A is re-executed with respect to the prediction state information database 131 (S314), and the program is terminated.

도 7 은 도 6a 및 6b의 온 체인 처리된 트랜잭션(T')와 오프-체인 처리된 트랜잭션(T)에 대한 순서 및 실행 결과를 비교하는 단계(S303)를 보다 구체적으로 나타낸 도면이다.7 is a diagram illustrating in more detail the step S303 of comparing the order and execution results of the on-chain processed transaction T′ and the off-chain processed transaction T of FIGS. 6A and 6B .

도 7을 참조하면, 예측적 처리기(101)는 온 체인 처리 완료된 트랜잭션(T')를 통보 받는다(S401).Referring to FIG. 7 , the predictive processor 101 is notified of the on-chain processed transaction T' (S401).

의존성 정보 관리 그래프(G)에서 온 체인 처리 완료된 트랜잭션(T')에 상응하는 노드를 검색하고, 그 노드의 진입 간선에 연결된 노드 집합(N)을 계산한다(S402). In the dependency information management graph (G), a node corresponding to the on-chain processed transaction (T') is searched for, and a node set (N) connected to the entry edge of the node is calculated (S402).

노드 집합(N)이 공집합이거나, 노드 집합(N)의 각 노드 상태가 모두 최종 확정되었는지 유무를 확인한다(S403). It is checked whether the node set N is an empty set or whether the state of each node of the node set N is finally confirmed (S403).

노드 집합(N)의 각 노드 상태가 모두 최종 확정되었으면, "네"를 리턴하고(S404), 노드 집합(N)의 각 노드 상태가 모두 최종 확정되지 않았으면, "아니오"를 리턴한다(S405).When all the states of each node of the node set N are finally confirmed, "yes" is returned (S404), and when all the states of each node of the node set N are not finally confirmed, "no" is returned (S405) ).

본 발명의 블록체인 확장성을 위한 예측적 트랜잭션 처리 시스템을 구현하기 위한 방법으로, 예측적 처리기(Speculator) 모듈을 정의한다. As a method for implementing a predictive transaction processing system for block chain scalability of the present invention, a predictive processor module is defined.

예측적 처리기는 클라이언트가 제출한 트랜잭션을 블록체인상 분산 합의를 거치기 전, 이를 예측적으로(speculative) 처리함으로써, 신속하게 클라이언트에게 응답을 전달하며, 이를 통해 초저지연 트랜잭션을 지원한다. 이때 블록체인상 분산 합의와는 비동기적으로 진행되며, 블록체인상 분산 합의 결과에 따라 예측 처리기는 예측적으로 처리한 결과에 대해 최종적으로 확정(commit) 또는 취소(abort)에 대하여 사후 처리(post-processing)를 한다. The predictive processor processes the client-submitted transaction speculatively before going through the distributed consensus on the blockchain, and quickly delivers a response to the client, thereby supporting ultra-low latency transactions. At this time, it proceeds asynchronously with the distributed consensus on the block chain, and according to the result of the distributed consensus on the block chain, the prediction processor is post-processed for the final commit or abort of the predictive processing result. -processing).

예측 처리기에서 유지 관리하는 데이터 구조는, 예측적으로 실행하는 트랜잭션 결과, 즉 예측(Speculation) 상태를 저장하는 예측 상태 데이터 베이스(DB), 블록체인 분산 합의에 따른 확정(Commit) 상태를 저장하는 확정 상태 데이터 베이스(DB), 확정 상태 전까지 모든 예측 트랜잭션 상태 및 그 실행 기록을 포함하는 히스토리 로그, 예측 실행 트랜잭션간 읽기/쓰기 집합(read/write set) 의존성 관계를 나타내는 방향 비순환 그래프(Directed Acyclic Graph, DAG) 구조의 의존성 정보 등으로 구성된다. The data structure maintained by the prediction processor is a prediction state database (DB) that stores the result of a transaction executed predictively, that is, the prediction state, and the confirmation state that stores the commit state according to the blockchain distributed consensus. A state database (DB), a history log containing all predicted transaction states and their execution history up to the finalized state, and a directed acyclic graph showing the read/write set dependency relationship between predicted execution transactions. DAG) structure's dependency information, etc.

예측 처리기의 트랜잭션 처리 과정은, 트랜잭션의 예측적 실행을 진행하는 오프-체인상 예측적 처리 단계와 온 체인상 합의 결과를 기반으로 하는 후 처리 단계를 포함한다. The transaction processing process of the prediction processor includes an off-chain predictive processing step that proceeds with the predictive execution of the transaction, and a post-processing step based on the on-chain consensus result.

일 실시예에서, 예측적 처리 단계는, 클라이언트로부터 전달 받은 트랜잭션에 대해 실행 순서 번호 할당하는 단계(order), 트랜잭션을 스마트 컨트랙트 로직에 따라 실행하는 단계(execute), 트랜잭션에 실행 결과에 대한 읽기/쓰기 집합 (read/write set) 의존성 정보를 분석하는 단계(build), 그리고 관련 데이터구조를 갱신하는 단계(update)로 진행된다. In one embodiment, the predictive processing step includes: allocating an execution order number to the transaction received from the client (order), executing the transaction according to the smart contract logic (execute), reading/reading the execution result to the transaction It proceeds with a step of analyzing the read/write set dependency information (build), and a step of updating the related data structure (update).

일 실시예에서, 후 처리 단계에서는, 온 체인상에서 합의되는 블록 정보를 기반으로 진행되며, 예측적 처리기는 각 블록 내부에 저장되어 있는 트랜잭션들에 대해서 후 처리를 진행한다. 후 처리 단계에는, 블록내 트랜잭션 별 예측 결과를 비교하는 검사 단계(check), 검사 결과에 따라, 예측 결과와 온 체인 확정 결과가 같으면 확정(commit) 하는 단계, 또는 그렇지 않으면 취소(abort) 하는 단계로 구성된다. 취소되는 경우, 취소된 트랜잭션에 의한 상태 갱신을 무효화시키는 되감기(rollback) 단계가 진행되고, 되감기된 트랜잭션들에 대해 클라이언트에게 알림(notification) 전달하고 재실행 단계(re-execute) 단계가 진행된다.In one embodiment, in the post-processing step, it proceeds based on block information agreed on on-chain, and the predictive processor performs post-processing for the transactions stored in each block. In the post-processing step, a check step that compares prediction results for each transaction within a block, a step of committing if the prediction result and on-chain confirmation result are the same according to the check result, or aborting otherwise is composed of In case of cancellation, a rollback step of invalidating the state update by the canceled transaction is performed, a notification is delivered to the client about the rewound transactions, and a re-execute step is performed.

일 실시예에서, 예측 처리기는 트랜잭션의 예측적 실행을 위해, 스마트 컨트랙트(smart contract) 유지, 최신 데이터 상태 정보 관리, 그리고 온 체인 확정 결과를 검증하기 위한 온 체인 장부 데이터(ledger) 유지와 온 체인 블록 동기화 등의 기능을 지원한다. In one embodiment, the prediction processor maintains a smart contract, manages the latest data state information, and maintains on-chain ledger data to verify the on-chain confirmation result for predictive execution of transactions. It supports functions such as block synchronization.

일 실시예에서, 예측 처리기 소프트웨어는 클라이언트와 같은 머신상에서 동작한다. In one embodiment, the prediction processor software runs on the same machine as the client.

일 실시예에서, 예측 처리의 트랜잭션간 비교의 의미는 방향 비순환 그래프 구조를 갖는 의존성 정보 관리 그래프상 트랜잭션에 상응하는 그래프 노드의 전/후 간선 관계 비교 및 트랜잭션 실행 결과 비교를 나타낸다. In one embodiment, the meaning of the inter-transaction comparison of the prediction processing refers to the comparison of the front/rear edge relation of the graph node corresponding to the transaction on the dependency information management graph having the directed acyclic graph structure and the comparison of the transaction execution result.

본 발명에 의하면, 사용자 단말에서 제출한 트랜잭션을 오프 체인상에서 예측적 처리하고 결과를 사용자에게 전송함으로써, 온체인상 높은 지연을 갖는 분산 합의가 끝나기 전에 결과를 신속하게 알 수 있다. 이를 통해 블록체인 성능 확장성뿐만 아니라 트랜잭션 지연 시간을 획기적으로 개선할 수 있는 장점을 가진다. According to the present invention, by predictively processing the transaction submitted by the user terminal off-chain and transmitting the result to the user, the result can be quickly known before the on-chain distributed agreement with high delay is finished. This has the advantage of dramatically improving transaction latency as well as blockchain performance scalability.

본 발명에 의하면, 예측 처리기는 다양한 블록체인 플랫폼의 전단계 처리 모듈로 적용할 수 있는 장점을 가진다. According to the present invention, the prediction processor has the advantage of being applicable as a pre-processing module of various blockchain platforms.

본 발명의 실시예들에 따른 방법의 동작은 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 프로그램 또는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의해 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 분산 방식으로 컴퓨터로 읽을 수 있 는 프로그램 또는 코드가 저장되고 실행될 수 있다.The operation of the method according to the embodiments of the present invention may be implemented as a computer-readable program or code on a computer-readable recording medium. The computer-readable recording medium includes all types of recording devices in which data that can be read by a computer system is stored. In addition, the computer-readable recording medium is distributed in a network-connected computer system so that the computer-readable program or code can be stored and executed in a distributed manner.

또한, 컴퓨터가 읽을 수 있는 기록매체는 롬(rom), 램(ram), 플래시 메모리(flash memory) 등과 같이 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치를 포함할 수 있다. 프로그램 명령은 컴파일러(compiler)에 의해 만 들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터(interpreter) 등을 사용해서 컴퓨터에 의해 실행될 수 있는 고급 언어 코드를 포함할 수 있다. 본 발명의 일부 측면들은 장치의 문맥에서 설명되었으나, 그것은 상응하는 방법에 따른 설명 또한 나타낼 수 있고, 여기서 블록 또는 장치는 방법 단계 또는 방법 단계의 특징에 상응한다. 유사하게, 방법의 문맥에서 설명된 측면들은 또한 상응하는 블록 또는 아이템 또는 상응하는 장치의 특징으로 나타낼 수 있다. 방법 단계들의 몇몇 또는 전부는 예를 들어, 마이크로프로세서, 프로그램 가능한 컴퓨터 또는 전자 회로와 같은 하드웨어 장치에 의해(또는 이용하여) 수행될 수 있다. 몇 몇의 실시예에서, 가장 중요한 방법 단계들의 하나 이상은 이와 같은 장치에 의해 수행될 수 있다.In addition, the computer-readable recording medium may include a hardware device specially configured to store and execute program instructions, such as ROM, RAM, and flash memory. The program instructions may include not only machine language codes such as those generated by a compiler, but also high-level language codes that can be executed by a computer using an interpreter or the like. Although some aspects of the invention have been described in the context of an apparatus, it may also represent a description according to a corresponding method, wherein a block or apparatus corresponds to a method step or feature of a method step. Similarly, aspects described in the context of a method may also represent a corresponding block or item or a corresponding device feature. Some or all of the method steps may be performed by (or using) a hardware device such as, for example, a microprocessor, a programmable computer, or an electronic circuit. In some embodiments, one or more of the most important method steps may be performed by such an apparatus.

실시예들에서, 프로그램 가능한 로직 장치(예를 들어, 필드 프로그래머블 게이트 어레이)가 여기서 설명된 방법들의 기능의 일부 또는 전부를 수행하기 위해 사용될 수 있다. 실시예들에서, 필드 프로그머블 게이트 어레이는 여기서 설명된 방 법들 중 하나를 수행하기 위한 마이크로프로세서와 함께 작동할 수 있다. 일반적으로, 방법들은 어떤 하드웨어 장치에 의해 수행되는 것이 바람직하다. 이상 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.In embodiments, a programmable logic device (eg, a field programmable gate array) may be used to perform some or all of the functions of the methods described herein. In embodiments, the field programmable gate array may work with a microprocessor to perform one of the methods described herein. In general, the methods are preferably performed by some hardware device. Although described above with reference to the preferred embodiments of the present invention, those skilled in the art can variously modify and change the present invention within the scope without departing from the spirit and scope of the present invention as set forth in the claims below. You will understand that you can.

100 : 오프 체인
101 : 예측적 처리기
102 : 클라이언트
110 : 사용자 단말
120 : 온 체인
131 : 예측 상태 정보 데이터 베이스
132 : 히스토리
133 : 의존성 정보 관리 그래프
134 : 확정 상태 정보 데이터 베이스
100: off-chain
101: predictive handler
102: client
110: user terminal
120: on-chain
131: prediction state information database
132: history
133: dependency information management graph
134: confirmed state information database

Claims (11)

오프 체인 트랜잭션을 예측적 처리하고, 온 체인 트랜잭션을 후 처리하는 블록체인 확장성을 위한 예측적 트랜잭션 처리 시스템에 있어서,
서비스 사용을 위한 요청을 클라이언트에게 전달하는 사용자 단말과;
사용자 단말로부터 전달 받은 요청을 트랜잭션으로 구성하여 오프 체인의 예측적 처리기와 온 체인의 블록체인에 전달하는 오프 체인의 클라이언트; 및
데이터 구조와 연산을 활용하여 트랜잭션을 예측적 처리하고, 처리된 결과를 클라이언트에 전달하고, 클라이언트로부터 전달된 블록 데이터에 대해 후 처리를 진행하는 예측적 처리기; 를 포함하는,
블록체인 확장성을 위한 예측적 트랜잭션 처리 시스템.
In a predictive transaction processing system for block chain scalability that predictively processes off-chain transactions and post-processes on-chain transactions,
a user terminal transmitting a request for service use to a client;
an off-chain client that composes a request received from a user terminal into a transaction and delivers it to an off-chain predictive processor and an on-chain blockchain; and
a predictive processor that predictively processes a transaction by utilizing data structures and operations, delivers the processed result to the client, and performs post-processing on the block data delivered from the client; containing,
A predictive transaction processing system for blockchain scalability.
청구항 1에 있어서, 예측적 처리기는,
클라이언트가 오프라인 상태인 경우에 온 체인의 블록 데이터를 주기적으로 가져와 로컬 확정 상태를 갱신하는 연산을 실행하기 위한 온 체인의 백그라운드 블록 동기화와 연동되는,
블록체인 확장성을 위한 예측적 트랜잭션 처리 시스템.
The method of claim 1 , wherein the predictive processor comprises:
Interlocking with on-chain background block synchronization to execute an operation that periodically fetches on-chain block data and updates the local confirmed state when the client is offline,
A predictive transaction processing system for blockchain scalability.
청구항 1에 있어서, 예측적 처리기의 데이터 구조는,
오프 체인 상에서 예측적 처리 결과를 반영하는 예측 상태 정보 데이터 베이스와;
고유 순서 별 트랜잭션 및 그 상태를 저장하는 히스토리와;
트랜잭션간 의존성 정보를 관리하는 의존성 정보 관리 그래프; 및
온 체인상 트랜잭션 처리 결과를 관리하는 확정 상태 정보 데이터 베이스; 를 포함하는,
블록체인 확장성을 위한 예측적 트랜잭션 처리 시스템.
The method according to claim 1, wherein the data structure of the predictive processor is:
a predictive state information database that reflects predictive processing results on an off-chain;
a history for storing transactions and their states for each unique order;
a dependency information management graph for managing dependency information between transactions; and
a fixed state information database that manages on-chain transaction processing results; containing,
A predictive transaction processing system for blockchain scalability.
예측적 처리기가 오프 체인 트랜잭션을 예측적 처리하는 예측 연산 수행 단계와; 온 체인 트랜잭션을 후 처리하는 후 처리 연산 수행 단계; 를 포함하는,
블록체인 확장성을 위한 예측적 트랜잭션 처리 방법.
performing a prediction operation in which the predictive processor predictively processes off-chain transactions; performing post-processing operations for post-processing on-chain transactions; containing,
A predictive transaction processing method for blockchain scalability.
청구항 4에 있어서, 예측 연산 수행 단계는,
트랜잭션에 고유 순서 번호를 할당하는 순서 단계와;
트랜잭션을 실행하는 실행 단계와;
트랜잭션간 의존성 정보 분석 및 계산하는 단계; 및
실행 결과 및 데이터 구조를 갱신하는 단계; 를 포함하는,
블록체인 확장성을 위한 예측적 트랜잭션 처리 방법.
The method according to claim 4, wherein the prediction operation performing step,
a sequence step of assigning a unique sequence number to the transaction;
an execution step of executing a transaction;
analyzing and calculating inter-transaction dependency information; and
updating the execution result and data structure; containing,
A predictive transaction processing method for blockchain scalability.
청구항 4에 있어서, 예측 연산 수행 단계는,
클라이언트가 사용자 단말 트랜잭션을 예측적 처리기에 전달하는 단계와;
예측적 처리 단계 진입 및 사용자 단말 트랜잭션에 대한 고유 순서 번호 할당 단계와;
복수의 파라미터로 구성된 정보를 로컬 스토리지에 로그 선행 기입하는 단계와;
사용자 단말 트랜잭션 실행 결과 값을 예측 상태 정보 데이터 베이스에 저장하는 단계와;
트랜잭션 실행 결과 값을 클라이언트에 전달하는 단계와;
파라미터 사용자 단말 트랜잭션에 대한 의존성 정보를 계산하는 단계; 및
파라미터를 예측적 처리기의 데이터 구조의 히스토리와 의존성 정보 관리 그래프에 저장하는 단계; 를 포함하는,
블록체인 확장성을 위한 예측적 트랜잭션 처리 방법.
The method according to claim 4, wherein the prediction operation performing step,
the client passing the user terminal transaction to the predictive processor;
entering the predictive processing phase and assigning a unique sequence number to the user terminal transaction;
pre-writing information composed of a plurality of parameters into a local storage;
storing the user terminal transaction execution result value in a prediction state information database;
transmitting a transaction execution result value to a client;
calculating dependency information for a parametric user terminal transaction; and
storing the parameters in the history and dependency information management graph of the data structure of the predictive processor; containing,
A predictive transaction processing method for blockchain scalability.
청구항 4에 있어서, 후 처리 연산 수행 단계는,
오프 체인상 트랜잭션의 예측 결과와 온 체인상 트랜잭션 실행 결과간 비교하는 검사 단계와;
검사 단계의 오프 체인상 트랜잭션의 예측 결과와 온 체인상 트랜잭션 실행 결과가 동일하면 확정하는 단계와;
검사 단계의 오프 체인상 트랜잭션의 예측 결과와 온 체인상 트랜잭션 실행 결과가 틀리면 취소하는 단계와;
취소하는 단계가 실행되면 예측 상태 정보 데이터 베이스를 온 체인 블록체인과 일관된 상태로 되돌리는 되감기(rollback) 단계; 및
되감기(rollback) 단계가 실행된 트랜잭션들을 재실행(re-execution)하는 재실행 단계; 를 포함하는,
블록체인 확장성을 위한 예측적 트랜잭션 처리 방법.
The method according to claim 4, wherein the post-processing operation performing step,
a checking step of comparing a prediction result of an off-chain transaction with an on-chain transaction execution result;
determining if the prediction result of the off-chain transaction in the checking step and the on-chain transaction execution result are the same;
canceling if the prediction result of the off-chain transaction in the checking step is different from the on-chain transaction execution result;
a rollback step of returning the predicted state information database to a state consistent with the on-chain blockchain when the cancellation step is executed; and
a re-execution step of re-executing the transactions in which the rollback step has been executed; containing,
A predictive transaction processing method for blockchain scalability.
청구항 4에 있어서, 후 처리 연산 수행 단계는,
예측적 처리기가 온 체인 처리된 트랜잭션를 전달 받고, 그와 동일한 고유 식별자를 가지는 오프 체인 처리된 트랜잭션를 검색하는 단계와;
온 체인 처리된 트랜잭션이 커밋(commit)되었는지 여부를 확정하는 단계와;
온 체인 처리된 트랜잭션이 커밋(commit)된 경우, 확정 상태 정보 데이터베이스에 온 체인 처리된 트랜잭션의 실행 결과를 반영하는 단계와;
온 체인 처리된 트랜잭션과 동일한 트랜잭션 고유 식별자를 가지며 예측적 실행되었던 트랜잭션의 순서 및 실행 결과가 서로 일치하는지 비교하는 단계와;
히스토리 자료 구조에 온 체인 처리된 트랜잭션 결과를 갱신하고, 프로그램을 종료하는 단계; 를 포함하는,
블록체인 확장성을 위한 예측적 트랜잭션 처리 방법.
The method according to claim 4, wherein the post-processing operation performing step,
receiving, by the predictive processor, an on-chain processed transaction, and searching for an off-chain processed transaction having the same unique identifier;
determining whether an on-chain transaction has been committed;
when the on-chain transaction is committed, reflecting the execution result of the on-chain transaction in the final state information database;
Comparing whether an order and execution result of a transaction that has a transaction unique identifier identical to that of an on-chain processed transaction are identical to each other;
updating the on-chain transaction result in the history data structure and terminating the program; containing,
A predictive transaction processing method for blockchain scalability.
청구항 4에 있어서, 후 처리 연산 수행 단계는,
예측적 처리기가 온 체인 처리된 트랜잭션을 전달 받고, 그와 동일한 고유 식별자를 가지는 오프 체인 처리된 트랜잭션을 검색하는 단계와;
온 체인 처리된 트랜잭션이 커밋(commit)되었는지 여부를 확정하는 단계와;
온 체인 처리된 트랜잭션이 커밋(commit)되지 않은 경우, 의존성 정보 관리 그래프상 온 체인 처리된 트랜잭션와 선행 및 후행 관계에 있는 모든 예측 상태의 트랜잭션을 계산하여 이를 집합 A 에 포함하는 단계와;
의존성 정보 관리 그래프에 집합 A가 비어 있는지 여부를 확인하는 단계를 실행하고, 집합 A가 비어 있는 경우 종료하는 단계와;
집합 A가 비어 있지 않은 경우, 의존성 정보 관리 그래프에서 집합 A를 삭제하고, 집합 A의 각 트랜잭션의 상태를 취소(abort) 상태로 갱신하는 단계와;
예측 상태 정보 데이터 베이스를 확정 상태 정보 데이터 베이스로 되감기(rollback)하는 단계; 및
예측 상태 정보 데이터 베이스에 대해 집합 A의 각 트랜잭션을 재실행하고 프로그램을 종료하는 단계; 를 포함하는,
블록체인 확장성을 위한 예측적 트랜잭션 처리 방법.
The method according to claim 4, wherein the post-processing operation performing step,
receiving, by the predictive processor, an on-chain processed transaction, and searching for an off-chain processed transaction having the same unique identifier;
determining whether an on-chain transaction has been committed;
If the on-chain processed transaction is not committed, calculating the transaction in all predicted states that have a preceding and subsequent relationship with the on-chain processed transaction on the dependency information management graph and including it in a set A;
executing the step of checking whether the set A is empty in the dependency information management graph, and terminating if the set A is empty;
if the set A is not empty, deleting the set A from the dependency information management graph and updating the state of each transaction in the set A to an abort state;
rolling back the predicted state information database to the definitive state information database; and
re-executing each transaction in set A against the predicted state information database and terminating the program; containing,
A predictive transaction processing method for blockchain scalability.
청구항 4에 있어서, 예측적 처리 연산 단계는,
트랜잭션은 제출 시점에서 준비 상태로 진입하는 단계와;
예측적 실행에 의해 예비 확정 상태로 변화하는 단계와;
온 체인 처리 결과에 따라 후 처리 취소에 의한 최종 취소 상태로 변화하거나, 후 처리 확정에 의한 최종-확정 상태로 변화하는 단계와;
준비 상태로 진입하는 단계에서, 이전 취소된 트랜잭션과의 의존성 관계를 가지는 경우, 사전취소 상태로 변화하는 단계; 를 포함하는,
블록체인 확장성을 위한 예측적 트랜잭션 처리 방법.
The method of claim 4, wherein the predictive processing operation step comprises:
the transaction entering a ready state at the time of submission;
changing to a pre-determined state by predictive execution;
changing to a final canceled state by post-processing cancellation or to a final-confirmed state by post-processing confirmation according to an on-chain processing result;
in the step of entering the ready state, changing to the pre-cancellation state if there is a dependency relationship with the previously canceled transaction; containing,
A predictive transaction processing method for blockchain scalability.
청구항 8에 있어서, 온 체인 처리된 트랜잭션과 동일한 트랜잭션 고유 식별자를 가지며 예측적 실행되었던 트랜잭션의 순서 및 실행 결과가 서로 일치하는지 비교하는 단계는,
예측적 처리기가 온 체인 처리 완료된 트랜잭션을 통보 받는 단계와;
의존성 정보 관리 그래프에서 온 체인 처리 완료된 트랜잭션에 상응하는 노드를 검색하고, 그 노드의 진입 간선에 연결된 노드 집합을 계산하는 단계와;
노드 집합이 공집합이거나, 노드 집합의 각 노드 상태가 모두 최종 확정인지 여부를 확인하는 단계; 및
노드 집합의 각 노드 상태가 모두 최종 확정되었으면, "네"를 리턴하는 단계를;
노드 집합의 각 노드 상태가 모두 최종 확정되지 않았으면, "아니오"를 리턴하는 단계; 를 포함하는,
블록체인 확장성을 위한 예측적 트랜잭션 처리 방법.
The method according to claim 8, wherein the step of comparing whether the order and execution result of the transaction that has the same transaction unique identifier as the on-chain processed transaction match each other,
receiving, by the predictive processor, a transaction completed on-chain;
retrieving a node corresponding to an on-chain processed transaction in the dependency information management graph, and calculating a node set connected to an entry edge of the node;
confirming whether the node set is an empty set or all node states of the node set are final; and
returning "yes" when the state of each node in the node set is finally confirmed;
returning "No" when the state of each node of the node set is not finally confirmed; containing,
A predictive transaction processing method for blockchain scalability.
KR1020210019754A 2021-02-15 2021-02-15 System of speculative transaction execution for Blockchain scalability and method thereof KR102567091B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210019754A KR102567091B1 (en) 2021-02-15 2021-02-15 System of speculative transaction execution for Blockchain scalability and method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210019754A KR102567091B1 (en) 2021-02-15 2021-02-15 System of speculative transaction execution for Blockchain scalability and method thereof

Publications (2)

Publication Number Publication Date
KR20220116655A true KR20220116655A (en) 2022-08-23
KR102567091B1 KR102567091B1 (en) 2023-08-16

Family

ID=83092972

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210019754A KR102567091B1 (en) 2021-02-15 2021-02-15 System of speculative transaction execution for Blockchain scalability and method thereof

Country Status (1)

Country Link
KR (1) KR102567091B1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190070888A (en) * 2017-12-13 2019-06-21 포항공과대학교 산학협력단 Apparatus and method for providing smartcontract channel service in off-chain, and system having the same
KR20200059136A (en) * 2018-11-20 2020-05-28 서강대학교산학협력단 Method for distributing transaction load between shard based on ethereum sharding envirionment
KR20200134944A (en) * 2019-05-24 2020-12-02 삼성에스디에스 주식회사 Accelerated processing apparatus for transaction considering transaction failure probability and method thereof

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190070888A (en) * 2017-12-13 2019-06-21 포항공과대학교 산학협력단 Apparatus and method for providing smartcontract channel service in off-chain, and system having the same
KR20200059136A (en) * 2018-11-20 2020-05-28 서강대학교산학협력단 Method for distributing transaction load between shard based on ethereum sharding envirionment
KR20200134944A (en) * 2019-05-24 2020-12-02 삼성에스디에스 주식회사 Accelerated processing apparatus for transaction considering transaction failure probability and method thereof

Also Published As

Publication number Publication date
KR102567091B1 (en) 2023-08-16

Similar Documents

Publication Publication Date Title
CN108389129B (en) Transaction execution method and device based on block chain and electronic equipment
US11042533B2 (en) Distributed system, computer program product and method
US20180158034A1 (en) Dynamic reordering of blockchain transactions to optimize performance and scalability
US8239843B2 (en) Value predictable variable scoping for speculative automatic parallelization with transactional memory
US8151252B2 (en) Compiler framework for speculative automatic parallelization with transactional memory
CN109951547B (en) Transaction request parallel processing method, device, equipment and medium
CN107038182B (en) Method and device for checking completeness of sub-table data
US20170220619A1 (en) Concurrency Control Method and Apparatus
CN107766080B (en) Transaction message processing method, device, equipment and system
CN110675255B (en) Method and apparatus for concurrently executing transactions in a blockchain
JP6079876B2 (en) Distributed processing system
KR102567091B1 (en) System of speculative transaction execution for Blockchain scalability and method thereof
CN112559496A (en) Distributed database transaction atomicity realization method and device
CN110689344B (en) Method and apparatus for concurrently executing transactions in a blockchain
WO2023216636A1 (en) Transaction processing method and apparatus, and electronic device
US20150169356A1 (en) Transaction processing system
US20110258279A1 (en) Asynchronous Future Based API
CN110175182B (en) Data checking method and device
CN110765144B (en) Distributed heterogeneous database data processing method and device
US11392574B2 (en) Mitigating race conditions across two live datastores
CN116450316A (en) Method, device, electronic equipment and storage medium for parallel transaction processing
CN116821250B (en) Distributed graph data processing method and system
CN110865874B (en) Transaction commit method and device
US20230367788A1 (en) Atomically bridging transactions across different blockchains
JPH0628199A (en) Synchronizing method of parallel processing

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant