KR20210027011A - Peer node, method for processing information executed on peer node and blockchain platform system - Google Patents

Peer node, method for processing information executed on peer node and blockchain platform system Download PDF

Info

Publication number
KR20210027011A
KR20210027011A KR1020200002266A KR20200002266A KR20210027011A KR 20210027011 A KR20210027011 A KR 20210027011A KR 1020200002266 A KR1020200002266 A KR 1020200002266A KR 20200002266 A KR20200002266 A KR 20200002266A KR 20210027011 A KR20210027011 A KR 20210027011A
Authority
KR
South Korea
Prior art keywords
contract
node
transaction
servers
blockchain platform
Prior art date
Application number
KR1020200002266A
Other languages
Korean (ko)
Other versions
KR102304954B1 (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 주식회사 미디움
Publication of KR20210027011A publication Critical patent/KR20210027011A/en
Application granted granted Critical
Publication of KR102304954B1 publication Critical patent/KR102304954B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Power Engineering (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Computer And Data Communications (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

According to one embodiment of the present invention, an information processing method comprises the steps of: receiving a predetermined transaction from a client application of a blockchain platform; selecting any one contract server from a plurality of contract servers included in a contract executer node of the blockchain platform based on a contract corresponding to the transaction; and forwarding the transaction to the selected contract server.

Description

피어 노드, 피어 노드에서 수행되는 처리 방법 및 블록체인 플랫폼 시스템{PEER NODE, METHOD FOR PROCESSING INFORMATION EXECUTED ON PEER NODE AND BLOCKCHAIN PLATFORM SYSTEM}PEER NODE, METHOD FOR PROCESSING INFORMATION EXECUTED ON PEER NODE AND BLOCKCHAIN PLATFORM SYSTEM}

본 발명은 피어 노드, 피어 노드에서 수행되는 처리 방법 및 블록체인 플랫폼 시스템에 관한 것이다.The present invention relates to a peer node, a processing method performed in the peer node, and a blockchain platform system.

탈중앙화(Decentralization)된 전자화폐가 공개된 이래로, 전세계 다양한 국가와 기업들은, 핵심기술인 블록체인을 다양한 산업영역에 적용해보고자 하는 연구와 노력을 지속하고 있다. 아울러, 이러한 블록체인 기술을 거래 정보뿐만 아닌 데이터를 저장하고 전달하는 모든 방식에 활용하고자 하는 시도 또한 이어지고 있다.Since the release of decentralized electronic money, various countries and companies around the world have been continuing research and efforts to apply blockchain, a core technology, to various industrial fields. In addition, there are also attempts to utilize this blockchain technology in all methods of storing and transmitting data as well as transaction information.

하지만 현재의 블록체인 기술의 수준으로는, 실제 응용서비스를 구동시키기는 것이 용이하지 않다. 이에 기술 수준을 향상시키기 위한 방안으로서, 전술한 탈중앙화에 대한 수정 내지 타협이 연구되고 있다. 이러한 수정 내지 타협에 따라, 합의에 요구되는 리소스의 양이 줄어드는 성과가 보고되고 있다.However, at the level of the current blockchain technology, it is not easy to run actual application services. Accordingly, as a way to improve the technical level, modifications or compromises to the above-described decentralization are being studied. As a result of these modifications or compromises, the amount of resources required for consensus has been reported to be reduced.

다만, 이러한 성과가, 스마트 컨트랙트(smart contract)의 실행에 대한 성능 병목까지 해결해주는 것은 아니다.However, these achievements do not even solve the performance bottleneck for the execution of smart contracts.

한국특허공보, 제10-1924026호 (2018.11.26. 등록)Korean Patent Publication, No. 10-1924026 (registered on November 26, 2018)

본 발명의 해결하고자 하는 과제는, 복수 개의 계약 서버(smart contract server) 중 어느 하나의 계약 서버에서 컨트랙트(contract)가 실행될 수 있도록 하는 기술을 제공하는 것을 포함한다.The problem to be solved of the present invention includes providing a technology that allows a contract to be executed in any one of a plurality of contract servers (smart contract server).

다만, 본 발명의 해결하고자 하는 과제는 이상에서 언급한 것으로 제한되지 않으며, 언급되지 않은 또 다른 해결하고자 하는 과제는 아래의 기재로부터 본 발명이 속하는 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.However, the problem to be solved of the present invention is not limited to those mentioned above, and another problem to be solved that is not mentioned can be clearly understood by those of ordinary skill in the art to which the present invention belongs from the following description. will be.

일 실시예에 따른 블록체인 플랫폼을 구성하는 피어 노드(peer node)에서 실행되는 정보 처리 방법은, 상기 블록체인 플랫폼의 클라이언트 어플리케이션으로부터 소정의 트랜잭션을 전달받는 단계와, 상기 트랜잭션에 대응되는 컨트랙트에 기초해서, 상기 블록체인 플랫폼의 계약 실행(contract executer) 노드에 포함된 복수 개의 계약 서버 중 어느 하나의 계약 서버를 선택하는 단계와, 상기 선택된 계약 서버에게 상기 트랜잭션을 전달하는 단계를 포함하여 수행된다.An information processing method executed in a peer node constituting a blockchain platform according to an embodiment includes receiving a predetermined transaction from a client application of the blockchain platform, and based on a contract corresponding to the transaction. Thus, it includes selecting one of a plurality of contract servers included in the contract executer node of the blockchain platform, and transmitting the transaction to the selected contract server.

또한, 상기 선택하는 단계는 상기 트랜잭션에 대응되는 컨트랙트에 기초해서 해시값을 추출한 뒤, 상기 추출된 해시값에 기초해서 상기 복수 개의 계약 서버 중 어느 하나의 계약 서버를 선택할 수 있다.Further, in the selecting step, after extracting a hash value based on a contract corresponding to the transaction, one of the plurality of contract servers may be selected based on the extracted hash value.

또한, 상기 복수 개의 계약 서버 각각에는 해시값의 범위가 서로 상이하게 할당되어 있고, 상기 선택하는 단계는 상기 복수 개의 계약 서버 중에서, 상기 할당되어 있는 해시값의 범위가 상기 추출된 해시값을 포함하는 계약 서버를 선택할 수 있다.In addition, a range of hash values is differently allocated to each of the plurality of contract servers, and the selecting step includes, among the plurality of contract servers, the range of the allocated hash value including the extracted hash value. You can choose the contract server.

또한, 상기 복수 개의 계약 서버 각각에는 복수 개의 구성 서버가 포함되되, 상기 복수 개의 구성 서버 각각에는 소정의 계약을 실행하는 실행부 및 상기 실행부와 관련된 상태 데이터베이스(state database)가 각각 복수 개씩 마련되어 있을 수 있다.In addition, each of the plurality of contract servers includes a plurality of configuration servers, and each of the plurality of configuration servers includes an execution unit executing a predetermined contract and a plurality of state databases related to the execution unit. I can.

일 실시예에 따른 피어 노드는, 블록체인 플랫폼의 클라이언트 어플리케이션으로부터 소정의 트랜잭션을 전달받으면, 상기 트랜잭션에 대응되는 컨트랙트에 기초해서, 상기 블록체인 플랫폼의 계약 실행(contract executer) 노드에 포함된 복수 개의 계약 서버 중 어느 하나의 계약 서버를 선택하는 선택부와, 상기 선택된 계약 서버에게 상기 트랜잭션을 상기 통신부를 통해 전달하는 보증 노드를 포함한다.A peer node according to an embodiment, upon receiving a predetermined transaction from a client application of the blockchain platform, based on a contract corresponding to the transaction, includes a plurality of contract executer nodes of the blockchain platform. And a selection unit for selecting any one of the contract servers, and a guarantee node for transmitting the transaction to the selected contract server through the communication unit.

일 실시예에 따른 블록체인 플랫폼 시스템은, 복수 개의 계약 서버를 포함하는 계약 실행(contract executer) 노드와, 피어 노드를 포함하되, 상기 피어 노드는, 블록체인 플랫폼의 클라이언트 어플리케이션으로부터 소정의 트랜잭션을 전달받으면, 상기 트랜잭션에 대응되는 컨트랙트에 기초해서, 상기 복수 개의 계약 서버 중 어느 하나의 계약 서버를 선택하는 선택부와, 상기 선택된 계약 서버에게 상기 트랜잭션을 상기 통신부를 통해 전달하는 보증 노드를 포함한다.The blockchain platform system according to an embodiment includes a contract executer node including a plurality of contract servers and a peer node, wherein the peer node transmits a predetermined transaction from a client application of the blockchain platform. Upon receipt, a selection unit for selecting one of the plurality of contract servers, based on a contract corresponding to the transaction, and a guarantee node for transmitting the transaction to the selected contract server through the communication unit.

일 실시예들에 의하면, 컨트랙트가 복수 개의 계약 서버에 분산되어서 실행될 수 있다. 따라서 동시에 실행될 수 있는 컨트랙트의 숫자가 증가될 수 있다. 아울러, 실행이 예상되는 컨트랙트의 숫자가 많을 경우, Arm server와 같은 계약 서버를 확장함으로써 이러한 컨트랙트의 처리가 원활하게 진행될 수 있다.According to one embodiment, the contract may be distributed and executed on a plurality of contract servers. Thus, the number of contracts that can be executed at the same time can be increased. In addition, when the number of contracts expected to be executed is large, the processing of such contracts can be smoothly performed by expanding the contract server such as Arm server.

도 1은 일 실시예에 따른 피어 노드를 포함하는 블록체인 플랫폼 시스템에 대한 예시적인 구성도이다.
도 2는 도 1에 도시된 복수 개의 계약 서버 중 어느 하나의 계약 서버에 대한 예시적인 구성도이다.
도 3은 도 2에 도시된 복수 개의 구성 서버 중 어느 하나의 구성 서버에 대한 예시적인 구성도이다.
도 4는 일 실시예에 따른 블록체인 플랫폼 시스템에서, 컨트랙트가 처리되는 과정을 설명하기 위한 예시적인 흐름도이다.
도 5는 복수 개의 계약 서버(smart contract server) 중에서 컨트랙트가 실행 내지 시뮬레이션될 계약 서버가 선택되는 과정에 대해 예시적으로 나타내는 흐름도이다.
1 is an exemplary configuration diagram of a blockchain platform system including a peer node according to an embodiment.
FIG. 2 is an exemplary configuration diagram of any one contract server among a plurality of contract servers shown in FIG. 1.
FIG. 3 is an exemplary configuration diagram of any one configuration server among a plurality of configuration servers shown in FIG. 2.
4 is an exemplary flowchart illustrating a process of processing a contract in a blockchain platform system according to an embodiment.
5 is a flowchart illustrating a process of selecting a contract server for executing or simulating a contract from among a plurality of smart contract servers.

본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다.Advantages and features of the present invention, and a method of achieving them will become apparent with reference to the embodiments described below in detail together with the accompanying drawings. However, the present invention is not limited to the embodiments disclosed below, but may be implemented in a variety of different forms, and only these embodiments make the disclosure of the present invention complete, and are common knowledge in the technical field to which the present invention pertains. It is provided to completely inform the scope of the invention to those who have, and the invention is only defined by the scope of the claims.

본 발명의 실시예들을 설명함에 있어서 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고 후술되는 용어들은 본 발명의 실시예에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.In describing the embodiments of the present invention, if it is determined that a detailed description of a known function or configuration may unnecessarily obscure the subject matter of the present invention, a detailed description thereof will be omitted. In addition, terms to be described later are terms defined in consideration of functions in an embodiment of the present invention, which may vary according to the intention or custom of users or operators. Therefore, the definition should be made based on the contents throughout the present specification.

본 명세서에서 단수의 표현은 문맥상 명백하게 다름을 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, '포함하다' 또는 '구성하다' 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성 요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성 요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.In the present specification, expressions in the singular include plural expressions unless the context clearly indicates otherwise. In the present application, terms such as'comprise' or'comprise' are intended to designate the existence of features, numbers, steps, actions, components, parts, or a combination thereof described in the specification, but one or more other It is to be understood that it does not preclude the presence or addition of features, numbers, steps, actions, components, parts, or combinations thereof.

또한, 본 발명의 실시 예에서, 어떤 부분이 다른 부분과 연결되어 있다고 할 때, 이는 직접적인 연결뿐 아니라, 다른 매체를 통한 간접적인 연결의 경우도 포함한다. 또한 어떤 부분이 어떤 구성 요소를 포함한다는 의미는, 특별히 반대되는 기재가 없는 한 다른 구성 요소를 제외하는 것이 아니라 다른 구성 요소를 더 포함할 수 있다는 것을 의미한다.Further, in an embodiment of the present invention, when a part is connected to another part, this includes not only a direct connection but also an indirect connection through another medium. In addition, the meaning that a part includes a certain component means that other components may be further included rather than excluding other components unless specifically stated to the contrary.

도 1은 일 실시예에 따른 피어 노드(120)를 포함하는 블록체인 플랫폼 시스템(100)에 대한 예시적인 구성도이다.1 is an exemplary configuration diagram of a blockchain platform system 100 including a peer node 120 according to an embodiment.

도 1에 나타낸 바와 같이 일 실시예에 따른 블록체인 플랫폼 시스템(100)은 프록시(Proxy) 노드(110), 피어(Peer) 노드(120), 검증(Verifier) 노드(130), 공유 메모리(Shared memory)(140), 지시(Orderer) 노드(150), 블록 스토리지(Block storage)(160) 및 계약 실행(Contract executer) 노드(170)를 포함할 수 있고, 피어 노드(120)는 보증(Endorser) 노드(121)와 위임(Committer) 노드(122) 및 선택부(123)를 포함할 수 있다. 이 때, 검증 노드(130)는 Q(단, Q는 자연수)개의 코어(131)를 포함할 수 있고, 계약 실행 노드(170)는 N(단, N은 자연수)개의 계약 서버(171)를 포함할 수 있다.As shown in FIG. 1, the blockchain platform system 100 according to an embodiment includes a proxy node 110, a peer node 120, a verification node 130, and a shared memory. memory) 140, instruction (Orderer) node 150, block storage (Block storage) 160, and may include a contract execution (Contract executer) node 170, the peer node 120 is endorser (Endorser) ) It may include a node 121, a delegate node 122, and a selection unit 123. At this time, the verification node 130 may include Q (however, Q is a natural number) number of cores 131, and the contract execution node 170 has N (however, N is a natural number) number of contract servers 171 Can include.

