KR102258936B1 - System and method for serverless computing based on blockchain - Google Patents
System and method for serverless computing based on blockchain Download PDFInfo
- Publication number
- KR102258936B1 KR102258936B1 KR1020190110550A KR20190110550A KR102258936B1 KR 102258936 B1 KR102258936 B1 KR 102258936B1 KR 1020190110550 A KR1020190110550 A KR 1020190110550A KR 20190110550 A KR20190110550 A KR 20190110550A KR 102258936 B1 KR102258936 B1 KR 102258936B1
- Authority
- KR
- South Korea
- Prior art keywords
- transaction
- block
- state
- blockchain
- worker
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key 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/083—Key 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/0833—Key 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/0836—Key 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
-
- H04L2209/38—
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
본 개시는, 블록체인 기반의 서버레스 컴퓨팅 시스템이 제공된다. 이 시스템은, 클라이언트로부터 수신되는 하나 이상의 트랜잭션에 따라 업데이트되는 복수의 블록 상태(state)를 포함하는 데이터베이스를 저장 및 관리하는 블록체인 서버, 복수의 블록 상태의 변경 여부를 모니터링하는 상태 리스너 및 복수의 블록 상태의 변경에 따른 기능을 실행하는 워커를 포함하며, 상태 리스너는 블록 상태의 변경을 감지하여 워커에게 블록 상태 변경에 따른 기능 실행을 통보하고, 워커는 상기 기능 실행 통보에 따라 상기 기능을 실행한다. 또한 워커에 의한 기능의 실행 결과를 나타내는 트랜잭션은 블록체인 네트워크에 기록될 수 있다.The present disclosure provides a serverless computing system based on a blockchain. The system includes a blockchain server that stores and manages a database including a plurality of block states updated according to one or more transactions received from a client, a state listener that monitors whether the state of a plurality of blocks is changed, and a plurality of a worker executing a function according to a change in the block state, wherein the state listener detects the change in the block state and notifies the worker to execute the function according to the change in the block state, and the worker executes the function according to the function execution notification do. In addition, a transaction representing the execution result of a function by a worker can be recorded in the blockchain network.
Description
본 발명은 블록체인 기반 서버레스 컴퓨팅 시스템 및 방법에 관한 것으로, 더 구체적으로는, 블록체인 데이터베이스의 블록 상태 값을 설정 또는 업데이트하여 오프체인 상태의 보안 실행환경을 갖는 워커에 의해 작업을 시작 및 실행하도록 구성함으로써, 하나 이상의 작업의 병렬 처리가 가능한 시스템 및 방법에 관한 것이다.The present invention relates to a blockchain-based serverless computing system and method, and more specifically, by setting or updating a block state value of a blockchain database, starting and executing a job by a worker having an off-chain state secure execution environment By configuring to do so, it relates to a system and method capable of parallel processing of one or more tasks.
일반적으로 블록체인(blockchain) 기술은, 네트워크 통신 상에서 이루어지는 트랜잭션의 내용을 신뢰성 있고 안전한 방법으로 기록하고 저장하는 기술이다. 블록체인 네트워크는, 디지털화된 자산이나 트랜잭션의 교환이 가능한 분산 환경의 시스템으로, 공유된 장부(ledger)를 이용하여 P2P(peer-to-peer) 네트워크에서 발생되는 전자적 거래 또는 작업 내역의 이력을 기록한다. 블록체인 네트워크는 탈중앙화된 또는 분산된 합의 프로토콜(decentralized consensus mechanism)을 이용하기 때문에, 제3자에 의한 트랜잭션의 위변조가 사실상 불가능하게 되어, 트랜잭션의 신뢰성과 투명성을 보장할 수 있다.In general, the blockchain technology is a technology for recording and storing the contents of a transaction made over a network communication in a reliable and secure way. A blockchain network is a system in a distributed environment that allows the exchange of digitized assets or transactions, and records the history of electronic transactions or work history generated in a peer-to-peer (P2P) network using a shared ledger. do. Since the blockchain network uses a decentralized or decentralized consensus mechanism, it is virtually impossible to forge or falsify a transaction by a third party, thereby guaranteeing the reliability and transparency of the transaction.
예를 들어, 퍼블릭 블록체인의 한 형태인 이더리움(Ethereum)을 이용하는 경우, 블록체인의 참여 노드들이 코드의 실행을 검증함으로써 데이터 보안 및 신뢰성이 보장될 수 있다. 그러나, 현재 이더리움의 합의 절차의 속도는 15 TPS(transactions per second)에 머무르고 있는데, 이는 전세계적으로 배포된 애플리케이션들의 연산을 처리하기에 충분하지 않다. 또한, 구조적으로 상태성(statefulness), 권한비제한성(trustlessness), 및 연산의 순차성(serialized operation)의 특성을 갖기 때문에, 이더리움의 확장성이 상당히 제한될 수 있다.For example, when using Ethereum, which is a form of public blockchain, data security and reliability can be ensured by verifying the execution of code by participating nodes of the blockchain. However, at present, the speed of Ethereum's consensus process is only 15 TPS (transactions per second), which is not sufficient to handle the computation of applications deployed worldwide. In addition, since it structurally has the characteristics of statefulness, trustlessness, and serialized operation, the scalability of Ethereum can be significantly limited.
최근에, 애플리케이션의 확장성을 증가시키기 위해 비상태성(stateless), 권한제한성(permissioned), 및 연산의 병렬성(concurrent operation)의 특성을 갖는 서버레스 컴퓨팅(Serverless Computing) 기술이 사용되고 있다. 서버레스 컴퓨팅은, 어플리케이션의 실행에 필요한 컴퓨팅 자원의 고려와 관계없이 어플리케이션 개발이 가능한 이벤트 기반의 클라우드 컴퓨팅 기술을 의미한다. 서버레스 컴퓨팅 시스템에서는, 클라우드 서비스 제공자 또는 분산된 자원 제공자가 동적으로 머신 자원을 할당하고, 어플리케이션 개발자가 제공한 코드를 할당된 머신 자원을 통해 실행한다. 이와 같은 서버레스 컴퓨팅 환경에서는 인프라 운영 및 유지관리에 소요되는 비용이 절감될 수 있고, 서비스 이용자는 서비스 네트워크에 용이하게 접근이 가능하며, 클라우드 서비스에서 제공하는 데이터 저장 및 다양한 기능을 통해 코드 실행에 필요한 시간과 비용을 효율적으로 관리할 수 있다.Recently, in order to increase the scalability of an application, a serverless computing technology having characteristics of stateless, permissioned, and parallel operation of operations 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 for application execution. In a serverless computing system, a cloud service provider or a distributed resource provider dynamically allocates machine resources, and a code provided by an application developer is executed through the allocated machine resources. In such a serverless computing environment, the cost of infrastructure operation and maintenance can be reduced, service users can easily access the service network, and data storage and various functions provided by the cloud service are used for code execution. You can manage the required time and money efficiently.
종래의 블록체인 기반 컴퓨팅 시스템은 하나의 프로그래밍 언어와, 해당 프로그래밍 언어로 작성된 애플리케이션을 실행하는 하나의 가상머신(virtual machine)만을 지원하며, 블록체인에 참여하는 모든 노드는 동일한 트랜잭션을 실행한다. 이로 인해, 전체 시스템의 운영 비용이 증가하고, 오직 내부 상태 데이터베이스에 대해서만 상호작용이 일어나기 때문에 외부 데이터베이스 및 API(application programming interface) 호출이 불가능한 문제점이 있다.The conventional blockchain-based computing system supports only one programming language and one virtual machine running an application written in the programming language, and all nodes participating in the blockchain execute the same transaction. Due to this, the operating cost of the entire system increases, and since interaction occurs only with the internal state database, there is a problem in that it is impossible to call an external database and an application programming interface (API).
상기 문제점을 해결하기 위해 본 개시의 일 실시예에 따르면, 블록체인 기반의 통신, 저장소 및 실행(또는 계산)이 분리된 구조를 이용하여 상이한 유형의 런타임 실행 환경 상에서 다양한 프로그래밍 언어를 실행할 수 있는 블록체인 기반의 서버레스 컴퓨팅 시스템을 제공한다.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 block chain-based communication, storage, and execution (or computation) 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 the blockchain database to start a job, and each resource provider for this job records the result in a specified path, one or more jobs It provides a blockchain-based serverless computing system capable of parallel processing of
또한, 본 개시의 일 실시예에 따르면, 블록체인 데이터베이스의 블록 상태를 트리(Tree) 구조로 구성하여, 각 분할된 하위 트리에 대해 상이한 합의 규칙을 정의할 수 있으며, 각 하위 트리에 대해 소규모 블록체인을 유지관리 할 수 있는 블록체인 기반의 서버레스 컴퓨팅 시스템을 제공한다. In addition, according to an embodiment of the present disclosure, by configuring the block state of the block chain database in a tree structure, different consensus rules can be defined for each divided subtree, and a small block for each subtree It provides a blockchain-based serverless computing system that can maintain the chain.
본 개시는, 블록체인 기반의 서버레스 컴퓨팅 시스템이 제공된다. 이 시스템은, 클라이언트로부터 수신되는 하나 이상의 트랜잭션에 따라 업데이트되는 복수의 블록 상태(state)를 포함하는 데이터베이스를 저장 및 관리하는 블록체인 서버, 복수의 블록 상태의 변경 여부를 모니터링하는 상태 리스너 및 복수의 블록 상태의 변경에 따른 기능을 실행하는 워커를 포함하며, 상태 리스너는 블록 상태의 변경을 감지하여 워커에게 블록 상태 변경에 따른 기능 실행을 통보하고, 워커는 상기 기능 실행 통보에 따라 상기 기능을 실행한다.The present disclosure provides a serverless computing system based on a blockchain. The system includes a blockchain server that stores and manages a database including a plurality of block states updated according to one or more transactions received from a client, a state listener that monitors whether the state of a plurality of blocks is changed, and a plurality of a worker executing a function according to a change in the block state, wherein the state listener detects the change in the block state and notifies the worker to execute the function according to the change in the block state, and the worker executes the function according to the function execution notification do.
일 실시예에 따르면, 블록체인 서버는, 데이터베이스의 블록 상태가 변경될 수 있는 권한을 설정하고, 블록 상태가 변경될 때 실행될 기능을 설정한다.According to one 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 is changed.
일 실시예에 따르면, 트랜잭션은, 작업을 위한 타겟 노드 경로 값(key) 및 상태 업데이트의 목적 값(value)의 key-value 쌍을 포함하며, 블록 상태는, 트랜잭션의 key-value 쌍을 반영하는 트리 구조로 구성된다.According to an embodiment, a transaction includes a key-value pair of a target node path value for an operation (key) and a target value of a state update (value), and the block state reflects the key-value pair of the transaction It consists of a tree structure.
일 실시예에 따르면, 블록체인 서버는, 복수의 블록 상태를, 복수의 서브트리를 포함하는 트리구조로 구성하며, 복수의 블록 상태의 서브트리 각각에 대해 상이한 합의 규칙을 적용할 수 있다.According to an embodiment, the blockchain server may configure a plurality of block states into a tree structure including a plurality of subtrees, and apply different consensus rules to each subtree of the plurality of block states.
일 실시예에 따르면, 복수의 블록 상태의 서브트리 각각에 대해 샤드를 적용하고, 샤드는 서브트리 각각을 블록체인 인스턴스에서 처리한다.According to an embodiment, a shard is applied to each subtree of a plurality of block states, and the shard processes each subtree in a blockchain instance.
일 실시예에 따르면, 트랜잭션은 리드컨선을 포함하며, 리드컨선은 트랜잭션에 기초해서 워커를 실행시키는 것을 포함하여 해당 트랜잭션이 활용되기에 적합한 시점을 나타낸다. 예를 들어, 리드컨선이 0으로 설정되면, 트랜잭션에 기초한 블록 생성이 실행되지 않은 상태에서도 트랜잭션의 데이터를 참조해도 좋다는 것을 나타내며, 리드컨선이 1으로 설정되면, 해당 트랜잭션에 기초한 블록 생성이 최소한 1회 실행된 후에 해당 데이터를 참조할 수 있다는 것을 나타낸다.According to an embodiment, a transaction includes a lead control, and the lead control indicates a suitable time for the transaction to be utilized, including executing a worker based on the transaction. For example, if the lead control is set to 0, it indicates that it is okay to refer to the data of the transaction even when block generation based on the transaction is not executed. If the lead control 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 executed.
일 실시예에 따르면, 블록체인 서버는, 트랜잭션이 블록으로 생성되기 전에 트랜잭션을 저장하는 트랜잭션 풀을 더 포함하며, 시스템은, 트랜잭션 풀에 트랜잭션을 저장하기 전에 트랜잭션을 검증하여 블록 상태에 반영하는 제1 노드; 및 트랜잭션 풀에 저장된 트랜잭션의 유효성 검증을 실행하여 트랜잭션을 포함하는 블록을 생성하는 제2 노드를 더 포함한다.According to an embodiment, the blockchain server further includes a transaction pool that stores a 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 that generates a block including the transaction by executing 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 and block generation for the transaction are completed by the second node.
본 개시의 다른 실시예에 따르면, 블록체인 기반의 서버레스 컴퓨팅 방법에 제공된다. 이 방법은, 블록체인 서버에 의해, 클라이언트로부터 하나 이상의 트랜잭션이 수신되면, 트랜잭션에 따라 데이터베이스의 블록 상태를 업데이트하는 단계; 상태 리스너에 의해, 블록 상태의 변경 여부를 모니터링하는 단계; 상태 리스너에 의해, 블록 상태의 변경을 감지하면, 워커에게 블록체인 상태의 변경에 따른 기능 실행을 통보하는 단계; 및 상기 워커에 의해, 상기 워커가 상기 기능을 실행한 결과를 나타내는 트랜잭션을 블록체인 네트워크에 전송하는 단계를 포함한다.According to another embodiment of the present disclosure, a blockchain-based serverless computing method is provided. The method includes, by a blockchain server, when one or more transactions are received from a client, updating a block state of a database according to the transactions; monitoring, by a state listener, whether a block state is changed; when a change in the block state is detected by the state listener, notifying the worker to execute a function according to the change in the state of the block chain; and transmitting, by the worker, a transaction representing a result of the worker executing the function to the blockchain network.
일 실시예에 따르면, 블록체인 기반의 서버레스 컴퓨팅 방법은, 데이터베이스의 블록 상태가 변경될 수 있는 권한을 설정하고, 블록 상태가 변경될 때 실행될 기능을 설정하는 단계를 더 포함할 수 있다.According to an embodiment, the block chain-based serverless computing method may further include setting the authority to change the block state of the database, and setting a function to be executed when the block state is changed.
일 실시예에 따르면, 블록체인 서버에 의해, 클라이언트로부터 하나 이상의 트랜잭션이 수신되면, 트랜잭션에 따라 데이터베이스의 블록 상태를 업데이트하는 단계는, 트랜잭션이 블록으로 생성되기 전에 트랜잭션을 트랜잭션 풀에 추가하는 단계; 제1 노드에 의해, 트랜잭션이 트랜잭션 풀에 저장되기 전에, 트랜잭션을 검증하여 블록 상태에 반영하는 단계; 제2 노드에 의해, 트랜잭션 풀에 저장된 트랜잭션의 유효성 검증을 실행하여 트랜잭션을 포함하는 블록을 생성하는 단계; 및 블록체인 네트워크의 일관성(consistency)이 유지되도록, 상기 제2 노드에 의해 생성된 상기 블록이 상기 제1 노드의 블록 상태에 적용되는 단계를 포함한다.According to one embodiment, when one or more transactions are received by the blockchain server from the client, updating the block state of the database according to the transaction includes: adding the transaction to the transaction pool before the transaction is created as a block; Before the transaction is stored in the transaction pool, by the first node, verifying the transaction and reflecting it in the block state; generating, by the second node, a block including the transaction by executing 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, there is provided a computer-readable storage medium storing one or more programs configured to be executed by one or more processors of a computing device. The one or more programs include 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 blockchain-based serverless computing system, various programming languages can be supported on different runtime execution environments, and system operating costs can be reduced. can
또한, 본 개시의 실시예들에 따르면, 블록체인 기반의 서버레스 컴퓨팅 시스템에서 블록체인 데이터베이스의 블록 상태를 설정하여 작업을 시작 및 실행함으로써 하나 이상의 작업의 병렬 처리가 가능해져 시스템 성능이 증가할 수 있다.In addition, according to embodiments of the present disclosure, parallel processing of one or more tasks is possible by setting the block state of the blockchain database to start and execute tasks in a blockchain-based serverless computing system, thereby increasing system performance. have.
또한, 본 개시의 실시예들에 따르면, 블록체인 데이터베이스의 블록 상태들을 트리(Tree) 구조로 구성하여, 각 분할된 하위 트리마다 상이한 합의 규칙을 정의하고 소규모 블록체인을 유지관리 함으로써, 시스템에서 실행되는 애플리케이션의 다양한 요구사항(예를 들어, 확장성, 보안성, 분산성 등)에 맞도록 합의 규칙을 설정할 수 있다.In addition, according to embodiments of the present disclosure, by configuring the block states of the block chain database in a tree structure, defining different consensus rules for each divided subtree, and maintaining a small block chain, execution in the system Consensus rules can be set to suit the various requirements of the application being used (eg, scalability, security, decentralization, etc.).
도 1은 본 개시의 일 실시예에 따른 블록체인 기반의 서버레스 컴퓨팅 시스템의 구성을 나타내는 도면이다.
도 2는 본 개시의 일 실시예에 따른 블록체인 기반의 서버레스 컴퓨팅 시스템에서 블록체인 상태의 변경이 트리거 역할을 하여 트랜잭션 생성과 작업 실행의 연쇄반응을 일으키는 과정을 설명하는 도면이다.
도 3은 본 개시의 일 실시예에 따른 블록체인 기반의 서버레스 컴퓨팅 시스템에서 트랜잭션 및 블록의 생성 과정을 나타내는 도면이다.
도 4는 본 개시의 일 실시예에 따른 리드컨선에 따른 블록체인 데이터베이스의 상태 변화를 나타내는 도면이다.
도 5는 본 개시의 일 실시예에 따른 블록체인 데이터베이스에서 하위 블록체인을 통한 샤딩 과정을 나타내는 도면이다.
도 6은 본 개시의 일 실시예에 따른 블록체인 기반의 서버레스 컴퓨팅의 프로세스를 나타내는 흐름도이다.
도 7은 본 개시의 일 실시예에 따른 트랜잭션 실행 및 블록 생성 프로세스를 나타내는 흐름도이다. 1 is a diagram illustrating the configuration of a block chain-based serverless computing system according to an embodiment of the present disclosure.
2 is a diagram illustrating a process in which a change in a block chain state acts as a trigger in a block chain-based serverless computing system according to an embodiment of the present disclosure to cause a chain reaction of transaction creation and job execution.
3 is a diagram illustrating a process of generating a transaction and a block in a blockchain-based serverless computing system 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 control 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 blockchain according to an embodiment of the present disclosure.
7 is a flowchart illustrating a transaction execution and block generation process according to an embodiment of the present disclosure.
이하, 본 개시의 실시를 위한 구체적인 내용을 첨부된 도면을 참조하여 상세히 설명한다. 다만, 이하의 설명에서는 본 개시의 요지를 불필요하게 흐릴 우려가 있는 경우, 널리 알려진 기능이나 구성에 관한 구체적 설명은 생략하기로 한다. Hereinafter, specific contents for carrying out the present disclosure will be described in detail with reference to the accompanying drawings. However, in the following description, if there is a risk of unnecessarily obscuring the subject matter of the present disclosure, detailed descriptions of well-known functions or configurations will be omitted.
첨부된 도면에서, 동일하거나 대응하는 구성요소에는 동일한 참조부호가 부여되어 있다. 또한, 이하의 실시예들의 설명에 있어서, 동일하거나 대응하는 구성요소를 중복하여 기술하는 것이 생략될 수 있다. 그러나 구성요소에 관한 기술이 생략되어도, 그러한 구성요소가 어떤 실시예에 포함되지 않는 것으로 의도되지는 않는다. In the accompanying drawings, identical or corresponding components are assigned the same reference numerals. In addition, in the description of the embodiments below, overlapping description of the same or corresponding components may be omitted. However, even if descriptions regarding components are omitted, it is not intended that such components are 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" is used in conventional server-based computing, where users prepare a server to execute a specific task, and install an operating system and other necessary drivers and software. Unlike the prepared environment, it may refer to a computing environment or system in which a user does not need to manage a server or set its calculation and storage capacity. As will be described in detail with reference to various embodiments below, in a serverless computing system, 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 the managed environment of a worker (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, by calculating the nonce value of the block to validate the transaction. A consensus algorithm that proves On the other hand, the terms "PoS (Proof-of-Stake)" or "Proof of Stake" can refer to a consensus algorithm that gives decision-making authority in proportion to the stake of cryptocurrency or computing resource each node owns. For example, in a blockchain network that uses a PoS consensus algorithm, nodes holding assets such as cryptocurrency can contribute to the creation of the block by proving their stake in the block they agree on. In a PoW-based blockchain, the process of verifying block validity is called “mining”, whereas 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 block chain-based serverless computing system according to an embodiment of the present disclosure, unlike the existing block chain system that includes all components of a smart contract in a block chain network, stores the system components, It operates by dividing it into communication processing network and computational components. The blockchain-based serverless computing system according to this embodiment serves to record the communication between components in the order of occurrence, and the computational task is performed off-chain in a secure runtime environment (SRE). chain) to be executed in the state. In this system, the storage can act as an adapter for aggregating 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, in a blockchain-based serverless computing system, the smart contract operation is recorded as a state, and unlike the existing blockchain system (e.g. Ethereum), where the execution cannot be executed in parallel, the execution of the task It is stateless and asynchronous. That is, 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. All tasks can be processed in parallel as long as there is no attempt to duplicate and change the value of a specific path in the blockchain database.
또한, 일 실시예에 따르면, 블록체인 기반의 서버레스 컴퓨팅 시스템은, 데이터베이스 상태(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 and configuring the database into multiple sub-trees in this way, each divided sub-tree defines its own consensus algorithm, except for the genesis rule (eg, PoS rule) of the blockchain network, A small-scale 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 application execution. In this system, the application can be executed as follows. First, when a client (or dApp: decentralized application) sends a transaction to the blockchain, the block state of the blockchain node is changed by the data of the transaction (for example, path-value pairs). updated. On the other hand, the block state listener monitors the blockchain path, detects the state updated by the transaction, and sends an event to the worker. The worker receiving the event may execute a task or function associated with 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 illustrating the configuration of a block chain-based serverless computing system according to an embodiment of the present disclosure. The block chain-based
도시된 바와 같이, 블록체인 서버(또는 노드)(110)는 복수의 블록 상태를 포함하는 데이터베이스(112)를 포함할 수 있다. 일 실시예에서, 데이터베이스(112)에 저장된 각 블록 상태는, 각 퍼블릭 키(public key)의 밸런스(balance)와 키-값(key-value) 데이터베이스를 포함할 수 있다. 블록 상태는 마스터 상태(master state)와 규칙 상태(rule state)의 2가지 유형 중 어느 하나일 수 있다. 마스터 상태는 블록체인 네트워크의 모든 참여 노드들에 의해 업데이트되는 실제 데이터를 저장할 수 있다. 또한, 규칙 상태는, 키에 해당하는 데이터 값을 변경하기 위한 접근 권한을 결정하는 규칙을 포함할 수 있다. As shown, the blockchain server (or node) 110 may include a
또한, 데이터베이스(112)는 트리 구조로 구성될 수 있다. 트리 구조로 구성된 데이터베이스(112)는 샤딩(Sharding) 기술을 적용하여 트리의 하위 집합(또는 서브트리)을 샤드(Shard)로 유지 관리할 수 있다. 본 개시에 있어서 "샤딩"은 전체 블록체인 네트워크를 분할한 뒤 트잰잭션들을 영역별로 저장하고 이를 병렬적으로 처리하여 블록체인에 확장성을 제공하는 온체인(on-chain) 솔루션을 의미할 수 있다. 샤드로 관리되는 서브트리 각각은 별도의 작은 블록체인 인스턴스에서 처리되므로, 블록체인의 총 처리량이 크게 증가하는 효과를 가질 수 있다. 일 실시예에서, 데이터베이스(112)의 각 서브트리에 대해 상이한 PoS 합의 알고리즘이 적용되도록 설정될 수 있다.Also, the
상태 리스너(120)는 데이터베이스(112)에 저장된 블록체인 블록 상태의 변경 여부를 모니터링할 수 있다. 일 실시예에서, 상태 리스너(120)는, 워커(130)가 새로운 작업을 실행하도록 설정된 후 워커(130)에 의해 생성 또는 실행되는 모듈로서 워커(130) 내에 등록되어 설치되거나 블록체인 서버(110)에 등록되어 설치될 수 있다. The
블록체인 서버(110)는, 데이터베이스(112)의 블록 상태가 변경될 수 있는 권한을 설정하고, 하나 이상의 클라이언트(또는 dApp)(140)으로부터 트랜잭션이 수신되어 블록 상태가 변경될 때 실행될 기능을 설정할 수 있다. 또한, 블록체인 서버(110)는, 하나 이상의 클라이언트(또는 dApp)(140)로부터 트랜잭션을 수신하면, 트랜잭션에 따라 블록체인 블록 상태를 변경할 수 있으며, 상태 리스너(120)는 블록체인 서버(110)를 모니터링하여 블록 상태의 변경을 감지할 수 있다. 상태 리스너(120)가 블록 상태의 변경을 감지하면, 워커(130)에게 블록 상태의 변경에 따른 기능 실행을 통보할 수 있다. 일 실시예에서, 워커(130)는 블록 상태의 변경에 따른 기능을 실행한 결과로서 또 다른 트랜잭션을 생성할 수 있다. 이 경우, 워커(130)는 새로이 생성한 트랜잭션을 블록체인 서버(110)로 전송하여 블록 상태에 업데이트할 수 있다. 이와 같은 블록체인 서버(110)에서 블록 상태의 업데이트는, 추가적인 작업의 실행으로 이어지는 연쇄반응을 일으킬 수 있다. 즉, 워커에 의해 생성된 트랜잭션이 블록체인 서버(110)로 전송되어 블록 상태가 업데이트되면, 상태 리스너(120)는 그 상태 업데이트를 감지하여 워커(130) 또는 또 다른 워커에게 관련 작업 실행을 통지할 수 있다.The
일 실시예에서, 이상 설명한 블록체인 서버(110)와 워커(130)는 블록체인 네트워크의 하나의 노드에 포함될 수 있다. 이 경우, 블록체인 서버(110)와 워커(130)는 수신되는 트랜잭션에 대해 즉시 응답하여 관련 작업을 실행할 수 있다. 다른 실시예에서, 워커(130)는 분리 가능하도록 구현되며 다른 컴퓨팅 장치(또는 리소스 제공자)에 의해 호스팅될 수 있다. 이 경우, 해당 컴퓨팅 장치로부터 블록체인 서버(110)로 별도의 통신 채널이 형성될 수 있다.In one embodiment, the above-described
도 2는 본 개시의 일 실시예에 따른 블록체인 기반의 서버레스 컴퓨팅 시스템에서 블록 상태의 변경이 트리거 역할을 하여 트랜잭션 생성과 작업 실행의 연쇄반응을 일으키는 과정을 설명하는 도면이다. FIG. 2 is a diagram illustrating a process in which a change in a block state acts as a trigger in a block chain-based serverless computing system according to an embodiment of the present disclosure to cause a chain reaction of transaction creation and job execution.
도시된 바와 같이, 트랜잭션의 생성과 작업 실행의 연쇄 반응(Chained-Reaction)은 클라이언트(210)가 예를 들어 dApp을 통해 트랜잭션을 생성하여 블록체인 서버(220)으로 전송하는 것으로 시작될 수 있다. As shown, the chained-reaction between creation of a transaction and execution of a task may be initiated by the
블록체인 서버(220)가 트랜잭션을 수신하면, 트랜잭션에 의해 블록 상태가 업데이트될 수 있다. 이 때, 상태 리스너는 블록체인 서버(220)의 블록 상태 변경을 모니터링하고, 워커(230)에게 블록 상태 변경에 따른 이벤트를 전송할 수 있다. 워커(230)는 이와 같이 블록 상태 변경에 의해 트리거(trigger)된 작업 또는 기능을 실행하고, 기능 실행에 따른 결과로서 추가 트랜잭션을 생성할 수 있다. 워커(230)에 의해 생성된 추가 트랜잭션은 다시 블록체인 서버(220)로 전송될 수 있고, 이에 따라 해당 블록 상태가 업데이트될 수 있다. 여기서 업데이트된 상태 변경은 또 다른 워커의 작업을 실행시킬 수 있다. 또한, 클라이언트(210)는, 업데이트된 블록체인의 블록 상태를 통해 결과값을 얻을 수 있다.When the
도 3은 본 개시의 일 실시예에 따른 블록체인 기반의 서버레스 컴퓨팅 시스템에서 트랜잭션 및 블록의 생성 과정을 나타내는 도면이다. 도 3에 도시된 블록체인 서버(310) 및 데이터베이스(312)는 도 1에 도시된 블록체인 서버(110) 및 데이터베이스(112)를 각각 포함할 수 있다.3 is a diagram illustrating a process of generating a transaction and a block in a blockchain-based serverless computing system according to an embodiment of the present disclosure. The
일 실시예에서, 블록체인 서버(310)는 블록체인의 블록 상태를 포함하는 데이터베이스(312) 및 트랜잭션 풀(314)을 포함할 수 있다. In one embodiment, the
클라이언트(340)는 블록체인 서버(310)가 저장 및 관리하는 블록 상태를 업데이트하기 위해 트랜잭션을 생성할 수 있다. 각 트랜잭션은, 트랜잭션 식별자, 주소(예를 들어, 트랜잭션 소유자의 공개키), 실제 상태 업데이트 요청을 명시한 데이터(예를 들어, 작업을 위한 타겟 노드 경로(key) 및 상태 업데이트의 목적값(value)의 key-value 쌍)을 포함할 수 있다. The
클라이언트(340)에서 전송된 트랜잭션을 수신하면, 블록체인 서버(310)는 해당 트랜잭션을 트랜잭션 풀(314)에 저장할 수 있다. 트랜잭션 풀(314)은, 블록에 아직 추가되지는 않았지만 합의 블록체인(consensus blockchain)의 일부가 되는 유효한 트랜잭션들의 저장소를 의미할 수 있다. Upon receiving the transaction sent from the
일 실시예에서, 블록체인 서버(310)를 포함하는 노드(또는 제1 노드)는, 트랜잭션이 트랜잭션 풀(314)에 보관되기 전에 트랜잭션을 검증(validation) 및 실행(execution)할 수 있다. 제1 노드는, 적절한 클라이언트(340)에 의해 해당 트랜잭션이 전송되었음을 보장하는 서명과, 트랜잭션이 허용 권한을 위반하였는지 확인하는 규칙을 이용하여 해당 트랜잭션을 검증할 수 있다. 또한, 제1 노드는, 트랜잭션 데이터(예를 들어, 경로-값 쌍)를 데이터베이스(312)의 블록 상태에 업데이트함으로써 트랜잭션의 실행(또는 데이터베이스로의 적용)을 완료할 수 있다. 이하 상세히 설명하는 바와 같이, 트랜잭션 데이터를 블록 상태에 업데이트할지 여부는, 트랜잭션에 포함된 데이터의 신뢰성을 나타내는 값에 의해 결정될 수 있다. 제1 노드에 의해 트랜잭션이 트랜잭션 풀(314)에 추가되면, 해당 트랜잭션은 블록체인 네트워크 상의 다른 모든 노드가 로컬 트랜잭션 풀에 트랜잭션을 추가할 때까지 네트워크를 통해 전파될 수 있다. In one embodiment, the node (or first node) including the
한편, 블록체인 네트워크의 포저 노드(forger node, 또는 제2 노드)는 트랜잭션 풀에 추가된 트랜잭션의 유효성 검증(또는 forging)을 실행할 수 있다. 또한, 제2 노드는 유효성 검증이 완료된 트랜잭션을 포함하는 블록을 생성하여 블록체인에 연결할 수 있다. 블록체인에 연결된 블록은 블록체인 네트워크를 구성하는 제1 노드들에 전파되어, 모든 노드가 동일한 블록체인 상태를 갖도록 업데이트된다. On the other hand, a forger node (or second node) of the blockchain network can execute validation (or forging) of a transaction added to the transaction pool. In addition, the second node can create a block including a transaction for which validation has been completed and connect it to the blockchain. Blocks connected to the blockchain are propagated to the first nodes constituting the blockchain network, and all nodes are updated to have the same blockchain state.
모든 트랜잭션들에 대한 검증 및 블록 생성이 완료되어 블록체인에 추가되면, 해당 트랜잭션이 트랜잭션 풀에서 제거된다. When verification of all transactions and block generation 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 control line according to an embodiment of the present disclosure. The
도시된 바와 같이, 데이터베이스(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
한편, 블록체인 서버의 트랜잭션 풀에는 아직 블록체인에 블록으로 추가되지 않은 트랜잭션들("a/e/f:4", "a/e/g:5")이 저장되어 있다. 이 트랜잭션들은 경로(키)-값 쌍에 더하여 리드컨선(read_concern) 필드를 더 포함할 수 있다. 리드컨선은 트랜잭션 생성 시 함께 포함될 수 있는 값으로, 해당 트랜잭션의 데이터가 블록체인의 블록 상태에 반영될 정도의 신뢰성이 있는지를 나타낼 수 있다.Meanwhile, in the transaction pool of the blockchain server, transactions that have not yet been added as blocks to the blockchain (“a/e/f:4”, “a/e/g:5”) are stored. These transactions may further include a read_concern field in addition to the path (key)-value pair. Lead concern 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 block chain.
일 실시예에서, 클라이언트는 트랜잭션을 생성할 때, 해당 트랜잭션에 리드컨선의 정보를 포함할 수 있으며, 그 값은 클라이언트가 임의로 설정할 수 있다. 블록체인 서버의 제1 노드는 각 트랜잭션의 리드컨선의 값에 기초하여 해당 트랜잭션의 키-값 쌍을 블록 상태에 반영할 수 있다. 예를 들어, 리드컨선의 값이 0인 경우, 해당 트랜잭션의 데이터를 포함하는 블록이 생성되기 전에도 사용할 수 있을 정도로 신뢰도가 높다고 판단하여, 해당 트랜잭션의 데이터를 데이터베이스의 블록 상태에 바로 반영할 수 있다. 즉, 블록체인 서버는 트랜잭션의 리드컨선의 값이 0인 경우 해당 트랜잭션을 바로 실행할 수 있다. 반면, 리드컨선의 값이 1 또는 그 이상인 경우, 해당 트랜잭션의 데이터를 포함하는 블록 생성이 1회 또는 그 이상이 될 때까지 해당 트랜잭션의 실행을 보류할 수 있다. In one embodiment, when the client creates a transaction, the transaction may include lead control information, 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 to the block state based on the lead-context value of each transaction. For example, if the lead concern value is 0, it is determined that the reliability is high enough to be used even before the block including the data of the transaction is created, and the data of the transaction can be directly reflected in the block state of the database. . In other words, the blockchain server can immediately execute the transaction when the lead-context value of the transaction is 0. On the other hand, when the lead control value is 1 or more, the execution of the corresponding transaction may be suspended until the block including the data of the corresponding transaction is generated once or more.
도 4의 예에 있어서, 트랜잭션 "a/e/g:5"의 리드컨선의 값은 1이 부여되어 1회의 블록 생성 이후에 읽혀질 것으로 권고되었기 때문에, 해당 데이터를 블록 상태(430)에 반영하지 않고 실행을 보류할 수 있다. 반면, 트랜잭션 "a/e/f:4"의 리드컨선의 값은 0으로 부여되어 있기 때문에, 즉시 트랜잭션의 실행이 이루어져 블록 상태(430)에 반영될 수 있다. In the example of FIG. 4 , the value of the read control of the transaction “a/e/g:5” is given 1 and is recommended to be read after one block creation, so the corresponding data is not reflected in the
도 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
데이터베이스(500)는 복수의 레벨을 갖는 블록들(510, 520, 530, 542, 544, 546)의 체인을 포함할 수 있다. 또한 데이터베이스(500)는, 블록들(510, 520, 530)에 포함된 트랜잭션들의 경로(키)-값 쌍들을 반영하는 블록 상태(550, 552, 554)를 더 포함할 수 있다.The
도시된 바와 같이, 데이터베이스(500)는 최상위 레벨의 규칙을 사용하는 루트 블록들(510, 520, 530)와 이 블록들로부터 분기되어 생성된 하위 레벨의 차일드 블록들(542, 544, 546)을 포함할 수 있다. 루트 블록들(510, 520, 530)에 포함된 트랜잭션들의 경로-값 쌍은 루트 상태(552)에 반영되어 저장되며, 차일드 블록들(542, 544, 546)의 경로-값 쌍은 차일드 상태(554)에 반영되어 저장되어 있다. 또한, 루트 상태(552)와 차일드 상태(554)는 통합되어 전체 상태(550)로 표시될 수도 있다.As shown, the
일 실시예에서, 데이터베이스(500)의 블록 상태들은 샤딩(Sharding) 방식을 사용하여 관리될 수 있다. 블록 상태들은 전체적으로 트리구조로 구성되며, 이 트리구조의 블록 상태들의 일부(즉, 서브트리)가 하나의 샤드(shard)에 의해 유지 및 관리될 수 있다. 도 5의 실시예에서는, 전체 상태(550) 중에서 차일드 상태(554)가 하나의 샤드로 관리될 수 있다. 이에 따라, 차일드 상태(554)에 대응되는 하위 레벨(540)의 블록들(542, 544, 546)도 샤드로 관리될 수 있다. 이와 같이 구성되는 샤드는, 이에 속하는 블록들의 검증을 실행할 수 있다. 일반적으로 PoW(Proof of Work) 합의 방식은, 각 샤드에 대한 공격 또는 해킹에 필요한 계산량이 전체 블록들을 공격하기 위해 필요한 계산량보다 상당히 작기 때문에, 샤딩으로 관리되는 블록체인에는 적용하기 어려울 수 있다. 따라서, 본 실시예의 각 샤드에는 PoS 합의 방식이 사용될 수 있다. In an embodiment, the block states of the
일 실시예에서, 루트 블록들(510, 520, 530)에는 최상위 수준의 합의 규칙(Genesis Rules)이 적용될 수 있으며, 최상위 수준의 합의 규칙은 루트 블록들의 체인의 가장 앞에 위치한 블록(510)에 저장될 수 있다. 또한, 샤드로 관리되는 블록 상태들의 서브 트리에 대응되는 블록들에는 각각 자체적인 합의 규칙을 적용할 수 있다. 이와 같이 블록 상태들의 서브트리에 적용되는 합의 규칙은 차일드 블록들(542, 544, 546)의 체인에 있어서 제일 앞에 위치 블록(542)에 저장될 수 있다.In an embodiment, a top-level consensus rule (Genesis Rules) may be applied to the root blocks 510 , 520 , and 530 , and the top-level consensus rule is stored in a
이와 같이 블록 상태들의 서브트리(예를 들어 차일드 상태(554)) 별로 상이한 합의 규칙을 설정함으로써, 확장성의 트릴레마(Trilemma) 문제를 해결할 수 있다. 즉, 본 개시의 블록체인 기반의 서버레스 컴퓨팅 시스템은, 다양한 유형의 애플리케이션의 확장성 및 보안성의 요구사항들을 만족시키도록 다양한 합의 규칙을 설정할 수 있다. 예를 들어, 애플리케이션이 안정성(Scalability)을 필요로 하는 경우, 단순한 PoS 합의 규칙을 사용하여 처리량을 극대화할 수 있고, 애플리케이션이 강한 보안성(Security)을 필요로 하는 경우, 무권한(Permissionless) PoS 규칙을 사용할 수 있으며, 애플리케이션이 좀 더 많은 탈중앙화(Decentralized)를 필요로 하는 경우, 새로운 합의 규칙을 채택하여 적용할 수 있다.As described above, by setting different consensus rules for each subtree of block states (eg, child state 554), it is possible to solve the trilemma problem of scalability. That is, the blockchain-based serverless computing system of the present disclosure may set various consensus rules to satisfy the scalability and security requirements of various types of applications. For example, if the application requires scalability, a simple PoS consensus rule can be used to maximize throughput, and if the application requires strong security, permissionless PoS Rules can be used, and when 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 blockchain according to an embodiment of the present disclosure. The
클라이언트(또는 dApp)가 트랜잭션을 생성하고, 해당 트랜잭션이 블록체인 서버에 전송되어 데이터베이스에 저장될 수 있다. 또한, 블록체인 서버는, 데이터베이스의 블록 상태가 변경될 수 있는 권한을 설정하고, 블록 상태가 변경될 때 실행될 기능을 설정할 수 있다. 블록체인 서버는, 하나 이상의 클라이언트로부터 트랜잭션이 수신되면, 해당 트랜잭션에 따라 데이터베이스의 블록 상태를 변경한다(S620). 트랜잭션 데이터는 경로(키)-값의 쌍을 포함할 수 있으며, 트랜잭션을 반영한 블록 상태는 트리 구조로 구성될 수 있다.A client (or dApp) creates a transaction, and the transaction can be sent to a blockchain server and stored in a database. In addition, the blockchain server can set the authority to change the block state of the database, and set the function to be executed when the block state is changed. When a transaction is received from one or more clients, the blockchain server changes the block state of the database according to the transaction (S620). Transaction data may include path (key)-value pairs, and the block state reflecting the transaction may be configured 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 a block state change, it notifies the worker of the function execution according to the block chain state change (S650). The state listener sends 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). 워커는 기능 실행에 따른 결과로서 추가 트랜잭션을 생성할 수도 있다. 워커가 생성한 추가 트랜잭션은 블록체인 서버의 데이터베이스에 저장된 블록 상태에 다시 업데이트될 수 있으며, 클라이언트는 변경된 블록체인 상태를 통해 결과를 얻는다.A transaction representing the result of executing the function of the worker may be transmitted to the block chain server (S660). A worker may also create additional transactions as a result of executing a function. Additional transactions generated by the worker 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 transaction execution and block generation process according to an embodiment of the present disclosure. The
블록체인 서버는 블록 상태를 포함하는 데이터베이스 및 트랜잭션을 저장하기 위한 트랜잭션 풀을 포함할 수 있다. 블록체인 서버가 트랜잭션을 수신하면, 제1 노드에 의해 트랜잭션을 검증 및 실행한다(S720).A blockchain server may include a database containing block states and a transaction pool for storing transactions. When the blockchain server receives the transaction, the first node verifies and executes the transaction (S720).
제1 노드는, 트랜잭션이 트랜잭션 풀에 추가되기 전에 트랜잭션을 검증 및 실행할 수 있다. 이를 위해, 제1 노드는 클라이언트에 의해 해당 트랜잭션이 전송되었음을 보장하는 서명과, 트랜잭션이 허용 권한을 위반하였는지 확인하는 규칙을 이용하여 해당 트랜잭션을 검증할 수 있다. 또한, 제1 노드는, 트랜잭션 데이터(예를 들어, 경로-값 쌍)를 블록 상태에 업데이트함으로써 트랜잭션의 실행을 완료할 수 있다. 트랜잭션 데이터를 블록 상태에 업데이트할지 여부는, 트랜잭션에 포함된 데이터의 신뢰성을 나타내는 값에 의해 결정될 수 있다.The first node may verify and execute the transaction before the transaction is added to the transaction pool. To this end, the first node may verify the transaction by using a signature that guarantees that the transaction has been transmitted by the client and a rule that checks whether the transaction violates the permission authority. Also, the first node may complete the 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 transaction verification and execution are completed, the corresponding transaction is added to the transaction pool (S730). Thereafter, the second node creates a block for the transaction in the transaction pool and connects to the block chain (S740). The second node executes the validation of the transaction taken 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 the state it has, and if there is a state that does not match, it modifies the block based on the corresponding block.
상술한 장치 또는 시스템의 구성요소들과 방법들은 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현될 수도 있다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의해 읽혀 질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광데이터 저장장치 등이 있다. 또한, 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고, 상기 실시예들을 구현하기 위한 기능적인(functional) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술분야의 프로그래머들에 의해 용이하게 추론될 수 있다. The 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 in which data that can be read by a computer system is stored. Examples of the computer-readable recording medium include ROM, RAM, CD-ROM, magnetic tape, floppy disk, and optical data storage device. Further, 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 pertains.
본원에 기술된 기법들은 다양한 수단에 의해 구현될 수도 있다. 예를 들어, 이러한 기법들은 하드웨어, 펌웨어, 소프트웨어, 또는 이들의 조합으로 구현될 수도 있다. 본원의 개시와 연계하여 설명된 다양한 예시적인 논리적 블록들, 모듈들, 회로들, 및 알고리즘 단계들은 전자 하드웨어, 컴퓨터 소프트웨어, 또는 양자의 조합들로 구현될 수도 있음을 통상의 기술자들은 더 이해할 것이다. 하드웨어 및 소프트웨어의 이러한 상호교환성을 명확하게 설명하기 위해, 다양한 예시적인 컴포넌트들, 블록들, 모듈들, 회로들, 및 단계들이 그들의 기능성의 관점에서 일반적으로 위에서 설명되었다. 그러한 기능이 하드웨어로서 구현되는지 또는 소프트웨어로서 구현되는 지의 여부는, 특정 애플리케이션 및 전체 시스템에 부과되는 설계 제약들에 따라 달라진다. 통상의 기술자들은 각각의 특정 애플리케이션을 위해 다양한 방식들로 설명된 기능을 구현할 수도 있으나, 그러한 구현 결정들은 본 개시의 범위로부터 벗어나게 하는 것으로 해석되어서는 안된다.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 as 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 upon 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, the various illustrative logic blocks, modules, and circuits described in connection with the present disclosure are suitable for general purpose processors, DSPs, ASICs, FPGAs or other programmable logic devices, 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. A 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 conjunction with a 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), 자기 또는 광학 데이터 스토리지 디바이스 등과 같은 컴퓨터 판독가능 매체 상에 저장된 명령들로서 구현될 수도 있다. 명령들은 하나 이상의 프로세서들에 의해 실행가능할 수도 있고, 프로세서(들)로 하여금 본원에 설명된 기능의 특정 양태들을 수행하게 할 수도 있다.For firmware and/or software implementations, the techniques include random access memory (RAM), read-only memory (ROM), non-volatile random access memory (NVRAM), PROM ( on computer-readable media 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 devices, etc. It may 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 또는 다른 광학 디스크 스토리지, 자기 디스크 스토리지 또는 다른 자기 스토리지 디바이스들, 또는 소망의 프로그램 코드를 명령들 또는 데이터 구조들의 형태로 이송 또는 저장하기 위해 사용될 수 있으며 컴퓨터에 의해 액세스될 수 있는 임의의 다른 매체를 포함할 수 있다. 또한, 임의의 접속이 컴퓨터 판독가능 매체로 적절히 칭해진다.If implemented in software, the functions may be stored on or transmitted over as one or more instructions or code on 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. may include any other medium that can be used for transport or storage to a computer and can be accessed 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 coaxial cable, fiber optic cable, twisted pair, digital subscriber line (DSL), or wireless technologies such as infrared, wireless, and microwave, the coaxial cable , fiber optic cable, twisted pair, digital subscriber line, or wireless technologies such as infrared, radio, and microwave are included within the definition of a medium. As used herein, disk and disk include CD, laser disk, optical disk, digital versatile disc (DVD), floppy disk, and Blu-ray disk, where disks are usually magnetic Data is reproduced 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은 유저 단말 내에 존재할 수도 있다. 대안으로, 프로세서와 저장 매체는 유저 단말에서 개별 컴포넌트들로서 존재할 수도 있다.A software module may reside in RAM memory, flash memory, ROM memory, EPROM memory, EEPROM memory, registers, hard disk, a removable disk, a CD-ROM, or any other form 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 reside within the ASIC. The ASIC may exist in the user terminal. Alternatively, the processor and the storage medium may exist as separate components in the user terminal.
본 개시의 앞선 설명은 당업자들이 본 개시를 행하거나 이용하는 것을 가능하게 하기 위해 제공된다. 본 개시의 다양한 수정예들이 당업자들에게 쉽게 자명할 것이고, 본원에 정의된 일반적인 원리들은 본 개시의 취지 또는 범위를 벗어나지 않으면서 다양한 변형예들에 적용될 수도 있다. 따라서, 본 개시는 본원에 설명된 예들에 제한되도록 의도된 것이 아니고, 본원에 개시된 원리들 및 신규한 특징들과 일관되는 최광의의 범위가 부여되도록 의도된다.The previous description of the disclosure is provided to enable any person skilled in the art to make or use the disclosure. Various modifications to the disclosure will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to various modifications without departing from the spirit or scope of the disclosure. Accordingly, this disclosure is not intended to be limited to the examples set forth herein, but is to be accorded the widest scope consistent with the principles and novel features disclosed herein.
비록 예시적인 구현예들이 하나 이상의 독립형 컴퓨터 시스템의 맥락에서 현재 개시된 주제의 양태들을 활용하는 것을 언급할 수도 있으나, 본 주제는 그렇게 제한되지 않고, 오히려 네트워크나 분산 컴퓨팅 환경과 같은 임의의 컴퓨팅 환경과 연계하여 구현될 수도 있다. 또 나아가, 현재 개시된 주제의 양상들은 복수의 프로세싱 칩들이나 디바이스들에서 또는 그들에 걸쳐 구현될 수도 있고, 스토리지는 복수의 디바이스들에 걸쳐 유사하게 영향을 받게 될 수도 있다. 이러한 디바이스들은 PC들, 네트워크 서버들, 및 핸드헬드 디바이스들을 포함할 수도 있다.Although example implementations may refer to utilizing aspects of the presently disclosed subject matter in the context of one or more standalone computer systems, the subject matter is not so limited, but rather in connection with any computing environment, such as a network or distributed computing environment. may be implemented. Still further, aspects of the presently disclosed subject matter may be implemented in or across a plurality of processing chips or devices, and storage may be similarly affected across the plurality of devices. Such devices may include PCs, network servers, and handheld devices.
비록 본 주제가 구조적 특징들 및/또는 방법론적 작용들에 특정한 언어로 설명되었으나, 첨부된 청구항들에서 정의된 주제가 위에서 설명된 특정 특징들 또는 작용들로 반드시 제한되는 것은 아님이 이해될 것이다. 오히려, 위에서 설명된 특정 특징들 및 작용들은 청구항들을 구현하는 예시적인 형태로서 설명된다.Although subject matter has been described in language specific to structural features and/or methodological acts, it will be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts set forth above. Rather, the specific features and acts described above are set forth as example forms of implementing the claims.
이 명세서에서 언급된 방법은 특정 실시예들을 통하여 설명되었지만, 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의해 읽혀 질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광데이터 저장장치 등이 있다. 또한, 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고, 실시예들을 구현하기 위한 기능적인(functional) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술분야의 프로그래머들에 의해 용이하게 추론될 수 있다.Although the method mentioned in this specification has been described through specific embodiments, it may be implemented as computer-readable code on a computer-readable recording medium. The computer-readable recording medium includes all types of recording devices in which data that can be read by a computer system is stored. Examples of the computer-readable recording medium include ROM, RAM, CD-ROM, magnetic tape, floppy disk, and optical data storage device. Further, 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. And, functional programs, codes, and code segments for implementing the embodiments can be easily inferred by programmers in the art to which the present invention pertains.
본 명세서에서는 본 개시가 일부 실시예들과 관련하여 설명되었지만, 본 발명이 속하는 기술분야의 통상의 기술자가 이해할 수 있는 본 개시의 범위를 벗어나지 않는 범위에서 다양한 변형 및 변경이 이루어질 수 있다는 점을 알아야 할 것이다. 또한, 그러한 변형 및 변경은 본 명세서에 첨부된 특허청구의 범위 내에 속하는 것으로 생각되어야 한다.Although the present disclosure has been described with reference to some embodiments herein, it should be understood that various modifications and changes may be made without departing from the scope of the present disclosure as understood by those skilled in the art to which the present invention pertains. something to do. Further, such modifications and variations are intended to fall within the scope of the claims appended hereto.
110: 블록체인 서버 112: 데이터베이스
120: 상태 리스너 130: 워커
140: 클라이언트110: blockchain server 112: database
120: status listener 130: walker
140: client
Claims (11)
클라이언트로부터 수신되는 기능과 연관된 하나 이상의 트랜잭션에 따라 업데이트되는 복수의 블록 상태(state)를 포함하는 데이터베이스를 저장 및 관리하는 블록체인 서버;
상기 복수의 블록 상태의 변경 여부를 모니터링하는 상태 리스너; 및
상기 복수의 블록 상태의 변경에 따른 기능을 실행하는 워커;
를 포함하며,
상기 상태 리스너는 상기 블록 상태의 변경을 감지하여 상기 워커에게 상기 복수의 블록 상태의 변경에 따른 기능 실행을 통보하고, 상기 워커는 기능 실행 통보에 따라 상기 기능을 실행하고,
상기 트랜잭션은, 작업을 위한 타겟 노드 경로 값(key) 및 상태 업데이트의 목적 값(value)의 하나 이상의 key-value 쌍을 포함하며,
상기 블록 상태는, 상기 트랜잭션의 하나 이상의 key-value 쌍을 반영하는 트리 구조로 구성되는,
블록체인 기반의 서버레스 컴퓨팅 시스템.
In a blockchain-based serverless computing system,
a blockchain server for storing and managing a database including a plurality of block states updated according to one or more transactions related to functions 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 the function execution according to the change in the plurality of block states, the worker executes the function according to the function execution notification,
The transaction includes one or more key-value pairs of a target node path value for an operation (key) and a target value of a state update (value),
The block state consists of a tree structure reflecting one or more key-value pairs of the transaction,
A serverless computing system based on blockchain.
상기 블록체인 서버는, 상기 데이터베이스의 블록 상태가 변경될 수 있는 권한을 설정하고, 상기 블록 상태가 변경될 때 실행될 기능을 설정하는,
블록체인 기반의 서버레스 컴퓨팅 시스템.
The method of claim 1,
The block chain server sets the authority to change the block state of the database, and sets a function to be executed when the block state is changed,
A serverless computing system based on blockchain.
상기 블록체인 서버는,
상기 복수의 블록 상태를, 복수의 서브트리를 포함하는 트리구조로 구성하며,
상기 복수의 블록 상태의 서브트리 각각에 대해 상이한 합의 규칙을 적용할 수 있는,
블록체인 기반의 서버레스 컴퓨팅 시스템.
The method of claim 1,
The blockchain server is
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,
A serverless computing system based on blockchain.
상기 복수의 블록 상태의 서브트리 각각에 대해 샤드를 적용하고,
상기 샤드는 상기 서브트리 각각을 블록체인 인스턴스에서 처리하는,
블록체인 기반의 서버레스 컴퓨팅 시스템.
The method of claim 4,
Applying a shard to each subtree of the plurality of block states,
The shard processes each of the subtrees in a blockchain instance,
A serverless computing system based on blockchain.
상기 트랜잭션은 리드컨선을 포함하며,
상기 리드컨선은 상기 트랜잭션에 기초해서 상기 워커를 실행시키는 것을 포함하여 상기 트랜잭션이 활용되기에 적합한 시점을 나타내는,
블록체인 기반의 서버레스 컴퓨팅 시스템.
The method of claim 1,
The transaction includes a lead control,
The lead control indicates a suitable time for the transaction to be utilized, including executing the worker based on the transaction.
A serverless computing system based on blockchain.
상기 블록체인 서버는, 상기 트랜잭션이 블록으로 생성되기 전에 상기 트랜잭션을 저장하는 트랜잭션 풀을 더 포함하며,
상기 시스템은,
상기 트랜잭션 풀에 상기 트랜잭션을 저장하기 전에 상기 트랜잭션을 검증하여 상기 블록 상태에 반영하는 제1 노드; 및
상기 트랜잭션 풀에 저장된 상기 트랜잭션의 유효성 검증을 실행하여 상기 트랜잭션을 포함하는 블록을 생성하는 제2 노드;
를 더 포함하는,
블록체인 기반의 서버레스 컴퓨팅 시스템.
The method of claim 1,
The blockchain server further includes a transaction pool that stores the transaction before the transaction is created as a block,
The system,
a first node that verifies the transaction before storing the transaction in the transaction pool and reflects it in the block state; and
a second node generating a block including the transaction by executing validation of the transaction stored in the transaction pool;
Further comprising,
A serverless computing system based on blockchain.
블록체인 서버에 의해, 클라이언트로부터 기능과 연관된 하나 이상의 트랜잭션이 수신되면, 상기 트랜잭션에 따라 데이터베이스의 블록 상태를 업데이트하는 단계;
상태 리스너에 의해, 상기 블록 상태의 변경 여부를 모니터링하는 단계;
상기 상태 리스너에 의해, 상기 블록 상태의 변경을 감지하면, 워커에게 상기 블록체인 상태의 변경에 따른 기능 실행을 통보하는 단계; 및
상기 워커에 의해, 상기 워커가 상기 기능을 실행한 결과를 나타내는 트랜잭션을 블록체인 네트워크에 전송하는 단계
를 포함하고,
상기 트랜잭션은, 작업을 위한 타겟 노드 경로 값(key) 및 상태 업데이트의 목적 값(value)의 하나 이상의 key-value 쌍을 포함하며,
상기 블록 상태는, 상기 트랜잭션의 하나 이상의 key-value 쌍을 반영하는 트리 구조로 구성되는,
방법.
In the blockchain-based serverless computing method,
updating, by the blockchain server, when one or more transactions associated with a function are received from the client, the block state of the database according to the transactions;
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 to execute a function according to the change in the state of the block chain; and
sending, by the worker, a transaction representing the result of the worker executing the function to the blockchain network;
Including,
The transaction includes one or more key-value pairs of a target node path value for an operation (key) and a target value of a state update (value),
The block state consists of a tree structure reflecting one or more key-value pairs of the transaction,
Way.
상기 블록체인 서버에 의해, 상기 데이터베이스의 블록 상태가 변경될 수 있는 권한을 설정하고, 상기 블록 상태가 변경될 때 실행될 기능을 설정하는 단계를 더 포함하는, 방법.
The method of claim 8,
The method further comprising, by the blockchain server, setting the authority to change the block state of the database, and setting a function to be executed when the block state is changed.
상기 블록체인 서버에 의해, 상기 클라이언트로부터 하나 이상의 트랜잭션이 수신되면, 상기 트랜잭션에 따라 상기 데이터베이스의 블록 상태를 업데이트하는 단계는,
상기 트랜잭션이 블록으로 생성되기 전에 상기 트랜잭션을 트랜잭션 풀에 추가하는 단계;
제1 노드에 의해, 상기 트랜잭션이 상기 트랜잭션 풀에 저장되기 전에, 상기 트랜잭션을 검증하여 상기 블록 상태에 반영하는 단계;
제2 노드에 의해, 상기 트랜잭션 풀에 저장된 상기 트랜잭션의 유효성 검증을 실행하여 상기 트랜잭션을 포함하는 블록을 생성하는 단계; 및
블록체인 네트워크의 일관성(consistency)이 유지되도록, 상기 제2 노드에 의해 생성된 상기 블록이 상기 제1 노드의 블록 상태에 적용되는 단계
를 포함하는, 방법.
The method of claim 8,
When, by the blockchain server, one or more transactions are received from the client, updating the block state of the database according to the transaction comprises:
adding the transaction to a transaction pool before the transaction is created as a block;
before the transaction is stored in the transaction pool, by the first node, verifying the transaction and reflecting it in the block state;
generating, by a second node, a block including the transaction by executing 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
Including, 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, a computer-readable storage medium comprising instructions for performing the method of any one of claims 8 to 10.
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 KR20210029865A (en) | 2021-03-17 |
KR102258936B1 true 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) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20230004216A (en) * | 2021-06-30 | 2023-01-06 | 주식회사 아티프렌즈 | Token issuance service apparatus and method for media content based on blockchain |
KR102549385B1 (en) * | 2022-11-03 | 2023-06-29 | 주식회사 커먼컴퓨터 | Method and system for providing data access control |
Citations (2)
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 |
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 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170011460A1 (en) * | 2015-07-09 | 2017-01-12 | Ouisa, LLC | Systems and methods for trading, clearing and settling securities transactions using blockchain technology |
EP3934203A1 (en) * | 2016-12-30 | 2022-01-05 | INTEL Corporation | Decentralized data storage and processing for iot devices |
US10608910B2 (en) * | 2017-06-26 | 2020-03-31 | Myomega Systems Gmbh | Using blockchain to track information for devices on a network |
-
2019
- 2019-09-06 KR KR1020190110550A patent/KR102258936B1/en active IP Right Grant
Patent Citations (2)
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 |
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 |
Non-Patent Citations (1)
Title |
---|
Sebastien Forestier et al, "Blockclique: Scaling Blockchains through Transaction Sharding in a Multithreaded Block Graph"(2019.06.) |
Also Published As
Publication number | Publication date |
---|---|
KR20210029865A (en) | 2021-03-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210089422A1 (en) | System and method for serverless computing based on blockchain | |
US10817345B2 (en) | Distributed ledger for monitoring quality of services provided by cloud service providers | |
US11921703B2 (en) | Dag based methods and systems of transaction processing in a distributed ledger | |
US10986177B2 (en) | Systems and methods of self-forking blockchain protocol | |
JP6638024B2 (en) | System, smart contract life cycle management method, and non-transitory computer readable medium | |
US10938567B2 (en) | Parallel-chain architecture for blockchain systems | |
US10833865B2 (en) | Blockchain-based method and system for immutable resource allocation in a cloud computing environment | |
US11030686B2 (en) | Secure system | |
JP6775086B2 (en) | Blockchain monitoring and management | |
US10523526B2 (en) | System and method for managing services and licenses using a blockchain network | |
KR20210003234A (en) | Maintaining blocks of a blockchain in a segmented blockchain network | |
US11244311B2 (en) | Decentralized smart resource sharing between different resource providers | |
JP2020017256A (en) | System for performing verification in block chain | |
JP6130518B2 (en) | Instance host configuration | |
EP3329440A1 (en) | Controlled resource provisioning in distributed computing environments | |
US10204021B2 (en) | Recovery of an infected and quarantined file in a primary storage controller from a secondary storage controller | |
KR102258936B1 (en) | System and method for serverless computing based on blockchain | |
KR102132118B1 (en) | Apparatus and method for supporting workspace based on blockchain | |
US11036889B2 (en) | Efficient auditing of data in object storage | |
KR102309503B1 (en) | Method, node appratus and computer readable recording medium for transaction using blockchain | |
JP2022549590A (en) | Mutation event detection for integrity monitoring | |
KR101697118B1 (en) | Cloud service system and method | |
JP2024512256A (en) | Reducing transaction aborts within an execution-ordering-validation blockchain model | |
US11483381B1 (en) | Distributing cloud migration | |
US12050609B1 (en) | Discretization of continuous stream of data items using data dividers |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |