KR20210029865A - System and method for serverless computing based on blockchain - Google Patents

System and method for serverless computing based on blockchain Download PDF

Info

Publication number
KR20210029865A
KR20210029865A KR1020190110550A KR20190110550A KR20210029865A KR 20210029865 A KR20210029865 A KR 20210029865A KR 1020190110550 A KR1020190110550 A KR 1020190110550A KR 20190110550 A KR20190110550 A KR 20190110550A KR 20210029865 A KR20210029865 A KR 20210029865A
Authority
KR
South Korea
Prior art keywords
transaction
block
blockchain
state
worker
Prior art date
Application number
KR1020190110550A
Other languages
Korean (ko)
Other versions
KR102258936B1 (en
Inventor
김민현
서동일
윤성화
유영서
Original Assignee
주식회사 커먼컴퓨터
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 커먼컴퓨터 filed Critical 주식회사 커먼컴퓨터
Priority to KR1020190110550A priority Critical patent/KR102258936B1/en
Priority to US17/012,925 priority patent/US20210089422A1/en
Publication of KR20210029865A publication Critical patent/KR20210029865A/en
Application granted granted Critical
Publication of KR102258936B1 publication Critical patent/KR102258936B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/083Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP]
    • H04L9/0833Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP] involving conference or group key
    • H04L9/0836Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP] involving conference or group key using tree structure or hierarchical structure
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • H04L2209/38

Abstract

The present disclosure provides a system for serverless computing based on blockchain. The system comprises: a blockchain server which stores and manages a database including a plurality of block states updated in accordance with one or more transactions received from a client; a state listener which monitors whether the plurality of block states are changed; and a worker executing a function in accordance with the change in the plurality of block states, wherein the state listener detects the change in the block state to notify the worker to execute the function in accordance with the change in the block state, and the worker executes the function in accordance with the function execution notification. In addition, the transaction representing an execution result of the function by the worker can be recorded in a blockchain network. Therefore, system operating cost can be reduced.

Description

블록체인 기반 서버레스 컴퓨팅 시스템 및 방법{SYSTEM AND METHOD FOR SERVERLESS COMPUTING BASED ON BLOCKCHAIN}Blockchain-based serverless computing system and method {SYSTEM AND METHOD FOR SERVERLESS COMPUTING BASED ON BLOCKCHAIN}

본 발명은 블록체인 기반 서버레스 컴퓨팅 시스템 및 방법에 관한 것으로, 더 구체적으로는, 블록체인 데이터베이스의 블록 상태 값을 설정 또는 업데이트하여 오프체인 상태의 보안 실행환경을 갖는 워커에 의해 작업을 시작 및 실행하도록 구성함으로써, 하나 이상의 작업의 병렬 처리가 가능한 시스템 및 방법에 관한 것이다.The present invention relates to a block chain-based serverless computing system and method, and more specifically, by setting or updating a block state value of a block chain database to start and execute a task by a worker having a secure execution environment in an off-chain state. It relates to a system and method capable of parallel processing of one or more tasks by configuring to be performed.

일반적으로 블록체인(blockchain) 기술은, 네트워크 통신 상에서 이루어지는 트랜잭션의 내용을 신뢰성 있고 안전한 방법으로 기록하고 저장하는 기술이다. 블록체인 네트워크는, 디지털화된 자산이나 트랜잭션의 교환이 가능한 분산 환경의 시스템으로, 공유된 장부(ledger)를 이용하여 P2P(peer-to-peer) 네트워크에서 발생되는 전자적 거래 또는 작업 내역의 이력을 기록한다. 블록체인 네트워크는 탈중앙화된 또는 분산된 합의 프로토콜(decentralized consensus mechanism)을 이용하기 때문에, 제3자에 의한 트랜잭션의 위변조가 사실상 불가능하게 되어, 트랜잭션의 신뢰성과 투명성을 보장할 수 있다.In general, blockchain technology is a technology that records and stores the contents of transactions made over network communication in a reliable and secure way. Blockchain network is a system in a decentralized environment that enables the exchange of digitized assets or transactions, and records the history of electronic transactions or work that occur in a peer-to-peer (P2P) network using a shared ledger. do. Since the blockchain network uses a decentralized or decentralized consensus mechanism, forgery and alteration of transactions by third parties is virtually impossible, thereby ensuring the reliability and transparency of transactions.

예를 들어, 퍼블릭 블록체인의 한 형태인 이더리움(Ethereum)을 이용하는 경우, 블록체인의 참여 노드들이 코드의 실행을 검증함으로써 데이터 보안 및 신뢰성이 보장될 수 있다. 그러나, 현재 이더리움의 합의 절차의 속도는 15 TPS(transactions per second)에 머무르고 있는데, 이는 전세계적으로 배포된 애플리케이션들의 연산을 처리하기에 충분하지 않다. 또한, 구조적으로 상태성(statefulness), 권한비제한성(trustlessness), 및 연산의 순차성(serialized operation)의 특성을 갖기 때문에, 이더리움의 확장성이 상당히 제한될 수 있다.For example, in the case of using Ethereum, a form of public blockchain, data security and reliability can be guaranteed by verifying the execution of code by participating nodes in the blockchain. However, the current speed of Ethereum's consensus process remains at 15 transactions per second (TPS), which is not enough to handle the computation of applications distributed worldwide. In addition, structurally, since it has the characteristics of statefulness, trustlessness, and serialized operation, the scalability of Ethereum may be considerably limited.

최근에, 애플리케이션의 확장성을 증가시키기 위해 비상태성(stateless), 권한제한성(permissioned), 및 연산의 병렬성(concurrent operation)의 특성을 갖는 서버레스 컴퓨팅(Serverless Computing) 기술이 사용되고 있다. 서버레스 컴퓨팅은, 어플리케이션의 실행에 필요한 컴퓨팅 자원의 고려와 관계없이 어플리케이션 개발이 가능한 이벤트 기반의 클라우드 컴퓨팅 기술을 의미한다. 서버레스 컴퓨팅 시스템에서는, 클라우드 서비스 제공자 또는 분산된 자원 제공자가 동적으로 머신 자원을 할당하고, 어플리케이션 개발자가 제공한 코드를 할당된 머신 자원을 통해 실행한다. 이와 같은 서버레스 컴퓨팅 환경에서는 인프라 운영 및 유지관리에 소요되는 비용이 절감될 수 있고, 서비스 이용자는 서비스 네트워크에 용이하게 접근이 가능하며, 클라우드 서비스에서 제공하는 데이터 저장 및 다양한 기능을 통해 코드 실행에 필요한 시간과 비용을 효율적으로 관리할 수 있다.Recently, in order to increase the scalability of an application, serverless computing technology having the characteristics of stateless, permissioned, and concurrent operation has been used. Serverless computing refers to an event-based cloud computing technology that enables application development regardless of the consideration of computing resources required to execute an application. In a serverless computing system, a cloud service provider or a distributed resource provider dynamically allocates machine resources and executes a code provided by an application developer through the allocated machine resources. In such a serverless computing environment, costs for infrastructure operation and maintenance can be reduced, service users can easily access the service network, and code execution through data storage and various functions provided by cloud services. You can efficiently manage the required time and cost.

종래의 블록체인 기반 컴퓨팅 시스템은 하나의 프로그래밍 언어와, 해당 프로그래밍 언어로 작성된 애플리케이션을 실행하는 하나의 가상머신(virtual machine)만을 지원하며, 블록체인에 참여하는 모든 노드는 동일한 트랜잭션을 실행한다. 이로 인해, 전체 시스템의 운영 비용이 증가하고, 오직 내부 상태 데이터베이스에 대해서만 상호작용이 일어나기 때문에 외부 데이터베이스 및 API(application programming interface) 호출이 불가능한 문제점이 있다.Conventional blockchain-based computing systems support only one programming language and one virtual machine that runs an application written in that programming language, and all nodes participating in the blockchain execute the same transaction. As a result, there is a problem in that an external database and an application programming interface (API) cannot be called because the operation cost of the entire system increases, and interaction occurs only with the internal state database.

상기 문제점을 해결하기 위해 본 개시의 일 실시예에 따르면, 블록체인 기반의 통신, 저장소 및 실행(또는 계산)이 분리된 구조를 이용하여 상이한 유형의 런타임 실행 환경 상에서 다양한 프로그래밍 언어를 실행할 수 있는 블록체인 기반의 서버레스 컴퓨팅 시스템을 제공한다.In order to solve the above problem, according to an embodiment of the present disclosure, a block capable of executing various programming languages on different types of runtime execution environments using a structure in which communication, storage, and execution (or calculation) based on a block chain are separated It provides a chain-based serverless computing system.

또한, 본 개시의 일 실시예에 따르면, 블록체인 데이터베이스의 경로값(또는 블록 상태)을 설정하여 작업을 시작하고, 이 작업에 대한 각 리소스 제공자가 그 결과를 지정된 경로에 기록함으로써, 하나 이상의 작업의 병렬 처리가 가능한 블록체인 기반의 서버레스 컴퓨팅 시스템을 제공한다.In addition, according to an embodiment of the present disclosure, by setting a path value (or block state) of a blockchain database to start a task, and each resource provider for this task records the result in a designated path, one or more tasks It provides a blockchain-based serverless computing system capable of parallel processing.

또한, 본 개시의 일 실시예에 따르면, 블록체인 데이터베이스의 블록 상태를 트리(Tree) 구조로 구성하여, 각 분할된 하위 트리에 대해 상이한 합의 규칙을 정의할 수 있으며, 각 하위 트리에 대해 소규모 블록체인을 유지관리 할 수 있는 블록체인 기반의 서버레스 컴퓨팅 시스템을 제공한다. In addition, according to an embodiment of the present disclosure, by configuring the block state of the blockchain database in a tree structure, different consensus rules can be defined for each divided subtree, and small blocks for each subtree It provides a blockchain-based serverless computing system that can maintain the chain.

본 개시는, 블록체인 기반의 서버레스 컴퓨팅 시스템이 제공된다. 이 시스템은, 클라이언트로부터 수신되는 하나 이상의 트랜잭션에 따라 업데이트되는 복수의 블록 상태(state)를 포함하는 데이터베이스를 저장 및 관리하는 블록체인 서버, 복수의 블록 상태의 변경 여부를 모니터링하는 상태 리스너 및 복수의 블록 상태의 변경에 따른 기능을 실행하는 워커를 포함하며, 상태 리스너는 블록 상태의 변경을 감지하여 워커에게 블록 상태 변경에 따른 기능 실행을 통보하고, 워커는 상기 기능 실행 통보에 따라 상기 기능을 실행한다.The present disclosure provides a block chain-based serverless computing system. This system includes a blockchain server that stores and manages a database including a plurality of block states that are updated according to one or more transactions received from a client, a state listener that monitors whether the state of a plurality of blocks has changed, and a plurality of It includes a worker that executes a function according to the change of the block state, and the state listener detects the change of the block state and notifies the worker of the function execution according to the change of the block state, and the worker executes the function according to the notification of the function execution. do.

일 실시예에 따르면, 블록체인 서버는, 데이터베이스의 블록 상태가 변경될 수 있는 권한을 설정하고, 블록 상태가 변경될 때 실행될 기능을 설정한다.According to an embodiment, the blockchain server sets the authority to change the block state of the database, and sets the function to be executed when the block state changes.

일 실시예에 따르면, 트랜잭션은, 작업을 위한 타겟 노드 경로 값(key) 및 상태 업데이트의 목적 값(value)의 key-value 쌍을 포함하며, 블록 상태는, 트랜잭션의 key-value 쌍을 반영하는 트리 구조로 구성된다.According to one embodiment, the transaction includes a key-value pair of a target node path value (key) for a task and a target value (value) of a state update, and the block state reflects the key-value pair of the transaction. It is organized in a tree structure.

일 실시예에 따르면, 블록체인 서버는, 복수의 블록 상태를, 복수의 서브트리를 포함하는 트리구조로 구성하며, 복수의 블록 상태의 서브트리 각각에 대해 상이한 합의 규칙을 적용할 수 있다.According to an embodiment, the blockchain server configures a plurality of block states into a tree structure including a plurality of subtrees, and a different consensus rule may be applied to each of the subtrees of the plurality of block states.

일 실시예에 따르면, 복수의 블록 상태의 서브트리 각각에 대해 샤드를 적용하고, 샤드는 서브트리 각각을 블록체인 인스턴스에서 처리한다.According to an embodiment, a shard is applied to each subtree in a plurality of block states, and the shard processes each subtree in a blockchain instance.

일 실시예에 따르면, 트랜잭션은 리드컨선을 포함하며, 리드컨선은 트랜잭션에 기초해서 워커를 실행시키는 것을 포함하여 해당 트랜잭션이 활용되기에 적합한 시점을 나타낸다. 예를 들어, 리드컨선이 0으로 설정되면, 트랜잭션에 기초한 블록 생성이 실행되지 않은 상태에서도 트랜잭션의 데이터를 참조해도 좋다는 것을 나타내며, 리드컨선이 1으로 설정되면, 해당 트랜잭션에 기초한 블록 생성이 최소한 1회 실행된 후에 해당 데이터를 참조할 수 있다는 것을 나타낸다.According to an embodiment, the transaction includes a lead-con line, and the lead-con line indicates a time point at which the corresponding transaction is suitable for use, including executing a worker based on the transaction. For example, if the leadcon line is set to 0, it indicates that it is possible to refer to the data of the transaction even when the block generation based on the transaction is not executed.If the leadcon line is set to 1, the block generation based on the transaction is at least 1 Indicates that the data can be referenced after it has been run twice.

일 실시예에 따르면, 블록체인 서버는, 트랜잭션이 블록으로 생성되기 전에 트랜잭션을 저장하는 트랜잭션 풀을 더 포함하며, 시스템은, 트랜잭션 풀에 트랜잭션을 저장하기 전에 트랜잭션을 검증하여 블록 상태에 반영하는 제1 노드; 및 트랜잭션 풀에 저장된 트랜잭션의 유효성 검증을 실행하여 트랜잭션을 포함하는 블록을 생성하는 제2 노드를 더 포함한다.According to an embodiment, the blockchain server further includes a transaction pool that stores the transaction before the transaction is created as a block, and the system verifies the transaction before storing the transaction in the transaction pool and reflects it in the block state. 1 node; And a second node for generating a block including the transaction by performing validation of the transaction stored in the transaction pool.

일 실시예에 따르면, 블록체인 서버는, 제2 노드에 의해 트랜잭션에 대한 유효성 검증 및 블록 생성이 완료되면, 해당 트랜잭션을 트랜잭션 풀에서 제거한다.According to an embodiment, the blockchain server removes the transaction from the transaction pool when validation of the transaction and block generation are completed by the second node.

본 개시의 다른 실시예에 따르면, 블록체인 기반의 서버레스 컴퓨팅 방법에 제공된다. 이 방법은, 블록체인 서버에 의해, 클라이언트로부터 하나 이상의 트랜잭션이 수신되면, 트랜잭션에 따라 데이터베이스의 블록 상태를 업데이트하는 단계; 상태 리스너에 의해, 블록 상태의 변경 여부를 모니터링하는 단계; 상태 리스너에 의해, 블록 상태의 변경을 감지하면, 워커에게 블록체인 상태의 변경에 따른 기능 실행을 통보하는 단계; 및 상기 워커에 의해, 상기 워커가 상기 기능을 실행한 결과를 나타내는 트랜잭션을 블록체인 네트워크에 전송하는 단계를 포함한다.According to another embodiment of the present disclosure, a method for serverless computing based on a block chain is provided. The method includes, by the blockchain server, when one or more transactions are received from a client, updating a block state of a database according to the transaction; Monitoring whether a block state is changed by a state listener; When detecting a change in the block state by the state listener, notifying the worker of a function execution according to the change in the block chain state; And transmitting, by the worker, a transaction indicating a result of executing the function by the worker to the blockchain network.

일 실시예에 따르면, 블록체인 기반의 서버레스 컴퓨팅 방법은, 데이터베이스의 블록 상태가 변경될 수 있는 권한을 설정하고, 블록 상태가 변경될 때 실행될 기능을 설정하는 단계를 더 포함할 수 있다.According to an embodiment, the block chain-based serverless computing method may further include setting an authority to change a block state of a database, and setting a function to be executed when the block state is changed.

일 실시예에 따르면, 블록체인 서버에 의해, 클라이언트로부터 하나 이상의 트랜잭션이 수신되면, 트랜잭션에 따라 데이터베이스의 블록 상태를 업데이트하는 단계는, 트랜잭션이 블록으로 생성되기 전에 트랜잭션을 트랜잭션 풀에 추가하는 단계; 제1 노드에 의해, 트랜잭션이 트랜잭션 풀에 저장되기 전에, 트랜잭션을 검증하여 블록 상태에 반영하는 단계; 제2 노드에 의해, 트랜잭션 풀에 저장된 트랜잭션의 유효성 검증을 실행하여 트랜잭션을 포함하는 블록을 생성하는 단계; 및 블록체인 네트워크의 일관성(consistency)이 유지되도록, 상기 제2 노드에 의해 생성된 상기 블록이 상기 제1 노드의 블록 상태에 적용되는 단계를 포함한다.According to an embodiment, when one or more transactions are received from a client by a blockchain server, updating a block state of a database according to the transaction includes: adding a transaction to a transaction pool before the transaction is created as a block; Verifying the transaction and reflecting it in the block state before the transaction is stored in the transaction pool, by the first node; Generating, by the second node, a block including the transaction by performing validation of the transaction stored in the transaction pool; And applying the block generated by the second node to the block state of the first node so that consistency of the blockchain network is maintained.

또 다른 실시예에 따르면, 컴퓨팅 장치의 하나 이상의 프로세서에 의해 실행되도록 구성되는 하나 이상의 프로그램을 저장하는 컴퓨터 판독가능 저장매체가 제공된다. 이 하나 이상의 프로그램은, 위 방법들을 수행하기 위한 명령어들을 포함한다. According to another embodiment, a computer-readable storage medium is provided that stores one or more programs configured to be executed by one or more processors of a computing device. This one or more programs contain instructions for performing the above methods.

본 개시의 다양한 실시예들에 따르면, 블록체인 기반의 서버레스 컴퓨팅 시스템에서 통신, 저장소 및 실행이 분리된 구조를 이용함으로써 상이한 런타임 실행 환경 상에서 여러가지 프로그래밍 언어를 지원할 수 있으며, 시스템 운영 비용을 감소시킬 수 있다.According to various embodiments of the present disclosure, by using a structure in which communication, storage, and execution are separated in a block chain-based serverless computing system, various programming languages can be supported on different runtime execution environments, and system operation costs can be reduced. I can.

또한, 본 개시의 실시예들에 따르면, 블록체인 기반의 서버레스 컴퓨팅 시스템에서 블록체인 데이터베이스의 블록 상태를 설정하여 작업을 시작 및 실행함으로써 하나 이상의 작업의 병렬 처리가 가능해져 시스템 성능이 증가할 수 있다.In addition, according to embodiments of the present disclosure, parallel processing of one or more tasks is possible by setting a block state of a block chain database to start and execute tasks in a block chain-based serverless computing system, thereby increasing system performance. have.

또한, 본 개시의 실시예들에 따르면, 블록체인 데이터베이스의 블록 상태들을 트리(Tree) 구조로 구성하여, 각 분할된 하위 트리마다 상이한 합의 규칙을 정의하고 소규모 블록체인을 유지관리 함으로써, 시스템에서 실행되는 애플리케이션의 다양한 요구사항(예를 들어, 확장성, 보안성, 분산성 등)에 맞도록 합의 규칙을 설정할 수 있다.In addition, according to the embodiments of the present disclosure, by configuring the block states of the blockchain database in a tree structure, different consensus rules are defined for each sub-tree, and a small block chain is maintained and executed in the system. Consensus rules can be set to meet the various requirements of the application being implemented (eg, scalability, security, decentralization, etc.).

도 1은 본 개시의 일 실시예에 따른 블록체인 기반의 서버레스 컴퓨팅 시스템의 구성을 나타내는 도면이다.
도 2는 본 개시의 일 실시예에 따른 블록체인 기반의 서버레스 컴퓨팅 시스템에서 블록체인 상태의 변경이 트리거 역할을 하여 트랜잭션 생성과 작업 실행의 연쇄반응을 일으키는 과정을 설명하는 도면이다.
도 3은 본 개시의 일 실시예에 따른 블록체인 기반의 서버레스 컴퓨팅 시스템에서 트랜잭션 및 블록의 생성 과정을 나타내는 도면이다.
도 4는 본 개시의 일 실시예에 따른 리드컨선에 따른 블록체인 데이터베이스의 상태 변화를 나타내는 도면이다.
도 5는 본 개시의 일 실시예에 따른 블록체인 데이터베이스에서 하위 블록체인을 통한 샤딩 과정을 나타내는 도면이다.
도 6은 본 개시의 일 실시예에 따른 블록체인 기반의 서버레스 컴퓨팅의 프로세스를 나타내는 흐름도이다.
도 7은 본 개시의 일 실시예에 따른 트랜잭션 실행 및 블록 생성 프로세스를 나타내는 흐름도이다.
1 is a diagram showing the configuration of a block chain-based serverless computing system according to an embodiment of the present disclosure.
FIG. 2 is a diagram illustrating a process of causing a chain reaction between transaction creation and task execution by a change in a blockchain state acting as a trigger in a blockchain-based serverless computing system according to an embodiment of the present disclosure.
3 is a diagram illustrating a process of generating a transaction and a block in a serverless computing system based on a block chain according to an embodiment of the present disclosure.
4 is a diagram illustrating a state change of a block chain database according to a lead-con line according to an embodiment of the present disclosure.
5 is a diagram illustrating a sharding process through a lower block chain in a block chain database according to an embodiment of the present disclosure.
6 is a flowchart illustrating a process of serverless computing based on a block chain according to an embodiment of the present disclosure.
7 is a flowchart illustrating a process of executing a transaction and generating a block according to an embodiment of the present disclosure.

이하, 본 개시의 실시를 위한 구체적인 내용을 첨부된 도면을 참조하여 상세히 설명한다. 다만, 이하의 설명에서는 본 개시의 요지를 불필요하게 흐릴 우려가 있는 경우, 널리 알려진 기능이나 구성에 관한 구체적 설명은 생략하기로 한다. Hereinafter, with reference to the accompanying drawings, specific details for implementing the present disclosure will be described in detail. However, in the following description, when there is a possibility that the subject matter of the present disclosure may be unnecessarily obscure, detailed descriptions of widely known functions or configurations will be omitted.

첨부된 도면에서, 동일하거나 대응하는 구성요소에는 동일한 참조부호가 부여되어 있다. 또한, 이하의 실시예들의 설명에 있어서, 동일하거나 대응하는 구성요소를 중복하여 기술하는 것이 생략될 수 있다. 그러나 구성요소에 관한 기술이 생략되어도, 그러한 구성요소가 어떤 실시예에 포함되지 않는 것으로 의도되지는 않는다. In the accompanying drawings, the same or corresponding elements are denoted with the same reference numerals. In addition, in the description of the following embodiments, overlapping descriptions of the same or corresponding components may be omitted. However, even if description of a component is omitted, it is not intended that such component is not included in any embodiment.

본 개시에 있어서 "서버레스 컴퓨팅(serverless computing)"이라는 용어는, 기존의 서버 기반 컴퓨팅(server-based computing)에서 사용자들이 특정 작업을 실행하기 위해 서버를 준비하고, 운영체제 및 기타 필요한 드라이버 및 소프트웨어를 준비하던 환경과 달리, 사용자가 서버를 관리하거나 그 계산 및 저장 용량을 설정할 필요가 없는 컴퓨팅 환경 또는 시스템을 의미할 수 있다. 이하 다양한 실시예들을 참조하여 상세히 설명하는 바와 같이, 서버레스 컴퓨팅 시스템에서는, 이벤트(event)에 응답하여 백엔드 코드(back-end code)를 자동 실행할 수 있다. 여기서 코드는 저장소에 저장되고, 워커(worker: 실행 환경 또는 리소스 제공자)의 관리된 환경에서 실행될 수 있다. 서버레스 컴퓨팅 시스템이 블록체인 기반으로 구현되는 경우, 워커는 블록체인과 별개로 제공되는 오프체인(off-chain) 실행 환경을 제공할 수 있다.In the present disclosure, the term "serverless computing" refers to a server-based computing in which users prepare a server to execute a specific task, and provide an operating system and other necessary drivers and software. Unlike the prepared environment, it may mean a computing environment or system in which a user does not need to manage a server or set its calculation and storage capacity. As described in detail below with reference to various embodiments, in a serverless computing system, a back-end code may be automatically executed in response to an event. Here, the code is stored in a repository and can be executed in a managed environment of a worker (an execution environment or resource provider). When a serverless computing system is implemented based on a blockchain, workers can provide an off-chain execution environment that is provided separately from the blockchain.

본 개시에서 "PoW(Proof-of-Work)" 또는 "작업증명"이라는 용어는 블록체인 네트워크에서 블록 생성을 위해 사용되는 합의 알고리즘의 하나로서, 예를 들어 블록의 nonce 값을 산출하여 트랜잭션의 유효성을 증명하는 합의 알고리즘을 나타낼 수 있다. 한편 "PoS(Proof-of-Stake)" 또는 "지분증명"이라는 용어는 각 노드가 보유하고 있는 암호화폐 또는 컴퓨팅 리스소의 지분율에 비례하여 의사결정 권한을 주는 합의 알고리즘을 나타낼 수 있다. 예를 들어, PoS 합의 알고리즘을 사용하는 블록체인 네트워크에서는, 암호화폐 등과 같은 자산을 보유하는 노드들은 자신이 합의하는 블록에 대해 보유 지분율을 증명함으로써 해당 블록의 생성에 기여할 수 있다. PoW 기반의 블록체인에서 블록 유효성을 검증하는 과정을 "마이닝(mining)"이라고 하는 반면, PoS 기반의 블록체인에서 해당 과정을 "포징(forging)"이라고 지칭할 수 있다.In this disclosure, the term "PoW (Proof-of-Work)" or "Proof-of-Work" is one of the consensus algorithms used for block generation in the blockchain network. For example, the validity of the transaction by calculating the nonce value of the block We can represent a consensus algorithm that proves On the other hand, the term "PoS (Proof-of-Stake)" or "Proof of Stake" may refer to a consensus algorithm that gives decision-making authority in proportion to the share of the cryptocurrency or computing resource held by each node. For example, in a blockchain network using a PoS consensus algorithm, nodes that have assets such as cryptocurrencies can contribute to the creation of the corresponding block by proving the percentage of ownership of the block they agree on. While the process of verifying the validity of a block in a PoW-based blockchain is called "mining", in a PoS-based blockchain, the process can be called "forging".

본 개시의 일 실시예에 따른 블록체인 기반의 서버레스 컴퓨팅 시스템은, 스마트 컨트랙트(smart contract)의 모든 구성요소들을 블록체인 네트워크 내에 포함하고 있는 기존의 블록체인 시스템과 달리, 시스템 구성요소들을 저장소, 통신처리 네트워크 및 계산 구성요소로 분할해서 운영한다. 본 실시예에 따른 블록체인 기반의 서버레스 컴퓨팅 시스템은, 구성요소들 사이의 통신을 발생 순서대로 기록하는 역할을 하며, 계산 업무는 보안 실행 환경(secure runtime environment: SRE)에서 오프체인(off-chain) 상태에서 실행될 수 있도록 구성한다. 이 시스템에서 저장소는 상이한 저장소(예를 들어, Amazon S3, Google Cloud Storage, IPFS 등)들을 취합하는 어댑터(adapter)로서의 역할을 할 수 있다. The blockchain-based serverless computing system according to an embodiment of the present disclosure stores system components, unlike the existing blockchain system that includes all components of a smart contract in a blockchain network. It operates by dividing it into communication processing network and computational components. The block chain-based serverless computing system according to the present embodiment serves to record communication between components in the order of occurrence, and the calculation task is off-chain in a secure runtime environment (SRE). chain). In this system, the storage can act as an adapter to aggregate different storages (eg, Amazon S3, Google Cloud Storage, IPFS, etc.).

일 실시예에 따르면, 블록체인 기반의 서버레스 컴퓨팅 시스템은, 업로드된 프로그램, 리소스 제공자 및 클라이언트로부터 수신된 요청들을 관리할 수 있다. 또한, 블록체인 기반의 서버레스 컴퓨팅 시스템은, 스마트 컨트랙트 동작이 상태(state)로 기록되며 그 실행이 병렬로 실행될 수 없는 기존의 블록체인 시스템(예를 들어, 이더리움)과 달리, 작업의 실행이 비상태적이며(stateless) 비동기적(asynchronous)이다. 즉, 시스템은 블록체인 데이터베이스의 경로 값(path value) 또는 블록 상태(block state)을 설정함으로써 각 작업 또는 연산을 시작하며, 이 작업을 실행하는 각 워커(worker)는 실행 결과를 지정된 경로에 기록한다. 블록체인 데이터베이스의 특정 경로 값을 중복하여 변경하려는 시도가 없는 한, 모든 작업들은 병렬로 처리될 수 있다. According to an embodiment, the blockchain-based serverless computing system may manage uploaded programs, resource providers, and requests received from clients. In addition, the blockchain-based serverless computing system, unlike existing blockchain systems (e.g., Ethereum) in which smart contract operations are recorded as states and their execution cannot be executed in parallel, the execution of tasks. This is stateless and asynchronous. In other words, the system starts each operation or operation by setting the path value or block state of the blockchain database, and each worker executing this operation records the execution result in the specified path. do. As long as there is no attempt to duplicate and change a specific path value in the blockchain database, all tasks can be processed in parallel.

또한, 일 실시예에 따르면, 블록체인 기반의 서버레스 컴퓨팅 시스템은, 데이터베이스 상태(database state)를 트리 구조로 저장할 수 있다. 이와 같이 데이터베이스를 다중의 서브트리(sub-tree)로 분할하여 구성함으로써, 블록체인 네트워크의 제네시스 규칙(예를 들어, PoS 규칙)을 제외하고, 각 분할된 서브 트리는 자체의 합의 알고리즘을 정의하고, 각 서브트리별로 작은 규모의 블록체인을 유지할 수 있다.In addition, according to an embodiment, the blockchain-based serverless computing system may store a database state in a tree structure. By dividing the database into multiple sub-trees in this way, except for the genesis rules of the blockchain network (for example, PoS rules), each divided sub-tree defines its own consensus algorithm, A small blockchain can be maintained for each subtree.

일 실시예에서, 블록체인 기반의 서버레스 컴퓨팅 시스템은, 애플리케이션 실행을 위한 백엔드(backend) 시스템으로서 기능할 수 있다. 이 시스템에서 애플리케이션은 다음과 같이 실행될 수 있다. 먼저, 클라이언트(또는 dApp: decentralized application)가 트랜잭션(transaction)을 블록체인에 전송하면, 블록체인 노드의 블록 상태(block state)가 해당 트랜잭션의 데이터(예를 들어, 경로-값의 쌍)에 의해 업데이트된다. 한편, 블록 상태 리스너(block state listener)는 블록체인 경로에 대한 모니터링을 실행하고 있다가, 트랜잭션에 의해 업데이트된 상태를 감지하고 이벤트를 워커(worker)에게 전송한다. 이벤트를 수신한 워커는 트랜잭션과 연관된 작업 또는 기능(function)을 실행하고, 또 다른 트랜잭션을 생성할 수 있다. 만약 워커가 또 다른 트랜잭션을 생성하면, 블록체인 노드의 블록 상태는 해당 트랜잭션에 의해 업데이트된다. 또한, 클라이언트는 수정된 블록체인 상태를 통해 그 결과를 획득할 수 있다.In one embodiment, the blockchain-based serverless computing system may function as a backend system for executing an application. In this system, the application can be run as follows: First, when a client (or dApp: decentralized application) sends a transaction to the blockchain, the block state of the blockchain node is determined by the data of the transaction (e.g., path-value pairs). It is updated. On the other hand, the block state listener monitors the blockchain path, detects the updated state by the transaction, and transmits the event to the worker. Workers receiving the event can execute a task or function related to the transaction and create another transaction. If a worker creates another transaction, the block state of the blockchain node is updated by that transaction. In addition, the client can obtain the result through the modified blockchain state.

도 1은 본 개시의 일 실시예에 따른 블록체인 기반의 서버레스 컴퓨팅 시스템의 구성을 나타내는 도면이다. 블록체인 기반의 서버레스 컴퓨팅 시스템(100)은, 복수의 블록 상태를 포함하는 데이터베이스를 저장 및 관리하는 블록체인 서버(110), 블록 상태의 변경 여부를 모니터링하는 상태 리스너(120), 블록 상태의 변경에 따른 기능을 실행하는 워커(130)를 포함한다.1 is a diagram showing the configuration of a block chain-based serverless computing system according to an embodiment of the present disclosure. The blockchain-based serverless computing system 100 includes a blockchain server 110 that stores and manages a database including a plurality of block states, a state listener 120 that monitors whether a block state is changed, and a block state. It includes a worker 130 that executes the function according to the change.

도시된 바와 같이, 블록체인 서버(또는 노드)(110)는 복수의 블록 상태를 포함하는 데이터베이스(112)를 포함할 수 있다. 일 실시예에서, 데이터베이스(112)에 저장된 각 블록 상태는, 각 퍼블릭 키(public key)의 밸런스(balance)와 키-값(key-value) 데이터베이스를 포함할 수 있다. 블록 상태는 마스터 상태(master state)와 규칙 상태(rule state)의 2가지 유형 중 어느 하나일 수 있다. 마스터 상태는 블록체인 네트워크의 모든 참여 노드들에 의해 업데이트되는 실제 데이터를 저장할 수 있다. 또한, 규칙 상태는, 키에 해당하는 데이터 값을 변경하기 위한 접근 권한을 결정하는 규칙을 포함할 수 있다. As shown, the blockchain server (or node) 110 may include a database 112 including a plurality of block states. In one embodiment, each block state stored in the database 112 may include a balance of each public key and a key-value database. The block state may be one of two types: a master state and a rule state. The master state can store actual data updated by all participating nodes in the blockchain network. In addition, the rule state may include a rule for determining access rights for changing a data value corresponding to the key.

또한, 데이터베이스(112)는 트리 구조로 구성될 수 있다. 트리 구조로 구성된 데이터베이스(112)는 샤딩(Sharding) 기술을 적용하여 트리의 하위 집합(또는 서브트리)을 샤드(Shard)로 유지 관리할 수 있다. 본 개시에 있어서 "샤딩"은 전체 블록체인 네트워크를 분할한 뒤 트잰잭션들을 영역별로 저장하고 이를 병렬적으로 처리하여 블록체인에 확장성을 제공하는 온체인(on-chain) 솔루션을 의미할 수 있다. 샤드로 관리되는 서브트리 각각은 별도의 작은 블록체인 인스턴스에서 처리되므로, 블록체인의 총 처리량이 크게 증가하는 효과를 가질 수 있다. 일 실시예에서, 데이터베이스(112)의 각 서브트리에 대해 상이한 PoS 합의 알고리즘이 적용되도록 설정될 수 있다.In addition, the database 112 may be configured in a tree structure. The database 112 configured in a tree structure may maintain a subset (or subtree) of a tree as a shard by applying a sharding technique. In the present disclosure, "sharding" may mean an on-chain solution that provides scalability to the blockchain by dividing the entire blockchain network and storing transactions by area and processing them in parallel. . Since each subtree managed by a shard is processed in a separate small blockchain instance, it can have the effect of greatly increasing the total throughput of the blockchain. In one embodiment, a different PoS consensus algorithm may be set to be applied to each subtree of the database 112.

상태 리스너(120)는 데이터베이스(112)에 저장된 블록체인 블록 상태의 변경 여부를 모니터링할 수 있다. 일 실시예에서, 상태 리스너(120)는, 워커(130)가 새로운 작업을 실행하도록 설정된 후 워커(130)에 의해 생성 또는 실행되는 모듈로서 워커(130) 내에 등록되어 설치되거나 블록체인 서버(110)에 등록되어 설치될 수 있다. The state listener 120 may monitor whether the state of the blockchain block stored in the database 112 is changed. In one embodiment, the status listener 120 is a module that is created or executed by the worker 130 after the worker 130 is set to execute a new task, and is registered and installed in the worker 130 or the blockchain server 110 ) Can be registered and installed.

블록체인 서버(110)는, 데이터베이스(112)의 블록 상태가 변경될 수 있는 권한을 설정하고, 하나 이상의 클라이언트(또는 dApp)(140)으로부터 트랜잭션이 수신되어 블록 상태가 변경될 때 실행될 기능을 설정할 수 있다. 또한, 블록체인 서버(110)는, 하나 이상의 클라이언트(또는 dApp)(140)로부터 트랜잭션을 수신하면, 트랜잭션에 따라 블록체인 블록 상태를 변경할 수 있으며, 상태 리스너(120)는 블록체인 서버(110)를 모니터링하여 블록 상태의 변경을 감지할 수 있다. 상태 리스너(120)가 블록 상태의 변경을 감지하면, 워커(130)에게 블록 상태의 변경에 따른 기능 실행을 통보할 수 있다. 일 실시예에서, 워커(130)는 블록 상태의 변경에 따른 기능을 실행한 결과로서 또 다른 트랜잭션을 생성할 수 있다. 이 경우, 워커(130)는 새로이 생성한 트랜잭션을 블록체인 서버(110)로 전송하여 블록 상태에 업데이트할 수 있다. 이와 같은 블록체인 서버(110)에서 블록 상태의 업데이트는, 추가적인 작업의 실행으로 이어지는 연쇄반응을 일으킬 수 있다. 즉, 워커에 의해 생성된 트랜잭션이 블록체인 서버(110)로 전송되어 블록 상태가 업데이트되면, 상태 리스너(120)는 그 상태 업데이트를 감지하여 워커(130) 또는 또 다른 워커에게 관련 작업 실행을 통지할 수 있다.The blockchain server 110 sets the authority to change the block state of the database 112, and sets a function to be executed when the block state changes due to a transaction received from one or more clients (or dApps) 140. I can. In addition, the blockchain server 110, upon receiving a transaction from one or more clients (or dApps) 140, can change the blockchain block state according to the transaction, and the state listener 120 is the blockchain server 110 Can be monitored to detect changes in block status. When the state listener 120 detects a change in the block state, it may notify the worker 130 of the execution of a function according to the change in the block state. In an embodiment, the worker 130 may generate another transaction as a result of executing a function according to a change in a block state. In this case, the worker 130 may transmit the newly created transaction to the blockchain server 110 and update the block state. Such an update of the block status in the blockchain server 110 may cause a chain reaction leading to the execution of additional tasks. That is, when the transaction generated by the worker is transmitted to the blockchain server 110 and the block status is updated, the status listener 120 detects the status update and notifies the worker 130 or another worker of the related task execution. can do.

일 실시예에서, 이상 설명한 블록체인 서버(110)와 워커(130)는 블록체인 네트워크의 하나의 노드에 포함될 수 있다. 이 경우, 블록체인 서버(110)와 워커(130)는 수신되는 트랜잭션에 대해 즉시 응답하여 관련 작업을 실행할 수 있다. 다른 실시예에서, 워커(130)는 분리 가능하도록 구현되며 다른 컴퓨팅 장치(또는 리소스 제공자)에 의해 호스팅될 수 있다. 이 경우, 해당 컴퓨팅 장치로부터 블록체인 서버(110)로 별도의 통신 채널이 형성될 수 있다.In one embodiment, the blockchain server 110 and the worker 130 described above may be included in one node of the blockchain network. In this case, the blockchain server 110 and the worker 130 may immediately respond to the received transaction and execute a related task. In other embodiments, the worker 130 is implemented to be detachable and may be hosted by another computing device (or resource provider). In this case, a separate communication channel may be formed from the computing device to the blockchain server 110.

도 2는 본 개시의 일 실시예에 따른 블록체인 기반의 서버레스 컴퓨팅 시스템에서 블록 상태의 변경이 트리거 역할을 하여 트랜잭션 생성과 작업 실행의 연쇄반응을 일으키는 과정을 설명하는 도면이다. FIG. 2 is a diagram illustrating a process in which a change in a block state serves as a trigger in a chain reaction between transaction creation and task execution in a block chain-based serverless computing system according to an embodiment of the present disclosure.

도시된 바와 같이, 트랜잭션의 생성과 작업 실행의 연쇄 반응(Chained-Reaction)은 클라이언트(210)가 예를 들어 dApp을 통해 트랜잭션을 생성하여 블록체인 서버(220)으로 전송하는 것으로 시작될 수 있다. As shown, the chained-reaction of the creation of a transaction and execution of a task may begin with the client 210 creating a transaction through, for example, a dApp and transmitting it to the blockchain server 220.

블록체인 서버(220)가 트랜잭션을 수신하면, 트랜잭션에 의해 블록 상태가 업데이트될 수 있다. 이 때, 상태 리스너는 블록체인 서버(220)의 블록 상태 변경을 모니터링하고, 워커(230)에게 블록 상태 변경에 따른 이벤트를 전송할 수 있다. 워커(230)는 이와 같이 블록 상태 변경에 의해 트리거(trigger)된 작업 또는 기능을 실행하고, 기능 실행에 따른 결과로서 추가 트랜잭션을 생성할 수 있다. 워커(230)에 의해 생성된 추가 트랜잭션은 다시 블록체인 서버(220)로 전송될 수 있고, 이에 따라 해당 블록 상태가 업데이트될 수 있다. 여기서 업데이트된 상태 변경은 또 다른 워커의 작업을 실행시킬 수 있다. 또한, 클라이언트(210)는, 업데이트된 블록체인의 블록 상태를 통해 결과값을 얻을 수 있다.When the blockchain server 220 receives the transaction, the block state may be updated by the transaction. At this time, the state listener may monitor the block state change of the block chain server 220 and transmit an event according to the block state change to the worker 230. The worker 230 executes a task or function triggered by the block state change as described above, and may generate an additional transaction as a result of the execution of the function. The additional transaction generated by the worker 230 may be transmitted to the blockchain server 220 again, and the corresponding block state may be updated accordingly. Here, the updated state change can trigger another worker's task. In addition, the client 210 can obtain a result value through the updated block state of the blockchain.

도 3은 본 개시의 일 실시예에 따른 블록체인 기반의 서버레스 컴퓨팅 시스템에서 트랜잭션 및 블록의 생성 과정을 나타내는 도면이다. 도 3에 도시된 블록체인 서버(310) 및 데이터베이스(312)는 도 1에 도시된 블록체인 서버(110) 및 데이터베이스(112)를 각각 포함할 수 있다.3 is a diagram illustrating a process of generating a transaction and a block in a serverless computing system based on a block chain according to an embodiment of the present disclosure. The blockchain server 310 and the database 312 illustrated in FIG. 3 may include the blockchain server 110 and the database 112 illustrated in FIG. 1, respectively.

일 실시예에서, 블록체인 서버(310)는 블록체인의 블록 상태를 포함하는 데이터베이스(312) 및 트랜잭션 풀(314)을 포함할 수 있다. In one embodiment, the blockchain server 310 may include a database 312 and a transaction pool 314 containing the block state of the blockchain.

클라이언트(340)는 블록체인 서버(310)가 저장 및 관리하는 블록 상태를 업데이트하기 위해 트랜잭션을 생성할 수 있다. 각 트랜잭션은, 트랜잭션 식별자, 주소(예를 들어, 트랜잭션 소유자의 공개키), 실제 상태 업데이트 요청을 명시한 데이터(예를 들어, 작업을 위한 타겟 노드 경로(key) 및 상태 업데이트의 목적값(value)의 key-value 쌍)을 포함할 수 있다. The client 340 may generate a transaction to update the block state stored and managed by the blockchain server 310. Each transaction has a transaction identifier, address (e.g., the transaction owner's public key), data specifying the actual state update request (e.g., the target node path for the task and the value of the state update). Key-value pairs).

클라이언트(340)에서 전송된 트랜잭션을 수신하면, 블록체인 서버(310)는 해당 트랜잭션을 트랜잭션 풀(314)에 저장할 수 있다. 트랜잭션 풀(314)은, 블록에 아직 추가되지는 않았지만 합의 블록체인(consensus blockchain)의 일부가 되는 유효한 트랜잭션들의 저장소를 의미할 수 있다. Upon receiving the transaction transmitted from the client 340, the blockchain server 310 may store the transaction in the transaction pool 314. The transaction pool 314 may refer to a storage of valid transactions that have not yet been added to the block but become part of the consensus blockchain.

일 실시예에서, 블록체인 서버(310)를 포함하는 노드(또는 제1 노드)는, 트랜잭션이 트랜잭션 풀(314)에 보관되기 전에 트랜잭션을 검증(validation) 및 실행(execution)할 수 있다. 제1 노드는, 적절한 클라이언트(340)에 의해 해당 트랜잭션이 전송되었음을 보장하는 서명과, 트랜잭션이 허용 권한을 위반하였는지 확인하는 규칙을 이용하여 해당 트랜잭션을 검증할 수 있다. 또한, 제1 노드는, 트랜잭션 데이터(예를 들어, 경로-값 쌍)를 데이터베이스(312)의 블록 상태에 업데이트함으로써 트랜잭션의 실행(또는 데이터베이스로의 적용)을 완료할 수 있다. 이하 상세히 설명하는 바와 같이, 트랜잭션 데이터를 블록 상태에 업데이트할지 여부는, 트랜잭션에 포함된 데이터의 신뢰성을 나타내는 값에 의해 결정될 수 있다. 제1 노드에 의해 트랜잭션이 트랜잭션 풀(314)에 추가되면, 해당 트랜잭션은 블록체인 네트워크 상의 다른 모든 노드가 로컬 트랜잭션 풀에 트랜잭션을 추가할 때까지 네트워크를 통해 전파될 수 있다. In one embodiment, the node (or the first node) including the blockchain server 310 may validate and execute a transaction before the transaction is stored in the transaction pool 314. The first node may verify the transaction using a signature that ensures that the transaction has been transmitted by the appropriate client 340 and a rule that verifies whether the transaction violates the permission permission. In addition, the first node may complete execution of the transaction (or application to the database) by updating the transaction data (eg, path-value pairs) to the block state of the database 312. As described in detail below, whether to update the transaction data in the block state may be determined by a value indicating the reliability of data included in the transaction. When a transaction is added to the transaction pool 314 by the first node, the transaction can be propagated through the network until all other nodes on the blockchain network add the transaction to the local transaction pool.

한편, 블록체인 네트워크의 포저 노드(forger node, 또는 제2 노드)는 트랜잭션 풀에 추가된 트랜잭션의 유효성 검증(또는 forging)을 실행할 수 있다. 또한, 제2 노드는 유효성 검증이 완료된 트랜잭션을 포함하는 블록을 생성하여 블록체인에 연결할 수 있다. 블록체인에 연결된 블록은 블록체인 네트워크를 구성하는 제1 노드들에 전파되어, 모든 노드가 동일한 블록체인 상태를 갖도록 업데이트된다. Meanwhile, a forger node (or second node) of the blockchain network can perform validation (or forging) of a transaction added to the transaction pool. In addition, the second node can connect to the blockchain by creating a block containing the transaction for which validation has been completed. Blocks connected to the blockchain are propagated to the first nodes that make up the blockchain network, and all nodes are updated to have the same blockchain state.

모든 트랜잭션들에 대한 검증 및 블록 생성이 완료되어 블록체인에 추가되면, 해당 트랜잭션이 트랜잭션 풀에서 제거된다. When verification and block generation for all transactions are completed and added to the blockchain, the transaction is removed from the transaction pool.

도 4는 본 개시의 일 실시예에 따른 리드컨선에 따른 블록체인 데이터베이스의 상태 변화를 나타내는 도면이다. 도 4에 도시된 데이터베이스(400)는, 도 1 내지 도 3을 참조하여 설명된 블록체인 기반의 서버레스 컴퓨팅 시스템의 블록체인 서버(110, 220, 310)가 저장 및 관리하는 데이터베이스(112, 312)의 상세 구성을 나타낼 수 있다.4 is a diagram illustrating a state change of a block chain database according to a lead-con line according to an embodiment of the present disclosure. The database 400 shown in FIG. 4 is a database 112 and 312 stored and managed by the block chain servers 110, 220 and 310 of the block chain-based serverless computing system described with reference to FIGS. 1 to 3. ) Can show the detailed configuration.

