KR102361217B1 - The method and system for providing cloud service including machine learning service based blockchain - Google Patents

The method and system for providing cloud service including machine learning service based blockchain Download PDF

Info

Publication number
KR102361217B1
KR102361217B1 KR1020210112372A KR20210112372A KR102361217B1 KR 102361217 B1 KR102361217 B1 KR 102361217B1 KR 1020210112372 A KR1020210112372 A KR 1020210112372A KR 20210112372 A KR20210112372 A KR 20210112372A KR 102361217 B1 KR102361217 B1 KR 102361217B1
Authority
KR
South Korea
Prior art keywords
cloud service
block chain
blockchain network
network
blockchain
Prior art date
Application number
KR1020210112372A
Other languages
Korean (ko)
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 KR1020210112372A priority Critical patent/KR102361217B1/en
Application granted granted Critical
Publication of KR102361217B1 publication Critical patent/KR102361217B1/en

Links

Images

Classifications

    • 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/1074Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
    • H04L67/1078Resource delivery mechanisms
    • H04L67/1082Resource delivery mechanisms involving incentive schemes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • G06F16/1824Distributed file systems implemented using Network-attached Storage [NAS] architecture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • 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
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L67/16
    • H04L67/2809
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/51Discovery or management thereof, e.g. service location protocol [SLP] or web services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/562Brokering proxy services
    • H04L2209/38
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

Abstract

Embodiments relate to a cloud service providing method including blockchain-based machine learning service and a system thereof and, more specifically, to a blockchain-based cloud service providing method and a system thereof which provide a cloud service by using computing resources of nodes configuring a blockchain and provide rewards to the nodes, which provide the computing resources.

Description

블록체인 기반의 머신러닝 서비스를 포함하는 클라우드 서비스 제공 방법 및 시스템{THE METHOD AND SYSTEM FOR PROVIDING CLOUD SERVICE INCLUDING MACHINE LEARNING SERVICE BASED BLOCKCHAIN}A method and system for providing a cloud service including a blockchain-based machine learning service

아래 실시예들은 블록체인 기반 클라우드 서비스 제공 방법 및 시스템에 관한 것으로, 구체적으로 블록체인을 구성하는 노드들의 컴퓨팅 리소스를 이용하여 클라우드 서비스를 제공하고, 컴퓨팅 리소스를 제공한 노드들에게 보상을 제공하는 블록체인 기반의 머신러닝 서비스를 포함하는 클라우드 서비스 제공 방법 및 시스템에 관한 것이다.The following embodiments relate to a block chain-based cloud service providing method and system, and specifically, a block providing a cloud service using the computing resources of the nodes constituting the block chain, and providing a reward to the nodes that provided the computing resources It relates to a method and system for providing a cloud service including a chain-based machine learning service.

분산 원장 기술이라고도 지칭되는 블록체인(Blockchain) 기술은 하나 이상의 컴퓨팅 디바이스가 "회계"에 공동으로 참여하고 완전한 분산 데이터베이스를 공동으로 유지하는 새로운 기술이다. 블록체인 기술은 탈중앙화, 개방성, 및 투명성의 특징들을 가지며, 각각의 컴퓨팅 디바이스는 데이터베이스 기록에 참여할 수 있고, 컴퓨팅 디바이스들은 데이터 동기화를 신속하게 수행할 수 있다. 블록체인의 분산 데이터베이스에서 블록체인 기술을 사용하여 탈중앙화된 시스템을 확립하고 블록체인의 분산 데이터베이스에 자동 실행을 위한 다양한 실행 프로그램들을 기록하는 방법들이 많은 분야에서 널리 적용되고 있다.Blockchain technology, also referred to as distributed ledger technology, is a new technology in which one or more computing devices jointly participate in “accounting” and jointly maintain a fully distributed database. Blockchain technology has the characteristics of decentralization, openness, and transparency, and each computing device can participate in database recording, and the computing devices can quickly perform data synchronization. Methods of establishing a decentralized system using blockchain technology in the distributed database of blockchain and recording various executable programs for automatic execution in the distributed database of blockchain are widely applied in many fields.

4차 산업혁명의 핵심이 되는 빅데이터 기술의 특성은 3V로 정의할수 있는데, 규모(Volume), 속도(Velocity) 그리고 다양성(Variety)이 그것이다. 또한, 최근에는 3V뿐만 아니라 타당성(Validity)과 신뢰성(Veracity)도 빅데이터 특성으로 언급되고 있다. 타당성은 데이터 활용이 편협하지 않고 정확하게 활용했는지를 고려하는 요인이고, 신뢰성은 활용 데이터가 신뢰할 만한지를 고려하는 요인이다. 이는 기존과 중첩되지 않기 때문에 새로운 특성으로 볼 수 있다. 그러므로 빅데이터 특성은 엄밀히 말해 3V에서 5V로 확장한 것으로 볼 수 있다.The characteristics of big data technology, which are the core of the 4th industrial revolution, can be defined as 3V, which are volume, velocity, and variety. Also, recently, not only 3V but also validity and reliability are mentioned as big data characteristics. Validity is a factor that considers whether data utilization is accurate and not narrow, and reliability is a factor that considers whether utilization data is reliable. This can be viewed as a new characteristic because it does not overlap with the existing one. Therefore, it can be seen that the big data characteristics are technically extended from 3V to 5V.

이때, 빅데이터에서 요구되는 타당성과 신뢰성을 신현하기 위한 수단 중 하나로 블록체인이 고려될 수 있다. 블록체인은 탈중앙 플랫폼(Platform)으로서 시스템 참여자 전체에 합의된 데이터를공유하는 기술이다. 이를 위해 개인간(P2P) 네트워크와 합의 알고리즘이 적용돼 있는데, 해당 두 기술은 빅데이터의 타당성과 신뢰성으로 확장하게 한다.At this time, blockchain can be considered as one of the means for realizing the validity and reliability required in big data. As a decentralized platform, blockchain is a technology that shares data agreed upon by all system participants. To this end, a peer-to-peer (P2P) network and a consensus algorithm are applied, and these two technologies expand the validity and reliability of big data.

그러므로 블록체인과 인공지능이 결합되면서 데이터의 타당성과 신뢰성을 제공한다. 블록체인은 인공지능 분석의 기반이 되는 데이터 출처를 보여준다. 또한 해당 데이터가 합의로 인해 신뢰받았음을 인증케 한다. 그 뿐만 아니라, 분산형 인공지능 구현도 가능하다. 블록체인은 참여자가 공유되는 모든 데이터를 보유하고 있음을 원칙으로 한다. 이는 인공지능을 개별적으로 활용할 수 있게 한다. 기존의 중앙형 시스템은 한곳에 데이터를 모두 가지고 있고, 분석도 한곳에서 이뤄진다. 그런데 블록체인은 분석 범위를 참여자 간에 정할 수 있다. 분석 결과를 공유해 받아볼 수 있기 때문이다. 이처럼 두 유망 기술의 융합은 더 넓은 방향으로패러다임 전환을 불러일으키고 있다. 이에 따라 블록체인과 인공지능을 이용한 다양한 서비스가 개발 및 출시되고 있다.Therefore, the combination of blockchain and artificial intelligence provides validity and reliability of data. Blockchain reveals the data sources underlying AI analytics. It also authenticates that the data is trusted by consensus. Not only that, it is also possible to implement distributed artificial intelligence. The principle of blockchain is that participants own all shared data. This allows for individual use of artificial intelligence. Existing centralized systems have all data in one place, and analysis is done in one place. However, in blockchain, the scope of analysis can be determined among participants. This is because the analysis results can be shared and received. The convergence of these two promising technologies is causing a paradigm shift in a broader direction. Accordingly, various services using blockchain and artificial intelligence are being developed and released.

이 배경기술 부분에 기재된 사항은 발명의 배경에 대한 이해를 증진하기 위하여 작성된 것으로써, 이 기술이 속하는 분야에서 통상의 지식을 가진 자에게 이미 알려진 종래기술이 아닌 사항을 포함할 수 있다.Matters described in this background section are prepared to promote understanding of the background of the invention, and may include matters not already known to those of ordinary skill in the art to which this technology belongs.

아래 실시예들은 전술한 문제점을 해결하기 위하여 안출된 것으로서, 블록체인을 구성하는 노드들의 컴퓨팅 리소스를 이용하여 클라우드 서비스를 제공하고, 컴퓨팅 리소스를 제공한 노드들에게 보상을 제공하는 블록체인 기반의 머신러닝 서비스를 포함하는 클라우드 서비스 제공 방법 및 시스템을 제공하는 것을 목적으로 한다.The following embodiments have been devised to solve the above-described problem, and a blockchain-based machine that provides a cloud service by using the computing resources of the nodes constituting the blockchain and provides rewards to the nodes that provided the computing resources. An object of the present invention is to provide a method and system for providing a cloud service including a learning service.

일 실시예가 해결하고자 하는 과제들은 이상에서 언급된 과제로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.Problems to be solved by one embodiment are not limited to the problems mentioned above, and other problems not mentioned will be clearly understood by those skilled in the art from the following description.

상기 목적을 달성하기 위한 본 발명의 일 측면은, 블록체인 기반의 머신러닝 서비스를 포함하는 클라우드 서비스 제공 방법 및 시스템을 제공한다.One aspect of the present invention for achieving the above object provides a cloud service providing method and system including a block chain-based machine learning service.

상기 블록체인 기반의 클라우드 서비스 제공 시스템은, 클라우드 서비스를 요청하는 클라이언트 단말; 블록체인 네트워크를 관리하며, 상기 블록체인 네트워크를 구성하는 노드들을 분산 컴퓨팅 디바이스로 이용하여 상기 클라우드 서비스를 상기 클라이언트 단말에 제공하는 클라우드 서비스 제공 장치; 및 상기 블록체인 네트워크에 상기 노드로 참여하고, 참여에 대한 보상으로 상기 블록체인 네트워크에 따른 블록체인 재원을 보상으로 제공받는 사용자 단말을 포함한다.The blockchain-based cloud service providing system includes: a client terminal requesting a cloud service; a cloud service providing apparatus that manages a block chain network and provides the cloud service to the client terminal using nodes constituting the block chain network as distributed computing devices; and a user terminal that participates in the block chain network as the node, and is provided with block chain resources according to the block chain network as a reward for participation.

상기 블록체인 네트워크는, 퍼블릭 블록체인 네트워크(public blockchain network) 및 프라이빗 블록체인 네트워크(private blockchain network)를 동시에 포함하는 하이브리드 블록체인 네트워크로 구성된다.The blockchain network is composed of a hybrid blockchain network including a public blockchain network and a private blockchain network at the same time.

상기 클라우드 서비스 제공 장치는, 상기 클라우드 서비스의 종류와 레이턴시(latency), 컴퓨팅 리소스 양에 따라 상기 퍼블릭 블록체인 네트워크와 상기 프라이빗 블록체인 네트워크 중 하나를 선택하여 상기 클라우드 서비스를 제공할 수 있다.The cloud service providing apparatus may provide the cloud service by selecting one of the public blockchain network and the private blockchain network according to the type, latency, and amount of computing resources of the cloud service.

상기 클라우드 서비스 제공 장치는, 상기 퍼블릭 블록체인 네트워크를 구성하는 제1 노드들 각각의 컴퓨팅 리소스, 및 코인 지갑을 관리하는 퍼블릭 블록체인 관리부; 상기 프라이빗 블록체인 네트워크를 구성하는 제2 노드들을 인증하고, 컴퓨팅 리소스를 관리하는 프라이빗 블록체인 관리부; 상기 클라우드 서비스를 제공하기 위한 프레임워크(framework)를 구성하고 관리하는 프레임워크 관리부; 상기 퍼블릭 블록체인 네트워크를 외부 퍼블릭 블록체인 네트워크와 통신하도록 중계하는 블록체인 API 브로커; 상기 블록체인 네트워크를 통해 제공되는 컴퓨팅 리소스를 이용하여 웹 상에서 개발 툴을 구동하여 상기 클라이언트 단말에 제공하는 개발 툴 관리부; 상기 퍼블릭 블록체인 관리부 및 상기 프라이빗 블록체인 관리부와 연동하여 상기 블록체인 네트워크를 구성하는 노드들로부터 컴퓨팅 리소스를 제공받고, 제공받은 컴퓨팅 리소스를 상기 클라이언트 단말에 제공하는 리소스 관리부; 및 상기 퍼블릭 블록체인 관리부, 상기 프라이빗 블록체인 관리부, 및 상기 리소스 관리부와 연동하여 웹 상에서 애플리케이션을 구동하여 상기 클라이언트 단말에 제공하는 애플리케이션 구동부를 포함할 수 있다.The cloud service providing apparatus may include: a public block chain management unit for managing computing resources of each of the first nodes constituting the public block chain network, and a coin wallet; a private blockchain management unit that authenticates second nodes constituting the private blockchain network and manages computing resources; a framework management unit for configuring and managing a framework for providing the cloud service; a blockchain API broker that relays the public blockchain network to communicate with an external public blockchain network; a development tool management unit that drives a development tool on the web using a computing resource provided through the block chain network and provides it to the client terminal; a resource management unit that interworks with the public block chain management unit and the private block chain management unit to receive computing resources from nodes constituting the block chain network, and provides the received computing resources to the client terminal; and an application driving unit that operates an application on the web in conjunction with the public block chain management unit, the private block chain management unit, and the resource management unit and provides it to the client terminal.

상기 프라이빗 블록체인 관리부는, 상기 제1 노드들 사이에 제한된 메시징 경로인 채널(channel)을 생성하고, 상기 채널을 통해 상기 상기 제1 노드들 중 특정 하위 집합에 대해 기밀성 있는 정보를 교환하도록 제어할 수 있다.The private blockchain management unit creates a channel, which is a limited messaging path between the first nodes, and controls to exchange confidential information for a specific subset of the first nodes through the channel. can

상기 프라이빗 블록체인 관리부는, 상기 제1 노드들 각각이 트랜잭션 순서화 전에 트랜잭션 실행을 수행하도록 상기 제1 노드들을 제어할 수 있다.The private blockchain management unit may control the first nodes so that each of the first nodes performs transaction execution before transaction ordering.

상기 퍼블릭 블록체인 관리부는, 상기 제2 노드들 각각을 서로 동일한 파일 시스템을 갖는 IPFS(Inter Planetary File System) 기반의 분산 클라우드 저장소로 구성할 수 있다.The public blockchain management unit may configure each of the second nodes as an Inter Planetary File System (IPFS)-based distributed cloud storage having the same file system as each other.

상기 클라우드 서비스 제공 장치는, 상기 프라이빗 블록체인 네트워크를 이용하여 딥러닝 또는 머신러닝에 기반한 훈련(traning)을 수행하고 훈련 결과를 상기 클라이언트 단말에 제공하는 머신러닝 서비스를 수행할 수 있다.The cloud service providing apparatus may perform a machine learning service that performs deep learning or machine learning-based training using the private block chain network and provides a training result to the client terminal.

이상에서 설명한 바와 같은 일 실시예들에 따르면, 클라이언트에게 블록체인과 결합된 분산 클라우드 환경을 제공하여, 탈중앙화 환경에서 데이터를 저장, 관리, 처리하여 보안은 강화하고 데이터 처리 비용을 절감하게 할 수 있다.According to the embodiments as described above, it is possible to provide a distributed cloud environment combined with a block chain to the client, thereby enhancing security and reducing data processing costs by storing, managing, and processing data in a decentralized environment. have.

그리고, 블록체인 기술과 인공지능 기술을 융합하여, 신뢰성 있는 빅데이터 인공지능 분석을 통해, 클라이언트가 손쉽게 딥러닝(Deep Learning), 머신러닝(Machine Learning) 작업을 수행할 수 있다.In addition, by converging block chain technology and artificial intelligence technology, clients can easily perform deep learning and machine learning tasks through reliable big data artificial intelligence analysis.

또한, 기존의 검증된 오픈소스들을 활용해 많은 클라이언트들이 인공지능을 보다 가깝게 접근하여, 업무나 비즈니스에 활용할 수 있게 하여, 개인들은 업무 역량을 강화할 수 있고, 기업들은 생산성을 높일 수 있으며, 많은 플랫폼(Platform) 개발자들은 용이하게 각자의 플랫폼 컨셉에 맞게 개발할 수 있다In addition, by utilizing existing proven open sources, many clients can access AI more closely and use it for work or business, so that individuals can strengthen their work capabilities, companies can increase their productivity, and many platforms (Platform) Developers can easily develop according to their platform concept

일 실시예의 효과들은 이상에서 언급된 효과로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.Effects of one embodiment are not limited to the effects mentioned above, and other effects not mentioned will be clearly understood by those skilled in the art from the following description.

도 1은 일 실시예에 따른 클라우드 서비스 제공 시스템을 도시한 도면이다.
도 2는 일 실시예에 따른 클라우드 서비스 제공 시스템의 개념도이다.
도 3은 일 실시예에 따른 퍼블릭 블록체인 네트워크를 설명하기 위한 도면이다.
도 4는 일 실시예에 따른 노드의 구성도이다.
도 5는 일 실시예에 따른 블록체인으로 연결되는 블록을 개념적으로 도시한 도면이다.
도 6은 일 실시예에 따른 프라이빗 블록체인 네트워크을 설명하기 위한 도면이다.
도 7은 일 실시예에 따른 퍼블릭 블록체인 네트워크를 통해 구현되는 분산형 파일 시스템(IPFS)을 설명하기 위한 도면이다.
도 8은 일 실시예에 따른 클라우드 서비스 제공 시스템에 대한 아키텍쳐를 예시적으로 나타낸 도면이고,
도 9는은 도 8에 따른 아키텍쳐를 구체화하여 나타낸 도면이다.
도 10은 일 실시예에 따른 클라우드 서비스 제공 방법의 흐름도이다.
도 11은 다른 실시예에 따른 클라우드 서비스 제공 방법의 흐름도이다.
도 12는 일 실시예에 따른 사용자 단말의 구성도이다.
도 13은 일 실시예에 따른 클라우드 서비스 제공 장치의 하드웨어 구성을 예시적으로 나타낸 도면이다.
도 14는 일 실시예에 따른 컴퓨팅 리소스 제공 현황이 출력된 사용자 단말의 화면을 도시한 도면이다.
도 15는 일 실시예에 따른 보상 현황이 출력된 사용자 단말의 화면을 도시한 도면이다.
1 is a diagram illustrating a cloud service providing system according to an embodiment.
2 is a conceptual diagram of a cloud service providing system according to an embodiment.
3 is a diagram for explaining a public blockchain network according to an embodiment.
4 is a block diagram of a node according to an embodiment.
5 is a diagram conceptually illustrating a block connected to a block chain according to an embodiment.
6 is a diagram for explaining a private blockchain network according to an embodiment.
7 is a diagram for explaining a distributed file system (IPFS) implemented through a public blockchain network according to an embodiment.
8 is a diagram illustrating an architecture for a cloud service providing system according to an embodiment;
FIG. 9 is a detailed diagram illustrating the architecture according to FIG. 8 .
10 is a flowchart of a cloud service providing method according to an embodiment.
11 is a flowchart of a cloud service providing method according to another embodiment.
12 is a block diagram of a user terminal according to an embodiment.
13 is a diagram exemplarily illustrating a hardware configuration of an apparatus for providing a cloud service according to an embodiment.
14 is a diagram illustrating a screen of a user terminal on which a computing resource provision status is output, according to an embodiment.
15 is a diagram illustrating a screen of a user terminal on which a compensation status is output, according to an embodiment.

본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나, 본 발명은 이하에서 개시되는 실시예들에 제한되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술 분야의 통상의 기술자에게 본 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. Advantages and features of the present invention and methods of achieving them will become apparent with reference to the embodiments described below in detail in conjunction with the accompanying drawings. However, the present invention is not limited to the embodiments disclosed below, but may be implemented in various different forms, and only the present embodiments allow the disclosure of the present invention to be complete, and those of ordinary skill in the art to which the present invention pertains. It is provided to fully understand the scope of the present invention to those skilled in the art, and the present invention is only defined by the scope of the claims.

본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소 외에 하나 이상의 다른 구성요소의 존재 또는 추가를 배제하지 않는다. 명세서 전체에 걸쳐 동일한 도면 부호는 동일한 구성 요소를 지칭하며, "및/또는"은 언급된 구성요소들의 각각 및 하나 이상의 모든 조합을 포함한다. 비록 "제1", "제2" 등이 다양한 구성요소들을 서술하기 위해서 사용되나, 이들 구성요소들은 이들 용어에 의해 제한되지 않음은 물론이다. 이들 용어들은 단지 하나의 구성요소를 다른 구성요소와 구별하기 위하여 사용하는 것이다. 따라서, 이하에서 언급되는 제1 구성요소는 본 발명의 기술적 사상 내에서 제2 구성요소일 수도 있음은 물론이다.The terminology used herein is for the purpose of describing the embodiments and is not intended to limit the present invention. In this specification, the singular also includes the plural unless specifically stated otherwise in the phrase. As used herein, “comprises” and/or “comprising” does not exclude the presence or addition of one or more other components in addition to the stated components. Like reference numerals refer to like elements throughout, and "and/or" includes each and every combination of one or more of the recited elements. Although "first", "second", etc. are used to describe various elements, these elements are not limited by these terms, of course. These terms are only used to distinguish one component from another. Accordingly, it goes without saying that the first component mentioned below may be the second component within the spirit of the present invention.

다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야의 통상의 기술자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또한, 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.Unless otherwise defined, all terms (including technical and scientific terms) used herein will have the meaning commonly understood by those of ordinary skill in the art to which this invention belongs. In addition, terms defined in a commonly used dictionary are not to be interpreted ideally or excessively unless specifically defined explicitly.

이하, 첨부된 도면을 참조하여 실시예를 상세하게 설명한다.Hereinafter, an embodiment will be described in detail with reference to the accompanying drawings.

도 1은 일 실시예에 따른 클라우드 서비스 제공 시스템(10)을 도시한 도면이다.1 is a diagram illustrating a cloud service providing system 10 according to an embodiment.

도 1을 참조하면, 일 실시예에 따른 클라우드 서비스 제공 시스템(10)은 클라우드 서비스 제공 장치(100), 클라이언트 단말(200) 및 사용자 단말(300)을 포함할 수 있다.Referring to FIG. 1 , a cloud service providing system 10 according to an embodiment may include a cloud service providing apparatus 100 , a client terminal 200 , and a user terminal 300 .

클라우드 서비스 제공 시스템(10) 내에 포함된 다양한 개체들(entities) 간의 통신은 유/무선 네트워크를 통해 수행될 수 있다. 유/무선 네트워크는 표준 통신 기술 및/또는 프로토콜들이 사용될 수 있다.Communication between various entities included in the cloud service providing system 10 may be performed through a wired/wireless network. A wired/wireless network may use standard communication technologies and/or protocols.

클라우드 서비스 제공 시스템(10) 내 클라우드 서비스 제공 장치(100), 클라이언트 단말(200) 및 사용자 단말(300)은 예를 들어, 컴퓨터, UMPC(Ultra Mobile PC), 워크스테이션, 넷북(net-book), PDA(Personal Digital Assistants), 포터블(portable) 컴퓨터, 웹 타블렛(web tablet), 무선 전화기(wireless phone), 모바일 폰(mobile phone), 스마트폰(smart phone), PMP(portable multimedia player) 같은 전자 장치 중 하나로서, 일 실시예와 관련된 어플리케이션의 설치 및 실행이 가능한 모든 전자 장치를 포함할 수 있다. 전자 장치는 어플리케이션의 제어 하에 예를 들어, 서비스 화면의 구성, 데이터 입력, 데이터 송수신, 데이터 저장 등과 같은 서비스 전반의 동작을 수행할 수 있다.The cloud service providing device 100, the client terminal 200 and the user terminal 300 in the cloud service providing system 10 are, for example, a computer, an Ultra Mobile PC (UMPC), a workstation, a net-book. , PDA (Personal Digital Assistants), portable computer, web tablet, wireless phone, mobile phone, smart phone, electronic such as PMP (portable multimedia player) As one of the devices, all electronic devices capable of installing and executing an application related to an embodiment may be included. The electronic device may perform overall service operations such as, for example, configuration of a service screen, data input, data transmission/reception, data storage, and the like, under the control of the application.

클라우드 서비스 제공 장치(100)는 블록체인(Blockchain)을 기반으로 분산 클라우드(Cloud)를 제공하고, 블록체인 네트워크를 구성하는 노드(Node)들의 컴퓨팅 리소스를 이용하여, 다양한 클라우드 서비스를 제공하는 블록체인 플랫폼(Bloackchanin Platform)이다.The cloud service providing device 100 provides a distributed cloud based on a blockchain, and uses the computing resources of nodes constituting the blockchain network to provide various cloud services. It is a platform (Blockchanin Platform).

일 실시예의 컴퓨팅 리소스는 블록체인 네트워크를 구성하는 노드들이 제공하는 CPU, NETWORK, MEMORY, STORAGE 등의 유휴 리소스를 포함할 수 있다.The computing resource of an embodiment may include idle resources such as CPU, NETWORK, MEMORY, STORAGE, etc. provided by nodes constituting the blockchain network.

클라우드 서비스 제공 장치(100)는 블록체인 네트워크를 구성하는 노드들의 컴퓨팅 리소스를 빌리고, 컴퓨팅 리소스를 사용하는 대가로 블록체인 재원을 보상으로 컴퓨팅 리소스를 제공한 노드에 제공할 수 있다.The cloud service providing apparatus 100 may borrow computing resources of nodes constituting the blockchain network and provide blockchain resources to the nodes that have provided the computing resources as a reward in return for using the computing resources.

본 명세서에서는 블록체인 재원을 블록체인을 이용하여 구현된 토큰(Token) 또는 코인(Coin)으로 설명하나, 일 실시예는 이에 한정되지는 아니하고, 블록체인에서 구현 가능한 다양한 디지털 화폐를 포함한다 하겠다.In this specification, block chain resources are described as tokens or coins implemented using block chains, but one embodiment is not limited thereto, and it will include various digital currencies that can be implemented in block chains.

클라우드 서비스 제공 장치(100)는 클라이언트 단말(200)로부터 수신된 입력 데이터를 이용하여, 클라이언트가 요청하는 다양한 클라우드 서비스를 제공할 수 있다.The cloud service providing apparatus 100 may provide various cloud services requested by the client by using input data received from the client terminal 200 .

일 실시예의 입력 데이터는 클라이언트 단말(200)이 요청하는 클라우드 서비스 관련 데이터이다. 일례로, 머신 러닝 관련 클라우드 서비스의 입력 데이터는 머신 러닝을 수행하기 위해 입력되는 데이터로 구성될 수 있다.The input data according to an embodiment is cloud service related data requested by the client terminal 200 . As an example, input data of a machine learning-related cloud service may be composed of data input to perform machine learning.

클라우드 서비스 제공 장치(100)는 입력 데이터를 이용하여, 다양한 클라우드 서비스의 결과로, 결과 데이터를 생성할 수 있다. 클라우드 서비스 제공 장치(100)는 생성된 결과 데이터를 클라이언트 단말(200)에 제공할 수 있다. The cloud service providing apparatus 100 may generate result data as a result of various cloud services by using the input data. The cloud service providing apparatus 100 may provide the generated result data to the client terminal 200 .

일 실시예의 클라우드 서비스는 블록체인 네트워크를 구성하는 노드들(동시에 클라우드 서비스를 위한 클라우드를 구성함)의 컴퓨팅 리소스를 이용하여 웹 상에서 애플리케이션을 구동시켜 제공하는 애플리케이션 서비스(SaaS, Software as a Service), 블록체인 네트워크를 구성하는 노드들로부터 제공받은 컴퓨팅 리소스를 제공하는 인프라 서비스(IaaS, Infrastructure as a Service), 블록 체인 네트워크를 구성하는 노드들로부터 제공받은 컴퓨팅 리소스를 이용하여 각종 소프트웨어 개발 툴을 제공하는 플랫폼 서비스(PaaS, Platform as a Service)를 포함할 수 있다.The cloud service of one embodiment is an application service (SaaS, Software as a Service) provided by running an application on the web using the computing resources of nodes constituting the block chain network (at the same time constituting the cloud for the cloud service); Infrastructure as a Service (IaaS) that provides computing resources provided from the nodes constituting the block chain network, and various software development tools using the computing resources provided from the nodes constituting the block chain network. It may include a platform service (PaaS, Platform as a Service).

구체적으로, 애플리케이션 서비스는, 바이오 헬스케어 애플리케이션, 블록체인의 생성 및 관리에 관한 애플리케이션, 스트리밍(Streaming)에 관한 애플리케이션, AI를 이용한 분석을 수행하는 애플리케이션, 배터리 관리에 관한 애플리케이션, 파일 공유 및 동기화 애플리케이션, IoT(Internet of Things) 기기의 관리 애플리케이션 등을 클라우드를 이용한 웹 상에서 제공하는 서비스를 포함할 수 있다. 플랫폼 서비스는, 애플리케이션 개발 툴에 해당하는 쥬피터 노트북(Jupyter Notebook), 비쥬얼 스튜디오 코드(Visual Studio Code), 이더리움앱 개발툴인 트러플(Truffle), 머신러닝에 관한 앱 개발툴인 오토ML(AutoML) 등을 클라우드를 이용한 웹 상에서 제공하는 서비스를 포함할 수 있다. 인프라 서비스는, 머신 러닝(Maching Learning, ML) 또는 딥 러닝(Deep Learning, DL)에 따른 훈련(Traning), 빅데이터의 구축, 블록체인 네트워크를 구성하는 노드들로 구성된 분산 파일 시스템에서 분산된 파일의 조각들의 결합 등에 관한 컴퓨팅 리소스를 제공하거나, 외부 퍼블릭 블록체인 네트워크에 대한 접근을 통한 외부 퍼블릭 블록체인 네트워크와의 연계를 제공할 수 있다.Specifically, the application service is a bio-healthcare application, an application related to the creation and management of a block chain, an application related to streaming, an application to perform analysis using AI, an application related to battery management, and a file sharing and synchronization application , Internet of Things (IoT) device management applications, and the like may include services provided on the web using the cloud. Platform services include Jupyter Notebook, Visual Studio Code, an Ethereum app development tool, Truffle, which are application development tools, and AutoML, an app development tool for machine learning. It may include services provided on the web using the cloud. Infra service is a file distributed in a distributed file system consisting of nodes constituting a block chain network, training according to Machine Learning (ML) or Deep Learning (DL), construction of big data, and It can provide computing resources related to the combination of pieces of

클라우드 서비스 제공 장치(100)는 블록체인 네트워크를 관리하는 게이트웨이(Gateway) 역할을 수행하며, 블록체인 네트워크를 유지 및 관리하고 클라우드 서비스를 제공하는데 필요한 프레임워크(Framework)와 각종 소프트웨어 툴(Software TOOL)을 제공하고, 블록체인 네트워크를 구성하는 노드들의 분산화된 컴퓨팅 리소스를 클라이언트 단말(200)에 간접적으로 제공하는 역할을 하는 것이다.The cloud service providing device 100 serves as a gateway to manage the block chain network, maintains and manages the block chain network, and provides a framework and various software tools required to provide cloud services. It serves to indirectly provide the distributed computing resources of the nodes constituting the blockchain network to the client terminal 200 .

클라우드 서비스 제공 장치(100)는 이를 위해, 블록체인 플랫폼 및 클라우드를 구현하고, 제공하는바, 이하에서 서술하는 클라우드 서비스 제공 장치(100)는 클라우드 서비스 제공 장치(100) 자체뿐만 아니라, 클라우드 서비스 제공 장치(100)가 구현하는 블록체인 플랫폼 및 클라우드를 지칭할 수 있다.The cloud service providing device 100 implements and provides a block chain platform and a cloud for this purpose, and the cloud service providing device 100 described below provides not only the cloud service providing device 100 itself, but also a cloud service. It may refer to a blockchain platform implemented by the device 100 and a cloud.

클라우드 서비스 제공 장치(100)는, 블록체인 네트워크(20)를 구성하는 노드인 사용자 단말(300) 이 결과 데이터를 얻는 데 필요한 컴퓨팅 리소스를 제공하면, 사용자 단말(300) 에 블록체인 재원을 보상으로 제공할 수 있다.The cloud service providing device 100, when the user terminal 300, which is a node constituting the block chain network 20, provides the computing resources necessary to obtain the result data, the user terminal 300 is rewarded with blockchain resources as a reward. can provide

클라이언트 단말(200)은 클라우드 서비스를 이용하는 주체로, 클라우드 서비스 제공 장치(100)에 원하는 클라우드 서비스를 요청할 수 있다.The client terminal 200 is a subject that uses the cloud service and may request a desired cloud service from the cloud service providing apparatus 100 .

클라이언트 단말(200)은 클라우드 서비스를 요청하기 위하여 입력 데이터를 클라우드 서비스 제공 장치(100)에 전송하고, 클라우드 서비스의 결과로 결과 데이터를 클라우드 서비스 제공 장치(100)로부터 수신할 수 있다.The client terminal 200 may transmit input data to the cloud service providing apparatus 100 to request a cloud service, and receive result data from the cloud service providing apparatus 100 as a result of the cloud service.

일례로, 클라이언트 단말(200)이 ML/DL을 수행하는 클라우드 서비스를 요청하는 경우, 클라이언트 단말(200)은 ML/DL의 입력 데이터(여기서 입력 데이터는 머신 러닝(ML) 또는 딥러닝(DL)을 수행하는 데 필요한 훈련 데이터 셋을 포함할 수 있음)를 클라우드 서비스 제공 장치(100)에 전송한다. 클라우드 서비스 제공 장치(100)는 블록체인 네트워크를 구성하는 노드들의 컴퓨팅 리소스를 이용하여, 입력 데이터에 대한 ML/DL을 수행하고, 결과 데이터를 생성하여, 생성된 결과 데이터를 클라이언트 단말(200)에 전송하는 것이다.As an example, when the client terminal 200 requests a cloud service for performing ML/DL, the client terminal 200 provides ML/DL input data (where the input data is machine learning (ML) or deep learning (DL)). (which may include a training data set required to perform ) is transmitted to the cloud service providing device 100 . The cloud service providing apparatus 100 performs ML/DL on input data using computing resources of nodes constituting the block chain network, generates result data, and transmits the generated result data to the client terminal 200 . is to transmit

일 예시로, 클라이언트 단말(200)이 전송받은 결과 데이터를 클라우드 서비스 제공 장치(100)가 활용할 수 있는 권한을 클라우드 서비스 제공 장치(100)에 제공할 경우, 클라이언트 단말(200)도, 클라우드 서비스 제공 장치(100)로부터 블록체인 재원을 보상으로 제공받을 수 있다. 클라우드 서비스 제공 장치(100)는, 권한을 제공받은 클라이언트 단말(200)의 결과 데이터를 다른 제3 의 클라이언트 단말에게 제공할 수도 있다.As an example, when the cloud service providing device 100 provides the cloud service providing device 100 with the right to use the result data transmitted by the client device 200 , the client device 200 also provides the cloud service. Blockchain resources may be provided as a reward from the device 100 . The cloud service providing apparatus 100 may provide result data of the client terminal 200 to which the authority has been provided to another third client terminal.

사용자 단말(300)은 블록체인 네트워크를 구성하는 노드(node)로서 기능함과 동시에 클라우드 서비스를 클라이언트 단말(200)에 제공하기 위한 분산 컴퓨팅 장치일 수 있다. 따라서, 사용자 단말(300)은, 클라우드 서비스를 수행하는 데 필요한 컴퓨팅 리소스를 클라우드 서비스 제공 장치(100)에 제공할 수 있다. 전술한 바와 같이, 일 실시예의 컴퓨팅 리소스는 사용자 단말(300)이 제공하는 CPU, NETWORK, MEMORY, STORAGE 등의 유휴 리소스를 의미한다.The user terminal 300 may function as a node constituting a block chain network and may be a distributed computing device for providing a cloud service to the client terminal 200 at the same time. Accordingly, the user terminal 300 may provide the cloud service providing apparatus 100 with a computing resource required to perform the cloud service. As described above, the computing resource of an embodiment means an idle resource such as CPU, NETWORK, MEMORY, STORAGE, etc. provided by the user terminal 300 .

사용자 단말(300)은 클라우드 서비스 제공 장치(100)에의 관리되는 블록체인 네트워크에 일 노드로 참여할 수 있다. 이하에서는 사용자 단말(300)과 블록체인 내 노드는 동일한 의미로 사용된다 하겠다.The user terminal 300 may participate as a node in a blockchain network managed by the cloud service providing device 100 . Hereinafter, the user terminal 300 and the node in the block chain will be used with the same meaning.

사용자 단말(300)은 컴퓨팅 리소스를 블록체인을 통해 클라우드 서비스 제공 장치(100)에 제공하고, 클라우드 서비스 제공 장치(100)는 다수의 사용자 단말(300)들로부터 제공받은 컴퓨팅 리소스를 이용하여 다양한 클라우드 서비스를 실시할 수 있다. 사용자 단말(300)은 컴퓨팅 리소스를 제공하는 것에 대한 보상으로, 블록체인 재원을 클라우드 서비스 제공 장치(100)로부터 제공받을 수 있다.The user terminal 300 provides a computing resource to the cloud service providing apparatus 100 through a block chain, and the cloud service providing apparatus 100 uses computing resources provided from a plurality of user terminals 300 to provide various cloud services. service can be performed. The user terminal 300 may receive a block chain financial resource from the cloud service providing apparatus 100 as a reward for providing the computing resource.

도 2는 일 실시예에 따른 클라우드 서비스 제공 시스템(10)의 개념도이다.2 is a conceptual diagram of a cloud service providing system 10 according to an embodiment.

도 2를 참조하면, 일 실시예에 따른 클라우드 서비스 제공 시스템(10)은, 클라우드 서비스를 요청(request)하고 요청에 대한 결과 데이터를 제공받는 클라이언트 단말(200), 클라이언트 단말(200)로부터 요청을 수신하고, 블록체인 네트워크(20)를 관리하며, 블록체인 네트워크(20)를 구성하는 노드(300)들을 분산 컴퓨팅 디바이스로 이용하여 결과 데이터를 생성하여 클라이언트 단말(200)에 제공하는 클라우드 서비스 제공 장치(100), 및 클라우드 서비스 제공 장치(100)에 의해 관리 및 유지되며 다수의 노드들(300)로 구성된 블록체인 네트워크(20)를 포함할 수 있다.Referring to FIG. 2 , a cloud service providing system 10 according to an embodiment requests a cloud service and receives a request from a client terminal 200 and a client terminal 200 receiving result data for the request. A cloud service providing apparatus that receives, manages the block chain network 20, and uses the nodes 300 constituting the block chain network 20 as a distributed computing device to generate result data and provide it to the client terminal 200 100 , and a block chain network 20 managed and maintained by the cloud service providing device 100 and composed of a plurality of nodes 300 .

블록체인 네트워크(20)는 퍼블릭 블록체인 네트워크(Public Blockchain Network, 21) 및 프라이빗 블록체인 네트워크(Private Blockchain Network, 22)를 동시에 포함하는 하이브리드 블록체인 네트워크로 구성될 수 있다. 따라서, 본 명세서 전체에서 노드(300)는 퍼블릭 블록체인 네트워크(21)와 프라이빗 블록체인 네트워크(22) 중 하나를 구성하는 노드이거나, 퍼블릭 블록체인 네트워크(21)를 구성함과 동시에 프라이빗 블록체인 네트워크(22)를 구성하는 노드일 수도 있다.The blockchain network 20 may be configured as a hybrid blockchain network including a public blockchain network 21 and a private blockchain network 22 at the same time. Therefore, throughout this specification, the node 300 is a node constituting one of the public blockchain network 21 and the private blockchain network 22, or a private blockchain network while constituting the public blockchain network 21 It may be a node constituting (22).