먼저, 프록시 노드(110)는 블록체인 코어들, 즉 피어 노드(120), 검증 노드(130) 및 지시 노드(150) 등과 클라이언트 어플리케이션(10)과의 매개역할을 하는 서비스이다. 이러한 프록시 노드(110)는 악의적인 접근에 대한 방어벽 역할을 할 수 있다.First, the proxy node 110 is a service that acts as an intermediary between the blockchain cores, that is, the peer node 120, the verification node 130, and the indication node 150, and the client application 10. Such a proxy node 110 may serve as a barrier against malicious access.

피어 노드(120)는 보증 노드(121), 위임 노드(22) 및 선택부(123)를 포함한다.The peer node 120 includes an assurance node 121, a delegation node 22, and a selection unit 123.

이 중 보증 노드(121)는 클라이언트 어플리케이션(10)에 의하여 생성된 트랜잭션 제안에 대하여 보증 정책을 준수하였는지를 확인할 수 있다. Among these, the guarantee node 121 may check whether the guarantee policy has been observed with respect to the transaction proposal generated by the client application 10.

또한, 보증 노드(121)는 보증 정책 준수에 대한 확인 작업 중에, 검증 노드(130)에게 사용자 서명의 유효성 확인을 위임할 수 있다. In addition, the assurance node 121 may delegate the validation of the user signature to the verification node 130 during the verification of compliance with the assurance policy.

만약, 검증 노드(130)에 의해 사용자 서명의 유효성이 확인되고, 트랜잭션 제안이 보증 정책을 준수하는 것으로 확인되면, 보증 노드(121)는 해당 트랜잭션을 실행할 수 있다. 여기서, 이러한 트랜잭션의 실행은 컨트랙트(contract)의 실행으로 이어지는데, 이에 대해서는 후술하기로 한다.If the validity of the user signature is confirmed by the verification node 130 and the transaction proposal is confirmed to comply with the assurance policy, the assurance node 121 may execute the corresponding transaction. Here, execution of such a transaction leads to execution of a contract, which will be described later.

한편, 보증 노드(121)는 해당 트랜잭션의 실행 중에 보증 노드(121)에 대한 서명 생성을 검증 노드(130)에게 위임할 수 있고, 검증 노드(130)에 의하여 생성된 보증 노드(121)에 대한 서명을 제안 응답에 포함시켜 프록시 노드(110)을 통하여 클라이언트 어플리케이션(10)에 전달할 수 있다.On the other hand, the assurance node 121 may delegate the creation of the signature for the assurance node 121 to the verification node 130 during execution of the corresponding transaction, and for the assurance node 121 generated by the verification node 130 The signature may be included in the proposal response and transmitted to the client application 10 through the proxy node 110.

위임 노드(122)는 지시 노드(150)로부터 전달받은 블록 내의 모든 트랜잭션이 각각의 보증 정책을 준수하는지를 확인할 수 있고, 트랜잭션이 보증 정책을 준수하는지 확인하는 과정 중에, 블록 내에 포함된 모든 트랜잭션에 포함되어 있는 보증 노드(121)에 대한 서명에 대한 검증을, 검증 노드(130)에rp 위임할 수 있으며, 모든 트랜잭션이 보증 정책을 준수하는 것으로 확인된 블록이 포함되도록 블록 스토리지(160)의 블록체인 원장을 갱신할 수 있다.The delegation node 122 can check whether all transactions in the block transmitted from the indicating node 150 comply with each guarantee policy, and in the process of checking whether the transaction conforms to the guarantee policy, it is included in all transactions included in the block. The verification of the signature for the guaranteed node 121, which has been verified, can be delegated to the verification node 130, and the block chain of the block storage 160 so that all transactions contain blocks that are confirmed to comply with the assurance policy. Ledger can be updated.

선택부(123)는 계약 실행 노드(170)에 포함된 N개의 계약 서버(171) 중 어느 하나의 계약 서버(171)를 선택한다. 선택된 계약 서버(171)에서는, 클라이언트 어플리케이션(10)으로부터 전달받은 트랜잭션에 대응되는 컨트랙트가 실행될 수 있다. The selection unit 123 selects any one contract server 171 from among the N contract servers 171 included in the contract execution node 170. In the selected contract server 171, a contract corresponding to the transaction received from the client application 10 may be executed.

이 때, 이러한 계약 서버(171)의 선택 과정에 대해 살펴보기로 하자. N개의 계약 서버(171) 각각에는 해시값의 범위가 서로 상이하게, 즉 겹치지 않게 할당되어 있다고 전제하자. 예컨대 계약 서버#1(171)에는 0부터 A까지의 해시값 범위가 할당되어 있고, 계약 서버#2(171)에는 A+1부터 B까지의 해시값 범위가 할당되어 있으며, 계약 서버#3(171)에는 B+1부터 C까지의 해시값 범위가 할당되어 있다고 하자.At this time, let's look at the selection process of such a contract server 171. It is assumed that the ranges of the hash values are allocated to each of the N contract servers 171 differently from each other, that is, not overlapping each other. For example, contract server #1 (171) is assigned a hash value range from 0 to A, contract server #2 (171) is assigned a hash value range from A+1 to B, and contract server #3 ( 171) is assigned a range of hash values from B+1 to C.

이를 전제로, 선택부(123)는, 클라이언트 어플리케이션(10)으로부터 전달받은 트랜잭션에 대응되는 컨트랙트에 기초해서, 해시값을 추출한다. 해시값 추출의 알고리즘 등은 이미 공지된 기술을 채용하는 것으로 한다.On the premise of this, the selection unit 123 extracts a hash value based on a contract corresponding to the transaction received from the client application 10. It is assumed that the algorithm for extracting the hash value and the like employs a known technique.

아울러 선택부(123)는, N개의 계약 서버(171) 중에서 어느 하나의 계약 서버(171)를 선택한다. 선택 과정에서는, N개의 계약 서버(171) 중, 선택부(123)에 의해 추출된 해시값을 포함하는 해시값 범위를 갖는 계약 서버(171)가 선택될 수 있다. In addition, the selection unit 123 selects any one contract server 171 from among the N contract servers 171. In the selection process, a contract server 171 having a hash value range including a hash value extracted by the selection unit 123 may be selected from among the N contract servers 171.

지시 노드(150)는 클라이언트 어플리케이션(10)에서 생성한 트랜잭션 메시지를 수신하고, 트랜잭션 메시지에 포함된 내용에 관계 없이 모든 채널에서 발생하는 트랜잭션을 받아서 시간 순서대로 정렬하여 블록을 생성하고, 생성된 블록을 채널의 모든 피어 노드(120)들의 위임 노드(121)에 전달한다.The indicating node 150 receives the transaction message generated by the client application 10, receives transactions occurring in all channels regardless of the contents included in the transaction message, and arranges them in chronological order to generate a block, and the generated block Is transmitted to the delegating node 121 of all peer nodes 120 of the channel.

검증 노드(130)는 보증 노드(121)로부터 사용자 서명에 대한 유효성 확인을 위임 받아서, 이러한 사용자 서명에 대한 유효성을 확인할 수 있다. 또한, 검증 노드(130)는, 복수의 코어(131)에 의하여 병렬적으로 처리한 사용자 서명 유효성 확인의 결과를 보증 노드(121)에 회신할 수도 있다. The verification node 130 may be delegated to verify the validity of the user signature from the assurance node 121, and may verify the validity of the user signature. In addition, the verification node 130 may return a result of validating user signatures processed in parallel by the plurality of cores 131 to the assurance node 121.