도시된 바와 같이, 데이터베이스(400)는 트랜잭션들을 포함하는 블록들(410, 420)과 이에 대응하는 블록 상태들(430)을 포함할 수 있다. 예를 들어, 블록(410)이 트랜잭션 "a/b:1"과 "a/c:2"를 포함하도록 생성되며, 이에 대응하여 블록 상태(430)가 경로 "a/b"에 값 "1"를 반영하고, 경로 "a/c"에 값 "2"를 반영하도록 업데이트된다. 다음으로 블록(420)이 트랜잭션 "a/d:3"과 "a/c:3"을 포함하도록 생성되며, 이에 대응하여 블록 상태(430)가 경로 "a/b"에 값 "1"를 유지하되, 경로 "a/c"의 값이 "2"에서 "3"으로 변경되고, 경로 "a/d"에 값 "3"을 반영하도록 업데이트된다. As shown, the database 400 may include blocks 410 and 420 including transactions and block states 430 corresponding thereto. For example, block 410 is created to include transactions "a/b:1" and "a/c:2", and correspondingly, block state 430 is assigned a value of "1" to path "a/b". ", and is updated to reflect the value "2" in the path "a/c". Next, block 420 is created to include transactions "a/d:3" and "a/c:3", and correspondingly, block state 430 writes a value "1" to path "a/b". Keep, but the value of the path "a/c" is changed from "2" to "3" and is updated to reflect the value "3" in the path "a/d".

한편, 블록체인 서버의 트랜잭션 풀에는 아직 블록체인에 블록으로 추가되지 않은 트랜잭션들("a/e/f:4", "a/e/g:5")이 저장되어 있다. 이 트랜잭션들은 경로(키)-값 쌍에 더하여 리드컨선(read_concern) 필드를 더 포함할 수 있다. 리드컨선은 트랜잭션 생성 시 함께 포함될 수 있는 값으로, 해당 트랜잭션의 데이터가 블록체인의 블록 상태에 반영될 정도의 신뢰성이 있는지를 나타낼 수 있다.Meanwhile, transactions that have not yet been added as blocks to the blockchain ("a/e/f:4", "a/e/g:5") are stored in the transaction pool of the blockchain server. These transactions may further include a read_concern field in addition to the path (key)-value pair. The leadcon line is a value that can be included when creating a transaction, and can indicate whether the data of the transaction is reliable enough to be reflected in the block state of the blockchain.

일 실시예에서, 클라이언트는 트랜잭션을 생성할 때, 해당 트랜잭션에 리드컨선의 정보를 포함할 수 있으며, 그 값은 클라이언트가 임의로 설정할 수 있다. 블록체인 서버의 제1 노드는 각 트랜잭션의 리드컨선의 값에 기초하여 해당 트랜잭션의 키-값 쌍을 블록 상태에 반영할 수 있다. 예를 들어, 리드컨선의 값이 0인 경우, 해당 트랜잭션의 데이터를 포함하는 블록이 생성되기 전에도 사용할 수 있을 정도로 신뢰도가 높다고 판단하여, 해당 트랜잭션의 데이터를 데이터베이스의 블록 상태에 바로 반영할 수 있다. 즉, 블록체인 서버는 트랜잭션의 리드컨선의 값이 0인 경우 해당 트랜잭션을 바로 실행할 수 있다. 반면, 리드컨선의 값이 1 또는 그 이상인 경우, 해당 트랜잭션의 데이터를 포함하는 블록 생성이 1회 또는 그 이상이 될 때까지 해당 트랜잭션의 실행을 보류할 수 있다. In an embodiment, when the client creates a transaction, the client may include information on the leadcon line in the transaction, and the value may be arbitrarily set by the client. The first node of the blockchain server may reflect the key-value pair of the corresponding transaction in the block state based on the value of the leadcon line of each transaction. For example, if the value of the leadcon line is 0, it is determined that the reliability is high enough to be used even before the block containing the data of the corresponding transaction is created, and the data of the corresponding transaction can be immediately reflected in the block state of the database. . In other words, the blockchain server can immediately execute the transaction if the value of the leadcon line of the transaction is 0. On the other hand, when the value of the lead-con line is 1 or more, execution of the corresponding transaction may be suspended until one or more block generations including the data of the corresponding transaction are generated.

도 4의 예에 있어서, 트랜잭션 "a/e/g:5"의 리드컨선의 값은 1이 부여되어 1회의 블록 생성 이후에 읽혀질 것으로 권고되었기 때문에, 해당 데이터를 블록 상태(430)에 반영하지 않고 실행을 보류할 수 있다. 반면, 트랜잭션 "a/e/f:4"의 리드컨선의 값은 0으로 부여되어 있기 때문에, 즉시 트랜잭션의 실행이 이루어져 블록 상태(430)에 반영될 수 있다. In the example of FIG. 4, since the value of the leadcon line of the transaction "a/e/g:5" is assigned 1 and is recommended to be read after one block is generated, the corresponding data is not reflected in the block state 430. You can suspend execution without it. On the other hand, since the value of the leadcon line of the transaction "a/e/f:4" is assigned as 0, the transaction is immediately executed and reflected in the block state 430.

도 5는 본 개시의 일 실시예에 따른 블록체인 데이터베이스에서 하위 블록체인을 통한 샤딩 과정를 나타내는 도면이다. 도 5에 도시된 데이터베이스(500)는, 도 1 내지 도 3을 참조하여 설명된 블록체인 기반의 서버레스 컴퓨팅 시스템의 블록체인 서버(110, 220, 310)이 저장 및 관리하는 데이터베이스(112, 312)의 상세 구성을 나타낼 수 있다.5 is a diagram illustrating a sharding process through a lower block chain in a block chain database according to an embodiment of the present disclosure. The database 500 shown in FIG. 5 is a database 112, 312 stored and managed by the blockchain servers 110, 220, 310 of the blockchain-based serverless computing system described with reference to FIGS. 1 to 3. ) Can show the detailed configuration.

데이터베이스(500)는 복수의 레벨을 갖는 블록들(510, 520, 530, 542, 544, 546)의 체인을 포함할 수 있다. 또한 데이터베이스(500)는, 블록들(510, 520, 530)에 포함된 트랜잭션들의 경로(키)-값 쌍들을 반영하는 블록 상태(550, 552, 554)를 더 포함할 수 있다.The database 500 may include a chain of blocks 510, 520, 530, 542, 544, 546 having a plurality of levels. In addition, the database 500 may further include block states 550, 552, and 554 that reflect path (key)-value pairs of transactions included in the blocks 510, 520, and 530.

도시된 바와 같이, 데이터베이스(500)는 최상위 레벨의 규칙을 사용하는 루트 블록들(510, 520, 530)와 이 블록들로부터 분기되어 생성된 하위 레벨의 차일드 블록들(542, 544, 546)을 포함할 수 있다. 루트 블록들(510, 520, 530)에 포함된 트랜잭션들의 경로-값 쌍은 루트 상태(552)에 반영되어 저장되며, 차일드 블록들(542, 544, 546)의 경로-값 쌍은 차일드 상태(554)에 반영되어 저장되어 있다. 또한, 루트 상태(552)와 차일드 상태(554)는 통합되어 전체 상태(550)로 표시될 수도 있다.As shown, the database 500 includes root blocks 510, 520, and 530 using the highest-level rule and lower-level child blocks 542, 544, and 546 generated by branching from these blocks. Can include. The path-value pairs of transactions included in the root blocks 510, 520, and 530 are reflected in the root state 552 and stored, and the path-value pairs of the child blocks 542, 544, 546 are in the child state ( 554). In addition, the root state 552 and the child state 554 may be integrated and displayed as an overall state 550.

일 실시예에서, 데이터베이스(500)의 블록 상태들은 샤딩(Sharding) 방식을 사용하여 관리될 수 있다. 블록 상태들은 전체적으로 트리구조로 구성되며, 이 트리구조의 블록 상태들의 일부(즉, 서브트리)가 하나의 샤드(shard)에 의해 유지 및 관리될 수 있다. 도 5의 실시예에서는, 전체 상태(550) 중에서 차일드 상태(554)가 하나의 샤드로 관리될 수 있다. 이에 따라, 차일드 상태(554)에 대응되는 하위 레벨(540)의 블록들(542, 544, 546)도 샤드로 관리될 수 있다. 이와 같이 구성되는 샤드는, 이에 속하는 블록들의 검증을 실행할 수 있다. 일반적으로 PoW(Proof of Work) 합의 방식은, 각 샤드에 대한 공격 또는 해킹에 필요한 계산량이 전체 블록들을 공격하기 위해 필요한 계산량보다 상당히 작기 때문에, 샤딩으로 관리되는 블록체인에는 적용하기 어려울 수 있다. 따라서, 본 실시예의 각 샤드에는 PoS 합의 방식이 사용될 수 있다. In an embodiment, the block states of the database 500 may be managed using a sharding method. Block states are generally organized in a tree structure, and some of the block states (ie, subtrees) of this tree structure can be maintained and managed by one shard. In the embodiment of FIG. 5, a child state 554 among all states 550 may be managed as one shard. Accordingly, blocks 542, 544, and 546 of the lower level 540 corresponding to the child state 554 may also be managed as shards. A shard configured in this way can perform verification of blocks belonging to it. In general, the PoW (Proof of Work) consensus method may be difficult to apply to a blockchain managed by sharding because the amount of calculation required for attacking or hacking each shard is considerably smaller than the amount of calculation required to attack all blocks. Therefore, a PoS consensus method may be used for each shard in this embodiment.

일 실시예에서, 루트 블록들(510, 520, 530)에는 최상위 수준의 합의 규칙(Genesis Rules)이 적용될 수 있으며, 최상위 수준의 합의 규칙은 루트 블록들의 체인의 가장 앞에 위치한 블록(510)에 저장될 수 있다. 또한, 샤드로 관리되는 블록 상태들의 서브 트리에 대응되는 블록들에는 각각 자체적인 합의 규칙을 적용할 수 있다. 이와 같이 블록 상태들의 서브트리에 적용되는 합의 규칙은 차일드 블록들(542, 544, 546)의 체인에 있어서 제일 앞에 위치 블록(542)에 저장될 수 있다.In one embodiment, the root blocks 510, 520, 530 may be applied to the highest level of consensus rules (Genesis Rules), the highest level of the consensus rule is stored in the block 510 located at the front of the chain of root blocks. Can be. In addition, its own consensus rule can be applied to blocks corresponding to subtrees of block states managed by shards. In this way, the consensus rule applied to the subtree of block states may be stored in the first location block 542 in the chain of child blocks 542, 544, and 546.

이와 같이 블록 상태들의 서브트리(예를 들어 차일드 상태(554)) 별로 상이한 합의 규칙을 설정함으로써, 확장성의 트릴레마(Trilemma) 문제를 해결할 수 있다. 즉, 본 개시의 블록체인 기반의 서버레스 컴퓨팅 시스템은, 다양한 유형의 애플리케이션의 확장성 및 보안성의 요구사항들을 만족시키도록 다양한 합의 규칙을 설정할 수 있다. 예를 들어, 애플리케이션이 안정성(Scalability)을 필요로 하는 경우, 단순한 PoS 합의 규칙을 사용하여 처리량을 극대화할 수 있고, 애플리케이션이 강한 보안성(Security)을 필요로 하는 경우, 무권한(Permissionless) PoS 규칙을 사용할 수 있으며, 애플리케이션이 좀 더 많은 탈중앙화(Decentralized)를 필요로 하는 경우, 새로운 합의 규칙을 채택하여 적용할 수 있다.In this way, by setting different consensus rules for each subtree of block states (for example, child state 554), it is possible to solve the problem of scalability Trilemma. That is, the blockchain-based serverless computing system of the present disclosure may set various consensus rules to satisfy the requirements of scalability and security of various types of applications. For example, if an application requires scalability, a simple PoS consensus rule can be used to maximize throughput, and if an application requires strong security, permissionless PoS Rules can be used, and if an application requires more decentralization, a new consensus rule can be adopted and applied.