또한, 블록체인 네트워크(20)를 구성하는 노드들은 클라우드 서비스를 제공하기 위한 분산 클라우드 컴퓨팅을 수행하며, 필요에 따라 클라우드 서비스에 필요한 정보들을 트랜잭션으로 원장에 기록하여 원장에 대응하는 블록체인을 생성할 수 있다. 따라서, 클라우드 서비스에 필요한 정보들이 블록체인에 따른 합의 알고리즘 등에 의해 신뢰될 수 있으며, 노드들 중 선택 또는 합의된 일부 노드는 클라우드 서비스에 필요한 정보를 공유하거나 분산하여 저장할 수 있다.In addition, the nodes constituting the block chain network 20 perform distributed cloud computing to provide cloud services, and if necessary, record information necessary for cloud services as transactions in the ledger to create a block chain corresponding to the ledger. can Accordingly, information required for cloud service can be trusted by a consensus algorithm according to the block chain, and some nodes selected or agreed upon among nodes can share or distribute information required for cloud service and store it.

일반적으로 퍼블릭 블록체인 네트워크는 모든 노드 간 탈중앙화를 통해 데이터의 투명성을 확보할 수 있지만 느린 단점이 있는 반면, 프라이빗 블록체인 네트워크는 빠르고 높은 성능을 목표로 하지만 허가된 노드들로만 네트워크를 구성하므로 노드 수를 크게 확장하기 어렵다. 본 발명에 따른 블록체인 네트워크(20)는 빠른 성능과 탈중앙화, 확장성을 모두 보장할 수 있도록 하이브리드 블록체인 네트워크를 채용할 수 있다.In general, a public blockchain network can ensure data transparency through decentralization between all nodes, but has a slow disadvantage, whereas a private blockchain network aims for fast and high performance, but consists of only authorized nodes, so the number of nodes difficult to expand significantly. The blockchain network 20 according to the present invention may employ a hybrid blockchain network to ensure both fast performance, decentralization, and scalability.

본 발명에서 퍼블릭 블록체인 네트워크(21)는, 클라우드 서비스 제공 장치(100)에 의해 관리되는 노드들로 구성된 내부 퍼블릭 블록체인 네트워크를 의미할 수 있다. 여기서 내부 퍼블릭 블록체인 네트워크(21)는 프라이빗 블록체인 네트워크(22)를 통해 구현되는 블록체인 API 브로커(blockchain API broker, 104)를 통해 비트코인(Bitcoin), 이더리움(Ethereum), 이오스(EOS) 등과 같은 통상적인 외부 퍼블릭 블록체인 네트워크와 통신할 수 있게 구성된다.In the present invention, the public blockchain network 21 may mean an internal public blockchain network composed of nodes managed by the cloud service providing device 100 . Here, the internal public blockchain network 21 is a blockchain API broker 104 implemented through a private blockchain network 22, including Bitcoin, Ethereum, and EOS. It is configured to communicate with a typical external public blockchain network, such as

프라이빗 블록체인 네트워크(22)는, 클라우드 서비스 제공 장치(100)에 의해 허가된 노드들로만 구성된 블록체인 네트워크일 수 있다.The private blockchain network 22 may be a blockchain network composed only of nodes authorized by the cloud service providing device 100 .

블록체인 관리부(10)는, 블록체인 네트워크(20)를 생성하고 관리할 수 있다. 블록체인 관리부(10)는 퍼블릭 블록체인 관리부(101) 및 프라이빗 블록체인 관리부(102)를 포함할 수 있다.The block chain management unit 10 may create and manage the block chain network 20 . The block chain management unit 10 may include a public block chain management unit 101 and a private block chain management unit 102 .

퍼블릭 블록체인 관리부(101)는, 퍼블릭 블록체인 네트워크(21)를 생성하고 퍼블릭 블록체인 네트워크(21)를 구성하는 노드들 각각의 컴퓨팅 리소스, 코인 월넛(coin wallet) 등을 관리할 수 있다.The public block chain management unit 101 may create the public block chain network 21 and manage computing resources, coin wallets, etc. of each of the nodes constituting the public block chain network 21 .

프라이빗 블록체인 관리부(102)는, 프라이빗 블록체인 네트워크(22)를 생성하고, 프라이빗 블록체인 네트워크(22)를 구성하는 노드들을 인증하고, 각각의 컴퓨팅 리소스를 관리할 수 있다. 예를 들어, 프라이빗 블록체인 관리부(102)는, 리눅스재단(Linux Foundation)이 주도하는 기업용 블록체인을 위한 오픈소스 프로젝트인 하이퍼렛저 패브릭(Hyperledger fabric)을 이용하여 구현될 수 있다.The private blockchain management unit 102 may create the private blockchain network 22 , authenticate the nodes constituting the private blockchain network 22 , and manage each computing resource. For example, the private blockchain management unit 102 may be implemented using Hyperledger fabric, an open source project for an enterprise blockchain led by the Linux Foundation.

구체적으로, 프라이빗 블록체인 관리부(102)는, 권한이 부여된 프라이빗 블록체인 네트워크(22)를 활성화하기 위해 프라이빗 블록체인 네트워크(22)를 구성하는 노드들의 사용자 식별 정보를 관리하고, 프라이빗 블록체인 네트워크(22)를 구성하는 노드들을 인증하는 멤버 자격 서비스를 제공할 수 있다. 프라이빗 블록체인 관리부(102)는, 액세스 제어 목록을 생성하고, 생성된 액세스 제어 목록을 이용하여 특정 네트워크 작업의 승인을 통해 추가 권한 계층을 제공할 수 있다.Specifically, the private blockchain management unit 102 manages user identification information of nodes constituting the private blockchain network 22 in order to activate the authorized private blockchain network 22, and the private blockchain network A membership service for authenticating nodes constituting (22) may be provided. The private blockchain management unit 102 may create an access control list and provide an additional layer of authority through approval of a specific network operation using the generated access control list.

일 실시예에서, 프라이빗 블록체인 관리부(102)는, 비공개 트랜잭션이 필요한 클라이언트 단말(200) 또는 프라이빗 블록체인 네트워크(22)를 구성하는 노드에게 프라이빗 블록체인 네트워크(22)에 대한 접근을 허가 및 제공할 수 있다. 프라이빗 블록체인 관리부(102)는, 프라이빗 블록체인 네트워크(22)를 구성하는 노드들 사이에 제한된 메시징 경로인 채널(channel)을 생성할 수 있다. 채널은 제한된 메시징 경로로써 프라이빗 블록체인 네트워크(22)를 구성하는 노드들 중 특정 하위 집합에 대해 개인 정보 또는 그러한 기밀성 있는 정보를 제공하는 데 사용될 수 있다. 채널은 액세스 권한이 부여되지 않은 노드들에 의해 엑세스되지 않는다.In one embodiment, the private blockchain management unit 102 permits and provides access to the private blockchain network 22 to the client terminal 200 or nodes constituting the private blockchain network 22 that require a private transaction. can do. The private blockchain management unit 102 may create a channel that is a limited messaging path between nodes constituting the private blockchain network 22 . A channel is a limited messaging path and can be used to provide personal information or such confidential information to a specific subset of nodes constituting the private blockchain network 22 . The channel is not accessed by nodes to which access is not granted.

일 실시예에서, 프라이빗 블록체인 관리부(102)는, 프라이빗 블록체인 네트워크(22)를 구성하는 노드(400)의 유형별로 네트워크 역할을 할당할 수 있다. 네트워크에 동시성과 병렬성을 제공하기 위해 노드(400)들에서의 트랜잭션 실행은 트랜잭션 순서화 전에 진행된다. 트랜잭션을 순서화하기 전에 실행되면 각 노드(400)가 동시에 여러 트랜잭션을 처리할수 있다. 이러한 동시 실행은 각 노드(400)의 처리 효율성을 높이고, 스케줄링 서비스에 대한 트랜잭션 전달을 가속한다. 병렬 처리를 가능하게 하는 것 외에도, 업무 분장은 트랜잭션 실행 및 유지 보수 요구에서 노드 스케줄링 작업을 부담하지 않기 때문에 노드(400)는 컨센서스 작업 부하에서 자유로워진다. 하나의 트랜잭션 실행 프로세스는 다른 노드(400)의 검증과 독립적으로 실행될 수 있다. 따라서, 프라이빗 블록체인 관리부(102)는, 각 노드들에서 트랜잭션 실행이 진행된 후, 트랜잭션 순서화를 진행하고, 순서화된 트랜잭션들을 프라이빗 블록체인 네트워크(22)에 반영하는 커밋(commit)을 수행하도록 노드(400)를 제어할 수 있다.In an embodiment, the private blockchain management unit 102 may assign a network role to each type of node 400 constituting the private blockchain network 22 . To provide concurrency and parallelism to the network, transaction execution at nodes 400 proceeds prior to transaction sequencing. If the transactions are executed before ordering, each node 400 can process multiple transactions at the same time. Such concurrent execution increases the processing efficiency of each node 400 and accelerates transaction delivery to the scheduling service. In addition to enabling parallel processing, the node 400 is freed from the consensus workload because the division of work does not burden the node scheduling tasks in transaction execution and maintenance demands. One transaction execution process may be executed independently of the verification of other nodes 400 . Accordingly, the private blockchain management unit 102 performs transaction ordering in each node, and then performs transaction ordering, and commits to reflect the ordered transactions in the private blockchain network 22. 400) can be controlled.

일 실시예에서, 프라이빗 블록체인 관리부(102)는, 프라이빗 블록체인 네트워크(22)에서 특정 유형의 트랜젝션(transaction)을 수신할 때 호출되는 프로그램인 체인 코드(chaincode)를 실행할 수 있다. 구체적으로, 프라이빗 블록체인 관리부(102)는, 특정 유형의 트렌젝션을 수신할 때 프라이빗 블록체인 네트워크(22)를 구성하는 노드들 중 검증된 노드를 통해 체인 코드를 실행할 수 있다. 체인 코드는 수신된 특정 유형의 트렌젝션에 상응하는 처리를 통해 원장(ledger)을 생성하고, 여기서 생성된 원장은 다른 체인 코드가 실행될 때 엑세스되지 않을 수도 있다. 체인 코드는 이더리움 플랫폼에서의 스마트 계약(smart contract)에 대응하는 개념으로서, 체인 코드 또는 스마트 계약은 원장(ledger)을 생성하고 관리하는 각종 용어와 프로세스 등을 정의한 프로그램일 수 있다.In one embodiment, the private blockchain manager 102 may execute a chaincode, which is a program called when receiving a specific type of transaction in the private blockchain network 22 . Specifically, when receiving a specific type of transaction, the private blockchain management unit 102 may execute a chain code through a verified node among the nodes constituting the private blockchain network 22 . A chaincode creates a ledger through processing corresponding to a particular type of transaction received, where the generated ledger may not be accessed when other chaincodes are executed. Chaincode is a concept corresponding to a smart contract on the Ethereum platform, and the chaincode or smart contract may be a program that defines various terms and processes for creating and managing a ledger.

프레임워크 관리부(103)는, 블록체인 네트워크(20)를 구성하는 노드(300)들로부터 제공되는 컴퓨팅 리소스를 이용하여 클라우드 서비스를 제공하기 위한 프레임 워크(framework)를 구성하고 관리할 수 있다. 일례로, 프레임워크 관리부(103)는, 머신러닝 또는 딥러닝을 수행하기 위한 인공지능 프레임워크(AI Framework)를 구성 및 관리할 수 있다.The framework management unit 103 may configure and manage a framework for providing a cloud service using computing resources provided from the nodes 300 constituting the block chain network 20 . As an example, the framework management unit 103 may configure and manage an artificial intelligence framework (AI Framework) for performing machine learning or deep learning.

블록체인 API 브로커(104, blockchain API broker)는 퍼블릭 블록체인 네트워크(21) 및/또는 프라이빗 블록체인 네트워크(22)를 비트코인(Bitcoin), 이더리움(Ethereum), 이오스(EOS) 등과 같은 통상적인 외부 퍼블릭 블록체인 네트워크와 통신할 수 있도록 중계할 수 있다. 예를 들어, 블록체인 API 브로커(104)는, 이더리움 플랫폼 기반의 스마트 계약(Smart contract) 및 하이퍼렛저 패브릭 기반의 체인 코드(Chain code)를 동시에 지원하고 상호 호환 및 변환되도록 지원함으로써 하이퍼렛저 패브릭 기반의 프라이빗 블록체인 네트워크(22)와 외부 퍼블릭 블록체인 네트워크가 서로 호환 및 통신할 수 있도록 지원하며, 자신이 관리하는 퍼블릭 블록체인 네트워크(21)과 퍼블릭 블록체인 네트워크(21) 사이의 호환 및 통신을 지원할 수 있다. 따라서, 클라이언트 단말(200)은 클라우드 서비스 제공 장치(100)를 통해 내부의 블록체인 네트워크(20) 뿐만 아니라 외부의 퍼블릭 블록체인 네트워크를 이용할 수도 있다.The blockchain API broker 104 (blockchain API broker) connects the public blockchain network 21 and/or the private blockchain network 22 to common It can be relayed to communicate with external public blockchain networks. For example, the blockchain API broker 104 supports the Ethereum platform-based smart contract and the Hyperledger Fabric-based chain code at the same time, and supports interoperability and conversion by supporting Hyperledger Fabric. It supports compatibility and communication between the base private blockchain network 22 and external public blockchain networks, and compatibility and communication between the public blockchain network 21 it manages and the public blockchain network 21 can support Accordingly, the client terminal 200 may use an external public blockchain network as well as the internal blockchain network 20 through the cloud service providing device 100 .

개발 툴 관리부(105)는, 블록체인 네트워크(20)를 통해 제공되는 컴퓨팅 리소스를 이용하여 웹 상에서 개발 툴을 구동하여 클라이언트 단말(200)에 제공할 수 있다. 이를 위해 개발 툴 관리부(105)는 블록체인 관리부(10)와 연동하여 동작할 수 있다. 예를 들어, 개발 툴은, 애플리케이션 개발 툴에 해당하는 쥬피터 노트북(Jupyter Notebook), 비쥬얼 스튜디오 코드(Visual Studio Code), 이더리움앱 개발툴인 트러플(Truffle), 머신러닝에 관한 앱 개발툴인 오토ML(AutoML) 등을 포함할 수 있다.The development tool management unit 105 may drive a development tool on the web using a computing resource provided through the block chain network 20 and provide it to the client terminal 200 . To this end, the development tool management unit 105 may operate in conjunction with the blockchain management unit 10 . For example, development tools include Jupyter Notebook, which is an application development tool, Visual Studio Code, Truffle, an Ethereum app development tool, and AutoML (AutoML), an app development tool for machine learning. AutoML) and the like.

리소스 관리부(106)는, 블록체인 관리부(10)와 연동하여 블록체인 네트워크(20)를 구성하는 노드들로부터 제공받는 컴퓨팅 리소스를 관리하고, 클라이언트 단말(200)의 요청에 따라 관리하는 컴퓨팅 리소스를 클라이언트 단말(200)에 제공할 수 있다. 또한, 리소스 관리부(106)는, 개발 툴 관리부(105) 및 애플리케이션 구동부(107)에 자신이 관리하는 컴퓨팅 리소스를 제공할 수 있다.The resource management unit 106 manages computing resources provided from nodes constituting the block chain network 20 in cooperation with the block chain management unit 10, and manages computing resources according to the request of the client terminal 200. It may be provided to the client terminal 200 . In addition, the resource management unit 106 may provide the computing resources managed by itself to the development tool management unit 105 and the application driving unit 107 .

애플리케이션 구동부(107)는, 블록체인 관리부(10) 및 리소스 관리부(106)와 연동하여 웹 상에서 애플리케이션을 구동하여 클라이언트 단말(200)에 제공할 수 있다. 예를 들어, 애플리케이션 구동부(107)에 의해 구동되는 애플리케이션은 바이오 헬스케어 애플리케이션, 블록체인의 생성 및 관리에 관한 애플리케이션, 스트리밍(Streaming)에 관한 애플리케이션, AI를 이용한 분석을 수행하는 애플리케이션, 배터리 관리에 관한 애플리케이션, 파일 공유 및 동기화 애플리케이션, IoT(Internet of Things) 기기의 관리 애플리케이션 등일 수 있다.The application driving unit 107 may operate an application on the web in conjunction with the block chain management unit 10 and the resource management unit 106 to provide it to the client terminal 200 . For example, the application driven by the application driving unit 107 is a bio-health care application, an application related to the creation and management of a block chain, an application related to streaming, an application performing analysis using AI, and battery management. It may be a related application, a file sharing and synchronization application, an Internet of Things (IoT) device management application, and the like.

그 밖에도, 클라우드 서비스 제공 장치(100)는, 보상부, 클라이언트 관리부 등을 더 포함할 수 있다.In addition, the cloud service providing apparatus 100 may further include a compensation unit, a client management unit, and the like.

보상부는 클라이언트 단말(200) 및 사용자 단말(300)에 보상을 제공할 수 있다. 보상부는 머신 러닝 또는 딥러닝(ML/DL)에 따른 결과 데이터에 대한 사용을 허용하는 클라이언트 단말(200)에 보상을 제공할 수 있으며, 블록체인 네트워크(20)를 구성하여 노드(node)로 기능하는 사용자 단말(300)에 보상을 제공할 수 있다.The compensation unit may provide compensation to the client terminal 200 and the user terminal 300 . The reward unit can provide a reward to the client terminal 200 that allows the use of result data according to machine learning or deep learning (ML/DL), and configures the blockchain network 20 to function as a node It is possible to provide a reward to the user terminal (300).

보상부는 ML/DL 결과 데이터의 개수, 크기 등에 따라 클라이언트 단말(200)에 제공하는 보상 크기를 결정할 수 있으며, 컴퓨팅 리소스의 종류, 크기, 제공 기간 등에 따라 사용자 단말(300)에 제공하는 보상 크기를 결정할 수 있다.The compensation unit may determine the compensation size to be provided to the client terminal 200 according to the number and size of the ML/DL result data, and may determine the compensation size provided to the user terminal 300 according to the type, size, provision period, etc. of the computing resource. can decide

보상부는 클라이언트 단말(200) 및 사용자 단말(300)에 블록체인 재원을 보상으로 제공할 수 있으며, 일 실시예의 블록체인 재원은 블록체인에서 구현되는 토큰(Token) 또는 코인(Coin) 등의 디지털 화폐를 포함할 수 있다.The compensation unit may provide the client terminal 200 and the user terminal 300 with block chain resources as a reward, and the block chain resources in an embodiment are digital currency such as tokens or coins implemented in the block chain. may include

클라이언트 관리부는 클라이언트 단말(200)의 정보 또는 클라이언트 단말(200)의 사용자에 대한 정보를 관리할 수 있다.The client manager may manage information on the client terminal 200 or information on a user of the client terminal 200 .

도 3은 일 실시예에 따른 퍼블릭 블록체인 네트워크(21)를 설명하기 위한 도면이다.3 is a diagram for explaining the public blockchain network 21 according to an embodiment.

도 3을 참조하면, 일 실시예의 퍼블릭 블록체인 네트워크(21)는 통신망을 통해 서로 통신 가능한 복수의 노드들(300)로 구성될 수 있다.Referring to FIG. 3 , the public block chain network 21 according to an embodiment may be composed of a plurality of nodes 300 capable of communicating with each other through a communication network.

