KR20200093089A - System and method for transaction of work requests and products based on blockchain - Google Patents
System and method for transaction of work requests and products based on blockchain Download PDFInfo
- Publication number
- KR20200093089A KR20200093089A KR1020190000984A KR20190000984A KR20200093089A KR 20200093089 A KR20200093089 A KR 20200093089A KR 1020190000984 A KR1020190000984 A KR 1020190000984A KR 20190000984 A KR20190000984 A KR 20190000984A KR 20200093089 A KR20200093089 A KR 20200093089A
- Authority
- KR
- South Korea
- Prior art keywords
- node
- request
- nodes
- work
- evaluator
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0631—Resource planning, allocation, distributing or scheduling for enterprises or organisations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0639—Performance analysis of employees; Performance analysis of enterprise or organisation operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/02—Marketing; Price estimation or determination; Fundraising
- G06Q30/0207—Discounts or incentives, e.g. coupons or rebates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1042—Peer-to-peer [P2P] networks using topology management mechanisms
Landscapes
- Business, Economics & Management (AREA)
- Engineering & Computer Science (AREA)
- Human Resources & Organizations (AREA)
- Strategic Management (AREA)
- Development Economics (AREA)
- Entrepreneurship & Innovation (AREA)
- Theoretical Computer Science (AREA)
- Economics (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- Educational Administration (AREA)
- Game Theory and Decision Science (AREA)
- Marketing (AREA)
- Operations Research (AREA)
- Quality & Reliability (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Tourism & Hospitality (AREA)
- Biophysics (AREA)
- Evolutionary Computation (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Biomedical Technology (AREA)
- Signal Processing (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Computer Networks & Wireless Communication (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
Description
본 개시는 블록체인 기반의 작업 요청 및 결과물의 거래 방법 및 시스템에 관한 것이다. 좀 더 구체적으로, 본 개시는 블록체인 플랫폼에서 분산되어 운영되는 저장소, 컴퓨팅 장치 등의 작업 실행 자원을 효율적으로 사용하여 다양한 작업을 해결하는 작업 거래 방법 및 시스템에 관한 것이다.The present disclosure relates to a method and system for trading blockchain-based work requests and deliverables. More specifically, the present disclosure relates to a job transaction method and system that solves various jobs by efficiently using job execution resources such as storage and computing devices distributed and operated on a blockchain platform.
클라우드 기반으로 관리되는 컴퓨팅 플랫폼의 대부분은, Amazon, Google, IBM, Microsoft 등과 같은 대기업에 의해 운영되고 있다. 이와 같은 클라우드 기반 컴퓨팅 플랫폼은, 중앙화를 통한 규모의 경제 효과를 이용하여 비용 효율적인 컴퓨팅 솔루션을 기업들에게 제공한다. 그러나, 그러한 중앙화된 자원 관리 방식은 개인이나 소규모 연구 그룹이 쉽게 이용하기 어렵기 때문에, 이러한 소규모 기업들이 클라우드 시스템을 이용하는데 장벽이 될 수 있다.Most of the cloud-based managed computing platforms are run by large companies such as Amazon, Google, IBM, and Microsoft. Such a cloud-based computing platform provides companies with cost-effective computing solutions by utilizing economies of scale through centralization. However, such a centralized resource management method is difficult for individuals or small research groups to use, and thus, these small businesses may be a barrier to using the cloud system.
개인이나 소기업이 기존의 클라우드 기반 컴퓨팅 플랫폼을 이용하는데 겪는 어려움은, 예를 들어, 최근 관심이 증가하고 있는 머신 러닝 구현에서 나타날 수 있다. 즉, 대규모 머신 러닝의 문제는 종종 복잡한 시스템 설정과 높은 가격의 저장/계산 자원을 필요로 한다. 이 때문에, 최신의 머신 러닝 연구가 발표되어도, 그 결과를 재현하거나 테스트하는 것이 매우 어렵거나 아주 긴 시간이 요구될 수 있다.Difficulties for individuals or small businesses to use existing cloud-based computing platforms may arise, for example, in machine learning implementations of increasing interest. In other words, the problem of large-scale machine learning often requires complex system setup and expensive storage/compute resources. Because of this, even if the latest machine learning studies have been published, it can be very difficult or very long to reproduce or test the results.
이러한 문제 때문에, 작은 연구 그룹이나 기업들은 사설 클라우드를 구축하기도 하지만, 이는 비용면에서 비효율적이다. 사설 클라우드는, 연구 분야 외에도, 머신 러닝 작업이 필요한 다양한 분야에서 사용되고 있다. 하지만, 사설 클라우드가 구축되더라도 한정된 수의 연구자들만이 이를 이용하기 때문에, 그 컴퓨팅 자원은 충분히 활용되지 못한다.Because of these issues, small research groups and companies may build private clouds, but this is cost-effective. In addition to the research field, private clouds are used in various fields that require machine learning. However, even if a private cloud is built, only a limited number of researchers use it, so the computing resources are not fully utilized.
한편, 대규모 AI 기업들은 자신들을 위해 가장 강력한 자원을 우선적으로 사용한다. 예를 들어, 새로운 하드웨어 장치는, 일반 대중이 가용할 수 있도록 출시되기 전에, 개별적으로 선택된 고객들에게만 접근 가능할 수 있도록 한다. 이러한 경우 소규모 고객들은 자신의 요구에 맞지 않더라도 하드웨어 공급 업체의 정책을 그냥 받아들이거나, 그렇지 않으면 공급업체가 정책을 변경할 때까지 기다리는 수밖에 없다.Meanwhile, large AI companies prefer to use the most powerful resources for themselves. For example, new hardware devices are made available only to individually selected customers before they are released to the general public. In this case, small customers simply have to accept the hardware vendor's policy, even if it doesn't fit their needs, or wait until the vendor changes the policy.
따라서, 중앙화된 컴퓨팅 자원의 공급자로부터 독립되어, 컴퓨팅 자원을 공유하면서 효율적인 방식으로 솔루션을 제공할 수 있는 좀 더 중립적인 플랫폼이 필요하다. Therefore, there is a need for a more neutral platform that can provide solutions in an efficient manner while sharing computing resources independent of a provider of centralized computing resources.
중앙화된 관리자나 공급자 없이도 컴퓨팅 자원을 공유할 수 있는 방법으로 블록체인 기술이 이용될 수 있다. 블록체인(blockchain) 기술은, 네트워크 통신상에서 이루어지는 거래내용을 신뢰성 있고 안전한 방법으로 기록하고 저장하는 기술이다. 블록체인 네트워크는, 디지털화된 자산이나 거래내역(transaction)의 교환이 가능한 분산 환경의 시스템으로, 공유된 장부(ledger)를 이용하여 P2P(peer-to-peer) 네트워크에서 발생되는 전자적 거래 내역의 이력을 기록한다. 블록체인 네트워크는 탈중앙화된 또는 분산된 합의 프로토콜(decentralized consensus mechanism)을 이용한다. 특히, 네트워크 상의 모든 검증 노드(validating node)는 동일한 거래내역에 대해 동일한 (또는 합의된) 합의 알고리즘을 실행함으로써 그 거래내역을 승인(또는 비승인)한다. 블록체인 P2P 네트워크는, 이러한 탈중앙화된 구조와 합의 알고리즘을 이용하기 때문에, 제3자에 의한 거래내역의 위변조가 사실상 불가능하게 되어, 거래 내역의 신뢰성과 투명성을 보장할 수 있다.Blockchain technology can be used as a way to share computing resources without a centralized manager or provider. Blockchain technology is a technology that records and stores transactions made on network communications in a reliable and secure way. Blockchain network is a distributed environment system that can exchange digitized assets or transactions, and records the history of electronic transactions generated in peer-to-peer networks using a shared ledger. Record. The blockchain network uses a decentralized consensus mechanism. In particular, every validating node on the network approves (or disapproves) the transaction by executing the same (or agreed upon) consensus algorithm for the same transaction. Since the blockchain P2P network uses such a decentralized structure and consensus algorithm, it is virtually impossible to forge and falsify the transaction history by a third party, thereby guaranteeing the reliability and transparency of the transaction history.
중앙화 된 컴퓨팅의 문제를 해결하는 블록 체인 솔루션의 한 예는 이더리움(Ethereum)이다. 중앙 독립체없이 스마트 계약을 제공할 수 있는 이더리움은, 튜링 완전(Turing-complete)의 가상 장치(virtual machine)을 제공하므로, 이론적으로 머신 러닝을 포함한 어떤 계산적인 문제도 풀어낼 수 있다. 이더리움은 완전히 탈중앙화된 플랫폼을 제공하기 위해, 탈중앙화 된 로직에 의한 스마트 계약, 탈중앙화 된 저장소로서 스웜(Swarm) 및 탈 중앙화 된 메시징으로서 위스퍼(Whisper)를 제공한다. One example of a blockchain solution that solves the problem of centralized computing is Ethereum. Ethereum, which can provide smart contracts without a central entity, provides a Turing-complete virtual machine, which can theoretically solve any computational problem, including machine learning. Ethereum offers smart contracts by decentralized logic, Swarm as decentralized storage, and Whisper as decentralized messaging to provide a fully decentralized platform.
그러나, 이더리움에서 제공하는 분산된 저장소(storage)는, 중앙화된 저장소보다 성능이 떨어지고 운영 비용이 많이 소요되는 문제점이 있다. 머신 러닝과 같이 성능이 중요한 분야에서는, 경험적으로 집중화된 독립체의 효율이 더 우수할 수 있다. 또한, 이더리움을 포함한 일반적인 블록체인 모델들은 대규모 정보를 담기에 부적합하고, 이더리움의 스마트 계약의 성능은 머신 러닝 알고리즘과 같은 복잡한 프로그램을 대표하기에는 부족할 수 있다.However, distributed storage provided by Ethereum has a problem in that performance is lower than that of a centralized storage and a high operation cost is required. In areas where performance is important, such as machine learning, the efficiency of an empirically focused entity may be better. In addition, common blockchain models, including Ethereum, are not suitable for carrying large amounts of information, and the performance of Ethereum's smart contracts may not be sufficient to represent complex programs such as machine learning algorithms.
본 개시는, 블록체인 기반의 컴퓨팅 자원 제공 플랫폼에서 분산된 단말기들 간의 작업 요청 및 작업 결과물의 거래 방법 및 시스템을 제공한다. 또한, 본 개시는, 블록체인 기반의 컴퓨팅 자원 제공 플랫폼에서 평가자 노드가 복수의 작업자 노드들에 의해 제공된 결과물을 확인하고 평가함으로써, 복잡하고 대규모의 작업에도 적용이 용이한 분산 컴퓨팅 방법 및 시스템을 제공한다.The present disclosure provides a method and system for trading work requests and work results between distributed terminals in a blockchain-based computing resource providing platform. In addition, the present disclosure provides a distributed computing method and system that is easy to apply to complex and large-scale tasks by evaluating and evaluating the results provided by a plurality of worker nodes by an evaluator node in a blockchain-based computing resource providing platform do.
또한 본 개시는, 분산된 블록체인 플랫폼에 중앙집중식 조력 구성 요소, 예를 들어, 보안 런타임 환경, 대용량 저장소 등을 결합하는 하이브리드 접근 방식을 통해 신뢰도 있는 고성능 분산 컴퓨팅 플랫폼을 제공한다.In addition, the present disclosure provides a reliable, high-performance distributed computing platform through a hybrid approach that combines centralized tidal components, such as a secure runtime environment, mass storage, etc., on a distributed blockchain platform.
본 개시의 일 실시예에 따른 블록체인 기반의 작업 요청 및 작업 결과물의 거래 방법에 있어서, 상기 블록체인은, 작업 요청 - 상기 작업 요청은 평가 요청, 보상 및 보상함수를 포함함 -, 작업 결과물 및 작업 결과물의 평가에 관한 데이터를 포함하는 복수의 블록을 포함하는 분산 장부(distributed ledger)를 관리하며, 각각 적어도 하나의 컴퓨팅 장치를 포함하는 복수의 노드를 포함한다. 상기 방법은, 상기 복수의 노드 중에서 클라이언트 노드에 의해, 상기 복수의 노드로 작업 요청이 송신하는 단계; 상기 복수의 노드 중에서 평가자 노드에 의해, 상기 작업 요청에 응답하여, 상기 클라이언트 노드로 상기 평가 요청의 수락이 송신하는 단계; 상기 복수의 노드 중에서 적어도 하나의 작업자 노드에 의해, 상기 작업 요청에 응답하여, 상기 클라이언트 노드로 상기 작업 요청의 수락이 송신하는 단계; 상기 작업자 노드에 의해, 상기 평가자 노드로 상기 작업 결과물이 송신하는 단계; 상기 평가자 노드에 의해, 상기 클라이언트 노드로 상기 작업 결과물에 대한 평가를 송신하는 단계; 상기 클라이언트 노드에 의해, 상기 복수의 노드로 상기 평가의 승인을 송신하는 단계; 및 상기 복수의 노드 중에서 적어도 하나의 노드에 의해, 상기 복수의 블록 중 어느 하나에 포함된 상기 보상함수에 기초하여 상기 평가자 노드, 상기 작업자 노드 및 상기 클라이언트 노드 중 적어도 하나로 보상을 송신하는 단계를 포함한다.In a method of trading a block chain based work request and work result according to an embodiment of the present disclosure, the block chain includes a work request, wherein the work request includes an evaluation request, a reward and a compensation function, a work result and It manages a distributed ledger including a plurality of blocks including data related to evaluation of work results, and includes a plurality of nodes each including at least one computing device. The method comprises the steps of transmitting a job request from the plurality of nodes to the plurality of nodes by a client node; Sending an acceptance of the evaluation request to the client node, in response to the work request, by an evaluator node among the plurality of nodes; Sending, by at least one worker node among the plurality of nodes, an acceptance of the work request to the client node in response to the work request; Transmitting, by the worker node, the work result to the evaluator node; Sending, by the evaluator node, an evaluation of the work outcome to the client node; Sending, by the client node, an approval of the evaluation to the plurality of nodes; And transmitting, by at least one of the plurality of nodes, at least one of the evaluator node, the worker node, and the client node based on the compensation function included in any one of the plurality of blocks. do.
본 개시의 다른 실시예에 따른 블록체인 기반의 작업 요청 및 작업 결과물의 거래 방법에 있어서, 상기 블록체인은, 작업 요청 - 상기 작업 요청은 평가 요청, 보상 및 보상함수를 포함함 -, 작업 결과물 및 작업 결과물의 평가에 관한 데이터를 포함하는 복수의 블록을 포함하는 분산 장부(distributed ledger)를 관리하며, 각각 적어도 하나의 컴퓨팅 장치를 포함하는 복수의 노드를 포함한다. 상기 방법은, 상기 복수의 노드 중에서 클라이언트 노드에 의해, 상기 복수의 노드로 작업 요청이 송신되면, 상기 클라이언트 노드의 식별정보 및 상기 작업 요청에 관한 데이터를 포함하는 블록을 생성하는 단계; 상기 복수의 노드 중에서 평가자 노드에 의해, 상기 작업 요청에 응답하여, 상기 클라이언트 노드로 상기 평가 요청의 수락이 송신되면, 상기 평가자 노드의 식별정보 및 상기 평가 요청의 수락에 관한 데이터를 포함하는 블록을 생성하는 단계; 상기 복수의 노드 중에서 적어도 하나의 작업자 노드에 의해, 상기 작업 요청에 응답하여, 상기 클라이언트 노드로 상기 작업 요청의 수락이 송신되면, 상기 작업자 노드의 식별정보 및 상기 작업 요청의 수락에 관한 데이터를 포함하는 블록을 생성하는 단계; 상기 작업자 노드에 의해, 상기 평가자 노드로 상기 작업 결과물이 송신되면, 상기 작업자 노드의 식별정보 및 상기 작업 결과물에 관한 데이터를 포함하는 블록을 생성하는 단계; 상기 평가자 노드에 의해, 상기 클라이언트 노드로 상기 작업 결과물에 대한 평가가 송신되면, 상기 평가자 노드의 식별정보 및 상기 평가에 관한 데이터를 포함하는 블록을 생성하는 단계; 상기 클라이언트 노드에 의해, 상기 복수의 노드로 상기 평가의 승인이 송신되면, 상기 클라이언트 노드의 식별정보 및 상기 평가 승인에 관한 데이터를 포함하는 블록을 생성하는 단계; 및 상기 복수의 노드 중에서 적어도 하나의 노드에 의해, 상기 복수의 블록 중 어느 하나에 포함된 상기 보상함수에 기초하여 상기 평가자 노드, 상기 작업자 노드 및 상기 클라이언트 노드 중 적어도 하나로 보상을 송신하면, 상기 보상 지급 노드의 식별정보 및 상기 보상에 관한 데이터를 포함하는 블록을 생성하는 단계를 포함한다.In a method of trading a block chain based work request and work result according to another embodiment of the present disclosure, the block chain includes a work request, wherein the work request includes an evaluation request, a reward and a reward function, a work result, and It manages a distributed ledger including a plurality of blocks including data related to evaluation of work results, and includes a plurality of nodes each including at least one computing device. The method includes generating a block including identification information of the client node and data related to the job request when a job request is transmitted to the plurality of nodes by a client node among the plurality of nodes; If an acceptance of the evaluation request is transmitted to the client node by an evaluator node among the plurality of nodes, in response to the operation request, a block including identification information of the evaluator node and data regarding acceptance of the evaluation request is generated. Generating; When the acceptance of the work request is transmitted to the client node by at least one worker node among the plurality of nodes, in response to the work request, includes identification information of the worker node and data regarding acceptance of the work request. Generating a block to be played; Generating, by the worker node, a block including identification information of the worker node and data on the work result when the work result is transmitted to the evaluator node; Generating, by the evaluator node, a block including identification information of the evaluator node and data on the evaluation when an evaluation of the work result is transmitted to the client node; Generating, by the client node, a block including identification information of the client node and data on the evaluation approval when the approval of the evaluation is transmitted to the plurality of nodes; And when at least one node among the plurality of nodes transmits a compensation to at least one of the evaluator node, the worker node, and the client node based on the compensation function included in any one of the plurality of blocks, the compensation And generating a block including identification information of the payment node and data on the reward.
본 개시의 또 다른 실시예에 따른 블록체인 기반의 작업 요청 및 작업 결과물의 거래 시스템에 있어서, 상기 블록체인은, 작업 요청 - 상기 작업 요청은 평가 요청, 보상 및 보상함수를 포함함 -, 작업 결과물 및 작업 결과물의 평가에 관한 데이터를 포함하는 복수의 블록을 포함하는 분산 장부(distributed ledger)를 관리하며, 각각 적어도 하나의 컴퓨팅 장치를 포함하는 복수의 노드를 포함한다. 상기 복수의 노드는, 상기 복수의 노드로 작업 요청을 송신할 수 있으며, 상기 작업 요청 송신 시 상기 클라이언트 노드의 식별정보 및 상기 작업 요청에 관한 데이터를 포함하는 블록을 생성할 수 있는 클라이언트 노드; 클라이언트 노드로 상기 평가 요청의 수락을 송신할 수 있으며, 상기 평가자 노드의 식별정보 및 상기 평가 요청의 수락에 관한 데이터를 포함하는 블록을 생성할 수 있는 평가자 노드; 및 상기 클라이언트 노드로 상기 작업 요청의 수락을 송신할 수 있으며, 상기 작업자 노드의 식별정보 및 상기 작업 요청의 수락에 관한 데이터를 포함하는 블록을 생성할 수 있는 작업자 노드를 포함하며, 상기 작업자 노드는, 상기 평가자 노드로 상기 작업 결과물을 송신하면, 상기 작업자 노드의 식별정보 및 상기 작업 결과물에 관한 데이터를 포함하는 블록을 생성하고, 상기 평가자 노드는, 상기 클라이언트 노드로 상기 작업 결과물에 대한 평가를 송신하면, 상기 평가자 노드의 식별정보 및 상기 평가에 관한 데이터를 포함하는 블록을 생성하고, 상기 클라이언트 노드는, 상기 복수의 노드로 상기 평가의 승인을 송신하면, 상기 클라이언트 노드의 식별정보를 포함하는 상기 평가 승인에 관한 데이터를 포함하는 블록을 생성하고, 상기 복수의 노드 중에서 적어도 하나의 노드는, 상기 복수의 블록 중 어느 하나에 포함된 보상함수에 기초하여 상기 평가자 노드, 상기 작업자 노드 및 상기 클라이언트 노드 중 적어도 하나로 보상을 송신하면, 상기 보상 지급 노드의 식별정보 및 상기 보상에 관한 데이터를 포함하는 블록을 생성한다.In a system for trading blockchain-based work requests and work results according to another embodiment of the present disclosure, the block chain includes a work request, wherein the work request includes an evaluation request, a reward and a reward function, and a work result And a distributed ledger including a plurality of blocks including data regarding evaluation of work results, and a plurality of nodes each including at least one computing device. The plurality of nodes may transmit a work request to the plurality of nodes, and a client node capable of generating a block including identification information of the client node and data regarding the work request when the work request is transmitted; An evaluator node capable of transmitting an acceptance of the evaluation request to a client node, and generating a block including identification information of the evaluator node and data regarding acceptance of the evaluation request; And a worker node capable of sending an acceptance of the work request to the client node, and generating a block including identification information of the worker node and data regarding acceptance of the work request, wherein the worker node includes: When the work result is transmitted to the evaluator node, a block including identification information of the worker node and data related to the work result is generated, and the evaluator node transmits an evaluation of the work result to the client node. Then, if a block including identification information of the evaluator node and data related to the evaluation is generated, and the client node sends the approval of the evaluation to the plurality of nodes, the client node includes identification information of the client node. A block including data regarding evaluation approval is generated, and at least one node among the plurality of nodes is based on the compensation function included in any one of the plurality of blocks, the evaluator node, the worker node, and the client node When a reward is transmitted to at least one of the blocks, a block including identification information of the reward payment node and data related to the reward is generated.
본 개시의 다양한 실시예에 따르면, 블록체인 기반의 분산 컴퓨팅 자원 제공 플랫폼에서, 평가자 노드가 복수의 작업자 노드들에 의해 제공된 작업 결과물을 확인하고 평가할 수 있고, 나아가 작업의 유형에 따른 맞춤형 평가를 실행함으로써 작업별로 최소한의 자원을 효율적으로 사용하여 복잡하고 대규모의 작업에도 적용이 용이한 분산 컴퓨팅 자원 제공 플랫폼을 제공할 수 있다.According to various embodiments of the present disclosure, in a blockchain-based distributed computing resource providing platform, an evaluator node can identify and evaluate a work result provided by a plurality of worker nodes, and further execute a customized evaluation according to a type of work By doing so, it is possible to provide a distributed computing resource providing platform that is easy to apply to complex and large-scale tasks by efficiently using the minimum resources for each task.
또한 본 개시의 일부 실시예에 따르면, 블록체인 기반의 분산 컴퓨팅 자원 제공 플랫폼에 중앙집중식 조력 구성 요소인 보안 런타임 환경 및 대용량 저장소를 결합하는 하이브리드 접근 방식을 통해, 최소한의 중앙 집중식 제어를 통해 여러 다양한 문제를 해결할 수 있는 동시에, 참여 노드들이 작업에 대한 솔루션을 효율적으로 접근하고 개선할 수 있도록 할 수 있다.In addition, according to some embodiments of the present disclosure, through a hybrid approach that combines a secure runtime environment and mass storage, which are centralized tidal components, to a blockchain-based distributed computing resource providing platform, a variety of various methods are provided through minimal centralized control. At the same time, it is possible to solve problems and to enable participating nodes to efficiently access and improve the solution to the task.
구체적으로, 본 개시의 일부 실시예에 따른 보안 런타임 환경은, 참여 노드들(즉, 플랫폼의 구성원들)에게 보안이 확보되는 신뢰성 있는 코드를 제공하고, 작업 노드들의 다양한 디바이스 조합에 적합하도록 요청된 작업을 스케쥴링하고 할당할 수 있도록 한다. 또한, 대용량 저장소는, 기존의 분산된 저장소(decentralized storage)가 대규모 데이터의 처리에 있어서 비효율적이고 고비용이 요구되는 문제점을 해결하여, 머신 러닝과 같은 대규모 작업도 분산 컴퓨팅 환경에 적절히 적용될 수 있도록 한다.Specifically, a secure runtime environment in accordance with some embodiments of the present disclosure provides requested secure code to participating nodes (ie, members of the platform) and is suitable for various device combinations of working nodes. Allows tasks to be scheduled and assigned. In addition, the mass storage solves the problem that the existing decentralized storage is inefficient and expensive in the processing of large data, so that large-scale operations such as machine learning can be properly applied to the distributed computing environment.
본 개시의 실시예들은, 이하 설명하는 첨부 도면을 참조하여 설명될 것이며, 여기서 유사한 참조번호는 유사한 요소들을 나타내지만, 이에 한정되지는 않는다.
도 1은 본 개시의 일 실시예에 따른 블록체인 기반의 작업 요청 및 작업 결과물의 거래 시스템을 나타낸 개략도이다.
도 2는 본 개시의 일 실시예에 따른 블록체인 기반의 작업 요청 및 작업 결과물의 거래 시스템에서 분산된 단말기들 상호간의 관계를 나타낸 블록도이다.
도 3은 본 개시의 일 실시예에 따른 블록체인 기반의 작업 요청 및 작업 결과물의 거래 방법을 나타내는 흐름도이다.
도 4는 본 개시의 일 실시예에 따른 블록체인 기반의 작업 요청 및 작업 결과물의 거래 방법에서 관리자 노드가 복수의 노드들로 작업 명세를 송신하여 구성원을 모집하는 단계를 포함하는 작업 요청 및 결과물의 거래 방법을 나타내는 흐름도이다.
도 5는 본 개시의 일 실시예에 따른 블록체인 기반의 작업 요청 및 작업 결과물의 거래 시스템에서 호스트 노드 및 공용 저장소 노드의 동작을 나타낸 개략도이다.
도 6은 본 개시의 일 실시예에 따른 호스트 노드가 관리자 노드로부터 설정된 보안 런타임 환경을 포함한 애플리케이션을 작업자 노드 및 평가자 노드로 송신하는 동작을 나타낸 개략도이다.
도 7은 본 개시의 일 실시예에 따른 작업 결과물의 컨텐츠가 공용 저장소 노드에 저장되고, 블록체인의 블록에는 컨텐츠에 대한 포인터가 저장되는 구성을 나타낸 개략도이다.
도 8은 본 개시의 일 실시예에 따른 공용 저장소 노드가 작업의 결과물의 컨텐츠를 복수의 샤드로 분산하여 저장하고, 복수의 작업자 노드가 각각의 샤드와 통신하는 구성을 나타낸 개략도이다.
도 9는 본 개시의 일 실시예에 따른 블록체인 기반의 인공신경망에 의한 학습 작업 요청 및 작업 결과물의 거래 시스템에서, 파라미터 변화에 따른 손실함수 값의 변화량을 기초로 작업 결과물을 평가하는 구성을 나타낸 개략도이다.Embodiments of the present disclosure will be described with reference to the accompanying drawings described below, where similar reference numerals indicate similar elements, but are not limited thereto.
1 is a schematic diagram showing a transaction system of a block chain based work request and work result according to an embodiment of the present disclosure.
2 is a block diagram showing the relationship between distributed terminals in a transaction system based on a blockchain-based work request and work result according to an embodiment of the present disclosure.
3 is a flowchart illustrating a method for trading a blockchain-based work request and a work result according to an embodiment of the present disclosure.
4 is a method of trading a block-based work request and a work product according to an embodiment of the present disclosure, wherein the manager node sends a work specification to a plurality of nodes to recruit members, and the work request and the work product include It is a flow chart showing the transaction method.
5 is a schematic diagram showing the operation of a host node and a public storage node in a transaction system based on a blockchain-based work request and work result according to an embodiment of the present disclosure.
6 is a schematic diagram illustrating an operation in which a host node according to an embodiment of the present disclosure sends an application including a secure runtime environment set from an administrator node to a worker node and an evaluator node.
7 is a schematic diagram showing a configuration in which content of a work result according to an embodiment of the present disclosure is stored in a common storage node, and a pointer to the content is stored in a block of the blockchain.
8 is a schematic diagram showing a configuration in which a common storage node according to an embodiment of the present disclosure distributes and stores contents of a result of a job in a plurality of shards, and a plurality of worker nodes communicate with each shard.
9 is a block diagram based on an embodiment of the present disclosure showing a configuration for evaluating a work result based on a change amount of a loss function value according to a parameter change in a transaction system for requesting a work and learning result by an artificial neural network based on a blockchain It is a schematic.
이하, 본 개시의 실시를 위한 구체적인 내용을 첨부된 도면을 참조하여 상세히 설명한다. 다만, 이하의 설명에서는 본 개시의 요지를 불필요하게 흐릴 우려가 있는 경우, 널리 알려진 기능이나 구성에 관한 구체적 설명은 생략하기로 한다.Hereinafter, with reference to the accompanying drawings, specific details for the practice of the present disclosure will be described in detail. However, in the following description, when 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 elements are given the same reference numerals. In addition, in the following description of the embodiments, it may be omitted to describe the same or corresponding elements overlapping. However, although descriptions of components are omitted, it is not intended that such components are not included in any embodiment.
일 실시예에 따르면, 블록체인 기반의 분산 컴퓨팅 자원 제공 플랫폼에서, 예를 들어, 클라이언트 노드가 요청하는, 인공신경망의 학습과 같은 대규모의 데이터와 계산량을 필요로 하는 작업을, 분산된 저장소와 작업자 노드들에 의해 실행하고, 작업자 노드들에 의해 실행된 작업 결과는 평가자 노드에 의해 평가될 수 있다. 작업 결과에 대한 평가자 노드의 평가에 기반하여, 작업자 노드 등과 같이 작업과 관련된 노드들에게 보상이 지급될 수 있다. 이러한 방식을 통해, 클라이언트 노드는 블록체인 네트워크 상에 분산된 자원들을 최적의 방식으로 사용하면서 양질의 작업 결과물을 기대할 수 있으며, 블록체인 네트워크에 참여하는 작업자 노드들은 작업 결과물에 대한 합리적인 평가와 그에 따른 보상을 기대할 수 있다. 나아가, 블록체인 네트워크 상에서 실행되는 작업의 유형에 따른 맞춤형 평가를 실행할 수 있기 때문에, 작업 별로 최소한의 자원을 효율적으로 사용하여 복잡한 대규모의 작업에 대해서도 적용이 용이한 분산 컴퓨팅 자원 제공 플랫폼이 제공된다.According to an embodiment, in a blockchain-based distributed computing resource providing platform, distributed storage and a worker that perform a task requiring large amounts of data and computation, such as learning an artificial neural network, requested by a client node, The results of the work executed by the nodes and executed by the worker nodes can be evaluated by the evaluator node. Based on the evaluation of the evaluator node with respect to the work result, rewards may be paid to nodes related to the task, such as a worker node. Through this method, the client node can expect high-quality work results while using resources distributed on the blockchain network in an optimal manner, and worker nodes participating in the blockchain network can reasonably evaluate the work results and accordingly You can expect compensation. Furthermore, since it is possible to execute a customized evaluation according to the type of work executed on the blockchain network, a distributed computing resource providing platform is provided that is easy to apply to complex large-scale tasks by efficiently using minimum resources for each task.
또한, 본 개시의 일부 실시예에 따르면, 블록체인 기반의 분산 컴퓨팅 자원 제공 플랫폼에는, 중앙집중식 조력 구성 요소인 보안 런타임 환경(secure runtime environment) 및 대용량 저장소(big storage)를 결합하는 하이브리드 접근 방식이 제공된다. 이와 같은 최소한의 중앙 집중식 제어를 통해, 일반적인 분산 클라우딩 컴퓨팅 방식에서 발생할 수 있는 작업 실행의 비효율성을 개선하여 대규모 작업에 이르기까지 여러 다양한 문제를 해결할 수 있는 동시에, 참여 노드들이 작업에 대한 솔루션을 효율적으로 접근하고 개선할 수 있도록 할 수 있다.In addition, according to some embodiments of the present disclosure, a blockchain-based distributed computing resource providing platform includes a hybrid approach that combines a secure runtime environment, which is a centralized help component, and a large storage. Is provided. This minimal centralized control improves the inefficiencies of task execution that can occur in a common distributed cloud computing approach, solving many problems ranging from large jobs to tasks, while participating nodes provide solutions to tasks. It can be effectively approached and improved.
본 개시에 있어서, "블록체인(blockchain)"은, 일반적으로 디지털화된 정보, 자산이나 거래내역(transaction)의 교환이 가능한 분산 환경의 시스템으로, 공유된 장부(ledger)를 이용하여 P2P(peer-to-peer) 네트워크에서 발생되는 전자적 거래 내역의 이력을 기록하는 시스템 또는 플랫폼을 지칭할 수 있다. 여기서, 블록체인은 탈중앙화된 또는 분산된 합의 프로토콜(decentralized consensus mechanism)을 이용하며, 네트워크 상의 검증 노드(validating node)는 동일한 거래내역에 대해 동일한 (또는 합의된) 합의 알고리즘을 실행함으로써 그 거래내역을 승인(또는 비승인)할 수 있는 퍼블릭 블록체인(public blockchain)일 수 있으나, 이에 한정되지 않으며, 프라이빗 블록체인(private blockchain) 또는 이들의 결합을 포함할 수 있다. 또한, 본 개시에 있어서, "노드(node)"는 블록체인에서 공유된 장부를 기록, 유지 및 저장할 수 있으며, 블록의 생성과 같이 거래내역의 기록과 처리가 가능한 계산능력을 갖는 컴퓨팅 장치를 지칭할 수 있다. 또한, 본 개시에 있어서 "노드"는 이하 상세히 설명되는 관리자 노드, 작업자 노드, 평가자 노드 및 클라이언트 노드 중 어느 하나 일 수 있으나, 이에 한정되지 않는다. 예를 들어, "노드"는 블록체인 네트워크에 참여하는 노드들 중의 어느 하나로서, 관리자 노드, 작업자 노드, 평가자 노드 및 클라이언트 노드가 아닌 다른 노드일 수 있다.In the present disclosure, "blockchain (blockchain)" is a system of a distributed environment that can exchange digitized information, assets, or transactions in general, using a shared ledger (P2P) (peer- to-peer) may refer to a system or platform that records the history of electronic transaction history generated in a network. Here, the blockchain uses a decentralized consensus mechanism, and the validating node on the network executes the same (or agreed upon) consensus algorithm for the same transaction details. It may be a public blockchain that can approve (or disapprove), but is not limited thereto, and may include a private blockchain or a combination thereof. In addition, in the present disclosure, "node (node)" refers to a computing device capable of recording, maintaining, and storing a shared book in the blockchain, and having a computational power capable of recording and processing transaction history, such as creation of blocks. can do. In addition, in the present disclosure, the "node" may be any one of a manager node, a worker node, an evaluator node, and a client node described in detail below, but is not limited thereto. For example, the "node" is one of the nodes participating in the blockchain network, and may be a node other than the manager node, worker node, evaluator node, and client node.
도 1은 본 개시의 일 실시예에 따른 블록체인 기반의 작업 요청 및 작업 결과물의 거래 시스템을 나타낸 개략도이다.1 is a schematic diagram showing a transaction system of a block chain based work request and work result according to an embodiment of the present disclosure.
블록체인 기반의 작업 요청 및 작업 결과물의 거래 시스템(100)은, 블록체인 네트워크(150)를 통해 복수의 노드가 상호간에 통신할 수 있도록 구성된다. 일 실시예에 따르면, 시스템(100)에서 저장 및 관리되는 블록체인은, 둘 이상의 노드 또는 단말기 사이의 작업 요청, 작업 결과물 및 작업 결과물의 평가에 관한 데이터를 포함하는 복수의 블록을 포함하는 분산 장부(distributed ledger)를 포함할 수 있다. 또한, 블록체인을 구성하는 복수의 노드는, 각각 적어도 하나의 컴퓨팅 장치를 포함할 수 있으며, 복수의 블록 각각은 작업 요청, 작업 결과물 및 작업 결과물의 평가에 관한 데이터에 대한 해시 참조(hash reference)를 포함할 수 있다. The blockchain-based work request and work
블록체인 네트워크(150)를 통해 노드 간에 작업 요청 및 작업 결과물의 거래가 수행될 수 있다. 클라이언트 노드(110)는, 특정 작업에 대한 보상을 포함한 작업 요청을 송신할 수 있고, 관리자 노드(120)는 작업자 노드(140) 및 평가자 노드(130)에 의해 실행되는 작업 환경을 생성 및 관리할 수 있으며, 다른 노드들의 동작과 상호 연결을 조율하는 기능을 수행할 수 있다. 한편, 작업자 노드(140)는, 클라이언트 노드(110)에 의해 요청된 작업을 수행하고 그 결과물을 제공할 수 있으며, 평가자 노드(130)는 작업자 노드(140)가 제공하는 작업 결과물을 확인하고 평가할 수 있다. 평가자 노드(130)에 의한 작업 결과물의 평가에 따라 작업자 노드(140)에 대한 적절한 보상이 지급될 수 있다.Through the
일 실시예에서, 작업 요청은, 복수의 작업자 노드(140) 중에서 적어도 하나가 해당 작업을 실행하고 그 결과물을 제공하도록 요청하는 정보를 포함한다. 예를 들어, 작업 요청은, 평가 요청, 작업에 대한 보상 및 보상함수를 포함할 수 있다. 또한, 평가 요청은, 복수의 노드 중에서 적어도 하나의 평가자 노드(130)가 작업자 노드(140)에 의해 제공된 작업 결과물을 평가하도록 요청하는 정보를 포함한다. 예를 들면, 평가 요청은, 복수 개의 작업 결과물들의 순위를 매기도록 요청하는 정보를 포함할 수 있다. 한편, 보상은, 이하 상세히 설명하는 바와 같이, 보상 함수에 따라 평가자가 승인(approve)하고, 승인된 결과를 클라이언트 노드 혹은 관리자 노드가 승인할 때, 최종적으로 작업자 노드에게 지급되는 재화이다. 즉, 보상은 작업 결과물 및/또는 평가에 대한 반대급부로서 지급될 재화로서, 암호화된 화폐일 수 있으나, 이에 한정되는 것은 아니다. 보상함수는, 평가자 노드(130)의 평가 결과에 따라 보상을 지급할 작업자 노드(140)와 방법을 지정하는 함수일 수 있다. 예를 들어, 보상함수는, 작업을 수행한 하나 이상의 작업자 노드(140) 전부에게 보상이 균등하게 분배되도록 지정하거나, 그 중 가장 평가 순위가 높은 작업자 노드(140)에게만 보상이 지급되도록 지정할 수도 있다. 보상함수는, 작업을 요청하는 클라이언트 노드(110)의 선호사항 또는 요청하는 작업의 유형에 따라 다르게 정의될 수 있으며, 보상함수를 최적화함으로써 요청되는 작업이 합리적인 비용으로 실행되도록 운용할 수 있다.In one embodiment, the job request includes information requesting that at least one of the plurality of
도 2는 본 개시의 일 실시예에 따른 블록체인 기반의 작업 요청 및 작업 결과물의 거래 시스템에서 분산된 노드 또는 단말기 상호간의 관계를 나타낸 블록도이다. 2 is a block diagram showing the relationship between distributed nodes or terminals in a transaction system based on a blockchain-based work request and work result according to an embodiment of the present disclosure.
도시된 바와 같이, 클라이언트 노드(110)는 지급할 보상을 블록체인 네트워크(150) 상에 예치하면서 작업을 요청하는 거래를 진행할 수 있다. 일 실시예에서, 클라이언트 노드(110)는, 블록체인 네트워크(150)의 복수의 노드로 작업 요청을 송신하도록 구성될 수 있다. 여기서 작업 요청은, 평가 요청, 보상 및 보상함수를 포함할 수 있다. 본 실시예에서, 작업은 머신 러닝과 같은 인공 신경망에 의한 학습 작업일 수 있다. 예를 들면, 클라이언트 노드(110)가 복수의 노드로 작업 결과물과 평가를 요청할 때에 보상 및 보상함수를 함께 송신할 수 있다. 이와 같이, 블록체인 네트워크(150)로 전송된 보상 및 보상함수는 블록체인 장부에 기록돈다. 이 후에 평가자 노드(130)에 의한 작업 평가의 승인이 있는 경우, 보상함수에 따라 해당 작업과 관련된 복수의 노드, 예를 들면 적어도 하나의 작업자 노드(140) 및 평가자 노드(130)에게 보상이 지급되도록 구성될 수 있다. 클라이언트 노드(110)는, 하나의 작업을 여러 개의 작업으로 분할하여 실행되도록 요청할 수도 있다. 이 때, 분할된 각 작업마다 관련된 관리자 노드(120), 평가자 노드(130) 및 작업자 노드(140)가 달라질 수 있고, 그들의 조직체계도 달라질 수 있다. 본 개시에 있어서, "조직체계"란, 블록체인 네트워크에 참여하는 노드들 간의 상하 계층 관계를 지칭할 수 있으며, 이 조직체계에는, 관리자 노드(120)와 다른 노드들의 수직적인 연결관계, 작업자 노드(140)와 평가자 노드(130)간의 수평적인 연결 관계 등을 포함할 수 있다. 도 2에는, 작업들(예를 들어, 작업1, 작업2, 작업3) 별로 노드들(120 내지 140) 사이의 여러가지 조직체계의 예시들이 도시되어 있다. 일 실시예에 따르면, 각 작업마다 다른 노드들 간의 조직체계를 가질 수 있다. 또한, 클라이언트 노드(110)는, 작업 요청의 전송 시 자신의 식별정보와 작업 요청에 관한 데이터를 포함하는 블록을 생성하도록 구성될 수 있다.As illustrated, the
관리자 노드(120)는, 작업자 노드(140) 및 평가자 노드(130)에 의해 실행되는 작업 환경을 생성 및 관리할 수 있으며, 다른 노드들의 동작과 상호 연결을 조율하는 기능을 수행할 수 있고, 챌린지 요청에 대해 승인 또는 거절할 수 있다. 관리자 노드(120)는, 작업 명세를 최초로 정의한 노드이거나, 이러한 노드가 관리자로 지정한 노드일 수 있다.The
일 실시예에 따르면, 관리자 노드(120)는, 블록체인 네트워크(150)의 복수의 노드로 작업 명세를 송신한다. 나아가, 복수의 노드 중 적어도 하나의 노드에 의해 관리자 노드(120)로 평가자 노드 신청이 송신되면, 관리자 노드(120)는 평가자 노드 신청을 송신한 노드 중 적어도 하나로 평가자 노드(130)의 승인을 송신한다. 또한, 복수의 노드 중 적어도 하나의 노드에 의해 관리자 노드(120)로 작업자 노드 신청이 송신되면, 관리자 노드(120)는 작업자 노드 신청을 송신한 노드 중 적어도 하나로 작업자 노드 승인을 송신할 수 있다. According to one embodiment, the
위에서 설명한 절차들에서, 관리자 노드(120)는, 자신의 식별정보를 포함하여 각각의 절차에서 생성된 데이터를 포함하는 블록을 생성할 수 있다. 또한, 관리자 노드(120)는 복수의 노드로 작업 명세를 방송(broadcast)함으로써 해당 작업의 평가와 실행을 진행할 평가자 노드(130)와 작업자 노드(140)를 모집할 수 있다. 이러한 작업 명세의 송신 및 모집에 응답하여, 하나 이상의 노드가 해당 작업의 평가와 실행의 신청을 전송할 수 있다. 이 신청에 응답하여, 관리자 노드(120)는, 해당 신청을 전송한 노드들이 평가자 노드(130), 작업자 노드(140) 또는 다른 관리자 노드가 되는 것을 승인할 수 있다. 관리자 노드(120)는, 이 승인 여부 결정을 위해, 평가자 노드(130) 또는 작업자 노드(140)가 작업을 실행할 수 있는 리소스를 갖추고 있는지 여부를 조사할 수 있다. 여기서, 관리자 노드(120)는 스스로 평가자 노드(130) 또는 작업자 노드(140)가 될 수도 있다.In the above-described procedures, the
관리자 노드(120)는, 작업 환경을 코디네이트(coordinate)할 수 있다. 구체적으로, 관리자 노드(120)는, 특정 작업에 대한 작업 스키마(schema)를 정의하고 그 구현 방법을, 이 후에 해당 작업에 대한 평가와 실행을 진행할 평가자 노드(130)와 작업자 노드(140)에게 바이너리 관리자(Binary Manager)로서 제공할 수 있다. 바이너리 관리자는, 작업 스키마에 따라 실행될 작업의 실행가능한 프로그램(즉, 바이너리 코드)의 배치를 결정한다. 또한, 관리자 노드(120)는, 작업이 실행될 런타임 환경(run-time environment)을 신뢰성 있고 보안이 확보되도록 구성하여 제공할 수 있다. 일 실시예에 따르면, 관리자 노드(120)는, 복수의 노드 중에서 호스트 노드(host node)로 보안 런타임 환경 설정을 송신하고, 자신의 식별정보와 보안 런타임 환경 설정에 관한 데이터를 포함하는 블록을 생성할 수 있다. 이에 더하여, 평가자 노드(130) 및 작업자 노드(140)는 설정된 보안 런타임 환경을 포함한 애플리케이션(application)을 호스트 노드로부터 수신하여 보안 런타임 환경 내에서 작업을 실행할 수 있다.The
또한, 관리자 노드(120)는, 챌린지 요청에 대해 승인 또는 거절하고, 자신의 식별정보와 챌린지 요청 승인 또는 거절에 관한 데이터를 포함하는 블록을 생성할 수 있다. 여기서, 챌린지 요청은, 클라이언트 노드(110) 또는 작업자 노드(140)가 작업 결과물 평가에 대해 불복하여 상위 노드에 대해 평가에 대한 재판단을 구하는 요청이다. 일 실시예에서, 보상함수는, 챌린지 요청의 승인과 거절 중 적어도 하나의 경우에 대한 보상함수를 포함할 수 있다. 또한, 클라이언트 노드(110) 또는 적어도 하나의 작업자 노드(140)는 관리자 노드(120)로 챌린지 요청을 송신할 수 있다. 관리자 노드(120)는 평가자 노드(130)에 의해 송신된 작업 결과물의 평가가 타당한지 판단하고, 복수의 노드로 챌린지 요청의 승인 또는 거절을 송신할 수 있다. 일 실시예에서, 보상함수는, 챌린지 요청의 승인되는 경우와 거절되는 경우에 보상이 다르게 지급되도록 설정될 수 있다.In addition, the
평가자 노드(130)는, 작업자 노드(140)의 작업 결과물을 평가하여 클라이언트 노드(110)로 송신할 수 있다. 일 실시예에 따르면, 클라이언트 노드(110)로부터 평가 요청을 받은 복수의 노드 중에서 수락을 송신한 노드가 평가자 노드(130)가 되도록 구성될 수 있다. 다른 실시예에 따르면, 관리자 노드(120)가 복수의 노드로 방송한 작업 명세에 대해, 복수의 노드 중에서 적어도 하나의 노드가 평가자 노드(130)가 되기를 신청하고, 관리자 노드(120)가 이를 승인함으로써 해당 신청 노드가 평가자 노드(130)로 되도록 구성될 수도 있다.The
평가자 노드(130)는 작업자 노드(140)로부터 작업 결과물을 수신할 수 있다. 평가자 노드(130)는 결과물을 검증(validation) 및 평가한다. 평가자 노드(130)는 클라이언트 노드(110)로 작업 결과물에 대한 평가를 송신할 수 있다. 이 평가에 따라, 또는 평가에 따른 보상함수에 따라, 작업자 노드(140)는 차등화된 보상을 지급받도록 구성될 수 있다. 또한, 평가자 노드(130)는 자신의 식별정보와 작업 결과물 평가에 관한 데이터를 포함하는 블록을 생성할 수 있다The
작업자 노드(140)는 작업을 실행(execute)하고, 작업의 결과물을 송신한다. 일 실시예에 따르면, 클라이언트 노드(110)로부터 작업 요청을 받은 복수의 노드 중에서 수락을 송신한 노드가 작업자 노드(140)가 되도록 구성될 수 있다. 다른 실시예에 따르면, 관리자 노드(120)가 복수의 노드로 방송한 작업 명세에 대해 복수의 노드 중에서 적어도 하나의 노드가 작업자 노드(140)가 되기를 신청하고, 관리자 노드(120)가 이를 승인함으로써 평가자 노드(140)가 되도록 구성될 수도 있다.The
작업자 노드(140)는 요청된 작업을 수행할 수 있다. 일 실시예에 따르면, 작업은 인공신경망을 이용한 학습 작업일 수 있는데, 이 경우 작업은 입력(input) 데이터를 통한 학습과정을 코드로 생성하는 과정일 수 있다. 또한, 작업자 노드(140)는 작업의 결과물을 평가자 노드(130)로 송신하도록 구성될 수 있다. 작업의 결과물은 파일이나 코드와 같은 컨텐츠를 포함할 수 있고, 저장된 컨텐츠에 대한 링크와 같은 컨텐츠 주소, 포인터 등을 포함할 수 있다. 일 실시예에 따르면, 작업자 노드(140)는 작업 결과물 컨텐츠를 대용량 저장소를 제공하는 공용 저장소 노드로 송신할 수 있다. 이 경우, 공용 저장소 노드는 해당 작업 결과물 컨텐츠의 주소를 생성하고, 작업자 노드(140)로 작업 결과물 컨텐츠의 주소를 송신하도록 구성될 수 있다. 이 때, 작업자 노드(140)는 자신의 식별정보와 작업 결과물(또는 그 주소)에 관한 데이터를 포함하는 블록을 생성하도록 구성될 수 있다.The
클라이언트 노드(110), 관리자 노드(120), 평가자 노드(130) 및 작업자 노드(140)를 포함한 각각의 노드는 컴퓨팅 장치를 포함할 수 있다. 예를 들어, 각각의 노드는 스마트폰, 태블릿 PC 등과 같은 휴대용 컴퓨터, 데스크탑 컴퓨터, 서버 장치일 수 있으나, 이에 한정되는 것은 아니다.Each node, including the
본 실시예에 있어서 노드들이 블록을 생성할 때에는 요금(fee)이 요구될 수 있다. 즉, 각 거래(transaction)에 대해 블록을 생성하고 블록체인 네트워크(150)에 기록하려면 블록체인 네트워크의 노드들에 요금을 제공하도록 구성할 수 있다. 일 예에 따르면, 요금은 클라이언트 노드(110)에 의한 첫 번째 작업 요청시의 요금과 동등하거나 그 이상이도록 구성될 수 있다.In this embodiment, a fee may be required when nodes generate blocks. That is, to create a block for each transaction and record it in the
일 실시예에 따르면, 블록체인에는 노드들 간의 상호작용에 관한 평판이 장부로 기록될 수 있다. 각 노드들은 블록체인에 기록된 관리자, 평가자 또는 작업자 노드의 승인, 작업의 요청, 작업의 수락, 작업 결과물의 제출 및 보상 분배와 같은 정보를 추적함으로써 노드들의 평판을 파악할 수 있다. 이러한 평판을 통해, 노드들은 거래 과정에서 좀 더 높은 신뢰를 형성하거나, 더 높은 보상을 제공받을 수 있다. 예를 들어, 클라이언트 노드(110)는, 평판이 나쁜 작업자 노드(140)가 작업을 수행하는 것을 거절할 수 있다. 다른 예로, 작업자 노드(140)는, 평판이 매우 좋은 작업자 노드(140)들이 포함되어 작업 수락 여부에 있어서 치열한 경쟁이 예상될 경우, 작업 요청 수락을 거절할 수 있다.According to an embodiment, a reputation for interaction between nodes may be recorded in the blockchain as a ledger. Each node can grasp the reputation of nodes by tracking information such as the approval of the manager, evaluator, or worker nodes recorded on the blockchain, requests for tasks, acceptance of tasks, submission of work results, and distribution of rewards. Through this reputation, nodes can form higher trust in the transaction process or receive higher rewards. For example, the
도 3은 본 개시의 일 실시예에 따른 블록체인 기반의 작업 요청 및 작업 결과물의 거래 방법을 나타내는 흐름도이다. 이하 상세히 설명하는 블록체인 기반의 작업 요청 및 작업 결과물의 거래 방법(300)의 각 단계의 실행 결과는 블록체인 네트워크(150)에 블록으로 생성되어 기록될 수 있다. 다만, 이하에서는 설명의 편의를 위해, 각 단계의 실행 결과에 대한 블록 생성 과정에 대한 설명을 생략할 수 있다. 3 is a flowchart illustrating a method for trading a blockchain-based work request and a work result according to an embodiment of the present disclosure. The execution results of each step of the
일 실시예에 따른 블록체인 기반의 작업 요청 및 작업 결과물의 거래 방법(300)은, 복수의 노드들 중에서 클라이언트 노드에 의해 블록체인 네트워크(또는 그 네트워크에 연결된 복수의 노드)로 작업 요청이 송신하는 단계(S310)에 의해 개시된다. 작업 요청은, 평가 요청, 작업에 대한 보상 및 보상함수를 포함할 수 있다. 구체적으로 작업 요청은, 작업의 식별 번호, 입력 데이터에 대한 정보, 제한 시간, 희망하는 작업자 또는 평가자 노드의 리스트가 포함될 수 있고, 작업자 노드(140)를 신뢰하는 경우 평가 절차를 생략한다는 내용의 정보를 포함할 수 있다. 단계(S310)의 실행 결과, 클라이언트 노드(110)는, 클라이언트 노드(110)의 식별정보 및 작업 요청에 관한 데이터를 포함하는 블록을 생성한다.According to an embodiment of the present invention, a
작업 요청 송신에 응답하여, 복수의 노드 중에서 평가자 노드에 의해 클라이언트 노드(110)로 평가 요청 수락이 송신된다(S312). 이 단계에서, 평가자 노드(130)는, 평가자 노드(130)의 식별정보 및 평가 요청 수락에 관한 데이터를 포함하는 블록을 생성한다.In response to the transmission of the job request, the evaluation request acceptance is transmitted to the
다음으로, 복수의 노드 중에서 적어도 하나의 작업자 노드(140)에 의해 클라이언트 노드(110)로 작업 요청 수락이 송신(S314)되면, 작업자 노드(140)의 식별정보 및 작업 요청 수락에 관한 데이터를 포함하는 블록을 생성한다.Next, when the work request acceptance is transmitted to the
이상 단계들(S310 내지 S314)이 실행된 후, 작업자 노드(140)는 작업 요청에 따른 작업을 실행한다. 작업은, 관리자 노드(120)로부터 설정된 작업 환경 상에서 실행될 수 있다. 예를 들면, 보안 런타임 환경을 포함한 애플리케이션으로서 도커(docker)와 샌드 박스 래퍼(sandbox wrapper), 프로그램 언어 및 라이브러리 등을 이용하여 작업이 실행될 수 있다. 작업 실행 결과, 작업자 노드(140)에 의해 평가자 노드(130)로 작업 결과물이 송신(S316)되면, 작업자 노드(140)의 식별정보 및 작업 결과물에 관한 데이터를 포함하는 블록을 생성한다.After the above steps S310 to S314 are executed, the
다음으로, 평가자 노드(130)는 작업자 노드(140)에 의해 제공된 작업 결과물에 대한 평가를 실행한다. 예를 들어, 평가자 노드(130)는 작업 결과물을 관리자 노드(120)로부터 설정된 작업 환경 상에서 구동하고, 해당 작업 결과물에 대한 평가값을 측정하거나 상대적 순위(랭크), 및/또는 기준 충족여부(pass or fail)로 평가할 수 있다. 그 결과, 평가자 노드에 의해 클라이언트 노드로 작업 결과물에 대한 평가가 송신(S318)되면, 평가자 노드의 식별정보 및 평가에 관한 데이터를 포함하는 블록을 생성한다.Next, the
클라이언트 노드는 평가자 노드에 의해 제공된 평가가 적절한지 검토할 수 있다. 그 결과, 클라이언트 노드에 의해 복수의 노드로 평가의 승인(S330)이 송신되면, 클라이언트 노드의 식별정보 및 평가 승인에 관한 데이터를 포함하는 블록을 생성한다.The client node can review whether the evaluation provided by the evaluator node is appropriate. As a result, when the approval of the evaluation (S330) is transmitted to the plurality of nodes by the client node, a block including identification information of the client node and data on the evaluation approval is generated.
다음으로, 복수의 노드 중에서 적어도 하나의 노드에 의해, 블록(예를 들어, 클라이언트 노드의 작업 요청에 기초하여 생성된 블록)에 포함된 보상함수에 기초하여 평가자 노드, 작업자 노드 및 클라이언트 노드 중 적어도 하나로 보상을 송신(S332, S334)하면, 보상을 송신한 노드의 식별정보 및 보상에 관한 데이터를 포함하는 블록을 생성한다. 여기서 보상에 관한 데이터는, 보상의 크기, 지급된 대상 등을 포함할 수 있다.Next, at least one of the evaluator node, the worker node, and the client node based on the compensation function included in the block (for example, a block generated based on the client node's work request) by at least one node among the plurality of nodes. When one reward is transmitted (S332, S334), a block including identification information of the node that transmitted the reward and data related to the reward is generated. Here, the data related to the reward may include the size of the reward, the object paid, and the like.
이상 설명한 실시예에서 보상이 작업자 및 평가자에게 지급되도록 설명되었으나, 보상 함수에 따라 다양한 방식으로 보상이 지급될 수 있다. 예를 들면, 작업 결과물이 평가자 노드에 의해 낙제 평가를 받은 경우, 해당 작업을 실행한 작업자 노드에게 보상을 지급하지 않고 클라이언트 노드로 보상을 반환하도록 구성될 수 있다.In the above-described embodiment, the compensation is described to be paid to the operator and the evaluator, but compensation may be paid in various ways according to the compensation function. For example, when the job output is failing evaluation by the evaluator node, it may be configured to return the reward to the client node without paying the reward to the worker node that executed the job.
일 실시예에 따르면, 블록체인 네트워크 상에서의 작업과 평가를 위해 공유되는 컴퓨터 자원이 효율적으로 사용될 수 있도록 각 노드와 작업들에게 할당될 수 있다. 기존의 블록체인의 일종인 이더리움은, 이더리움 가상 머신(EVM)을 사용하는데, 이 환경에서는 제공된 코드가 잘 실행되는지를 확인하기 위해 코드의 모든 행(line-by-line)을 검증한다. 이러한 코드 검증 방법은, 대규모 응용 프로그램의 검증에는 비효율적이다. 특히 머신 러닝 코드는 일반적으로 크기가 크고 복잡한데, 이러한 경우에는 본 실시예에 따른 블록체인 기반의 작업자/평가자 모델이 성능상에서 유리하다. 일 예에서, 평가자 노드(130)는 복수의 작업자 노드(140)에 의해 제공된 작업 결과물을 확인하고, 그 결과물의 평가 또는 등급을 결정한다. 평가의 방법은 작업의 종류에 따라 다를 수 있는데, 일부의 작업에 대해서는 그 결과 값이 특정한 임계치 또는 경계값(boundary)을 만족하는지 여부를 체크하는 단순한 프로세스로도 충분히 평가할 수 있다. 다른 작업에 대해서는, 복수의 작업자 노드(140)들에 의해 실행된 작업 결과물 간의 경쟁을 통하여, 머신 러닝 학습의 결과 그 손실이 가장 적게 발생하는 것을 채택할 수 있다. 이와 같이 작업에 따른 맞춤형 평가를 통해, 블록체인 네트워크 상에 가용한 자원들 중에서 최소한의 자원만을 소비하게 할 수 있다.According to one embodiment, shared computer resources can be allocated to each node and tasks for efficient use and evaluation on the blockchain network. Ethereum, a kind of existing blockchain, uses the Ethereum Virtual Machine (EVM). In this environment, all lines of code (line-by-line) are verified to verify that the provided code is executed well. Such a code verification method is inefficient for verification of a large-scale application program. In particular, the machine learning code is generally large and complex, in which case the blockchain-based worker/evaluator model according to the present embodiment is advantageous in terms of performance. In one example, the
일 실시예에서, 클라이언트 노드(110) 또는 작업자 노드(140)는 챌린지(challenge)를 신청할 수 있도록 구성될 수 있다. 예를 들어, 클라이언트 노드(110)는 평가자 노드(130)가 송신한 작업 결과물에 대한 평가에 불복하여 평가에 대한 재판단을 구하고 싶은 경우가 존재할 수 있다. 이 때, 클라이언트 노드(110)는, 관리자 노드(120)와 같은 상위 노드에 대해 평가가 타당한지에 대한 판단을 신청할 수 있다. 이와 같은 챌린지 신청이 가능한 경우, 보상함수는 챌린지 요청의 승인과 거절 중 적어도 하나의 경우에 따른 보상에 관한 함수를 포함할 수 있다. In one embodiment, the
도 3에 도시된 단계(S340 내지 S364)는, 일 실시예에 따른 블록체인 네트워크에서 작업 결과물의 평가에 대한 챌린지와 보상 절차를 나타낸다. 본 실시예에 따르면, 클라이언트 노드 또는 적어도 하나의 작업자 노드는 관리자 노드로 챌린지 요청을 송신한다(S340). 챌린지 요청의 송신에 응답하여, 관리자 노드는 복수의 노드로 챌린지 요청의 승인 또는 거절을 송신한다(S350, S360). 보상이 실행되는 단계(S352, S354, S362, S364)에서 사용되는 보상함수는, 챌린지 요청이 승인되는 경우와 거절되는 경우에 보상이 다르게 지급되도록 설정될 수 있다. 예를 들면, 챌린지 요청이 승인되는 경우에, 평가자 노드(140)에게 지급될 보상은 클라이언트 노드(110)로 지급되도록 구성되고, 챌린지 요청이 거절되는 경우에는 통상의 보상함수에 따라 지급되도록 구성될 수 있다.Steps S340 to S364 illustrated in FIG. 3 represent a challenge and reward procedure for evaluation of work results in a blockchain network according to an embodiment. According to the present embodiment, the client node or at least one worker node transmits a challenge request to the manager node (S340). In response to the transmission of the challenge request, the manager node sends approval or rejection of the challenge request to a plurality of nodes (S350, S360). The compensation function used in the steps (S352, S354, S362, and S364) in which compensation is executed may be set such that compensation is differently paid when the challenge request is approved and rejected. For example, when the challenge request is approved, the reward to be paid to the
도 3에서, 보상이 평가자 노드(130) 및 작업자 노드(140)에게 지급되거나, 클라이언트 노드(110) 및 작업자 노드(140)에게 지급되는 단계(S352, S354, S362, S364)로 도시되어 있으나, 보상 방식은 이에 한정되는 것은 아니며, 보상 함수에 따라 다양한 방식으로 보상이 지급될 수 있다. 예를 들면, 클라이언트 노드(110)가 요청한 챌린지에 대하여 관리자 노드(120)가 챌린지 요청을 승인하는 경우, 즉 평가자 노드(130)에 의한 작업 결과물의 평가가 잘못되었다고 판단된 경우, 평가자 노드(130) 및 작업자 노드(140)에게 보상을 지급하지 않고 클라이언트 노드(110)로 보상을 반환하도록 구성될 수 있다.In FIG. 3, the rewards are shown in steps S352, S354, S362, and S364, which are paid to the
일 실시예에 따르면, 평가자 노드(130)가 클라이언트 노드(110)로부터의 평가 요청을 수락할 경우, 일정한 보증금이 블록체인 네트워크에 유치되도록 구성될 수 있다. 또한, 관리자 노드(120)에 의해 평가에 대한 챌린지 요청이 승인된 경우, 즉 평가자 노드(130)의 평가가 잘못되었다고 판단되는 경우, 보증금이 클라이언트 노드(110)로 송신된다. 다른 한편, 클라이언트 노드(110)에 의해 평가가 승인될 경우에는 보증금이 평가자 노드(130)로 반환되도록 구성될 수 있다. 보증금은 챌린지 요청에 필요한 수수료보다 크도록 구성될 수 있다. 이러한 보증금 시스템을 도입할 경우, 평가자 노드(130)로부터 좀 더 신뢰성 있는 평가를 기대할 수 있는 효과가 있다.According to an embodiment, when the
도 4는 본 개시의 일 실시예에 따른 블록체인 기반의 작업 요청 및 작업 결과물의 거래 방법에서 관리자 노드가 복수의 노드로 작업 명세를 송신하여 구성원을 모집하는 절차를 나타내는 흐름도이다. 일 실시예에 따른 블록체인 기반의 작업 요청 및 작업 결과물의 거래 방법(400)은, 관리자 노드(120)에 의해 복수의 노드로 작업 명세가 송신되는 단계(S410)에 의해 개시될 수 있다. 관리자 노드(120)는, 작업 명세를 방송하여 작업에 관하여 다른 참여 노드들에게 통보함으로써, 평가자 노드(130) 및 작업자 노드(140)를 모집할 수 있다. 여기서 작업 명세는, 작업에 관한 내용을 나타내는 것으로서, 작업에 관한 테스트 데이터, 평가자 및 작업자에게 요구되는 사항 등을 포함할 수 있다. 단계(S410)의 실행 결과, 관리자 노드(120)는, 관리자 노드(120)의 식별정보를 포함하는 작업 명세에 관한 데이터를 포함하는 블록을 생성한다.4 is a flowchart illustrating a procedure in which a manager node sends a job specification to a plurality of nodes to recruit members in a method of trading a blockchain-based job request and a job result according to an embodiment of the present disclosure. The
작업 명세의 송신에 응답하여, 복수의 노드 중 적어도 하나의 노드에 의해 관리자 노드(120)로 평가자 노드 신청이 송신된다(S412). 이 단계에서, 평가자 노드 신청을 송신한 노드의 식별정보 및 평가자 노드 신청에 관한 데이터를 포함하는 블록을 생성한다.In response to the transmission of the job specification, the evaluator node request is transmitted to the
또한, 평가자 노드 신청에 응답하여, 관리자 노드(120)에 의해 평가자 노드 신청을 송신한 노드 중 적어도 하나로 평가자 노드의 승인이 송신된다(S414). 일 실시예에 따르면, 이 과정에서 관리자 노드(120)는 신청한 노드가 평가자 노드(130)로서 자격이 있는지를 판단하기 위하여, 대시보드(Dashboard)를 이용해 해당 노드가 테스트 데이터를 처리하는 퍼포먼스(Performance)를 관찰할 수 있고, 또는 노드의 평판을 검토해 볼 수 있다. 단계(S414)의 실행 결과, 관리자 노드(120)는, 관리자 노드(120)의 식별정보 및 평가자 노드 승인에 관한 데이터를 포함하는 블록을 생성한다.In addition, in response to the appraiser node request, the approval of the appraiser node is transmitted to at least one of the nodes that have sent the appraiser node request by the manager node 120 (S414). According to an embodiment, in this process, the
한편, 작업 명세 송신에 응답하여, 복수의 노드 중 적어도 하나의 노드에 의해 관리자 노드(120)로 작업자 노드 신청이 송신된다(S416). 이 단계에서, 작업자 노드 신청을 송신한 노드의 식별정보 및 작업자 노드 신청에 관한 데이터를 포함하는 블록을 생성한다.On the other hand, in response to the job specification transmission, a worker node request is transmitted to the
또한, 작업자 노드 신청에 응답하여, 관리자 노드(120)에 의해 작업자 노드 신청을 송신한 노드 중 적어도 하나로 작업자 노드의 승인이 송신된다(S418). 일 실시예에 따르면, 이 과정에서 관리자 노드(120)는 신청한 노드가 작업자 노드(130)로서 자격이 있는지를 판단하기 위하여, 대시보드(Dashboard)와 해당 노드의 평판을 이용할 수 있다. 단계(S418)의 실행 결과, 관리자 노드(120)는, 관리자 노드(120)의 식별정보 및 작업자 노드 승인에 관한 데이터를 포함하는 블록을 생성한다.In addition, in response to the worker node request, the approval of the worker node is transmitted to at least one of the nodes that have sent the worker node request by the manager node 120 (S418). According to an embodiment, in this process, the
이상 설명한 바와 같이, 복수의 노드 중 평가자 노드(130) 및 작업자 노드(140)로 지정되는 것은, 관리자 노드(120)가 복수의 노드로 방송(broadcast)한 작업 명세에 대해, 복수의 노드 중에서 적어도 하나의 노드가 평가자 노드(130) 또는 작업자 노드(140)가 되기를 신청하고, 관리자 노드(120)가 이를 승인함으로써 이루어지도록 구성될 수 있다. 관리자 노드(120)가 평가자 노드(130) 및 작업자 노드(140) 신청의 승인/거절 과정을 통하여, 클라이언트 노드(110)의 작업 요청 이전에 평가자 노드(130)및 작업자 노드(140)의 풀(pool)을 구성할 수 있다. 클라이언트 노드는, 이와 같이 구성된 풀 내에서 평가자 노드 및 작업자 노드에게 작업 요청 및 평가 요청을 하도록 구성될 수 있다.As described above, among the plurality of nodes, designated as the
관리자 노드(120)가 방송하는 작업 명세에는, 테스트 데이터 등이 포함될 수 있다. 따라서, 평가자 노드(130) 및/또는 작업자 노드(140)가 되기를 신청하는 노드는, 작업 명세에 포함된 테스트 데이터를 실행하고, 관리자 노드(120)는 대시보드에 나타나는 노드들의 실행 퍼포먼스를 보고 승인/거절을 결정할 수 있다. 본 개시에 있어서 "대시보드(dashboard)"는, 블록체인 네트워크(150)의 사용자들에게 참여 노드들의 전체적인 상태(예를 들어, 거래의 상태, 작업의 진행 상태, 작업을 실행한 노드의 성능 등)를 표시할 수 있는 데이터 구조 또는 인터페이스를 지칭할 수 있다. 일 예에서, 대시보드는 웹페이지 형태로 표현될 수 있으며, 각 노드에서는 API를 통해 대시보드에 접근할 수 있다. 이와 같은 구성을 통하여 작업 명세에 따른 작업을 실행하는데 필요한 리소스를 갖춘 노드들로 풀을 구성하여 관리할 수 있고, 클라이언트는 풀에 포함된 검증된 노드들에게 작업을 요청할 수 있다. 이와 같은 노드들의 풀 관리 방법은, 머신 러닝과 같은 큰 규모의 리소스를 필요로 하는 작업의 실행에 중요하다. 즉, 본 실시예에 따른 방식에 따르면, 머신 러닝의 대규모 데이터 처리능력이 부족한 노드가 작업자 또는 평가자 노드로 신청함으로써 발생될 수 있는 불필요한 평가 및 작업 실행 과정이 개입되는 것을 방지할 수 있다.The job specification broadcast by the
관리자 노드(120)가 관리하는 풀 내의 각 노드의 리소스 수준은 시간에 따라 달라질 수 있다. 예를 들어, 일반적으로 낮 시간에는 기업의 서비스 운영을 위하여 노드의 리소스가 구동되기 때문에 활용가능한 리소스의 수준이 낮아지는 반면, 서비스가 운영되지 않는 밤 시간에는 높은 리소스 활용가능 수준을 가질 수 있다. 이 경우, 풀 내의 노드들은, 리소스 활용가능 수준이 낮은 낮 시간 중에 많은 리소스를 요구하는 작업에 투입되었다가 낮은 평가를 받는 대신에, 작은 리소스를 요구하는 작업에 할당되어 높은 평가를 받는 것이, 더 높은 보상을 얻기에 유리할 수 있다.The resource level of each node in the pool managed by the
도 5는 본 개시의 일 실시예에 따른 블록체인 기반의 작업 요청 및 작업 결과물의 거래 시스템에서 호스트 노드(510) 및 공용 저장소 노드(520)의 동작을 나타낸 개략도이다.5 is a schematic diagram showing the operation of the
본 실시예에 따른 시스템(500)은, 블록체인 네트워크(150)에 연결된 구성원 또는 노드들에게 신뢰와 보안을 제공할 수 있으며, 컴퓨팅 디바이스 유형의 다양한 조합을 관리할 수 있다. 또한, 일반적으로 분산된 저장소(storage)는 중앙화된 저장소보다 비효율적이고 운영에 많은 비용이 소요되는 문제점이 있다. 이러한 기존의 분산 저장소의 문제를 해결하기 위해, 시스템(500)은, 중앙화된 조력 구성 요소, 즉 보안 런타임 환경(secure runtime environment) 및 대용량 저장소(big storage)와 탈중앙화된 블록 체인의 결합이라는 하이브리드 접근 방식을 통한 신뢰도 있는 고성능 분산 컴퓨팅을 구현한다. The
도시된 바와 같이, 호스트 노드(510)는 보안이 확보된 런타임 환경 및 이 환경에서 실행될 수 있는 애플리케이션을 제공할 수 있다. 본 개시에 있어서 "런타임 환경(runtime environment)"은 노드와 같은 컴퓨터가 실행되는 동안 프로세스나 프로그램을 위한 소프트웨어 서비스를 제공하는 가상 머신 또는 가상 머신의 상태를 지칭하는 것으로, 컴퓨터가 실행되는 동안 프로세스나 프로그램을 위한 소프트웨어 서비스의 집합일 수 있다. 일 예로, 런타임 환경은 컴퓨팅 장치에서 실행 가능하도록 생성된 이미지 형태의 파일을 안전하게 실행할 수 있는 환경을 의미할 수 있다. 런타임 환경에서 실행 가능한 이미지 파일은, 도커 허브(docker hub)의 이미지(예: https://hub.docker.com/search/?image_filter=official&type=image 참조)이거나, 가상 머신에 특정 어플리케이션이 설치된 이미지일 수 있다(예: https://aws.amazon.com/marketplace/b/6297422013?ref_=header_nav_category_6297422013 참조). As shown, the
또한 공용 저장소 노드(520)는 대용량 저장소로서 기능하는 것으로, 블록체인 네트워크(150)의 복수의 노드 중 어느 하나의 노드일 수 있다. 공용 저장소 노드(520)와 같은 중앙 집중식 제어를 최소한으로 실행하여 다양한 형태의 작업을 해결할 수 있다. 기존의 폰 노이만 아키텍처가 일반적으로 중앙처리장치(CPU), 메모리, 입출력장치(I/O) 및 그들 사이의 통신을 컴퓨팅의 주요 구성 요소로 하는 것에 대응하여, 본 실시예의 시스템(500)에 의해 제공되는 분산 컴퓨팅 환경은, 보안 런타임 환경, 대용량 저장소 및 블록 체인을 주요 구성 요소로써 구성될 수 있다.In addition, the
도 6은, 본 개시의 일 실시예에 따른 호스트 노드가, 관리자 노드로부터 수신한 보안 런타임 환경 설정에 기초하여, 보안 런타임 환경을 포함한 애플리케이션을 작업자 노드 및 평가자 노드로 송신하는 구성을 나타낸 개략도이다. 일 실시예에 따르면, 보안 런타임 환경은 관리자 노드(120)에 의해 설정될 수 있다. 관리자 노드(120)는 작업이 실행될 런타임 환경을 신뢰성 있고 보안되도록 구성하여 제공할 수 있다.6 is a schematic diagram showing a configuration in which a host node according to an embodiment of the present disclosure transmits an application including a secure runtime environment to a worker node and an evaluator node based on the secure runtime environment setting received from the administrator node. According to one embodiment, the secure runtime environment may be set by the
일 실시예에 따르면, 관리자 노드(120)가 복수의 노드 중에서 호스트 노드(510)로 보안 런타임 환경 설정을 송신하고, 관리자 노드(120)의 식별정보 및 보안 런타임 환경 설정에 관한 데이터를 포함하는 블록을 생성한다. 또한, 호스트 노드는, 작업자 노드 및 평가자 노드 중 적어도 하나의 노드로, 설정된 보안 런타임 환경을 포함한 애플리케이션을 송신하고, 호스트 노드의 식별정보 및 보안 런타임 환경을 포함한 애플리케이션에 관한 데이터를 포함하는 블록을 생성할 수 있다.According to an embodiment, the
머신 러닝과 같은 인공신경망에 의한 학습 작업은, 메모리 또는 저장소 크기 및 GPU 등의 컴퓨팅 디바이스의 계산능력의 다양한 조합을 필요로 할 수 있다. 따라서, 관리자 노드(110)는, 다른 컴퓨팅 노드들에 의해 적절히 요청된 작업이 실행되도록, 해당 작업을 스케쥴(schedule)하고 할당할 수 있다. 즉, 관리자 노드(110)는, 요청된 작업의 실행에 적합한 보안 런타임 환경(secure runtime environment)을 설정하고, 이렇게 설정된 보안 런타임 환경을 호스트 노드(510)를 통해 작업자 노드(140) 또는 평가자 노드(130)에 전송함으로써, 신뢰할 수 있는 컴퓨터에 합리적인 운영 비용으로 작업을 할당할 수 있다. 보안 런타임 환경은, 그 환경에서 실행될 코드가 작업자 노드 등에게 무해하다는 것을 확인해줌으로써, 블록체인 네트워크 상의 노드들 사이에 원활한 거래가 가능하도록 할 수 있다.Learning tasks by artificial neural networks, such as machine learning, may require various combinations of memory or storage size and computing power of computing devices such as GPUs. Accordingly, the
일 실시예에 따른 보안 런타임 환경은, 다양한 환경에서 코드가 실행되도록 하는 샌드 박싱(sandboxing) 구조와 리소스 통제 방식을 이용할 수 있다. 보안 런타임 환경은, 인공신경망에 의한 학습 작업 프로그래밍에 대해 편리한 백엔드(Backend)를 제공하는 참조 노드(reference node)를 포함할 수 있다(이하 "백엔드 노드"라고 지칭함). 보안 런타임 환경은, 코드의 안전한 실행을 위해, 애플리케이션으로서 도커(docker)와 샌드 박스 래퍼(sandbox wrapper)를 이용할 수 있다. 백엔드 노드는, 서로 다른 프로그래밍 언어를 호스트하는 효율적인 백엔드 API(application programming interface) 서버와 대중적인 AI 프레임 워크를 제공할 수 있다. 백엔드 노드는, Python 2/3, R, PHP, C/C++ 등의 다양한 프로그래밍 언어와 런타임 라이브러리를 지원할 수 있다. 백엔드 노드에 의해 지원되는 런타임 라이브러리에는, Java, Javascript, Julia, Octave, Haskell, Lua, NodeJS 외에도 TensorFlow, Keras, Caffe 및 MXNet이 포함될 수 있다. 보안 런타임 환경은 바이너리 관리자(Binary manager) - 바이너리(Binary)의 인증, 배치 및 업데이트를 담당함 - 를 포함할 수 있다. 새로운 바이너리가 배포되면 바이너리 관리자는 보안 런타임 환경에서 새로운 바이너리를 다운로드하도록 평가자 노드(130)와 작업자 노드(140)에게 알리도록 구성될 수 있다. The secure runtime environment according to an embodiment may use a sandboxing structure and a resource control method to execute code in various environments. The secure runtime environment may include a reference node that provides a convenient backend for programming learning tasks by artificial neural networks (hereinafter referred to as "backend node"). The secure runtime environment can use dockers and sandbox wrappers as applications for safe execution of code. Backend nodes can provide efficient backend application programming interface (API) servers and popular AI frameworks that host different programming languages. Backend nodes can support a variety of programming languages and runtime libraries, such as Python 2/3, R, PHP, and C/C++. Runtime libraries supported by the backend nodes can include TensorFlow, Keras, Caffe and MXNet in addition to Java, Javascript, Julia, Octave, Haskell, Lua, NodeJS. The secure runtime environment may include a binary manager-responsible for authentication, deployment, and update of the binary. When a new binary is distributed, the binary manager may be configured to notify the
도 7은 본 개시의 일 실시예에 따른 작업 결과물의 컨텐츠가 공용 저장소 노드에 저장되고, 블록에는 컨텐츠에 대한 포인터가 저장되는 구성을 나타낸 개략도이다. 일 실시예에 따르면, 작업자 노드(140)는 공용 저장소 노드(520)로 작업 결과물의 컨텐츠를 송신하고, 공용 저장소 노드(520)는 컨텐츠를 저장하고, 저장된 컨텐츠의 주소를 생성하여 작업자 노드(140)로 반송한다. 이 경우, 작업자 노드(140)는, 작업자 노드의 식별정보 및 컨텐츠 주소에 관한 제1 데이터를 포함하는 블록을 생성한다. 한편, 작업자 노드(140)가 작업 실행 후 작업 결과물을 평가자 노드(130)로 송신하는 경우, 해당 작업 결과물은 공용 저장소 노드(520)에 저장된 컨텐츠 주소를 포함할 수 있다. 또한, 평가자 노드(130)에 의해 생성된 블록에 포함되는 작업 결과물에 관한 데이터는 컨텐츠 주소에 관한 제2 데이터를 포함할 수 있다.7 is a schematic diagram showing a configuration in which contents of a work result according to an embodiment of the present disclosure are stored in a common storage node, and pointers to contents are stored in a block. According to an embodiment, the
일반적으로 머신 러닝의 작업은 대규모 입출력 데이터를 처리해야 하는 문제를 수반하므로, 본 실시예에 따른 블록체인 네트워크의 노드들 사이에 효율적인 데이터 전송을 필요로 한다. 그런데, 일반적인 블록체인의 블록은 효율성을 위해 제한된 크기를 가지도록 설계되어 있다. 이러한 문제점을 해결하기 위해, 본 실시예에 따른 블록체인 네트워크는 공용 저장소 노드(520)와 같이 중앙화된 대용량 저장소를 통해 데이터를 공유할 수 있고, 이를 통해 노드들 간에 데이터 전송이 효율적으로 이루어질 수 있다. 예를 들어, 클라이언트 노드(110)는, 요청된 작업과 관련된 입력(input) 데이터를 공용 저장소 노드(520)를 통해 작업자 노드(140)와 공유할 수 있다. 또한, 평가자 노드(130) 및 작업자 노드(140)는, 요청된 작업과 관련된 출력(output) 데이터를 포함한 작업 결과물을 공용 저장소 노드(520)를 통해 클라이언트 노드(110)와 공유할 수 있습니다. 이러한 데이터 공유 과정에서 각 노드는 시스템에서 제공하는 API를 이용할 수 있는데, 예를 들어, 저장 공간의 데이터 경로에 의한 호출을 허용하도록 블록체인 API를 사용할 수 있다.In general, the operation of machine learning entails the problem of processing large-scale input/output data, and thus requires efficient data transfer between nodes of the blockchain network according to the present embodiment. However, blocks of general blockchains are designed to have a limited size for efficiency. To solve this problem, the blockchain network according to the present embodiment can share data through a centralized mass storage such as a
블록체인 네트워크의 각 노드는 실제 작업 실행 착수 전에 공용 저장소 노드(520)에 적절한 공간을 확보할 수 있다. 예를 들어, 관리자 노드(120)가 작업을 코디네이트하는 과정에서 공용 저장소 노드(520)에 공간을 확보하여, 클라이언트 노드(110)가 학습할 입력 데이터와 테스트 데이터의 공간을 예약하고, 평가자 노드(130)와 작업자 노드(140)가 작업 실행 및 작업 결과물 평가 중에 사용할 임시 공간을 확보할 수 있다.Each node of the blockchain network can secure a suitable space in the
일 실시예에 따르면, 공용 저장소 노드(520)에 의해 관리되는 대용량 저장소는 컨텐츠 주소(content-address)기반일 수 있다. 즉, 저장소에 저장된 컨텐츠의 주소는, 업로드된 컨텐츠에 대한 암호화된 해시 함수 - 예를 들어, SHA-2 - 일 수 있다. 블록체인 네트워크의 노드들은 공용 저장소 노드(520)를 통해 업로드된 데이터를 공유할 수 있으므로 각 노드에 동일 데이터에 대한 업데이트를 실행할 필요가 없으며, 공용 저장소 노드(520)에 저장되는 데이터는 그 데이터 소유자와 같은 개인 정보를 포함하지 않을 수 있다. 일 실시예에서, 공용 저장소 노드(520)에 업로드한 데이터를 암호화하기 위해, 공용 저장소 노드(520)와 블록체인 프로토콜에서 암호화/복호화 함수와 암호 화/복호화 키를 제공할 수 있다. 일 실시예에서, 공용 저장소 노드(520)에 파일이 생성 및 저장되면, 파일 소유자(또는 파일 생성 노드)는 생성된 파일의 TTL(time to live)를 지정하여 지정된 기간이 지나면 해당 파일이 자동으로 삭제되도록 구성될 수 있다. 이는 공용 저장소 노드(520)의 효율적인 관리에 도움이 된다.According to an embodiment, the mass storage managed by the
도 8은 본 개시의 일 실시예에 따른 공용 저장소 노드가 작업의 결과물의 컨텐츠를 복수의 샤드로 분산하여 저장하고, 복수의 작업자 노드가 각각의 샤드와 통신하는 구성을 나타낸 개략도이다. 도시된 바와 같이, 공용 저장소 노드는, 작업자 노드가 제공한 작업 결과물의 컨텐츠를 복수의 샤드(shard)로 분산하여 저장할 수 있다. 이 경우, 컨텐츠의 주소는 복수의 샤드에 대한 주소를 포함할 수 있다.8 is a schematic diagram showing a configuration in which a common storage node according to an embodiment of the present disclosure distributes and stores contents of a result of a job in a plurality of shards, and a plurality of worker nodes communicate with each shard. As illustrated, the common storage node may distribute and store the contents of the work result provided by the worker node in a plurality of shards. In this case, the address of the content may include addresses for a plurality of shards.
또한, 클라이언트 노드를 파라미터 서버로 이용하여 데이터의 병렬처리를 구현할 수 있다. 즉, 클라이언트 노드가 파라미터 서버로 이용될 경우, 파라미터 서버는 인공신경망 학습을 블록체인 기반의 분산 처리 환경에서 실행하기 위해, 복수의 인경신경망 모델에 대한 파라미터를 조절하면서 복수 회 반복적인 학습 과정을 실행할 수 있다. 일 예로, 도 8에 도시된 바와 같이, 클라이언트 노드가 인공신경망의 학습 작업을 요청한 경우에는, 복수의 인공신경망 모델의 학습에 필요한 파라미터들을 분할하여, 각 분할된 파라미터들을 복수의 작업자 노드 및 평가자 노드에 의한 병렬처리로 처리할 수 있다. 여기서, 클라이언트 노드는, 블록체인 네트워크에 반복적으로 조금씩 개선된 데이터셋과 파라미터에 기초한 작업을 요청할 수 있다. 이 작업 요청에 응답하여, 작업자 노드, 평가자 노드 및 관리자 노드는, 최종적으로 만족하는 작업 결과물이 생성될 때까지, 상호 협력하여 복수의 인공신경망 모델의 학습을 반복적으로 실행할 수 있다.In addition, parallel processing of data can be implemented using a client node as a parameter server. That is, when the client node is used as a parameter server, the parameter server executes multiple iterative learning processes while adjusting parameters for multiple neural network models to execute artificial neural network learning in a blockchain-based distributed processing environment. Can. As an example, as illustrated in FIG. 8, when a client node requests a learning operation of an artificial neural network, parameters required for training a plurality of artificial neural network models are divided, and each divided parameter is a plurality of worker nodes and an evaluator node It can be processed by parallel processing by. Here, the client node may repeatedly request the blockchain network based on the improved dataset and parameters. In response to this work request, the worker node, the evaluator node, and the manager node can cooperate with each other and repeatedly execute training of a plurality of artificial neural network models until a satisfactory work result is generated.
인공신경망 학습 작업의 경우, 공용 저장소 노드는, 해당 작업에 필요한 입력 데이터에 대한 복수의 데이터 샤드를 가지고 있다. 공용 저장소 노드는 데이터 샤드를 여러 저장소에 복사하여 저장할 수 있고, 이로 인해 작업자는 공용 저장소 노드와의 데이터 통신을 효율적으로 실행할 수 있다. 일 실시예에서, 클라이언트 노드(110)는, 인공신경망 학습 작업에 있어서, 복수의 평가자 노드에게, 복수의 가중치(weight), 인공신경망 모델 사본 주소, 데이터 샤드 주소에 기초한 작업 실행 및 평가를 요청할 수 있다. 이에 응답하여, 평가자 노드는 학습된 결과를 전송할 수 있으며, 클라이언트 노드(110)는, 학습된 결과에 기초하여 가중치를 업데이트하고, 조율된 가중치를 다시 평가자 노드에 전송할 수 있다.In the case of an artificial neural network learning task, the common storage node has a plurality of data shards for input data required for the task. The public storage node can copy and store data shards to multiple storages, thereby enabling workers to efficiently perform data communication with the public storage node. In one embodiment, the
도 9는 본 개시의 일 실시예에 따른 블록체인 기반의 인공신경망에 의한 학습 작업 요청 및 작업 결과물의 거래 시스템에서 파라미터 변화에 따른 손실함수 값의 변화량을 기초로 작업 결과물을 평가하는 구성을 나타낸 개략도이다. 일 실시예에 따르면, 작업 요청은 인공신경망에 의한 학습 작업 요청을 포함하고, 평가는 파라미터 변화에 따른 손실함수 값의 변화량을 기초로 한 평가를 포함할 수 있다.9 is a schematic diagram showing a configuration for evaluating a work result based on a change amount of a loss function value according to a parameter change in a transaction system of a work request and a work result by a blockchain-based artificial neural network according to an embodiment of the present disclosure to be. According to an embodiment, the work request includes a request for learning work by an artificial neural network, and the evaluation may include an evaluation based on a change amount of a loss function value according to a parameter change.
예를 들어, 가중치(w)가 임의 값을 가지는 초기 가중치 벡터일 때, 로컬 컨벡스 손실 함수(locally convex loss function; L(w))를 최적화하는 작업을 가정한다. 이 경우, 작업자 노드가 경사 하강법(gradient descents)를 사용하면, 손실 함수(L(w))가 0이 되도록 가중치(w)를 임의로 변환할 것이다. 이 경우, 가중치(w)는, w=w-a(dL(w)/dw)를 이용해 갱신될 수 있다. 평가자 노드는, 손실 함수(L(w))를 0에 가장 가깝게 수렴한 작업자 노드에 대해 가장 높은 보상을 지급하도록 평가할 수 있다.For example, it is assumed that when the weight w is an initial weight vector having an arbitrary value, the operation of optimizing the local convex loss function (L(w)) is assumed. In this case, if the worker node uses gradient descents, it will randomly convert the weight w so that the loss function L(w) is zero. In this case, the weight w can be updated using w=w-a(dL(w)/dw). The evaluator node can evaluate the loss function L(w) to provide the highest compensation for the worker node that converged closest to zero.
본 개시의 앞선 설명은 당업자들이 본 개시를 행하거나 이용하는 것을 가능하게 하기 위해 제공된다. 본 개시의 다양한 수정예들이 당업자들에게 쉽게 자명할 것이고, 본원에 정의된 일반적인 원리들은 본 개시의 취지 또는 범위를 벗어나지 않으면서 다양한 변형예들에 적용될 수도 있다. 따라서, 본 개시는 본원에 설명된 예들에 제한되도록 의도된 것이 아니고, 본원에 개시된 원리들 및 신규한 특징들과 일관되는 최광의의 범위가 부여되도록 의도된다.The preceding description of the present disclosure is provided to enable those 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, the present disclosure is not intended to be limited to the examples described herein, but is intended to be given the broadest scope consistent with the principles and novel features disclosed herein.
100, 500 : 작업 요청 및 작업 결과물 거래 시스템
110 : 클라이언트 노드
120 : 관리자 노드
130 : 평가자 노드
140 : 작업자 노드
150 : 블록체인 네트워크
300, 400 : 작업 요청 및 작업 결과물 거래 방법
510 : 호스트 노드
520 : 공용 저장소 노드
700 : 블록체인
710 : 블록100, 500: work request and work product trading system
110: client node
120: manager node
130: Evaluator node
140: worker node
150: blockchain network
300, 400: How to request work and trade results
510: host node
520: public storage node
700: Blockchain
710: block
Claims (20)
상기 블록체인은, 작업 요청 - 상기 작업 요청은 평가 요청, 보상 및 보상함수를 포함함 -, 작업 결과물 및 작업 결과물의 평가에 관한 데이터를 포함하는 복수의 블록을 포함하는 분산 장부(distributed ledger)를 관리하며, 각각 적어도 하나의 컴퓨팅 장치를 포함하는 복수의 노드를 포함하며,
상기 방법은,
상기 복수의 노드 중에서 클라이언트 노드에 의해, 상기 복수의 노드로 작업 요청을 송신하는 단계;
상기 복수의 노드 중에서 평가자 노드에 의해, 상기 작업 요청에 응답하여, 상기 클라이언트 노드로 상기 평가 요청의 수락을 송신하는 단계;
상기 복수의 노드 중에서 적어도 하나의 작업자 노드에 의해, 상기 작업 요청에 응답하여, 상기 클라이언트 노드로 상기 작업 요청의 수락을 송신하는 단계;
상기 작업자 노드에 의해, 상기 평가자 노드로 상기 작업 결과물을 송신하는 단계;
상기 평가자 노드에 의해, 상기 클라이언트 노드로 상기 작업 결과물에 대한 평가를 송신하는 단계;
상기 클라이언트 노드에 의해, 상기 복수의 노드로 상기 평가의 승인을 송신하는 단계; 및
상기 복수의 노드 중에서 적어도 하나의 노드에 의해, 상기 복수의 블록 중 어느 하나에 포함된 상기 보상함수에 기초하여 상기 평가자 노드, 상기 작업자 노드 및 상기 클라이언트 노드 중 적어도 하나로 보상을 송신하는 단계를 포함하는, 방법.
In the method of trading blockchain-based work requests and work results,
The blockchain includes a distributed ledger including a plurality of blocks including work request-the work request includes an evaluation request, a reward and a reward function-and data related to the evaluation of the work result and the work result. Management, and includes a plurality of nodes, each comprising at least one computing device,
The above method,
Sending a job request to the plurality of nodes by a client node among the plurality of nodes;
Sending an acceptance of the evaluation request to the client node, in response to the work request, by an evaluator node among the plurality of nodes;
Transmitting, by at least one worker node among the plurality of nodes, an acceptance of the work request to the client node in response to the work request;
Transmitting, by the worker node, the work result to the evaluator node;
Sending, by the evaluator node, an evaluation of the work outcome to the client node;
Sending, by the client node, an approval of the evaluation to the plurality of nodes; And
And transmitting, by at least one of the plurality of nodes, a compensation to at least one of the evaluator node, the worker node, and the client node based on the compensation function included in any one of the plurality of blocks. , Way.
상기 복수의 노드는 관리자 노드를 더 포함하며, 상기 보상함수는 챌린지 요청의 승인과 거절 중 적어도 하나의 경우에 대한 보상함수를 포함하고,
상기 방법은,
상기 클라이언트 노드 또는 상기 작업자 노드에 의해, 상기 관리자 노드로 챌린지 요청을 송신하는 단계; 및
상기 관리자 노드에 의해, 상기 복수의 노드로 상기 챌린지 요청의 승인 또는 거절을 송신하는 단계를 더 포함하는, 방법.
According to claim 1,
The plurality of nodes further includes an administrator node, and the compensation function includes a compensation function for at least one of approval and rejection of a challenge request,
The above method,
Sending, by the client node or the worker node, a challenge request to the manager node; And
And sending, by the administrator node, approval or rejection of the challenge request to the plurality of nodes.
상기 관리자 노드에 의해, 상기 복수의 노드로 작업 명세를 송신하는 단계;
상기 복수의 노드 중 적어도 하나의 노드에 의해, 상기 관리자 노드로 평가자 노드의 신청을 송신하는 단계;
상기 관리자 노드에 의해, 상기 평가자 노드의 신청을 송신한 노드 중 적어도 하나로 평가자 노드의 승인을 송신하는 단계;
상기 복수의 노드 중 적어도 하나의 노드에 의해, 상기 관리자 노드로 작업자 노드의 신청을 송신하는 단계; 및
상기 관리자 노드에 의해, 상기 작업자 노드의 신청을 송신한 노드 중 적어도 하나로 작업자 노드의 승인을 송신하는 단계를 더 포함하는, 방법.
According to claim 2,
Sending, by the manager node, a job specification to the plurality of nodes;
Sending, by at least one of the plurality of nodes, an application for an evaluator node to the manager node;
Sending, by the manager node, an approval of an evaluator node to at least one of the nodes that have sent the request for the evaluator node;
Transmitting, by at least one of the plurality of nodes, an application for a worker node to the manager node; And
And sending, by the manager node, an acknowledgment of a worker node to at least one of the nodes that sent the request for the worker node.
상기 관리자 노드에 의해, 상기 복수의 노드 중에서 호스트 노드로 보안 런타임 환경 설정을 송신하는 단계; 및
상기 호스트 노드에 의해, 상기 작업자 노드 및 상기 평가자 노드 중 적어도 하나의 노드로 상기 설정된 보안 런타임 환경 및 애플리케이션을 송신하는 단계를 더 포함하는, 시스템.
The method of claim 3
Sending, by the administrator node, a secure runtime environment setting from the plurality of nodes to a host node; And
And sending, by the host node, the established secure runtime environment and application to at least one of the worker node and the evaluator node.
상기 작업자 노드에 의해, 공용 저장소 노드로 상기 작업 결과물의 컨텐츠를 송신하여, 상기 컨텐츠의 주소가 생성되도록 하는 단계를 더 포함하고,
상기 작업자 노드에 의해 상기 평가자 노드로 송신되는 작업 결과물은 상기 컨텐츠의 주소를 포함하고,
상기 생성된 블록에 포함되는 상기 작업 결과물에 관한 데이터는 상기 컨텐츠의 주소에 관한 제2 데이터를 포함하는, 방법.
The method of claim 1
Further comprising the step of transmitting, by the worker node, the content of the work result to a common storage node, so that the address of the content is generated,
The work result transmitted to the evaluator node by the worker node includes the address of the content,
The data related to the work result included in the generated block includes second data regarding the address of the content.
상기 공용 저장소 노드에 의해, 상기 작업 결과물의 컨텐츠를 복수의 샤드로 분산하여 저장하는 단계를 더 포함하고
상기 컨텐츠의 주소는 복수의 샤드에 대한 주소를 포함하는, 방법.
The method of claim 5
Further comprising, by the common storage node, the contents of the work results are distributed and stored in a plurality of shards
The address of the content includes addresses for a plurality of shards.
상기 작업 요청은 인공신경망에 의한 학습 작업 요청을 포함하고,
상기 평가는 상기 인공신경망의 파라미터 변화에 따른 손실함수 값의 변화량을 기초로 한 평가를 포함하는, 방법.
The method of claim 1
The work request includes a learning work request by an artificial neural network,
The evaluation includes an evaluation based on a change amount of a loss function value according to a change in parameters of the artificial neural network.
상기 블록체인은, 작업 요청 - 상기 작업 요청은 평가 요청, 보상 및 보상함수를 포함함 -, 작업 결과물 및 작업 결과물의 평가에 관한 데이터를 포함하는 복수의 블록을 포함하는 분산 장부(distributed ledger)를 관리하며, 각각 적어도 하나의 컴퓨팅 장치를 포함하는 복수의 노드를 포함하며,
상기 방법은,
상기 복수의 노드 중에서 클라이언트 노드에 의해, 상기 복수의 노드로 작업 요청이 송신되면, 상기 클라이언트 노드의 식별정보 및 상기 작업 요청에 관한 데이터를 포함하는 블록을 생성하는 단계;
상기 복수의 노드 중에서 평가자 노드에 의해, 상기 작업 요청에 응답하여, 상기 클라이언트 노드로 상기 평가 요청의 수락이 송신되면, 상기 평가자 노드의 식별정보 및 상기 평가 요청의 수락에 관한 데이터를 포함하는 블록을 생성하는 단계;
상기 복수의 노드 중에서 적어도 하나의 작업자 노드에 의해, 상기 작업 요청에 응답하여, 상기 클라이언트 노드로 상기 작업 요청의 수락이 송신되면, 상기 작업자 노드의 식별정보 및 상기 작업 요청의 수락에 관한 데이터를 포함하는 블록을 생성하는 단계;
상기 작업자 노드에 의해, 상기 평가자 노드로 상기 작업 결과물이 송신되면, 상기 작업자 노드의 식별정보 및 상기 작업 결과물에 관한 데이터를 포함하는 블록을 생성하는 단계;
상기 평가자 노드에 의해, 상기 클라이언트 노드로 상기 작업 결과물에 대한 평가가 송신되면, 상기 평가자 노드의 식별정보 및 상기 평가에 관한 데이터를 포함하는 블록을 생성하는 단계;
상기 클라이언트 노드에 의해, 상기 복수의 노드로 상기 평가의 승인이 송신되면, 상기 클라이언트 노드의 식별정보 및 상기 평가 승인에 관한 데이터를 포함하는 블록을 생성하는 단계; 및
상기 복수의 노드 중에서 적어도 하나의 노드에 의해, 상기 복수의 블록 중 어느 하나에 포함된 상기 보상함수에 기초하여 상기 평가자 노드, 상기 작업자 노드 및 상기 클라이언트 노드 중 적어도 하나로 보상을 송신하면, 상기 보상 지급 노드의 식별정보 및 상기 보상에 관한 데이터를 포함하는 블록을 생성하는 단계를 포함하는, 방법.
In the method of trading blockchain-based work requests and work results,
The blockchain includes a distributed ledger including a plurality of blocks including work request-the work request includes an evaluation request, a reward, and a reward function-and data related to evaluation of the work result and the work result. Management, and includes a plurality of nodes, each comprising at least one computing device,
The above method,
Generating a block including identification information of the client node and data related to the job request when a job request is transmitted to the plurality of nodes by a client node among the plurality of nodes;
If an acceptance of the evaluation request is transmitted to the client node by an evaluator node among the plurality of nodes, in response to the operation request, a block including identification information of the evaluator node and data regarding acceptance of the evaluation request is generated. Generating;
When the acceptance of the work request is transmitted to the client node by at least one worker node among the plurality of nodes, in response to the work request, includes identification information of the worker node and data regarding acceptance of the work request. Generating a block to be played;
Generating, by the worker node, a block including identification information of the worker node and data on the work result when the work result is transmitted to the evaluator node;
Generating, by the evaluator node, a block including identification information of the evaluator node and data on the evaluation when an evaluation of the work result is transmitted to the client node;
Generating, by the client node, a block including identification information of the client node and data on the evaluation approval when the approval of the evaluation is transmitted to the plurality of nodes; And
When at least one of the plurality of nodes transmits a reward to at least one of the evaluator node, the worker node, and the client node based on the reward function included in any one of the plurality of blocks, the reward is paid And generating a block including the identification information of the node and data related to the compensation.
상기 복수의 노드는 관리자 노드를 더 포함하며, 상기 보상함수는 챌린지 요청의 승인과 거절 중 적어도 하나의 경우에 대한 보상함수를 포함하고,
상기 방법은,
상기 클라이언트 노드 또는 상기 작업자 노드에 의해, 상기 관리자 노드로 챌린지 요청이 송신되면, 상기 클라이언트 노드 또는 상기 작업자 노드의 식별정보 및 상기 챌린지 요청에 관한 데이터를 포함하는 블록을 생성하는 단계; 및
상기 관리자 노드에 의해, 상기 복수의 노드로 상기 챌린지 요청의 승인 또는 거절이 송신되면, 상기 관리자 노드의 식별정보 및 상기 챌린지 요청 승인 또는 거절에 관한 데이터를 포함하는 블록을 생성하는 단계를 더 포함하는, 방법.
The method of claim 8,
The plurality of nodes further includes an administrator node, and the compensation function includes a compensation function for at least one of approval and rejection of a challenge request,
The above method,
Generating a block including identification information of the client node or the worker node and data regarding the challenge request when a challenge request is transmitted to the manager node by the client node or the worker node; And
And when the approval or rejection of the challenge request is transmitted to the plurality of nodes by the manager node, generating a block including identification information of the manager node and data regarding approval or rejection of the challenge request. , Way.
상기 관리자 노드에 의해, 상기 복수의 노드로 작업 명세가 송신되면, 상기 관리자 노드의 식별정보 및 상기 작업 명세에 관한 데이터를 포함하는 블록을 생성하는 단계;
상기 복수의 노드 중 적어도 하나의 노드에 의해, 상기 관리자 노드로 평가자 노드의 신청이 송신되면, 상기 노드의 식별정보 및 상기 평가자 노드의 신청에 관한 데이터를 포함하는 블록을 생성하는 단계;
상기 관리자 노드에 의해, 상기 평가자 노드의 신청을 송신한 노드 중 적어도 하나로 평가자 노드의 승인이 송신되면, 상기 관리자 노드의 식별정보 및 상기 평가자 노드의 승인에 관한 데이터를 포함하는 블록을 생성하는 단계;
상기 복수의 노드 중 적어도 하나의 노드에 의해, 상기 관리자 노드로 작업자 노드의 신청이 송신되면, 상기 노드의 식별정보 및 상기 작업자 노드의 신청에 관한 데이터를 포함하는 블록을 생성하는 단계; 및
상기 관리자 노드에 의해, 상기 작업자 노드의 신청을 송신한 노드 중 적어도 하나로 작업자 노드의 승인이 송신되면, 상기 관리자 노드의 식별정보 및 상기 작업자 노드의 승인에 관한 데이터를 포함하는 블록을 생성하는 단계를 더 포함하는, 방법.
The method of claim 9,
Generating, by the manager node, a block including identification information of the manager node and data on the job specification when a job specification is transmitted to the plurality of nodes;
Generating, by at least one node among the plurality of nodes, an application for an evaluator node to the manager node, generating a block including identification information of the node and data regarding the application for the evaluator node;
Generating, by the manager node, a block including identification information of the manager node and data regarding approval of the evaluator node when an approval of the evaluator node is transmitted to at least one of the nodes that have transmitted the request for the evaluator node;
Generating a block including identification information of the node and data regarding the application of the worker node when an application of the worker node is transmitted to the manager node by at least one node among the plurality of nodes; And
Generating, by the manager node, a block including identification information of the manager node and data on the approval of the worker node when the approval of the worker node is transmitted to at least one of the nodes that have sent the request for the worker node. The method, which includes more.
상기 관리자 노드에 의해, 상기 복수의 노드 중에서 호스트 노드로 보안 런타임 환경 설정이 송신되면, 상기 관리자 노드의 식별정보 및 상기 보안 런타임 환경 설정에 관한 데이터를 포함하는 블록을 생성하는 단계; 및
상기 호스트 노드에 의해, 상기 작업자 노드 및 상기 평가자 노드 중 적어도 하나의 노드로 상기 설정된 보안 런타임 환경 및 애플리케이션이 송신되면, 상기 호스트 노드의 식별정보 및 상기 보안 런타임 환경 및 애플리케이션에 관한 데이터를 포함하는 블록을 생성하는 단계를 더 포함하는, 시스템.
The method of claim 10
Generating, by the manager node, a block including identification information of the manager node and data on the security runtime environment setting when a security runtime environment setting is transmitted from the plurality of nodes to a host node; And
When the set secure runtime environment and application are transmitted to the at least one node of the worker node and the evaluator node by the host node, a block including identification information of the host node and data regarding the secure runtime environment and application The system further comprising the step of generating.
상기 작업자 노드에 의해, 공용 저장소 노드로 상기 작업 결과물의 컨텐츠가 송신되고, 상기 컨텐츠의 주소가 생성되면, 상기 작업자 노드의 식별정보 및 상기 컨텐츠의 주소에 관한 제1 데이터를 포함하는 블록을 생성하는 단계를 더 포함하고,
상기 작업자 노드에 의해 상기 평가자 노드로 송신되는 작업 결과물은 상기 컨텐츠의 주소를 포함하고,
상기 생성된 블록에 포함되는 상기 작업 결과물에 관한 데이터는 상기 컨텐츠의 주소에 관한 제2 데이터를 포함하는, 방법.
The method of claim 8
When the content of the work result is transmitted to the public storage node by the worker node, and the address of the content is generated, a block including identification information of the worker node and first data regarding the address of the content is generated. Further comprising steps,
The work result transmitted to the evaluator node by the worker node includes the address of the content,
The data related to the work result included in the generated block includes second data regarding the address of the content.
상기 공용 저장소 노드에 의해, 상기 작업 결과물의 컨텐츠를 복수의 샤드로 분산하여 저장하는 단계를 더 포함하고
상기 컨텐츠의 주소는 복수의 샤드에 대한 주소를 포함하는, 방법.
The method of claim 12
Further comprising, by the common storage node, the contents of the work results are distributed and stored in a plurality of shards
The address of the content includes addresses for a plurality of shards.
상기 작업 요청은 인공신경망에 의한 학습 작업 요청을 포함하고,
상기 평가는 상기 인공신경망의 파라미터 변화에 따른 손실함수 값의 변화량을 기초로 한 평가를 포함하는, 방법.
The method of claim 8
The work request includes a learning work request by an artificial neural network,
The evaluation includes an evaluation based on a change amount of a loss function value according to a change in parameters of the artificial neural network.
상기 블록체인은, 작업 요청 - 상기 작업 요청은 평가 요청, 보상 및 보상함수를 포함함 -, 작업 결과물 및 작업 결과물의 평가에 관한 데이터를 포함하는 복수의 블록을 포함하는 분산 장부(distributed ledger)를 관리하며, 각각 적어도 하나의 컴퓨팅 장치를 포함하는 복수의 노드를 포함하며,
상기 복수의 노드는,
상기 복수의 노드로 작업 요청을 송신할 수 있으며, 상기 작업 요청 송신 시 상기 클라이언트 노드의 식별정보 및 상기 작업 요청에 관한 데이터를 포함하는 블록을 생성할 수 있는 클라이언트 노드;
클라이언트 노드로 상기 평가 요청의 수락을 송신할 수 있으며, 상기 평가자 노드의 식별정보 및 상기 평가 요청의 수락에 관한 데이터를 포함하는 블록을 생성할 수 있는 평가자 노드; 및
상기 클라이언트 노드로 상기 작업 요청의 수락을 송신할 수 있으며, 상기 작업자 노드의 식별정보 및 상기 작업 요청의 수락에 관한 데이터를 포함하는 블록을 생성할 수 있는 작업자 노드를 포함하며,
상기 작업자 노드는, 상기 평가자 노드로 상기 작업 결과물을 송신하면, 상기 작업자 노드의 식별정보 및 상기 작업 결과물에 관한 데이터를 포함하는 블록을 생성하고,
상기 평가자 노드는, 상기 클라이언트 노드로 상기 작업 결과물에 대한 평가를 송신하면, 상기 평가자 노드의 식별정보 및 상기 평가에 관한 데이터를 포함하는 블록을 생성하고,
상기 클라이언트 노드는, 상기 복수의 노드로 상기 평가의 승인을 송신하면, 상기 클라이언트 노드의 식별정보를 포함하는 상기 평가 승인에 관한 데이터를 포함하는 블록을 생성하고,
상기 복수의 노드 중에서 적어도 하나의 노드는, 상기 복수의 블록 중 어느 하나에 포함된 보상함수에 기초하여 상기 평가자 노드, 상기 작업자 노드 및 상기 클라이언트 노드 중 적어도 하나로 보상을 송신하면, 상기 보상 지급 노드의 식별정보 및 상기 보상에 관한 데이터를 포함하는 블록을 생성하는, 시스템.
In the transaction system of blockchain-based work requests and work results,
The blockchain includes a distributed ledger including a plurality of blocks including work request-the work request includes an evaluation request, a reward and a reward function-and data related to the evaluation of the work result and the work result. Management, and includes a plurality of nodes, each comprising at least one computing device,
The plurality of nodes,
A client node capable of transmitting a job request to the plurality of nodes, and generating a block including identification information of the client node and data regarding the job request when the job request is transmitted;
An evaluator node capable of transmitting an acceptance of the evaluation request to a client node, and generating a block including identification information of the evaluator node and data regarding acceptance of the evaluation request; And
And a worker node capable of transmitting an acceptance of the work request to the client node, and generating a block including identification information of the worker node and data regarding acceptance of the work request,
When the worker node transmits the work result to the evaluator node, the worker node generates a block including identification information of the worker node and data on the work result,
When the evaluator node transmits an evaluation of the work result to the client node, it generates a block including identification information of the evaluator node and data on the evaluation,
When the client node transmits the approval of the evaluation to the plurality of nodes, the client node generates a block including data on the evaluation approval including identification information of the client node,
If at least one node among the plurality of nodes transmits a reward to at least one of the evaluator node, the worker node, and the client node based on the reward function included in any one of the plurality of blocks, the reward payment node A system for generating a block including identification information and data related to the compensation.
상기 복수의 노드는 관리자 노드를 더 포함하고.
상기 보상함수는 챌린지 요청의 승인과 거절 중 적어도 하나의 경우에 대한 보상함수를 포함하고,
상기 클라이언트 노드 또는 상기 작업자 노드는, 상기 관리자 노드로 챌린지 요청을 송신하면, 상기 클라이언트 노드 또는 상기 작업자 노드의 식별정보 및 상기 챌린지 요청에 관한 데이터를 포함하는 블록을 생성하고
상기 관리자 노드는, 상기 복수의 노드로 상기 챌린지 요청의 승인 또는 거절을 송신하면, 상기 관리자 노드의 식별정보 및 상기 챌린지 요청 승인 또는 거절에 관한 데이터를 포함하는 블록을 생성하는, 시스템.
The method of claim 15,
The plurality of nodes further includes an administrator node.
The compensation function includes a compensation function for at least one of approval and rejection of a challenge request,
When the client node or the worker node sends a challenge request to the manager node, the client node or the worker node generates a block including identification information of the client node or the worker node and data regarding the challenge request.
When the administrator node sends an approval or rejection of the challenge request to the plurality of nodes, the system generates a block including identification information of the administrator node and data regarding approval or rejection of the challenge request.
상기 관리자 노드는, 상기 복수의 노드 중에서 호스트 노드로 보안 런타임 환경 설정을 송신하면, 상기 관리자 노드의 식별정보 및 상기 보안 런타임 환경 설정에 관한 데이터를 포함하는 블록을 생성하고,
상기 호스트 노드는, 상기 작업자 노드 및 상기 평가자 노드 중 적어도 하나의 노드로 상기 설정된 보안 런타임 환경 및 애플리케이션을 송신하면, 상기 호스트 노드의 식별정보 및 상기 보안 런타임 환경 및 애플리케이션에 관한 데이터를 포함하는 블록을 생성하는, 시스템.
The method of claim 16
When the administrator node transmits a secure runtime environment setting to a host node among the plurality of nodes, a block including identification information of the administrator node and data regarding the secure runtime environment setting is generated,
The host node, when transmitting the set security runtime environment and application to at least one of the worker node and the evaluator node, blocks the block including identification information of the host node and data about the security runtime environment and application. Generated, system.
상기 작업자 노드는, 공용 저장소 노드로 상기 작업 결과물의 컨텐츠를 송신하고, 상기 컨텐츠의 주소가 생성되면, 상기 작업자 노드의 식별정보 및 상기 컨텐츠의 주소에 관한 제1 데이터를 포함하는 블록을 생성하고,
상기 작업자 노드에 의해 상기 평가자 노드로 송신되는 작업 결과물은 상기 컨텐츠의 주소를 포함하고,
상기 생성된 블록에 포함되는 상기 작업 결과물에 관한 데이터는 상기 컨텐츠의 주소에 관한 제2 데이터를 포함하는, 시스템.
The method of claim 15
The worker node transmits the content of the work result to a common storage node, and when the address of the content is generated, generates a block including identification information of the worker node and first data regarding the address of the content,
The work result transmitted to the evaluator node by the worker node includes the address of the content,
The data related to the work result included in the generated block includes second data regarding the address of the content.
상기 공용 저장소 노드는, 상기 작업 결과물의 컨텐츠를 복수의 샤드로 분산하여 저장하고,
상기 컨텐츠의 주소는 복수의 샤드에 대한 주소를 포함하는, 시스템.
The method of claim 18
The common storage node distributes and stores the contents of the work result in a plurality of shards,
The address of the content includes addresses for a plurality of shards.
상기 블록체인은, 작업 요청 - 상기 작업 요청은 평가 요청, 보상 및 보상함수를 포함함 -, 작업 결과물 및 작업 결과물의 평가에 관한 데이터를 포함하는 복수의 블록을 포함하는 분산 장부(distributed ledger)를 관리하며, 각각 적어도 하나의 컴퓨팅 장치를 포함하는 복수의 노드를 포함하며,
상기 명령어들은 프로세서에 의해 실행될 때 상기 프로세서로 하여금,
상기 복수의 노드 중에서 클라이언트 노드에 의해, 상기 복수의 노드로 작업 요청이 송신하는 동작;
상기 복수의 노드 중에서 평가자 노드에 의해, 상기 작업 요청에 응답하여, 상기 클라이언트 노드로 상기 평가 요청의 수락이 송신하는 동작;
상기 복수의 노드 중에서 적어도 하나의 작업자 노드에 의해, 상기 작업 요청에 응답하여, 상기 클라이언트 노드로 상기 작업 요청의 수락이 송신하는 동작;
상기 작업자 노드에 의해, 상기 평가자 노드로 상기 작업 결과물이 송신하는 동작;
상기 평가자 노드에 의해, 상기 클라이언트 노드로 상기 작업 결과물에 대한 평가를 송신하는 동작;
상기 클라이언트 노드에 의해, 상기 복수의 노드로 상기 평가의 승인을 송신하는 동작; 및
상기 복수의 노드 중에서 적어도 하나의 노드에 의해, 상기 복수의 블록 중 어느 하나에 포함된 상기 보상함수에 기초하여 상기 평가자 노드, 상기 작업자 노드 및 상기 클라이언트 노드 중 적어도 하나로 보상을 송신하는 동작을 실행하도록 하는, 컴퓨터 판독가능 저장 매체.
As a non-transitory computer-readable storage medium storing instructions for the blockchain-based work request and the transaction of work results,
The blockchain includes a distributed ledger including a plurality of blocks including work request-the work request includes an evaluation request, a reward, and a reward function-and data related to evaluation of the work result and the work result. Management, and includes a plurality of nodes, each comprising at least one computing device,
The instructions, when executed by a processor, cause the processor to:
An operation request is transmitted from the plurality of nodes to the plurality of nodes by a client node;
An acceptance of the evaluation request to the client node by an evaluator node among the plurality of nodes in response to the operation request;
At least one worker node among the plurality of nodes, in response to the job request, sending an acceptance of the job request to the client node;
Transmitting, by the worker node, the work result to the evaluator node;
Sending, by the evaluator node, an evaluation of the work outcome to the client node;
Sending, by the client node, an approval of the evaluation to the plurality of nodes; And
At least one node among the plurality of nodes is configured to perform an operation of transmitting a compensation to at least one of the evaluator node, the worker node, and the client node based on the compensation function included in any one of the plurality of blocks. A computer readable storage medium.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190000984A KR102206026B1 (en) | 2019-01-04 | 2019-01-04 | System and method for transaction of work requests and products based on blockchain |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190000984A KR102206026B1 (en) | 2019-01-04 | 2019-01-04 | System and method for transaction of work requests and products based on blockchain |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20200093089A true KR20200093089A (en) | 2020-08-05 |
KR102206026B1 KR102206026B1 (en) | 2021-01-22 |
Family
ID=72041500
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020190000984A KR102206026B1 (en) | 2019-01-04 | 2019-01-04 | System and method for transaction of work requests and products based on blockchain |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102206026B1 (en) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102296907B1 (en) * | 2021-03-02 | 2021-09-01 | 주식회사 에이아이댑스 | The method and system for providing cloud service based blockchain |
KR20220072946A (en) * | 2020-11-25 | 2022-06-03 | 주식회사 커먼컴퓨터 | Method and system for providing one-click distribution service in linkage with code repository |
US20220180416A1 (en) * | 2020-11-24 | 2022-06-09 | Bill Borden Shook | Method and System for Facilitating a Marketplace for Labor Arbitrage |
US20220326994A1 (en) * | 2021-04-12 | 2022-10-13 | Dell Products L.P. | Computing resource sharing system |
WO2023204533A1 (en) * | 2022-04-18 | 2023-10-26 | 박은지 | Method, system and non-transitory computer-readable recording medium for providing content-based service |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101266173B1 (en) * | 2011-11-16 | 2013-05-21 | 한국과학기술원 | System for an ubiquitous online marketplace and method for communications between requesters and crowd-workers |
KR20180113140A (en) * | 2017-04-05 | 2018-10-15 | 삼성에스디에스 주식회사 | System for processing data based on blockchain and Operating method thereof |
-
2019
- 2019-01-04 KR KR1020190000984A patent/KR102206026B1/en active IP Right Grant
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101266173B1 (en) * | 2011-11-16 | 2013-05-21 | 한국과학기술원 | System for an ubiquitous online marketplace and method for communications between requesters and crowd-workers |
KR20180113140A (en) * | 2017-04-05 | 2018-10-15 | 삼성에스디에스 주식회사 | System for processing data based on blockchain and Operating method thereof |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220180416A1 (en) * | 2020-11-24 | 2022-06-09 | Bill Borden Shook | Method and System for Facilitating a Marketplace for Labor Arbitrage |
US11847675B2 (en) * | 2020-11-24 | 2023-12-19 | Bill Borden Shook | Method and system for facilitating a marketplace for labor arbitrage |
KR20220072946A (en) * | 2020-11-25 | 2022-06-03 | 주식회사 커먼컴퓨터 | Method and system for providing one-click distribution service in linkage with code repository |
KR102296907B1 (en) * | 2021-03-02 | 2021-09-01 | 주식회사 에이아이댑스 | The method and system for providing cloud service based blockchain |
US20220326994A1 (en) * | 2021-04-12 | 2022-10-13 | Dell Products L.P. | Computing resource sharing system |
WO2023204533A1 (en) * | 2022-04-18 | 2023-10-26 | 박은지 | Method, system and non-transitory computer-readable recording medium for providing content-based service |
Also Published As
Publication number | Publication date |
---|---|
KR102206026B1 (en) | 2021-01-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102206026B1 (en) | System and method for transaction of work requests and products based on blockchain | |
CN110428257B (en) | Password cracking task processing method, equipment and storage medium | |
JP2016219014A (en) | Resource transfer system | |
CN108959621A (en) | A kind of implementation method, device, equipment and the storage medium of block chain network | |
CN110199302A (en) | Event driven block chain workflow processing | |
Sujana et al. | Smart PSO-based secured scheduling approaches for scientific workflows in cloud computing | |
KR20200023706A (en) | Distributed computing resources sharing system and computing apparatus thereof based on block chain system supporting smart contract | |
Khairuddin et al. | An Exploration of Bitcoin mining practices: Miners' trust challenges and motivations | |
CN113344535B (en) | Software development outsourcing control system based on block chain and implementation method | |
Ghaemi et al. | Chainfaas: An open blockchain-based serverless platform | |
WO2022103900A1 (en) | Edge computing platform supported by smart contract enabled blockchain network | |
Heilig et al. | Location-aware brokering for consumers in multi-cloud computing environments | |
AU2019380719A1 (en) | Intelligent, decentralized and autonomous marketplace for distributed computing and storage | |
EP4020270A1 (en) | Attestation support for elastic cloud computing environments | |
Aggarwal et al. | Solving user priority in cloud computing using enhanced optimization algorithm in workflow scheduling | |
CN109993528A (en) | It is a kind of for managing the method and apparatus of committal charge | |
JP2018535500A (en) | Temporary consensus network in resource transfer system | |
Aggarwal et al. | Fog-integrated cloud architecture enabled multi-attribute combinatorial reverse auctioning framework | |
Bashir et al. | Advanced Blockchain Development: Build highly secure, decentralized applications and conduct secure transactions | |
CN114912904B (en) | Project delivery state determining method, system, electronic equipment and storage medium | |
KR20200022273A (en) | Method for performing mining in parallel with machine learning and method for supproting the mining, in a distributed computing resource shring system based on block chain | |
Mehta et al. | A two level broker system for infrastructure as a service cloud | |
KR20200048722A (en) | Method for providing encryption communication using the same key within a working group in a distributed computing resource shring system based on block chain | |
CN109493037A (en) | Assets distributing method, device and storage medium based on DAG structure | |
Boerger et al. | Enabling short-term energy flexibility markets through blockchain |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right |