KR20210027012A - 피어 노드와 그 정보 처리 방법 및 블록체인 플랫폼 시스템 - Google Patents

피어 노드와 그 정보 처리 방법 및 블록체인 플랫폼 시스템 Download PDF

Info

Publication number
KR20210027012A
KR20210027012A KR1020200002273A KR20200002273A KR20210027012A KR 20210027012 A KR20210027012 A KR 20210027012A KR 1020200002273 A KR1020200002273 A KR 1020200002273A KR 20200002273 A KR20200002273 A KR 20200002273A KR 20210027012 A KR20210027012 A KR 20210027012A
Authority
KR
South Korea
Prior art keywords
node
signature
verification
transaction
peer
Prior art date
Application number
KR1020200002273A
Other languages
English (en)
Other versions
KR102304953B1 (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 KR20210027012A publication Critical patent/KR20210027012A/ko
Application granted granted Critical
Publication of KR102304953B1 publication Critical patent/KR102304953B1/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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0281Proxies
    • 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/0876Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint
    • H04L67/28
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services

Abstract

일 실시예에 따른 블록체인 플랫폼을 구성하는 피어(Peer) 노드의 정보 처리 방법은, 블록체인 플랫폼의 지시(orderer) 노드로부터 제공되는 블록 내의 트랜잭션에 포함된 서명을 검증(verifier) 노드로 전달하여 상기 서명에 대한 검증을 위임하는 단계와, 검증 노드로부터 회신 받은 서명에 대한 검증의 결과에 따라 블록을 포함하도록 블록체인 원장을 갱신하는 단계를 포함한다.

Description

피어 노드와 그 정보 처리 방법 및 블록체인 플랫폼 시스템{PEER NODE AND METHOD FOR PROCESSING INFORMATION THEREOF, AND BLOCKCHAIN PLATFORM SYSTEMS}
본 발명은 블록체인 플랫폼을 구성하는 피어 노드와 그 정보 처리 방법, 그리고 이러한 피어 노드를 포함하는 블록체인 플랫폼 시스템에 관한 것이다.
탈중앙화(Decentralization) 된 전자화폐가 공개된 이래로 전세계 다양한 국가와 기업들이 핵심기술인 블록체인을 다양한 산업영역에 적용해보고자 하는 연구와 노력을 지속하고 있고, "탈중앙화"를 거래 정보뿐만 아닌 데이터를 저장하고 전달하는 모든 방식에 있어 블록체인 기술을 활용하고자 하는 시도가 이어지고 있다.
하지만 현실적으로 블록체인 기술은 실제 응용서비스를 구동시키기 위한 정도로의 성능 달성이 매우 요원한 상황이며, 대표적인 이유로는 기존의 네트워크 서비스에 비해 낮은 데이터 처리 속도를 기록하고 있기 때문이다.
한편, 전자 서명(Digital Signature)은 전자문서나 디지털 데이터가 원래 내용에서 위조 또는 변조되지 않았다는 것(Data origin Authentication)과 서명을 생성한 주체가 누구인지를 증명(Entity Authentication)하기 위한 기술이다. 이러한 전자 서명은 블록체인 플랫폼에도 적용되고 있으며, 이에 따라 서명을 생성하거나 서명을 검증하는 과정이 블록체인의 데이터 처리 속도에 영향을 주게 된다. 예를 들어, 트랜잭션 하나당 4개의 서명을 검증하여야 할 때에 1초에 50만 개 이상의 트랜잭션을 처리하는 목표를 가진 블록체인 플랫폼이라면 초당 200만개 이상의 서명을 검증해야 하기에, 서명에 관련된 처리에 컴퓨팅연산자원이 집중적으로 할당되어 데이터베이스 입출력 등과 같은 다른 데이터 처리에 사용되어야 할 컴퓨팅연산자원까지 소비할 가능성이 높고 이는 전체적인 성능 저하를 초래할 수 있다.
실시예에 따르면, 서명에 관련된 처리를 별도의 노드에 위임하여 컴퓨팅연산처리에 대한 부하(load)를 분산시키는 피어 노드와 그 정보 처리 방법 및 블록체인 플랫폼 시스템을 제공한다.
다만, 본 발명의 해결하고자 하는 과제는 이상에서 언급한 것으로 제한되지 않으며, 언급되지 않은 또 다른 해결하고자 하는 과제는 아래의 기재로부터 본 발명이 속하는 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
제 1 관점에 따른 블록체인 플랫폼을 구성하는 피어(Peer) 노드의 정보 처리 방법은, 상기 블록체인 플랫폼의 지시(orderer) 노드로부터 제공되는 블록 내의 트랜잭션에 포함된 서명을 검증(verifier) 노드로 전달하여 상기 서명에 대한 검증을 위임하는 단계와, 상기 검증 노드로부터 회신 받은 상기 서명에 대한 검증의 결과에 따라 상기 블록을 포함하도록 블록체인 원장을 갱신하는 단계를 포함한다.
제 2 관점에 따라 컴퓨터 프로그램을 저장하고 있는 컴퓨터 판독 가능 기록매체는, 상기 컴퓨터 프로그램은, 프로세서에 의해 실행되면, 상기 정보 처리 방법을 상기 프로세서가 수행하도록 하기 위한 명령어를 포함한다.
제 3 관점에 따라 컴퓨터 판독 가능한 기록매체에 저장되어 있는 컴퓨터 프로그램은, 프로세서에 의해 실행되면, 상기 정보 처리 방법을 프로세서가 수행하도록 하기 위한 명령어를 포함한다.
제 4 관점에 따른 블록체인 플랫폼을 구성하는 피어 노드는, 클라이언트 어플리케이션의 트랜잭션 호출에 따른 트랜잭션 제안(proposal)을 전달받는 보증(endorser) 노드와, 상기 트랜잭션 제안에 따라 생성된 블록을 지시 노드로부터 제공받아 상기 블록 내의 트랜잭션에 포함된 서명을 검증 노드로 전달하여 상기 서명에 대한 검증을 위임하고, 상기 검증 노드로부터 회신 받은 상기 서명에 대한 검증의 결과에 따라 상기 블록을 포함하도록 블록체인 원장을 갱신하는 위임(committer) 노드를 포함한다.
제 5 관점에 따른 블록체인 플랫폼 시스템은, 복수의 피어(Peer) 노드와, 검증 노드와, 지시 노드를 포함하며, 상기 복수의 피어 노드는, 상기 지시 노드로부터 제공되는 블록 내의 트랜잭션에 포함된 서명을 상기 검증 노드로 전달하여 상기 서명에 대한 검증을 위임하고, 상기 검증 노드로부터 회신 받은 상기 서명에 대한 검증의 결과에 따라 상기 블록을 포함하도록 블록체인 원장을 갱신하고, 상기 검증 노드는, 상기 복수의 피어 노드로부터 위임 받은 상기 서명에 대한 검증을 복수의 코어를 통하여 병렬적으로 처리한 후 그 처리 결과를 상기 복수의 피어 노드에 회신한다.
일 실시예에 따르면, 서명에 관련된 처리를 피어 노드에서 수행하지 않고 별도의 검증 노드에서 처리하도록 위임하기 때문에 컴퓨팅연산처리에 대한 부하(load)가 검증 노드로 분산되어 피어 노드에 컴퓨팅연산처리에 대한 부하가 집중되지 않는 효과가 있다.
도 1은 일 실시예에 따른 피어 노드를 포함하는 블록체인 플랫폼 시스템의 구성도이다.
도 2는 일 실시예에 따른 블록체인 플랫폼 시스템의 트랜잭션 처리 과정을 설명하기 위한 흐름도이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다.
본 발명의 실시예들을 설명함에 있어서 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고 후술되는 용어들은 본 발명의 실시예에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
본 명세서에서 단수의 표현은 문맥상 명백하게 다름을 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, '포함하다' 또는 '구성하다' 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성 요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성 요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
또한, 본 발명의 실시 예에서, 어떤 부분이 다른 부분과 연결되어 있다고 할 때, 이는 직접적인 연결뿐 아니라, 다른 매체를 통한 간접적인 연결의 경우도 포함한다. 또한 어떤 부분이 어떤 구성 요소를 포함한다는 의미는, 특별히 반대되는 기재가 없는 한 다른 구성 요소를 제외하는 것이 아니라 다른 구성 요소를 더 포함할 수 있다는 것을 의미한다.
도 1은 일 실시예에 따른 피어 노드를 포함하는 블록체인 플랫폼 시스템의 구성도이다.
도 1에 나타낸 바와 같이 일 실시예에 따른 블록체인 플랫폼 시스템(100)은 프록시(Proxy) 노드(110), 피어(Peer) 노드(120), 검증(Verifier) 노드(130), 공유 메모리(Shared memory)(140), 지시(Orderer) 노드(150) 및 블록 스토리지(Block storage)(160)를 포함할 수 있고, 피어 노드(120)는 보증(Endorser) 노드(121) 및 위임(Committer) 노드(122)를 포함할 수 있으며, 검증 노드(130)는 n개의 코어(131)를 포함할 수 있다.
프록시 노드(110)는 블록체인 코어들, 즉 피어 노드(120), 검증 노드(130) 및 지시 노드(150) 등과 클라이언트 어플리케이션(10)과의 매개역할을 하는 서비스이다. 이러한 프록시 노드(110)는 악의적인 접근에 대한 방어벽 역할을 할 수 있다.
피어 노드(120)의 보증 노드(121)는 클라이언트 어플리케이션(10)에 의하여 생성된 트랜잭션 제안에 대하여 보증 정책을 준수하였는지를 확인할 수 있고, 보증 정책 준수에 대한 확인 작업 중 검증 노드(130)에 서명의 유효성 확인을 위임할 수 있으며, 검증 노드(130)에 의하여 서명의 유효성이 확인되고, 트랜잭션 제안이 보증 정책을 준수하는 것으로 최종 확인되면 해당 트랜잭션을 실행할 수 있다. 그리고, 보증 노드(121)는 해당 트랜잭션의 실행 중에 서명 생성을 검증 노드(130)에 위임할 수 있고, 검증 노드(130)에 의하여 생성된 서명을 제안 응답에 포함시켜 프록시 노드(110)을 통하여 클라이언트 어플리케이션(10)에 전달할 수 있다.
지시 노드(150)는 클라이언트 어플리케이션(10)에서 생성한 트랜잭션 메시지를 수신하고, 트랜잭션 메시지에 포함된 내용에 관계 없이 모든 채널에서 발생하는 트랜잭션을 받아서 시간 순서대로 정렬하여 블록을 생성하고, 생성된 블록을 채널의 모든 피어 노드(120)들의 위임 노드(121)에 전달한다.
피어 노드(120)의 위임 노드(122)는 지시 노드(150)로부터 전달받은 블록 내의 모든 트랜잭션이 각각의 보증 정책을 준수하는지를 확인할 수 있고, 트랜잭션이 보증 정책을 준수하는지 확인하는 과정 중에 블록 내에 포함된 모든 트랜잭션에 포함되어 있는 서명에 대한 검증을 검증 노드(130)에 위임할 수 있으며, 모든 트랜잭션이 보증 정책을 준수하는 것으로 확인된 블록이 포함되도록 블록 스토리지(160)의 블록체인 원장을 갱신할 수 있다.
검증 노드(130)는 보증 노드(121)로부터 서명 유효성 확인을 위임 받아 클라이언트 어플리케이션(10)의 서명에 대한 유효성을 확인할 수 있고, 복수의 코어(131)에 의하여 병렬적으로 처리한 서명 유효성 확인의 결과를 보증 노드(121)에 회신할 수 있다. 그리고, 검증 노드(130)는 보증 노드(121)로부터 보증 노드(121)의 서명 생성 작업을 위임 받아 복수의 코어(131)에 의하여 병렬적으로 처리한 서명 생성 결과를 보증 노드(121)에 회신할 수 있다. 또, 검증 노드(130)는 지시 노드(150)에서 생성된 블록 내의 트랜잭션에 포함된 서명에 대한 검증을 위임 노드(122)로부터 위임 받을 수 있고, 복수의 코어(141)에 의하여 병렬적으로 처리한 서명 검증 결과를 위임 노드(122)에 회신할 수 있다.
공유 메모리(140)는 피어 노드(120)의 보증 노드(121)와 검증 노드(130) 사이에 교신을 할 때 및 피어 노드(120)의 위임 노드(122)와 검증 노드(130)가 교신을 할 때에 공동으로 사용하는 저장공간이다.
이하, 도 1 및 도 2를 참조하여 본 발명의 일 실시예에 따른 블록체인 플랫폼 시스템(100)의 트랜잭션 처리 과정에 대하여 살펴보기로 한다.
먼저, 일반 사용자 혹은 허가된 사용자는 클라이언트 어플리케이션(10)의 SDK(Software Development Kit)를 통해 프록시 노드(110)에 접속한 후 트랜잭션을 호출하여 다양한 트랜잭션 제안(transaction proposal)을 발생시킬 수 있다(S201). 여기서, 사용자의 신원 정보가 서명 형태로 트랜잭션 제안에 삽입될 수 있다. 예를 들어, 일반 사용자는 계정을 생성한 후 해당 계정의 개인키를 통하여 트랜잭션을 생성할 수 있다. 허가된 사용자는 CA(Certification Authority)를 통하여 발부 받은 신원 증명서를 통해 트랜잭션을 생성할 수 있다.
프록시 노드(110)는 클라이언트 어플리케이션()과 블록체인 플랫폼 코어들(예컨대, 지시 노드, 보증 노드 및 위임 노드 등)과의 매개역할을 하는 서비스이며, 클라이언트 어플리케이션()이 자신을 통해서 블록체인 플랫폼 코어들과 간접적으로 접속할 수 있게 하고, 악의적인 접근에 대한 방어벽 역할을 할 수도 있다. 클라이언트 어플리케이션()에 의하여 생성된 트랜잭션은 프록시 노드(110)를 통하여 피어 노드(120) 내의 보증 노드(121)로 전달된다. 이때, 복수의 피어 노드(120) 내에 각각 포함된 보증 노드(121)에 트랜잭션 제안이 전달된다(S203).
보증 노드(121)들에는 트랜잭션의 보증 정책(endorsing policy)이 명시되어 있고, 이러한 보증 노드(121)들은 트랜잭션 제안이 보증 정책을 준수하는지를 확인한 후 해당 트랜잭션을 실행할 수 있다.
보증 노드(121)는 트랜잭션 제안이 보증 정책을 준수하는지를 확인하는 과정 중, 트랜잭션 제안이 형식에 맞게 내용이 제대로 채워져 있는지 확인할 수 있고, 이전에 제출된 적이 있는 트랜잭션인지를 확인할 수 있으며, 트랜잭션을 제안한 클라이언트가 제안 권한이 있는지를 확인할 수 있다.
보증 노드(121)에 명시된 보증 정책에는 서명의 유효성이 포함될 수 있다. 이 경우에, 보증 노드(121)는 검증 노드(130)에 서명의 유효성 확인을 위임할 수 있다. 그러면, 검증 노드(130)에는 복수의 보증 노드(121)로부터 서명의 유효성 확인이 위임될 수 있다(S205). 이러한 복수의 서명 유효성 확인 작업은 검증 노드(130)를 구성하는 복수의 코어(131)에 의하여 병렬적으로 처리되며(S207), 그 처리 결과가 피어 노드(120)의 보증 노드(121)에 회신된다(S209). 여기서, 단계 S205 및 단계 S209의 교신은 피어 노드(120)와 검증 노드(130)가 공동으로 사용하는 공유 메모리(140)를 이용할 수 있다.
피어 노드(120)의 보증 노드(121)는 검증 노드(130)에 의하여 서명의 유효성이 확인되고, 트랜잭션 제안이 보증 정책을 준수하는 것으로 최종 확인(S211)되면 해당 트랜잭션을 실행할 수 있다(S213). 예를 들어, 보증 노드(121)는 특정 계산에 의해 컨트랙트를 호출할 수 있고, 호출된 컨트랙트는 소정의 매개변수에 따라 시뮬레이션이 되며, 시뮬레이션의 결과값(read/write set)을 보증 노드(121)에 반환할 수 있다. 피어 노드(120)는 트랜잭션 실행의 결과값을 프록시 노드(110)를 통하여 제안 응답(proposal response)으로서 클라이언트 어플리케이션(10)에 전달할 수 있다. 이때, 제안 응답에는 보증 노드(121)의 서명이 포함될 수 있으며, 보증 노드(121)는 서명 생성을 검증 노드(130)에 위임할 수 있다. 그러면, 검증 노드(130)에는 복수의 보증 노드(121)로부터 서명 생성이 위임될 수 있다(S215). 이러한 복수의 서명 생성 작업은 검증 노드(130)를 구성하는 복수의 코어(141)에 의하여 병렬적으로 처리되며(S217), 그 처리 결과에 의하여 생성된 서명이 피어 노드(120)의 보증 노드(121)에 회신될 수 있고(S219), 보증 노드(121)는 검증 노드(130)에 의하여 생성된 서명을 제안 응답에 포함시켜 프록시 노드(110)을 통하여 클라이언트 어플리케이션(10)에 전달할 수 있다(S221, S223).
클라이언트 어플리케이션(10)은 보증 노드(121)의 서명을 확인한 뒤 각 피어 노드(120)로부터의 제안 응답을 비교하는 작업을 수행한다. 단순한 쿼리 같이 지시 서비스(ordering service)가 필요 없는 경우에는 쿼리 결과값을 얻고 프로세스가 종료할 수 있다. 원장 갱신과 같은 경우에는 클라이언트 차원에서 보증 정책을 준수하는 제안 응답이 회신되었는지를 검토할 수 있다(S225).
클라이언트 어플리케이션(10)은 제안 응답이 보증 정책을 만족하는 경우에, 제안 응답에 포함된 트랜잭션 결과값을 프록시 노드(110)를 통하여 지시 노드(150)에 전달한다. 예를 들어, 클라이언트 어플리케이션(10)은 트랜잭션 메시지에 트랜잭션 제안과 이에 대응하는 제안 응답을 모두 포함하여 프록시 노드(110)을 통하여 지시 노드(150)로 전송할 수 있다(S227, S229). 예컨대, 트랜잭션 메시지에는 시뮬레이션의 결과값(read/write set), 보증 노드(121)의 서명 및 채널 아이디(ID)가 포함될 수 있다.
지시 노드(150)는 트랜잭션 메시지에 포함된 내용에 관계 없이 모든 채널에서 발생하는 트랜잭션을 받아서 시간 순서대로 정렬하여 블록을 생성하고(S231), 생성된 블록을 채널의 모든 피어 노드(120)들의 위임 노드(122)에 전달한다(S233).
피어 노드(120)들의 각각의 위임 노드(122)는 블록 내의 모든 트랜잭션이 각각의 보증 정책을 준수하는지를 확인한다. 여기서, 보증 정책을 준수하는지 확인하는 과정 중에 블록 내에 포함된 모든 트랜잭션에 포함되어 있는 보증 노드(121)의 서명을 검증하여야 한다. 그런데, 하나의 블록 내에서 다수의 트랜잭션이 포함되어 있고, 각 트랜잭션에는 다수의 서명이 포함되어 있기 때문에 보증 정책을 준수하는지 확인하는 과정 중에 검증하여야 하는 서명의 수가 매우 많다. 예를 들어, 트랜잭션 하나당 4개의 서명을 검증하여야 할 때에 1초에 50만 개 이상의 트랜잭션을 처리하는 목표를 가진 블록체인 플랫폼이라면 초당 200만개 이상의 서명을 검증해야 하기에, 서명에 관련된 처리에 위임 노드(122)의 컴퓨팅연산자원을 집중적으로 할당할 경우에는 데이터베이스 입출력 등과 같은 다른 데이터 처리에 사용되어야 할 컴퓨팅연산자원까지 소비할 가능성이 높고 이는 전체적인 성능 저하를 초래할 수 있다. 이러한 성능 저하를 방지하기 위하여, 위임 노드(122)는 보증 정책을 준수하는지 확인하는 과정 중의 서명 검증을 검증 노드(130)에 위임할 수 있다. 그러면, 검증 노드(130)에는 복수의 위임 노드(122)로부터 서명 검증이 위임될 수 있다(S235). 이러한 복수의 서명 검증 작업은 검증 노드(130)를 구성하는 복수의 코어(141)에 의하여 병렬적으로 처리되며(S237), 그 처리 결과가 피어 노드(120)의 위임 노드(122)에 회신된다(S239). 이때, 위임 노드(122)는 보증 정책을 준수하는지 확인하는 과정에 따른 결과값(예컨대, valid/invalid)을 해당 트랜잭션에 태그를 할 수 있다(S241).
피어 노드(120)들의 각 위임 노드(122)는 보증 정책을 준수하는 것으로 확인된 블록을 블록 스토리지(160)로 전달하여 블록 스토리지(160)의 블록체인 원장에 단계 S231에서 생성된 블록을 추가하여 갱신할 수 있다. 이러한 블록체인 갱신까지의 일련의 과정이 완료되면 피어 노드(120)의 위임 노드(122)는 클라이언트 어플리케이션(10)에게 작업의 결과를 송신할 수 있다.
지금까지 설명한 바와 같이 본 발명의 실시예들에 의하면, 서명에 관련된 처리를 피어 노드(120)에서 수행하지 않고 별도의 검증 노드(130)에서 처리하도록 위임하기 때문에 컴퓨팅연산처리에 대한 부하가 검증 노드(130)로 분산되어 피어 노드(120)에 컴퓨팅연산처리에 대한 부하가 집중되지 않는다.
본 발명에 첨부된 각 흐름도의 각 단계의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수도 있다. 이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 인스트럭션들이 흐름도의 각 단계에서 설명된 기능들을 수행하는 수단을 생성하게 된다. 이들 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 기록매체에 저장되는 것도 가능하므로, 그 컴퓨터 이용가능 또는 컴퓨터 판독 가능 기록매체에 저장된 인스트럭션들은 흐름도의 각 단계에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다. 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 흐름도의 각 단계에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다.
또한, 각 단계는 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 실시예들에서는 단계들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 단계들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 단계들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
100: 블록체인 플랫폼 시스템 110: 프록시 노드
120: 피어 노드 121: 보증 노드
122: 위임 노드 130: 검증 노드
140: 공유 메모리 150: 지시 노드
160: 블록 스토리지

Claims (11)

  1. 블록체인 플랫폼을 구성하는 피어(Peer) 노드의 정보 처리 방법으로서,
    상기 블록체인 플랫폼의 지시(orderer) 노드로부터 제공되는 블록 내의 트랜잭션에 포함된 서명을 검증(verifier) 노드로 전달하여 상기 서명에 대한 검증을 위임하는 단계와,
    상기 검증 노드로부터 회신 받은 상기 서명에 대한 검증의 결과에 따라 상기 블록을 포함하도록 블록체인 원장을 갱신하는 단계를 포함하는
    정보 처리 방법.
  2. 제 1 항에 있어서,
    클라이언트 어플리케이션의 트랜잭션 호출에 따른 트랜잭션 제안(proposal)에 포함된 상기 클라이언트 어플리케이션의 서명을 상기 검증 노드로 전달하여 서명 유효성 확인을 위임하는 단계와,
    상기 검증 노드로부터 상기 서명 유효성 확인의 결과를 회신 받아 상기 클라이언트 어플리케이션의 서명의 유효성이 확인되면 해당 트랜잭션을 실행하는 단계를 더 포함하는
    정보 처리 방법.
  3. 제 2 항에 있어서,
    상기 피어 노드의 서명 생성에 대한 처리를 상기 검증 노드에 위임하는 단계와,
    상기 검증 노드로부터 상기 피어 노드의 상기 서명 생성에 대한 처리의 결과를 회신 받아 상기 해당 트랜잭션의 결과값과 상기 피어 노드의 서명을 포함하는 제안 응답(proposal response)을 상기 트랜잭션 제안에 대한 회신으로서 제공하는 단계를 더 포함하는
    정보 처리 방법.
  4. 제 1 항 내지 제 3 항 중 어느 한 항에 있어서,
    상기 검증 노드와 교신할 때에, 상기 피어 노드와 상기 검증 노드가 공동으로 사용하는 공유 메모리(shared memory)를 이용하는
    정보 처리 방법.
  5. 컴퓨터 프로그램을 저장하고 있는 컴퓨터 판독 가능 기록매체로서,
    상기 컴퓨터 프로그램은, 프로세서에 의해 실행되면,
    제 1 항 내지 제 3 항 중 어느 한의 방법을 상기 프로세서가 수행하도록 하기 위한 명령어를 포함하는
    컴퓨터 판독 가능한 기록매체.
  6. 컴퓨터 판독 가능한 기록매체에 저장되어 있는 컴퓨터 프로그램으로서,
    상기 컴퓨터 프로그램은, 프로세서에 의해 실행되면,
    제 1 항 내지 제 3 항 중 어느 한의 방법을 상기 프로세서가 수행하도록 하기 위한 명령어를 포함하는
    컴퓨터 프로그램.
  7. 블록체인 플랫폼을 구성하는 피어(Peer) 노드로서,
    클라이언트 어플리케이션의 트랜잭션 호출에 따른 트랜잭션 제안(proposal)을 전달받는 보증(endorser) 노드와,
    상기 트랜잭션 제안에 따라 생성된 블록을 지시(orderer) 노드로부터 제공받아 상기 블록 내의 트랜잭션에 포함된 서명을 검증(verifier) 노드로 전달하여 상기 서명에 대한 검증을 위임하고, 상기 검증 노드로부터 회신 받은 상기 서명에 대한 검증의 결과에 따라 상기 블록을 포함하도록 블록체인 원장을 갱신하는 위임(committer) 노드를 포함하는
    피어 노드.
  8. 제 6 항에 있어서,
    상기 보증 노드는, 상기 트랜잭션 제안(proposal)에 포함된 상기 클라이언트 어플리케이션의 서명을 상기 검증 노드로 전달하여 서명 유효성 확인을 위임하고, 상기 검증 노드로부터 상기 서명 유효성 확인의 결과를 회신 받아 상기 클라이언트 어플리케이션의 서명의 유효성이 확인되면 해당 트랜잭션을 실행하는
    피어 노드.
  9. 제 8 항에 있어서,
    상기 보증 노드는, 상기 피어 노드의 서명 생성에 대한 처리를 상기 검증 노드에 위임하고, 상기 검증 노드로부터 상기 피어 노드의 상기 서명 생성에 대한 처리의 결과를 회신 받아 상기 해당 트랜잭션의 결과값과 상기 피어 노드의 서명을 포함하는 제안 응답(proposal response)을 상기 트랜잭션 제안에 대한 회신으로서 제공하는
    피어 노드.
  10. 제 7 항 내지 제 9 항 중 어느 한 항에 있어서,
    상기 보증 노드 또는 상기 위임 노드는 상기 검증 노드와 교신할 때에, 상기 피어 노드와 상기 검증 노드가 공동으로 사용하는 공유 메모리(shared memory)를 이용하는
    피어 노드.
  11. 복수의 피어(Peer) 노드와,
    검증(verifier) 노드와,
    지시(orderer) 노드를 포함하며,
    상기 복수의 피어 노드는, 상기 지시 노드로부터 제공되는 블록 내의 트랜잭션에 포함된 서명을 상기 검증 노드로 전달하여 상기 서명에 대한 검증을 위임하고, 상기 검증 노드로부터 회신 받은 상기 서명에 대한 검증의 결과에 따라 상기 블록을 포함하도록 블록체인 원장을 갱신하고,
    상기 검증 노드는, 상기 복수의 피어 노드로부터 위임 받은 상기 서명에 대한 검증을 복수의 코어를 통하여 병렬적으로 처리한 후 그 처리 결과를 상기 복수의 피어 노드에 회신하는
    블록체인 플랫폼 시스템.
KR1020200002273A 2019-08-30 2020-01-07 피어 노드와 그 정보 처리 방법 및 블록체인 플랫폼 시스템 KR102304953B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020190107694 2019-08-30
KR20190107694 2019-08-30

Publications (2)

Publication Number Publication Date
KR20210027012A true KR20210027012A (ko) 2021-03-10
KR102304953B1 KR102304953B1 (ko) 2021-09-27

Family

ID=75148643

Family Applications (3)

Application Number Title Priority Date Filing Date
KR1020200002273A KR102304953B1 (ko) 2019-08-30 2020-01-07 피어 노드와 그 정보 처리 방법 및 블록체인 플랫폼 시스템
KR1020200002266A KR102304954B1 (ko) 2019-08-30 2020-01-07 피어 노드, 피어 노드에서 수행되는 처리 방법 및 블록체인 플랫폼 시스템
KR1020200037535A KR20210027038A (ko) 2019-08-30 2020-03-27 프록시 장치 및 프록시 장치에서 수행되는 정보 처리 방법

Family Applications After (2)

Application Number Title Priority Date Filing Date
KR1020200002266A KR102304954B1 (ko) 2019-08-30 2020-01-07 피어 노드, 피어 노드에서 수행되는 처리 방법 및 블록체인 플랫폼 시스템
KR1020200037535A KR20210027038A (ko) 2019-08-30 2020-03-27 프록시 장치 및 프록시 장치에서 수행되는 정보 처리 방법

Country Status (1)

Country Link
KR (3) KR102304953B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102507732B1 (ko) * 2021-05-27 2023-03-09 부산대학교 산학협력단 허가형 블록체인에서의 분리형 보증 처리 방법 및 시스템

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180014534A (ko) * 2016-08-01 2018-02-09 서강대학교산학협력단 블록체인 기반 트랜잭션 검증 시스템 및 그 방법
JP2018197832A (ja) * 2017-05-25 2018-12-13 日本電信電話株式会社 ブロックチェーン更新システム、サーバ装置、クライアント装置、ブロックチェーン更新方法、およびプログラム
JP2019083013A (ja) * 2017-10-30 2019-05-30 エヌイーシー ラボラトリーズ ヨーロッパ ゲーエムベーハー ブロックチェーン内でスマートコントラクトをセキュア化する方法およびシステム
US20190188712A1 (en) * 2017-12-18 2019-06-20 NEC Laboratories Europe GmbH Efficient validation of transaction policy compliance in a distributed ledger system
KR20190092483A (ko) * 2017-05-22 2019-08-07 알리바바 그룹 홀딩 리미티드 블록체인 서비스 수락 및 합의 방법과 디바이스

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107450981B (zh) * 2017-05-31 2020-04-24 创新先进技术有限公司 一种区块链共识方法及设备
KR101924026B1 (ko) 2017-11-10 2018-11-30 부산대학교 산학협력단 해시 기반 서명 기법을 적용한 블록체인 시스템 및 방법
MX2019009344A (es) 2018-12-28 2019-10-02 Alibaba Group Holding Ltd Ejecucion paralela de transacciones en una red de cadena de bloques con base en listas blancas de contratos inteligentes.
CA3060790C (en) 2019-04-12 2021-06-08 Alibaba Group Holding Limited Performing parallel execution of transactions in a distributed ledger system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180014534A (ko) * 2016-08-01 2018-02-09 서강대학교산학협력단 블록체인 기반 트랜잭션 검증 시스템 및 그 방법
KR20190092483A (ko) * 2017-05-22 2019-08-07 알리바바 그룹 홀딩 리미티드 블록체인 서비스 수락 및 합의 방법과 디바이스
JP2018197832A (ja) * 2017-05-25 2018-12-13 日本電信電話株式会社 ブロックチェーン更新システム、サーバ装置、クライアント装置、ブロックチェーン更新方法、およびプログラム
JP2019083013A (ja) * 2017-10-30 2019-05-30 エヌイーシー ラボラトリーズ ヨーロッパ ゲーエムベーハー ブロックチェーン内でスマートコントラクトをセキュア化する方法およびシステム
US20190188712A1 (en) * 2017-12-18 2019-06-20 NEC Laboratories Europe GmbH Efficient validation of transaction policy compliance in a distributed ledger system

Also Published As

Publication number Publication date
KR102304953B1 (ko) 2021-09-27
KR20210027011A (ko) 2021-03-10
KR20210027038A (ko) 2021-03-10
KR102304954B1 (ko) 2021-09-27

Similar Documents

Publication Publication Date Title
CN111801910A (zh) 基于证明验证的用于认证链外数据的系统和方法
CN109379369A (zh) 单点登录方法、装置、服务器及存储介质
EP4216077A1 (en) Blockchain network-based method and apparatus for data processing, and computer device
CN103516718A (zh) 身份风险分数生成和实现
CN109388957B (zh) 基于区块链的信息移转方法、装置、介质及电子设备
Shen et al. Blockchain for transparent data management toward 6G
CN110400217B (zh) 智能合约的规则变更处理方法及装置
CN111159753B (zh) 区块链智能合约管理方法及系统、存储介质及终端
JP2022541048A (ja) ブロックチェーンを構成するためのセキュリティ層
CN113256297B (zh) 基于区块链的数据处理方法、装置、设备及可读存储介质
CN112241919A (zh) 具有数据流控制的多域区块链网络
Gaba et al. Impact of block data components on the performance of blockchain-based VANET implemented on hyperledger fabric
CN111770112B (zh) 一种信息共享方法、装置及设备
JP2021511535A (ja) コンピュータにより実施される意思決定システム及び方法
JP2022525551A (ja) データレコードのコピーの分散型台帳システムへの誤伝送の防止
CN114363327A (zh) 区块链网络中的合规机制
CN115705571A (zh) 保护可审计的帐户的隐私
Swarnkar et al. Security, privacy, trust management and performance optimization of blockchain technology
Baniata et al. Prifob: a privacy-aware fog-enhanced blockchain-based system for global accreditation and credential verification
US20240005307A1 (en) Method, apparatus, and computer-readable medium for confederated rights and hierarchical key management
EP4030329A1 (en) A blockchain transaction generation module
KR102304953B1 (ko) 피어 노드와 그 정보 처리 방법 및 블록체인 플랫폼 시스템
CN115705601A (zh) 数据处理方法、装置、计算机设备及存储介质
CN109727040B (zh) 数据发布方法、数据调用方法、设备和存储介质
CN115632774A (zh) 一种基于门限签名的分布式预言机实现方法及系统

Legal Events

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