먼저, 블록체인에 대해 설명하기로 한다. 블록체인이란 온라인 거래 정보를 블록(Block)으로 생성하고, 생성된 블록들을 서로 연결하여, 피투피(P2P) 네트워크 분산 환경에서 중앙 관리 서버가 아닌 참여자(피어, Peer)들의 개인 디지털 장비에 데이터를 분산시켜 저장함으로써, 데이터를 공동으로 관리하는 방식이다.First, the blockchain will be described. Blockchain creates online transaction information as a block, connects the generated blocks to each other, and distributes data to the personal digital equipment of participants (peers) rather than the central management server in a peer-to-peer (P2P) network distributed environment. It is a method of jointly managing data by storing

구체적으로, 블록체인의 기본 구조는 블록(block)을 잇따라 연결한(chain) 모음의 형태이며, 피투피(P2P) 방식을 기반으로 한다. 또한, 일정 시간 동안 반수 이상의 참여자들이 거래 내역을 서로 교환해 확인하고 승인하는 과정을 거쳐, 디지털 서명으로 동의한 거래 내역만 하나의 블록으로 만든다. 그리고, 새로 만들어진 블록을 이전 블록체인에 연결하고, 그 사본을 만들어 각 참여자들의 사용자 단말(즉 노드(300))에 분산시켜 저장한다.Specifically, the basic structure of a block chain is a collection of blocks connected one after another, and is based on a peer-to-peer (P2P) method. In addition, for a certain period of time, more than half of the participants exchange transaction details with each other, confirm and approve, and only the transaction details agreed upon by digital signatures are made into one block. Then, the newly created block is connected to the previous block chain, and a copy is made and distributed and stored in the user terminals (ie, node 300) of each participant.

따라서, 블록체인을 활용하는 경우, 거래 장부용 데이터베이스를 별도로 관리할 필요가 없어 관리 비용이 절감되며, 분산 처리로 해킹이 어려워 거래의 안전성도 향상된다. 블록체인 방식은 주식, 부동산 등의 거래에도 적용 가능하며, 토지 권리 양도나 가정 현관 키 등 보안에 관련된 다양한 분야에 활용될 수 있다.Therefore, when blockchain is used, there is no need to separately manage a database for transaction books, so management costs are reduced, and the safety of transactions is improved because it is difficult to hack through distributed processing. The block chain method can be applied to transactions such as stocks and real estate, and can be used in various fields related to security, such as transfer of land rights or home door keys.

일 실시예에서는, 복수의 노드(300)들을 참여자로 하여 블록체인을 구현하고 있으며, 복수의 노드(300)들 각각에 분산되어 저장되는 정보는 블록의 해쉬값 등일 수 있다.In one embodiment, a block chain is implemented with a plurality of nodes 300 as participants, and information distributed and stored in each of the plurality of nodes 300 may be a hash value of a block or the like.

복수의 노드(300)들은 복수의 노드(300)들 각각에 분산 저장된 정보를 항상 최신 버전으로 유지하여, 해당 정보를 공유하고 있을 수 있다.The plurality of nodes 300 may share the information by always maintaining the latest version of the information distributed and stored in each of the plurality of nodes 300 .

복수의 노드(300)들 각각은 휴대폰, 스마트폰, PDA(Personal Digital Assistant), PMP(Portable Multimedia Player), 태블릿 PC 등과 같이 무선 통신망을 통하여 외부 서버와 연결될 수 있는 모든 종류의 핸드헬드(Handheld) 기반의 무선 통신 장치를 포함할 수 있으며, 이 외에도 데스크탑 PC, 태블릿 PC, 랩탑 PC, 셋탑 박스를 포함하는 IPTV와 같이, 네트워크를 통하여 외부 서버와 연결될 수 있는 통신 장치도 포함할 수 있다.Each of the plurality of nodes 300 is a mobile phone, a smart phone, a personal digital assistant (PDA), a portable multimedia player (PMP), any type of handheld that can be connected to an external server through a wireless communication network such as a tablet PC. It may include a wireless communication device based on it, and in addition, it may include a communication device that can be connected to an external server through a network, such as an IPTV including a desktop PC, a tablet PC, a laptop PC, and a set-top box.

복수의 노드(300)들 각각은 상술한 바와 같이, 단말 형태로 구현될 수 있지만, 이에 제한되지 않으며, 특정 업체에서 운영하는 서버 형태로 구현될 수 있다.Each of the plurality of nodes 300 may be implemented in the form of a terminal as described above, but is not limited thereto, and may be implemented in the form of a server operated by a specific company.

복수의 노드(300)들 중 단말 형태로 구현된 노드는 블록체인 상에서 공유되는 정보를 메모리의 보안 영역에 저장할 수 있으며, 복수의 노드(300)들 중 서버 형태로 구현된 노드는 블록체인 상에서 공유되는 정보를 데이터베이스의 보안 영역에 저장할 수 있다.A node implemented in the form of a terminal among the plurality of nodes 300 may store information shared on the block chain in a secure area of the memory, and a node implemented in the form of a server among the plurality of nodes 300 is shared on the block chain information can be stored in the secure area of the database.

즉, 일 실시예에서는 참여자가 단말로만 구성된 블록체인, 참여자가 서버로만 구성된 블록체인, 참여자가 단말 및 서버 혼합으로 구성된 블록체인 등 다양한 형태의 블록체인을 기반으로 하여 복수의 노드(300)들을 구성할 수 있다.That is, in one embodiment, a plurality of nodes 300 are configured based on various types of block chains, such as a block chain in which the participant consists only of a terminal, a block chain in which the participant consists only of a server, and a block chain in which the participant is a mixture of terminals and servers. can do.

일 실시예에 따른 사용자 단말(300)은 블록체인 네트워크 상 하나의 노드로 참여하여, 데이터 블록을 생성하여 퍼블릭 블록체인 네트워크(21)에 제공하게 된다. 이때, 사용자 단말(300)들 중 적어도 일부는 데이터 블록의 위변조를 탐지할 수 있다.The user terminal 300 according to an embodiment participates as one node on the block chain network to generate a data block and provide it to the public block chain network 21 . In this case, at least some of the user terminals 300 may detect forgery of the data block.

도 4는 일 실시예에 따른 노드(300)의 구성도이다.4 is a block diagram of a node 300 according to an embodiment.

블록체인 네트워크(20)에서 복수의 노드(300)들 각각은, 소정의 알고리즘에 따라, 블록체인 네트워크(20) 상의 각 블록체인 트랜잭션(Transaction)의 기록을 위한 블록을 생성(또는 채굴) 및/또는 검증할 수 있다. 일 실시예에 의하면, 소정의 시간 간격 동안에 각 노드(300)를 통하여 블록체인 네트워크(20) 상에 배포된 블록체인 트랜잭션들은, 새로이 생성된 블록에 함께 저장될 수 있다. 일 실시예에 의하면, 노드(300) 각각은, 소정의 알고리즘에 따라, 블록체인 네트워크(20)를 위한 블록체인(즉, 블록체인 분산 원장)의 적어도 일부를 저장할 수 있다.Each of the plurality of nodes 300 in the block chain network 20 generates (or mines) a block for recording each block chain transaction on the block chain network 20 according to a predetermined algorithm and / Or you can verify. According to an embodiment, the blockchain transactions distributed on the blockchain network 20 through each node 300 during a predetermined time interval may be stored together in a newly created block. According to an embodiment, each of the nodes 300 may store at least a portion of a block chain (ie, a block chain distributed ledger) for the block chain network 20 according to a predetermined algorithm.

도 4를 참조하면, 노드(300)는, 트랜잭션 처리 모듈(402), 통신 모듈(404), 블록 생성/검증 모듈(406), 및 블록체인 분산원장 저장 모듈(408)을 포함한다.Referring to FIG. 4 , the node 300 includes a transaction processing module 402 , a communication module 404 , a block generation/verification module 406 , and a blockchain distributed ledger storage module 408 .

일 실시예에 의하면, 트랜잭션 처리 모듈(402)은, 소정의 블록체인 트랜잭션을 수신하고, 그 수신된 트랜잭션을 블록체인 네트워크(20) 상의 다른 노드들(400)에 배포할 수 있다. 일 실시예에 의하면, 트랜잭션 처리 모듈(402)은 블록체인 네트워크(21) 상의 다른 노드들(400)에 의해 배포된 트랜잭션을 수신할 수 있다.According to an embodiment, the transaction processing module 402 may receive a predetermined blockchain transaction and distribute the received transaction to other nodes 400 on the blockchain network 20 . According to one embodiment, the transaction processing module 402 may receive a transaction distributed by other nodes 400 on the blockchain network 21 .

일 실시예에 의하면, 트랜잭션 처리 모듈(402)은, 수신된 트랜잭션을 처리(예컨대, 트랜잭션에 포함된 각 스마트 계약의 실행 등을 포함하며, 다만 본 개시가 이로써 제한되는 것은 아님)할 수 있다.According to an embodiment, the transaction processing module 402 may process the received transaction (eg, including execution of each smart contract included in the transaction, but the present disclosure is not limited thereto).

일 실시예에 의하면, 트랜잭션 처리 모듈(402)에 의해 수신 및 처리되는 트랜잭션은, 클라우드 서비스 제공 장치(100)가 클라우드 서비스를 위해 생성한 각종 데이터에 대한 각종 해시값 또는 클라우드 서비스를 위해 생성한 각종 데이터가 노드(300)들에 분산 저장된 위치를 지시하는 트래커(tracker), 클라우드 서비스를 위해 클라이언트 단말(200)과 클라우드 서비스 제공 장치(100) 사이에 주고받은 데이터 이력 등을 포함할 수 있다. 일 실시예에 의하면, 트랜잭션 처리 모듈(402)에 의해 수신 및 처리되는 트랜잭션은, 임의의 노드(400)에 의해서 블록체인 네트워크(20) 상의 노드들 중 적어도 일부에 배포된 기타 다양한 트랜잭션(예컨대, 해당 블록체인 네트워크(21) 상에서 지원되는 디지털 화폐의 거래 정보 또는 기타 스마트 계약 정보를 포함한 트랜잭션 등을 포함하며, 본 개시가 이로써 제한되지 않음)을 포함할 수 있다.According to an embodiment, the transaction received and processed by the transaction processing module 402 may include various hash values for various data generated for the cloud service by the cloud service providing device 100 or various types of data generated for the cloud service. It may include a tracker indicating a location where data is distributed and stored in the nodes 300 , a data history exchanged between the client terminal 200 and the cloud service providing apparatus 100 for a cloud service, and the like. According to one embodiment, the transactions received and processed by the transaction processing module 402 are other various transactions (eg, distributed by any node 400 to at least some of the nodes on the blockchain network 20 ). Transaction information of digital currency or other smart contract information supported on the corresponding block chain network 21, and the present disclosure is not limited thereto.

일 실시예에 의하면, 통신 모듈(404)은, 노드(300)가 블록체인 네트워크(20) 상에서 소정의 프로토콜에 따라 다른 노드들(300)과 통신할 수 있도록 동작할 수 있다. 일 실시예에 의하면, 통신 모듈(404)은, 블록체인 트랜잭션이 소정의 프로토콜에 따라 통신망을 통해 블록체인 네트워크(20) 상에 배포되도록 할 수 있고, 아울러 통신망을 통하여 다른 노드들(300)로부터 블록체인 네트워크(20) 상의 각종 정보를 수신하도록 할 수 있다.According to an embodiment, the communication module 404 may operate so that the node 300 may communicate with other nodes 300 according to a predetermined protocol on the blockchain network 20 . According to one embodiment, the communication module 404 may cause a block chain transaction to be distributed on the block chain network 20 through a communication network according to a predetermined protocol, and also from other nodes 300 through the communication network. It is possible to receive various information on the blockchain network 20 .

일 실시예에 의하면, 블록 생성/검증 모듈(406)은, 블록체인 네트워크(20)를 위한 블록을 생성하고, 소정의 시간 간격 동안 블록체인 네트워크(20) 상에서 발생한 트랜잭션들을 모아서 적절한 헤더 정보와 함께 그 생성된 블록에 기록할 수 있다. 일 실시예에 의하면, 블록 생성/검증 모듈(406)은, 생성된 블록을 통신 모듈(404)을 통하여 블록체인 네트워크(20) 상에 공지할 수 있다. 일 실시예에 의하면, 블록 생성/검증 모듈(406)은, 블록체인 네트워크(20) 상에 공지된, 다른 노드(300)에 의하여 생성된 블록에 대한 검증을 수행할 수 있다.According to one embodiment, the block generation/verification module 406 generates a block for the blockchain network 20, collects the transactions that occurred on the blockchain network 20 for a predetermined time interval, and collects the appropriate header information together with the It can be written to the generated block. According to an embodiment, the block generation/verification module 406 may notify the generated block on the blockchain network 20 through the communication module 404 . According to an embodiment, the block generation/verification module 406 may perform verification on a block generated by another node 300 known on the blockchain network 20 .

일 실시예에 의하면, 블록체인 분산원장 저장 모듈(408)은, 소정의 알고리즘에 따라, 블록체인 분산원장(즉, 트랜잭션들의 이력을 모두 포함하는 분산 원장)의 적어도 일부를 저장할 수 있다. 일 실시예에 의하면, 블록체인 분산원장 저장 모듈(408)은, 또한, 소정의 알고리즘에 따라, 블록체인 네트워크(20) 상의 블록체인으로 구성된 스마트 계약에 관한 정보의 적어도 일부를 저장할 수 있으며, 다만 본 개시가 이로써 제한되는 것은 아니다.According to an embodiment, the blockchain distributed ledger storage module 408 may store at least a portion of the blockchain distributed ledger (ie, a distributed ledger including all the history of transactions) according to a predetermined algorithm. According to an embodiment, the blockchain distributed ledger storage module 408 may also store, according to a predetermined algorithm, at least a portion of information about a smart contract composed of a blockchain on the blockchain network 20, but The present disclosure is not limited thereto.

도 5는 일 실시예에 따른 블록체인으로 연결되는 블록(500)을 개념적으로 도시한 도면이다.5 is a diagram conceptually illustrating a block 500 connected to a block chain according to an embodiment.

도 5는, 일 실시예에 따른 노드(300)에 포함된 블록체인 분산원장 저장 모듈(408)에 저장될 수 있는, 블록체인 및 그에 포함된 각 블록(500)의 구성을 개념적으로 도시한 도면이다. 도시된 바에 의하면, 블록체인은 서로 연결된 복수의 블록들을 포함하며, 각 블록(500)은 블록 헤더(502)와 복수의 트랜잭션 정보(504a-504n)를 포함할 수 있다.5 is a diagram conceptually illustrating the configuration of a block chain and each block 500 included therein, which can be stored in the blockchain distributed ledger storage module 408 included in the node 300 according to an embodiment. to be. As shown, the block chain includes a plurality of blocks connected to each other, and each block 500 may include a block header 502 and a plurality of transaction information 504a-504n.

일 실시예에 의하면, 블록 헤더(502)는, 이전 블록 헤더의 해시(hash) 값, 넌스(nonce) 값, 해당 블록(500)에 포함될 트랜잭션 정보들(504a-504n)의 머클루트, 블록(500)이 생성된 시간을 나타내는 타임스탬프, 해당 블록(500)의 채굴 난이도 등의 값을 포함할 수 있다.According to an embodiment, the block header 502 includes a hash value of a previous block header, a nonce value, a merkle root of transaction information 504a to 504n to be included in the corresponding block 500, a block ( 500) may include a timestamp indicating the creation time, and a value such as the mining difficulty of the corresponding block 500.

일 실시예에 의하면, 블록(500)에 포함된 복수의 트랜잭션 정보(504a-504n)는, 소정의 시간 간격 동안, 노드들(300)로부터 블록체인 네트워크(20) 상에 배포된 복수의 트랜잭션들일 수 있다.According to an embodiment, the plurality of transaction information 504a - 504n included in the block 500 is a plurality of transactions distributed on the blockchain network 20 from the nodes 300 during a predetermined time interval. can

일 실시예에 의하면, 블록(500)의 트랜잭션 정보(504a-504n)는, 노드(300)를 통해서 블록체인 네트워크(20) 상에 배포된 트랜잭션, 즉 클라우드 서비스 제공 장치(100)가 클라우드 서비스를 위해 생성한 각종 거래와 송수신 정보와 관련된 트랜잭션 정보를 포함할 수 있다.According to one embodiment, the transaction information 504a - 504n of the block 500 is a transaction distributed on the block chain network 20 through the node 300, that is, the cloud service providing device 100 provides a cloud service. It may include transaction information related to various transactions and transmission/reception information generated for the purpose.

도 4를 참조하여 설명한 노드(300)와 도 5를 참조하여 설명한 블록(500)에 대한 설명은 퍼블릭 블록체인 네트워크(21) 및 프라이빗 블록체인 네트워크(22)에 공통적으로 또는 선택적으로 적용될 수 있는 것으로 해석된다.The description of the node 300 described with reference to FIG. 4 and the block 500 described with reference to FIG. 5 may be commonly or selectively applied to the public blockchain network 21 and the private blockchain network 22. interpreted

도 6은 일 실시예에 따른 프라이빗 블록체인 네트워크(22)을 설명하기 위한 도면이다.6 is a diagram for explaining the private blockchain network 22 according to an embodiment.

프라이빗 블록체인 네트워크(22)는 사적 블록체인, 폐쇄형 블록체인, 허가형 블록체인, 기업형 블록체인 또는 엔터프라이즈 블록체인이라고도 불리며, 허가된 참여자 외 거래 내역과 여러 행동(Actions)은 공유되지 않고 추적할 수 없고, 프라이빗 블록체인 네트워크(22)에 노드(300)로 참여하기 위해 특정 주체로부터 허가된 참여자만 노드(300)로 참여하여 블록을 생성할 수 있다.The private blockchain network 22 is also called a private blockchain, a closed blockchain, a permissioned blockchain, an enterprise blockchain, or an enterprise blockchain, and transaction history and various actions other than authorized participants are not shared and tracked. In order to participate as the node 300 in the private blockchain network 22, only a participant authorized by a specific subject can participate as the node 300 and create a block.

일 실시예에서, 프라이빗 블록체인 네트워크(22)는 클라우드 서비스 제공 장치(100)에 의해 관리되며, 사용자 단말(300)은 클라우드 서비스 제공 장치(100)로부터 허가를 받아야 프라이빗 블록체인 네트워크(22)의 노드(300)로 참여할 수 있다.In one embodiment, the private blockchain network 22 is managed by the cloud service providing device 100 , and the user terminal 300 needs to obtain permission from the cloud service providing device 100 to access the private blockchain network 22 . You can participate as a node 300 .