도 6은 본 개시의 일 실시예에 따른 블록체인 기반의 서버레스 컴퓨팅의 프로세스를 나타내는 흐름도이다. 프로세스(600)는 블록체인 서버에 의해, 하나 이상의 클라이언트로부터 트랜잭션을 수신하는 단계(S610)로 시작될 수 있다.6 is a flowchart illustrating a process of serverless computing based on a block chain according to an embodiment of the present disclosure. The process 600 may begin with a step S610 of receiving a transaction from one or more clients by the blockchain server.

클라이언트(또는 dApp)가 트랜잭션을 생성하고, 해당 트랜잭션이 블록체인 서버에 전송되어 데이터베이스에 저장될 수 있다. 또한, 블록체인 서버는, 데이터베이스의 블록 상태가 변경될 수 있는 권한을 설정하고, 블록 상태가 변경될 때 실행될 기능을 설정할 수 있다. 블록체인 서버는, 하나 이상의 클라이언트로부터 트랜잭션이 수신되면, 해당 트랜잭션에 따라 데이터베이스의 블록 상태를 변경한다(S620). 트랜잭션 데이터는 경로(키)-값의 쌍을 포함할 수 있으며, 트랜잭션을 반영한 블록 상태는 트리 구조로 구성될 수 있다.A client (or dApp) creates a transaction, and the transaction can be transmitted to a blockchain server and stored in a database. In addition, the blockchain server can set the authority to change the block status of the database and set the function to be executed when the block status changes. When a transaction is received from one or more clients, the blockchain server changes the block state of the database according to the corresponding transaction (S620). Transaction data may include a path (key)-value pair, and the block state reflecting the transaction may be organized in a tree structure.

다음으로, 상태 리스너가 블록 상태 변경을 감지한다(S630). 상태 리스너는 블록체인 서버를 모니터링하여 블록 상태가 변경되는지 판단한다. 상태 리스너가 블록 상태 변경을 감지하면, 워커에게 블록체인 상태 변경에 따른 기능 실행을 통보한다(S650). 상태 리스너는 블록 상태 변경에 따른 이벤트(또는 트리거)를 워커에게 전송하고, 워커는 수신된 이벤트에 따라 블록 상태 변경에 따른 기능을 실행한다. Next, the state listener detects a block state change (S630). The state listener monitors the blockchain server to determine if the block state changes. When the state listener detects the change of the block state, it notifies the worker of the execution of the function according to the change of the state of the block chain (S650). The state listener transmits an event (or trigger) according to the block state change to the worker, and the worker executes a function according to the block state change according to the received event.

워커의 기능 실행 결과를 나타내는 트랜잭션은 블록체인 서버로 전송될 수 있다(S660). 워커는 기능 실행에 따른 결과로서 추가 트랜잭션을 생성할 수도 있다. 워커가 생성한 추가 트랜잭션은 블록체인 서버의 데이터베이스에 저장된 블록 상태에 다시 업데이트될 수 있으며, 클라이언트는 변경된 블록체인 상태를 통해 결과를 얻는다.The transaction indicating the result of executing the function of the worker may be transmitted to the blockchain server (S660). Workers can also create additional transactions as a result of function execution. Additional transactions generated by workers can be updated back to the block state stored in the database of the blockchain server, and the client gets the result through the changed blockchain state.

도 7은 본 개시의 일 실시예에 따른 트랜잭션 실행 및 블록 생성 프로세스를 나타내는 흐름도이다. 트랜잭션의 실행 및 블록 생성의 프로세스(700)는, 블록체인 서버가 클라이언트에 의해 생성된 트랜잭션 수신하는 단계(S710)로 시작된다.7 is a flowchart illustrating a process of executing a transaction and generating a block according to an embodiment of the present disclosure. The process 700 of executing a transaction and generating a block begins with a step (S710) in which the blockchain server receives a transaction generated by a client.

블록체인 서버는 블록 상태를 포함하는 데이터베이스 및 트랜잭션을 저장하기 위한 트랜잭션 풀을 포함할 수 있다. 블록체인 서버가 트랜잭션을 수신하면, 제1 노드에 의해 트랜잭션을 검증 및 실행한다(S720).The blockchain server may include a database containing the block state and a transaction pool for storing transactions. When the blockchain server receives the transaction, it verifies and executes the transaction by the first node (S720).

제1 노드는, 트랜잭션이 트랜잭션 풀에 추가되기 전에 트랜잭션을 검증 및 실행할 수 있다. 이를 위해, 제1 노드는 클라이언트에 의해 해당 트랜잭션이 전송되었음을 보장하는 서명과, 트랜잭션이 허용 권한을 위반하였는지 확인하는 규칙을 이용하여 해당 트랜잭션을 검증할 수 있다. 또한, 제1 노드는, 트랜잭션 데이터(예를 들어, 경로-값 쌍)를 블록 상태에 업데이트함으로써 트랜잭션의 실행을 완료할 수 있다. 트랜잭션 데이터를 블록 상태에 업데이트할지 여부는, 트랜잭션에 포함된 데이터의 신뢰성을 나타내는 값에 의해 결정될 수 있다.The first node can verify and execute the transaction before it is added to the transaction pool. To this end, the first node may verify the corresponding transaction using a signature that ensures that the transaction has been transmitted by the client and a rule that verifies whether the transaction violates the permission permission. Also, the first node may complete execution of the transaction by updating the transaction data (eg, path-value pair) to the block state. Whether to update the transaction data in the block state may be determined by a value indicating the reliability of data included in the transaction.

트랜잭션 검증 및 실행이 완료되면, 해당 트랜잭션을 트랜잭션 풀에 추가한다(S730). 이후, 제2 노드는 트랜잭션 풀의 트랜잭션에 대해 블록을 생성하고 블록체인에 연결한다(S740). 제2 노드는 트랜잭션 풀에서 가져온 트랜잭션의 유효성 검증을 실행하고, 트랜잭션을 포함하는 블록을 생성하며, 해당 블록을 블록체인에 연결한다. 제2 노드는 생성된 블록을 블록체인 네트워크에 있는 제1 노드들에게 전파한다(S750). 제1 노드는 전파된 블록을 바탕으로 현재 자신이 갖고 있는 상태와 비교하여, 일치하지 않은 상태가 있는 경우 해당 블록을 기준으로 수정한다. When the transaction verification and execution is completed, the transaction is added to the transaction pool (S730). Thereafter, the second node creates a block for the transaction in the transaction pool and connects it to the block chain (S740). The second node performs validation of the transaction pulled from the transaction pool, creates a block containing the transaction, and connects the block to the blockchain. The second node propagates the generated block to the first nodes in the blockchain network (S750). Based on the propagated block, the first node compares the current state with its own state, and if there is an inconsistent state, corrects it based on the corresponding block.

상술한 장치 또는 시스템의 구성요소들과 방법들은 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현될 수도 있다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의해 읽혀 질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광데이터 저장장치 등이 있다. 또한, 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고, 상기 실시예들을 구현하기 위한 기능적인(functional) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술분야의 프로그래머들에 의해 용이하게 추론될 수 있다. Components and methods of the above-described apparatus or system may be implemented as computer-readable codes on a computer-readable recording medium. The computer-readable recording medium includes all types of recording devices that store data that can be read by a computer system. Examples of computer-readable recording media include ROM, RAM, CD-ROM, magnetic tapes, floppy disks, and optical data storage devices. In addition, the computer-readable recording medium is distributed over a computer system connected through a network, so that computer-readable codes can be stored and executed in a distributed manner. In addition, functional programs, codes, and code segments for implementing the above embodiments can be easily inferred by programmers in the technical field to which the present invention belongs.

본원에 기술된 기법들은 다양한 수단에 의해 구현될 수도 있다. 예를 들어, 이러한 기법들은 하드웨어, 펌웨어, 소프트웨어, 또는 이들의 조합으로 구현될 수도 있다. 본원의 개시와 연계하여 설명된 다양한 예시적인 논리적 블록들, 모듈들, 회로들, 및 알고리즘 단계들은 전자 하드웨어, 컴퓨터 소프트웨어, 또는 양자의 조합들로 구현될 수도 있음을 통상의 기술자들은 더 이해할 것이다. 하드웨어 및 소프트웨어의 이러한 상호교환성을 명확하게 설명하기 위해, 다양한 예시적인 컴포넌트들, 블록들, 모듈들, 회로들, 및 단계들이 그들의 기능성의 관점에서 일반적으로 위에서 설명되었다. 그러한 기능이 하드웨어로서 구현되는지 또는 소프트웨어로서 구현되는 지의 여부는, 특정 애플리케이션 및 전체 시스템에 부과되는 설계 제약들에 따라 달라진다. 통상의 기술자들은 각각의 특정 애플리케이션을 위해 다양한 방식들로 설명된 기능을 구현할 수도 있으나, 그러한 구현 결정들은 본 개시의 범위로부터 벗어나게 하는 것으로 해석되어서는 안된다.The techniques described herein may be implemented by various means. For example, these techniques may be implemented in hardware, firmware, software, or a combination thereof. Those skilled in the art will further appreciate that the various illustrative logical blocks, modules, circuits, and algorithm steps described in connection with the disclosure herein may be implemented in electronic hardware, computer software, or combinations of both. To clearly illustrate this interchangeability of hardware and software, various illustrative components, blocks, modules, circuits, and steps have been described above generally in terms of their functionality. Whether such functionality is implemented as hardware or software depends on the particular application and design constraints imposed on the overall system. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present disclosure.

하드웨어 구현에서, 기법들을 수행하는 데 이용되는 프로세싱 유닛들은, 하나 이상의 ASIC들, DSP들, 디지털 신호 프로세싱 디바이스들 (digital signal processing devices; DSPD들), 프로그램가능 논리 디바이스들 (programmable logic devices; PLD들), 필드 프로그램가능 게이트 어레이들 (field programmable gate arrays; FPGA들), 프로세서들, 제어기들, 마이크로제어기들, 마이크로프로세서들, 전자 디바이스들, 본원에 설명된 기능들을 수행하도록 설계된 다른 전자 유닛들, 컴퓨터, 또는 이들의 조합 내에서 구현될 수도 있다.In a hardware implementation, the processing units used to perform the techniques include one or more ASICs, DSPs, digital signal processing devices (DSPDs), programmable logic devices (PLDs). ), field programmable gate arrays (FPGAs), processors, controllers, microcontrollers, microprocessors, electronic devices, other electronic units designed to perform the functions described herein, It may be implemented in a computer, or a combination thereof.

따라서, 본원의 개시와 연계하여 설명된 다양한 예시적인 논리 블록들, 모듈들, 및 회로들은 범용 프로세서, DSP, ASIC, FPGA나 다른 프로그램 가능 논리 디바이스, 이산 게이트나 트랜지스터 로직, 이산 하드웨어 컴포넌트들, 또는 본원에 설명된 기능들을 수행하도록 설계된 것들의 임의의 조합으로 구현되거나 수행될 수도 있다. 범용 프로세서는 마이크로프로세서일 수도 있지만, 대안에서, 프로세서는 임의의 종래의 프로세서, 제어기, 마이크로제어기, 또는 상태 머신일 수도 있다. 프로세서는 또한, 컴퓨팅 디바이스들의 조합, 예를 들면, DSP와 마이크로프로세서, 복수의 마이크로프로세서들, DSP 코어와 연계한 하나 이상의 마이크로프로세서들, 또는 임의의 다른 그러한 구성의 조합으로서 구현될 수도 있다.Accordingly, various illustrative logic blocks, modules, and circuits described in connection with the disclosure herein may include a general purpose processor, DSP, ASIC, FPGA or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or It may be implemented or performed in any combination of those designed to perform the functions described herein. A general purpose processor may be a microprocessor, but in the alternative, the processor may be any conventional processor, controller, microcontroller, or state machine. The processor may also be implemented as a combination of computing devices, eg, a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in connection with the DSP core, or any other such configuration.