또한, 검증 노드(130)는 보증 노드(121)로부터 보증 노드(121)의 서명 생성 작업을 위임 받아 복수의 코어(131)에 의하여 병렬적으로 처리한 서명 생성 결과를 보증 노드(121)에 회신할 수도 있다. In addition, the verification node 130 receives the signature generation task of the assurance node 121 from the assurance node 121 and returns the signature generation result processed in parallel by the plurality of cores 131 to the assurance node 121 You may.

또한, 검증 노드(130)는 지시 노드(150)에서 생성된 블록 내의 트랜잭션에 포함된 보증 노드(121)의 서명에 대한 검증을 위임 노드(122)로부터 위임 받을 수 있고, 복수의 코어(141)에 의하여 병렬적으로 처리한 보증 노드(121)의 서명 검증 결과를 위임 노드(122)에 회신할 수 있다.In addition, the verification node 130 may receive verification of the signature of the assurance node 121 included in the transaction in the block generated by the instruction node 150 from the delegating node 122, and a plurality of cores 141 As a result, the signature verification result of the assurance node 121 processed in parallel may be returned to the delegating node 122.

공유 메모리(140)는 피어 노드(120)의 보증 노드(121)와 검증 노드(130) 사이에 교신을 할 때 및 피어 노드(120)의 위임 노드(122)와 검증 노드(130)가 교신을 할 때에 공동으로 사용하는 저장공간이다.When the shared memory 140 communicates between the assurance node 121 of the peer node 120 and the verification node 130, the delegation node 122 of the peer node 120 and the verification node 130 communicate with each other. It is a storage space that is shared with each other.

한편, 도 2에는 도 1에 도시된 N개의 계약 서버(171) 중 어느 하나의 계약 서버(171)에 대한 예시적인 구성도가 도시되어 있다. 도 2를 참조하면, 계약 서버(171)에는 M개의 구성 서버(172)가 포함되어 있다. 이러한 구성 서버(172)는 Arm 서버일 수 있으며, 다만 이에 한정되는 것은 아니다. 즉, 1개의 계약 서버(171)에는 M개의 Arm 서버와 같은 구성 서버(172)가 포함될 수 있다.Meanwhile, in FIG. 2, an exemplary configuration diagram of any one of the N contract servers 171 shown in FIG. 1 is shown. 2, the contract server 171 includes M number of configuration servers 172. The configuration server 172 may be an Arm server, but is not limited thereto. That is, one contract server 171 may include a configuration server 172 such as M number of Arm servers.

아울러, 각각의 구성 서버(172)에는 P개(단, P는 자연수)의 계약 실행부(173)가 포함되어 있다. 각각의 계약 실행부(173)에 대한 구성은 도 3에 도시되어 있는데, 도 3을 참조하면, 계약 실행부(173)에는 실행부와 상태 DB(DataBase)가 포함되어 있다. 각각의 실행부에서는 사전에 지정된 컨트랙트가 실행될 수 있다. 아울러, 이러한 실행부와 각각 연관되어 있는 상태 DB에는, 컨트랙트와 관련된 데이터들이 저장되어 있다.In addition, each of the configuration servers 172 includes P contract execution units 173 (wherein P is a natural number). The configuration of each contract execution unit 173 is shown in FIG. 3. Referring to FIG. 3, the contract execution unit 173 includes an execution unit and a state DB (DataBase). In each execution unit, a contract specified in advance can be executed. In addition, data related to contracts are stored in the state DB associated with each of these execution units.

여기서, 계약 실행부(173) 각각은 샤딩(sharding) 또는 복제(replication)될 수 있으며, 여러가지 알고리즘에 따라 리밸런싱이 가능하다. 예컨대, 특정 컨트랙트의 실행에 소요되는 리소스가 평균보다 높거나 또는 사전에 정의된 양보다 높아진 경우, 샤딩이나 복제 등을 통해 특정 컨트랙트가 샤딩 내지 복제될 수 있다.Here, each of the contract execution units 173 may be sharding or replicated, and rebalancing may be performed according to various algorithms. For example, when the resource required for execution of a specific contract is higher than the average or higher than a predefined amount, a specific contract may be sharded or replicated through sharding or replication.

즉, 도 1 내지 3을 참조해서 살펴보면, 일 실시예에 따른 블록체인 플랫폼 시스템(100)에는 smart contract server와 같은 계약 서버(171)가 복수 개가 포함되고, 각각의 계약 서버(171)에는 Arm server와 같은 구성 서버(172)가 복수 개가 포함되며, 각각의 구성 서버(172)에는 실행부와 상태 DB로 구성된 계약 실행부(173)가 복수 개가 포함된다. 여기서, 각각의 계약 실행부(173)에는, 사전에 지정된 컨트랙트만이 실행되도록 설정되어 있을 수 있다.That is, looking at with reference to Figures 1 to 3, the blockchain platform system 100 according to an embodiment includes a plurality of contract servers 171 such as a smart contract server, and each contract server 171 includes an Arm server A plurality of configuration servers 172 are included, and each configuration server 172 includes a plurality of contract execution units 173 consisting of an execution unit and a state DB. Here, each contract execution unit 173 may be set to execute only contracts previously designated.

이하, 도 1 내지 4 및 5를 참조하여 본 발명의 일 실시예에 따른 블록체인 플랫폼 시스템(100)의 트랜잭션 및 컨트랙트 처리 과정에 대하여 살펴보기로 한다.Hereinafter, a transaction and contract processing process of the blockchain platform system 100 according to an embodiment of the present invention will be described with reference to FIGS. 1 to 4 and 5.

먼저, 도 4를 참조하면, 일반 사용자 혹은 허가된 사용자는 클라이언트 어플리케이션(10)의 SDK(Software Development Kit)를 통해 프록시 노드(110)에 접속한 후 트랜잭션을 호출하여 다양한 트랜잭션 제안(transaction proposal)을 발생시킬 수 있다(S201). 여기서, 사용자의 신원 정보가 서명 형태로 트랜잭션 제안에 삽입될 수 있다. 예를 들어, 일반 사용자는 계정을 생성한 후 해당 계정의 개인키를 통하여 트랜잭션을 생성할 수 있다. 허가된 사용자는 CA(Certification Authority)를 통하여 발부 받은 신원 증명서를 통해 트랜잭션을 생성할 수 있다.First, referring to FIG. 4, a general user or an authorized user accesses the proxy node 110 through the SDK (Software Development Kit) of the client application 10 and then calls a transaction to make various transaction proposals. It can be generated (S201). Here, the user's identity information may be inserted into the transaction proposal in the form of a signature. For example, after creating an account, a general user can create a transaction using the account's private key. Authorized users can create transactions through an identity certificate issued through a Certification Authority (CA).