일 실시예의 프라이빗 블록체인 네트워크(22)는 하이퍼렛저 패브릭(Hyperledger Fabric)을 이용한 서버 이중화(HA, High Availability)를 지원할 수 있다. 예를 들어, 클라우드 서비스 제공 장치(100)는, 프라이빗 블록체인 네트워크(22)을 구성하는 노드(300)의 일부가 분산하여 저장하는 정보를 다른 노드(300)에도 복제하여 저장하고, 특정 노드(300)에 클라우드 서비스를 위해 부여한 역할 중 적어도 일부를 다른 노드(300)가 대신하도록 제어할 수 있다.The private blockchain network 22 of an embodiment may support server redundancy (HA, High Availability) using Hyperledger Fabric. For example, the cloud service providing device 100 copies and stores information distributed and stored by a part of the nodes 300 constituting the private blockchain network 22 to other nodes 300, and a specific node ( At least some of the roles given to the cloud service to the other node 300 may be controlled to be replaced by the other node 300 .

프라이빗 블록체인 네트워크(22)를 통해 블록체인으로 관리되는 공유 원장(shared ledger)은 특정 시점에서의 원장 상태들을 기록한 데이터베이스인 월드 스테이트(world state) 및 현재 생성된 트랜잭션들에 대한 정보를 기록한 트랜잭션 로그(transaction log)를 포함할 수 있다. 트랜잭션 로그에 기록된 정보는 월드 스테이트로 업데이트될 수 있다. 특히, 공유 원장은, 월드 스테이트를 대체할 수 있는 데이터 영역을 추가로 포함하며, 상기 데이터 영역은 월드 스테이트의 상태 변경 전후를 기록할 수 있다. 체인 코드가 실행되면 상기 월드 스테이트와만 상호작용하여 월드 스테이트의 기록을 참조 및 변경할 수 있다.The shared ledger managed by the blockchain through the private blockchain network 22 is a world state, a database that records the ledger states at a specific point in time, and a transaction log that records information about currently generated transactions. (transaction log) may be included. Information recorded in the transaction log can be updated with the world state. In particular, the shared ledger further includes a data area that can replace the world state, and the data area can record before and after the state change of the world state. When the chaincode is executed, it can only interact with that world state to reference and change the record of the world state.

프라이빗 블록체인 네트워크(22)에서 구성되는 채널마다 각각 개별적인 공유 원장이 생성되어 관리하며, 노드(300)는 자신이 접근 가능한 채널들에 대한 공유 원장의 사본을 보관할 수 있다.An individual shared ledger is created and managed for each channel configured in the private blockchain network 22, and the node 300 can keep a copy of the shared ledger for channels that it can access.

프라이빗 블록체인 네트워크(22)의 노드(300)들은 블록(500)을 구성하기 위한 트랜잭션들의 순서와 결과를 미리 명시한 정책 기준에 따라 검증함으로써 합의(consensus)를 할 수 있다. 이때, 노드(300)들은 트랜잭션 각각의 유효성과 순서 및 결과에 대한 검증을 통해 블록을 생성하고, 생성된 블록을 공유원장에 추가하여 블록체인으로 구성하기 전에 월드 스테이트를 참조하여 노드(300)들 사이에 합의된 공유 원장의 버전을 확인할 수 있다.The nodes 300 of the private blockchain network 22 can reach a consensus by verifying the order and results of the transactions for constituting the block 500 according to the policy criteria specified in advance. At this time, the nodes 300 create blocks through verification of the validity, order, and results of each transaction, and add the generated blocks to the shared ledger to form a block chain by referring to the world state. You can check the version of the shared ledger agreed upon between them.

한편, 프라이빗 블록체인 네트워크(20)를 구성하는 노드(300)들 중 적어도 일부는 클라우드 서비스 제공 장치(100)에 의해 검증(프라이빗 블록체인 네트워크(20)에 참여를 위한 검증과 구별되며 노드(300)의 보안수준, 컴퓨팅 리소스 등에 따라 검증 여부가 결정될 수 있음)된 노드로서 프라이빗 블록체인 네트워크(20)에서 일어나는 모든 이벤트와 트랜잭션 등을 송수신하여 서로 공유하며, 노드(300)들 중 적어도 나머지는 클라우드 서비스 제공 장치(100)에 의해 검증되지 않은 노드로서 한정적인 이벤트 처리 및 REST API 서비스의 관리 등을 수행할 수 있다.On the other hand, at least some of the nodes 300 constituting the private blockchain network 20 are verified by the cloud service providing device 100 (distinguished from verification for participation in the private blockchain network 20), and the node 300 ), the verification can be determined according to the security level, computing resources, etc.) as a node that transmits and receives all events and transactions occurring in the private blockchain network 20 and shares them with each other, and at least the rest of the nodes 300 are in the cloud As a node that has not been verified by the service providing device 100 , limited event processing and management of REST API services may be performed.

도 7은 일 실시예에 따른 퍼블릭 블록체인 네트워크(21)를 통해 구현되는 분산형 파일 시스템(IPFS)을 설명하기 위한 도면이다.7 is a diagram for explaining a distributed file system (IPFS) implemented through the public blockchain network 21 according to an embodiment.

본 발명의 일 실시예에서 퍼블릭 블록체인 관리부(101)는, 퍼블릭 블록체인 네트워크(21)를 구성하는 노드(300)들 각각을 서로 동일한 파일 시스템을 갖는 IPFS(Inter Planetary File System) 기반의 분산 클라우드 저장소로 구성할 수 있다.In an embodiment of the present invention, the public block chain management unit 101 is a distributed cloud based on Inter Planetary File System (IPFS) having the same file system as each of the nodes 300 constituting the public block chain network 21 . It can be configured as a repository.

퍼블릭 블록체인 관리부(101)는, 클라이언트 단말(200)로부터 저장하고자 하는 파일(file)을 제공받고, 제공받은 파일을 다수의 파일 조각들로 분할(spilt)하고, 분할된 파일 조각들 각각을 퍼블릭 블록체인 네트워크(21)를 구성하는 노드(300)에 각각 분산하여 저장할 수 있다. 이때, 퍼블릭 블록체인 관리부(101)는 퍼블릭 블록체인 네트워크(21)에 의해 관리되는 블록체인에 저장된 암호화 키를 획득하고, 획득된 암호화 키를 이용하여 파일 조각들 각각을 암호화하고, 암호화된 파일 조각들 각각을 노드(300)에 각각 분산하여 저장할 수도 있다.The public blockchain management unit 101 receives a file to be stored from the client terminal 200, splits the provided file into a plurality of file fragments, and divides each of the divided file fragments into public Each of the nodes 300 constituting the block chain network 21 may be distributed and stored. At this time, the public block chain management unit 101 obtains the encryption key stored in the block chain managed by the public block chain network 21, encrypts each of the file fragments using the obtained encryption key, and encrypts the encrypted file fragment Each of these may be distributed and stored in each of the nodes 300 .

또한, 퍼블릭 블록체인 관리부(101)는 각 노드(300)에 분산 저장된 파일 또는 그 조각들과 대응하는 해시값(hash)을 생성하고, 생성된 해시값을 퍼블릭 블록체인 네트워크(22)에 의해 관리되는 블록체인 상에 저장하고, 해시값을 클라이언트 단말(200)에 제공할 수 있다. 추후 클라이언트 단말(200)로부터 해시값을 제공받으면, 퍼블릭 블록체인 관리부(101)는 해시값에 대응하는 파일 조각들의 위치를 결정하고, 결정된 파일 조각들의 위치를 참조하여 각 노드(300)에 분산 저장된 파일을 머지(merge)하고, 머지된 파일을 클라이언트 단말(200)에 반환할 수 있다.In addition, the public blockchain management unit 101 generates a hash value corresponding to a file or fragments thereof distributed and stored in each node 300 , and manages the generated hash value by the public blockchain network 22 . It can be stored on a block chain that is used, and the hash value can be provided to the client terminal 200 . After receiving the hash value from the client terminal 200, the public block chain management unit 101 determines the location of the file fragments corresponding to the hash value, and refers to the location of the determined file fragments are distributed and stored in each node 300. The file may be merged, and the merged file may be returned to the client terminal 200 .

도 8은 일 실시예에 따른 클라우드 서비스 제공 시스템에 대한 아키텍쳐를 예시적으로 나타낸 도면이고, 도 9는은 도 8에 따른 아키텍쳐를 구체화하여 나타낸 도면이다.8 is a diagram exemplarily illustrating an architecture for a cloud service providing system according to an embodiment, and FIG. 9 is a diagram illustrating the architecture according to FIG. 8 in detail.

전술한 바와 같이, 일 실시예의 블록체인 네트워크(20)는 프라이빗 블록체인 네트워크(22)와 퍼블릭 블록체인 네트워크(21)로 나눠지며, 퍼블릭 블록체인 네트워크(21)는 IPFS 기반의 분산형 파일 저장소로서 기능할 수 있으며, 외부 퍼블릭 블록체인 네트워크와 블록체인 API 브로커(104)를 통해 서로 연동될 수 있다.As described above, the blockchain network 20 of one embodiment is divided into a private blockchain network 22 and a public blockchain network 21, and the public blockchain network 21 is an IPFS-based distributed file storage. It can function and interwork with each other through an external public blockchain network and the blockchain API broker 104 .

클라우드 서비스 제공 장치(100)는 클라우드 서비스의 종류와 요구 레이턴시 등에 따라, 외부 퍼블릭 블록체인 네트워크와 내부 퍼블릭 블록체인 네트워크(21), 프라이빗 블록체인 네트워크(22) 중 하나를 선택하여 사용할 수 있다.The cloud service providing device 100 may select and use one of the external public blockchain network, the internal public blockchain network 21, and the private blockchain network 22 according to the type of cloud service and the required latency.

퍼블릭 블록체인 네트워크(21)는 전술한 하이퍼렛져 패브릭(Hyperledger Fabric)을 이용한 서버 이중화(HA)를 탑재할 수 있으며, 하이퍼렛저 패브릭(Hyperledger Fabric)에서 제공하는 이더리움 가상 머신(EVM, Ethereum Virtual Machine)상의 이더리움 스마트 계약(Ehereum Smart Contract) 및 시스템 체인 코드(System Chain code)를 동시에 지원할 수 있다. 따라서, 블록체인 API 브로커(104)는, 이더리움 기반의 스마트 계약을 사용하거나 하이퍼렛저 패브릭 기반의 체인 코드를 사용하는 외부 퍼블릭 블록체인 네트워크와 퍼블릭 블록체인 네트워크(21)를 서로 중계하여 통신할 수 있도록 할 수 있다.The public blockchain network 21 can be equipped with server redundancy (HA) using the aforementioned Hyperledger Fabric, and an Ethereum Virtual Machine (EVM) provided by Hyperledger Fabric. ) can support Ethereum Smart Contract and System Chain code at the same time. Therefore, the blockchain API broker 104 can communicate by relaying the public blockchain network 21 with an external public blockchain network that uses an Ethereum-based smart contract or a hyperledger fabric-based chain code. can make it

즉, 퍼블릭 블록체인 네트워크(21)는, 블록체인 API 브로커(Blockchain API Broker, 104)를 통해, 외부 퍼블릭 블록체인 네트워크와 통신이 가능하며, 클라우드 서비스 제공 장치(100)는, 외부 개발자들과 사용자들이 요구하는 서비스 또는 작업의 종류에 따라, 이더리움 기반의 스마트 계약과 하이퍼렛저 패브릭 기반의 체인코드 중 하나를 선택하여 퍼블릭 블록체인 네트워크(21)를 관리 및 제어할 수 있다.That is, the public blockchain network 21 is able to communicate with an external public blockchain network through the Blockchain API Broker 104, and the cloud service providing device 100 provides external developers and users. According to the type of service or task they require, it is possible to manage and control the public blockchain network 21 by selecting either an Ethereum-based smart contract or a Hyperledger Fabric-based chaincode.

일례로, 프라이빗 블록체인(22)은 지불(Payment)이나 자산 관리(Asset Management)처럼 빠른 데이터 처리가 요구되는 경우에도 적용 가능하며, 개발자에게는 다양한 개발 툴을 제공하면서, 기업과 개인들에게는 오픈 플랫폼 형태로 클라우스 서비스 제공 플랫폼를 용이하게 이용할 수있게끔 설계될 수 있다.As an example, the private blockchain 22 is applicable even when fast data processing is required, such as payment or asset management, and provides developers with various development tools, while providing an open platform for businesses and individuals. It can be designed so that the cloud service providing platform can be easily used in the form.

프레임워크 관리부(103)에 의해 관리되는 소프트웨어 프레임워크 중 하나로, 인공지능 프레임워크(AI Framework)가 구성될 수 있다. 인공지능 프레임워크는 3단 Deep Learning 프레임워크로 구성될 수 있으며, 제1 계층(1st Floor)에는 ‘Keras’, 제2 계층(2nd Floor)에는 구글 ‘Tensorflow’, 페이스북 ‘Pytorch’, 아마존 ‘Mxnet’와 같은 프레임워크로 구성되어 있으며, 제3 계층(3rd Floor)은 'ONNX(Model exchange)’로 구성될 수 있다. 이에 따라, 현재 출시되어 있는 대다수의 클라우드와 호환이 가능할 수 있다.As one of the software frameworks managed by the framework management unit 103 , an artificial intelligence framework (AI Framework) may be configured. The artificial intelligence framework can be composed of a three-tiered deep learning framework, 'Keras' on the 1st floor, Google 'Tensorflow' on the 2nd floor, Facebook 'Pytorch', and Amazon ' It is composed of a framework such as 'Mxnet', and the third layer (3rd Floor) may be composed of 'ONNX (Model exchange)'. Accordingly, it may be compatible with most of the currently released clouds.

따라서, 클라우드 서비스 제공 장치(100)는, 제1 계층(1st Floor) 및 제2 계층(2nd Floor)에 구성된 'Keras', 구글 ‘Tensorflow’, 페이스북 ‘Pytorch’, 아마존 ‘Mxnet’을 이용해 딥러닝(Deep Learning)을 수행하고, 제2 계층(2nd Floor)에서 ‘Scikit learn’으로 머신러닝을 수행하고, ‘Pandas’로 머신러닝을 위한 데이터 구성을 하고, ‘Bokeh’를 이용해 데이터 시각화를 함으로써 머신러닝 또는 딥러닝(ML/DL)에 필요한 통계 분석과 데이터 분석을 동시에 수행할 수 있다.Accordingly, the cloud service providing device 100 uses 'Keras', Google 'Tensorflow', Facebook 'Pytorch', and Amazon 'Mxnet' configured in the first layer (1st Floor) and the second layer (2nd Floor) to deep By performing deep learning, performing machine learning with 'Scikit learn' on the 2nd floor, configuring data for machine learning with 'Pandas', and visualizing data using 'Bokeh' Statistical analysis and data analysis required for machine learning or deep learning (ML/DL) can be performed at the same time.

추가로 제3 계층에는, ‘Horovod’를 더 포함할 수 있다. Horovod는 Multi-GPU 환경에서 분산 훈련(Distributed Training)을 지원하는 프레임워크(Framework)이다. ‘Horovod’는 Bandwidth Optimal All-reduce Algorithm Paper를 기초로 하여, Bandwidth 사용이 최적화된 Ring-all reduce 방식으로 동작할 수 있다. In addition, the third layer may further include 'Horovod'. Horovod is a framework that supports distributed training in a multi-GPU environment. Based on the Bandwidth Optimal All-reduce Algorithm Paper, ‘Horovod’ can operate in a Ring-all reduce method with optimized bandwidth usage.

따라서, 클라우드 서비스 제공 장치(100)는, Horovod 기반으로 머신러닝 또는 딥러닝에 필요한 훈련을 블록체인 네트워크(20)를 구성하는 노드(300)들을 이용하여 분산하여 수행할 수 있다.Accordingly, the cloud service providing apparatus 100 may perform training required for machine learning or deep learning based on Horovod by using the nodes 300 constituting the block chain network 20 to be distributed.

구체적으로, 클라우드 서비스 제공 장치(100)는, 딥러닝 또는 머신러닝 서비스를 프라이빗 블록체인 네트워크(22)를 이용하여 클라이언트 단말(200)에 제공할 수 있다. 프라이빗 블록체인 네트워크(22)는 지속적이고 빠른 컴퓨팅 속도를 보장하고 보안성이 높기 때문에 딥러닝 또는 머신러닝 서비스를 제공하는 데 적합할 수 있다.Specifically, the cloud service providing apparatus 100 may provide a deep learning or machine learning service to the client terminal 200 using the private blockchain network 22 . The private blockchain network 22 may be suitable for providing deep learning or machine learning services because it guarantees continuous and fast computing speed and has high security.

구체적으로, 클라우드 서비스 제공 장치(100)는, 프라이빗 블록체인 네트워크(22)를 구성하는 노드(300)마다 훈련시키고자 하는 학습 모델(인공신경망)을 개별적으로 저장하고, 개별적으로 저장된 학습 모델에 서로 다른 학습 데이터를 순전파 알고리즘 및 역전파 알고리즘을 이용하여 하나씩 개별 학습시킬 수 있다. 여기서, 순전파 알고리즘은 학습 모델을 구성하는 입력층, 은닉층 및 출력층으로 이동하면서 가중치(gradient)를 적용시켜가면서 가중치를 갱신하는 학습 방법이고, 역전파 알고리즘은 학습 모델의 출력층의 출력 결과와 원하는 출력 사이의 오차(error)를 최소화하도록 가중치를 갱신하는 학습 방법일 수 있다.Specifically, the cloud service providing device 100 separately stores a learning model (artificial neural network) to be trained for each node 300 constituting the private blockchain network 22, and stores each other in the individually stored learning model. Different training data can be individually trained one by one using a forward propagation algorithm and a backpropagation algorithm. Here, the forward propagation algorithm is a learning method that updates the weight while applying a weight while moving to the input layer, the hidden layer, and the output layer constituting the learning model, and the back propagation algorithm is the output result of the output layer of the learning model and the desired output. It may be a learning method for updating weights to minimize an error between them.

클라우드 서비스 제공 장치(100)는, 각 노드(300)가 학습 모델을 훈련하여 얻어지는 가중치를 다른 노드(300)에 전달하도록 제어하되, 각 노드(300)는, 링-올-리듀스(Ring all Reduce) 알고리즘을 이용하여 다른 노드(300)가 훈련을 통해 얻은 가중치들을 획득할 수 있다. 여기서 링-올 리듀스 알고리즘은, 2D-HRA: Two-Dimensional Hierarchical Ring-Based All-Reduce Algorithm in Large-Scale Distributed Machine Learning, Youhe Jiang, Huaxi Gu, Yunfeng Lu, Xiaoshan Yu, 183488p ~ 183494p, 2020)을 참조할 수 있다. 다음으로, 각 노드(300)는, 획득된 가중치들의 평균 또는 중간값을 가중치로 갖도록 자신이 저장하는 학습 모델을 갱신(update)할 수 있다.The cloud service providing apparatus 100, but each node 300 controls to transmit the weight obtained by training the learning model to the other node 300, each node 300, ring-all-reduce (Ring all) Reduce) algorithm to obtain weights obtained by the other node 300 through training. Here, the ring-all reduce algorithm is, 2D-HRA: Two-Dimensional Hierarchical Ring-Based All-Reduce Algorithm in Large-Scale Distributed Machine Learning, Youhe Jiang, Huaxi Gu, Yunfeng Lu, Xiaoshan Yu, 183488p ~ 183494p, 2020) can refer to Next, each node 300 may update the learning model it stores to have the average or median value of the obtained weights as a weight.

본 발명의 일 실시예에 따른 클라우드 서비스 제공 장치(100)는, 상술한 개별 학습과 갱신을 프라이빗 블록체인 네트워크(22)를 구성하는 노드(300)들을 이용하여 반복적으로 수행함으로써 학습 모델의 방대한 훈련 데이터의 훈련을 분산하여 처리할 수 있다.The cloud service providing apparatus 100 according to an embodiment of the present invention repeatedly performs the above-described individual learning and updating using the nodes 300 constituting the private blockchain network 22, thereby providing extensive training of the learning model. The training of data can be distributed and processed.

또한, 클라우드 서비스 제공 장치(100)가, 프라이빗 블록체인 네트워크(22)를 통한 머신러닝 또는 딥러닝 서비스를 제공할 경우 인증된 노드(300)만이 참여할 수 있기 때문에 계속적이고 많은 양의 리소스를 제공하는 것이 보장되기 어려울 수 있다.In addition, when the cloud service providing device 100 provides machine learning or deep learning services through the private blockchain network 22, only the authenticated node 300 can participate, providing continuous and large amount of resources. It can be difficult to guarantee.