펌웨어 및/또는 소프트웨어 구현에 있어서, 기법들은 랜덤 액세스 메모리 (random access memory; RAM), 판독 전용 메모리 (read-only memory; ROM), 불휘발성 RAM (non-volatile random access memory; NVRAM), PROM (programmable read-only memory), EPROM (erasable programmable read-only memory), EEPROM (electrically erasable PROM), 플래시 메모리, 컴팩트 디스크 (compact disc; CD), 자기 또는 광학 데이터 스토리지 디바이스 등과 같은 컴퓨터 판독가능 매체 상에 저장된 명령들로서 구현될 수도 있다. 명령들은 하나 이상의 프로세서들에 의해 실행가능할 수도 있고, 프로세서(들)로 하여금 본원에 설명된 기능의 특정 양태들을 수행하게 할 수도 있다.In firmware and/or software implementation, techniques include random access memory (RAM), read-only memory (ROM), non-volatile random access memory (NVRAM), PROM ( on a computer-readable medium such as programmable read-only memory), erasable programmable read-only memory (EPROM), electrically erasable PROM (EEPROM), flash memory, compact disc (CD), magnetic or optical data storage device, etc. It can also be implemented as stored instructions. The instructions may be executable by one or more processors, and may cause the processor(s) to perform certain aspects of the functionality described herein.

소프트웨어로 구현되면, 상기 기능들은 하나 이상의 명령들 또는 코드로서 컴퓨터 판독 가능한 매체 상에 저장되거나 또는 컴퓨터 판독 가능한 매체를 통해 전송될 수도 있다. 컴퓨터 판독가능 매체들은 한 장소에서 다른 장소로 컴퓨터 프로그램의 전송을 용이하게 하는 임의의 매체를 포함하여 컴퓨터 저장 매체들 및 통신 매체들 양자를 포함한다. 저장 매체들은 컴퓨터에 의해 액세스될 수 있는 임의의 이용 가능한 매체들일 수도 있다. 비제한적인 예로서, 이러한 컴퓨터 판독가능 매체는 RAM, ROM, EEPROM, CD-ROM 또는 다른 광학 디스크 스토리지, 자기 디스크 스토리지 또는 다른 자기 스토리지 디바이스들, 또는 소망의 프로그램 코드를 명령들 또는 데이터 구조들의 형태로 이송 또는 저장하기 위해 사용될 수 있으며 컴퓨터에 의해 액세스될 수 있는 임의의 다른 매체를 포함할 수 있다. 또한, 임의의 접속이 컴퓨터 판독가능 매체로 적절히 칭해진다.When implemented in software, the functions may be stored on a computer-readable medium as one or more instructions or codes or transmitted through a computer-readable medium. Computer-readable media includes both computer storage media and communication media, including any medium that facilitates transfer of a computer program from one place to another. Storage media may be any available media that can be accessed by a computer. By way of non-limiting example, such computer readable medium may contain RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or desired program code in the form of instructions or data structures. It may include any other media that may be used for transfer or storage to and accessible by a computer. Also, any connection is properly termed a computer-readable medium.

예를 들어, 소프트웨어가 동축 케이블, 광섬유 케이블, 연선, 디지털 가입자 회선 (DSL), 또는 적외선, 무선, 및 마이크로파와 같은 무선 기술들을 사용하여 웹사이트, 서버, 또는 다른 원격 소스로부터 전송되면, 동축 케이블, 광섬유 케이블, 연선, 디지털 가입자 회선, 또는 적외선, 무선, 및 마이크로파와 같은 무선 기술들은 매체의 정의 내에 포함된다. 본원에서 사용된 디스크 (disk) 와 디스크 (disc)는, CD, 레이저 디스크, 광 디스크, DVD (digital versatile disc), 플로피디스크, 및 블루레이 디스크를 포함하며, 여기서 디스크들 (disks) 은 보통 자기적으로 데이터를 재생하고, 반면 디스크들 (discs) 은 레이저를 이용하여 광학적으로 데이터를 재생한다. 위의 조합들도 컴퓨터 판독가능 매체들의 범위 내에 포함되어야 한다.For example, if the software is transmitted from a website, server, or other remote source using wireless technologies such as coaxial cable, fiber optic cable, twisted pair, digital subscriber line (DSL), or infrared, wireless, and microwave, coaxial cable , Fiber optic cable, twisted pair, digital subscriber line, or wireless technologies such as infrared, wireless, and microwave are included within the definition of the medium. As used herein, disks and disks include CDs, laser disks, optical disks, digital versatile discs (DVDs), floppy disks, and Blu-ray disks, where disks are usually magnetic It reproduces data optically, while discs reproduce data optically using a laser. Combinations of the above should also be included within the scope of computer-readable media.

소프트웨어 모듈은 RAM 메모리, 플래시 메모리, ROM 메모리, EPROM 메모리, EEPROM 메모리, 레지스터들, 하드 디스크, 이동식 디스크, CD-ROM, 또는 공지된 임의의 다른 형태의 저장 매체 내에 상주할 수도 있다. 예시적인 저장 매체는, 프로세서가 저장 매체로부터 정보를 판독하거나 저장 매체에 정보를 기록할 수 있도록, 프로세서에 커플링될 수 있다. 대안으로, 저장 매체는 프로세서에 통합될 수도 있다. 프로세서와 저장 매체는 ASIC 내에 존재할 수도 있다. ASIC은 유저 단말 내에 존재할 수도 있다. 대안으로, 프로세서와 저장 매체는 유저 단말에서 개별 컴포넌트들로서 존재할 수도 있다.The software module may reside in RAM memory, flash memory, ROM memory, EPROM memory, EEPROM memory, registers, hard disk, removable disk, CD-ROM, or any other type of storage medium known in the art. An exemplary storage medium may be coupled to the processor such that the processor can read information from or write information to the storage medium. Alternatively, the storage medium may be integrated into the processor. The processor and storage medium may also reside within the ASIC. The ASIC may exist in the user terminal. Alternatively, the processor and storage medium may exist as separate components in the user terminal.

본 개시의 앞선 설명은 당업자들이 본 개시를 행하거나 이용하는 것을 가능하게 하기 위해 제공된다. 본 개시의 다양한 수정예들이 당업자들에게 쉽게 자명할 것이고, 본원에 정의된 일반적인 원리들은 본 개시의 취지 또는 범위를 벗어나지 않으면서 다양한 변형예들에 적용될 수도 있다. 따라서, 본 개시는 본원에 설명된 예들에 제한되도록 의도된 것이 아니고, 본원에 개시된 원리들 및 신규한 특징들과 일관되는 최광의의 범위가 부여되도록 의도된다.The previous description of the present disclosure is provided to enable any person skilled in the art to make or use the present disclosure. Various modifications of the present disclosure will be readily apparent to those skilled in the art, and the general principles defined herein may be applied to various modifications without departing from the spirit or scope of the present disclosure. Accordingly, this disclosure is not intended to be limited to the examples described herein, but is to be accorded the widest scope consistent with the principles and novel features disclosed herein.

비록 예시적인 구현예들이 하나 이상의 독립형 컴퓨터 시스템의 맥락에서 현재 개시된 주제의 양태들을 활용하는 것을 언급할 수도 있으나, 본 주제는 그렇게 제한되지 않고, 오히려 네트워크나 분산 컴퓨팅 환경과 같은 임의의 컴퓨팅 환경과 연계하여 구현될 수도 있다. 또 나아가, 현재 개시된 주제의 양상들은 복수의 프로세싱 칩들이나 디바이스들에서 또는 그들에 걸쳐 구현될 수도 있고, 스토리지는 복수의 디바이스들에 걸쳐 유사하게 영향을 받게 될 수도 있다. 이러한 디바이스들은 PC들, 네트워크 서버들, 및 핸드헬드 디바이스들을 포함할 수도 있다.Although exemplary implementations may refer to utilizing aspects of the currently disclosed subject matter in the context of one or more standalone computer systems, the subject matter is not so limited, but rather is associated with any computing environment, such as a network or distributed computing environment. It can also be implemented. Furthermore, aspects of the presently disclosed subject matter may be implemented in or across multiple processing chips or devices, and storage may be similarly affected across multiple devices. Such devices may include PCs, network servers, and handheld devices.

비록 본 주제가 구조적 특징들 및/또는 방법론적 작용들에 특정한 언어로 설명되었으나, 첨부된 청구항들에서 정의된 주제가 위에서 설명된 특정 특징들 또는 작용들로 반드시 제한되는 것은 아님이 이해될 것이다. 오히려, 위에서 설명된 특정 특징들 및 작용들은 청구항들을 구현하는 예시적인 형태로서 설명된다.Although the subject matter has been described in language specific to structural features and/or methodological actions, it will be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or actions described above. Rather, the specific features and actions described above are described as an exemplary form of implementing the claims.

이 명세서에서 언급된 방법은 특정 실시예들을 통하여 설명되었지만, 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의해 읽혀 질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광데이터 저장장치 등이 있다. 또한, 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고, 실시예들을 구현하기 위한 기능적인(functional) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술분야의 프로그래머들에 의해 용이하게 추론될 수 있다.Although the method mentioned in this specification has been described through specific embodiments, it is possible to implement it as a computer-readable code on a computer-readable recording medium. The computer-readable recording medium includes all types of recording devices that store data that can be read by a computer system. Examples of computer-readable recording media include ROM, RAM, CD-ROM, magnetic tapes, floppy disks, and optical data storage devices. In addition, the computer-readable recording medium is distributed over a computer system connected through a network, so that computer-readable codes can be stored and executed in a distributed manner. In addition, functional programs, codes, and code segments for implementing the embodiments can be easily inferred by programmers in the technical field to which the present invention belongs.

본 명세서에서는 본 개시가 일부 실시예들과 관련하여 설명되었지만, 본 발명이 속하는 기술분야의 통상의 기술자가 이해할 수 있는 본 개시의 범위를 벗어나지 않는 범위에서 다양한 변형 및 변경이 이루어질 수 있다는 점을 알아야 할 것이다. 또한, 그러한 변형 및 변경은 본 명세서에 첨부된 특허청구의 범위 내에 속하는 것으로 생각되어야 한다.Although the present disclosure has been described in connection with some embodiments herein, it should be understood that various modifications and changes may be made without departing from the scope of the present disclosure that can be understood by those of ordinary skill in the art to which the present invention belongs. something to do. In addition, such modifications and changes should be considered to fall within the scope of the claims appended to this specification.

110: 블록체인 서버 112: 데이터베이스
120: 상태 리스너 130: 워커
140: 클라이언트
110: blockchain server 112: database
120: state listener 130: worker
140: client

Claims (11)