프록시 노드(110)는 클라이언트 어플리케이션(10)과 블록체인 플랫폼 코어들(예컨대, 지시 노드, 보증 노드 및 위임 노드 등)과의 매개역할을 하는 서비스이며, 클라이언트 어플리케이션(10)이 자신을 통해서 블록체인 플랫폼 코어들과 간접적으로 접속할 수 있게 하고, 악의적인 접근에 대한 방어벽 역할을 할 수도 있다. 클라이언트 어플리케이션(10)에 의하여 생성된 트랜잭션은 프록시 노드(110)를 통하여 피어 노드(120) 내의 보증 노드(121)로 전달된다. 이때, 복수의 피어 노드(120) 내에 각각 포함된 보증 노드(121)에 트랜잭션 제안이 전달된다(S203).The proxy node 110 is a service that acts as an intermediary between the client application 10 and the blockchain platform cores (for example, an instruction node, an assurance node, and a delegation node), and the client application 10 is a block chain through itself. It allows indirect access to platform cores and can act as a barrier against malicious access. The transaction generated by the client application 10 is transmitted to the assurance node 121 in the peer node 120 through the proxy node 110. At this time, the transaction proposal is transmitted to the guarantee nodes 121 included in each of the plurality of peer nodes 120 (S203).

보증 노드(121)들에는 트랜잭션의 보증 정책(endorsing policy)이 명시되어 있고, 이러한 보증 노드(121)들은 트랜잭션 제안이 보증 정책을 준수하는지를 확인한 후 해당 트랜잭션을 실행할 수 있다.Endorsing policy of a transaction is specified in the endorsing nodes 121, and these endorsing nodes 121 may execute the corresponding transaction after confirming whether the transaction proposal complies with the endorsing policy.

보증 노드(121)는 트랜잭션 제안이 보증 정책을 준수하는지를 확인하는 과정 중, 트랜잭션 제안이 형식에 맞게 내용이 제대로 채워져 있는지 확인할 수 있고, 이전에 제출된 적이 있는 트랜잭션인지를 확인할 수 있으며, 트랜잭션을 제안한 클라이언트가 제안 권한이 있는지를 확인할 수 있다.In the process of checking whether the transaction proposal complies with the guarantee policy, the guarantee node 121 can check whether the transaction proposal is properly filled in according to the format, can check whether the transaction has been submitted before, and can confirm the transaction proposal. You can check whether the client has the right to suggest.

보증 노드(121)에 명시된 보증 정책에는 사용자 서명의 유효성이 포함될 수 있다. 이 경우에, 보증 노드(121)는 검증 노드(130)에게 사용자 서명의 유효성 확인을 위임할 수 있다. 그러면, 검증 노드(130)에는 복수의 보증 노드(121)로부터 사용자 서명의 유효성 확인이 위임될 수 있다(S205). 이러한 복수의 사용자 서명 유효성 확인 작업은 검증 노드(130)를 구성하는 복수의 코어(131)에 의하여 병렬적으로 처리되며(S207), 그 처리 결과가 피어 노드(120)의 보증 노드(121)에 회신된다(S209). 여기서, 단계 S205 및 단계 S209의 교신은 피어 노드(120)와 검증 노드(130)가 공동으로 사용하는 공유 메모리(140)를 이용할 수 있다.The assurance policy specified in the assurance node 121 may include the validity of the user's signature. In this case, the assurance node 121 may delegate validation of the user signature to the verification node 130. Then, validation of the user signature may be delegated to the verification node 130 from the plurality of assurance nodes 121 (S205 ). Such a plurality of user signature validation tasks are processed in parallel by a plurality of cores 131 constituting the verification node 130 (S207), and the processing result is sent to the assurance node 121 of the peer node 120. It is returned (S209). Here, the communication between steps S205 and S209 may use the shared memory 140 that is jointly used by the peer node 120 and the verification node 130.

보증 노드(121)는, 검증 노드(130)에 의하여 사용자 서명의 유효성이 확인되었고 트랜잭션 제안이 보증 정책을 준수하는 것으로 최종 확인(S211)되었으면, 해당 트랜잭션을 실행할 수 있다(S213). S213에 대해 보다 자세하게 예를 들어 살펴보면, 보증 노드(121)는 특정 계산에 의해 컨트랙트를 호출할 수 있고, 호출된 컨트랙트는 소정의 매개변수에 따라 시뮬레이션이 되며, 시뮬레이션의 결과값(read/write set)을 보증 노드(121)에 반환할 수 있다. If the validity of the user signature has been verified by the verification node 130 and the transaction proposal has been confirmed to comply with the assurance policy (S211), the assurance node 121 may execute the corresponding transaction (S213). Looking at an example of S213 in more detail, the assurance node 121 can call a contract by a specific calculation, the called contract is simulated according to a predetermined parameter, and the result of the simulation (read/write set ) May be returned to the guarantee node 121.

이 때, 호출된 컨트랙트는 계약 실행 노드(170)에 포함된 복수 개의 계약 서버(171) 중 어느 하나의 계약 서버(171)에서 실행 내지 시뮬레이션될 수 있는데, 이러한 어느 하나의 계약 서버(171)는 피어 노드(120)의 선택부(123)에 의해 선택된 것일 수 있다. 이하에서는, 선택부(123)가 복수 개의 계약 서버 (171) 중에서 어느 하나의 계약 서버(171)를 선택하는 과정에 대해, 도 5를 참조해서 보다 자세하게 살펴보기로 한다.At this time, the called contract can be executed or simulated in any one of the contract servers 171 of the plurality of contract servers 171 included in the contract execution node 170, any of these contract servers 171 It may be selected by the selection unit 123 of the peer node 120. Hereinafter, a process in which the selection unit 123 selects any one contract server 171 from among the plurality of contract servers 171 will be described in more detail with reference to FIG. 5.

도 5는 피어 노드(120)의 선택부(123)가 복수 개의 계약 서버(171) 중에서 컨트랙트가 실행 내지 시뮬레이션될 계약 서버(171)를 선택하는 과정에 대해 예시적으로 나타내는 흐름도이다. 다만, 도 5는 예시적인 것에 불과하므로, 본 발명의 사상이 도 5에 도시된 것으로 한정 해석되는 것은 아니다.5 is a flowchart illustrating a process of selecting a contract server 171 in which a contract is to be executed or simulated from among a plurality of contract servers 171 by the selection unit 123 of the peer node 120. However, since FIG. 5 is only an example, the spirit of the present invention is not limited to that illustrated in FIG. 5.

도 5를 참조하면, 보증 노드(121)는 단계 S203에서 프록시 노드(110)로부터 전달받은 트랜잭션 제안을 분배부(123)에게 전달한다(S2131). Referring to FIG. 5, the guarantee node 121 transmits the transaction proposal received from the proxy node 110 to the distribution unit 123 in step S203 (S2131).

그러면 분배부(123)는 복수 개의 계약 서버(171) 중에서 어느 하나의 계약 서버(171)를 선택한다(S2132). 선택하는 과정에서는, S2131에서 전달받은 트랜잭션 제안에 대응되는 컨트랙트의 해시값과, 복수 개의 계약 서버(171) 각각에 할당되어 있는 해시값 범위를 비교함으로써 선택하는데, 이러한 선택 과정은 앞서 설명된 것을 원용하기로 한다.Then, the distribution unit 123 selects any one contract server 171 from among the plurality of contract servers 171 (S2132). In the selection process, the hash value of the contract corresponding to the transaction proposal received in S2131 is selected by comparing the hash value range allocated to each of the plurality of contract servers 171, and this selection process uses the previously described one. I will do it.