이러한 문제를 해결하기 위하여 클라우드 서비스 제공 장치(100)는, 프라이빗 블록체인 네트워크(22)를 구성하는 노드(300)들 중 적어도 일부를 마스터 노드(Master Node)로 지정하여 관리할 수 있다. 마스터 노드로 지정된 노드는 클라우드 서비스 제공 장치(100)에 의해 할당된 최소 컴퓨팅 리소스 이상을 지속적으로 제공하도록 강제되며, 클라우드 서비스 제공 장치(100)는 이러한 마스터 노드의 지정을 컴퓨팅 리소스를 모니터링함에 따라 변경할 수 있다. 예를 들어, 클라우드 서비스 제공 장치(100)는, 프라이빗 블록체인 네트워크(22)를 구성하는 노드(300)들 각각에서 제공하는 컴퓨팅 리소스를 모니터링하고, 미리 설정된 기간동안 제공된 컴퓨팅 리소스의 양이 미리 설정된 기준 이상인 노드(300)를 마스터 노드로 지정하여 관리할 수 있고, 마스터 노드로부터 제공되는 컴퓨팅 리소스가 기준값 이상으로 감소하면, 마스터 노드를 변경할 수 있다.In order to solve this problem, the cloud service providing apparatus 100 may designate and manage at least some of the nodes 300 constituting the private blockchain network 22 as master nodes. A node designated as a master node is forced to continuously provide more than the minimum computing resource allocated by the cloud service providing device 100, and the cloud service providing device 100 may change the designation of such a master node as it monitors computing resources. can For example, the cloud service providing device 100 monitors the computing resources provided by each of the nodes 300 constituting the private blockchain network 22, and the amount of computing resources provided for a preset period is preset. It is possible to designate and manage the node 300 that is more than the reference value as the master node, and when the computing resource provided from the master node decreases by more than the reference value, the master node may be changed.

또한, 일 실시예의 클라우드 서비스 제공 장치(100)는 개발 툴 중 하나인쥬피터 노트북(Jupyter Notebook)을 생성 및 제공함으로써 클라이언트 단말(200)이 시각화를 작성하고 공유할수 있으며, 공유된 코드 및 데이터 모음에 대화형 수정도 가능하도록 지원한다. 쥬피터 노트북(Jupyter Notebook)은 ‘노트북’ 이라는 대화형 문서에 코드, 의견, 멀티미디어, 시각화 자료 등을 결합해 이를 공유하고, 재사용 및 재작업할 수 있게 해주는 기능을 제공하며, 웹 브라우저를 통해 실행되므로어, 쥬피터 노트북(Jupyter Notebook) 자체를 퍼블릭 블록체인 네트워크(21)를 이용하여 호스팅할 수 있다.In addition, the cloud service providing device 100 of an embodiment creates and provides a Jupyter Notebook, which is one of the development tools, so that the client terminal 200 can create and share a visualization, and the shared code and data collection Interactive editing is also supported. Jupyter Notebook combines code, comments, multimedia, visualizations, and more in an interactive document called a 'notebook' and provides the ability to share, reuse and rework, and runs through a web browser. Uh, Jupyter Notebook itself can be hosted using the public blockchain network 21 .

클라우드 서비스에서 제공되는 코드 공유 방식은 대부분 대화형이 아니나, 일 실시예의 쥬피터 노트북(Jupyter Notebook)은 웹 브라우저에서 직접 코드를 확인, 실행하고 결과를 표시할 수 있으며, 코드가 고정되어 있기 때문에 웹 브라우저에서 직접 제공되는 피드백을 반영해 실시간으로 조금씩 편집하여 다시 실행할 수 있고, 코드 입력 소스로 활용 가능한 사용자 제어 장치에 쥬피터 노트북(Jupyter Notebook)을 내장할 수도 있다.Most of the code sharing methods provided by the cloud service are not interactive, but Jupyter Notebook in an embodiment can check, run, and display the code directly in a web browser, and because the code is fixed, the web browser Reflecting the feedback provided directly from , you can make small edits and re-execute in real time, and you can embed Jupyter Notebook in a user control device that can be used as a code input source.

도 9를 참조하면, 일 실시예에 따른 클라우드 서비스 제공 시스템(10)은, 상술한 클라우드 서비스 제공 장치(100) 및 노드(300)를 대상으로 3개의 계층을 가진 아키텍쳐로 구성될 수 있다.Referring to FIG. 9 , the cloud service providing system 10 according to an embodiment may be configured in an architecture having three layers targeting the above-described cloud service providing apparatus 100 and the node 300 .

제1 계층(1st layer)은 리눅스(Linux) 운영체제를 기반으로 쿠버네티스 플랫폼(Kubernetes Platform) 환경에서 동작할 수 있다. 쿠버네티스는 컨테이너화된 애플리케이션의 자동 디플로이(deploy) 및 스케일링(scaling) 등을 제공하는 오픈 소스 기반의 관리 시스템일 수 있다.The first layer may operate in a Kubernetes Platform environment based on a Linux operating system. Kubernetes may be an open source-based management system that provides automatic deployment and scaling of containerized applications.

일 실시예의 쿠버네티스는 컨테이너 구성과, 작업의 자동화를 지원하고, 컨테이너화된 애플리케이션을 배포하고 확장하는데 있어 수동화된 프로세스가 필요하지 않고, 무중단 서비스가 가능하다. 이에 따라, 클러스터를 효율적으로 관리할수 있으며, 전체 호스트를 확장할 수 있다.Kubernetes in one embodiment supports container configuration and automation of tasks, does not require manual processes to deploy and scale containerized applications, and enables uninterrupted service. Accordingly, the cluster can be managed efficiently and the entire host can be expanded.

일 실시예의 쿠버네티스는 이미지 형태의 도커(Docker)가 지원되어 컨테이너 역할을 수행한다. Linux는 다양한 버전이 존재하기 때문에 프라이빗 블록체인 네트워크(22)에 Deep Learning Framework를 전부 설치하는 것이 어렵기 때문에 도커(Docker)를 구성하여, 가상 머신의 클러스터에서 컨테이너를 예약하고, 원하는 이미지를 바로 실행할 수 있다.In Kubernetes of an embodiment, Docker in the form of an image is supported to serve as a container. Because it is difficult to install all of the Deep Learning Framework on the private blockchain network 22 because there are various versions of Linux, configure Docker, reserve a container in a cluster of virtual machines, and immediately run the desired image. can

일 실시예의 쿠버네티스(Kubernetes)는 먼저 하이퍼렛져 패브릭 도켓(Hyperledger Fabric Docket)이 설치되어 코인(Coin)과 토큰(Token) 관련된 업무를 수행할 수 있다. 보안 문제로 인해 외부에서 생성된 코인을 샘플링해서 링크하여 연계 동작시키고, 시스템에 따라 데이터베이스(DB)에 내장되는 데이터가 많아지면 내부화 과정이 쉽지 않기 때문에, 데이터베이스(DB)를 체인화 시킨 Big chain DB를 사용하고, 프라이빗 블록체인 네트워크(22) 내에서 빅데이터와 같은 대용량 데이터 처리를 위해 하둡 HDFS를 실행할 수도 있다.In Kubernetes of an embodiment, a Hyperledger Fabric Docket is first installed to perform a task related to a coin and a token. Due to security problems, we sample coins generated externally and link them, and depending on the system, if there is a lot of data embedded in the database (DB), the internalization process is not easy. It is also possible to run Hadoop HDFS for processing large amounts of data, such as big data, within the private blockchain network 22 .

도 10은 일 실시예에 따른 클라우드 서비스 제공 방법의 흐름도이다.10 is a flowchart of a cloud service providing method according to an embodiment.

도 10을 참조하면, 일 실시예에 따른 클라우드 서비스 제공 방법은 컴퓨팅 리소스 정보 수신 단계(S100), 컴퓨팅 리소스 정보 저장 단계(S110), 입력 데이터 수신 단계(S120), 입력 데이터 저장 단계(S130), 결과 데이터 생성 단계(S140), 결과 데이터 전송 단계(S150) 및 보상 제공 단계(S160)을 포함할 수 있다.Referring to Figure 10, the cloud service providing method according to an embodiment includes a computing resource information receiving step (S100), a computing resource information storage step (S110), an input data receiving step (S120), an input data storing step (S130), It may include a result data generation step (S140), a result data transmission step (S150), and a compensation provision step (S160).

클라우드 서비스 제공 방법은, 전술한 클라우드 서비스 제공 장치(100)에 의해 수행될 수 있다.The cloud service providing method may be performed by the above-described cloud service providing apparatus 100 .

우선, 컴퓨팅 리소스 정보 수신 단계(S100)로, 제어부(160)는 사용자 단말(300)로부터 컴퓨팅 리소스 정보를 수신할 수 있다.First, in the computing resource information receiving step ( S100 ), the controller 160 may receive computing resource information from the user terminal 300 .

일 실시예의 컴퓨팅 리소스 정보는 사용자 단말(300)의 식별 정보, 컴퓨팅 리소스의 종류, 제공 가능한 컴퓨팅 리소스의 크기, 제공 기간 등을 포함할 수 있다.Computing resource information according to an embodiment may include identification information of the user terminal 300 , a type of a computing resource, a size of a computing resource that can be provided, a provision period, and the like.

그리고, 컴퓨팅 리소스 정보 저장 단계(S110)로, 제어부(160)는 수신한 컴퓨팅 리소스 정보의 일부를 블록체인 네트워크(20)에서 관리되는 블록체인에 트랜잭션하여 저장할 수 있다. 제어부(160)는 컴퓨터 리소스 정보의 다른 일부를 블록체인 네트워크(20)를 구성하는 개별 노드(300)들에 분산 저장할 수 있다.In addition, in the computing resource information storage step ( S110 ), the controller 160 may store a portion of the received computing resource information by transacting it in the blockchain managed by the blockchain network 20 . The control unit 160 may distribute and store another part of the computer resource information in the individual nodes 300 constituting the block chain network 20 .

그리고, 입력 데이터 수신 단계(S120)로, 제어부(160)는 클라이언트 단말(200)로부터 입력 데이터를 수신할 수 있다.Then, in the input data receiving step ( S120 ), the controller 160 may receive input data from the client terminal 200 .

일 실시예의 입력 데이터는 클라이언트 단말(200)이 요청하는 클라우드 서비스 관련 데이터로, ML/DL 서비스의 경우, ML/DL 분석을 위한 데이터일 수 있다.The input data according to an embodiment is cloud service related data requested by the client terminal 200 , and in the case of an ML/DL service, may be data for ML/DL analysis.

그리고, 입력 데이터 저장 단계(S130)로, 제어부(160)는 수신한 입력 데이터의 적어도 일부를 블록체인 네트워크(20)에서 관리되는 블록체인에 트랜잭션하여 저장할 수 있다. 제어부(160)는 입력 데이터의 다른 일부를 블록체인 네트워크(20)를 구성하는 노드(300)에도 저장할 수 있다.In addition, in the input data storage step ( S130 ), the control unit 160 may store at least a portion of the received input data by transacting it in a block chain managed by the block chain network 20 . The control unit 160 may also store another part of the input data in the node 300 constituting the block chain network 20 .

그리고, 결과 데이터 생성 단계(S140)로, 제어부(160)는 컴퓨팅 리소스 정보를 이용하여, 현재 사용 가능한 컴퓨팅 리소스를 확인한다. 그리고, 제어부(160)는 사용 가능한 컴퓨팅 리소스를 통해, 입력 데이터를 이용하여 결과 데이터를 생성할 수 있다.Then, in the result data generation step ( S140 ), the controller 160 uses the computing resource information to check the currently available computing resources. In addition, the controller 160 may generate result data using input data through available computing resources.

일 실시예로, 컴퓨팅 리소스 정보는 컴퓨팅 리소스의 우선 순위를 더 포함할 수 있다. 이 경우, 제어부(160)는 컴퓨팅 리소스의 우선 순위를 이용하여, 사용 가능한 컴퓨팅 리소스를 스케줄링할 수 있다.In an embodiment, the computing resource information may further include a priority of the computing resource. In this case, the controller 160 may schedule the available computing resources by using the priority of the computing resources.

제어부(160)는 결과 데이터를 생성하는데 필요한 컴퓨팅 리소스를 시간별로 계산할 수 있다. 그리고, 제어부(160)는 계산된 필요 컴퓨팅 리소스에 따라, 사용 가능한 컴퓨팅 리소스의 시간별 사용 계획을 생성할 수 있다.The controller 160 may calculate the computing resources required to generate the result data for each time. In addition, the control unit 160 may generate an hourly usage plan of the available computing resources according to the calculated required computing resources.

제어부(160)는 우선 순위에 따라, 사용자 단말(300)의 사용 가능한 컴퓨팅 리소스를 확인할 수 있으며, 결과 데이터를 생성하는데 필요한 컴퓨팅 리소스를 스케줄링할 수 있다.The control unit 160 may check the available computing resources of the user terminal 300 according to the priority, and may schedule the computing resources required to generate result data.

일 실시예의 결과 데이터는 클라우드 서비스의 결과물로, ML/DL 서비스의 경우, ML/DL 분석 데이터일 수 있다.The result data of an embodiment is a result of the cloud service, and in the case of an ML/DL service, it may be ML/DL analysis data.

그리고, 결과 데이터 전송 단계(S150)로, 제어부(160)는 생성된 결과 데이터를 클라이언트 단말(200)에 전송할 수 있다. Then, in the result data transmission step ( S150 ), the controller 160 may transmit the generated result data to the client terminal 200 .

그리고, 보상 제공 단계(S160)로, 제어부(160)는 결과 데이터를 생성할 때, 사용한 컴퓨팅 리소스에 따라, 해당 컴퓨팅 리소스를 제공한 사용자 단말(300)에 블록체인 재원을 보상으로 제공할 수 있다.And, in the step of providing compensation ( S160 ), the control unit 160 may provide, as a reward, blockchain resources to the user terminal 300 that provided the corresponding computing resource according to the computing resource used when generating the result data. .

도 11은 다른 실시예에 따른 클라우드 서비스 제공 방법의 흐름도이다.11 is a flowchart of a cloud service providing method according to another embodiment.

도 11을 참조하면, 다른 실시예에 따른 클라우드 서비스 제공 방법은 입력 데이터의 저장 방법으로, 입력 데이터 분석 단계(S131), 프라이빗 블록체인 조건 판단 단계(S132), 퍼블릭 블록체인 트랜잭션 단계(S133), 프라이빗 블록체인 트랜잭션(S134) 및 클라우드 저장 단계(S135)를 포함할 수 있다Referring to FIG. 11 , a method of providing a cloud service according to another embodiment is a method of storing input data, including an input data analysis step (S131), a private block chain condition determination step (S132), a public block chain transaction step (S133), It may include a private blockchain transaction (S134) and a cloud storage step (S135).

우선, 입력 데이터 분석 단계(S131)로, 제어부(160)는 입력 데이터를 분석하여, 클라이언트 단말(200)이 요청하는 클라우드 서비스의 종류, 입력 데이터의 크기, 입력 데이터를 처리하는데 필요한 처리 요구 속도 등을 도출할 수 있다.First, in the input data analysis step (S131), the control unit 160 analyzes the input data, such as the type of cloud service requested by the client terminal 200, the size of the input data, the processing request speed required to process the input data, etc. can be derived.

그리고, 프라이빗 블록체인 조건 판단 단계(S132)로, 제어부(160)는 입력 데이터의 분석 결과를 이용하여, 클라이언트 단말(200)이 요청하는 클라우드 서비스가 프라이빗 블록체인 네트워크(22)을 이용하는 것이 필요한지 판단할 수 있다.Then, in the private block chain condition determination step S132 , the control unit 160 determines whether it is necessary to use the private block chain network 22 for the cloud service requested by the client terminal 200 using the analysis result of the input data. can do.

일례로, 제어부(160)는 기설정된 기준에 따라, 프라이빗 블록체인 네트워크(22)을 이용하는 것이 필요한지 판단할 수 있다. 제어부(160)는 입력 데이터 크기가 기설정된 크기 이하이거나, 입력 데이터의 처리 요구 속도가 기설정된 속도 이상인 경우, 프라이빗 블록체인 네트워크(22)을 이용하는 것이 필요하다고 판단할 수 있다. 즉, 입력 데이터가 크지 않아서 많은 노드가 필요하지 않은 경우나, 입력 데이터를 처리하는데 빠른 속도가 요구되는 경우, 제어부(160)는 프라이빗 블록체인 네트워크(22)을 이용하는 것이 필요하다고 판단할 수 있다.For example, the control unit 160 may determine whether it is necessary to use the private blockchain network 22 according to a preset criterion. The controller 160 may determine that it is necessary to use the private blockchain network 22 when the input data size is less than or equal to a preset size or when the processing request speed of input data is greater than or equal to a preset speed. That is, when the input data is not large, so many nodes are not required, or when a high speed is required to process the input data, the control unit 160 may determine that it is necessary to use the private blockchain network 22 .

예를 들어, 입력 데이터가 머신 러닝/딥 러닝에 따른 훈련 데이터인 경우,제어부(160)는, 프라이빗 블록체인 네트워크(22)를 이용하는 것으로 결정할 수 있다.For example, when the input data is training data according to machine learning/deep learning, the controller 160 may determine to use the private blockchain network 22 .

그리고, 퍼블릭 블록체인 트랜잭션 단계(S133)로, 프라이빗 블록체인 네트워크(22)을 이용하는 것이 필요하지 않다고 판단된 경우, 제어부(160)는 입력 데이터를 퍼블릭 블록체인(21)에 트랜잭션하여 저장할 수 있다.And, when it is determined that it is not necessary to use the private blockchain network 22 in the public blockchain transaction step S133 , the controller 160 may transact and store the input data in the public blockchain 21 .

그리고, 프라이빗 블록체인 트랜잭션(S134)로, 프라이빗 블록체인 네트워크(22)을 이용하는 것이 필요하다고 판단된 경우, 제어부(160)는 입력 데이터의 적어도 일부를 프라이빗 블록체인 네트워크(22)에 트랜잭션하여 블록체인으로 구성하고, 이를 저장할 수 있다.그리고, 클라우드 저장 단계(S135)로, 제어부(160)는 입력 데이터에서 블록체인으로 구성되지 않은 데이터를 해당 블록체인 네트워크(20)를 구성하는 노드(300)에 분산 저장할 수 있다.And, when it is determined that it is necessary to use the private blockchain network 22 for the private blockchain transaction (S134), the control unit 160 transacts at least a portion of the input data to the private blockchain network 22 to create a blockchain And, in the cloud storage step (S135), the control unit 160 in the input data is not configured as a block chain data to the node 300 constituting the block chain network 20 It can be distributed and stored.

도 12는 일 실시예에 따른 사용자 단말(300)의 구성도이다. 12 is a block diagram of a user terminal 300 according to an embodiment.

도 12를 참조하면, 무선 통신부(310)는 사용자 단말(300)와 무선 통신 시스템 사이의 무선 통신 또는 사용자 단말(300)와 사용자 단말(300)가 위치한 네트워크 사이의 무선 통신을 수행하는 하나 이상의 구성요소를 포함할 수 있다. 예를 들어, 무선 통신부(310)는 방송 수신 모듈(311), 이동통신 모듈(312), 무선 인터넷 모듈(313), 근거리 통신 모듈(314) 및 위치정보 모듈(315) 등을 포함할 수 있다.Referring to FIG. 12 , the wireless communication unit 310 includes one or more components for performing wireless communication between the user terminal 300 and the wireless communication system or wireless communication between the user terminal 300 and the network in which the user terminal 300 is located. It can contain elements. For example, the wireless communication unit 310 may include a broadcast reception module 311 , a mobile communication module 312 , a wireless Internet module 313 , a short-range communication module 314 , and a location information module 315 , etc. .

방송 수신 모듈(311)은 방송 채널을 통하여 외부의 방송 관리 서버로부터 방송 신호 및/또는 방송 관련된 정보를 수신한다. 여기에서, 방송 채널은 위성 채널, 지상파 채널을 포함할 수 있다. 한편, 방송 관련 정보는 이동통신망을 통하여도 제공될 수 있으며, 이러한 경우에는 이동통신 모듈(312)에 의해 수신될 수 있다.The broadcast reception module 311 receives a broadcast signal and/or broadcast related information from an external broadcast management server through a broadcast channel. Here, the broadcast channel may include a satellite channel and a terrestrial channel. Meanwhile, broadcast-related information may be provided through a mobile communication network, and in this case, may be received by the mobile communication module 312 .

