KR20210072265A - 블록체인을 이용한 서비스 분산 처리 방법 및 이를 구현하는 장치 - Google Patents

블록체인을 이용한 서비스 분산 처리 방법 및 이를 구현하는 장치 Download PDF

Info

Publication number
KR20210072265A
KR20210072265A KR1020190162356A KR20190162356A KR20210072265A KR 20210072265 A KR20210072265 A KR 20210072265A KR 1020190162356 A KR1020190162356 A KR 1020190162356A KR 20190162356 A KR20190162356 A KR 20190162356A KR 20210072265 A KR20210072265 A KR 20210072265A
Authority
KR
South Korea
Prior art keywords
service
actor
contract
transaction
state
Prior art date
Application number
KR1020190162356A
Other languages
English (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 KR1020190162356A priority Critical patent/KR20210072265A/ko
Publication of KR20210072265A publication Critical patent/KR20210072265A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • 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
    • G06Q20/0658Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash e-cash managed locally
    • 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/104Peer-to-peer [P2P] networks
    • H04L67/1061Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
    • H04L67/1065Discovery involving distributed pre-established resource-based relationships among peers, e.g. based on distributed hash tables [DHT] 

Landscapes

  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Finance (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

블록체인을 이용한 서비스 분산 처리 방법 및 이를 구현하는 장치가 개시된다.
블록체인을 이용한 서비스 분산 처리 방법은, 서비스 소비자의 서비스 요청에 따라, 상기 서비스의 단위 기능을 수행하는 액터(actor)를 적어도 하나 선별함과 아울러서, 상기 단위 기능의 서비스 로직을 규정하는 수행 흐름 정보를 생성하는 단계와, 상기 선별된 액터와 상기 수행 흐름 정보에 기반한 수행 흐름을 규정하며 상기 수행 흐름에 속한 상기 액터의 수행 조건을 확인하여 서비스 상태를 제어하는 서비스 로직 컨트랙트를 상기 서비스 별로 생성하는 단계와, 상기 서비스 상기 서비스 로직 컨트랙트에서 규정한 수행 흐름의 진행에 따른 서비스 트랜잭션의 유효성을 검증하며, 검증된 서비스 트랜잭션에 대해 오퍼레이션 서비스 트랜잭션 블록을 생성하여 분산 서비스 원장의 서비스 블록부에 기록하는 단계, 및 상기 서비스 로직 컨트랙트의 수행 조건이 완료되어 기록된 상기 오퍼레이션 서비스 트랜잭션 블록의 수집 정보를 해싱한 액터 상태 요약 정보를 서비스 상태 트랜잭션 형태로 분산 서비스 원장의 퍼블릭(public) 공유 블록부에 저장하는 단계를 포함한다.

Description

블록체인을 이용한 서비스 분산 처리 방법 및 이를 구현하는 장치{METHOD AND APPARATUS FOR DISTRIBUTED PROCESSING OF SERVICES USING BLOCKCHAIN}
본 개시는 블록체인을 이용한 서비스 분산 처리 방법 및 이를 구현하는 장치 에 대한 것이며, 보다 구체적으로는 가치 데이터 공급 단계에서 발생되는 서비스 트랜잭션들이 마이크로서비스 지향 상태 샤딩 구조 형태(microservice oriented state sharding)로 병렬처리되기 위한 블록체인 서비스 분산 처리 방법 및 장치에 대한 것이다.
중개인 없이 신뢰를 담보할 수 있는 기술을 제공하는 블록체인은, 동일한 거래 원장에 네트워크에서 발생하는 모든 거래 기록을 기록하여 네트워크 참여자들이 전부 공증할 수 있는 분산원장 시스템을 가능하게 한다. 블록체인은 개인간 공유 플랫폼으로 정의할 수 있으며, 참여자인 노드들이 정보를 공유하는 형태를 가지면서 신뢰성과 탈중앙화라는 가치를 제공하는 특징을 가진다. 블록체인 내의 노드가 서로 신뢰할 수 있는 합의 메커니즘에 의해 형성되는 신뢰 특성으로 인해, 여러 서비스 분야에서 블록체인의 보안기술을 요구하고 있다.
스마트 컨트랙트(Smart Contract)는 블록체인을 응용한 서비스를 제공하는데 필요한 기술이다. 클라이언트가 새로운 트랜잭션을 발생시키면, 블록체인 참여 노드들은 트랜잭션을 분산합의 과정을 통해 공유하여 트랜잭션 데이터베이스에 저장시키고 스마트 컨트랙트의 상태를 변경시키면서 트랜잭션을 실행함으로써 클라이언트 그 결과를 확인할 수 있다.
공개형 블록체인 플랫폼이 현재 직면한 가장 큰 문제 중의 하나는 확장성이다. 현재, 이더리움과 비트코인의 공공 네트워크는 초당 평균 7-10개의 트랜잭션을 처리할 수 있다. 저속의 트랜잭션 처리로 인해 중요한 문제가 야기되며, 실시간 결제와 같은 응용 서비스를 블록체인 플랫폼 상에서 사용하는데 한계가 있다. 즉, 실시간 트랜잭션 처리를 요구하는 서비스 결제가 완료되는데 오래 걸릴수록, 최종 서비스 사용자들의 불편은 더욱 증대된다.
분산 네트워크를 기반으로 동작하는 블록체인은 합의 알고리즘이 적용되어, 기존 중앙집중식 서버환경에 비해 데이터 처리에 많은 시간이 소요될 수밖에 없다. 최근 주목받고 있는 샤딩(sharding)은 병렬처리를 통해 블록체인의 확장성을 확보하는 방식이다. 기존 블록체인 기술들은 트랜잭션을 분산하여 처리하지 않고 하나로 처리하는 직렬처리 방식이어서 많은 노드를 추가하고 초당 처리속도를 높여도 확장성을 확보하는데 한계가 있었다. 그러나, 샤딩은 병렬처리 형태로 동시에 여러개의 트랜잭션을 처리할 수 있어서 확장성을 충분히 확보할 수 있다.
샤딩기술은 전체 네트워크를 분할한 뒤 트랜잭션을 영역별로 저장하고 이를 병렬적으로 처리하여 블록체인에 확장성을 부여하는 On-Chain 솔루션이다. 이러한 샤딩기술은 크게 네트워크 샤딩, 트랜잭션 샤딩, 스테이트(state) 샤딩으로 분류되며, 네트워크 샤딩은 임의로 네트워크가 무작위로 노드를 샘플링하여 블록단위로 샤드를 형성하는 것이고, 트랜잭션 샤딩은 트랜잭션 해시의 마지막 몇 비트를 기반으로 샤드를 결정해서 트랜잭션의 유효성을 확인한다. 스테이트 샤딩은 모든 노드가 모든 "State"들에 대해서 업데이트하여 저장하는 것이 아니라, "State"들을 특정 샤드라는 각각의 집단으로 분리하여 각각의 샤드를 서로 다른 노드들이 관리하게 한다.
그러나, 상술한 샤딩 기술은 거래 당사자나 스마트 컨트랙트가 여러 개의 샤드들과 연관되어 트랜잭션을 처리해야 한다면 샤드 간의 통신을 요구한다. 이러한 샤드 간 비동기 통신은 여러 단계를 수행하게 되므로 그에 따르는 시간이 과도하게 증가한다. 이로 인한 지연 상태가 메인 블록체인에 과부담이 되므로, 샤드간 통신이 너무 자주 발생하는 경우에, 샤딩기술이 제공하는 장점은 소멸되는 문제점이 야기된다.
다양한 용량과 형태의 디바이스들과 센서장치 및 자율 사물장치들이 존재하는 초연결 시대에는, 로우 데이터(Raw Data)를 원하는 형태로 가공하거나 분석작업을 수행해서 서비스 요청 고객에게 가치있는 지식정보를 제공하는 데이터 서비스가 요구될 것이다. 따라서, 주변에 존재하는 다양한 형태와 용량의 데이터와 디바이스를 여러가지 방식으로 조합하고 활용함으로써 원하는 가치 정보를 신뢰하면서 거래할 수 있는 서비스 제공 방안이 필요하다.
복잡한 비즈니스 서비스 로직 형태를 가지게 되는 다양하고 유연한 형태의 데이터 서비스가 효과적으로 제공될 수 있도록, 블록체인 기술을 활용한 분산화된 서비스 스케일링 구성 기법을 필요로 하게 된다.
본 개시의 기술적 과제는 가치 데이터 공급 단계에서 발생되는 서비스 트랜잭션들이 마이크로서비스 지향 상태 샤딩 구조 형태(microservice oriented state sharding)로 병렬처리되기 위한 블록체인을 이용한 서비스 분산 처리 방법 및 장치를 제공하는 것이다.
본 개시의 다른 기술적 과제는, 중앙 관리서버 없이 서비스 공급자와 소비자 간의 요구사항에 따른 가치 데이터를 공급하고 생성된 데이터의 신뢰성을 효과적으로 보장할 수 있도록, 복잡한 비즈니스 서비스 로직이 적용될 수 있는 서비스 스케일링을 고려한 분산화된 서비스 아키텍처 모델을 적용함으로써, 사물들 간에 자율적인 실시간 가치 데이터 서비스를 제공할 수 있는 블록체인을 이용한 서비스 분산 처리 방법 및 장치를 제공하는 것이다.
본 개시에서 이루고자 하는 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급하지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
본 개시의 일 양상에 따르면, 블록체인을 이용한 서비스 분산 처리 방법이 제공될 수 있다. 상기 블록체인을 이용한 서비스 분산 처리 방법은, 서비스 소비자의 서비스 요청에 따라, 상기 서비스의 단위 기능을 수행하는 액터(actor)를 적어도 하나 선별함과 아울러서, 상기 단위 기능의 서비스 로직을 규정하는 수행 흐름 정보를 생성하는 단계와, 상기 선별된 액터와 상기 수행 흐름 정보에 기반한 수행 흐름을 규정하며 상기 수행 흐름에 속한 상기 액터의 수행 조건을 확인하여 서비스 상태를 제어하는 서비스 로직 컨트랙트(service logic contract)를 상기 서비스 별로 생성하는 단계와, 상기 서비스 로직 컨트랙트 단위로 동적인 서비스 네트워크와 분산 서비스 원장의 서비스 블록부를 관리하는 상태 샤드 구조를 갖도록, 상기 서비스 로직 컨트랙트에서 규정한 수행 흐름의 진행에 따른 서비스 트랜잭션의 유효성을 검증하며, 검증된 서비스 트랜잭션에 대해 오퍼레이션 서비스 트랜잭션 블록을 생성하여 분산 서비스 원장의 서비스 블록부에 기록하는 단계, 및 상기 서비스 로직 컨트랙트의 수행 조건이 완료되어 기록된 상기 오퍼레이션 서비스 트랜잭션 블록의 수집 정보를 해싱한(hashing) 액터 상태 요약 정보를 서비스 상태 트랜잭션 형태로 분산 서비스 원장의 퍼블릭(public) 공유 블록부에 저장하는 단계를 포함한다.
본 개시의 다른 실시예에 따르면, 상기 액터의 선정 시에 검색되는 상기 액터는 상기 서비스 소비자 주변 또는 상기 서비스 요청에 따른 데이터의 발생지 주변의 디바이스 혹은 소프트웨어 모듈일 수 있다.
본 개시의 또 다른 실시예에 따르면, 상기 액터를 적어도 하나 선별하는 것은 액터의 위치 정보와 결합된 노드 식별자(nodeID)를 갖는 데이터 속성 정보 및 단위 기능 별로 분류된 액터와 각 액터의 세부 정보를 관리하는 리소스 집합과 관련된 리소스 식별자(resourceID)를 갖는 리소스 속성 정보를 참조하여 주변의 액터를 선별할 수 있다. 본 개시의 또 다른 실시예에 따르면, 상기 액터마다 상기 단위 기능을 수행한 상태 이력(state history)을 저장하는 데이터 이벤트 소싱 컨트랙트(Date event sourcing contract)에 의해 관리되며, 상기 데이터 이벤트 소싱 컨트랙트는 상기 수행 흐름 정보에 속한 해당 액터의 상태 이력 및 상기 단위 기능을 구현하는 상기 액터의 세부 기능을 포함하고, 상기 수행 흐름 정보는 상기 액터마다의 상기 상태 이력 및 상기 세부 기능을 참조하여 생성될 수 있다.
또한, 상기 데이터 이벤트 소싱 컨트랙트는 상기 서비스 로직 컨트랙트에서 수행되는 해당 액터의 서비스 트랜잭션과 관련된 상기 수행 조건의 정상 완료 여부를 기록하는 액터 상태 정보와 상기 서비스 트랜잭션과 관련된 해당 액터의 결과값을 출력하며, 상기 오퍼레이션 서비스 트랜잭션 블록은 상기 액터 상태 정보와 상기 결과값을 포함할 수 있다.
본 개시의 또 다른 실시예에 따르면, 상기 서비스 로직 컨트랙트는 상기 수행 흐름 정보를 반영하여, 상기 액터의 노드 및 상기 노드 별 액티비티 작업(activity task)과 상기 노드들 간의 전이 과정을 포함하는 수행 조건과 관련된 상태 전이 컨트랙트(state transition contract)를 포함하고, 상기 서비스 상태의 제어는 상기 상태 전이 컨트랙트의 상기 수행 조건의 충족 여부를 판단하여 연속하는 액터들의 액티비티 작업을 수행할 수 있다.
또한, 상기 수행 조건의 충족은 상기 액터별 단위 기능 수행의 소정 시간 내에 응답이 있으며, 상기 액터의 노드들 간의 전이 과정이 상기 수행 흐름에 부합하는 것일 수 있다.
본 개시의 또 다른 실시예에 따르면, 상기 서비스 로직 컨트랙트는 상기 액터의 결과값의 적어도 일부에 대한 해시값으로 나타내는 데이터 무결성 정보(data integrity)와 상기 액터의 서비스 트랜잭션에 대한 유효성 검증에 관한 PoA(Proof of Activity) 정보를 상기 서비스 블록부에 기록할 수 있다.
본 개시의 또 다른 실시예에 따르면, 상기 서비스 요청은 데이터의 공급 처리이며, 상기 수행 흐름 정보는 상기 데이터 공급 처리를 위한 서비스 로직을 규정하고, 상기 서비스 로직 컨트랙트는 상기 데이터 공급 처리를 수행하는 상기 액터의 수행 조건을 확인하여 제어할 수 있다.
본 개시의 또 다른 실시예에 따르면, 상기 서비스 트랜잭션의 유효성을 검증하는 것은 상기 수행 흐름에 속한 적어도 하나 이상의 액터의 수행 오퍼레이션으로 인해 발생된 서비스 트랜잭션 별로 수행될 수 있다.
본 개시의 또 다른 실시예에 따르면, 상기 서비스 트랜잭션의 유효성을 검증하며, 검증된 서비스 트랜잭션에 대해 오퍼레이션 서비스 트랜잭션 블록을 생성하여 서비스 블록부에 기록하는 단계는, 상기 서비스 로직 컨트랙트에서 설정된 상기 액터마다의 수행 조건을 진행하는 과정에서 서비스 트랜잭션의 유효성 검증을 위해, 유효 검증부를 구성하는 검증자(validator)와 오퍼레이션 체커(operation checker)로서의 노드를 랜덤 선발하여 서비스 네트워크를 동적으로 구성하는 단계와, 상기 서비스 로직 컨트랙트를 해당 서비스 네트워크에 전개(deploy)하여 실행함으로써, 참여한 유효 검증부를 통해 서비스 로직 구성 검증과 함께 상기 요청한 서비스를 개시하는 단계와, 상기 유효 검증부가 상기 서비스 로직 컨트랙트의 수행 흐름의 진행 상에 상태 전이 컨트랙트로부터 발생된 상기 액터의 서비스 트랜잭션들의 검증 작업을 수행하며, 검증된 서비스 트랜잭션은 상기 서비스 블록부에 기록하는 단계를 포함할 수 있다.
본 개시의 또 다른 실시예에 따르면, 상기 유효 검증부에 의한 검증 결과에서 상기 액터가 상기 수행 흐름을 위반한 오류 동작 또는 상기 수행 흐름에서 상기 액터의 응답이 없는 블록킹 상태(blocking status)가 있다고 판정된 경우에, 상기 서비스 소비자 및 상기 서비스 요청을 제공하는 서비스 공급자에게 상기 검증 결과를 통지할 수 있다.
본 개시의 또 다른 실시예에 따르면, 상기 검증 결과에서 없다고 판정된 경우에, 상기 수행 흐름에 속한 상기 액터의 독립적인 동작 상태에 따라 상기 서비스 로직 컨트랙트가 상기 수행 흐름을 수행 완료한지 여부를 판정하는 단계를 더 포함하고,
판정 결과 수행 완료가 달성되지 않은 경우에, 상기 서비스 트랜잭션들의 검증 작업이 완료되지 않은 상기 액터에 대하여, 상기 유효 검증부가 상기 서비스 로직 컨트랙트의 수행 흐름의 진행 상에 상태 전이 컨트랙트로부터 발생된 상기 액터의 서비스 트랜잭션들의 검증 작업을 수행하며, 검증된 서비스 트랜잭션은 상기 서비스 블록부에 기록하는 단계와, 상기 유효 검증부에 의한 검증 결과에서 상기 오류 동작 또는 상기 블록킹 상태가 있는지 여부를 판정하는 단계를 반복할 수 있다.
본 개시의 또 다른 실시예에 따르면, 상기 서비스 로직 컨트랙트를 생성하는 단계는 상기 서비스 로직 컨트랙트와 매핑된 서비스 식별자를 생성하여 다른 서비스 소비자에 의한 서비스 요청이 있는 경우에 상기 서비스 식별자를 조회하여 상기 서비스 로직 컨트랙트에 접근
본 개시의 다른 양상에 따르면, 블록체인을 이용한 서비스 분산 처리 장치가 제공될 수 있다. 상기 블록체인을 이용한 서비스 분산 처리 장치는, 서비스 소비자의 서비스 요청에 따라, 상기 서비스의 단위 기능을 수행하는 액터(actor)를 적어도 하나 선별함과 아울러서, 상기 단위 기능의 서비스 로직을 규정하는 수행 흐름 정보를 생성하는 데이터 플로우 생성부, 상기 선별된 액터와 상기 수행 흐름 정보에 기반한 수행 흐름을 규정하며 상기 수행 흐름에 속한 상기 액터의 수행 조건을 확인하여 서비스 상태를 제어하는 서비스 로직 컨트랙트(service logic contract)를 상기 서비스 별로 동적으로 생성하는 서비스 로직 컨트랙트부(service logic contract portion), 상기 서비스 로직 컨트랙트에서 규정한 수행 흐름의 진행에 따른 서비스 트랜잭션의 유효성을 검증하는 유효 검증부, 상기 서비스 로직 컨트랙트 단위로 동적인 서비스 네트워크와 분산 서비스 원장의 서비스 블록부를 관리하는 상태 샤드 구조를 갖도록, 상기 분산 서비스 원장에 위치되며, 검증된 서비스 트랜잭션에 대해 오퍼레이션 서비스 트랜잭션 블록이 생성되어 저장되는 서비스 블록부, 및 상기 분산 서비스 원장에 위치되며, 상기 서비스 로직 컨트랙트의 수행 조건이 완료되어 기록된 상기 오퍼레이션 서비스 트랜잭션 블록의 수집 정보를 해싱한 액터 상태 요약 정보를 서비스 상태 트랜잭션 형태로 저장되는 퍼블릭 공유 블록부를 포함한다.
본 개시에 대하여 위에서 간략하게 요약된 특징들은 후술하는 본 개시의 상세한 설명의 예시적인 양상일 뿐이며, 본 개시의 범위를 제한하는 것은 아니다.
본 개시에 따르면, 가치 데이터 공급 단계에서 발생되는 서비스 트랜잭션들이 마이크로서비스 지향 상태 샤딩 구조 형태로 병렬처리되기 위한 블록체인을 이용한 서비스 분산 처리 방법 및 그 장치를 제공할 수 있다.
본 개시에 따르면, 서비스 공급자와 소비자 간의 요구사항에 따른 가치 데이터를 공급하는 복잡한 비즈니스 서비스 로직이 적용될 수 있는 서비스 스케일링을 고려한 분산화된 서비스 아키텍처 모델을 적용함으로써, 사물들 간에 자율적인 실시간 가치 데이터 서비스를 제공할 뿐만 아니라, 생성된 데이터의 신뢰성을 보장할 수 있다.
또한, 본 개시에 따르면, 블록체인 참여 노드들이 모든 데이터 서비스들의 상태들(states)에 대해 업데이트하여 저장하는 것이 아니라, 해당 데이터 서비스의 참여 노드들만이 속한 샤드(shard)로서의 서비스 네트워크와 분산 서비스 원장에 할당된 서비스 트랜잭션만을 처리하여 해당 데이터 서비스 상태만을 유지하므로, 기모든 노드가 모든 트랜잭션을 처리한다는 기존의 샤딩 기술의 기술적 한계와 이에 따른 성능 문제를 해결할 수 있다.
본 개시에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
도 1은 본 발명의 일 실시예에 따른 블록체인 서비스 분산 처리 장치를 나타내는 개념도이다.
도 2a 및 도 2b는 본 발명의 다른 실시예에 따른 블록체인 서비스 분산 처리 방법을 설명하기 위한 순서도이다.
도 3은 데이터 이벤트 소싱 컨트랙트에서 협업가능한 액터와 각 액터의 접근 권한을 설정하는 과정을 나타내는 도면이다.
도 4는 수행 조건을 규정하는 서비스 로직을 예시한 도면이다.
도 5는 액터들의 수행 흐름에 따른 액터 별 작업 리스트가 블록체인 서비스 분산 처리 시스템에서 수행되는 개념도이다.
도 6은 상태 전이 컨트랙트에서 수행되는 협업 분산 액터들의 서비스 상태 제어를 나타내는 개념도이다.
도 7은 데이터 공급 서비스 로직 컨트랙부에서 수행되는 상태 전이 컨트랙트의 수행 조건을 확인하는 과정을 예시한 도면이다.
도 8은 데이터 이벤트 소싱 컨트랙트와 상태 전이 컨트랙트의 상세 구성을 나타내는 도면이다.
도 9는 본 발명의 일 실시예에 따른 블록체인 서비스 분산 처리 장치를 구현하는 서비스 공급자, 서비스 수요자 및 노드의 블록 구성도이다.
이하에서는 첨부한 도면을 참고로 하여 본 개시의 실시 예에 대하여 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나, 본 개시는 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시 예에 한정되지 않는다.
본 개시의 실시 예를 설명함에 있어서 공지 구성 또는 기능에 대한 구체적인 설명이 본 개시의 요지를 흐릴 수 있다고 판단되는 경우에는 그에 대한 상세한 설명은 생략한다. 그리고, 도면에서 본 개시에 대한 설명과 관계없는 부분은 생략하였으며, 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
본 개시에 있어서, 어떤 구성요소가 다른 구성요소와 "연결", "결합" 또는 "접속"되어 있다고 할 때, 이는 직접적인 연결 관계뿐만 아니라, 그 중간에 또 다른 구성요소가 존재하는 간접적인 연결관계도 포함할 수 있다. 또한 어떤 구성요소가 다른 구성요소를 "포함한다" 또는 "가진다"고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 배제하는 것이 아니라 또 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
본 개시에 있어서, 제1, 제2 등의 용어는 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용되며, 특별히 언급되지 않는 한 구성요소들간의 순서 또는 중요도 등을 한정하지 않는다. 따라서, 본 개시의 범위 내에서 일 실시 예에서의 제1 구성요소는 다른 실시 예에서 제2 구성요소라고 칭할 수도 있고, 마찬가지로 일 실시 예에서의 제2 구성요소를 다른 실시 예에서 제1 구성요소라고 칭할 수도 있다.
본 개시에 있어서, 서로 구별되는 구성요소들은 각각의 특징을 명확하게 설명하기 위함이며, 구성요소들이 반드시 분리되는 것을 의미하지는 않는다. 즉, 복수의 구성요소가 통합되어 하나의 하드웨어 또는 소프트웨어 단위로 이루어질 수도 있고, 하나의 구성요소가 분산되어 복수의 하드웨어 또는 소프트웨어 단위로 이루어질 수도 있다. 따라서, 별도로 언급하지 않더라도 이와 같이 통합된 또는 분산된 실시 예도 본 개시의 범위에 포함된다.
본 개시에 있어서, 다양한 실시 예에서 설명하는 구성요소들이 반드시 필수적인 구성요소들은 의미하는 것은 아니며, 일부는 선택적인 구성요소일 수 있다. 따라서, 일 실시 예에서 설명하는 구성요소들의 부분집합으로 구성되는 실시 예도 본 개시의 범위에 포함된다. 또한, 다양한 실시 예에서 설명하는 구성요소들에 추가적으로 다른 구성요소를 포함하는 실시 예도 본 개시의 범위에 포함된다.
이하, 첨부한 도면을 참조하여 본 개시의 실시 예들에 대해서 설명한다.
도 1 및 도 6을 참조하여, 본 발명의 일 실시예에 따른 블록체인을 이용한 서비스 분산 처리 장치에 대하여 설명하기로 한다.
도 1은 본 발명의 일 실시예에 따른 블록체인 서비스 분산 처리 장치를 나타내는 개념도이고, 도 6은 상태 전이 컨트랙트에서 수행되는 협업 분산 액터들의 서비스 상태 제어를 나타내는 개념도이다.
블록체인 서비스 분산 처리 장치(100)는 서비스 별로 액터(112)의 노드가 연결된 샤드 구조를 갖는 서비스 블록부(102c)와 이와 연계되며 액터 상태 요약 정보(102b)를 저장하는 퍼블릭(public) 공유 블록부(102d)를 갖는 분산 서비스 원장(102), 데이터 이벤트 소싱 컨트랙트부(104; data event sourcing contract portion), 서비스 로직 컨트랙트부(106; service logic contract portion), 유효 검증부(114) 및 데이터 플로우 생성부(116)를 포함할 수 있다.
보다 구체적으로, 블록체인 서비스 분산 처리 장치(100)는 서비스 소비자(108)의 서비스 요청에 따라, 서비스의 단위 기능을 수행하는 액터(112)를 적어도 하나 선별함과 아울러서, 단위 기능의 서비스 로직을 규정하는 수행 흐름 정보를 생성하는 데이터 플로우 생성부(106)를 포함한다.
블록체인 서비스 분산 처리 장치(100)는 선별된 액터(112)와 수행 흐름 정보에 기반한 수행 흐름을 규정하며 상기 수행 흐름에 속한 상기 액터의 수행 조건을 확인하여 서비스 상태를 제어하는 서비스 로직 컨트랙트(service logic contract)를 서비스 별로 동적으로 생성하는 서비스 로직 컨트랙트부(104)를 포함한다.
블록체인 서비스 분산 처리 장치(100)는 서비스 로직 컨트랙트에서 규정한 수행 흐름의 진행에 따른 서비스 트랜잭션의 유효성을 검증하는 유효 검증부(114)를 포함한다.
블록체인 서비스 분산 처리 장치(100)는 서비스 로직 컨트랙트 단위로 동적인 서비스 네트워크와 분산 서비스 원장(102)의 서비스 블록부(102c)를 관리하는 상태 샤드 구조를 갖도록, 분산 서비스 원장(102)에 위치되며, 검증된 서비스 트랜잭션에 대해 오퍼레이션 서비스 트랜잭션 블록(102a)이 생성되어 저장되는 서비스 블록부(102c)를 포함한다.
블록체인 서비스 분산 처리 장치(100)는 분산 서비스 원장(102)에 위치되며, 서비스 로직 컨트랙트의 수행 조건이 완료되어 기록된 오퍼레이션 서비스 트랜잭션 블록(102a)의 수집 정보를 해싱한 액터 상태 요약 정보(102b)를 서비스 상태 트랜잭션 형태로 저장되는 퍼블릭 공유 블록부(102d)를 포함한다.
서비스 요청은 데이터 공급 처리일 수 있으며, 구체적으로 데이터 가공, 분석, 특정 처리, 저장 중 적어도 하나일 수 있다. 예를 들면, 서비스 요청은 특정 공간의 온도를 확인하여 온도에 따라 공조기를 제어하며, 공조기의 전력 및 온도 변화에 따른 분석함과 아울러서 분석 결과를 특정 디바이스에 저장할 수 있는 요청일 수 있다. 다른 예로서, 서비스 요청은 비디오의 편집, 가공, 저장 등과 관련된 데이터 공급 처리일 수 있다.
액터(112)는 데이터 공급 처리에 참여하여 일련의 처리 과정마다 요구되는 단위 기능을 갖는다. 상술한 예의 경우에, 각 단위 기능을 수행하기 위한 액터(112)가 복수로 존재한다. 복수의 액터들(112)은 온도 확인의 단위 기능을 갖는 온도 센서, 공조기 제어의 단위 기능과 관련된 공조기 컨트롤러, 전력 및 온도 변화 분석과 관련된 분석 소프트웨어 모듈, 저장 디바이스일 수 있다. 따라서, 액터(112)는 요청된 서비스의 최종 가치 데이터를 제공하기 위해, 하드웨어 디바이스뿐만 아니라, 소프트웨어 모듈일 수도 있다.
데이터 플로우 생성부(116)는 서비스 소비자(108)의 서비스 요청을 기반으로 데이터 이벤트 소싱 컨트랙트 및 DHT 라우팅 테이블(도 3 참조)을 조회한다. 데이터 플로우 생성부(116)는 서비스 소비자(108) 또는 데이터 발생지의 주변에, 등록된 데이터 속성 정보 및 리소스 속성 정보를 참조하여. 주변의 액터(112)를 선별한다.
데이터 소스 집합 및 액터들(112)의 리소스 집합에 대한 노드 식별자(NodeID)와 함께 위치정보가 DHT 라우팅 테이블에서 관리되고, 데이터 및 리소스 속성정보를 기반으로 생성된 리소스 식별자(ResourceID)에 의해 분류되는 데이터 소스 집합 및 액터들(112)의 리소스 집합은 관련된 데이터 이벤트 소싱 컨트랙트와 매핑되어 관리된다.
리소스 집합에서 분류는 단위 기능 별로 이에 속하는 복수의 액터들(112)을 그룹핑할 수 있다. 상세하게는, 리소스 집합에서 분류는 단위 기능 별로 속하는 복수의 하드웨어 디바이스 및 소프트웨어 모듈들로 구성된 액터들(112)을 군집화할 수 있다. 또한. 리소스 집합에서 세부 정보는 특정 분류로 그룹핑된 액터들(112) 별로 처리 능력, 사양 등의 메타 데이터일 수 있다.
액터(112)의 선정시에 검색되는 액터(112)는 서비스 소비자(108) 주변 또는 서비스 요청에 따른 데이터의 발생지 주변의 물리적 디바이스 또는 소프트웨어 모듈일 수 있다. 또한, 데이터 플로우 생성부(116)는 액터(112)마다의 데이터 이벤트 소싱 컨트랙트의 계정을 통해 액터(112)를 검색하여 선별할 수 있다.
수행 흐름 정보는 도 6에 도시된 dataflow graph와 같은 데이터 플로우 의존성 그래프(dataflow dependency graph)로 표현될 수 있으며, 수행 흐름 정보는 서비스 요청에 부합되도록 선별된 액터들(112)의 단위 기능 조합을 제시한다.
블록체인 서비스 분산 처리 장치(100)는 다양한 활동과 역할을 하는 액터들(112)의 단위기능 수행에 대한 상태 이력(state history)를 관리하는 데이터 이벤트 소싱 컨트랙트(Data-Event Sourcing Contract)와 참여하는 액터들(112)이 수행하는 단위 기능들의 조건부 수행흐름에 대한 조합 로직을 기술한 서비스 로직 컨트랙트(Service Logic Contract)로 구성된 스마트 컨트랙트 모듈을 사용한다. 스마트 컨트랙트 모듈을 사용함으로써, 해당 서비스 식별자인 컨트랙트 어카운턴트들(도 1에서 DS_ServiceLogic Contract Account 1, 2)과 분산 서비스 원장(102)을 통해 내부 트랜잭션 메시지가 상호 통신한다. 이러한 데이터 공급 단계에서 분산된 액터들(112)의 단위 기능 수행으로 인해 발생되는 데이터 상태정보와 이벤트 트랜잭션들을 수신하게 되면, 서비스 로직의 데이터 공급 단계별 수행가능 조건여부가 체크되고. 수행 조건과 일치되면 서비스 상태 변환과 함께 조건부 수행흐름이 자율적으로 진행된다. 이와 같이, 분산 배치되어 독립적으로 동작하는 액터들(112)의 단위 기능 수행으로 인해 데이터 상태 정보 이벤트 트랜잭션들이 발생한다. 해당 서비스 트랜잭션들에 의해서 조건부 수행 흐름에 대한 제어가 트리거링되어 진행되어 조건부 수행 흐름이 최종단계에 도달한다. 이에 의해, 블록체인 서비스 분산 처리 장치(100)는 서비스 소비자(108)에게 최종 결과물로 요구된 가치 데이터를 접근할 수 있는 접근 권한으로서의 토큰(token)을 제공할 수 있다.
데이터 이벤트 소싱 컨트랙트부(104)는 액터(112)마다 단위 기능을 수행한 상태 이력을 저장하는 데이터 이벤트 소싱 컨트랙트를 관리한다. 데이터 이벤트 소싱 컨트랙트는 도 1, 3에서와 같이, 수행 흐름 정보에 속한 해당 액터(112)의 상태 이력 및 단위 기능을 구현하는 액터(112)의 세부 기능을 포함하고, 수행 흐름 정보는 액터(112)마다의 상태 이력 및 세부 기능을 참조하여 생성될 수 있다.
데이터 이벤트 소싱 컨트랙트는 서비스 로직 컨트랙트부(106)의 서비스 로직 컨트랙트에서 수행되는 해당 액터(112)의 서비스 트랜잭션과 관련된 수행 조건의 정상 완료 여부를 기록하는 액터 상태 정보(도 1의 state)와 서비스 트랜잭션과 관련된 해당 액터의 결과값(도 1의 value)을 출력할 수 있다. 데이터 이벤트 소싱 컨트랙트는 오퍼레이션 서비스 트랜잭션 블록(102a)을 생성하기 위한 액터(112) 마다의 액터 상태 정보와 결과값을 제공한다.
서비스 로직 컨트랙트부(106)는 선별된 액터(112)와 수행 흐름 정보에 기반한 수행 흐름을 규정하며 수행 흐름에 속한 액터(112)의 수행 조건을 확인하여 서비스 상태를 제어하는 서비스 로직 컨트랙트를 요청 서비스 별로 동적으로 생성한다. 구체적으로, 서비스 로직 컨트랙트는 데이터 공급 처리를 수행하는 액터(112)의 수행 조건을 확인하여 제어한다.
서비스 로직 컨트랙트는 수행 흐름 정보를 반영하여, 액터(112)의 노드(도 3의 P1~P4) 및 노드 별 액티비티 작업(도 3의 activity task 1~3)과 노드들 간의 전이 과정을 포함하는 수행 조건(T1, T2)과 관련된 상태 전이 컨트랙트(도 6의 106a; state transition contract)를 포함할 수 있다. 서비스 상태의 제어는 상태 전이 컨트랙트(106a)의 수행 조건의 충족 여부를 판단하여 연속하는 액터들(112)의 액티비티 작업을 수행할 수 있다.
수행 흐름 정보는 상기 데이터 공급 처리를 위한 서비스 로직을 규정하고, 수행 조건의 충족은 액터(112)별 단위 기능 수행이 소정 시간 내에 응답이 있음과 아울러서, 노드들 간의 전이 과정이 수행 흐름에 부합하는 것이다. 만약, 액터(112)별 단위 기능 수행의 응답이 없거나, 응답이 소정 시간 경과하거나, 노드들 간의 전이 과정이 수행 흐름에 부합하지 않으면, 수행 조건이 충족되지 않는 오류에 해당된다.
서비스 로직 컨트랙트는 유효 검증부(114)에 의해 수행 흐름에 따른 서비스 트랜잭션의 유효성을 검증하여 유효한 트랜잭션으로 판정되면, 액터(112)의 오퍼레이션 수행 결과값으로, 적어도 수행 후의 결과 데이터 일부에 대한 해시값으로 나타내는 데이터 무결성 정보(data integrity)와 액터(112)의 서비스 트랜잭션에 대한 유효성 검증에 관한 PoA(Proof of Activity) 정보를 분산 서비스 원장(102)의 서비스 블록부(102c)에 기록할 수 있다. 액터(112)의 결과값의 일부는 예를 들어, 서비스 소비자(108)가 비디오 가공을 요청하여 진행하는 동안, 가공 중인 비디오 데이터와 관련된 결과값의 일부를 해시값으로 서비스 블록부(102c)에 기록할 수 있다. 이에 따라, 다른 서비스 소비자(108)가 가공된 비디오 데이터의 접근 시에 해당 가공 비디오 데이터가 진본임을 확인할 수 있으며, 다른 비디오 데이터와 구별할 수 있다.
이에 더하여, 서비스 로직 컨트랙트가 생성하는 경우에, 서비스 로직 컨트랙트와 매핑된 서비스 식별자(도 1에서 DS_ServiceLogic Contract Account 1, 2)가 생성된다. 이는 다른 서비스 소비자에 의한 서비스 요청이 있는 경우에 서비스 식별자를 조회하여 서비스 로직 컨트랙트에 접근할 수 있을 뿐만 아니라, 서비스 로직에 속한 액터들(112)의 노드 및 유효 검증부(114)의 노드를 관리하는 상태 샤드인 서비스 블록부(102c)를 식별할 수 있다.
유효 검증부(114)는 서비스 로직 컨트랙트에서 규정한 수행 흐름의 진행에 따라 발생된 서비스 트랜잭션의 유효성을 검증하며, 검증자(validator)와 오퍼레이션 체커(operation checker)로서의 노드를 선정하여 진행할 수 있다. 검증자 및 오퍼레이션 체커는 랜덤하게 선발되어, 서비스 로직 컨트랙트와 관련된 액터들(112)과 서비스 네트워크를 동적으로 생성함으로써, 서비스 로직 컨트랙트 단위로 상태 샤드 구조를 갖는다.
유효 검증부(114)는 수행 흐름에 속한 적어도 하나 이상의 액터(112)의 수행 오퍼레이션으로 인해 발생된 서비스 트랜잭션 별로 검증 작업을 수행할 수 있다. 구체적으로, 서비스 로직 컨트랙트를 해당 서비스 네트워크에 전개(deploy)하여 실행하여 요청한 서비스가 개시되고, 서비스를 위한 액터(102)의 단위 기능 수행 동안에, 유효 검증부(114)인 검증자 및 오퍼레이션 체커를 통해 서비스 로직 구성 검증을 실시한다. 또한, 유효 검증부(114)는 서비스 로직 컨트랙트의 수행 흐름의 진행 상에 상태 전이 컨트랙트(106a)로부터 발생된 액터(112)의 서비스 트랜잭션들의 검증 작업을 수행하며, 검증된 서비스 트랜잭션은 서비스 블록부(102c)에 기록한다.
상태 전이 컨트랙트(106a)로부터 발생된 서비스 트랜잭션들은 액터(112)의 수행 오퍼레이션 정보, 결과 해시값 및 상태정보 등으로 구성된 오퍼레이션 증거요약 정보일 수 있다.
유효 검증부(114)는 검증 결과에서 수행 흐름에 오류 동작 또는 블록킹 상태(blocking status)가 있다고 판정된 경우에, 서비스 소비자(108) 및 서비스 요청을 수행하는 서비스 공급자(110)에게 검증 결과를 통지한다. 오류 동작은 액터(112)가 수행 흐름을 위반한 경우일 수 있으며, 블록킹 상태는 수행 흐름에서 액터들(112)의 일부에서 소정 시간 경과하여 응답이 없어 서비스 로직이 지연되는 경우 등일 수 있다.
분산 서비스 원장(102)의 서비스 블록부(102c)는 수행 흐름에 참여한 액터(112)의 노드 및 랜덤하게 선발된 유효 검증부(114)의 노드로 구성된 샤드(shard)의 노드와 동일 샤드 내에 참여하는 노드들에 마련되며, 유효성이 검증된 서비스 트랜잭션에 대해 생성된 오퍼레이션 서비스 트랜잭션 블록(102a)을 기록한다. 오퍼레이션 서비스 트랜잭션 블록(102a)은 액터(112)의 오퍼레이션 수행이 진행될 때마다 발생되어 검증된 서비스 트랜잭션에 대해 생성되며, 오퍼레이션 서비스 트랜잭션 블록(102a)은 서비스 트랜잭션 정보들로서, 데이터 이벤트 소싱 컨트랙트로부터 제공된 액터 상태 정보와 결과값을 포함한다. 보다 구체적으로, 오퍼레이션 서비스 트랜잭션 블록(102a)은 액터(112)의 수행 오퍼레이션 정보, 결과 해시값 및 상태정보 등으로 구성된 오퍼레이션 증거요약 정보일 수 있다. 분산 서비스 원장(102)의 퍼블릭 공유 블록부(102d)는 서비스 로직 컨트랙트의 수행 조건이 완료되어 기록된 오퍼레이션 서비스 트랜잭션 블록(102a)의 수집 정보를 해싱한 액터 상태 요약 정보(102b)를 서비스 상태 트랜잭션 형태로 저장한다. 구체적으로, 액터 요약 상태 정보(102b)는 일정 주기 단위로 액터 상태 정보들이 변조되지 않고 압축되어 업데이트되도록 오퍼레이션 서비스 트랜잭션 블록들의 수집정보를 해싱한 형태로 생성된다. 분산 서비스 원장(102)에서, 오퍼레이션 서비스 트랜잭션 블록(102a) 및 액터 상태 요약 정보(102b)는 해시 트리를 갖는 머클트리(Merkle tree)로 구성된다.
이하, 도 1 내지 도 8을 참조하여, 본 발명의 다른 실시예에 따른 블록체인 서비스 분산 처리 방법을 설명하기로 한다.
도 2a 및 도 2b는 본 발명의 다른 실시예에 따른 블록체인 서비스 분산 처리 방법을 설명하기 위한 순서도이다.
먼저, 분산 배치된 데이터 소스 집합 및 액터들의 리소스 집합은 데이터 이벤트 소싱 컨트랙트와 DHT 라우팅 테이블(도 3의 DHT, HashTable)을 통해 위치정보와 함께 데이터 속성 정보 및 리소스 속성 정보로 등록한다(S205).
데이터 소스 집합에 속하는 액터(112)는 요청된 서비스의 최종 가치 데이터를 제공하기 위해, 하드웨어와 소프트웨어 중 적어도 어느 하나일 수 있다.
다음으로, 데이터 소스 집합 및 액터들의 리소스 집합에 대한 노드 식별자(NodeID)와 함께 위치정보가 DHT 라우팅 테이블에서 관리되고, 데이터 및 리소스 속성정보를 기반으로 생성된 리소스 식별자(ResourceID)에 의해 분류되는 데이터 소스 집합 및 액터들의 리소스 집합은 관련된 데이터 이벤트 소싱 컨트랙트과 매핑되어 관리한다(S210).
리소스 집합에서 분류는 단위 기능 별로 이에 속하는 복수의 액터들(112)을 그룹핑할 수 있다. 또한. 리소스 집합에서 세부 정보는 특정 분류로 그룹핑된 액터들(112) 별로 처리 능력, 사양 등의 메타 데이터일 수 있다.
다음으로, 데이터 플로우 생성부(116)는 서비스 소비자의 서비스 요청을 기반으로 데이터 이벤트 소싱 컨트랙트 및 DHT 라우팅 테이블을 조회하여, 서비스 소비자 또는 데이터 발생지의 주변에 등록된 데이터 속성 정보 및 리소스 속성 정보를 조회한다(S215).
여기서, kademlia DHT routing의 k-buckets 노드들처럼 지역적으로 근접하게 위치한 노드들의 정보와 함께, 해당 노드들을 리소스 속성정보 해시값들의 조합으로 구성된 리소스 식별자(resourceID) 그룹별로 구분된 노드의 서브그룹들로 관리함으로써, 해당 범위 지역에 근접하게 위치한 리소스 노드 정보들을 실시간으로 조회할 수 있게 된다.
다음으로, 데이터 플로우 생성부(116)는 주변에 조회된 데이터 속성 정보 및 리소스 속성 정보를 기초로 서비스 요청에 따른 기능 및 협업가능한 액터들을 선별하여 최종 가치 데이터 제공을 위한 데이터 플로우 의존성 그래프를 생성한다(S220).
서비스 공급자(110)가 해당범위 지역에 존재하는 등록되어 있는 다양한 형태와 용량의 데이터와 디바이스들의 속성 정보(예를 들면, raw data resource, storage resource, computing resource, specific processing function resource 등)를 조회하여 속성 정보들을 활용하거나 머신러닝 알고리즘을 통해 속성정보들의 조합정보를 도출함으로써, 서비스 계약에 표현된 요구사항의 키워드들에 따라 조합된 데이터 수집가공 로직을 생산하게 된다.
이에 따라, 서비스 소비자(108)가 원하는 가치 데이터를 제공하고자, 서비스 소비자(108)의 서비스 요청이 표현된 서비스 계약을 기반으로 데이터 수집가공 명세를 표현한 수행 흐름 정보로서의 데이터 플로우 의존성 그래프가 생성된다.
이어서, 서비스 소비자(108)의 수행 흐름 정보의 승인 여부에 따라 서비스 공급자(110)와 요청된 서비스 계약을 체결한다(S220).
서비스 계약은 데이터 소스, 지속 기간과 데이터 컨텐츠를 정의하는 조건, 데이터 프로세싱 정책, 보상 등을 포함할 수 있다.
다음으로, 서비스 로직 컨트랙트부(106)는 서비스 제공자가 데이터 플로우 의존성 그래프를 기초로 액티비티 작업(activity task)과 관련된 기능을 수행할 액터(112)의 데이터 이벤트 소싱 계약의 계정을 검색하고, 상기 계정과 액티비티 작업 리스트가 포함된 수행 흐름을 규정하는 서비스 로직 컨트랙트를 구성한다(S230).
수행 흐름은 도 4와 같이, (a) 시퀀스, (b) 포크(fork), (c) 동기화(synchronization), (d) 선택, (e) 병합(merging) 및 이들의 조합 등으로 구성될 수 있다.
서비스 컨트랙트의 수행 흐름 정보를 기준으로 하여, 도 3에 도시된 바와 같이, 서비스 공급자(110)는 해당 액티비티 작업 기능들을 수행하기 위해 등록된 액터들(112)의 데이터 이벤트 소싱 컨트랙트의 계정을 검색한 후에, 서비스 로직 컨트랙트의 구성 시에 검색된 액터들(112)의 데이터 이벤트 소싱 컨트랙트의 계정과 액티비티 작업 함수 리스트를 설정한다.
다음으로, 서비스 로직 컨트랙트부(106)는 데이터 플로우 의존성 그래프로부터 도출되는 액터의 수행 조건, 데이터 이벤트 소싱 컨트랙트의 계정과 관련된 액터, 액티비티 작업 리스트에 기초하여, 액터의 수행 조건을 확인하여 서비스 상태를 제어하는 상태 전이 컨트랙트(106a)를 도 6과 같이 생성한다(S235).
서비스 로직 컨트랙트는 수행 흐름 정보의 의존 함수 조건(dependent functions condition)에 따른 활동 응답(action response)를 수행할 수 있도록, 도 8에 도시된 포맷의 형태를 가진 상태 전이 컨트랙트(106a)를 추가함으로써, 분산 배치되어 동작하는 액터들(112)에 의해 자율적으로 전체 서비스 상태를 제어할 수 있게 한다. 또한, 도 3에 도시된 바와 같이, 서비스 로직 컨트랙트에 추가된 액터들(112)은 데이터 공급 단계에서 요구되는 중간 데이터 액세스 권한 및 관련된 액터들의 상태 이력에 관한 액세스 권한을 부여받는다. 여기서, 도 8에 도시된 데이터 이벤트 소싱 컨트랙트의 구성을 살펴보면, 해당 액터(112)는 수행할 액티비티 작업의 함수와 관련된 입력정보와 현재 상태정보를 기초로, 활동 후의 변경된 상태정보 및 관련된 수행 증거정보를 기록하는 활동내역에 대한 상태 이력을 관리하는 stateless 형태로 동작한다.
다음으로, 서비스 로직 컨트랙트에 설정된 액터(112)의 독립적인 수행 오퍼레이션 및 복수의 액터들(112)의 수행조건에 의해 발생되는 서비스 트랜잭션의 유효성 검증을 위해 유효 검증부(114)를 랜덤하게 선발한다(S240).
구체적으로, 유효 검증부(114)를 구성하는 검증자 및 오퍼레이션 체커는 랜덤하게 선발하여 서비스 로직 컨트랙트와 관련된 액터들(112)과 서비스 네트워크를 동적으로 생성함으로써, 서비스 로직 컨트랙트 단위로 상태 샤드 구조를 갖는다.
액터(112)의 단위 기능에 대한 수행 기록을 체크하고 단위 기능의 수행으로 인한 서비스 트랜잭션들의 검증작업을 실행하는 유효 검증부(114)를 랜덤하게 선정하기 위해서, 아래의 고려 요소 예와 같이, DHT XOR distance, RTT or TTL과 같은 Distance Metric 및 검증자 규모, 즉, 서비스 트랜잭션 검증 노드 수에 따른 Security-delay Metric 등의 요소들이 고려된다. 분산 서비스 원장(102)의 PoS(proof of stake)에 최근에 참여한 노드들 중에서 우선적으로 오퍼레이션 체커를 선정하고 Distance Metric를 가중 인자(weighting factor)로 적용한 VRF(verifiable random function) 기능을 활용한다. 아울러, 선정된 오퍼레이션 체커를 기준으로 검증자을 선택함에 있어서, 참여한 액터(112) 수에 따른 Security-delay Metric 기반 노드 수만큼 해당 서비스 네트워크가 구성되도록 Distance Metric를 가중 인자(weighting factor)로 적용한 VRF 기능을 수행하여 근접 노드들로 선정한다.
[검증자 선정의 고려 요소예]
Figure pat00001
이와 같이 구성된 서비스 네트워크의 구성 노드들인 오퍼레이션 체커 및 검증자는 서비스 트랜잭션 처리에 대한 보안을 강화하기 위해서 일정주기로 오퍼레이션 체커를 교체하는 랜덤값을 합의과정에서 생성하여 결정한다. 임의의 일정주기마다 오퍼레이션 체커는 최근에 원장에 기록된 오퍼레이션 서비스 트랜잭션 블록(102a)의 해시값을 검증자에 전달하여, 랜덤값을 요청하면, 검증자는 최근 블록 해시값과 secret key의 해시값 및 random seed 값의 조합으로 구성된 랜덤값으로 응답메시지를 보낸다. 이후에, 오퍼레이션 체커가 데이터 플로우 검증자로부터 (f+1)개의 응답메시지를 수신하게 되면, 이들 랜덤값을 모두 XOR 연산을 수행하여 최종 RandomValue(RV)을 계산한 후 검증자와의 합의 후에 랜덤값을 원장에 기록한다. 이 최종 RandomValue(RV)는 마지막으로 VDF (Verifiable Delay Function) 기능에 적용함으로써 랜덤 지연(random delay) 후에 오퍼레이션 체커를 선정할 랜덤값인 delayedRandomValue(dRV)을 결정하게 된다.
다음으로, 완성된 서비스 로직 컨트랙트를 해당 서비스 네트워크에 전개(deploy)하여 실행함으로써, 유효 검증부(114)로서 참여한 검증자와 오퍼레이션 체커를 통해 서비스 로직 구성 검증과 함께 요청된 데이터 공급 서비스를 개시한다(S245).
도 7에서와 같이, 서비스 로직 컨트랙트에 따른 분산 서비스 상태 관리를 살펴보면, 서비스 공급자(110)에 의해 전개된 서비스 로직 컨트랙트가 실행되어 액터들(112)의 분산 조작 기능인 액티비티 작업들이 수행됨에 따라, 포인트 형태의 토큰(token)은 수행이 완료된 단위 액티비티 작업 부분에 표기된다. 이에 의해, 분산 배치된 액터들(112)이 참여한 분산 서비스 상태의 상황을 판단할 수 있다. 도 7에 도시된 서비스 로직 컨트랙트에 따른 분산 서비스 상태 관리는, 분산 배치되어 활동하는 액터들(112)과 서비스 소비자(108)의 EOA(Externally Owned Account)들과 해당 데이터 공급을 위해 구성된 서비스 로직 컨트랙트의 서비스 식별자(도 1에서 DS_ServiceLogic Contract Account 1, 2) 및 상태 전이 컨트랙트의 계정(State Transition Contract Account)들, 및 참여한 액터들(112)의 상태 이력을 관리하는 데이터 이벤트 소싱 컨트랙트의 계정들(Data Event sourcing Contract Accounts) 간에 비동기적으로 발생하는 서비스 트랜잭션 이벤트 및 내부 트랜잭션 메시지들이 해당 서비스 네트워크를 통해 전달됨으로써 데이터 공급의 흐름이 자율적으로 제어된다.
다음으로, 유효 검증부(114)가 서비스 로직 컨트랙트의 수행 흐름의 진행 상에 상태 전이 컨트랙트(106a)로부터 발생된 액터의 서비스 트랜잭션들의 검증 작업을 수행하며, 검증된 서비스 트랜잭션은 분산 서비스 원장(102)의 서비스 블록부(102c)에 기록된다(S250).
상태 전이 컨트랙트(106a)로부터 발생된 서비스 트랜잭션들은 액터(112)의 수행 오퍼레이션 정보, 결과 해시값 및 상태정보 등으로 구성된 오퍼레이션 증거요약 정보일 수 있다. 또한, 오퍼레이션 서비스 트랜잭션 블록(102a)은 액터(112)의 오퍼레이션 수행이 진행될 때마다 발생되어 검증된 서비스 트랜잭션에 대해 생성되며, 오퍼레이션 서비스 트랜잭션 블록(102a)은 상술한 오퍼레이션 증거요약 정보로 구성될 수 있으며, 데이터 이벤트 소싱 컨트랙트로부터 제공된 액터 상태 정보와 결과값을 포함한다.
아울러, 서비스 로직 컨트랙트의 수행 조건이 완료되어 기록된 오퍼레이션 서비스 트랜잭션 블록(102a)의 수집 정보를 해싱한 액터 상태 요약 정보(102b)를 서비스 상태 트랜잭션 형태로 분산 서비스 원장(102)의 퍼블릭 공유 블록부(102d)에 저장한다. 구체적으로, 액터 요약 상태 정보는 일정 주기 단위로 액터 상태 정보들이 변조되지 않고 압축되어 업데이트되도록 오퍼레이션 서비스 트랜잭션 블록들의 수집정보를 해싱한 형태로 생성된다.
또한, 서비스 로직 컨트랙트는 액터(112)의 결과값으로 적어도 수행 후의 결과 데이터 일부에 대한 해시값으로 나타내는 데이터 무결성 정보(data integrity)와 액터의 서비스 트랜잭션에 대한 유효성 검증에 관한 PoA(Proof of Activity) 정보를 서비스 블록부(102c)에 기록할 수 있다.
이어서, 서비스 로직 컨트랙트의 수행 흐름에 오류 동작이 또는 블로킹 상태가 있는지를 상태 전이 컨트랙트 등에 의해 판정하여(S255), 판정 결과 존재한다고 판단되면(S255의 Y), 서비스 공급자(110)와 서비스 소비자(108)에게 서비스 문제 상황을 통지한다(S260).
오류 동작은 액터(112)가 수행 흐름을 위반한 경우일 수 있으며, 블록킹 상태는 수행 흐름에서 액터들(112)의 일부에서 소정 시간 경과하여 응답이 없어 서비스 로직이 지연되는 경우 등일 수 있다.
S255 단계에서의 판정 결과 존재하지 않는다고 판단되면(S255의 N), 수행 흐름에 속한 액터(112)의 독립적인 동작 상태에 따라 서비스 로직 컨트랙트가 수행 흐름을 수행 완료한지 여부를 판정한다(S265).
판정 결과 수행 완료하지 않는 경우에, 서비스 트랜잭션들의 검증 작업이 완료되지 않은 액터(112)에 대하여 S250 단계 및 S255 단계의 과정을 반복한다.
이와는 달리 수행 완료된 경우에, 서비스 로직 컨트랙트부(106)는 서비스 소비자에게 최종 가치 데이터에 접근하기 위한 권한, 예컨대 토큰(token)을 제공한다(S270).
이어서, 기능수행이 완료된 서비스 로직 컨트랙트와 매핑된 서비스 식별자(ServiceID)는 서비스 식별 인덱스 DHT(SeviceID Index DHT)로서의 DHT 라우팅 테이블에 업데이트되어 관리된다(S275).
본 실시예에 따르면, 블록체인 참여 노드들이 모든 데이터 서비스들의 상태들(states)에 대해 업데이트하여 저장하는 것이 아니라, 해당 데이터 서비스의 참여 노드들만이 속한 샤드(shard)로서의 서비스 네트워크와 분산 서비스 원장(102)에 할당된 서비스 트랜잭션만을 처리하여 해당 데이터 서비스 상태만을 유지하므로, 모든 노드가 모든 트랜잭션을 처리한다는 기존의 샤딩 기술의 기술적 한계와 이에 따른 성능 문제를 해결할 수 있다.
도 9는 본 발명의 일 실시예에 따른 블록체인 서비스 분산 처리 장치를 구현하는 서비스 공급자, 서비스 수요자 및 노드의 블록 구성도이다.
본 발명의 일 실시예에 따른 블록체인 트랜잭션 분산 처리 장치를 구성하는 서비스 공급자(110), 서비스 소비자(108), 액터(112)의 노드는 다른 노드와 P2P 방식을 통해 상호 통신한다. 서비스 공급자(110), 서비스 소비자(108), 노드는 컴퓨팅이 가능한 어떠한 장치라도 가능하며, 네트워크와 유무선으로 접속 가능한 개인용 컴퓨터, 노트북, 휴대폰, 태블릿, 스마트폰 등의 장치일 수 있다.
도 9를 참조하면, 서비스 로직 컨트랙트 단위로 동적인 서비스 네트워크와 분산 서비스 원장(120)의 서비스 블록부를 관리하는 상태 샤드 구조를 갖도록, 서비스 로직에 따라 협업하는 액터들(112) 및 유효 검증부(114)로 구성된 상태 샤드가 속하는 네트워크 내의 노드가 서비스 트랜잭션을 분산 처리하며, 이를 위해 프로세서(130), 프로세서(130)를 통해 실행되는 적어도 하나의 명령을 저장하는 메모리(140), 및 적어도 하나의 오퍼레이션 서비스 트랜잭션 블록(102a)을 저장하는 분산 서비스 원장(120)의 분산 서비스 원장부(102c) 및 퍼블릭 공유 원장부(102d)가 내장된 스토리지(150)가 구비될 수 있다.
또한, 다른 노드와의 통신을 수행하기 위한 통신 모듈(160)이 포함될 수 있다. 통신 모듈은(160)은 P2P를 지원하는 다양한 유무선 통신 방식을 이용해 다른 노드와 통신할 수 있다.
본 개시의 예시적인 방법들은 설명의 명확성을 위해서 동작의 시리즈로 표현되어 있지만, 이는 단계가 수행되는 순서를 제한하기 위한 것은 아니며, 필요한 경우에는 각각의 단계가 동시에 또는 상이한 순서로 수행될 수도 있다. 본 개시에 따른 방법을 구현하기 위해서, 예시하는 단계에 추가적으로 다른 단계를 포함하거나, 일부의 단계를 제외하고 나머지 단계를 포함하거나, 또는 일부의 단계를 제외하고 추가적인 다른 단계를 포함할 수도 있다.
본 개시의 다양한 실시 예는 모든 가능한 조합을 나열한 것이 아니고 본 개시의 대표적인 양상을 설명하기 위한 것이며, 다양한 실시 예에서 설명하는 사항들은 독립적으로 적용되거나 또는 둘 이상의 조합으로 적용될 수도 있다.
또한, 본 개시의 다양한 실시 예는 하드웨어, 펌웨어(firmware), 소프트웨어, 또는 그들의 결합 등에 의해 구현될 수 있다. 하드웨어에 의한 구현의 경우, 하나 또는 그 이상의 ASICs(Application Specific Integrated Circuits), DSPs(Digital Signal Processors), DSPDs(Digital Signal Processing Devices), PLDs(Programmable Logic Devices), FPGAs(Field Programmable Gate Arrays), 범용 프로세서(general processor), 컨트롤러, 마이크로 컨트롤러, 마이크로 프로세서 등에 의해 구현될 수 있다.
본 개시의 범위는 다양한 실시 예의 방법에 따른 동작이 장치 또는 컴퓨터 상에서 실행되도록 하는 소프트웨어 또는 머신-실행가능한 명령들(예를 들어, 운영체제, 애플리케이션, 펌웨어(firmware), 프로그램 등), 및 이러한 소프트웨어 또는 명령 등이 저장되어 장치 또는 컴퓨터 상에서 실행 가능한 비-일시적 컴퓨터-판독가능 매체(non-transitory computer-readable medium)를 포함한다.
100: 블록체인 서비스 분산 처리 장치
102: 분산 서비스 원장
102a: 오퍼레이션 서비스 트랜잭션 블록
102b: 액터 상태 요약 정보
102c: 서비스 블록부 102d: 퍼블릭 공유 블록부
104: 데이터 이벤트 소싱 컨트랙트부
106: 서비스 로직 컨트랙트부 106a: 상태 전이 컨트랙트
108: 서비스 소비자 110: 서비스 공급자
112: 액터 114: 유효 검증부
116: 데이터 플로우 생성부

Claims (20)

  1. 블록체인을 이용한 서비스 분산 처리 방법에 있어서,
    서비스 소비자의 서비스 요청에 따라, 상기 서비스의 단위 기능을 수행하는 액터(actor)를 적어도 하나 선별함과 아울러서, 상기 단위 기능의 서비스 로직을 규정하는 수행 흐름 정보를 생성하는 단계;
    상기 선별된 액터와 상기 수행 흐름 정보에 기반한 수행 흐름을 규정하며 상기 수행 흐름에 속한 상기 액터의 수행 조건을 확인하여 서비스 상태를 제어하는 서비스 로직 컨트랙트(service logic contract)를 상기 서비스 별로 생성하는 단계;
    상기 서비스 로직 컨트랙트 단위로 동적인 서비스 네트워크와 분산 서비스 원장의 서비스 블록부를 관리하는 상태 샤드 구조를 갖도록, 상기 서비스 로직 컨트랙트에서 규정한 수행 흐름의 진행에 따른 서비스 트랜잭션의 유효성을 검증하며, 검증된 서비스 트랜잭션에 대해 오퍼레이션 서비스 트랜잭션 블록을 생성하여 분산 서비스 원장의 서비스 블록부에 기록하는 단계; 및
    상기 서비스 로직 컨트랙트의 수행 조건이 완료되어 기록된 상기 오퍼레이션 서비스 트랜잭션 블록의 수집 정보를 해싱한(hashing) 액터 상태 요약 정보를 서비스 상태 트랜잭션 형태로 분산 서비스 원장의 퍼블릭(public) 공유 블록부에 저장하는 단계를 포함하는 블록체인 서비스 분산 처리 방법.
  2. 제 1 항에 있어서,
    상기 액터의 선정시에 검색되는 상기 액터는 상기 서비스 소비자 주변 또는 상기 서비스 요청에 따른 데이터의 발생지 주변의 디바이스 혹은 소프트웨어 모듈인 블록체인 분산 서비스 처리 방법.
  3. 제 1 항에 있어서,
    상기 액터를 적어도 하나 선별하는 것은 액터의 위치 정보와 결합된 노드 식별자(nodeID)를 갖는 데이터 속성 정보 및 단위 기능 별로 분류된 액터와 각 액터의 세부 정보를 관리하는 리소스 집합과 관련된 리소스 식별자(resourceID)를 갖는 리소스 속성 정보를 참조하여 주변의 액터를 선별하는 블록체인 서비스 분산 처리 방법.
  4. 제 1 항에 있어서,
    상기 액터마다 상기 단위 기능을 수행한 상태 이력(state history)을 저장하는 데이터 이벤트 소싱 컨트랙트(Date event sourcing contract)에 의해 관리되며, 상기 데이터 이벤트 소싱 컨트랙트는 상기 수행 흐름 정보에 속한 해당 액터의 상태 이력 및 상기 단위 기능을 구현하는 상기 액터의 세부 기능을 포함하고, 상기 수행 흐름 정보는 상기 액터마다의 상기 상태 이력 및 상기 세부 기능을 참조하여 생성되는 블록체인 서비스 분산 처리 방법.
  5. 제 4 항에 있어서,
    상기 데이터 이벤트 소싱 컨트랙트는 상기 서비스 로직 컨트랙트에서 수행되는 해당 액터의 서비스 트랜잭션과 관련된 상기 수행 조건의 정상 완료 여부를 기록하는 액터 상태 정보와 상기 서비스 트랜잭션과 관련된 해당 액터의 결과값을 출력하며, 상기 오퍼레이션 서비스 트랜잭션 블록은 상기 액터 상태 정보와 상기 결과값을 포함하는 블록체인 서비스 분산 처리 방법.
  6. 제 1 항에 있어서,
    상기 서비스 로직 컨트랙트는 상기 수행 흐름 정보를 반영하여, 상기 액터의 노드 및 상기 노드 별 액티비티 작업(activity task)과 상기 노드들 간의 전이 과정을 포함하는 수행 조건과 관련된 상태 전이 컨트랙트(state transition contract)를 포함하고, 상기 서비스 상태의 제어는 상기 상태 전이 컨트랙트의 상기 수행 조건의 충족 여부를 판단하여 연속하는 액터들의 액티비티 작업을 수행하는 블록체인 서비스 분산 처리 방법.
  7. 제 6 항에 있어서,
    상기 수행 조건의 충족은 상기 액터별 단위 기능 수행의 소정 시간 내에 응답이 있으며, 상기 액터의 노드들 간의 전이 과정이 상기 수행 흐름에 부합하는 것인 블록체인 분산 처리 방법.
  8. 제 1 항에 있어서,
    상기 서비스 로직 컨트랙트는 상기 액터의 결과값으로 적어도 수행 후의 결과 데이터 일부에 대한 해시값으로 나타내는 데이터 무결성 정보(data integrity)와 상기 액터의 서비스 트랜잭션에 대한 유효성 검증에 관한 PoA(Proof of Activity) 정보를 상기 서비스 블록부에 기록하는 블록체인 서비스 분산 처리 방법.
  9. 제 1 항에 있어서,
    상기 서비스 요청은 데이터의 공급 처리이며, 상기 수행 흐름 정보는 상기 데이터 공급 처리를 위한 서비스 로직을 규정하고, 상기 서비스 로직 컨트랙트는 상기 데이터 공급 처리를 수행하는 상기 액터의 수행 조건을 확인하여 제어하는 블록체인 서비스 분산 처리 방법.
  10. 제 1 항에 있어서,
    상기 서비스 트랜잭션의 유효성을 검증하는 것은 상기 수행 흐름에 속한 적어도 하나 이상의 액터의 수행 오퍼레이션으로 인해 발생된 서비스 트랜잭션 별로 수행되는 블록체인 서비스 분산 처리 방법.
  11. 제 1 항에 있어서,
    상기 서비스 트랜잭션의 유효성을 검증하며, 검증된 서비스 트랜잭션에 대해 오퍼레이션 서비스 트랜잭션 블록을 생성하여 서비스 블록부에 기록하는 단계는,
    상기 서비스 로직 컨트랙트에서 설정된 상기 액터마다의 수행 조건을 진행하는 과정에서 서비스 트랜잭션의 유효성 검증을 위해, 유효 검증부를 구성하는 검증자(validator)와 오퍼레이션 체커(operation checker)로서의 노드를 랜덤 선발하여 서비스 네트워크를 동적으로 구성하는 단계;
    상기 서비스 로직 컨트랙트를 해당 서비스 네트워크에 전개(deploy)하여 실행함으로써, 참여한 유효 검증부를 통해 서비스 로직 구성 검증과 함께 상기 요청한 서비스를 개시하는 단계;
    상기 유효 검증부가 상기 서비스 로직 컨트랙트의 수행 흐름의 진행 상에 상태 전이 컨트랙트로부터 발생된 상기 액터의 서비스 트랜잭션들의 검증 작업을 수행하며, 검증된 서비스 트랜잭션은 상기 서비스 블록부에 기록하는 단계를 포함하는 블록체인 서비스 분산 처리 방법.
  12. 제 11 항에 있어서,
    상기 유효 검증부에 의한 검증 결과에서 상기 액터가 상기 수행 흐름을 위반한 오류 동작 또는 상기 수행 흐름에서 상기 액터의 응답이 없는 블록킹 상태(blocking status)가 있다고 판정된 경우에, 상기 서비스 소비자 및 상기 서비스 요청을 제공하는 서비스 공급자에게 상기 검증 결과를 통지하는 블록체인 분산 처리 방법.
  13. 제 12 항에 있어서,
    상기 검증 결과에서 없다고 판정된 경우에, 상기 수행 흐름에 속한 상기 액터의 독립적인 동작 상태에 따라 상기 서비스 로직 컨트랙트가 상기 수행 흐름을 수행 완료한지 여부를 판정하는 단계를 더 포함하고,
    판정 결과 수행 완료가 달성되지 않은 경우에, 상기 서비스 트랜잭션들의 검증 작업이 완료되지 않은 상기 액터에 대하여,
    상기 유효 검증부가 상기 서비스 로직 컨트랙트의 수행 흐름의 진행 상에 상태 전이 컨트랙트로부터 발생된 상기 액터의 서비스 트랜잭션들의 검증 작업을 수행하며, 검증된 서비스 트랜잭션은 상기 서비스 블록부에 기록하는 단계와,
    상기 유효 검증부에 의한 검증 결과에서 상기 오류 동작 또는 상기 블록킹 상태가 있는지 여부를 판정하는 단계를 반복하는 블록체인 분산 처리 방법.
  14. 제 1 항에 있어서,
    상기 서비스 로직 컨트랙트를 생성하는 단계는 상기 서비스 로직 컨트랙트와 매핑된 서비스 식별자를 생성하여 다른 서비스 소비자에 의한 서비스 요청이 있는 경우에 상기 서비스 식별자를 조회하여 상기 서비스 로직 컨트랙트에 접근하는 블록체인 서비스 분산 처리 방법.
  15. 블록체인을 이용한 서비스 분산 처리 장치에 있어서,
    서비스 소비자의 서비스 요청에 따라, 상기 서비스의 단위 기능을 수행하는 액터(actor)를 적어도 하나 선별함과 아울러서, 상기 단위 기능의 서비스 로직을 규정하는 수행 흐름 정보를 생성하는 데이터 플로우 생성부;
    상기 선별된 액터와 상기 수행 흐름 정보에 기반한 수행 흐름을 규정하며 상기 수행 흐름에 속한 상기 액터의 수행 조건을 확인하여 서비스 상태를 제어하는 서비스 로직 컨트랙트(service logic contract)를 상기 서비스 별로 동적으로 생성하는 서비스 로직 컨트랙트부(service logic contract portion);
    상기 서비스 로직 컨트랙트에서 규정한 수행 흐름의 진행에 따른 서비스 트랜잭션의 유효성을 검증하는 유효 검증부;
    상기 서비스 로직 컨트랙트 단위로 동적인 서비스 네트워크와 분산 서비스 원장의 서비스 블록부를 관리하는 상태 샤드 구조를 갖도록, 상기 분산 서비스 원장에 위치되며, 검증된 서비스 트랜잭션에 대해 오퍼레이션 서비스 트랜잭션 블록이 생성되어 저장되는 서비스 블록부; 및
    상기 분산 서비스 원장에 위치되며, 상기 서비스 로직 컨트랙트의 수행 조건이 완료되어 기록된 상기 오퍼레이션 서비스 트랜잭션 블록의 수집 정보를 해싱한 액터 상태 요약 정보를 서비스 상태 트랜잭션 형태로 저장되는 퍼블릭 공유 블록부를 포함하는 블록체인 서비스 분산 처리 장치.
  16. 제 15 항에 있어서,
    상기 액터의 선정 시에 검색되는 상기 액터는 상기 서비스 소비자 주변 또는 상기 서비스 요청에 따른 데이터의 발생지 주변의 디바이스 혹은 소프트웨어 모듈 인 블록체인 분산 서비스 처리 장치.
  17. 제 15 항에 있어서,
    상기 데이터 플로우 생성부는 액터의 위치 정보와 결합된 노드 식별자(nodeID)를 갖는 데이터 속성 리스트 및 단위 기능 별로 분류된 액터와 각 액터의 세부 정보를 관리하는 리소스 집합과 관련된 리소스 식별자(resourceID)를 갖는 리소스 속성 리스트를 참조하여 주변의 액터를 선별하는 블록체인 서비스 분산 처리 장치.
  18. 제 15 항에 있어서,
    상기 액터마다 상기 단위 기능을 수행한 상태 이력(state history)을 저장하여 관리하는 데이터 이벤트 소싱 컨트랙트를 갖는 데이터 이벤트 소싱 컨트랙트부(Date event sourcing contract portion)를 더 포함하고, 상기 데이터 이벤트 소싱 컨트랙트는 상기 수행 흐름 정보에 속한 해당 액터의 상태 이력 및 상기 단위 기능을 구현하는 상기 액터의 세부 기능을 포함하고, 상기 수행 흐름 정보는 상기 액터마다의 상기 상태 이력 및 상기 세부 기능을 참조하여 생성되는 블록체인 서비스 분산 처리 장치.
  19. 제 18 항에 있어서,
    상기 데이터 이벤트 소싱 컨트랙트는 상기 서비스 로직 컨트랙트에서 수행되는 해당 액터의 서비스 트랜잭션과 관련된 상기 수행 조건의 정상 완료 여부를 기록하는 액터 상태 정보와 상기 서비스 트랜잭션과 관련된 해당 액터의 결과값을 출력하며, 상기 오퍼레이션 서비스 트랜잭션 블록은 상기 액터 상태 정보와 상기 결과값을 포함하는 블록체인 서비스 분산 처리 장치.
  20. 제 15 항에 있어서,
    상기 서비스 로직 컨트랙트는 상기 수행 흐름 정보를 반영하여, 상기 액터의 노드 및 상기 노드 별 액티비티 작업(activity task)과 상기 노드들 간의 전이 과정을 포함하는 수행 조건과 관련된 상태 전이 컨트랙트(state transition contract)를 포함하고, 상기 서비스 상태의 제어는 상기 상태 전이 컨트랙트의 상기 수행 조건의 충족 여부를 판단하여 연속하는 액터들의 액티비티 작업을 수행하는 블록체인 서비스 분산 처리 장치.
KR1020190162356A 2019-12-09 2019-12-09 블록체인을 이용한 서비스 분산 처리 방법 및 이를 구현하는 장치 KR20210072265A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190162356A KR20210072265A (ko) 2019-12-09 2019-12-09 블록체인을 이용한 서비스 분산 처리 방법 및 이를 구현하는 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190162356A KR20210072265A (ko) 2019-12-09 2019-12-09 블록체인을 이용한 서비스 분산 처리 방법 및 이를 구현하는 장치

Publications (1)

Publication Number Publication Date
KR20210072265A true KR20210072265A (ko) 2021-06-17

Family

ID=76603958

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190162356A KR20210072265A (ko) 2019-12-09 2019-12-09 블록체인을 이용한 서비스 분산 처리 방법 및 이를 구현하는 장치

Country Status (1)

Country Link
KR (1) KR20210072265A (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102456903B1 (ko) * 2022-01-21 2022-10-21 우동호 이더리움과 ipfs를 활용한 전자문서 관리 시스템 및 그 방법
KR20230018876A (ko) 2021-07-30 2023-02-07 서강대학교산학협력단 샤드를 기반으로 한 데이터 분산 저장 방법 및 이를 이용한 블록체인 네트워크 시스템
WO2024039129A1 (ko) * 2022-08-17 2024-02-22 주식회사 블룸테크놀로지 블록체인 네트워크에서 다이나믹 샤딩 시스템 및 방법
WO2024071582A1 (ko) * 2022-09-29 2024-04-04 삼성전자 주식회사 블록체인 기반 데이터 전송 방법 및 장치

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230018876A (ko) 2021-07-30 2023-02-07 서강대학교산학협력단 샤드를 기반으로 한 데이터 분산 저장 방법 및 이를 이용한 블록체인 네트워크 시스템
KR102456903B1 (ko) * 2022-01-21 2022-10-21 우동호 이더리움과 ipfs를 활용한 전자문서 관리 시스템 및 그 방법
WO2024039129A1 (ko) * 2022-08-17 2024-02-22 주식회사 블룸테크놀로지 블록체인 네트워크에서 다이나믹 샤딩 시스템 및 방법
WO2024071582A1 (ko) * 2022-09-29 2024-04-04 삼성전자 주식회사 블록체인 기반 데이터 전송 방법 및 장치

Similar Documents

Publication Publication Date Title
US10853354B2 (en) Method of generating globally verifiable unique identifiers using a scalable interlinked blockchain structure
Khalaf et al. Optimized dynamic storage of data (ODSD) in IoT based on blockchain for wireless sensor networks
KR20210072265A (ko) 블록체인을 이용한 서비스 분산 처리 방법 및 이를 구현하는 장치
JP7362654B2 (ja) 分割されたブロックチェーンネットワークにおけるブロックチェーンのブロックの維持管理
KR101946196B1 (ko) 프라이빗 블록체인 기반 시스템을 관제하는 관제시스템 및 관제방법
Hassanzadeh-Nazarabadi et al. Lightchain: A dht-based blockchain for resource constrained environments
KR102377841B1 (ko) 서비스 존 기반의 계층적 합의 방법 및 장치
Wang et al. A trusted consensus fusion scheme for decentralized collaborated learning in massive IoT domain
WO2020134329A1 (zh) 一种网关业务实现方法、控制装置和网关
Nicolaescu et al. Store edge networked data (SEND): A data and performance driven edge storage framework
JP2020060821A (ja) 組織管理支援システム、組織管理支援方法、および、組織管理支援装置
Pinheiro et al. Monitoring file integrity using blockchain and smart contracts
CN112801301A (zh) 异步计算方法、装置、设备、存储介质及程序产品
CN113919846B (zh) 区块链节点动态分组方法、装置、计算机设备和存储介质
Liang et al. Investigating the adoption of hybrid encrypted cloud data deduplication with game theory
EP3542300B1 (en) Method for operating a peer-to-peer application
US11487736B2 (en) Blockchain transaction processing systems and methods
CN110910110A (zh) 一种数据处理方法、装置及计算机存储介质
WO2023185042A1 (zh) 直连通道的建立方法及装置
KR102221925B1 (ko) 블록체인에 기반한 분산형 컴퓨팅 자원 공유 시스템 상에서, 머신러닝과 병행하여 채굴을 수행하는 방법 및 그러한 채굴을 지원하는 방법
KR20200048722A (ko) 블록체인에 기반한, 분산형 컴퓨팅 자원 공유 시스템 상에서의 워킹 그룹별 동일한 키를 사용하는 보안 통신 제공 방법
KR20200048708A (ko) 블록체인에 기반한, 분산형 컴퓨팅 자원 공유 시스템 상에서의 보안 통신 제공 방법
JP2011059884A (ja) クラウドコンピューティングシステム
KR20210153896A (ko) 블록체인 기반 서비스 안전 실행 보장 방법 및 이를 위한 자율 데이터 공급 시스템
PG et al. Blockchain based verification of vehicle history for pre-owned vehicle industry