블록체인 기반의 서버레스 컴퓨팅 시스템에 있어서,
클라이언트로부터 수신되는 하나 이상의 트랜잭션에 따라 업데이트되는 복수의 블록 상태(state)를 포함하는 데이터베이스를 저장 및 관리하는 블록체인 서버;
상기 복수의 블록 상태의 변경 여부를 모니터링하는 상태 리스너; 및
상기 복수의 블록 상태의 변경에 따른 기능을 실행하는 워커;
를 포함하며,
상기 상태 리스너는 상기 블록 상태의 변경을 감지하여 상기 워커에게 상기 복수의 블록 상태의 변경에 따른 기능 실행을 통보하고, 상기 워커는 기능 실행 통보에 따라 상기 기능을 실행하는,
블록체인 기반의 서버레스 컴퓨팅 시스템.
In a blockchain-based serverless computing system,
Blockchain server for storing and managing a database including a plurality of block states updated according to one or more transactions received from a client;
A state listener for monitoring whether the state of the plurality of blocks is changed; And
A worker executing a function according to a change in the state of the plurality of blocks;
Including,
The state listener detects a change in the block state and notifies the worker of a function execution according to the change in the plurality of block states, and the worker executes the function according to the function execution notification,
Blockchain-based serverless computing system.
제1항에 있어서,
상기 블록체인 서버는, 상기 데이터베이스의 블록 상태가 변경될 수 있는 권한을 설정하고, 상기 블록 상태가 변경될 때 실행될 기능을 설정하는,
블록체인 기반의 서버레스 컴퓨팅 시스템.
The method of claim 1,
The blockchain server sets the authority to change the block state of the database, and sets a function to be executed when the block state changes,
Blockchain-based serverless computing system.
제1항에 있어서,
상기 트랜잭션은, 작업을 위한 타겟 노드 경로 값(key) 및 상태 업데이트의 목적 값(value)의 key-value 쌍을 포함하며,
상기 블록 상태는, 상기 트랜잭션의 key-value 쌍을 반영하는 트리 구조로 구성되는,
블록체인 기반의 서버레스 컴퓨팅 시스템.
The method of claim 1,
The transaction includes a key-value pair of a target node path value (key) for work and a target value (value) of state update,
The block state is configured in a tree structure reflecting the key-value pair of the transaction,
Blockchain-based serverless computing system.
제1항에 있어서,
상기 블록체인 서버는,
상기 복수의 블록 상태를, 복수의 서브트리를 포함하는 트리구조로 구성하며,
상기 복수의 블록 상태의 서브트리 각각에 대해 상이한 합의 규칙을 적용할 수 있는,
블록체인 기반의 서버레스 컴퓨팅 시스템.
The method of claim 1,
The blockchain server,
The plurality of block states are configured in a tree structure including a plurality of subtrees,
A different consensus rule can be applied to each of the subtrees of the plurality of block states,
Blockchain-based serverless computing system.
제4항에 있어서,
상기 복수의 블록 상태의 서브트리 각각에 대해 샤드를 적용하고,
상기 샤드는 상기 서브트리 각각을 블록체인 인스턴스에서 처리하는,
블록체인 기반의 서버레스 컴퓨팅 시스템.
The method of claim 4,
Apply a shard to each of the subtrees of the plurality of block states,
The shard processes each of the subtrees in a blockchain instance,
Blockchain-based serverless computing system.
제1항에 있어서,
상기 트랜잭션은 리드컨선을 포함하며,
상기 리드컨선은 상기 트랜잭션에 기초해서 상기 워커를 실행시키는 것을 포함하여 상기 트랜잭션이 활용되기에 적합한 시점을 나타내는,
블록체인 기반의 서버레스 컴퓨팅 시스템.
The method of claim 1,
The transaction includes a lead-con line,
The lead-con line indicates a time when the transaction is suitable to be utilized, including executing the worker based on the transaction,
Blockchain-based serverless computing system.
제1항에 있어서,
상기 블록체인 서버는, 상기 트랜잭션이 블록으로 생성되기 전에 상기 트랜잭션을 저장하는 트랜잭션 풀을 더 포함하며,
상기 시스템은,
상기 트랜잭션 풀에 상기 트랜잭션을 저장하기 전에 상기 트랜잭션을 검증하여 상기 블록 상태에 반영하는 제1 노드; 및
상기 트랜잭션 풀에 저장된 상기 트랜잭션의 유효성 검증을 실행하여 상기 트랜잭션을 포함하는 블록을 생성하는 제2 노드;
를 더 포함하는,
블록체인 기반의 서버레스 컴퓨팅 시스템.
The method of claim 1,
The blockchain server further includes a transaction pool for storing the transaction before the transaction is created as a block,
The system,
A first node verifying the transaction before storing the transaction in the transaction pool and reflecting it in the block state; And
A second node for generating a block including the transaction by performing validation of the transaction stored in the transaction pool;
Further comprising,
Blockchain-based serverless computing system.
블록체인 기반의 서버레스 컴퓨팅 방법에 있어서,
블록체인 서버에 의해, 클라이언트로부터 하나 이상의 트랜잭션이 수신되면, 상기 트랜잭션에 따라 데이터베이스의 블록 상태를 업데이트하는 단계;
상태 리스너에 의해, 상기 블록 상태의 변경 여부를 모니터링하는 단계;
상기 상태 리스너에 의해, 상기 블록 상태의 변경을 감지하면, 워커에게 상기 블록체인 상태의 변경에 따른 기능 실행을 통보하는 단계; 및
상기 워커에 의해, 상기 워커가 상기 기능을 실행한 결과를 나타내는 트랜잭션을 블록체인 네트워크에 전송하는 단계
를 포함하는, 방법.
In the blockchain-based serverless computing method,
When one or more transactions are received from a client by the blockchain server, updating a block state of the database according to the transaction;
Monitoring whether the block state is changed by a state listener;
When the state listener detects a change in the block state, notifying a worker of a function execution according to the change in the block chain state; And
Transmitting, by the worker, a transaction indicating the result of executing the function by the worker to the blockchain network
Containing, the method.
제8항에 있어서,
상기 블록체인 서버에 의해, 상기 데이터베이스의 블록 상태가 변경될 수 있는 권한을 설정하고, 상기 블록 상태가 변경될 때 실행될 기능을 설정하는 단계를 더 포함하는, 방법.
The method of claim 8,
The method further comprising the step of setting, by the blockchain server, a permission to change the block state of the database, and setting a function to be executed when the block state is changed.
제 8항에 있어서,
상기 블록체인 서버에 의해, 상기 클라이언트로부터 하나 이상의 트랜잭션이 수신되면, 상기 트랜잭션에 따라 상기 데이터베이스의 블록 상태를 업데이트하는 단계는,
상기 트랜잭션이 블록으로 생성되기 전에 상기 트랜잭션을 트랜잭션 풀에 추가하는 단계;
제1 노드에 의해, 상기 트랜잭션이 상기 트랜잭션 풀에 저장되기 전에, 상기 트랜잭션을 검증하여 상기 블록 상태에 반영하는 단계;
제2 노드에 의해, 상기 트랜잭션 풀에 저장된 상기 트랜잭션의 유효성 검증을 실행하여 상기 트랜잭션을 포함하는 블록을 생성하는 단계; 및
블록체인 네트워크의 일관성(consistency)이 유지되도록, 상기 제2 노드에 의해 생성된 상기 블록이 상기 제1 노드의 블록 상태에 적용되는 단계
를 포함하는, 방법.
The method of claim 8,
When one or more transactions are received from the client by the blockchain server, updating the block state of the database according to the transaction,
Adding the transaction to a transaction pool before the transaction is created as a block;
Verifying the transaction and reflecting it in the block state before the transaction is stored in the transaction pool, by a first node;
Generating, by a second node, a block including the transaction by performing validation of the transaction stored in the transaction pool; And
Applying the block generated by the second node to the block state of the first node so that the consistency of the blockchain network is maintained.
Containing, the method.
컴퓨팅 장치의 하나 이상의 프로세서에 의해 실행되도록 구성되는 하나 이상의 프로그램을 저장하는 컴퓨터 판독가능 저장매체로서,
상기 하나 이상의 프로그램은, 제8항 내지 제10항 중 어느 한 항의 방법을 수행하기 위한 명령어들을 포함하는, 컴퓨터 판독가능 저장매체.
A computer-readable storage medium storing one or more programs configured to be executed by one or more processors of a computing device, comprising:
The one or more programs, comprising instructions for performing the method of any one of claims 8 to 10, a computer-readable storage medium.
KR1020190110550A 2019-09-06 2019-09-06 System and method for serverless computing based on blockchain KR102258936B1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020190110550A KR102258936B1 (en) 2019-09-06 2019-09-06 System and method for serverless computing based on blockchain
US17/012,925 US20210089422A1 (en) 2019-09-06 2020-09-04 System and method for serverless computing based on blockchain

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190110550A KR102258936B1 (en) 2019-09-06 2019-09-06 System and method for serverless computing based on blockchain

Publications (2)

Publication Number Publication Date
KR20210029865A true KR20210029865A (en) 2021-03-17
KR102258936B1 KR102258936B1 (en) 2021-06-02

Family

ID=75243408

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190110550A KR102258936B1 (en) 2019-09-06 2019-09-06 System and method for serverless computing based on blockchain

Country Status (1)

Country Link
KR (1) KR102258936B1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230004295A (en) * 2021-06-30 2023-01-06 주식회사 아티프렌즈 Method of data split storage method through the participation of storage nodes
KR102549385B1 (en) * 2022-11-03 2023-06-29 주식회사 커먼컴퓨터 Method and system for providing data access control

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017109140A1 (en) * 2015-12-22 2017-06-29 Bigchaindb Gmbh Decentralized, tamper-resistant, asset-oriented database system and method of recording a transaction
KR20180074655A (en) * 2015-07-09 2018-07-03 리퀴드 마켓스 그룹 인크. Systems and methods for trading, authorizing and settlement of securities transactions using block-chain technology
KR101882805B1 (en) * 2017-04-17 2018-07-27 주식회사 코인플러그 Method for blockchain based management of documents in use of merkle tree structure on the basis of unspent transaction output protocol and document management server using the same
KR20190001546A (en) * 2017-06-26 2019-01-04 마이오메가 시스템즈 게엠베하 Using blockchain to track information for devices on a network
KR20190100177A (en) * 2016-12-30 2019-08-28 인텔 코포레이션 Naming and Blockchain Records for the Internet of Things

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180074655A (en) * 2015-07-09 2018-07-03 리퀴드 마켓스 그룹 인크. Systems and methods for trading, authorizing and settlement of securities transactions using block-chain technology
WO2017109140A1 (en) * 2015-12-22 2017-06-29 Bigchaindb Gmbh Decentralized, tamper-resistant, asset-oriented database system and method of recording a transaction
KR20190100177A (en) * 2016-12-30 2019-08-28 인텔 코포레이션 Naming and Blockchain Records for the Internet of Things
KR101882805B1 (en) * 2017-04-17 2018-07-27 주식회사 코인플러그 Method for blockchain based management of documents in use of merkle tree structure on the basis of unspent transaction output protocol and document management server using the same
KR20190001546A (en) * 2017-06-26 2019-01-04 마이오메가 시스템즈 게엠베하 Using blockchain to track information for devices on a network

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Sebastien Forestier et al, "Blockclique: Scaling Blockchains through Transaction Sharding in a Multithreaded Block Graph"(2019.06.) *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230004295A (en) * 2021-06-30 2023-01-06 주식회사 아티프렌즈 Method of data split storage method through the participation of storage nodes
KR102549385B1 (en) * 2022-11-03 2023-06-29 주식회사 커먼컴퓨터 Method and system for providing data access control

Also Published As

Publication number Publication date
KR102258936B1 (en) 2021-06-02

Similar Documents

Publication Publication Date Title
US20210089422A1 (en) System and method for serverless computing based on blockchain
JP6638024B2 (en) System, smart contract life cycle management method, and non-transitory computer readable medium
TWI816781B (en) Partitioning a blockchain network
CN110915166B (en) Block chain
US11030686B2 (en) Secure system
US10120703B2 (en) Executing commands within virtual machine instances
JP2020024733A (en) Dynamic configuration of data volumes
TWI387284B (en) Method and system for credit-based peer-to-peer storage, and computer storage medium for recording related instructions thereon
US20200241929A1 (en) Distributed ledger for monitoring quality of services provided by cloud service providers
US20180137306A1 (en) Container update system
WO2020136641A1 (en) Systems and method for managing memory resources used by smart contracts of a blockchain
JP2021507407A (en) Methods, equipment and computer programs for managing the blockchain lifecycle
WO2018111295A1 (en) Blockchain monitoring and management
JP2016511490A5 (en)
JP2016511490A (en) Automatic adjustment of virtual data center resource usage policy
US9270703B1 (en) Enhanced control-plane security for network-accessible services
US11244311B2 (en) Decentralized smart resource sharing between different resource providers
US11397919B1 (en) Electronic agreement data management architecture with blockchain distributed ledger
US20120331125A1 (en) Resource Use Management System
KR102258936B1 (en) System and method for serverless computing based on blockchain
US11645385B2 (en) Counteracting fraudulent clock readings and side-channel attacks
GB2492204A (en) Managing events generated from business objects such as purchase orders, schedules job plans and inventory reservations
US20230054904A1 (en) Layered-Infrastructure Blockchain-Based System for Software License Distribution
WO2022111658A1 (en) Slice service processing method and apparatus
JP7455197B2 (en) Mutation event detection for integrity monitoring

Legal Events

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