또한, 이동통신 모듈(312)은 이동 통신망 상에서 기지국, 외부의 단말, 서버 중 적어도 하나와 무선 신호를 송수신한다. 여기에서, 무선 신호는 음성 호 신호, 화상 통화 호 신호 또는 문자/멀티미디어 메시지 송수신에 따른 다양한 형태의 데이터를 포함할 수 있다.In addition, the mobile communication module 312 transmits and receives a wireless signal to and from at least one of a base station, an external terminal, and a server on a mobile communication network. Here, the wireless signal may include various types of data according to transmission and reception of a voice call signal, a video call signal, or a text/multimedia message.

무선 인터넷 모듈(313)은 무선 인터넷 접속을 위한 모듈을 말하는 것으로, 사용자 단말(300)에 내장되거나 외장 될 수 있다.The wireless Internet module 313 refers to a module for wireless Internet access, and may be built-in or external to the user terminal 300 .

근거리 통신 모듈(314)은 근거리 통신을 위한 모듈을 말한다. 근거리 통신 기술로, 블루투스(Bluetooth), RFID(Radio Frequency Identification), 적외선 통신(IrDA, infrared Data Association), UWB(Ultra Wideband), ZigBee 등이 이용될 수 있다.The short-range communication module 314 refers to a module for short-range communication. As the short-distance communication technology, Bluetooth, Radio Frequency Identification (RFID), Infrared Data Association (IrDA), Ultra Wideband (UWB), ZigBee, etc. may be used.

또한, 위치정보 모듈(115)은 사용자 단말(300)의 위치를 확인하거나 얻기 위한 모듈이다. 일례로 GPS(Global Position System) 모듈을 들 수 있다. GPS 모듈은 복수 개의 인공위성으로부터 위치 정보를 수신한다. 여기에서, 위치 정보는 위도 및 경도로 표시되는 좌표 정보를 포함할 수 있다.Also, the location information module 115 is a module for confirming or obtaining the location of the user terminal 300 . An example is a Global Position System (GPS) module. The GPS module receives location information from a plurality of satellites. Here, the location information may include coordinate information indicated by latitude and longitude.

한편, A/V(Audio/Video) 입력부(320)는 오디오 신호 또는 비디오 신호 입력을 위한 것으로, 이에는 카메라(321)와 마이크(322) 등이 포함될 수 있다. 카메라(321)는 화상 통화 모드 또는 촬영 모드에서 이미지 센서에 의해 얻어지는 정지영상 또는 동영상 등의 화상 프레임을 처리한다. 그리고, 처리된 화상 프레임은 디스플레이부(351)에 표시될 수 있다.Meanwhile, the A/V (Audio/Video) input unit 320 is for inputting an audio signal or a video signal, and may include a camera 321 , a microphone 322 , and the like. The camera 321 processes an image frame such as a still image or a moving image obtained by an image sensor in a video call mode or a shooting mode. Then, the processed image frame may be displayed on the display unit 351 .

카메라(321)에서 처리된 화상 프레임은 메모리(360)에 저장되거나 무선 통신부(310)를 통하여 외부로 전송될 수 있다. 카메라(321)는 사용자 단말(300)의 구성 태양에 따라 2개 이상이 구비될 수도 있다.The image frame processed by the camera 321 may be stored in the memory 360 or transmitted to the outside through the wireless communication unit 310 . Two or more cameras 321 may be provided according to the configuration of the user terminal 300 .

마이크(322)는 통화모드 또는 녹음모드, 음성인식 모드 등에서 마이크로폰(Microphone)에 의해 외부의 음향 신호를 입력받아 전기적인 음성 데이터로 처리한다. 그리고, 처리된 음성 데이터는 통화 모드인 경우 이동통신 모듈(312)을 통하여 이동통신 기지국으로 송신 가능한 형태로 변환되어 출력될 수 있다. 마이크(322)는 외부의 음향 신호를 입력받는 과정에서 발생하는 잡음(noise)을 제거하기 위한 다양한 잡음 제거 알고리즘을 구현할 수 있다.The microphone 322 receives an external sound signal by a microphone in a call mode, a recording mode, a voice recognition mode, and the like, and processes it as electrical voice data. In addition, the processed voice data may be converted into a form that can be transmitted to the mobile communication base station through the mobile communication module 312 and output in the call mode. The microphone 322 may implement various noise removal algorithms for removing noise generated in the process of receiving an external sound signal.

사용자 입력부(330)는 사용자로부터 입력 동작을 받아들여, 사용자 단말(300)의 동작 제어를 위한 입력 데이터를 발생시킨다.The user input unit 330 receives an input operation from the user and generates input data for controlling the operation of the user terminal 300 .

센싱부(340)는 사용자 단말(300)의 위치, 사용자 접촉 유무, 사용자 단말(300)의 방위, 사용자 단말(300)의 가속/감속 등과 같이, 사용자 단말(300)의 현 상태를 감지하여 사용자 단말(300)의 동작을 제어하기 위한 센싱 신호를 발생시킨다.The sensing unit 340 detects the current state of the user terminal 300 , such as the location of the user terminal 300 , the presence of user contact, the orientation of the user terminal 300 , and acceleration/deceleration of the user terminal 300 . A sensing signal for controlling the operation of the terminal 300 is generated.

인터페이스부(370)는 사용자 단말(300)에 연결되는 모든 외부기기와의 인터페이스 역할을 한다. 예를 들어, 유/무선 헤드셋 포트, 외부 충전기 포트, 유/무선 데이터 포트, 메모리 카드(memory card) 포트, 식별 모듈이 구비된 장치를 연결하는 포트, 오디오 I/O(Input/Output) 포트, 비디오 I/O(Input/Output) 포트, 이어폰 포트 등이 포함될 수 있다.The interface unit 370 serves as an interface with all external devices connected to the user terminal 300 . For example, wired/wireless headset ports, external charger ports, wired/wireless data ports, memory card ports, ports for connecting devices equipped with identification modules, audio input/output (I/O) ports, It may include a video input/output (I/O) port, an earphone port, and the like.

출력부(350)는 오디오 신호 또는 비디오 신호 또는 알람(alarm) 신호의 출력을 위한 것으로, 이에는 디스플레이부(351)와 음향 출력 모듈(352), 알람부(353) 등이 포함될 수 있다.The output unit 350 is for outputting an audio signal, a video signal, or an alarm signal, and may include a display unit 351 , a sound output module 352 , an alarm unit 353 , and the like.

디스플레이부(351)는 사용자 단말(300)에서 처리되는 정보를 표시 출력한다. 예를 들어, 단말기가 통화 모드인 경우, 통화와 관련된 UI(User Interface) 또는 GUI(Graphic User Interface)를 표시한다. 그리고, 사용자 단말(300)가 화상 통화 모드 또는 촬영 모드인 경우, 촬영 또는/및 수신된 영상 또는 UI, GUI를 표시한다.The display unit 351 displays and outputs information processed by the user terminal 300 . For example, when the terminal is in a call mode, a user interface (UI) or graphic user interface (GUI) related to a call is displayed. And, when the user terminal 300 is in the video call mode or the shooting mode, the captured and/or received image or UI and GUI are displayed.

한편, 전술한 바와 같이, 디스플레이부(351)와 터치 패드가 상호 레이어 구조를 이루어 터치 스크린으로 구성되는 경우, 디스플레이부(351)는 출력 장치 이외에 입력 장치로도 사용될 수 있다. 디스플레이부(351)는 액정 디스플레이(liquid crystal display), 박막 트랜지스터 액정 디스플레이(thin film transistor-liquid crystal display), 유기 발광 다이오드(organic light-emitting diode), 플렉시블 디스플레이(flexible display), 3차원 디스플레이(3D display) 중에서 적어도 하나를 포함할 수 있다. 그리고, 사용자 단말(300)의 구현 형태에 따라, 디스플레이부(351)는 2개 이상 존재할 수도 있다. 예를 들어, 사용자 단말(300)에 외부 디스플레이부(미도시)와 내부 디스플레이부(미도시)가 동시에 구비될 수 있다.Meanwhile, as described above, when the display unit 351 and the touch pad form a layer structure to form a touch screen, the display unit 351 may be used as an input device in addition to an output device. The display unit 351 includes a liquid crystal display, a thin film transistor-liquid crystal display, an organic light-emitting diode, a flexible display, a three-dimensional display ( 3D display). In addition, two or more display units 351 may exist according to an implementation form of the user terminal 300 . For example, the user terminal 300 may be provided with an external display unit (not shown) and an internal display unit (not shown) at the same time.

음향 출력 모듈(352)은 호 신호 수신, 통화모드 또는 녹음 모드, 음성인식 모드, 방송수신 모드 등에서, 무선 통신부(310)로부터 수신되거나 메모리(360)에 저장된 오디오 데이터를 출력한다. 또한, 음향 출력 모듈(352)은 사용자 단말(300)에서 수행되는 기능(예를 들어, 호신호 수신음, 메시지 수신음 등)과 관련된 음향 신호를 출력한다. 이러한 음향 출력 모듈(352)에는 스피커(speaker), 버저(Buzzer) 등이 포함될 수 있다.The sound output module 352 outputs audio data received from the wireless communication unit 310 or stored in the memory 360 in call signal reception, call mode or recording mode, voice recognition mode, broadcast reception mode, and the like. In addition, the sound output module 352 outputs a sound signal related to a function (eg, a call signal reception sound, a message reception sound, etc.) performed in the user terminal 300 . The sound output module 352 may include a speaker, a buzzer, and the like.

알람부(353)는 사용자 단말(300)의 이벤트 발생을 알리기 위한 신호를 출력한다. 단말기에서 발생되는 이벤트의 예로는 호 신호 수신, 메시지 수신, 키 신호 입력 등이 있다. The alarm unit 353 outputs a signal for notifying the occurrence of an event in the user terminal 300 . Examples of events occurring in the terminal include call signal reception, message reception, and key signal input.

메모리(360)는 제어부(380)의 처리 및 제어를 위한 프로그램이 저장될 수도 있고, 입/출력되는 데이터들(예를 들어, 폰북, 메시지, 정지영상, 동영상 등)의 임시 저장을 위한 기능을 수행할 수도 있다.The memory 360 may store a program for processing and control of the controller 380, and provides a function for temporary storage of input/output data (eg, phonebook, message, still image, video, etc.). can also be done

메모리(360)는 플래시 메모리 타입(flash memory type), 하드디스크 타입(hard disk type), 멀티미디어 카드 마이크로 타입(multimedia card micro type), 카드 타입의 메모리(예를 들어 SD 또는 XD 메모리 등), 램(RAM, Random Access Memory) SRAM(Static Random Access Memory), 롬(ROM, Read-Only Memory), EEPROM(Electrically Erasable Programmable Read-Only Memory), PROM(Programmable Read-Only Memory) 자기 메모리, 자기 디스크, 광디스크 중 적어도 하나의 타입의 저장매체를 포함할 수 있다.The memory 360 may include a flash memory type, a hard disk type, a multimedia card micro type, a card type memory (eg SD or XD memory, etc.), a RAM (RAM, Random Access Memory) SRAM (Static Random Access Memory), ROM (Read-Only Memory), EEPROM (Electrically Erasable Programmable Read-Only Memory), PROM (Programmable Read-Only Memory) magnetic memory, magnetic disk, It may include at least one type of storage medium among optical disks.

제어부(380)는 통상적으로 단말기의 전반적인 동작을 제어한다. 예를 들어, 음성 통화, 데이터 통신, 화상 통화 등을 위한 관련된 제어 및 처리를 수행한다. 또한, 제어부(380)는 멀티 미디어 재생을 위한 멀티미디어 모듈(181)을 구비할 수도 있다. 멀티미디어 모듈(381)은 제어부(380) 내에 구현될 수도 있고, 제어부(380)와 별도로 구현될 수도 있다.The controller 380 generally controls the overall operation of the terminal. For example, it performs related control and processing for voice calls, data communications, video calls, and the like. Also, the controller 380 may include a multimedia module 181 for playing multimedia. The multimedia module 381 may be implemented within the control unit 380 or may be implemented separately from the control unit 380 .

제어부(380)는 클라우드 서비스 제공 장치(100)에 컴퓨팅 리소스를 제공할 수 있다. The controller 380 may provide a computing resource to the cloud service providing apparatus 100 .

제어부(380)는 사용자 단말(300)을 클라우드 서비스 제공 장치(100)에 의해의 구현된 블록체인 네트워크(21,22)의 노드(400)로 참여하도록, 블록체인 네트워크(21,22)와 통신할 수 있다.The control unit 380 communicates with the blockchain networks 21 and 22 so that the user terminal 300 participates as a node 400 of the blockchain networks 21 and 22 implemented by the cloud service providing device 100 . can do.

제어부(380)는 컴퓨팅 리소스를 블록체인 네트워크(21,22)를 통해 제공하고, 컴퓨팅 리소스를 제공하는 보상으로, 블록체인 재원을 클라우드 서비스 제공 장치(100)로부터 제공받을 수 있다.The control unit 380 may provide computing resources through the blockchain networks 21 and 22 , and as a reward for providing the computing resources, may receive blockchain financial resources from the cloud service providing device 100 .

제어부(380)는 클라우드 서비스 제공 장치(100)에 제공한 컴퓨팅 리소스 현황 및 클라우드 서비스 제공 장치(100)로부터 제공받은 보상 현황을 사용자에게 출력할 수 있다.The controller 380 may output the computing resource status provided to the cloud service providing device 100 and the compensation status provided from the cloud service providing device 100 to the user.

전원 공급부(390)는 제어부(380)의 제어에 의해 외부의 전원, 내부의 전원을 인가받아 각 구성요소들의 동작에 필요한 전원을 공급한다.The power supply unit 390 receives external power and internal power under the control of the control unit 380 to supply power required for operation of each component.

도 13은 일 실시예에 따른 클라우드 서비스 제공 장치(100)의 하드웨어 구성을 예시적으로 나타낸 도면이다.13 is a diagram exemplarily illustrating a hardware configuration of the cloud service providing apparatus 100 according to an embodiment.

도 13에 도시된 바와 같이, 클라우드 서비스 제공 장치(100)는 통신부(110), 입력부(120), 출력부(130), 메모리(140), 전원 공급부(150) 및 제어부(160)를 포함할 수 있다. 이하에서 설명하는 구성들은 예시적으로 이해되어야 하며, 블록체인 네트워크(20)를 구성하고 관리하는 데 적절한 수준의 수퍼 컴퓨팅이 가능한 하드웨어로 적절히 추가 또는 변경될 수 있다.13 , the cloud service providing apparatus 100 may include a communication unit 110 , an input unit 120 , an output unit 130 , a memory 140 , a power supply unit 150 , and a control unit 160 . can The configurations described below should be understood as examples, and may be appropriately added or changed to hardware capable of supercomputing at an appropriate level for configuring and managing the blockchain network 20 .

통신부(110)는 다양한 통신 방식을 통해 외부의 장치와 통신을 수행할 수 있다. 일례로, 통신부(110)는 외부의 클라이언트 단말(200) 및 사용자 단말(300)과 통신을 수행하여 다양한 데이터를 송수신할 수 있다.The communication unit 110 may communicate with an external device through various communication methods. For example, the communication unit 110 may transmit and receive various data by performing communication with the external client terminal 200 and the user terminal 300 .

입력부(120)는 클라우드 서비스 제공 장치(100)의 유저로부터 다양한 입력을 수신하여 제어부(160)로 전달할 수 있다. 특히, 입력부(120)는 터치 센서, (디지털) 펜 센서, 압력 센서, 키, 또는 마이크를 포함할 수 있다. 터치 센서는, 예를 들면, 정전식, 감압식, 적외선 방식, 또는 초음파 방식 중 적어도 하나의 방식을 사용할 수 있다. (디지털) 펜 센서는, 예를 들면, 터치 패널의 일부이거나, 별도의 인식용 쉬트를 포함할 수 있다. 키는, 예를 들면, 물리적인 버튼, 광학식 키, 또는 키패드를 포함할 수 있다. 마이크는 관리자 음성을 수신하기 위한 구성으로, 클라우드 서비스 제공 장치(100) 내부에 구비될 수 있으나, 이는 일 실시예에 불과할 뿐, 클라우드 서비스 제공 장치(100)의 외부에 구비되어 클라우드 서비스 제공 장치(100)와 전기적으로 연결될 수 있다.The input unit 120 may receive various inputs from the user of the cloud service providing apparatus 100 and transmit it to the control unit 160 . In particular, the input unit 120 may include a touch sensor, a (digital) pen sensor, a pressure sensor, a key, or a microphone. The touch sensor may use, for example, at least one of a capacitive type, a pressure sensitive type, an infrared type, and an ultrasonic type. The (digital) pen sensor may be, for example, a part of a touch panel or may include a separate recognition sheet. The key may include, for example, a physical button, an optical key, or a keypad. The microphone is a component for receiving the manager's voice and may be provided inside the cloud service providing device 100, but this is only an example, and it is provided outside the cloud service providing device 100 to provide a cloud service providing device ( 100) may be electrically connected to.

출력부(130)는 다양한 화면을 제공할 수 있다. 일례로, 출력부(130)는 컴퓨팅 리소스 현황, 보상 현황, 클라이언트 정보 및 사용자 정보 등을 출력할 수 있다.The output unit 130 may provide various screens. For example, the output unit 130 may output the computing resource status, compensation status, client information, user information, and the like.

메모리(140)는 클라우드 서비스 제공 장치(100)의 적어도 하나의 다른 구성요소에 관계된 명령 또는 데이터를 저장할 수 있다. 특히, 메모리(140)는 비휘발성 메모리, 휘발성 메모리, 플래시메모리(flash-memory), 하드디스크 드라이브(HDD) 또는 솔리드 스테이트 드라이브(SSD) 등으로 구현될 수 있다. 메모리(140)는 제어부(160)에 의해 액세스되며, 제어부(160)에 의한 데이터의 독취/기록/수정/삭제/갱신 등이 수행될 수 있다. 본 발명에서 메모리라는 용어는 메모리(140), 제어부(160) 내 롬(미도시), 램(미도시) 또는 클라우드 서비스 제공 장치(100)에 장착되는 메모리 카드(미도시)(예를 들어, micro SD 카드, 메모리 스틱)를 포함할 수 있다. 또한, 메모리(140)에는 출력부(130)의 디스플레이 영역에 표시될 각종 화면을 구성하기 위한 프로그램 및 데이터 등이 저장될 수 있다.The memory 140 may store commands or data related to at least one other component of the cloud service providing apparatus 100 . In particular, the memory 140 may be implemented as a non-volatile memory, a volatile memory, a flash-memory, a hard disk drive (HDD), or a solid state drive (SSD). The memory 140 is accessed by the controller 160 , and reading/writing/modification/deletion/update of data by the controller 160 may be performed. In the present invention, the term "memory" refers to a memory 140, a ROM (not shown) in the controller 160, a RAM (not shown), or a memory card (not shown) mounted in the cloud service providing device 100 (eg, micro SD card, memory stick). In addition, programs and data for configuring various screens to be displayed on the display area of the output unit 130 may be stored in the memory 140 .

전원 공급부(150)는 제어부(160)의 제어에 의해 외부의 전원, 내부의 전원을 인가받아 각 구성요소들의 동작에 필요한 전원을 공급한다.The power supply unit 150 receives external power and internal power under the control of the control unit 160 to supply power necessary for the operation of each component.

제어부(160)는 통신부(110), 입력부(120), 출력부(130), 메모리(140) 및 전원 공급부(150)와 전기적으로 연결되어, 클라우드 서비스 제공 장치(100)의 전반적인 동작 및 기능을 제어하는 프로세서(Processor)로 구성될 수 있다. 특히, 제어부(160)는 메모리(140)에 저장된 다양한 모듈을 이용하여 클라우드 서비스를 제공할 수 있다.The control unit 160 is electrically connected to the communication unit 110 , the input unit 120 , the output unit 130 , the memory 140 , and the power supply unit 150 to control the overall operation and function of the cloud service providing apparatus 100 . It may consist of a controlling processor. In particular, the controller 160 may provide a cloud service using various modules stored in the memory 140 .

