KR102342788B1 - 트랜잭션의 병렬적 실행을 지원하는 방법, 이를 이용하는 블록체인 노드 및 프로그램 - Google Patents

트랜잭션의 병렬적 실행을 지원하는 방법, 이를 이용하는 블록체인 노드 및 프로그램 Download PDF

Info

Publication number
KR102342788B1
KR102342788B1 KR1020200039921A KR20200039921A KR102342788B1 KR 102342788 B1 KR102342788 B1 KR 102342788B1 KR 1020200039921 A KR1020200039921 A KR 1020200039921A KR 20200039921 A KR20200039921 A KR 20200039921A KR 102342788 B1 KR102342788 B1 KR 102342788B1
Authority
KR
South Korea
Prior art keywords
transaction
parallel
execution
chain
node
Prior art date
Application number
KR1020200039921A
Other languages
English (en)
Other versions
KR20210061241A (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 한양대학교 산학협력단
Publication of KR20210061241A publication Critical patent/KR20210061241A/ko
Application granted granted Critical
Publication of KR102342788B1 publication Critical patent/KR102342788B1/ko

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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0815Network architectures or network communication protocols for network security for authentication of entities providing single-sign-on or federations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • H04L2209/38

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

본 발명의 실시 예에 따른 블록체인에서 트랜잭션의 병렬적 실행을 지원하는 방법은 오프닝 트랜잭션(opening transaction)이 포함된 블록을 수신한 노드가 상기 오프닝 트랜잭션의 발행자인지 여부를 판단하는 단계, 판단 결과에 따라 상기 오프닝 트랜잭션의 발행자인 경우, 하나의 트랜잭션을 구성하는 병렬 태스크들의 수행에 참여할 오프 체인(off chain) 상의 참여 노드들을 모집하는 단계 및 모집된 상기 참여 노드들에 의한 병렬 태스크들의 실행 결과를 담은 클로징 트랜잭션(closing transaction)을 발행하는 단계를 포함한다.

Description

트랜잭션의 병렬적 실행을 지원하는 방법, 이를 이용하는 블록체인 노드 및 프로그램{METHOD FOR SUPPORTING PARALLEL EXECUTION OF TRANSACTION, BLOCKCAHIN NODE DEVICE AND PROGRAM USING THE SAME}
본 발명은 트랜잭션의 병렬적 실행을 지원하는 방법, 이를 이용하는 블록체인 노드 및 프로그램에 관한 것으로, 보다 상세하게는 하나의 트랜잭션을 구성하는 병렬 태스크들을 오프 체인 상의 참여 노드들을 모집하여 병렬적으로 수행할 수 있는 트랜잭션의 병렬적 실행을 지원하는 방법, 이를 이용하는 블록체인 노드 및 프로그램에 관한 것이다.
블록체인이란 익명성과 무결성이 보장되면서도 모든 데이터가 암호화되어 블록이라는 구조체에 기록되어 데이터의 신뢰성을 확보할 수 있는 분산 플랫폼이다.
기본의 블록체인에서는 하나의 트랜잭션에 대하여 병렬 실행 자체를 지원하지 않거나, 독립적인 트랜잭션들에 대해서만 병렬 실행을 지원하는 점에서, 대용량의 연산이 요구되는 트랜잭션을 처리하는 데에는 한계가 있었다.
본 발명의 기술적 사상이 이루고자 하는 과제는 하나의 트랜잭션을 구성하는 병렬 태스크들을 오프 체인 상의 참여 노드들을 모집하여 병렬적으로 수행할 수 있는 트랜잭션의 병렬적 실행을 지원하는 방법, 이를 이용하는 블록체인 노드 및 프로그램을 제공하는 것이다.
본 발명의 일 실시 예에 따른 블록체인에서 트랜잭션의 병렬적 실행을 지원하는 방법은 오프닝 트랜잭션(opening transaction)이 포함된 블록을 수신한 노드가 상기 오프닝 트랜잭션의 발행자인지 여부를 판단하는 단계, 판단 결과에 따라 상기 오프닝 트랜잭션의 발행자인 경우, 하나의 트랜잭션을 구성하는 병렬 태스크들의 수행에 참여할 오프 체인(off chain) 상의 참여 노드들을 모집하는 단계 및 모집된 상기 참여 노드들에 의한 병렬 태스크들의 실행 결과를 담은 클로징 트랜잭션(closing transaction)을 발행하는 단계를 포함할 수 있다.
실시 예에 따라, 상기 오프닝 트랜잭션의 발행자인지 여부를 판단하는 단계는, 상기 오프닝 트랜잭션에 포함된 트랜잭션 발행자 주소를 이용하여 상기 노드가 상기 오프닝 트랜잭션의 발행자인지 여부를 판단할 수 있다.
실시 예에 따라, 상기 병렬 태스크들은, 상기 병렬 태스크들 간에 공유하는 변수가 같거나, 상기 병렬 태스크들의 처리 순서에 선후관계가 있을 수 있다.
실시 예에 따라, 상기 오프닝 트랜잭션은, 상기 병렬 태스크들의 코드 해시를 포함하며, 상기 병렬 태스크들의 코드는 별도의 저장소에 저장될 수 있다.
실시 예에 따라, 상기 참여 노드들을 모집하는 단계는, 상기 오프 체인 상의 참여 노드들로부터 조인 트랜잭션(join transaction)을 수신하는 단계 및 수신된 조인 트랜잭션에 기초하여 상기 병렬 태스크들을 실행할 오프체인 상의 실행 네트워크에 대한 정보를 포함하는 억셉트 트랜잭션(accept transaction)을 발행하는 단계를 포함할 수 있다.
실시 예에 따라, 상기 조인 트랜잭션은, 상기 참여 노드들이 희망하는 역할에 대한 데이터를 포함할 수 있다.
실시 예에 따라, 상기 희망하는 역할은, 상기 병렬 태스크들을 실행할 워커 노드(worker node)의 역할, 또는 상기 워커 노드로 상기 병렬 태스크들을 분배하고 파라미터 변수를 제어하는 파라미터 서버 노드(parameter server node)의 역할일 수 있다.
실시 예에 따라, 상기 파라미터 변수는, 상기 병렬 태스크들 간에 공유되는 변수일 수 있다.
실시 예에 따라, 상기 파라미터 서버 노드는, 상기 오프닝 트랜잭션에 포함된 상기 코드 해시를 이용하여 상기 별도의 저장소에 저장된 상기 병렬 태스크들의 코드를 획득하고, 획득한 코드와 상기 코드 해시의 비교를 통한 위변조 여부를 확인할 수 있다.
실시 예에 따라, 수집된 상기 병렬 태스크들의 코드의 실행 결과는, 상기 클로징 트랜잭션에 저장될 수 있다.
실시 예에 따라, 상기 오프닝 트랜잭션 및 상기 클로징 트랜잭션은 온 체인(on chain)에만 기록되며, 상기 조인 트랜잭션 및 상기 억셉트 트랜잭션은 상기 온 체인과 상기 오프 체인에 함께 기록될 수 있다.
실시 예에 따라, 온 체인에서 실행되는 트랜잭션과, 상기 병렬 태스크들로 구성되어 오프 체인에서 실행되는 상기 하나의 트랜잭션은 서로 병렬적으로 실행될 수 있다.
실시 예에 따라, 상기 병렬 태스크들로 구성되어 상기 오프 체인에서 실행되는 상기 하나의 트랜잭션은, 상기 온 체인에서 실행되는 트랜잭션에 비하여 요구되는 연산량이 상대적으로 클 수 있다.
본 발명의 실시 예에 따른 블록체인 노드는 오프닝 트랜잭션(opening transaction)이 포함된 블록을 수신한 노드가 상기 오프닝 트랜잭션의 발행자인지 여부를 판단하는 트랜잭션 병렬처리 개시 모듈, 판단 결과에 따라 상기 오프닝 트랜잭션의 발행자인 경우, 하나의 트랜잭션을 구성하는 병렬 태스크들의 수행에 참여할 오프 체인(off chain) 상의 참여 노드들을 모집하는 참여 노드 모집 모듈 및 모집된 상기 참여 노드들에 의한 병렬 태스크들의 실행 결과를 담은 클로징 트랜잭션(closing transaction)을 발행하는 결과 처리 모듈을 포함할 수 있다.
본 발명의 실시 예에 따른 프로세서(processor)와 결합되어 블록체인에서 트랜잭션의 병렬적 실행을 지원하는 방법을 수행하기 위한 매체에 저장된 프로그램은 오프닝 트랜잭션(opening transaction)이 포함된 블록을 수신한 노드가 상기 오프닝 트랜잭션의 발행자인지 여부를 판단하는 단계, 판단 결과에 따라 자신이 발행한 오프닝 트랜잭션인 경우, 하나의 트랜잭션을 구성하는 병렬 태스크들의 수행에 참여할 오프 체인(off chain) 상의 참여 노드들을 모집하는 단계 및 모집된 상기 참여 노드들에 의한 병렬 태스크들의 실행 결과를 담은 클로징 트랜잭션(closing transaction)을 발행하는 단계를 수행할 수 있다.
본 발명의 실시 예에 따른 방법과 장치는 하나의 트랜잭션을 구성하는 병렬 태스크들을 오프 체인 상의 참여 노드들을 모집하여 병렬적으로 수행함으로써, 대용량의 연산량을 가지는 트랜잭션도 신속하고, 효과적으로 처리할 수 있다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 간단한 설명이 제공된다.
도 1은 본 발명의 일 실시 예에 따른 블록체인에서 트랜잭션의 병렬적 실행을 지원하는 과정을 나타내기 위한 개념도이다.
도 2는 도 1에 도시된 블록체인 네트워크에 포함된 노드들 중에서 어느 하나의 노드의 일 실시 예에 따른 블록도이다.
도 3은 본 발명의 일 실시 예에 따른 블록체인에서 트랜잭션의 병렬적 실행을 지원하는 방법의 플로우차트이다.
도 4는 도 3에 도시된 방법에 따라 트랜잭션을 구성하는 병렬 태스크들을 수행하는 과정을 개략적으로 나타낸 도면이다.
도 5 내지 도 8은 본 발명의 일 실시 예에 따른 블록체인에서 트랜잭션의 병렬적 실행을 지원하는 방법에서 사용되는 트랜잭션 종류별 자료구조이다.
도 9는 본 발명의 실시 예에 따른 방법에 따른 연산, 처리 시간을 비고 예와 비교한 표이다.
본 발명의 기술적 사상은 다양한 변경을 가할 수 있고 여러 가지 실시 예를 가질 수 있는 바, 특정 실시 예들을 도면에 예시하고 이를 상세한 설명을 통해 상세히 설명하고자 한다. 그러나, 이는 본 발명의 기술적 사상을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 기술적 사상의 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
본 발명의 기술적 사상을 설명함에 있어서, 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 본 명세서의 설명 과정에서 이용되는 숫자(예를 들어, 제1, 제2 등)는 하나의 구성요소를 다른 구성요소와 구분하기 위한 식별기호에 불과하다.
또한, 본 명세서에서, 일 구성요소가 다른 구성요소와 "연결된다" 거나 "접속된다" 등으로 언급된 때에는, 상기 일 구성요소가 상기 다른 구성요소와 직접 연결되거나 또는 직접 접속될 수도 있지만, 특별히 반대되는 기재가 존재하지 않는 이상, 중간에 또 다른 구성요소를 매개하여 연결되거나 또는 접속될 수도 있다고 이해되어야 할 것이다.
또한, 본 명세서에 기재된 "~부", "~기", "~자", "~모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 프로세서(Processor), 마이크로 프로세서(Micro Processer), 마이크로 컨트롤러(Micro Controller), CPU(Central Processing Unit), GPU(Graphics Processing Unit), APU(Accelerate Processor Unit), DSP(Drive Signal Processor), ASIC(Application Specific Integrated Circuit), FPGA(Field Programmable Gate Array) 등과 같은 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있으며, 적어도 하나의 기능이나 동작의 처리에 필요한 데이터를 저장하는 메모리(memory)와 결합되는 형태로 구현될 수도 있다.
그리고 본 명세서에서의 구성부들에 대한 구분은 각 구성부가 담당하는 주기능 별로 구분한 것에 불과함을 명확히 하고자 한다. 즉, 이하에서 설명할 2개 이상의 구성부가 하나의 구성부로 합쳐지거나 또는 하나의 구성부가 보다 세분화된 기능별로 2개 이상으로 분화되어 구비될 수도 있다. 그리고 이하에서 설명할 구성부 각각은 자신이 담당하는 주기능 이외에도 다른 구성부가 담당하는 기능 중 일부 또는 전부의 기능을 추가적으로 수행할 수도 있으며, 구성부 각각이 담당하는 주기능 중 일부 기능이 다른 구성부에 의해 전담되어 수행될 수도 있음은 물론이다.
이하, 본 발명의 기술적 사상에 따른 실시 예들을 차례로 상세히 설명한다.
도 1은 본 발명의 일 실시 예에 따른 블록체인에서 트랜잭션의 병렬적 실행을 지원하는 과정을 나타내기 위한 개념도이다.
도 1을 참조하면, 본 발명의 실시 예에 따른 방법에서, 오프닝 트랜잭션 발행자에 상응하는 노드들(PB_OT1~PB_OT3)은 하나의 트랜잭션을 구성하는 병렬 태스크들의 병렬 실행을 위한 정보들을 포함하는 오프닝 트랜잭션(opening transaction)을 발행할 수 있다.
블록 생성자(block publisher, BP)는 발행된 오프닝 트랜잭션이 포함된 블록을 생성할 수 있다.
오프닝 트랜잭션을 발행한 발행자에 상응하는 노드들(PB_OT1~PB_OT3) 각각은 해당 노드(PB_OT1~PB_OT3)가 발행한 오프닝 트랜잭션이 포함된 블록을 수신하는 경우, 하나의 트랜잭션을 구성하는 병렬 태스크들의 수행에 참여할 오프 체인(off chain) 상의 참여 노드들(W, PS)을 모집할 수 있다.
모집된 참여 노드들(W,PC)은 해당 트랜잭션을 구성하는 병렬 태스크들의 수행을 위하여 각각의 실행 네트워크(NET_EX1~NET_EX3)를 형성할 수 있다.
형성된 실행 네트워크(NET_EX1~NET_EX3)에 포함된 참여 노드들(W,PS)은 병렬 태스크들을 병렬 실행시킬 수 있다.
실시 예에 따라, 참여 노드들(W,PS)의 역할은 병렬 태스크들을 실행할 워커 노드(worker node, W)의 역할 또는 워커 노드(W)로 병렬 태스크들을 분배하고 파라미터 변수를 제어하는 파라미터 서버 노드(parameter server node, PS)의 역할로 구분될 수 있다. 예컨대, 파라미터 변수는 병렬 태스크들 간에 공유되는 변수일 수 있다.
실시 예에 따라, 병렬 태스크들은 하나의 트랜잭션을 구성하며, 상호 의존성을 가질 수 있다. 병렬 태스크들이 상호 의존성을 가지는 경우는 병렬 태스크들 간에 서로 공유하는 변수가 같거나, 병렬 태스크들의 처리 순서에 선후 관계가 있는 경우 등을 포함할 수 있다.
본 명세서에서 "노드(node)"는 네트워크의 적어도 일부를 구성하는 장치를 의미할 수 있으며, "노드 장치"라고 일컬어질 수도 있다.
본 명세서에서 "트랜잭션(transaction)"은 데이터의 상태를 변경하는 작업의 단위를 폭 넓게 의미할 수 있다. 예컨대, "트랜잭션"은 다자간의 계약의 체결과 이행에 따른 데이터 상태의 변화를 포함할 수 있다.
실시 예에 따라, 트랜잭션은 스마트 컨트랙트(smart contract) 트랜잭션일 수 있다.
도 1에서는 하나의 트랜잭션을 구성하는 병렬 태스크들의 수행에 참여할 오프 체인 상의 참여 노드들(W, PS)을 모집하고, 모집된 참여 노드들(W,PC)에 의하여 병렬 태스크들이 실행되는 경우만을 도시하였으나, 본 발명의 실시 예에 따라 온 체인 상에서의 트랜잭션의 실행과 병렬 태스크들로 구성되어 오프 체인 상의 참여 노드들에 의해 실행되는 트랜잭션의 실행도 서로 병렬적으로 수행될 수 있다. 이 때, 오프 체인에서 실행되는 트랜잭션은 온 체인 상에서 실행되는 트랜잭션에 비하여 요구되는 연산량이 상대적으로 클 수 있다.
도 2는 도 1에 도시된 블록체인 네트워크에 포함된 노드들 중에서 어느 하나의 노드의 일 실시 예에 따른 블록도이다. 도 3은 본 발명의 일 실시 예에 따른 블록체인에서 트랜잭션의 병렬적 실행을 지원하는 방법의 플로우차트이다. 도 4는 도 3에 도시된 방법에 따라 트랜잭션을 구성하는 병렬 태스크들을 수행하는 과정을 개략적으로 나타낸 도면이다. 도 5 내지 도 8은 본 발명의 일 실시 예에 따른 블록체인에서 트랜잭션의 병렬적 실행을 지원하는 방법에서 사용되는 트랜잭션 종류별 자료구조이다.
도 2에는 블록체인 네트워크에 포함된 노드들 중에서 어느 하나의 블록체인 노드(예컨대, PB_OT1~PB_OT3)의 예시적인 블록도가 도시된다.
도 1 내지 도 3을 참조하면, 블록체인 노드(100)는 통신 인터페이스(110), 메모리(120), 및 프로세서(130)를 포함할 수 있다.
통신 인터페이스(110)는 블록체인 노드(100)와 다른 노드들(예컨대, 오프 체인 상의 노드들(W, PS))과의 통신을 인터페이싱할 수 있으며, 인터페이싱 과정에서 송수신되는 데이터 또는 신호를 처리할 수 있다.
메모리(120)는 블록체인 노드(100)가 블록체인에서 트랜잭션의 병렬적 실행을 지원하는 방법을 수행하는 데에 필요한 데이터와 프로세서(130)의 처리 과정에서 필요한 데이터, 프로세서(130)의 처리 과정 중 또는 처리 완료 후에 생성된 데이터를 저장할 수 있다.
실시 예에 따라, 메모리(120)는 본 발명의 실시 예에 따른 블록체인에서 트랜잭션의 병렬적 실행을 지원하는 방법을 수행하기 위한 프로그램을 저장할 수 있으며, 메모리(120)는 프로세서(130)와 결합되어 상기 프로그램을 실행시킬 수 있다.
프로세서(130)는 트랜잭션 병렬처리 개시 모듈(132), 참여 노드 모집 모듈(134), 및 결과 처리 모듈(136)을 포함할 수 있다.
도 3을 함께 참조하면, 트랜잭션 병렬처리 개시 모듈(132)은 수신된 블록에 포함된 오프닝 트랜잭션이 자신이 발행한 것인지 여부, 즉 오프닝 트랜잭션이 포함된 블록을 수신한 노드가 상기 오프닝 트랜잭션의 발행자인지 여부를 판단할 수 있다(S310).
실시 예에 따라, 트랜잭션 병렬처리 개시 모듈(132)은 오프닝 트랜잭션에 포함된 트랜잭션의 발행자 주소를 이용하여 블록체인 노드(100)가 해당 오프닝 트랜잭션의 발행자인지 여부를 판단할 수 있다.
도 4 내지 도 9을 함께 참조하면, 블록체인에 포함되는 블록들은 도 5에 도시된 오프닝 트랜잭션(opening transaction), 도 6에 도시된 조인 트랜잭션(join transaction), 도 7에 도시된 억셉트 트랜잭션(accept transaction), 도 8에 도시된 클로징 트랜잭션(closing transaction)을 포함할 수 있다.
도 5를 참조하면, 오프닝 트랜잭션은 하나의 트랜잭션을 구성하는 병렬 태스크들을 실행할 오프체인 상의 노드들의 모집을 시작하기 위한 트랜잭션을 의미할 수 있다.
실시 예에 따라, 오프닝 트랜잭션은 트랜잭션 주소, 트랜잭션 발행자 주소, 코드 해시, 실행 데드라인에 관한 데이터를 포함할 수 있다.
트랜잭션 주소는 해당 오프닝 트랜잭션의 주소에 관한 정보를 포함할 수 있다.
트랜잭션 발행자 주소는 해당 오프닝 트랜잭션을 발행한 발행자의 주소에 관한 정보를 포함할 수 있다.
코드 해시는 실행 대상 트랜잭션을 구성하는 병렬 태스크들의 코드 해시를 의미할 수 있다. 실시 예에 따라, 병렬 태스크들의 코드는 별도의 저장소에 저장될 수 있다.
실행 데드라인은 실행 대상 트랜잭션을 실행 완료하기로 약속된 시간에 관한 정보를 포함할 수 있다.
도 6을 참조하면, 조인 트랜잭션은 실행 대상 트랜잭션을 구성하는 병렬 태스크들의 병렬 실행을 지원하기 위하여 오프 체인 상의 참여 노드들이 발행하는 트랜잭션을 의미할 수 있다.
실시 예에 따라, 조인 트랜잭션은 트랜잭션 주소, 트랜잭션 발행자 주소, OT 주소, 희망하는 역할, 및 암호화를 위한 공개키를 포함할 수 있다.
트랜잭션 주소는 해당 조인 트랜잭션의 주소에 관한 정보를 포함할 수 있다.
트랜잭션 발행자 주소는 해당 조인 트랜잭션을 발행한 발행자의 주소에 관한 정보를 포함할 수 있다.
OT 주소는 해당 조인 트랜잭션에 연관된 오프닝 트랜잭션의 주소에 관한 정보를 포함할 수 있다.
희망하는 역할은 해당 참여 노드가 병렬 태스크들의 병렬 실행의 지원에 있어서 수행하기를 원하는 역할에 관한 정보를 포함할 수 있다.
실시 예에 따라, 희망하는 역할은 병렬 태스크들을 실행할 워커 노드(worker node, W)의 역할 또는 워커 노드(W)로 병렬 태스크들을 분배하고 파라미터 변수를 제어하는 파라미터 서버 노드(parameter server node, PS)의 역할로 구분될 수 있다.
암호화를 위한 공개키는 후술될 억셉트 트랜잭션에 포함된 네트워크 정보의 암호화에 사용되는 암호화 키일 수 있다.
도 7을 참조하면, 억셉트 트랜잭션은 오프닝 트랜잭션의 발행자(예컨대, 도 1의 PB_OT1~PB_OT3)가 모집이 완료된 참여 노드들과 네트워크의 정보를 담아 발행하는 트랜잭션을 의미할 수 있다.
실시 예에 따라, 억셉트 트랜잭션은 트랜잭션 주소, 트랜잭션 발행자 주소, OT 주소, 역할 테이블, 및 네트워크 정보를 포함할 수 있다.
트랜잭션 주소는 해당 억셉트 트랜잭션의 주소에 관한 정보를 포함할 수 있다.
트랜잭션 발행자 주소는 해당 억셉트 트랜잭션을 발행한 발행자의 주소에 관한 정보를 포함할 수 있다.
OT 주소는 해당 억셉트 트랜잭션에 연관된 오프닝 트랜잭션의 주소에 관한 정보를 포함할 수 있다.
역할 테이블은 병렬 태스크들의 병렬 실행에 참여한 참여 노드와 해당 참여 노드의 역할을 매핑한 테이블에 관한 정보를 포함할 수 있다.
네트워크 정보는 참여 노드들이 형성한 실행 네트워크(예컨대, NET_EX1~ NET_EX3)에 관한 정보, 예컨대 구성 노드들에 관한 정보 등을 포함할 수 있다.
실시 예에 따라, 네트워크 정보는 조인 트랜잭션에 포함된 암호화를 위한 공개키에 의하여 암호화된 상태로 억셉트 트랜잭션에 저장될 수 있다.
도 8을 참조하면, 클로징 트랜잭션은 병렬 태스크들을 포함하는 트랜잭션의 실행 결과를 기록하는 트랜잭션을 의미할 수 있다.
실시 예에 따라, 클로징 트랜잭션은 트랜잭션 주소, 트랜잭션 발행자 주소, OT 주소, 및 실행 결과를 포함할 수 있다.
트랜잭션 주소는 해당 클로징 트랜잭션의 주소에 관한 정보를 포함할 수 있다.
트랜잭션 발행자 주소는 해당 클로징 트랜잭션을 발행한 발행자의 주소에 관한 정보를 포함할 수 있다.
OT 주소는 해당 클로징 트랜잭션에 연관된 오프닝 트랜잭션의 주소에 관한 정보를 포함할 수 있다.
실행 결과는 참여 노드들에 의해 실행된 병렬 태스크들의 실행 결과에 관한 데이터가 포함될 수 있다.
도 4로 돌아와서, 제1블록(Block 1000)에 포함된 오프닝 트랜잭션(OTi)을 통하여 트랜잭션을 구성하는 병렬 태스크들을 수행할 참여 노드들의 모집이 시작될 수 있다.
제2블록(Block 1001)과 제3블록(Block 1002)에 포함된 조인 트랜잭션(JTi~JTk)과 억셉트 트랜잭션(ATn)에 따라 참여 노드들이 모집되며, 모집된 참여 노드들에 의하여 병렬 태스크들이 실행될 수 있다.
제4블록(Block 1003)에 포함된 클로징 트랜잭션(CTi)에는 실행 대상 트랜잭션을 구성하는 병렬 태스크들의 실행결과가 포함될 수 있다.
실시 예에 따라, 오프닝 트랜잭션 및 클로징 트랜잭션은 온 체인에만 기록되며, 조인 트랜잭션 및 억셉트 트랜잭션은 온 체인과 오프 체인에 함께 기록될 수 있다.
도 3으로 돌아와서, S310 단계에서의 판단 결과에 따라 참여 노드 모집 모듈(134)은 블록체인 노드(100)가 수신한 블록에 포함된 오프닝 트랜잭션의 발행자인 경우, 하나의 트랜잭션을 구성하는 병렬 태스크들의 수행에 참여할 오프 체인 상의 참여 노드들을 모집할 수 있다(S320).
도 1을 함께 참조하면, 오프닝 트랜잭션의 발행자(예컨대, PB_OT1)는 수신된 블록에 포함된 오프닝 트랜잭션이 자신이 발행한 것인 경우에, 오프 체인 상의 참여 노드들(예컨대, W, PS)을 모집하여 실행 네트워크(예컨대, NET_EX1)를 형성할 수 있다.
실시 예에 따라, 참여 노드 모집 모듈(134)은 S320 단계의 수행 과정에서 참여 노드들에 의하여 발행된 조인 트랜잭션을 수신하고, 요구되는 수준의 참여 노드들이 모집된 경우 모집된 참여 노드들과 형성된 실행 네트워크에 대한 억셉트 트랜잭션을 발행할 수 있다.
도 3으로 돌아와서, S320 단계에서 모집된 참여 노드들 중에서 파라미터 서버 노드(PS)의 역할을 수행하는 참여 노드는 워커 노드(W)의 역할을 수행하는 참여 노드들에 병렬 태스크들을 분배할 수 있다(S330).
실시 예에 따라, 파라미터 서버 노드(PS)는 워크 노드들(W)에 병렬 태스크들만 분배하고, 실제 실행 시에는 병렬 태스크들에 대한 코드가 저장된 별도의 저장소로부터 코드를 가지고 와서 코드 해시의 비교를 통한 위변조 여부를 확인한 후에 코드를 실행시킬 수 있다.
파라미터 서버(PS)의 역할을 수행하는 참여 노드는 참여 노드들(예컨대, 워커 노드들(W))의 병렬 태스크 실행 결과를 수집할 수 있다(S340).
파라미터 서버(PS)의 역할을 수행하는 참여 노드는 수집된 병렬 태스크 실형 결과를 오프닝 트랜잭션을 발행한 발행자 노드들(PB_OT1~PB_OT3)로 전달할 수 있다.
오프닝 트랜잭션을 발행한 발행자 노드들(PB_OT1~PB_OT3)은 S340 단계에서 수집된 실행 결과를 담은 클로징 트랜잭션을 발행할 수 있다(S350).
도 9는 본 발명의 실시 예에 따른 방법에 따른 연산, 처리 시간을 비고 예와 비교한 표이다.
도 9를 참조하면, 본 발명의 실시 예에 따라 하나의 트랜잭션을 구성하는 병렬 태스크들을 오프체인을 활용하여 병렬적 실행을 지원한 경우, 워커의 개수에 따라 연산시간, 결과 블록 처리시간, 초당 처리 태스크가 현저히 빨라지는 것을 확인할 수 있다.
또한, 본 발명의 실시 예에 따라 하나의 트랜잭션을 구성하는 병렬 태스크들을 오프체인을 활용하여 병렬적 실행을 지원한 경우, 이더리움에서 동일한 트랜잭션을 처리할 때에 비하여 연산시간, 결과 블록 처리시간, 초당 처리 태스크가 현저히 빨라지는 것을 확인할 수 있다.
이상, 본 발명의 기술적 사상을 다양한 실시 예들을 들어 상세하게 설명하였으나, 본 발명의 기술적 사상은 상기 실시 예들에 한정되지 않고, 본 발명의 기술적 사상의 범위 내에서 당 분야에서 통상의 지식을 가진 자에 의하여 여러가지 변형 및 변경이 가능하다.
100 : 블록체인 노드
110 : 통신 인터페이스
120 : 메모리
130: 프로세서

Claims (15)

  1. 오프닝 트랜잭션(opening transaction)이 포함된 블록을 수신한 블록체인 노드가, 자신이 상기 오프닝 트랜잭션의 발행자인지 여부를 판단하는 단계;
    상기 블록체인 노드가, 판단 결과에 따라 상기 오프닝 트랜잭션의 발행자인 경우, 하나의 트랜잭션을 구성하는 병렬 태스크들의 수행에 참여할 오프 체인(off chain) 상의 참여 노드들을 모집하는 단계; 및
    상기 블록체인 노드가, 모집된 상기 참여 노드들에 의한 병렬 태스크들의 실행 결과를 담은 클로징 트랜잭션(closing transaction)을 발행하는 단계를 포함하는, 블록체인에서 트랜잭션의 병렬적 실행을 지원하는 방법.
  2. 제1항에 있어서,
    상기 오프닝 트랜잭션의 발행자인지 여부를 판단하는 단계는,
    상기 블록체인 노드가, 상기 오프닝 트랜잭션에 포함된 트랜잭션 발행자 주소를 이용하여 상기 노드가 상기 오프닝 트랜잭션의 발행자인지 여부를 판단하는, 블록체인에서 트랜잭션의 병렬적 실행을 지원하는 방법.
  3. 제1항에 있어서,
    상기 병렬 태스크들은,
    상기 병렬 태스크들 간에 공유하는 변수가 같거나, 상기 병렬 태스크들의 처리 순서에 선후관계가 있는, 블록체인에서 트랜잭션의 병렬적 실행을 지원하는 방법.
  4. 제1항에 있어서,
    상기 오프닝 트랜잭션은,
    상기 병렬 태스크들의 코드 해시를 포함하며, 상기 병렬 태스크들의 코드는 별도의 저장소에 저장되는, 블록체인에서 트랜잭션의 병렬적 실행을 지원하는 방법.
  5. 제4항에 있어서,
    상기 참여 노드들을 모집하는 단계는,
    상기 블록체인 노드가, 상기 오프 체인 상의 참여 노드들로부터 조인 트랜잭션(join transaction)을 수신하는 단계; 및
    상기 블록체인 노드가, 수신된 조인 트랜잭션에 기초하여 상기 병렬 태스크들을 실행할 오프체인 상의 실행 네트워크에 대한 정보를 포함하는 억셉트 트랜잭션(accept transaction)을 발행하는 단계를 포함하는, 블록체인에서 트랜잭션의 병렬적 실행을 지원하는 방법.
  6. 제5항에 있어서,
    상기 조인 트랜잭션은,
    상기 참여 노드들이 희망하는 역할에 대한 데이터를 포함하는, 블록체인에서 트랜잭션의 병렬적 실행을 지원하는 방법.
  7. 제6항에 있어서,
    상기 희망하는 역할은,
    상기 병렬 태스크들을 실행할 워커 노드(worker node)의 역할, 또는 상기 워커 노드로 상기 병렬 태스크들을 분배하고 파라미터 변수를 제어하는 파라미터 서버 노드(parameter server node)의 역할인, 블록체인에서 트랜잭션의 병렬적 실행을 지원하는 방법.
  8. 제7항에 있어서,
    상기 파라미터 변수는,
    상기 병렬 태스크들 간에 공유되는 변수인, 블록체인에서 트랜잭션의 병렬적 실행을 지원하는 방법.
  9. 제8항에 있어서,
    상기 파라미터 서버 노드는,
    상기 오프닝 트랜잭션에 포함된 상기 코드 해시를 이용하여 상기 별도의 저장소에 저장된 상기 병렬 태스크들의 코드를 획득하고, 획득한 코드와 상기 코드 해시의 비교를 통한 위변조 여부를 확인하는, 블록체인에서 트랜잭션의 병렬적 실행을 지원하는 방법.
  10. 제9항에 있어서,
    수집된 상기 병렬 태스크들의 코드의 실행 결과는,
    상기 클로징 트랜잭션에 저장되는, 블록체인에서 트랜잭션의 병렬적 실행을 지원하는 방법.
  11. 제5항에 있어서,
    상기 오프닝 트랜잭션 및 상기 클로징 트랜잭션은 온 체인(on chain)에만 기록되며,
    상기 조인 트랜잭션 및 상기 억셉트 트랜잭션은 상기 온 체인과 상기 오프 체인에 함께 기록되는, 블록체인에서 트랜잭션의 병렬적 실행을 지원하는 방법.
  12. 제1항에 있어서,
    온 체인에서 실행되는 트랜잭션과, 상기 병렬 태스크들로 구성되어 오프 체인에서 실행되는 상기 하나의 트랜잭션은 서로 병렬적으로 실행되는, 블록체인에서 트랜잭션의 병렬적 실행을 지원하는 방법.
  13. 제12항에 있어서,
    상기 병렬 태스크들로 구성되어 상기 오프 체인에서 실행되는 상기 하나의 트랜잭션은, 상기 온 체인에서 실행되는 트랜잭션에 비하여 요구되는 연산량이 상대적으로 큰, 블록체인에서 트랜잭션의 병렬적 실행을 지원하는 방법.
  14. 오프닝 트랜잭션(opening transaction)이 포함된 블록을 수신하고, 자신이 상기 오프닝 트랜잭션의 발행자인지 여부를 판단하는 트랜잭션 병렬처리 개시 모듈;
    판단 결과에 따라 상기 오프닝 트랜잭션의 발행자인 경우, 하나의 트랜잭션을 구성하는 병렬 태스크들의 수행에 참여할 오프 체인(off chain) 상의 참여 노드들을 모집하는 참여 노드 모집 모듈; 및
    모집된 상기 참여 노드들에 의한 병렬 태스크들의 실행 결과를 담은 클로징 트랜잭션(closing transaction)을 발행하는 결과 처리 모듈을 포함하는, 블록체인 노드.
  15. 프로세서(processor)와 결합되어 블록체인에서 트랜잭션의 병렬적 실행을 지원하는 방법을 수행하기 위해 매체에 저장된 컴퓨터 프로그램으로서,
    오프닝 트랜잭션(opening transaction)이 포함된 블록을 수신한 노드가 상기 오프닝 트랜잭션의 발행자인지 여부를 판단하는 단계;
    판단 결과에 따라 자신이 발행한 오프닝 트랜잭션인 경우, 하나의 트랜잭션을 구성하는 병렬 태스크들의 수행에 참여할 오프 체인(off chain) 상의 참여 노드들을 모집하는 단계; 및
    모집된 상기 참여 노드들에 의한 병렬 태스크들의 실행 결과를 담은 클로징 트랜잭션(closing transaction)을 발행하는 단계를 수행하는, 매체에 저장된 컴퓨터 프로그램.
KR1020200039921A 2019-11-19 2020-04-01 트랜잭션의 병렬적 실행을 지원하는 방법, 이를 이용하는 블록체인 노드 및 프로그램 KR102342788B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020190149135 2019-11-19
KR20190149135 2019-11-19

Publications (2)

Publication Number Publication Date
KR20210061241A KR20210061241A (ko) 2021-05-27
KR102342788B1 true KR102342788B1 (ko) 2021-12-24

Family

ID=76135812

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200039921A KR102342788B1 (ko) 2019-11-19 2020-04-01 트랜잭션의 병렬적 실행을 지원하는 방법, 이를 이용하는 블록체인 노드 및 프로그램

Country Status (1)

Country Link
KR (1) KR102342788B1 (ko)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170212781A1 (en) 2016-01-26 2017-07-27 International Business Machines Corporation Parallel execution of blockchain transactions
CN108564470A (zh) 2018-04-17 2018-09-21 北京天德科技有限公司 一种区块链中并行建块的交易分发方法
WO2019072305A2 (en) 2018-12-28 2019-04-18 Alibaba Group Holding Limited PARALLEL EXECUTION OF TRANSACTIONS IN A BLOCK CHAIN NETWORK BASED ON WHITE LISTS OF INTELLIGENT CONTRACTS
US20190287101A1 (en) 2018-12-28 2019-09-19 Alibaba Group Holding Limited Parallel execution of transactions in a blockchain network
KR102118178B1 (ko) 2019-04-24 2020-06-02 주식회사 데이터젠 블록체인을 위한 다중 트랜잭션 병렬 처리 방법 및 시스템

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170212781A1 (en) 2016-01-26 2017-07-27 International Business Machines Corporation Parallel execution of blockchain transactions
CN108564470A (zh) 2018-04-17 2018-09-21 北京天德科技有限公司 一种区块链中并行建块的交易分发方法
WO2019072305A2 (en) 2018-12-28 2019-04-18 Alibaba Group Holding Limited PARALLEL EXECUTION OF TRANSACTIONS IN A BLOCK CHAIN NETWORK BASED ON WHITE LISTS OF INTELLIGENT CONTRACTS
US20190287101A1 (en) 2018-12-28 2019-09-19 Alibaba Group Holding Limited Parallel execution of transactions in a blockchain network
KR102118178B1 (ko) 2019-04-24 2020-06-02 주식회사 데이터젠 블록체인을 위한 다중 트랜잭션 병렬 처리 방법 및 시스템

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Mu Li 외 8명. Scaling Distributed Machine Learning with the Parameter Server. 2014년

Also Published As

Publication number Publication date
KR20210061241A (ko) 2021-05-27

Similar Documents

Publication Publication Date Title
CN110428257B (zh) 密码破解任务处理方法、设备及存储介质
TWI829626B (zh) 用於指定電子通訊之接收者的基於區塊鏈之方法及系統
CN110223040B (zh) 项目管理方法、装置、电子设备及存储介质
CN108595157B (zh) 区块链数据的处理方法、装置、设备和存储介质
CN110995473B (zh) 一种业务节点的控制方法及相关设备
US20180121909A1 (en) System and method to dynamically setup a private sub-blockchain based on agility of transaction processing
CN108959621A (zh) 一种区块链网络的实现方法、装置、设备及存储介质
CN110520882A (zh) 在区块链网络中并行执行交易
CN104123184B (zh) 一种用于为构建过程中的任务分配资源的方法和系统
CN108335207A (zh) 资产管理方法及装置、电子设备
CN108346100A (zh) 资产管理方法及装置、电子设备
CN108282539A (zh) 基于双层网络的去中心化存储系统
US9294464B2 (en) Automatic authorization of users and configuration of software development environment
US9946555B2 (en) Enhanced configuration and property management system
CN110599348B (zh) 股权激励的方法、装置、设备及存储介质
CN111782551B (zh) 针对区块链项目的测试方法、装置及计算机设备
US20220156726A1 (en) Blockchain-based supply chain payment network
CN112184177A (zh) 一种项目监管的方法、设备及存储介质
CN108347483A (zh) 基于双层网络的去中心化计算系统
TW202040460A (zh) 基於區塊鏈的資料處理方法、裝置和區塊鏈節點
CN109063049A (zh) 一种区块链网络的账号处理方法、装置、设备及存储介质
WO2016205152A1 (en) Project management with critical path scheduling and releasing of resources
US20190107968A1 (en) Criteria-based cost-efficient routing and deployment of metadata packages in an on-demand environment
US20060224424A1 (en) Business context services for adaptable service oriented architecture components
WO2021073096A1 (zh) 资源数据的转移方法、装置和区块链系统

Legal Events

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