이 후, 분배부(123)는 S2132에서 선택된 계약 서버(171)에게 컨트랙트에 대한 요청(request)를 전달한다(S2133). Thereafter, the distribution unit 123 transmits a request for a contract to the contract server 171 selected in S2132 (S2133).

요청을 전달받은 계약 서버(171)는 해당 요청에 따른 컨트랙트를 실행한다(S2134). 이러한 실행은 매개변수에 의해 시뮬레이션된다.The contract server 171 receiving the request executes a contract according to the request (S2134). These runs are simulated by parameters.

트랜잭션 실행의 결과값은 약 서버(171)로부터 보증 노드(121)에게 전달된다(response)(S2135).The result of the transaction execution is transmitted from the server 171 to the assurance node 121 (response) (S2135).

다시 도 4를 참조하자. 그러면, 피어 노드(120)는 트랜잭션 실행의 결과값을 프록시 노드(110)를 통하여 제안 응답(proposal response)으로서 클라이언트 어플리케이션(10)에 전달할 수 있다. 이때, 제안 응답에는 보증 노드(121)의 서명이 포함될 수 있으며, 보증 노드(121)는 서명 생성을 검증 노드(130)에 위임할 수 있다. 그러면, 검증 노드(130)에는 복수의 보증 노드(121)로부터 서명 생성이 위임될 수 있다(S215). 이러한 복수의 서명 생성 작업은 검증 노드(130)를 구성하는 복수의 코어(141)에 의하여 병렬적으로 처리되며(S217), 그 처리 결과에 의하여 생성된 서명이 피어 노드(120)의 보증 노드(121)에 회신될 수 있고(S219), 보증 노드(121)는 검증 노드(130)에 의하여 생성된 서명을 제안 응답에 포함시켜 프록시 노드(110)을 통하여 클라이언트 어플리케이션(10)에 전달할 수 있다(S221, S223).See FIG. 4 again. Then, the peer node 120 may transmit the result of the transaction execution to the client application 10 as a proposal response through the proxy node 110. In this case, the proposal response may include a signature of the assurance node 121, and the assurance node 121 may delegate the signature generation to the verification node 130. Then, signature generation may be delegated to the verification node 130 from the plurality of assurance nodes 121 (S215). Such a plurality of signature generation tasks are processed in parallel by the plurality of cores 141 constituting the verification node 130 (S217), and the signature generated by the processing result is the assurance node of the peer node 120 ( 121), and the assurance node 121 may include the signature generated by the verification node 130 in the proposal response and transmit it to the client application 10 through the proxy node 110 (S219). S221, S223).

클라이언트 어플리케이션(10)은 보증 노드(121)의 서명을 확인한 뒤 각 피어 노드(120)로부터의 제안 응답을 비교하는 작업을 수행한다. 단순한 쿼리 같이 지시 서비스(ordering service)가 필요 없는 경우에는 쿼리 결과값을 얻고 프로세스가 종료할 수 있다. 원장 갱신과 같은 경우에는 클라이언트 차원에서 보증 정책을 준수하는 제안 응답이 회신되었는지를 검토할 수 있다(S225).The client application 10 checks the signature of the assurance node 121 and then compares the proposal responses from each peer node 120. If you don't need an ordering service like a simple query, you can get the query result and terminate the process. In the case of updating the ledger, it may be reviewed whether a response to the proposal that complies with the guarantee policy is returned at the client level (S225).

클라이언트 어플리케이션(10)은 제안 응답이 보증 정책을 만족하는 경우에, 제안 응답에 포함된 트랜잭션 결과값을 프록시 노드(110)를 통하여 지시 노드(150)에 전달한다. 예를 들어, 클라이언트 어플리케이션(10)은 트랜잭션 메시지에 트랜잭션 제안과 이에 대응하는 제안 응답을 모두 포함하여 프록시 노드(110)을 통하여 지시 노드(150)로 전송할 수 있다(S227, S229). 예컨대, 트랜잭션 메시지에는 시뮬레이션의 결과값(read/write set), 보증 노드(121)의 서명 및 채널 아이디(ID)가 포함될 수 있다.When the proposal response satisfies the guarantee policy, the client application 10 transmits the transaction result value included in the proposal response to the indicating node 150 through the proxy node 110. For example, the client application 10 may include both a transaction proposal and a proposal response corresponding thereto in the transaction message and transmit it to the indicating node 150 through the proxy node 110 (S227 and S229). For example, the transaction message may include a simulation result (read/write set), a signature of the assurance node 121, and a channel ID (ID).

지시 노드(150)는 트랜잭션 메시지에 포함된 내용에 관계 없이 모든 채널에서 발생하는 트랜잭션을 받아서 시간 순서대로 정렬하여 블록을 생성하고(S231), 생성된 블록을 채널의 모든 피어 노드(120)들의 위임 노드(122)에 전달한다(S233).The indicating node 150 receives the transactions occurring in all channels regardless of the content included in the transaction message, arranges them in chronological order to generate a block (S231), and delegates the generated block to all peer nodes 120 of the channel. It is transmitted to the node 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).Each delegating node 122 of peer nodes 120 verifies that all transactions in the block comply with their respective endorsement policies. Here, in the process of verifying compliance with the guarantee policy, the signature of the guarantee node 121 included in all transactions included in the block must be verified. However, since multiple transactions are included in one block and multiple signatures are included in each transaction, the number of signatures that must be verified during the process of verifying compliance with the assurance policy is very large. For example, if a blockchain platform with the goal of processing more than 500,000 transactions per second when it is necessary to verify 4 signatures per transaction, it is necessary to verify more than 2 million signatures per second. In the case of intensively allocating the computing and computing resources of (122), it is highly likely that computing and computing resources to be used for processing other data, such as database input/output, etc., are highly likely to be consumed, and this may lead to overall performance degradation. In order to prevent such performance degradation, the delegating node 122 may delegate the signature verification to the verification node 130 during the process of verifying whether the assurance policy is complied with. Then, signature verification may be delegated to the verification node 130 from the plurality of delegating nodes 122 (S235). Such a plurality of signature verification tasks are processed in parallel by a plurality of cores 141 constituting the verification node 130 (S237), and the processing result is returned to the delegating node 122 of the peer node 120. (S239). In this case, the delegating node 122 may tag a corresponding transaction with a result value (eg, valid/invalid) according to the process of checking whether the guarantee policy is complied with (S241).

피어 노드(120)들의 각 위임 노드(122)는 보증 정책을 준수하는 것으로 확인된 블록을 블록 스토리지(160)로 전달하여 블록 스토리지(160)의 블록체인 원장에 단계 S231에서 생성된 블록을 추가하여 갱신할 수 있다. 이러한 블록체인 갱신까지의 일련의 과정이 완료되면 피어 노드(120)의 위임 노드(122)는 클라이언트 어플리케이션(10)에게 작업의 결과를 송신할 수 있다.Each delegation node 122 of the peer nodes 120 transfers the block confirmed to comply with the guarantee policy to the block storage 160 and adds the block generated in step S231 to the block chain ledger of the block storage 160 It can be renewed. When such a series of processes up to the blockchain update is completed, the delegation node 122 of the peer node 120 may transmit the result of the operation to the client application 10.

지금까지 설명한 바와 같이, 일 실시예들에 의하면, 컨트랙트가 복수 개의 계약 서버에 분산되어서 실행될 수 있다. 따라서 동시에 실행될 수 있는 컨트랙트의 숫자가 증가될 수 있다. 아울러, 실행이 예상되는 컨트랙트의 숫자가 많을 경우, Arm server와 같은 계약 서버를 확장함으로써 이러한 컨트랙트의 처리가 원활하게 진행될 수 있다As described so far, according to one embodiment, the contract may be distributed and executed on a plurality of contract servers. Thus, the number of contracts that can be executed at the same time can be increased. In addition, if the number of contracts expected to be executed is large, the processing of these contracts can be smoothly performed by expanding the contract server such as Arm server.

본 발명에 첨부된 각 흐름도의 각 단계의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수도 있다. 이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 인스트럭션들이 흐름도의 각 단계에서 설명된 기능들을 수행하는 수단을 생성하게 된다. 이들 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 기록매체에 저장되는 것도 가능하므로, 그 컴퓨터 이용가능 또는 컴퓨터 판독 가능 기록매체에 저장된 인스트럭션들은 흐름도의 각 단계에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다. 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 흐름도의 각 단계에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다.Combinations of each step in each flowchart attached to the present invention may be performed by computer program instructions. Since these computer program instructions can be mounted on the processor of a general purpose computer, special purpose computer or other programmable data processing equipment, the instructions executed by the processor of the computer or other programmable data processing equipment are the functions described in each step of the flowchart. Will create a means of doing things. These computer program instructions can also be stored on a computer-usable or computer-readable recording medium that can be directed to a computer or other programmable data processing equipment to implement a function in a specific manner, so that the computer-readable or computer-readable medium. It is also possible to produce an article of manufacture containing instruction means for performing the functions described in each step of the flow chart with instructions stored on the recording medium. Since computer program instructions can also be mounted on a computer or other programmable data processing equipment, a series of operating steps are performed on a computer or other programmable data processing equipment to create a computer-executable process to create a computer or other programmable data processing equipment. It is also possible for the instructions to perform the processing equipment to provide steps for executing the functions described in each step of the flowchart.

또한, 각 단계는 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 실시예들에서는 단계들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 단계들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 단계들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.In addition, each step may represent a module, segment, or part of code that contains one or more executable instructions for executing the specified logical function(s). In addition, it should be noted that in some alternative embodiments, the functions mentioned in the steps may occur out of order. For example, two steps shown in succession may in fact be performed substantially simultaneously, or the steps may sometimes be performed in the reverse order depending on the corresponding function.

이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.The above description is merely illustrative of the technical idea of the present invention, and those of ordinary skill in the art to which the present invention pertains will be able to make various modifications and variations without departing from the essential characteristics of the present invention. Accordingly, the embodiments disclosed in the present invention are not intended to limit the technical idea of the present invention, but to explain the technical idea, and the scope of the technical idea of the present invention is not limited by these embodiments. The scope of protection of the present invention should be interpreted by the following claims, and all technical ideas within the scope equivalent thereto should be construed as being included in the scope of the present invention.

100: 블록체인 플랫폼 시스템 110: 프록시 노드
120: 피어 노드 121: 보증 노드
122: 위임 노드 130: 검증 노드
140: 공유 메모리 150: 지시 노드
160: 블록 스토리지
170: 계약 실행 노드
100: blockchain platform system 110: proxy node
120: peer node 121: endorsement node
122: delegate node 130: verification node
140: shared memory 150: indicating node
160: block storage
170: contract execution node

Claims (8)

블록체인 플랫폼을 구성하는 피어 노드(peer node)에서 실행되는 정보 처리 방법으로서,
상기 블록체인 플랫폼의 클라이언트 어플리케이션으로부터 소정의 트랜잭션을 전달받는 단계와,
상기 트랜잭션에 대응되는 컨트랙트에 기초해서, 상기 블록체인 플랫폼의 계약 실행(contract executer) 노드에 포함된 복수 개의 계약 서버 중 어느 하나의 계약 서버를 선택하는 단계와,
상기 선택된 계약 서버에게 상기 트랜잭션을 전달하는 단계를 포함하는
정보 처리 방법.
As an information processing method executed in a peer node constituting a blockchain platform,
Receiving a predetermined transaction from the client application of the blockchain platform,
Selecting one of a plurality of contract servers included in a contract executer node of the blockchain platform based on a contract corresponding to the transaction,
Delivering the transaction to the selected contract server.
How to process information.
제 1 항에 있어서,
상기 선택하는 단계는,
상기 트랜잭션에 대응되는 컨트랙트에 기초해서 해시값을 추출한 뒤, 상기 추출된 해시값에 기초해서 상기 복수 개의 계약 서버 중 어느 하나의 계약 서버를 선택하는
정보 처리 방법.
The method of claim 1,
The selecting step,
After extracting a hash value based on a contract corresponding to the transaction, selecting any one of the plurality of contract servers based on the extracted hash value
How to process information.
제 2 항에 있어서,
상기 복수 개의 계약 서버 각각에는 해시값의 범위가 서로 상이하게 할당되어 있고,
상기 선택하는 단계는,
상기 복수 개의 계약 서버 중에서, 상기 할당되어 있는 해시값의 범위가 상기 추출된 해시값을 포함하는 계약 서버를 선택하는
정보 처리 방법.
The method of claim 2,
Each of the plurality of contract servers has a range of hash values allocated differently from each other,
The selecting step,
Selecting a contract server in which the range of the allocated hash value includes the extracted hash value from among the plurality of contract servers
How to process information.
제 1 항에 있어서,
상기 복수 개의 계약 서버 각각에는 복수 개의 구성 서버가 포함되되, 상기 복수 개의 구성 서버 각각에는 소정의 계약을 실행하는 실행부 및 상기 실행부와 관련된 상태 데이터베이스(state database)가 각각 복수 개씩 마련되어 있는
정보 처리 방법.
The method of claim 1,
Each of the plurality of contract servers includes a plurality of configuration servers, and each of the plurality of configuration servers includes an execution unit executing a predetermined contract and a plurality of state databases related to the execution unit.
How to process information.
컴퓨터 프로그램을 저장하고 있는 컴퓨터 판독 가능 기록매체로서,
상기 컴퓨터 프로그램은, 프로세서에 의해 실행되면,
제 1 항 내지 제 4 항 중 어느 한의 방법을 상기 프로세서가 수행하도록 하기 위한 명령어를 포함하는
컴퓨터 판독 가능한 기록매체.
As a computer-readable recording medium storing a computer program,
When the computer program is executed by a processor,
Including instructions for causing the processor to perform the method of any one of claims 1 to 4
Computer-readable recording medium.
컴퓨터 판독 가능한 기록매체에 저장되어 있는 컴퓨터 프로그램으로서,
상기 컴퓨터 프로그램은, 프로세서에 의해 실행되면,
제 1 항 내지 제 4 항 중 어느 한의 방법을 상기 프로세서가 수행하도록 하기 위한 명령어를 포함하는
컴퓨터 프로그램.
As a computer program stored in a computer-readable recording medium,
When the computer program is executed by a processor,
Including instructions for causing the processor to perform the method of any one of claims 1 to 4
Computer program.
블록체인 플랫폼의 클라이언트 어플리케이션으로부터 소정의 트랜잭션을 전달받으면, 상기 트랜잭션에 대응되는 컨트랙트에 기초해서, 상기 블록체인 플랫폼의 계약 실행(contract executer) 노드에 포함된 복수 개의 계약 서버 중 어느 하나의 계약 서버를 선택하는 선택부와,
상기 선택된 계약 서버에게 상기 트랜잭션을 상기 통신부를 통해 전달하는 보증 노드를 포함하는
피어 노드.
When a predetermined transaction is received from the client application of the blockchain platform, based on the contract corresponding to the transaction, any one of the plurality of contract servers included in the contract executer node of the blockchain platform is selected. With a selection section to choose from,
Including a guarantee node for transmitting the transaction to the selected contract server through the communication unit
Peer node.
복수 개의 계약 서버를 포함하는 계약 실행(contract executer) 노드와,
피어 노드를 포함하되,
상기 피어 노드는,
블록체인 플랫폼의 클라이언트 어플리케이션으로부터 소정의 트랜잭션을 전달받으면, 상기 트랜잭션에 대응되는 컨트랙트에 기초해서, 상기 복수 개의 계약 서버 중 어느 하나의 계약 서버를 선택하는 선택부와,
상기 선택된 계약 서버에게 상기 트랜잭션을 상기 통신부를 통해 전달하는 보증 노드를 포함하는
블록체인 플랫폼 시스템.
A contract executer node including a plurality of contract servers,
Including peer nodes,
The peer node,
When receiving a predetermined transaction from the client application of the blockchain platform, based on a contract corresponding to the transaction, a selection unit for selecting any one of the plurality of contract servers,
Including a guarantee node for transmitting the transaction to the selected contract server through the communication unit
Blockchain platform system.
KR1020200002266A 2019-08-30 2020-01-07 Peer node, method for processing information executed on peer node and blockchain platform system KR102304954B1 (en)

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
KR20210027011A true KR20210027011A (en) 2021-03-10
KR102304954B1 KR102304954B1 (en) 2021-09-27