본 명세서 전체(또는 도 2에 따른 구성요소들 101~107)에서 설명되는 클라우드 서비스 제공 장치(100) 상의 다양한 동작은 제어부(160)의 제어에 의해서 수행될 수 있음은 자명할 것이다.It will be apparent that various operations on the cloud service providing apparatus 100 described in the entire specification (or components 101 to 107 according to FIG. 2 ) may be performed under the control of the controller 160 .

도 14는 일 실시예에 따른 컴퓨팅 리소스 제공 현황이 출력된 사용자 단말(300)의 화면을 도시한 도면이다.14 is a diagram illustrating a screen of the user terminal 300 on which a computing resource provision status is output, according to an embodiment.

사용자 단말(300)은 클라우드 서비스 제공 장치(100)에 제공한 컴퓨팅 리소스의 현황을 사용자에게 출력할 수 있다.The user terminal 300 may output the current state of the computing resource provided to the cloud service providing apparatus 100 to the user.

도면에서 보는 바와 같이, 사용자 단말(300)이 클라우드 서비스 제공 장치(100)에 제공하는 컴퓨팅 리소스는 사용자 단말(300)의 CPU, NETWORK, MEMORY, STORAGE 등의 유휴 리소스를 포함할 수 있다.As shown in the drawing, the computing resources provided by the user terminal 300 to the cloud service providing apparatus 100 may include idle resources such as CPU, NETWORK, MEMORY, and STORAGE of the user terminal 300 .

이처럼, 사용자 단말(300)은 자신이 클라우드 서비스를 위해 제공하는 컴퓨팅 리소스 현황을 클라우드 서비스 제공 장치(100)로부터 제공받아 사용자에게 표시할 수 있다.As such, the user terminal 300 may receive the current state of computing resources that it provides for the cloud service from the cloud service providing device 100 and display it to the user.

도 15는 일 실시예에 따른 보상 현황이 출력된 사용자 단말(300)의 화면을 도시한 도면이다.15 is a diagram illustrating a screen of the user terminal 300 on which a compensation status is output according to an embodiment.

사용자 단말(300)은 클라우드 서비스 제공 장치(100)로부터 제공받은 보상 현황을 사용자에게 출력할 수 있다The user terminal 300 may output the compensation status provided from the cloud service providing device 100 to the user.

도면에서 보는 바와 같이, 사용자 단말(300)은 클라우드 서비스 제공 장치(100)로부터 보상으로 블록체인 재원을 제공받을 수 있으며, 일 실시예의 블록체인 재원은 블록체인 토큰(Token), 블록체인 코인(Coin)과 같은 디지털 화폐를 포함할 수 있다. 그러나, 일 실시예의 블록체인 채원은 이에 한정되지는 아니하고, 블록체인에서 구현 가능한 다양한 재원을 포함할 수 있다.As shown in the drawing, the user terminal 300 may be provided with block chain resources as a reward from the cloud service providing device 100, and the block chain resources in an embodiment are block chain tokens and block chain coins. ) may include digital currencies such as However, the blockchain financing of one embodiment is not limited thereto, and may include various financial resources that can be implemented in the blockchain.

본 발명의 실시예와 관련하여 설명된 방법 또는 알고리즘의 단계들은 하드웨어로 직접 구현되거나, 하드웨어에 의해 실행되는 소프트웨어 모듈로 구현되거나, 또는 이들의 결합에 의해 구현될 수 있다. 소프트웨어 모듈은 RAM(Random Access Memory), ROM(Read Only Memory), EPROM(Erasable Programmable ROM), EEPROM(Electrically Erasable Programmable ROM), 플래시 메모리(Flash Memory), 하드 디스크, 착탈형 디스크, CD-ROM, 또는 본 발명이 속하는 기술 분야에서 잘 알려진 임의의 형태의 컴퓨터 판독가능 기록매체에 상주할 수도 있다.The steps of a method or algorithm described in relation to an embodiment of the present invention may be implemented directly in hardware, as a software module executed by hardware, or by a combination thereof. A software module may contain random access memory (RAM), read only memory (ROM), erasable programmable ROM (EPROM), electrically erasable programmable ROM (EEPROM), flash memory, hard disk, removable disk, CD-ROM, or It may reside in any type of computer-readable recording medium well known in the art to which the present invention pertains.

이상, 첨부된 도면을 참조로 하여 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야의 통상의 기술자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로, 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며, 제한적이 아닌 것으로 이해해야만 한다.As mentioned above, although embodiments of the present invention have been described with reference to the accompanying drawings, those skilled in the art to which the present invention pertains know that the present invention may be embodied in other specific forms without changing the technical spirit or essential features thereof. you will be able to understand Therefore, it should be understood that the embodiments described above are illustrative in all respects and not restrictive.

Claims (1)

블록체인 기반의 머신러닝 서비스를 포함하는 클라우드 서비스 제공 시스템으로,
클라우드 서비스를 요청하는 클라이언트 단말;
블록체인 네트워크를 관리하며, 상기 블록체인 네트워크를 구성하는 노드들을 분산 컴퓨팅 디바이스로 이용하여 상기 클라우드 서비스를 상기 클라이언트 단말에 제공하는 클라우드 서비스 제공 장치; 및
상기 블록체인 네트워크에 상기 노드로 참여하고, 참여에 대한 보상으로 상기 블록체인 네트워크에 따른 블록체인 재원을 보상으로 제공받는 사용자 단말을 포함하고,
상기 블록체인 네트워크는, 퍼블릭 블록체인 네트워크(public blockchain network) 및 프라이빗 블록체인 네트워크(private blockchain network)를 동시에 포함하는 하이브리드 블록체인 네트워크로 구성되며,
상기 클라우드 서비스 제공 장치는,
상기 클라우드 서비스의 종류와 레이턴시(latency), 및 컴퓨팅 리소스 양에 따라 상기 퍼블릭 블록체인 네트워크와 상기 프라이빗 블록체인 네트워크 중 하나를 선택하여 상기 클라우드 서비스를 제공하고,
상기 프라이빗 블록체인 네트워크를 이용하여 딥러닝 또는 머신러닝에 기반한 훈련(traning)을 수행하고 훈련 결과를 상기 클라이언트 단말에 제공하는 머신러닝 서비스를 수행하되,
상기 클라우드 서비스 제공 장치는,
상기 퍼블릭 블록체인 네트워크를 구성하는 제1 노드들 각각의 컴퓨팅 리소스, 및 코인 지갑을 관리하는 퍼블릭 블록체인 관리부;
상기 프라이빗 블록체인 네트워크를 구성하는 제2 노드들을 인증하고, 컴퓨팅 리소스를 관리하는 프라이빗 블록체인 관리부;
상기 클라우드 서비스를 제공하기 위한 프레임워크(framework)를 구성하고 관리하는 프레임워크 관리부;
상기 퍼블릭 블록체인 네트워크를 외부 퍼블릭 블록체인 네트워크와 통신하도록 중계하는 블록체인 API 브로커;
상기 블록체인 네트워크를 통해 제공되는 컴퓨팅 리소스를 이용하여 웹 상에서 개발 툴을 구동하여 상기 클라이언트 단말에 제공하는 개발 툴 관리부;
상기 퍼블릭 블록체인 관리부 및 상기 프라이빗 블록체인 관리부와 연동하여 상기 블록체인 네트워크를 구성하는 노드들로부터 컴퓨팅 리소스를 제공받고, 제공받은 컴퓨팅 리소스를 상기 클라이언트 단말에 제공하는 리소스 관리부; 및
상기 퍼블릭 블록체인 관리부, 상기 프라이빗 블록체인 관리부, 및 상기 리소스 관리부와 연동하여 웹 상에서 애플리케이션을 구동하여 상기 클라이언트 단말에 제공하는 애플리케이션 구동부를 포함하고,
상기 클라우드 서비스 제공 장치는,
상기 프라이빗 블록체인 네트워크를 구성하는 상기 제2 노드들 각각에 훈련시키고자 하는 학습 모델을 개별적으로 저장하고, 상기 제2 노드들마다 저장된 상기 학습 모델에 서로 다른 학습 데이터를 순전파 알고리즘과 역전파 알고리즘을 이용하여 개별적으로 학습시키고, 상기 제2 노드들 각각에서 학습으로 얻어지는 가중치를 자신을 제외한 다른 제2 노드에 전달하도록 제어하고,
상기 제2 노드들 각각은, 링-올 리듀스(Ring all Reduce) 알고리즘을 이용하여 다른 제2 노드들이 훈련을 통해 얻은 가중치들을 획득하고, 획득된 상기 가중치들의 평균값 또는 중간값을 가중치로 갖도록 자신이 저장하는 상기 학습 모델을 갱신(update)하고,
상기 프레임워크 관리부는, 소프트웨어 프레임워크들 중 하나인 인공지능 프레임워크(AI framework)를 관리하되,
상기 인공지능 프레임 워크는, 제1 계층(1st Floor)으로‘Keras’, 제2 계층(2nd Floor)으로 구글의 'Tensorflow’, 페이스북의 ‘Pytorch’, 및 아마존의 'Mxnet’ 중 적어도 하나, 제3 계층(3rd Floor)으로 'ONNX(Model exchange)’를 포함하는, 클라우드 서비스 제공 시스템.
It is a cloud service providing system that includes a block chain-based machine learning service,
a client terminal requesting a cloud service;
a cloud service providing apparatus that manages a block chain network and provides the cloud service to the client terminal using nodes constituting the block chain network as distributed computing devices; and
and a user terminal that participates in the blockchain network as the node, and is provided with blockchain resources according to the blockchain network as a reward for participation,
The blockchain network is composed of a hybrid blockchain network including a public blockchain network and a private blockchain network at the same time,
The cloud service providing device,
Selecting one of the public blockchain network and the private blockchain network according to the type and latency of the cloud service, and the amount of computing resources to provide the cloud service,
A machine learning service that performs training based on deep learning or machine learning using the private blockchain network and provides a training result to the client terminal is performed,
The cloud service providing device,
a public block chain management unit that manages computing resources and coin wallets of each of the first nodes constituting the public block chain network;
a private blockchain management unit that authenticates second nodes constituting the private blockchain network and manages computing resources;
a framework management unit for configuring and managing a framework for providing the cloud service;
a blockchain API broker that relays the public blockchain network to communicate with an external public blockchain network;
a development tool management unit that drives a development tool on the web using the computing resource provided through the block chain network and provides it to the client terminal;
a resource management unit that interworks with the public block chain management unit and the private block chain management unit to receive computing resources from nodes constituting the block chain network, and provides the received computing resources to the client terminal; and
Comprising an application driving unit that operates an application on the web in conjunction with the public blockchain management unit, the private blockchain management unit, and the resource management unit and provides it to the client terminal,
The cloud service providing device,
A learning model to be trained is individually stored in each of the second nodes constituting the private block chain network, and different learning data is applied to the learning model stored for each second node. A forward propagation algorithm and a backpropagation algorithm is individually trained using , and the weight obtained by learning in each of the second nodes is controlled to be transmitted to other second nodes except for itself,
Each of the second nodes acquires weights obtained through training of other second nodes using a Ring all Reduce algorithm, and has an average or median value of the obtained weights as a weight. Update the learning model to store,
The framework management unit, but manages an artificial intelligence framework (AI framework) that is one of the software frameworks,
The artificial intelligence framework is at least one of 'Keras' as the first layer (1st Floor), Google's 'Tensorflow' as the second layer (2nd Floor), Facebook's 'Pytorch', and Amazon's 'Mxnet', A cloud service providing system that includes 'ONNX (Model exchange)' as the 3rd floor.
KR1020210112372A 2021-03-02 2021-08-25 The method and system for providing cloud service including machine learning service based blockchain KR102361217B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210112372A KR102361217B1 (en) 2021-03-02 2021-08-25 The method and system for providing cloud service including machine learning service based blockchain

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020210027261A KR102296907B1 (en) 2021-03-02 2021-03-02 The method and system for providing cloud service based blockchain
KR1020210112372A KR102361217B1 (en) 2021-03-02 2021-08-25 The method and system for providing cloud service including machine learning service based blockchain

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020210027261A Division KR102296907B1 (en) 2021-03-02 2021-03-02 The method and system for providing cloud service based blockchain

Publications (1)

Publication Number Publication Date
KR102361217B1 true KR102361217B1 (en) 2022-02-14

Family

ID=77779822

Family Applications (10)

Application Number Title Priority Date Filing Date
KR1020210027261A KR102296907B1 (en) 2021-03-02 2021-03-02 The method and system for providing cloud service based blockchain
KR1020210112363A KR102361207B1 (en) 2021-03-02 2021-08-25 The method and system for providing cloud service including saas based blockchain
KR1020210112369A KR102361215B1 (en) 2021-03-02 2021-08-25 The method and system for providing cloud service including iaas based blockchain
KR1020210112367A KR102361212B1 (en) 2021-03-02 2021-08-25 The method and system for providing cloud service including paas based blockchain
KR1020210112372A KR102361217B1 (en) 2021-03-02 2021-08-25 The method and system for providing cloud service including machine learning service based blockchain
KR1020210112376A KR102361221B1 (en) 2021-03-02 2021-08-25 The method and system for providing cloud service providing reward according to machine learning based blockchain
KR1020210113283A KR102392739B1 (en) 2021-03-02 2021-08-26 The method and system for providing cloud service based blockchain using distributed cloud storage based on ipfs
KR1020210113280A KR102361222B1 (en) 2021-03-02 2021-08-26 The method and system for providing cloud service based blockchain using master node
KR1020210113297A KR102361224B1 (en) 2021-03-02 2021-08-26 The method and system for providing cloud service using verified node and unverified node based blockchain
KR1020210113288A KR102391469B1 (en) 2021-03-02 2021-08-26 The method and system for providing cloud service using public blockchain and private blockchain

Family Applications Before (4)

Application Number Title Priority Date Filing Date
KR1020210027261A KR102296907B1 (en) 2021-03-02 2021-03-02 The method and system for providing cloud service based blockchain
KR1020210112363A KR102361207B1 (en) 2021-03-02 2021-08-25 The method and system for providing cloud service including saas based blockchain
KR1020210112369A KR102361215B1 (en) 2021-03-02 2021-08-25 The method and system for providing cloud service including iaas based blockchain
KR1020210112367A KR102361212B1 (en) 2021-03-02 2021-08-25 The method and system for providing cloud service including paas based blockchain

Family Applications After (5)

Application Number Title Priority Date Filing Date
KR1020210112376A KR102361221B1 (en) 2021-03-02 2021-08-25 The method and system for providing cloud service providing reward according to machine learning based blockchain
KR1020210113283A KR102392739B1 (en) 2021-03-02 2021-08-26 The method and system for providing cloud service based blockchain using distributed cloud storage based on ipfs
KR1020210113280A KR102361222B1 (en) 2021-03-02 2021-08-26 The method and system for providing cloud service based blockchain using master node
KR1020210113297A KR102361224B1 (en) 2021-03-02 2021-08-26 The method and system for providing cloud service using verified node and unverified node based blockchain
KR1020210113288A KR102391469B1 (en) 2021-03-02 2021-08-26 The method and system for providing cloud service using public blockchain and private blockchain

Country Status (1)

Country Link
KR (10) KR102296907B1 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109345389A (en) * 2018-09-25 2019-02-15 阿里巴巴集团控股有限公司 A kind of resource sharing method, device and equipment
CN115277110B (en) * 2022-07-04 2023-07-28 河北嘉朗科技有限公司 Method for solving block chain node cross-network communication problem in cloud native environment
KR102517196B1 (en) * 2022-08-24 2023-04-03 주식회사 엔터프라이즈블록체인 Eletronic device for providing curriculum vitae creation and management service and method thereof

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200005433A (en) * 2018-07-06 2020-01-15 주식회사 메디웨일 Cloud server and diagnostic assistant systems based on cloud server

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102170025B1 (en) * 2018-01-25 2020-10-26 김택균 Service Method and Device for Providing Processor Hybrid Block Chain Platform
KR102093145B1 (en) * 2018-06-07 2020-03-25 한밭대학교 산학협력단 Object Storage Cloud System for optimization data on basis of biometrics
KR20200063340A (en) * 2018-11-22 2020-06-05 한국클라우드컴퓨팅연구조합 Method and system that machine learning-based quality inspection using the cloud
KR102280584B1 (en) * 2018-11-29 2021-07-23 한국전자통신연구원 Apparatus and method for decentralized storage based on advertising service using blockchain
KR102206026B1 (en) * 2019-01-04 2021-01-22 주식회사 커먼컴퓨터 System and method for transaction of work requests and products based on blockchain
KR102026580B1 (en) * 2019-01-15 2019-09-27 강대준 A control system for unmanned moving vechicle using blockchain and a control method thereof
KR102210429B1 (en) * 2019-04-30 2021-02-01 숭실대학교산학협력단 Container cluster system for authentication based on blockchain
KR20210020570A (en) * 2019-08-16 2021-02-24 삼성전자주식회사 Electronic apparatus and method for controlling thereof

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200005433A (en) * 2018-07-06 2020-01-15 주식회사 메디웨일 Cloud server and diagnostic assistant systems based on cloud server

Also Published As

Publication number Publication date
KR102361222B1 (en) 2022-02-14
KR102361224B1 (en) 2022-02-14
KR102361215B1 (en) 2022-02-14
KR102296907B1 (en) 2021-09-01
KR102392739B1 (en) 2022-05-03
KR102361221B1 (en) 2022-02-14
KR102361212B1 (en) 2022-02-14
KR102391469B1 (en) 2022-04-28
KR102361207B1 (en) 2022-02-14

Similar Documents

Publication Publication Date Title
KR102361217B1 (en) The method and system for providing cloud service including machine learning service based blockchain
CN113711536B (en) Extracting data from a blockchain network
AU2018347190B2 (en) Blockchain data protection based on account note model with zero-knowledge proof
JP6889275B2 (en) Consensus node selection method and device, and server
KR102121159B1 (en) Event-driven blockchain workflow processing
JP6763094B2 (en) Blockchain-based crowdsourcing for map applications
Sabry et al. The road to the blockchain technology: Concept and types
KR102145701B1 (en) Prevent false display of input data by participants in secure multi-party calculations
US11392263B2 (en) Real-time geospatial collaboration system
CN111095324A (en) Performing parallel execution of transactions in a distributed ledger system
US11763332B2 (en) Edge computing platform supported by smart contract enabled blockchain network
JP7035105B2 (en) Information sharing tracking systems, methods and computer-readable storage media
WO2021096715A1 (en) Multi-layer ledgers for multi-party secure data governance
CN113129149A (en) Transaction risk identification method and device based on block chain and safe multi-party calculation
Aviv et al. Reference Architecture for Blockchain-Native Distributed Information System
Zhang et al. Integration of communication and computing in blockchain-enabled multi-access edge computing systems
Yewale Study of blockchain-as-a-service systems with a case study of hyperledger fabric implementation on Kubernetes
US11838277B2 (en) Blockchain-based secure, anonymizing message bus
JP2024513624A (en) System and method for secure and traceable funds transfer operations via distributed ledger
KR102510353B1 (en) Method and system for providing golf service based blockchain
Chandratre et al. Blockchain based raspberry Pi mesh network
Lad et al. Trust Management for Multi-Agent Systems Using Smart Contracts
Shilpa et al. Blockchain and cloud technology: Leading the ICT innovations
Hernández Distributed Ledger Technologies for Managing Heterogeneous Computing and Sensing Systems at the Edge
Beniiche 6G and Next-generation Internet: Under Blockchain Web3 Economy

Legal Events

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