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 PDF

Info

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
Application number
KR1020190000984A
Other languages
Korean (ko)
Other versions
KR102206026B1 (en
Inventor
김민현
Original Assignee
주식회사 커먼컴퓨터
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 커먼컴퓨터 filed Critical 주식회사 커먼컴퓨터
Priority to KR1020190000984A priority Critical patent/KR102206026B1/en
Publication of KR20200093089A publication Critical patent/KR20200093089A/en
Application granted granted Critical
Publication of KR102206026B1 publication Critical patent/KR102206026B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0631Resource planning, allocation, distributing or scheduling for enterprises or organisations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0639Performance analysis of employees; Performance analysis of enterprise or organisation operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0207Discounts or incentives, e.g. coupons or rebates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1042Peer-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

The present invention relates to a system for blockchain-based work request and work product transaction. The blockchain manages a distributed ledger including blocks including work product evaluation data, work product, and work request including evaluation request, reward, and reward function and includes nodes including at least one computing device each. Of the nodes, a client node transmits the work request to the nodes and an evaluator node transmits the acceptance of the evaluation request to the client node in response to the work request. Of the nodes, at least one worker node transmits the acceptance of the work request to the client node in response to the work request and the worker node transmits the work product to the evaluator node. The evaluator node transmits the evaluation of the work product to the client node. The client node transmits the approval of the evaluation to the nodes. At least one of the nodes transmits reward to at least one of the evaluator node, the worker node, and the client node based on the reward function included in one of the blocks.

Description

블록체인 기반의 작업 요청 및 결과물의 거래 방법 및 시스템{SYSTEM AND METHOD FOR TRANSACTION OF WORK REQUESTS AND PRODUCTS BASED ON BLOCKCHAIN}Blockchain-based work request and outcome transaction method and system {SYSTEM AND METHOD FOR TRANSACTION OF WORK REQUESTS AND PRODUCTS BASED ON BLOCKCHAIN}

본 개시는 블록체인 기반의 작업 요청 및 결과물의 거래 방법 및 시스템에 관한 것이다. 좀 더 구체적으로, 본 개시는 블록체인 플랫폼에서 분산되어 운영되는 저장소, 컴퓨팅 장치 등의 작업 실행 자원을 효율적으로 사용하여 다양한 작업을 해결하는 작업 거래 방법 및 시스템에 관한 것이다.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 result transaction system 100 is configured to allow a plurality of nodes to communicate with each other through the blockchain network 150. According to an embodiment, the blockchain stored and managed by the system 100 is a distributed ledger including a plurality of blocks including data regarding work requests, work results, and evaluation of work results between two or more nodes or terminals. (distributed ledger). In addition, the plurality of nodes constituting the blockchain may each include at least one computing device, and each of the plurality of blocks may be a hash reference for data regarding work requests, work results, and evaluation of work results. It may include.

블록체인 네트워크(150)를 통해 노드 간에 작업 요청 및 작업 결과물의 거래가 수행될 수 있다. 클라이언트 노드(110)는, 특정 작업에 대한 보상을 포함한 작업 요청을 송신할 수 있고, 관리자 노드(120)는 작업자 노드(140) 및 평가자 노드(130)에 의해 실행되는 작업 환경을 생성 및 관리할 수 있으며, 다른 노드들의 동작과 상호 연결을 조율하는 기능을 수행할 수 있다. 한편, 작업자 노드(140)는, 클라이언트 노드(110)에 의해 요청된 작업을 수행하고 그 결과물을 제공할 수 있으며, 평가자 노드(130)는 작업자 노드(140)가 제공하는 작업 결과물을 확인하고 평가할 수 있다. 평가자 노드(130)에 의한 작업 결과물의 평가에 따라 작업자 노드(140)에 대한 적절한 보상이 지급될 수 있다.Through the blockchain network 150, work requests and transactions of work results can be performed between nodes. The client node 110 may send a job request including compensation for a specific job, and the manager node 120 may create and manage a work environment executed by the worker node 140 and the evaluator node 130. It can perform the function of coordinating the operation and interconnection of other nodes. Meanwhile, the worker node 140 may perform a task requested by the client node 110 and provide the result, and the evaluator node 130 may check and evaluate the work result provided by the worker node 140 Can. Appropriate compensation for the worker node 140 may be paid according to the evaluation of the work result by the evaluator node 130.

일 실시예에서, 작업 요청은, 복수의 작업자 노드(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 worker nodes 140 execute the job and provide the result. For example, the job request may include an evaluation request, a reward for the job, and a reward function. In addition, the evaluation request includes information requesting at least one evaluator node 130 among the plurality of nodes to evaluate the work results provided by the worker node 140. For example, the evaluation request may include information requesting to rank a plurality of work results. Meanwhile, as described in detail below, the reward is a product that is finally paid to the worker node when the evaluator approves and approves the approved result according to the reward function. That is, the reward is a product to be paid as an object to be paid for the result of the work and/or evaluation, and may be an encrypted currency, but is not limited thereto. The compensation function may be a function that designates a worker node 140 and a method to pay compensation according to the evaluation result of the evaluator node 130. For example, the reward function may designate that the reward is equally distributed to all of the one or more worker nodes 140 that performed the work, or may be designated to be rewarded only to the worker node 140 having the highest evaluation rank. . The compensation function may be defined differently according to the preference of the client node 110 requesting the task or the type of the requesting task, and may be operated to optimize the compensation function to execute the requested task at a reasonable cost.

도 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 client node 110 may proceed with a transaction requesting work while depositing a reward to be paid on the blockchain network 150. In one embodiment, the client node 110 may be configured to send work requests to a plurality of nodes in the blockchain network 150. Here, the work request may include an evaluation request, compensation, and a compensation function. In this embodiment, the task may be a learning task by an artificial neural network such as machine learning. For example, when the client node 110 requests a work result and an evaluation to a plurality of nodes, a reward and a reward function may be transmitted together. As such, the rewards and reward functions transmitted to the blockchain network 150 are recorded in the blockchain book. After this, if there is approval of the work evaluation by the evaluator node 130, compensation is paid to a plurality of nodes related to the corresponding task, for example, at least one worker node 140 and the evaluator node 130 according to the compensation function. It can be configured as possible. The client node 110 may request to be executed by dividing one task into several tasks. At this time, the manager node 120, the evaluator node 130, and the worker node 140 related to each divided task may be different, and their organizational systems may also be different. In the present disclosure, "organization system" may refer to upper and lower hierarchical relationships between nodes participating in the blockchain network. In this organizational system, a vertical connection relationship between the manager node 120 and other nodes, worker nodes It may include a horizontal connection relationship between the 140 and the evaluator node 130. In FIG. 2, examples of various organizational systems between nodes 120 to 140 are shown for each task (eg, task 1, task 2, task 3). According to one embodiment, each task may have an organizational system between different nodes. Further, the client node 110 may be configured to generate a block including its own identification information and data related to the work request when the work request is transmitted.

관리자 노드(120)는, 작업자 노드(140) 및 평가자 노드(130)에 의해 실행되는 작업 환경을 생성 및 관리할 수 있으며, 다른 노드들의 동작과 상호 연결을 조율하는 기능을 수행할 수 있고, 챌린지 요청에 대해 승인 또는 거절할 수 있다. 관리자 노드(120)는, 작업 명세를 최초로 정의한 노드이거나, 이러한 노드가 관리자로 지정한 노드일 수 있다.The manager node 120 can create and manage a work environment executed by the worker node 140 and the evaluator node 130, and can perform functions to coordinate the operation and interconnection of other nodes, and challenges You can approve or reject the request. The manager node 120 may be a node that first defines a job specification or a node designated by the node as an administrator.

일 실시예에 따르면, 관리자 노드(120)는, 블록체인 네트워크(150)의 복수의 노드로 작업 명세를 송신한다. 나아가, 복수의 노드 중 적어도 하나의 노드에 의해 관리자 노드(120)로 평가자 노드 신청이 송신되면, 관리자 노드(120)는 평가자 노드 신청을 송신한 노드 중 적어도 하나로 평가자 노드(130)의 승인을 송신한다. 또한, 복수의 노드 중 적어도 하나의 노드에 의해 관리자 노드(120)로 작업자 노드 신청이 송신되면, 관리자 노드(120)는 작업자 노드 신청을 송신한 노드 중 적어도 하나로 작업자 노드 승인을 송신할 수 있다. According to one embodiment, the manager node 120 transmits a job specification to a plurality of nodes of the blockchain network 150. Furthermore, when an appraiser node request is sent to the manager node 120 by at least one node among a plurality of nodes, the manager node 120 transmits the approval of the appraiser node 130 to at least one of the nodes that sent the appraiser node request. do. In addition, when a worker node request is transmitted to the manager node 120 by at least one node among a plurality of nodes, the manager node 120 may transmit a worker node acknowledgment to at least one of the nodes that have sent the worker node request.

위에서 설명한 절차들에서, 관리자 노드(120)는, 자신의 식별정보를 포함하여 각각의 절차에서 생성된 데이터를 포함하는 블록을 생성할 수 있다. 또한, 관리자 노드(120)는 복수의 노드로 작업 명세를 방송(broadcast)함으로써 해당 작업의 평가와 실행을 진행할 평가자 노드(130)와 작업자 노드(140)를 모집할 수 있다. 이러한 작업 명세의 송신 및 모집에 응답하여, 하나 이상의 노드가 해당 작업의 평가와 실행의 신청을 전송할 수 있다. 이 신청에 응답하여, 관리자 노드(120)는, 해당 신청을 전송한 노드들이 평가자 노드(130), 작업자 노드(140) 또는 다른 관리자 노드가 되는 것을 승인할 수 있다. 관리자 노드(120)는, 이 승인 여부 결정을 위해, 평가자 노드(130) 또는 작업자 노드(140)가 작업을 실행할 수 있는 리소스를 갖추고 있는지 여부를 조사할 수 있다. 여기서, 관리자 노드(120)는 스스로 평가자 노드(130) 또는 작업자 노드(140)가 될 수도 있다.In the above-described procedures, the manager node 120 may generate a block including data generated in each procedure, including its own identification information. In addition, the manager node 120 may recruit the evaluator node 130 and the worker node 140 to perform evaluation and execution of the corresponding job by broadcasting a job specification to a plurality of nodes. In response to the sending and recruiting of these job specifications, one or more nodes may send a request for evaluation and execution of the job. In response to this request, the manager node 120 may approve that the nodes that have transmitted the request become the evaluator node 130, the worker node 140, or another manager node. The manager node 120 may examine whether the evaluator node 130 or the worker node 140 has a resource capable of executing a task to determine whether to approve the approval. Here, the manager node 120 may be the evaluator node 130 or the worker node 140 itself.

관리자 노드(120)는, 작업 환경을 코디네이트(coordinate)할 수 있다. 구체적으로, 관리자 노드(120)는, 특정 작업에 대한 작업 스키마(schema)를 정의하고 그 구현 방법을, 이 후에 해당 작업에 대한 평가와 실행을 진행할 평가자 노드(130)와 작업자 노드(140)에게 바이너리 관리자(Binary Manager)로서 제공할 수 있다. 바이너리 관리자는, 작업 스키마에 따라 실행될 작업의 실행가능한 프로그램(즉, 바이너리 코드)의 배치를 결정한다. 또한, 관리자 노드(120)는, 작업이 실행될 런타임 환경(run-time environment)을 신뢰성 있고 보안이 확보되도록 구성하여 제공할 수 있다. 일 실시예에 따르면, 관리자 노드(120)는, 복수의 노드 중에서 호스트 노드(host node)로 보안 런타임 환경 설정을 송신하고, 자신의 식별정보와 보안 런타임 환경 설정에 관한 데이터를 포함하는 블록을 생성할 수 있다. 이에 더하여, 평가자 노드(130) 및 작업자 노드(140)는 설정된 보안 런타임 환경을 포함한 애플리케이션(application)을 호스트 노드로부터 수신하여 보안 런타임 환경 내에서 작업을 실행할 수 있다.The manager node 120 can coordinate the working environment. Specifically, the administrator node 120 defines a task schema for a specific task and implements the implementation method to the evaluator node 130 and the worker node 140 to evaluate and execute the task thereafter. It can be provided as a binary manager. The binary manager determines the batch of executable programs (ie binary code) of the jobs to be executed according to the job schema. In addition, the administrator node 120 may configure and provide a run-time environment in which a job is to be executed to be reliable and secure. According to an embodiment, the administrator node 120 transmits a security runtime environment setting to a host node among a plurality of nodes, and generates a block including data regarding its own identification information and security runtime environment setting. can do. In addition, the evaluator node 130 and the worker node 140 may receive an application including a set secure runtime environment from a host node and execute a task within the secure runtime environment.

또한, 관리자 노드(120)는, 챌린지 요청에 대해 승인 또는 거절하고, 자신의 식별정보와 챌린지 요청 승인 또는 거절에 관한 데이터를 포함하는 블록을 생성할 수 있다. 여기서, 챌린지 요청은, 클라이언트 노드(110) 또는 작업자 노드(140)가 작업 결과물 평가에 대해 불복하여 상위 노드에 대해 평가에 대한 재판단을 구하는 요청이다. 일 실시예에서, 보상함수는, 챌린지 요청의 승인과 거절 중 적어도 하나의 경우에 대한 보상함수를 포함할 수 있다. 또한, 클라이언트 노드(110) 또는 적어도 하나의 작업자 노드(140)는 관리자 노드(120)로 챌린지 요청을 송신할 수 있다. 관리자 노드(120)는 평가자 노드(130)에 의해 송신된 작업 결과물의 평가가 타당한지 판단하고, 복수의 노드로 챌린지 요청의 승인 또는 거절을 송신할 수 있다. 일 실시예에서, 보상함수는, 챌린지 요청의 승인되는 경우와 거절되는 경우에 보상이 다르게 지급되도록 설정될 수 있다.In addition, the manager node 120 may approve or reject the challenge request, and generate a block including data regarding the identity of the challenge request and the approval or rejection of the challenge request. Here, the challenge request is a request for the client node 110 or the worker node 140 to disagree with the evaluation of the work product, and to obtain a trial panel for evaluation with respect to the upper node. In one embodiment, the compensation function may include a compensation function for at least one of approval and rejection of a challenge request. Also, the client node 110 or at least one worker node 140 may transmit a challenge request to the manager node 120. The manager node 120 may determine whether the evaluation of the work result transmitted by the evaluator node 130 is valid, and transmit approval or rejection of a challenge request to a plurality of nodes. In one embodiment, the reward function may be set such that rewards are paid differently when the challenge request is approved and rejected.

평가자 노드(130)는, 작업자 노드(140)의 작업 결과물을 평가하여 클라이언트 노드(110)로 송신할 수 있다. 일 실시예에 따르면, 클라이언트 노드(110)로부터 평가 요청을 받은 복수의 노드 중에서 수락을 송신한 노드가 평가자 노드(130)가 되도록 구성될 수 있다. 다른 실시예에 따르면, 관리자 노드(120)가 복수의 노드로 방송한 작업 명세에 대해, 복수의 노드 중에서 적어도 하나의 노드가 평가자 노드(130)가 되기를 신청하고, 관리자 노드(120)가 이를 승인함으로써 해당 신청 노드가 평가자 노드(130)로 되도록 구성될 수도 있다.The evaluator node 130 may evaluate the work result of the worker node 140 and transmit it to the client node 110. According to an embodiment, a node that transmits acceptance among a plurality of nodes receiving an evaluation request from the client node 110 may be configured to be the evaluator node 130. According to another embodiment, for the job specification broadcast by the manager node 120 to a plurality of nodes, at least one node among the plurality of nodes requests to be the evaluator node 130, and the manager node 120 approves it By doing so, the corresponding application node may be configured to be the evaluator node 130.

평가자 노드(130)는 작업자 노드(140)로부터 작업 결과물을 수신할 수 있다. 평가자 노드(130)는 결과물을 검증(validation) 및 평가한다. 평가자 노드(130)는 클라이언트 노드(110)로 작업 결과물에 대한 평가를 송신할 수 있다. 이 평가에 따라, 또는 평가에 따른 보상함수에 따라, 작업자 노드(140)는 차등화된 보상을 지급받도록 구성될 수 있다. 또한, 평가자 노드(130)는 자신의 식별정보와 작업 결과물 평가에 관한 데이터를 포함하는 블록을 생성할 수 있다The evaluator node 130 may receive a work result from the worker node 140. The evaluator node 130 validates and evaluates the results. The evaluator node 130 may transmit an evaluation of the work results to the client node 110. According to this evaluation, or according to the compensation function according to the evaluation, the worker node 140 may be configured to receive differentiated compensation. In addition, the evaluator node 130 may generate a block including data related to the identification information and work result evaluation.

작업자 노드(140)는 작업을 실행(execute)하고, 작업의 결과물을 송신한다. 일 실시예에 따르면, 클라이언트 노드(110)로부터 작업 요청을 받은 복수의 노드 중에서 수락을 송신한 노드가 작업자 노드(140)가 되도록 구성될 수 있다. 다른 실시예에 따르면, 관리자 노드(120)가 복수의 노드로 방송한 작업 명세에 대해 복수의 노드 중에서 적어도 하나의 노드가 작업자 노드(140)가 되기를 신청하고, 관리자 노드(120)가 이를 승인함으로써 평가자 노드(140)가 되도록 구성될 수도 있다.The worker node 140 executes the task and transmits the result of the task. According to an embodiment, a node that transmits acceptance among a plurality of nodes receiving a work request from the client node 110 may be configured to be the worker node 140. According to another embodiment, for the job specification broadcast by the manager node 120 to a plurality of nodes, at least one node among the plurality of nodes requests to become the worker node 140, and the manager node 120 approves it. It may be configured to be an evaluator node 140.

작업자 노드(140)는 요청된 작업을 수행할 수 있다. 일 실시예에 따르면, 작업은 인공신경망을 이용한 학습 작업일 수 있는데, 이 경우 작업은 입력(input) 데이터를 통한 학습과정을 코드로 생성하는 과정일 수 있다. 또한, 작업자 노드(140)는 작업의 결과물을 평가자 노드(130)로 송신하도록 구성될 수 있다. 작업의 결과물은 파일이나 코드와 같은 컨텐츠를 포함할 수 있고, 저장된 컨텐츠에 대한 링크와 같은 컨텐츠 주소, 포인터 등을 포함할 수 있다. 일 실시예에 따르면, 작업자 노드(140)는 작업 결과물 컨텐츠를 대용량 저장소를 제공하는 공용 저장소 노드로 송신할 수 있다. 이 경우, 공용 저장소 노드는 해당 작업 결과물 컨텐츠의 주소를 생성하고, 작업자 노드(140)로 작업 결과물 컨텐츠의 주소를 송신하도록 구성될 수 있다. 이 때, 작업자 노드(140)는 자신의 식별정보와 작업 결과물(또는 그 주소)에 관한 데이터를 포함하는 블록을 생성하도록 구성될 수 있다.The worker node 140 may perform the requested operation. According to an embodiment, the task may be a learning task using an artificial neural network, in which case the task may be a process of generating a learning process through input data as a code. In addition, the worker node 140 may be configured to transmit the results of the work to the evaluator node 130. The output of the work may include content such as a file or code, and may include a content address such as a link to stored content, a pointer, and the like. According to an embodiment, the worker node 140 may transmit the work result content to a public storage node that provides a large storage. In this case, the common storage node may be configured to generate an address of the corresponding work result content and transmit the address of the work result content to the worker node 140. At this time, the worker node 140 may be configured to generate a block including data regarding its own identification information and work result (or its address).

클라이언트 노드(110), 관리자 노드(120), 평가자 노드(130) 및 작업자 노드(140)를 포함한 각각의 노드는 컴퓨팅 장치를 포함할 수 있다. 예를 들어, 각각의 노드는 스마트폰, 태블릿 PC 등과 같은 휴대용 컴퓨터, 데스크탑 컴퓨터, 서버 장치일 수 있으나, 이에 한정되는 것은 아니다.Each node, including the client node 110, the manager node 120, the evaluator node 130, and the worker node 140, may include a computing device. For example, each node may be a portable computer such as a smart phone or a tablet PC, a desktop computer, or a server device, but is not limited thereto.

본 실시예에 있어서 노드들이 블록을 생성할 때에는 요금(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 blockchain network 150, it can be configured to provide a fee to nodes of the blockchain network. According to an example, the fee may be configured to be equal to or higher than the fee at the first request of work by the client node 110.

일 실시예에 따르면, 블록체인에는 노드들 간의 상호작용에 관한 평판이 장부로 기록될 수 있다. 각 노드들은 블록체인에 기록된 관리자, 평가자 또는 작업자 노드의 승인, 작업의 요청, 작업의 수락, 작업 결과물의 제출 및 보상 분배와 같은 정보를 추적함으로써 노드들의 평판을 파악할 수 있다. 이러한 평판을 통해, 노드들은 거래 과정에서 좀 더 높은 신뢰를 형성하거나, 더 높은 보상을 제공받을 수 있다. 예를 들어, 클라이언트 노드(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 client node 110 may refuse to perform work by the poorly reputed worker node 140. As another example, the worker node 140 may reject the acceptance of the work request when a highly competitive worker node 140 is included, and thus fierce competition is expected in accepting the work.

도 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 method 300 of transaction request based on the blockchain and the work result described in detail below may be generated and recorded as a block in the blockchain network 150. However, hereinafter, for convenience of description, description of a block generation process for an execution result of each step may be omitted.

일 실시예에 따른 블록체인 기반의 작업 요청 및 작업 결과물의 거래 방법(300)은, 복수의 노드들 중에서 클라이언트 노드에 의해 블록체인 네트워크(또는 그 네트워크에 연결된 복수의 노드)로 작업 요청이 송신하는 단계(S310)에 의해 개시된다. 작업 요청은, 평가 요청, 작업에 대한 보상 및 보상함수를 포함할 수 있다. 구체적으로 작업 요청은, 작업의 식별 번호, 입력 데이터에 대한 정보, 제한 시간, 희망하는 작업자 또는 평가자 노드의 리스트가 포함될 수 있고, 작업자 노드(140)를 신뢰하는 경우 평가 절차를 생략한다는 내용의 정보를 포함할 수 있다. 단계(S310)의 실행 결과, 클라이언트 노드(110)는, 클라이언트 노드(110)의 식별정보 및 작업 요청에 관한 데이터를 포함하는 블록을 생성한다.According to an embodiment of the present invention, a method 300 for trading a blockchain-based work request and a work result is transmitted by a client node among a plurality of nodes to a blockchain network (or a plurality of nodes connected to the network). Initiated by step S310. The work request may include an evaluation request, a reward for the job, and a reward function. Specifically, the job request may include an identification number of the job, information on input data, a time limit, a list of desired worker or evaluator nodes, and information that the evaluation procedure is omitted when the worker node 140 is trusted. It may include. As a result of the execution of step S310, the client node 110 generates a block including identification information of the client node 110 and data regarding a work request.

작업 요청 송신에 응답하여, 복수의 노드 중에서 평가자 노드에 의해 클라이언트 노드(110)로 평가 요청 수락이 송신된다(S312). 이 단계에서, 평가자 노드(130)는, 평가자 노드(130)의 식별정보 및 평가 요청 수락에 관한 데이터를 포함하는 블록을 생성한다.In response to the transmission of the job request, the evaluation request acceptance is transmitted to the client node 110 by the evaluator node among the plurality of nodes (S312). In this step, the evaluator node 130 generates a block including identification information of the evaluator node 130 and data regarding acceptance of the evaluation request.

다음으로, 복수의 노드 중에서 적어도 하나의 작업자 노드(140)에 의해 클라이언트 노드(110)로 작업 요청 수락이 송신(S314)되면, 작업자 노드(140)의 식별정보 및 작업 요청 수락에 관한 데이터를 포함하는 블록을 생성한다.Next, when the work request acceptance is transmitted to the client node 110 by at least one worker node 140 among the plurality of nodes (S314), the identification information of the worker node 140 and data on accepting the work request are included. Block.

이상 단계들(S310 내지 S314)이 실행된 후, 작업자 노드(140)는 작업 요청에 따른 작업을 실행한다. 작업은, 관리자 노드(120)로부터 설정된 작업 환경 상에서 실행될 수 있다. 예를 들면, 보안 런타임 환경을 포함한 애플리케이션으로서 도커(docker)와 샌드 박스 래퍼(sandbox wrapper), 프로그램 언어 및 라이브러리 등을 이용하여 작업이 실행될 수 있다. 작업 실행 결과, 작업자 노드(140)에 의해 평가자 노드(130)로 작업 결과물이 송신(S316)되면, 작업자 노드(140)의 식별정보 및 작업 결과물에 관한 데이터를 포함하는 블록을 생성한다.After the above steps S310 to S314 are executed, the worker node 140 executes a job according to the job request. The job can be executed on a job environment set by the administrator node 120. For example, as an application that includes a secure runtime environment, tasks can be executed using dockers, sandbox wrappers, programming languages, and libraries. As a result of the task execution, when the task result is transmitted to the evaluator node 130 by the worker node 140 (S316), a block including identification information of the worker node 140 and data on the task result is generated.

다음으로, 평가자 노드(130)는 작업자 노드(140)에 의해 제공된 작업 결과물에 대한 평가를 실행한다. 예를 들어, 평가자 노드(130)는 작업 결과물을 관리자 노드(120)로부터 설정된 작업 환경 상에서 구동하고, 해당 작업 결과물에 대한 평가값을 측정하거나 상대적 순위(랭크), 및/또는 기준 충족여부(pass or fail)로 평가할 수 있다. 그 결과, 평가자 노드에 의해 클라이언트 노드로 작업 결과물에 대한 평가가 송신(S318)되면, 평가자 노드의 식별정보 및 평가에 관한 데이터를 포함하는 블록을 생성한다.Next, the evaluator node 130 performs an evaluation on the work results provided by the worker node 140. For example, the evaluator node 130 drives the work results on the work environment set from the manager node 120, measures the evaluation value for the work results, or the relative rank (rank) and/or meets the criteria (pass) or fail). As a result, when the evaluation of the work result is transmitted to the client node by the evaluator node (S318), a block including identification information and evaluation data of the evaluator node is generated.

클라이언트 노드는 평가자 노드에 의해 제공된 평가가 적절한지 검토할 수 있다. 그 결과, 클라이언트 노드에 의해 복수의 노드로 평가의 승인(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 evaluator node 130 identifies the work output provided by the plurality of worker nodes 140 and determines the rating or rating of the work. The method of evaluation can be different depending on the type of task. For some tasks, a simple process of checking whether the result value satisfies a specific threshold or boundary can be sufficiently evaluated. For other tasks, it is possible to adopt the one with the lowest loss as a result of machine learning learning through competition between work results executed by a plurality of worker nodes 140. Through the customized evaluation according to the work as described above, it is possible to consume only the minimum amount of resources available on the blockchain network.

일 실시예에서, 클라이언트 노드(110) 또는 작업자 노드(140)는 챌린지(challenge)를 신청할 수 있도록 구성될 수 있다. 예를 들어, 클라이언트 노드(110)는 평가자 노드(130)가 송신한 작업 결과물에 대한 평가에 불복하여 평가에 대한 재판단을 구하고 싶은 경우가 존재할 수 있다. 이 때, 클라이언트 노드(110)는, 관리자 노드(120)와 같은 상위 노드에 대해 평가가 타당한지에 대한 판단을 신청할 수 있다. 이와 같은 챌린지 신청이 가능한 경우, 보상함수는 챌린지 요청의 승인과 거절 중 적어도 하나의 경우에 따른 보상에 관한 함수를 포함할 수 있다. In one embodiment, the client node 110 or the worker node 140 may be configured to apply for a challenge. For example, there may be a case where the client node 110 wants to obtain a judge for evaluation by dissatisfied with the evaluation of the work results transmitted by the evaluator node 130. At this time, the client node 110 may request a judgment as to whether the evaluation is valid for an upper node such as the manager node 120. When such a challenge application is possible, the compensation function may include a function related to compensation according to at least one of approval and rejection of the challenge request.

도 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 evaluator node 140 is configured to be paid to the client node 110, and when the challenge request is rejected, it is configured to be paid according to a normal compensation function. Can.

도 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 evaluator node 130 and the worker node 140, or to the client node 110 and the worker node 140, The reward method is not limited thereto, and rewards may be paid in various ways according to the reward function. For example, when the manager node 120 approves the challenge request for the challenge requested by the client node 110, that is, when it is determined that the evaluation of the work result by the evaluator node 130 is wrong, the evaluator node 130 ) And the worker node 140 may be configured to return the reward to the client node 110 without paying the reward.

일 실시예에 따르면, 평가자 노드(130)가 클라이언트 노드(110)로부터의 평가 요청을 수락할 경우, 일정한 보증금이 블록체인 네트워크에 유치되도록 구성될 수 있다. 또한, 관리자 노드(120)에 의해 평가에 대한 챌린지 요청이 승인된 경우, 즉 평가자 노드(130)의 평가가 잘못되었다고 판단되는 경우, 보증금이 클라이언트 노드(110)로 송신된다. 다른 한편, 클라이언트 노드(110)에 의해 평가가 승인될 경우에는 보증금이 평가자 노드(130)로 반환되도록 구성될 수 있다. 보증금은 챌린지 요청에 필요한 수수료보다 크도록 구성될 수 있다. 이러한 보증금 시스템을 도입할 경우, 평가자 노드(130)로부터 좀 더 신뢰성 있는 평가를 기대할 수 있는 효과가 있다.According to an embodiment, when the evaluator node 130 accepts an evaluation request from the client node 110, a certain deposit may be configured to be attracted to the blockchain network. In addition, when the challenge request for evaluation is approved by the manager node 120, that is, when it is determined that the evaluation of the evaluator node 130 is wrong, a deposit is transmitted to the client node 110. On the other hand, when the evaluation is approved by the client node 110, the deposit may be configured to be returned to the evaluator node 130. The deposit may be configured to be larger than the fee required for the challenge request. When such a deposit system is introduced, it is possible to expect a more reliable evaluation from the evaluator node 130.

도 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 method 400 for trading a block-based work request and a work result according to an embodiment may be initiated by step S410 in which a work specification is transmitted to a plurality of nodes by the manager node 120. The manager node 120 may recruit the evaluator node 130 and the worker node 140 by broadcasting job specifications to notify other participating nodes about the job. Here, the job specification indicates contents related to the job, and may include test data on the job, requirements required by the evaluator, and the operator. As a result of the execution of step S410, the manager node 120 generates a block including data related to the job specification including identification information of the manager node 120.

작업 명세의 송신에 응답하여, 복수의 노드 중 적어도 하나의 노드에 의해 관리자 노드(120)로 평가자 노드 신청이 송신된다(S412). 이 단계에서, 평가자 노드 신청을 송신한 노드의 식별정보 및 평가자 노드 신청에 관한 데이터를 포함하는 블록을 생성한다.In response to the transmission of the job specification, the evaluator node request is transmitted to the manager node 120 by at least one node among the plurality of nodes (S412). In this step, a block including identification information of the node that sent the evaluator node request and data regarding the evaluator node request is generated.

또한, 평가자 노드 신청에 응답하여, 관리자 노드(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 manager node 120 performs performance of processing the test data by the corresponding node using a dashboard in order to determine whether the requested node is eligible as the evaluator node 130 ( Performance), or examine the reputation of the node. As a result of the execution of step S414, the manager node 120 generates a block including identification information of the manager node 120 and data related to appraiser node approval.

한편, 작업 명세 송신에 응답하여, 복수의 노드 중 적어도 하나의 노드에 의해 관리자 노드(120)로 작업자 노드 신청이 송신된다(S416). 이 단계에서, 작업자 노드 신청을 송신한 노드의 식별정보 및 작업자 노드 신청에 관한 데이터를 포함하는 블록을 생성한다.On the other hand, in response to the job specification transmission, a worker node request is transmitted to the manager node 120 by at least one node among the plurality of nodes (S416). In this step, a block including identification information of the node that sent the worker node request and data related to the worker node request is generated.

또한, 작업자 노드 신청에 응답하여, 관리자 노드(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 manager node 120 may use a dashboard and a reputation of the corresponding node in order to determine whether the requested node is qualified as the worker node 130. As a result of the execution of step S418, the manager node 120 generates a block including identification information of the manager node 120 and data regarding worker node approval.

이상 설명한 바와 같이, 복수의 노드 중 평가자 노드(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 evaluator node 130 and the worker node 140 are at least among the plurality of nodes for the job specification broadcast by the manager node 120 to the plurality of nodes. One node may be configured to apply by being the evaluator node 130 or the worker node 140, and the administrator node 120 approving it. The administrator node 120 through the approval/rejection process of the appraiser node 130 and the worker node 140 application, the pool of the appraiser node 130 and the worker node 140 before requesting work from the client node 110 ( pool). The client node may be configured to make work requests and evaluation requests to evaluator nodes and worker nodes in the pool configured as described above.

관리자 노드(120)가 방송하는 작업 명세에는, 테스트 데이터 등이 포함될 수 있다. 따라서, 평가자 노드(130) 및/또는 작업자 노드(140)가 되기를 신청하는 노드는, 작업 명세에 포함된 테스트 데이터를 실행하고, 관리자 노드(120)는 대시보드에 나타나는 노드들의 실행 퍼포먼스를 보고 승인/거절을 결정할 수 있다. 본 개시에 있어서 "대시보드(dashboard)"는, 블록체인 네트워크(150)의 사용자들에게 참여 노드들의 전체적인 상태(예를 들어, 거래의 상태, 작업의 진행 상태, 작업을 실행한 노드의 성능 등)를 표시할 수 있는 데이터 구조 또는 인터페이스를 지칭할 수 있다. 일 예에서, 대시보드는 웹페이지 형태로 표현될 수 있으며, 각 노드에서는 API를 통해 대시보드에 접근할 수 있다. 이와 같은 구성을 통하여 작업 명세에 따른 작업을 실행하는데 필요한 리소스를 갖춘 노드들로 풀을 구성하여 관리할 수 있고, 클라이언트는 풀에 포함된 검증된 노드들에게 작업을 요청할 수 있다. 이와 같은 노드들의 풀 관리 방법은, 머신 러닝과 같은 큰 규모의 리소스를 필요로 하는 작업의 실행에 중요하다. 즉, 본 실시예에 따른 방식에 따르면, 머신 러닝의 대규모 데이터 처리능력이 부족한 노드가 작업자 또는 평가자 노드로 신청함으로써 발생될 수 있는 불필요한 평가 및 작업 실행 과정이 개입되는 것을 방지할 수 있다.The job specification broadcast by the manager node 120 may include test data and the like. Therefore, the node requesting to be the evaluator node 130 and/or the worker node 140 executes test data included in the job specification, and the manager node 120 sees and approves the execution performance of the nodes appearing in the dashboard. / Decide to refuse. In the present disclosure, "dashboard" refers to the overall state of the participating nodes (for example, the state of the transaction, the progress of the task, the performance of the node executing the task, etc.) to the users of the blockchain network 150. ) May refer to a data structure or interface capable of displaying. In one example, the dashboard can be expressed in the form of a web page, and each node can access the dashboard through an API. Through this configuration, a pool can be configured and managed with nodes that have the necessary resources to execute a job according to the job specification, and the client can request a job from verified nodes included in the pool. This method of managing pools of nodes is important for executing tasks that require large-scale resources such as machine learning. That is, according to the method according to the present embodiment, it is possible to prevent an unnecessary evaluation and task execution process that may occur by applying a node lacking a large amount of data processing capability of machine learning as a worker or evaluator node.

관리자 노드(120)가 관리하는 풀 내의 각 노드의 리소스 수준은 시간에 따라 달라질 수 있다. 예를 들어, 일반적으로 낮 시간에는 기업의 서비스 운영을 위하여 노드의 리소스가 구동되기 때문에 활용가능한 리소스의 수준이 낮아지는 반면, 서비스가 운영되지 않는 밤 시간에는 높은 리소스 활용가능 수준을 가질 수 있다. 이 경우, 풀 내의 노드들은, 리소스 활용가능 수준이 낮은 낮 시간 중에 많은 리소스를 요구하는 작업에 투입되었다가 낮은 평가를 받는 대신에, 작은 리소스를 요구하는 작업에 할당되어 높은 평가를 받는 것이, 더 높은 보상을 얻기에 유리할 수 있다.The resource level of each node in the pool managed by the manager node 120 may vary with time. For example, in general, the level of available resources is lowered because the resources of the node are driven for the operation of the service in the daytime, while the service level may have a high level of resource utilization in the nighttime when the service is not operated. In this case, the nodes in the pool are assigned to a task that requires a small resource and receive a high evaluation, instead of being put on a task that requires a lot of resources during the daytime when the resource utilization level is low, and receiving a low evaluation. It can be advantageous to get a high reward.

도 5는 본 개시의 일 실시예에 따른 블록체인 기반의 작업 요청 및 작업 결과물의 거래 시스템에서 호스트 노드(510) 및 공용 저장소 노드(520)의 동작을 나타낸 개략도이다.5 is a schematic diagram showing the operation of the host node 510 and the common storage node 520 in the transaction system of a blockchain-based work request and work result according to an embodiment of the present disclosure.

본 실시예에 따른 시스템(500)은, 블록체인 네트워크(150)에 연결된 구성원 또는 노드들에게 신뢰와 보안을 제공할 수 있으며, 컴퓨팅 디바이스 유형의 다양한 조합을 관리할 수 있다. 또한, 일반적으로 분산된 저장소(storage)는 중앙화된 저장소보다 비효율적이고 운영에 많은 비용이 소요되는 문제점이 있다. 이러한 기존의 분산 저장소의 문제를 해결하기 위해, 시스템(500)은, 중앙화된 조력 구성 요소, 즉 보안 런타임 환경(secure runtime environment) 및 대용량 저장소(big storage)와 탈중앙화된 블록 체인의 결합이라는 하이브리드 접근 방식을 통한 신뢰도 있는 고성능 분산 컴퓨팅을 구현한다. The system 500 according to the present exemplary embodiment may provide trust and security to members or nodes connected to the blockchain network 150 and manage various combinations of computing device types. In addition, generally distributed storage (storage) has a problem that is more inefficient and costly to operate than a centralized storage. To solve this problem of the existing distributed storage, the system 500 is a hybrid, which is a combination of a centralized tidal component, a secure runtime environment and a large storage and decentralized blockchain. Implement reliable, high-performance distributed computing through an approach.

도시된 바와 같이, 호스트 노드(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 host node 510 may provide a secure runtime environment and an application that can be executed in the environment. In the present disclosure, a “runtime environment” refers to a state of a virtual machine or a virtual machine that provides software services for a process or program while a computer such as a node is running, a process or process while the computer is running. It can be a collection of software services for a program. For example, the runtime environment may refer to an environment in which a file in the form of an image generated to be executable on a computing device can be safely executed. An image file executable in the runtime environment is an image of a docker hub (for example, see https://hub.docker.com/search/?image_filter=official&type=image ), or an image where a specific application is installed on a virtual machine. It may be (for example, see https://aws.amazon.com/marketplace/b/6297422013?ref_=header_nav_category_6297422013).

또한 공용 저장소 노드(520)는 대용량 저장소로서 기능하는 것으로, 블록체인 네트워크(150)의 복수의 노드 중 어느 하나의 노드일 수 있다. 공용 저장소 노드(520)와 같은 중앙 집중식 제어를 최소한으로 실행하여 다양한 형태의 작업을 해결할 수 있다. 기존의 폰 노이만 아키텍처가 일반적으로 중앙처리장치(CPU), 메모리, 입출력장치(I/O) 및 그들 사이의 통신을 컴퓨팅의 주요 구성 요소로 하는 것에 대응하여, 본 실시예의 시스템(500)에 의해 제공되는 분산 컴퓨팅 환경은, 보안 런타임 환경, 대용량 저장소 및 블록 체인을 주요 구성 요소로써 구성될 수 있다.In addition, the public storage node 520 functions as a mass storage, and may be any one of a plurality of nodes of the blockchain network 150. Various types of tasks can be solved by executing centralized control such as the common storage node 520 to a minimum. Corresponding to the existing phone Neumann architecture in general, the central processing unit (CPU), memory, input/output (I/O) and communication between them as the main components of computing, by the system 500 of the present embodiment. The distributed computing environment provided can be composed of a secure runtime environment, a mass storage, and a blockchain as main components.

도 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 administrator node 120. The manager node 120 may configure and provide a runtime environment in which a job is to be executed to be reliable and secure.

일 실시예에 따르면, 관리자 노드(120)가 복수의 노드 중에서 호스트 노드(510)로 보안 런타임 환경 설정을 송신하고, 관리자 노드(120)의 식별정보 및 보안 런타임 환경 설정에 관한 데이터를 포함하는 블록을 생성한다. 또한, 호스트 노드는, 작업자 노드 및 평가자 노드 중 적어도 하나의 노드로, 설정된 보안 런타임 환경을 포함한 애플리케이션을 송신하고, 호스트 노드의 식별정보 및 보안 런타임 환경을 포함한 애플리케이션에 관한 데이터를 포함하는 블록을 생성할 수 있다.According to an embodiment, the manager node 120 transmits a security runtime environment setting to a host node 510 among a plurality of nodes, and a block including identification information of the manager node 120 and data on the security runtime environment setting Produces In addition, the host node transmits an application including a set security runtime environment to at least one of a worker node and an evaluator node, and generates a block including identification information of the host node and data about the application including the security runtime environment. can do.

머신 러닝과 같은 인공신경망에 의한 학습 작업은, 메모리 또는 저장소 크기 및 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 manager node 110 may schedule and allocate the task so that the task properly requested by other computing nodes is executed. That is, the administrator node 110 sets a secure runtime environment suitable for the execution of the requested operation, and the worker node 140 or the evaluator node ( By sending it to 130), it is possible to allocate work to a reliable computer at a reasonable operating cost. The secure runtime environment enables smooth transactions between nodes on the blockchain network by confirming that the code to be executed in the environment is harmless to worker nodes and the like.

일 실시예에 따른 보안 런타임 환경은, 다양한 환경에서 코드가 실행되도록 하는 샌드 박싱(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 evaluator node 130 and the worker node 140 to download the new binary in a secure runtime environment.

도 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 worker node 140 transmits the content of the work result to the public storage node 520, the public storage node 520 stores the content, and generates an address of the stored content to generate the worker node 140 ). In this case, the worker node 140 generates a block including the first data regarding the identification information and the content address of the worker node. On the other hand, when the worker node 140 transmits the work result to the evaluator node 130 after the task is executed, the corresponding work result may include a content address stored in the common storage node 520. Also, the data related to the work result included in the block generated by the evaluator node 130 may include second data regarding the content address.

일반적으로 머신 러닝의 작업은 대규모 입출력 데이터를 처리해야 하는 문제를 수반하므로, 본 실시예에 따른 블록체인 네트워크의 노드들 사이에 효율적인 데이터 전송을 필요로 한다. 그런데, 일반적인 블록체인의 블록은 효율성을 위해 제한된 크기를 가지도록 설계되어 있다. 이러한 문제점을 해결하기 위해, 본 실시예에 따른 블록체인 네트워크는 공용 저장소 노드(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 common storage node 520, thereby efficiently transmitting data between nodes. . For example, the client node 110 may share input data related to the requested operation with the worker node 140 through the common storage node 520. In addition, the evaluator node 130 and the worker node 140 may share the work results, including output data related to the requested operation, with the client node 110 through the public storage node 520. In this data sharing process, each node can use the API provided by the system, for example, a blockchain API can be used to allow calls by the data path of the storage space.

블록체인 네트워크의 각 노드는 실제 작업 실행 착수 전에 공용 저장소 노드(520)에 적절한 공간을 확보할 수 있다. 예를 들어, 관리자 노드(120)가 작업을 코디네이트하는 과정에서 공용 저장소 노드(520)에 공간을 확보하여, 클라이언트 노드(110)가 학습할 입력 데이터와 테스트 데이터의 공간을 예약하고, 평가자 노드(130)와 작업자 노드(140)가 작업 실행 및 작업 결과물 평가 중에 사용할 임시 공간을 확보할 수 있다.Each node of the blockchain network can secure a suitable space in the public storage node 520 before the actual work execution starts. For example, the administrator node 120 reserves space in the public storage node 520 in the process of coordinating the work, and the client node 110 reserves space for input data and test data to be learned, and the evaluator node ( 130) and the worker node 140 may secure temporary space to be used during job execution and job outcome evaluation.

일 실시예에 따르면, 공용 저장소 노드(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 public storage node 520 may be content-address-based. That is, the address of the content stored in the storage may be an encrypted hash function for the uploaded content-for example, SHA-2. Nodes in the blockchain network can share the uploaded data through the public storage node 520, so there is no need to execute updates to the same data on each node, and the data stored in the public storage node 520 is the data owner. It may not contain personal information such as. In one embodiment, in order to encrypt data uploaded to the public storage node 520, the encryption/decryption function and the encryption/decryption key may be provided by the public storage node 520 and the blockchain protocol. In one embodiment, when a file is created and stored in the public storage node 520, the file owner (or file creation node) specifies a time to live (TTL) of the generated file, and the file is automatically generated after a specified period of time. It can be configured to be deleted. This helps to efficiently manage the public storage node 520.

도 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 client node 110 may request, from an artificial neural network learning task, a task execution and evaluation based on a plurality of weights, an artificial neural network model copy address, and a data shard address from a plurality of evaluator nodes. have. In response, the evaluator node may transmit the learned result, and the client node 110 may update the weight based on the learned result and transmit the adjusted weight back to the evaluator node.

도 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.
제1항에 있어서,
상기 복수의 노드는 관리자 노드를 더 포함하며, 상기 보상함수는 챌린지 요청의 승인과 거절 중 적어도 하나의 경우에 대한 보상함수를 포함하고,
상기 방법은,
상기 클라이언트 노드 또는 상기 작업자 노드에 의해, 상기 관리자 노드로 챌린지 요청을 송신하는 단계; 및
상기 관리자 노드에 의해, 상기 복수의 노드로 상기 챌린지 요청의 승인 또는 거절을 송신하는 단계를 더 포함하는, 방법.
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.
제2항에 있어서,
상기 관리자 노드에 의해, 상기 복수의 노드로 작업 명세를 송신하는 단계;
상기 복수의 노드 중 적어도 하나의 노드에 의해, 상기 관리자 노드로 평가자 노드의 신청을 송신하는 단계;
상기 관리자 노드에 의해, 상기 평가자 노드의 신청을 송신한 노드 중 적어도 하나로 평가자 노드의 승인을 송신하는 단계;
상기 복수의 노드 중 적어도 하나의 노드에 의해, 상기 관리자 노드로 작업자 노드의 신청을 송신하는 단계; 및
상기 관리자 노드에 의해, 상기 작업자 노드의 신청을 송신한 노드 중 적어도 하나로 작업자 노드의 승인을 송신하는 단계를 더 포함하는, 방법.
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.
제3항에 있어서
상기 관리자 노드에 의해, 상기 복수의 노드 중에서 호스트 노드로 보안 런타임 환경 설정을 송신하는 단계; 및
상기 호스트 노드에 의해, 상기 작업자 노드 및 상기 평가자 노드 중 적어도 하나의 노드로 상기 설정된 보안 런타임 환경 및 애플리케이션을 송신하는 단계를 더 포함하는, 시스템.
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.
제1항에 있어서
상기 작업자 노드에 의해, 공용 저장소 노드로 상기 작업 결과물의 컨텐츠를 송신하여, 상기 컨텐츠의 주소가 생성되도록 하는 단계를 더 포함하고,
상기 작업자 노드에 의해 상기 평가자 노드로 송신되는 작업 결과물은 상기 컨텐츠의 주소를 포함하고,
상기 생성된 블록에 포함되는 상기 작업 결과물에 관한 데이터는 상기 컨텐츠의 주소에 관한 제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.
제5항에 있어서
상기 공용 저장소 노드에 의해, 상기 작업 결과물의 컨텐츠를 복수의 샤드로 분산하여 저장하는 단계를 더 포함하고
상기 컨텐츠의 주소는 복수의 샤드에 대한 주소를 포함하는, 방법.
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.
제1항에 있어서
상기 작업 요청은 인공신경망에 의한 학습 작업 요청을 포함하고,
상기 평가는 상기 인공신경망의 파라미터 변화에 따른 손실함수 값의 변화량을 기초로 한 평가를 포함하는, 방법.
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.
제8항에 있어서,
상기 복수의 노드는 관리자 노드를 더 포함하며, 상기 보상함수는 챌린지 요청의 승인과 거절 중 적어도 하나의 경우에 대한 보상함수를 포함하고,
상기 방법은,
상기 클라이언트 노드 또는 상기 작업자 노드에 의해, 상기 관리자 노드로 챌린지 요청이 송신되면, 상기 클라이언트 노드 또는 상기 작업자 노드의 식별정보 및 상기 챌린지 요청에 관한 데이터를 포함하는 블록을 생성하는 단계; 및
상기 관리자 노드에 의해, 상기 복수의 노드로 상기 챌린지 요청의 승인 또는 거절이 송신되면, 상기 관리자 노드의 식별정보 및 상기 챌린지 요청 승인 또는 거절에 관한 데이터를 포함하는 블록을 생성하는 단계를 더 포함하는, 방법.
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.
제9항에 있어서,
상기 관리자 노드에 의해, 상기 복수의 노드로 작업 명세가 송신되면, 상기 관리자 노드의 식별정보 및 상기 작업 명세에 관한 데이터를 포함하는 블록을 생성하는 단계;
상기 복수의 노드 중 적어도 하나의 노드에 의해, 상기 관리자 노드로 평가자 노드의 신청이 송신되면, 상기 노드의 식별정보 및 상기 평가자 노드의 신청에 관한 데이터를 포함하는 블록을 생성하는 단계;
상기 관리자 노드에 의해, 상기 평가자 노드의 신청을 송신한 노드 중 적어도 하나로 평가자 노드의 승인이 송신되면, 상기 관리자 노드의 식별정보 및 상기 평가자 노드의 승인에 관한 데이터를 포함하는 블록을 생성하는 단계;
상기 복수의 노드 중 적어도 하나의 노드에 의해, 상기 관리자 노드로 작업자 노드의 신청이 송신되면, 상기 노드의 식별정보 및 상기 작업자 노드의 신청에 관한 데이터를 포함하는 블록을 생성하는 단계; 및
상기 관리자 노드에 의해, 상기 작업자 노드의 신청을 송신한 노드 중 적어도 하나로 작업자 노드의 승인이 송신되면, 상기 관리자 노드의 식별정보 및 상기 작업자 노드의 승인에 관한 데이터를 포함하는 블록을 생성하는 단계를 더 포함하는, 방법.
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.
제10항에 있어서
상기 관리자 노드에 의해, 상기 복수의 노드 중에서 호스트 노드로 보안 런타임 환경 설정이 송신되면, 상기 관리자 노드의 식별정보 및 상기 보안 런타임 환경 설정에 관한 데이터를 포함하는 블록을 생성하는 단계; 및
상기 호스트 노드에 의해, 상기 작업자 노드 및 상기 평가자 노드 중 적어도 하나의 노드로 상기 설정된 보안 런타임 환경 및 애플리케이션이 송신되면, 상기 호스트 노드의 식별정보 및 상기 보안 런타임 환경 및 애플리케이션에 관한 데이터를 포함하는 블록을 생성하는 단계를 더 포함하는, 시스템.
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.
제8항에 있어서
상기 작업자 노드에 의해, 공용 저장소 노드로 상기 작업 결과물의 컨텐츠가 송신되고, 상기 컨텐츠의 주소가 생성되면, 상기 작업자 노드의 식별정보 및 상기 컨텐츠의 주소에 관한 제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.
제12항에 있어서
상기 공용 저장소 노드에 의해, 상기 작업 결과물의 컨텐츠를 복수의 샤드로 분산하여 저장하는 단계를 더 포함하고
상기 컨텐츠의 주소는 복수의 샤드에 대한 주소를 포함하는, 방법.
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.
제8항에 있어서
상기 작업 요청은 인공신경망에 의한 학습 작업 요청을 포함하고,
상기 평가는 상기 인공신경망의 파라미터 변화에 따른 손실함수 값의 변화량을 기초로 한 평가를 포함하는, 방법.
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.
제15항에 있어서,
상기 복수의 노드는 관리자 노드를 더 포함하고.
상기 보상함수는 챌린지 요청의 승인과 거절 중 적어도 하나의 경우에 대한 보상함수를 포함하고,
상기 클라이언트 노드 또는 상기 작업자 노드는, 상기 관리자 노드로 챌린지 요청을 송신하면, 상기 클라이언트 노드 또는 상기 작업자 노드의 식별정보 및 상기 챌린지 요청에 관한 데이터를 포함하는 블록을 생성하고
상기 관리자 노드는, 상기 복수의 노드로 상기 챌린지 요청의 승인 또는 거절을 송신하면, 상기 관리자 노드의 식별정보 및 상기 챌린지 요청 승인 또는 거절에 관한 데이터를 포함하는 블록을 생성하는, 시스템.
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.
제16항에 있어서
상기 관리자 노드는, 상기 복수의 노드 중에서 호스트 노드로 보안 런타임 환경 설정을 송신하면, 상기 관리자 노드의 식별정보 및 상기 보안 런타임 환경 설정에 관한 데이터를 포함하는 블록을 생성하고,
상기 호스트 노드는, 상기 작업자 노드 및 상기 평가자 노드 중 적어도 하나의 노드로 상기 설정된 보안 런타임 환경 및 애플리케이션을 송신하면, 상기 호스트 노드의 식별정보 및 상기 보안 런타임 환경 및 애플리케이션에 관한 데이터를 포함하는 블록을 생성하는, 시스템.
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.
제15항에 있어서
상기 작업자 노드는, 공용 저장소 노드로 상기 작업 결과물의 컨텐츠를 송신하고, 상기 컨텐츠의 주소가 생성되면, 상기 작업자 노드의 식별정보 및 상기 컨텐츠의 주소에 관한 제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.
제18항에 있어서
상기 공용 저장소 노드는, 상기 작업 결과물의 컨텐츠를 복수의 샤드로 분산하여 저장하고,
상기 컨텐츠의 주소는 복수의 샤드에 대한 주소를 포함하는, 시스템.
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.
KR1020190000984A 2019-01-04 2019-01-04 System and method for transaction of work requests and products based on blockchain KR102206026B1 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (2)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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