Family

ID=75148643

Family Applications (3)

Application Number Title Priority Date Filing Date
KR1020200002273A KR102304953B1 (en) 2019-08-30 2020-01-07 Peer node and method for processing information thereof, and blockchain platform systems
KR1020200002266A KR102304954B1 (en) 2019-08-30 2020-01-07 Peer node, method for processing information executed on peer node and blockchain platform system
KR1020200037535A KR20210027038A (en) 2019-08-30 2020-03-27 Proxy apparatus and method for processing information executed on proxy apparatus

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020200002273A KR102304953B1 (en) 2019-08-30 2020-01-07 Peer node and method for processing information thereof, and blockchain platform systems

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020200037535A KR20210027038A (en) 2019-08-30 2020-03-27 Proxy apparatus and method for processing information executed on proxy apparatus

Country Status (1)

Country Link
KR (3) KR102304953B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102507732B1 (en) * 2021-05-27 2023-03-09 부산대학교 산학협력단 Method and system for processing detachable endorsement in permissioned blockchain

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180014534A (en) * 2016-08-01 2018-02-09 서강대학교산학협력단 Verification system and method for transaction based block chain
KR101924026B1 (en) 2017-11-10 2018-11-30 부산대학교 산학협력단 System and method for blockchain using hash-based signature scheme
WO2019072305A2 (en) * 2018-12-28 2019-04-18 Alibaba Group Holding Limited Parallel execution of transactions in a blockchain network based on smart contract whitelists
US20190188712A1 (en) * 2017-12-18 2019-06-20 NEC Laboratories Europe GmbH Efficient validation of transaction policy compliance in a distributed ledger system
WO2019120334A2 (en) * 2019-04-12 2019-06-27 Alibaba Group Holding Limited Performing parallel execution of transactions in a distributed ledger system
KR20190088530A (en) * 2017-05-31 2019-07-26 알리바바 그룹 홀딩 리미티드 Method and device for block chain aggregation

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107395665B (en) * 2017-05-22 2020-04-24 创新先进技术有限公司 Block chain service acceptance and service consensus method and device
JP6754319B2 (en) 2017-05-25 2020-09-09 日本電信電話株式会社 Blockchain update system, server device, client device, blockchain update method, and program
US11144893B2 (en) * 2017-10-30 2021-10-12 Nec Corporation Method and system for securing smart contracts in blockchains

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180014534A (en) * 2016-08-01 2018-02-09 서강대학교산학협력단 Verification system and method for transaction based block chain
KR20190088530A (en) * 2017-05-31 2019-07-26 알리바바 그룹 홀딩 리미티드 Method and device for block chain aggregation
KR101924026B1 (en) 2017-11-10 2018-11-30 부산대학교 산학협력단 System and method for blockchain using hash-based signature scheme
US20190188712A1 (en) * 2017-12-18 2019-06-20 NEC Laboratories Europe GmbH Efficient validation of transaction policy compliance in a distributed ledger system
WO2019072305A2 (en) * 2018-12-28 2019-04-18 Alibaba Group Holding Limited Parallel execution of transactions in a blockchain network based on smart contract whitelists
WO2019120334A2 (en) * 2019-04-12 2019-06-27 Alibaba Group Holding Limited Performing parallel execution of transactions in a distributed ledger system

Also Published As

Publication number Publication date
KR20210027038A (en) 2021-03-10
KR102304954B1 (en) 2021-09-27
KR102304953B1 (en) 2021-09-27
KR20210027012A (en) 2021-03-10

Similar Documents

Publication Publication Date Title
CN109981679B (en) Method and apparatus for performing transactions in a blockchain network
US11562293B2 (en) Adaptation of machine learning algorithms
US11698818B2 (en) Load balancing of machine learning algorithms
US20210144012A1 (en) Management of interoperating machine leaning algorithms
US20210150416A1 (en) Interoperation of machine learning algorithms
US11270030B2 (en) System and method for consensus management
CN110915166A (en) Block chain
KR101937220B1 (en) Method for generating and verifying a digital signature or message authentication code based on a block chain that does not require key management
AU2017257448A1 (en) Implementing logic gate functionality using a blockchain
EP4216077A1 (en) Blockchain network-based method and apparatus for data processing, and computer device
WO2018206407A1 (en) Autonomous logic modules
CN115769241A (en) Privacy preserving architecture for licensed blockchains
CN111492355A (en) Method and control system for controlling and/or monitoring a device
CN115705571A (en) Protecting privacy of auditable accounts
KR20190078668A (en) Apparatus and Methods for Verifiable Lottery
KR20160018554A (en) Roaming internet-accessible application state across trusted and untrusted platforms
CN116583833A (en) Self-auditing blockchain
Swarnkar et al. Security, privacy, trust management and performance optimization of blockchain technology
CN116975901A (en) Identity verification method, device, equipment, medium and product based on block chain
CN111597269A (en) Block chain-based contract implementation method, device and equipment
CN112181599B (en) Model training method, device and storage medium
KR102304954B1 (en) Peer node, method for processing information executed on peer node and blockchain platform system
CN112425121A (en) Usage control data network for distributed databases
CN115913734A (en) User authority management method, device and equipment applied to alliance chain
KR20230132878A (en) Reduce transaction cancellations in execute-order-verify blockchain models

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