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 PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation 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/505—Allocation 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations 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/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0281—Proxies
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0876—Network 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—
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning 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
Description
본 발명은 피어 노드, 피어 노드에서 수행되는 처리 방법 및 블록체인 플랫폼 시스템에 관한 것이다.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.
본 발명의 해결하고자 하는 과제는, 복수 개의 계약 서버(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
도 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
먼저, 프록시 노드(110)는 블록체인 코어들, 즉 피어 노드(120), 검증 노드(130) 및 지시 노드(150) 등과 클라이언트 어플리케이션(10)과의 매개역할을 하는 서비스이다. 이러한 프록시 노드(110)는 악의적인 접근에 대한 방어벽 역할을 할 수 있다.First, the
피어 노드(120)는 보증 노드(121), 위임 노드(22) 및 선택부(123)를 포함한다.The
이 중 보증 노드(121)는 클라이언트 어플리케이션(10)에 의하여 생성된 트랜잭션 제안에 대하여 보증 정책을 준수하였는지를 확인할 수 있다. Among these, the
또한, 보증 노드(121)는 보증 정책 준수에 대한 확인 작업 중에, 검증 노드(130)에게 사용자 서명의 유효성 확인을 위임할 수 있다. In addition, the
만약, 검증 노드(130)에 의해 사용자 서명의 유효성이 확인되고, 트랜잭션 제안이 보증 정책을 준수하는 것으로 확인되면, 보증 노드(121)는 해당 트랜잭션을 실행할 수 있다. 여기서, 이러한 트랜잭션의 실행은 컨트랙트(contract)의 실행으로 이어지는데, 이에 대해서는 후술하기로 한다.If the validity of the user signature is confirmed by the
한편, 보증 노드(121)는 해당 트랜잭션의 실행 중에 보증 노드(121)에 대한 서명 생성을 검증 노드(130)에게 위임할 수 있고, 검증 노드(130)에 의하여 생성된 보증 노드(121)에 대한 서명을 제안 응답에 포함시켜 프록시 노드(110)을 통하여 클라이언트 어플리케이션(10)에 전달할 수 있다.On the other hand, the
위임 노드(122)는 지시 노드(150)로부터 전달받은 블록 내의 모든 트랜잭션이 각각의 보증 정책을 준수하는지를 확인할 수 있고, 트랜잭션이 보증 정책을 준수하는지 확인하는 과정 중에, 블록 내에 포함된 모든 트랜잭션에 포함되어 있는 보증 노드(121)에 대한 서명에 대한 검증을, 검증 노드(130)에rp 위임할 수 있으며, 모든 트랜잭션이 보증 정책을 준수하는 것으로 확인된 블록이 포함되도록 블록 스토리지(160)의 블록체인 원장을 갱신할 수 있다.The
선택부(123)는 계약 실행 노드(170)에 포함된 N개의 계약 서버(171) 중 어느 하나의 계약 서버(171)를 선택한다. 선택된 계약 서버(171)에서는, 클라이언트 어플리케이션(10)으로부터 전달받은 트랜잭션에 대응되는 컨트랙트가 실행될 수 있다. The
이 때, 이러한 계약 서버(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
이를 전제로, 선택부(123)는, 클라이언트 어플리케이션(10)으로부터 전달받은 트랜잭션에 대응되는 컨트랙트에 기초해서, 해시값을 추출한다. 해시값 추출의 알고리즘 등은 이미 공지된 기술을 채용하는 것으로 한다.On the premise of this, the
아울러 선택부(123)는, N개의 계약 서버(171) 중에서 어느 하나의 계약 서버(171)를 선택한다. 선택 과정에서는, N개의 계약 서버(171) 중, 선택부(123)에 의해 추출된 해시값을 포함하는 해시값 범위를 갖는 계약 서버(171)가 선택될 수 있다. In addition, the
지시 노드(150)는 클라이언트 어플리케이션(10)에서 생성한 트랜잭션 메시지를 수신하고, 트랜잭션 메시지에 포함된 내용에 관계 없이 모든 채널에서 발생하는 트랜잭션을 받아서 시간 순서대로 정렬하여 블록을 생성하고, 생성된 블록을 채널의 모든 피어 노드(120)들의 위임 노드(121)에 전달한다.The indicating
검증 노드(130)는 보증 노드(121)로부터 사용자 서명에 대한 유효성 확인을 위임 받아서, 이러한 사용자 서명에 대한 유효성을 확인할 수 있다. 또한, 검증 노드(130)는, 복수의 코어(131)에 의하여 병렬적으로 처리한 사용자 서명 유효성 확인의 결과를 보증 노드(121)에 회신할 수도 있다. The
또한, 검증 노드(130)는 보증 노드(121)로부터 보증 노드(121)의 서명 생성 작업을 위임 받아 복수의 코어(131)에 의하여 병렬적으로 처리한 서명 생성 결과를 보증 노드(121)에 회신할 수도 있다. In addition, the
또한, 검증 노드(130)는 지시 노드(150)에서 생성된 블록 내의 트랜잭션에 포함된 보증 노드(121)의 서명에 대한 검증을 위임 노드(122)로부터 위임 받을 수 있고, 복수의 코어(141)에 의하여 병렬적으로 처리한 보증 노드(121)의 서명 검증 결과를 위임 노드(122)에 회신할 수 있다.In addition, the
공유 메모리(140)는 피어 노드(120)의 보증 노드(121)와 검증 노드(130) 사이에 교신을 할 때 및 피어 노드(120)의 위임 노드(122)와 검증 노드(130)가 교신을 할 때에 공동으로 사용하는 저장공간이다.When the shared
한편, 도 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
아울러, 각각의 구성 서버(172)에는 P개(단, P는 자연수)의 계약 실행부(173)가 포함되어 있다. 각각의 계약 실행부(173)에 대한 구성은 도 3에 도시되어 있는데, 도 3을 참조하면, 계약 실행부(173)에는 실행부와 상태 DB(DataBase)가 포함되어 있다. 각각의 실행부에서는 사전에 지정된 컨트랙트가 실행될 수 있다. 아울러, 이러한 실행부와 각각 연관되어 있는 상태 DB에는, 컨트랙트와 관련된 데이터들이 저장되어 있다.In addition, each of the
여기서, 계약 실행부(173) 각각은 샤딩(sharding) 또는 복제(replication)될 수 있으며, 여러가지 알고리즘에 따라 리밸런싱이 가능하다. 예컨대, 특정 컨트랙트의 실행에 소요되는 리소스가 평균보다 높거나 또는 사전에 정의된 양보다 높아진 경우, 샤딩이나 복제 등을 통해 특정 컨트랙트가 샤딩 내지 복제될 수 있다.Here, each of the
즉, 도 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
이하, 도 1 내지 4 및 5를 참조하여 본 발명의 일 실시예에 따른 블록체인 플랫폼 시스템(100)의 트랜잭션 및 컨트랙트 처리 과정에 대하여 살펴보기로 한다.Hereinafter, a transaction and contract processing process of the
먼저, 도 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
프록시 노드(110)는 클라이언트 어플리케이션(10)과 블록체인 플랫폼 코어들(예컨대, 지시 노드, 보증 노드 및 위임 노드 등)과의 매개역할을 하는 서비스이며, 클라이언트 어플리케이션(10)이 자신을 통해서 블록체인 플랫폼 코어들과 간접적으로 접속할 수 있게 하고, 악의적인 접근에 대한 방어벽 역할을 할 수도 있다. 클라이언트 어플리케이션(10)에 의하여 생성된 트랜잭션은 프록시 노드(110)를 통하여 피어 노드(120) 내의 보증 노드(121)로 전달된다. 이때, 복수의 피어 노드(120) 내에 각각 포함된 보증 노드(121)에 트랜잭션 제안이 전달된다(S203).The
보증 노드(121)들에는 트랜잭션의 보증 정책(endorsing policy)이 명시되어 있고, 이러한 보증 노드(121)들은 트랜잭션 제안이 보증 정책을 준수하는지를 확인한 후 해당 트랜잭션을 실행할 수 있다.Endorsing policy of a transaction is specified in the endorsing
보증 노드(121)는 트랜잭션 제안이 보증 정책을 준수하는지를 확인하는 과정 중, 트랜잭션 제안이 형식에 맞게 내용이 제대로 채워져 있는지 확인할 수 있고, 이전에 제출된 적이 있는 트랜잭션인지를 확인할 수 있으며, 트랜잭션을 제안한 클라이언트가 제안 권한이 있는지를 확인할 수 있다.In the process of checking whether the transaction proposal complies with the guarantee policy, the
보증 노드(121)에 명시된 보증 정책에는 사용자 서명의 유효성이 포함될 수 있다. 이 경우에, 보증 노드(121)는 검증 노드(130)에게 사용자 서명의 유효성 확인을 위임할 수 있다. 그러면, 검증 노드(130)에는 복수의 보증 노드(121)로부터 사용자 서명의 유효성 확인이 위임될 수 있다(S205). 이러한 복수의 사용자 서명 유효성 확인 작업은 검증 노드(130)를 구성하는 복수의 코어(131)에 의하여 병렬적으로 처리되며(S207), 그 처리 결과가 피어 노드(120)의 보증 노드(121)에 회신된다(S209). 여기서, 단계 S205 및 단계 S209의 교신은 피어 노드(120)와 검증 노드(130)가 공동으로 사용하는 공유 메모리(140)를 이용할 수 있다.The assurance policy specified in the
보증 노드(121)는, 검증 노드(130)에 의하여 사용자 서명의 유효성이 확인되었고 트랜잭션 제안이 보증 정책을 준수하는 것으로 최종 확인(S211)되었으면, 해당 트랜잭션을 실행할 수 있다(S213). S213에 대해 보다 자세하게 예를 들어 살펴보면, 보증 노드(121)는 특정 계산에 의해 컨트랙트를 호출할 수 있고, 호출된 컨트랙트는 소정의 매개변수에 따라 시뮬레이션이 되며, 시뮬레이션의 결과값(read/write set)을 보증 노드(121)에 반환할 수 있다. If the validity of the user signature has been verified by the
이 때, 호출된 컨트랙트는 계약 실행 노드(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
도 5는 피어 노드(120)의 선택부(123)가 복수 개의 계약 서버(171) 중에서 컨트랙트가 실행 내지 시뮬레이션될 계약 서버(171)를 선택하는 과정에 대해 예시적으로 나타내는 흐름도이다. 다만, 도 5는 예시적인 것에 불과하므로, 본 발명의 사상이 도 5에 도시된 것으로 한정 해석되는 것은 아니다.5 is a flowchart illustrating a process of selecting a
도 5를 참조하면, 보증 노드(121)는 단계 S203에서 프록시 노드(110)로부터 전달받은 트랜잭션 제안을 분배부(123)에게 전달한다(S2131). Referring to FIG. 5, the
그러면 분배부(123)는 복수 개의 계약 서버(171) 중에서 어느 하나의 계약 서버(171)를 선택한다(S2132). 선택하는 과정에서는, S2131에서 전달받은 트랜잭션 제안에 대응되는 컨트랙트의 해시값과, 복수 개의 계약 서버(171) 각각에 할당되어 있는 해시값 범위를 비교함으로써 선택하는데, 이러한 선택 과정은 앞서 설명된 것을 원용하기로 한다.Then, the
이 후, 분배부(123)는 S2132에서 선택된 계약 서버(171)에게 컨트랙트에 대한 요청(request)를 전달한다(S2133). Thereafter, the
요청을 전달받은 계약 서버(171)는 해당 요청에 따른 컨트랙트를 실행한다(S2134). 이러한 실행은 매개변수에 의해 시뮬레이션된다.The
트랜잭션 실행의 결과값은 약 서버(171)로부터 보증 노드(121)에게 전달된다(response)(S2135).The result of the transaction execution is transmitted from the
다시 도 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
클라이언트 어플리케이션(10)은 보증 노드(121)의 서명을 확인한 뒤 각 피어 노드(120)로부터의 제안 응답을 비교하는 작업을 수행한다. 단순한 쿼리 같이 지시 서비스(ordering service)가 필요 없는 경우에는 쿼리 결과값을 얻고 프로세스가 종료할 수 있다. 원장 갱신과 같은 경우에는 클라이언트 차원에서 보증 정책을 준수하는 제안 응답이 회신되었는지를 검토할 수 있다(S225).The
클라이언트 어플리케이션(10)은 제안 응답이 보증 정책을 만족하는 경우에, 제안 응답에 포함된 트랜잭션 결과값을 프록시 노드(110)를 통하여 지시 노드(150)에 전달한다. 예를 들어, 클라이언트 어플리케이션(10)은 트랜잭션 메시지에 트랜잭션 제안과 이에 대응하는 제안 응답을 모두 포함하여 프록시 노드(110)을 통하여 지시 노드(150)로 전송할 수 있다(S227, S229). 예컨대, 트랜잭션 메시지에는 시뮬레이션의 결과값(read/write set), 보증 노드(121)의 서명 및 채널 아이디(ID)가 포함될 수 있다.When the proposal response satisfies the guarantee policy, the
지시 노드(150)는 트랜잭션 메시지에 포함된 내용에 관계 없이 모든 채널에서 발생하는 트랜잭션을 받아서 시간 순서대로 정렬하여 블록을 생성하고(S231), 생성된 블록을 채널의 모든 피어 노드(120)들의 위임 노드(122)에 전달한다(S233).The indicating
피어 노드(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
피어 노드(120)들의 각 위임 노드(122)는 보증 정책을 준수하는 것으로 확인된 블록을 블록 스토리지(160)로 전달하여 블록 스토리지(160)의 블록체인 원장에 단계 S231에서 생성된 블록을 추가하여 갱신할 수 있다. 이러한 블록체인 갱신까지의 일련의 과정이 완료되면 피어 노드(120)의 위임 노드(122)는 클라이언트 어플리케이션(10)에게 작업의 결과를 송신할 수 있다.Each
지금까지 설명한 바와 같이, 일 실시예들에 의하면, 컨트랙트가 복수 개의 계약 서버에 분산되어서 실행될 수 있다. 따라서 동시에 실행될 수 있는 컨트랙트의 숫자가 증가될 수 있다. 아울러, 실행이 예상되는 컨트랙트의 숫자가 많을 경우, 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)
상기 블록체인 플랫폼의 클라이언트 어플리케이션으로부터 소정의 트랜잭션을 전달받는 단계와,
상기 트랜잭션에 대응되는 컨트랙트에 기초해서, 상기 블록체인 플랫폼의 계약 실행(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.
상기 선택하는 단계는,
상기 트랜잭션에 대응되는 컨트랙트에 기초해서 해시값을 추출한 뒤, 상기 추출된 해시값에 기초해서 상기 복수 개의 계약 서버 중 어느 하나의 계약 서버를 선택하는
정보 처리 방법.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.
상기 복수 개의 계약 서버 각각에는 해시값의 범위가 서로 상이하게 할당되어 있고,
상기 선택하는 단계는,
상기 복수 개의 계약 서버 중에서, 상기 할당되어 있는 해시값의 범위가 상기 추출된 해시값을 포함하는 계약 서버를 선택하는
정보 처리 방법.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.
상기 복수 개의 계약 서버 각각에는 복수 개의 구성 서버가 포함되되, 상기 복수 개의 구성 서버 각각에는 소정의 계약을 실행하는 실행부 및 상기 실행부와 관련된 상태 데이터베이스(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.
상기 선택된 계약 서버에게 상기 트랜잭션을 상기 통신부를 통해 전달하는 보증 노드를 포함하는
피어 노드.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.
피어 노드를 포함하되,
상기 피어 노드는,
블록체인 플랫폼의 클라이언트 어플리케이션으로부터 소정의 트랜잭션을 전달받으면, 상기 트랜잭션에 대응되는 컨트랙트에 기초해서, 상기 복수 개의 계약 서버 중 어느 하나의 계약 서버를 선택하는 선택부와,
상기 선택된 계약 서버에게 상기 트랜잭션을 상기 통신부를 통해 전달하는 보증 노드를 포함하는
블록체인 플랫폼 시스템.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.
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)
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)
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)
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 |
-
2020
- 2020-01-07 KR KR1020200002273A patent/KR102304953B1/en active IP Right Grant
- 2020-01-07 KR KR1020200002266A patent/KR102304954B1/en active IP Right Grant
- 2020-03-27 KR KR1020200037535A patent/KR20210027038A/en not_active IP Right Cessation
Patent Citations (6)
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 |