KR102184772B1 - Automated Smart Contract Tagging System based on Tag Recommendation Model - Google Patents

Automated Smart Contract Tagging System based on Tag Recommendation Model Download PDF

Info

Publication number
KR102184772B1
KR102184772B1 KR1020180149850A KR20180149850A KR102184772B1 KR 102184772 B1 KR102184772 B1 KR 102184772B1 KR 1020180149850 A KR1020180149850 A KR 1020180149850A KR 20180149850 A KR20180149850 A KR 20180149850A KR 102184772 B1 KR102184772 B1 KR 102184772B1
Authority
KR
South Korea
Prior art keywords
smart contract
model
smart
tag
contract
Prior art date
Application number
KR1020180149850A
Other languages
Korean (ko)
Other versions
KR20200068775A (en
Inventor
김윤태
이종협
박도현
Original Assignee
주식회사 파이랩테크놀로지
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 파이랩테크놀로지 filed Critical 주식회사 파이랩테크놀로지
Priority to KR1020180149850A priority Critical patent/KR102184772B1/en
Priority to PCT/KR2019/007440 priority patent/WO2020111424A1/en
Publication of KR20200068775A publication Critical patent/KR20200068775A/en
Application granted granted Critical
Publication of KR102184772B1 publication Critical patent/KR102184772B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • G06Q30/0601Electronic shopping [e-shopping]
    • G06Q30/0609Buyer or seller confidence or verification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • G06N3/0454
    • 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/06Buying, selling or leasing transactions
    • 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/06Buying, selling or leasing transactions
    • G06Q30/0601Electronic shopping [e-shopping]
    • G06Q30/0607Regulated
    • 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/06Buying, selling or leasing transactions
    • G06Q30/0601Electronic shopping [e-shopping]
    • G06Q30/0623Item investigation
    • G06Q30/0625Directed, with specific intent or strategy

Landscapes

  • Business, Economics & Management (AREA)
  • Engineering & Computer Science (AREA)
  • Finance (AREA)
  • Accounting & Taxation (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • Strategic Management (AREA)
  • Marketing (AREA)
  • Economics (AREA)
  • Development Economics (AREA)
  • Biophysics (AREA)
  • Evolutionary Computation (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Biomedical Technology (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

사용자의 스마트 컨트랙트를 분석하여 태그를 추천하는 스마트 컨트랙트 추천 시스템이 개시된다. 이미 알려진 스마트 컨트랙트들을 분석하여 태그를 추출할 수 있는 여러가지 학습방법들을 제시하고, 학습된 모델들을 사용하여, 사용자가 분석을 원하는 스마트 컨트랙트를 본 발명의 시스템에 입력시키면, 해당 스마트 컨트랙트에 매칭되는 태그를 사용자에게 추천하여, 결과적으로 사용자가 신뢰할 수 있는 스마트 컨트랙트를 쉽고 빠르게 확인할 수 있는 장점이 있다.A smart contract recommendation system that analyzes a user's smart contract and recommends a tag is launched. Various learning methods to extract tags by analyzing known smart contracts are presented, and when a user inputs a smart contract that the user wants to analyze into the system of the present invention using the learned models, a tag matching the smart contract Is recommended to the user, and as a result, there is an advantage of being able to quickly and easily check the smart contract that the user can trust.

Description

태그 추천 모델을 이용한 자동화된 스마트 컨트랙트 태그 생성 및 추천 시스템 {Automated Smart Contract Tagging System based on Tag Recommendation Model}Automatic Smart Contract Tagging System based on Tag Recommendation Model {Automated Smart Contract Tagging System based on Tag Recommendation Model}

본 발명은 자동화된 스마트 컨트랙트 추천 시스템에 관한 것으로, 더욱 상세하게는 스마트 컨트랙트의 정보로부터 태그(tag) 방식을 활용하여 스마트 컨트랙트를 자동으로 분류/분별하거나 사용자에게 추천하는 방법과 시스템에 관한 것이다.The present invention relates to an automated smart contract recommendation system, and more particularly, to a method and system for automatically classifying/classifying smart contracts or recommending them to users using a tag method from information of smart contracts.

스마트 컨트랙트(smart contract)란, 이더리움(ethereum) 상에서 사전에 정의된 조건을 만족할 경우 작성된 계약 내용을 자동으로 이행하는 컴퓨터 프로그램으로 정의될 수 있다. 블록체인(Blockchain) 상에서 자동으로 작동해야하는 업무를 처리할 뿐만 아니라, 암호화폐에 대한 처리도 가능하기 때문에 ICO(Initial Coin Offering), 이더리움 토큰(token) 발행, 도박 사이트 운영 등 다양한 목적으로 사용되고 있다.A smart contract can be defined as a computer program that automatically executes the written contract content when a pre-defined condition on Ethereum is satisfied. It is used for various purposes such as ICO (Initial Coin Offering), Ethereum token issuance, gambling site operation, etc. because it not only handles tasks that should automatically operate on the blockchain, but also processes cryptocurrency. .

이러한 스마트 컨트랙트는 전송받은 이더리움에 대한 처리가 가능하기 때문에, 스마트 컨트랙트가 악용되는 경우, 폰지(ponzi), 피라미드 방식(pyramid scheme) 등의 금융 사기 문제가 발생할 수 있다.Since such a smart contract can process the transmitted Ethereum, if the smart contract is abused, financial fraud problems such as ponzi and pyramid schemes may occur.

또한, 스마트 컨트랙트가 어떠한 내용으로 작성되어 있는지 확인하기 위해서는 블록체인에 저장된 실행파일 형식의 실행코드를 해석하거나, 작성자가 업로드한 소스 코드(source code)를 해석해야 하는 번거로움이 있으며 사용자에게 전문 지식이 없을 경우 아예 해석을 할 수 없다는 문제가 있다.In addition, in order to check what content the smart contract is written with, there is an inconvenience of interpreting the execution code in the form of an executable file stored in the blockchain or the source code uploaded by the author. Without this, there is a problem that it cannot be interpreted at all.

결과적으로 스마트 컨트랙트를 이용한 서비스 제공자와 서비스 이용자 간의 정보의 비대칭성으로 인한 피해를 줄이기 위해서는, 스마트 컨트랙트의 내용을 규명할 수 있는 정보를 제공할 필요가 있다.As a result, in order to reduce the damage caused by the asymmetry of information between the service provider and the service user using the smart contract, it is necessary to provide information that can identify the contents of the smart contract.

공개번호 제10-2018-0068888호, 스마트 컨트랙트를 이용한 게임 아이템 구매 방법 및 장치Publication No. 10-2018-0068888, Method and device for purchasing game items using smart contracts 등록번호 제10-1778768호, IoT 기기 제어 방법 및 시스템Registration No. 10-1778768, IoT device control method and system

상기와 같은 문제들을 해결하기 위한 본 발명의 목적은, 자동화된 스마트 컨트랙트의 태그를 추천할 수 있는 시스템을 제공하는데 있다.An object of the present invention to solve the above problems is to provide a system capable of recommending tags of an automated smart contract.

상기 목적을 달성하기 위한 본 발명은, 학습이 될 복수의 스마트 컨트랙트로부터 복수의 파라미터를 추출하여 복수의 학습 및 평가 데이터셋을 생성하는 제1 스마트 컨트랙트 분석부(1100), 제1 스마트 컨트랙트 분석부로부터 상기 학습 데이터셋을 입력받아, 특정 학습 모델을 사용하여 학습시키는 스마트 컨트랙트 추천 모델 학습부(1200) 및 상기 스마트 컨트랙트 추천 모델 학습부로부터 학습된 데이터와 상기 평가 데이터셋을 비교하여, 스마트 컨트랙트 태그를 추천할 수 있는 최적의 모델을 선택하는 스마트 컨트랙트 최적 모델 선택부(1300)를 포함하는 것을 특징으로 한다.The present invention for achieving the above object is a first smart contract analysis unit (1100), a first smart contract analysis unit for generating a plurality of learning and evaluation datasets by extracting a plurality of parameters from a plurality of smart contracts to be learned A smart contract recommendation model learning unit 1200 that receives the training data set from and trains it using a specific learning model, and compares the evaluation data set with data learned from the smart contract recommendation model learning unit, and a smart contract tag It characterized in that it comprises a smart contract optimal model selection unit 1300 for selecting an optimal model capable of recommending.

또한, 본 발명은 복수의 스마트 컨트랙트로부터 복수의 파라미터를 추출하여 복수의 모델 학습을 통해 최적의 태그를 추천하는 스마트 컨트랙트 최적 모델 선택부(1300), 사용자가 스마트 컨트랙트로부터 복수의 파라미터를 추출하는 제2 스마트 컨트랙트 분석부(2100), 상기 제2 스마트 컨트랙트 분석부(2100)로부터 추출된 파라미터에 상기 스마트 컨트랙트 최적 모델 선택부(1300)로부터 선택된 최적의 모델을 적용하는 스마트 컨트랙트 모델 적용부(2200) 및 상기 스마트 컨트랙트 모델 적용부(2200)으로부터 선정된 태그를 추천하는 태그 추천 적용부(2300)를 포함하는 것을 특징으로 한다.In addition, the present invention provides a smart contract optimal model selection unit 1300 that extracts a plurality of parameters from a plurality of smart contracts and recommends an optimal tag through learning a plurality of models, and a user extracts a plurality of parameters from the smart contract. 2 Smart contract analysis unit 2100, a smart contract model application unit 2200 that applies the optimal model selected from the smart contract optimal model selection unit 1300 to parameters extracted from the second smart contract analysis unit 2100 And a tag recommendation application unit 2300 for recommending a tag selected from the smart contract model application unit 2200.

또한, 스마트 컨트랙트로부터 추출되는 복수의 파라미터는 스마트 컨트랙트의 바이너리 코드를 디스어셈블(disassemble)한 실행코드(opcode), 스마트 컨트랙트의 소스 코드로부터 추출한 정보를 사용하는 것을 특징으로 한다.In addition, the plurality of parameters extracted from the smart contract is characterized by using an executable code (opcode) obtained by disassembling the binary code of the smart contract, and information extracted from the source code of the smart contract.

또한, 상기 특정 학습 모델은 복수의 모델로 이루어지며, 상기 복수의 모델은 각각 딥 뉴럴 네트워크(Deep Neural Networks), 딥 협업 필터링(Deep Collaborative Filtering), KNN(K-Nearest Neighbors) 중 둘 이상을 선택적으로 조합하여 사용하는 것을 특징으로 한다.In addition, the specific learning model consists of a plurality of models, and each of the plurality of models selectively selects two or more of Deep Neural Networks, Deep Collaborative Filtering, and K-Nearest Neighbors (KNN). It is characterized in that it is used in combination.

또한, 상기 실행코드(opcode)로부터 추출되는 정보는 길이, 문맥, 구성요소를 포함하며,상기 소스코트로부터 추출되는 정보는 스마트 컨트랙트의 제목(contract name) 또는 함수 명(function name)을 포함하는 것을 특징으로 한다.In addition, the information extracted from the execution code (opcode) includes a length, a context, and a component, and the information extracted from the source coat includes a title (contract name) or a function name (function name) of the smart contract. It is characterized.

상기와 같은 본 발명에 따른 스마트 컨트랙트 추천 시스템을 이용할 경우에는 사용자에게 스마트 컨트랙트를 쉽게 구분하거나 구별할 수 있도록 식별(identification)이 가능한 태그를 추천하여 제공할 수 있다.In the case of using the smart contract recommendation system according to the present invention as described above, a tag capable of identification can be recommended and provided to the user so that the smart contract can be easily identified or distinguished.

또한, 본 발명에 따라 생성된 태그를 통해서 스마트 컨트랙트의 실질적인 용도와 위험성을 사용자로하여금 직관적으로 알 수 있게 하는 효과를 제공한다.In addition, it provides an effect of allowing a user to intuitively know the practical use and risk of a smart contract through the tag generated according to the present invention.

또한, 본 발명의 스마트 컨트랙트 추천 방법과 추천 시스템은 자동화된 과정을 통해서 스마트 컨트랙트 사용자의 편의성을 보장할 수 있다.In addition, the smart contract recommendation method and recommendation system of the present invention can guarantee the convenience of a smart contract user through an automated process.

또한, 본 발명을 이용하면 사용자들이 스마트 컨트랙트의 내용을 확인할 수 있는 전문적인 시스템 스킬의 여부와 관계 없이 모든 사용자가 쉽고 공평하게 스마트 컨트랙트의 서비스를 이용할 수 있도록 보장한다.In addition, the use of the present invention ensures that all users can easily and fairly use the service of the smart contract regardless of whether the users have a professional system skill to check the contents of the smart contract.

결과적으로, 스마트 컨트랙트로 인한 여러 금융 사기(폰지 사기 등)로부터 사용자들을 쉽게 보호할 수 있는 장점이 있다.As a result, there is an advantage that users can be easily protected from various financial frauds (such as Ponzi fraud) caused by smart contracts.

도 1은 스마트 컨트랙트 태그 추천 모델을 이용한 자동화된 스마트 컨트랙트 추천 시스템의 개념도이다
도 2는 스마트 컨트랙트 태그 추천 모델을 이용한 자동화된 스마트 컨트랙트 추천 시스템의 세부 구성도이다.
도 3은 딥 협업 필터링(Deep Collaborative Filtering) 모델의 개념도이다.
1 is a conceptual diagram of an automated smart contract recommendation system using a smart contract tag recommendation model
2 is a detailed configuration diagram of an automated smart contract recommendation system using a smart contract tag recommendation model.
3 is a conceptual diagram of a deep collaborative filtering model.

본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terms used in the present application are only used to describe specific embodiments, and are not intended to limit the present invention. Singular expressions include plural expressions unless the context clearly indicates otherwise. In the present application, terms such as "comprise" or "have" are intended to designate the presence of features, numbers, steps, actions, components, parts, or combinations thereof described in the specification, but one or more other features. It is to be understood that the presence or addition of elements or numbers, steps, actions, components, parts, or combinations thereof, does not preclude in advance.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless otherwise defined, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art to which the present invention belongs. Terms as defined in a commonly used dictionary should be interpreted as having a meaning consistent with the meaning in the context of the related technology, and should not be interpreted as an ideal or excessively formal meaning unless explicitly defined in this application. Does not.

이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings.

도 1또는 2은 스마트 컨트랙트 태그 추천 모델을 이용한 자동화된 스마트 컨트랙트 추천 시스템(10000)의 개념도와 세부 구성도를 설명하고 있다.1 or 2 illustrates a conceptual and detailed configuration diagram of an automated smart contract recommendation system 10000 using a smart contract tag recommendation model.

본 발명의 스마트 컨트랙트 추천 시스템(10000)은 도면 1에서 도시된 것과 같이 사용자 디바이스(700)를 통해 사용자가 스마트 컨트랙트에 대해서 추천을 의뢰하는 형태로 구현될 수 있다. 즉 사용자는 스마트 컨트랙트에 관련된 정보를 얻고 싶을 때 본 발명과 같은 추천 시스템에 정보를 알고 싶은 대상이 되는 스마트 컨트랙트를 온라인/오프라인으로 의뢰하게 되고, 추천 시스템은 의뢰된 스마트 컨트랙트에 맞는 태그를 사용자에게 추천하게 된다.The smart contract recommendation system 10000 of the present invention may be implemented in a form in which a user requests a recommendation for a smart contract through the user device 700 as shown in FIG. 1. That is, when a user wants to obtain information related to a smart contract, the user requests a smart contract that is the object of which he/she wants to know information to a recommendation system such as the present invention online/offline, and the recommendation system provides the user with a tag suitable for the requested smart contract. I will recommend it.

또한, 스마트 컨트랙트 추천 시스템(10000)은 스마트 컨트랙트로부터 태그를 효율적으로 추출하도록 본 발명의 시스템을 구축(system buildup process)하는 것을 목적으로 하는 스마트 컨트랙트 태그 추천 모델 빌드업부(1000)과 본 발명의 시스템을 적용(system application process)하는 것을 목적으로 하는 스마트 컨트랙트 태그 추천부(2000)로 구성되어 있다.In addition, the smart contract recommendation system 10000 includes a smart contract tag recommendation model build-up unit 1000 and a system of the present invention for the purpose of building the system of the present invention to efficiently extract tags from the smart contract. It consists of a smart contract tag recommendation unit (2000) for the purpose of applying (system application process).

스마트 컨트랙트 태그 추천 모델 빌드업부(1000)는 도면 2의 상단 부분을 이루고 있으며, 스마트 컨트랙트 태그 추천부(2000)는 도면 2의 하단 부분을 이루고 있다. The smart contract tag recommendation model build-up unit 1000 constitutes the upper part of FIG. 2, and the smart contract tag recommendation unit 2000 constitutes the lower part of FIG. 2.

스마트 컨트랙트 태그 추천 모델 빌드업부(1000)은 다시 제1 스마트 컨트랙트 분석부(1100), 스마트 컨트랙트 추천 모델 학습부(1200) 및 스마트 컨트랙트 최적모델 선택부(1300)을 포함할 수 있다.The smart contract tag recommendation model build-up unit 1000 may again include a first smart contract analysis unit 1100, a smart contract recommendation model learning unit 1200, and a smart contract optimal model selection unit 1300.

구체적으로, 제1 스마트 컨트랙트 분석부(1100)은 학습이 될 복수의 스마트 컨트랙트로부터 복수의 파라미터를 추출하여 복수의 학습 및 평가 데이터셋을 생성하는 역할을 수행한다.Specifically, the first smart contract analysis unit 1100 plays a role of generating a plurality of learning and evaluation datasets by extracting a plurality of parameters from a plurality of smart contracts to be learned.

더욱 구체적으로 블록체인 시스템으로부터 소스코드 및 바이너리 코드를 구할 수 있는 복수의 스마트 컨트랙트를 입수하여, 이의 바이너리 코드를 디스어셈블하여 실행코드(Opcode)를 구하고 이로부터 구성요소, 문맥정보, 길이정보를 추출한다. 추출된 정보들을 이어붙이기(concatenate)한 뒤, 데이터셋을 이루도록 한다.More specifically, by obtaining multiple smart contracts that can obtain source code and binary code from the blockchain system, disassemble the binary code to obtain an execution code (Opcode), and extract component, context information, and length information from it do. After concatenating the extracted information, make a dataset.

여기서, 구성요소와 관련되어, 실행코드(opcode)는 전체적인 계약 내용을 이행하기 위해 해야하는 세부적인 하나의 행동으로 생각할 수 있다. 특정 목적을 이행하기 위해 할 수 있는 모든 행동(opcode)를 취해야하기도 하지만, 일부의 행동으로 목적을 달성할 수 도 있다. 즉, 목적에 따라 필요한 행동의 종류가 다르기 때문에 우리는 계약을 이행하기 위해 필요한 실행코드(opcode)의 종류를 스마트 컨트랙트의 구성요소라 정의하며, 추출하게 된다.Here, in relation to the components, the execution code (opcode) can be thought of as a detailed action that must be performed in order to implement the entire contract. You may have to take every action you can (opcode) to fulfill a specific purpose, but some actions can achieve that goal. In other words, because the types of actions required for different purposes are different, we define and extract the types of opcodes required to implement the contract as components of the smart contract.

구체적으로 상술한 실행코드의 구성요소는 스마트 컨트랙트가 어떠한 행동으로 목적을 달성하는가에 대한 정보를 얻기 위해, 실행한 행동을 1로 실행하지 않은 행동은 0으로 하는 값을 가지도록 원-핫 엔코딩(one-hot encoding) 기법을 통해 스마트 컨트랙트의 구성요소를 66차원 벡터 형태로 변환하여 구현할 수 있다.Specifically, the components of the above-described execution code are one-hot encoding to obtain information on what actions the smart contract achieves its purpose with, so that the executed action is 1 and the unexecuted action is 0. One-hot encoding) can be implemented by converting the components of a smart contract into a 66-dimensional vector format.

여기서, 문맥정보와 관련되어, 동일한 구성요소를 지니는 스마트 컨트랙트라 해도, 실행코드(opcode)의 실행 순서에 따라 다른 결과를 낼 수 있다. 이러한 구성요소 정보의 한계점을 보완하기 위해, 문서 임베딩 기법을 활용하여 실행코드(opcode)의 문맥 정보를 추출한다.Here, in relation to context information, even if the smart contract has the same component, different results may be produced according to the execution order of the execution code (opcode). In order to compensate for the limitation of such component information, context information of an executable code (opcode) is extracted using a document embedding technique.

구체적으로 상술한 실행코드의 문맥정보는 Doc2Vec 알고리즘을 통해 벡터 형태로 변환하여 구할 수 있다. Doc2Vec 알고리즘은 문서 내에 포함된 단어의 순서를 고려해, 문맥을 분석하고 이를 벡터 형태로 변환하는 기법이다. 이를 적용하여 스마트 컨트랙트의 opcode를 실행 순서대로 나열된 문서에서 문맥 정보를 도출해 실수 값 벡터로 변환한다. 벡터의 차원은 임의로 설정이 가능하며, 일 실시예로 32차원의 벡터를 사용한다.Specifically, the context information of the execution code described above can be obtained by converting it into a vector form through the Doc2Vec algorithm. The Doc2Vec algorithm is a technique that analyzes the context by considering the order of words contained in a document and converts it into a vector form. By applying this, context information is derived from the documents listed in the order of execution of the opcode of the smart contract and converted into a real value vector. The dimension of the vector can be arbitrarily set, and a 32-dimensional vector is used as an example.

여기서, 길이정보란 실행코드의 길이를 의미하고, 실행코드 길이는 보통 스마트 컨트랙트를 이용한 계약 내용의 양에 따라 결정된다. 스마트 컨트랙트의 목적에 따라 기본적으로 작성되어야 하는 하위 컨트랙트 내용이 존재하며, 내용이 복잡해질 수록 그 실행코드의 길이는 길어지는 특징을 가진다.Here, the length information means the length of the execution code, and the length of the execution code is usually determined according to the amount of contract contents using the smart contract. Depending on the purpose of the smart contract, there are sub-contract contents that should be basically created, and the more complex the contents, the longer the execution code is.

구체적으로 상술한 실행코드의 길이정보는 이진코드(bytecode)의 문자열 길이와 스마트 컨트랙트의 행동 기록을 나타내는 실행코드(opcode) 문서의 길이 (실행해야 하는 동작의 개수)를 사용해 정수 값으로 구성된 2차원 벡터로 변환하여 사용할 수 있다.Specifically, the length information of the execution code described above is a two-dimensional consisting of integer values using the string length of the binary code (bytecode) and the length of the execution code (opcode) document representing the action record of the smart contract (the number of actions to be executed). It can be converted to a vector and used.

또한, 상기 소스코드로부터는 스마트 컨트랙트의 제목, 함수 명을 추출하여, 태그 정보를 생성한 뒤, 상술한 데이터셋에 추가한다.In addition, the title and function name of the smart contract are extracted from the source code, tag information is generated, and then added to the above-described data set.

여기서, 상기 소스코드로부터 생성되는 태그의 경우, 구체적으로 스마트 컨트랙트의 작성자가 부여한 스마트 컨트랙트의 제목 (contract name)과 작성자가 업로드한 소스코드에 포함된 함수 명(function name)을 추출한다. 이때, 보통 작성자가 사용하는 함수 명에 스마트 컨트랙트의 고유의 기능이나 특징이 반영될 수 있다는 점, 그리고 금융 사기 등에 사용되는 스마트 콘트랙트의 소스 코드에 동일한 형태의 기능들이 동일한 함수 명으로 기재되어 있을 확률이 높다는 점에서 함수 명을 태그 추천에 반영하는 의의가 있다.Here, in the case of a tag generated from the source code, specifically, a contract name given by the creator of the smart contract and a function name included in the source code uploaded by the creator are extracted. At this time, the fact that the function name normally used by the author can reflect the unique function or characteristic of the smart contract, and the probability that functions of the same type are described in the same function name in the source code of the smart contract used for financial fraud. In that it is high, it is meaningful to reflect the function name in tag recommendation.

더욱 구체적으로, 상기 태그 정보를 생성하기 위해, 우선적으로 블록체인에 저장된 스마트 컨트랙트 중, 제목 정보와 소스코드 정보가 포함된 스마트 컨트랙트 n개의 표본을 추출한다. 추출한 표본의 제목과 함수 명에서 사용된 핵심 단어를 얻기 위해, 먼저 불필요한 숫자, 특수문자를 제거하고 공백, 대문자를 기준으로 정규표현식을 사용해 단어를 생성한다. 생성된 단어는 줄임 표현이나 오타, 고유 단어 등이 포함되어 있어 전수 조사를 통해 줄임 표현의 통일화, 오타 수정, 고유 단어 제거 등의 처리 과정과 함께 m개의 대표성을 지니는 단어 선출 작업을 진행하여 구현될 수 있다.More specifically, to generate the tag information, first, among the smart contracts stored in the blockchain, n samples of smart contracts including title information and source code information are extracted. In order to obtain the key words used in the title and function names of the extracted samples, unnecessary numbers and special characters are first removed, and words are created using regular expressions based on spaces and capital letters. The generated word contains abbreviated expressions, typos, and unique words, so it will be implemented by proceeding with the process of unifying abbreviated expressions, correcting typos, and removing unique words through total investigation, and selecting m words with representativeness. I can.

결과적으로, 이렇게 모아진 데이터셋은 학습을 위한 학습 데이터셋과 평가를 위한 평가 데이터셋으로 분리되며, 이 중 학습 데이터셋은 후술하는 스마트 컨트랙트 추천 모델 학습부(1200)에서 학습 데이터로 사용되게 된다. 또한 상술한 평가 데이터셋은 추후 학습된 모델로부터 나온 결과를 평가하는 데 사용하게 된다.As a result, the collected data set is divided into a training data set for learning and an evaluation data set for evaluation, among which the training data set is used as training data in the smart contract recommendation model learning unit 1200 to be described later. In addition, the above-described evaluation dataset is used to evaluate the results from the trained model later.

또한, 스마트 컨트랙트 추천 모델 학습부(1200)는 제1 스마트 컨트랙트 분석부로부터 상기 학습 데이터셋을 입력받아, 특정 학습 모델을 사용하여 학습시키는 역할을 수행한다.In addition, the smart contract recommendation model learning unit 1200 receives the training data set from the first smart contract analysis unit and performs a role of learning using a specific learning model.

이 때 특정 학습 모델은 복수의 모델로 이루어지며, 상기 복수의 모델은 각각 딥 뉴럴 네트워크(Deep Neural Networks), 딥 협업 필터링(Deep Collaborative Filtering), KNN(K-Nearest Neighbors) 중 둘 이상을 선택적으로 조합하여 사용할 수 있다. At this time, the specific learning model is composed of a plurality of models, and each of the plurality of models selectively selects at least two of Deep Neural Networks, Deep Collaborative Filtering, and K-Nearest Neighbors (KNN). Can be used in combination.

상술한 복수의 모델에 대해서는 후술되는 도면 3의 설명 부분에서 구체적으로 설명하기로 한다.The above-described plurality of models will be described in detail in the description of FIG. 3 to be described later.

또한 스마트 컨트랙트 최적 모델 선택부(1300)는 상기 스마트 컨트랙트 추천 모델 학습부로부터 학습된 데이터와 상기 평가 데이터셋을 비교하여, 스마트 컨트랙트 태그를 추천할 수 있는 최적의 모델을 선택하는 역할을 수행한다.In addition, the smart contract optimal model selection unit 1300 performs a role of selecting an optimal model capable of recommending a smart contract tag by comparing the data learned from the smart contract recommendation model learning unit with the evaluation data set.

또한, 본 발명의 시스템을 통해 결과적으로 추천되는 태그는 하나의 스마트 컨트랙트 정보와 다수의 태그 정보간의 패턴을 분석하여 복수의 태그를 제안할 필요성이 있기 때문에, 추천 시스템(suggestion system) 알고리즘이 사용되는 것이 바람직하다.In addition, since it is necessary to propose a plurality of tags by analyzing a pattern between one smart contract information and a plurality of tag information, the tag recommended as a result through the system of the present invention, a recommendation system algorithm is used. It is desirable.

구체적으로, 복수의 모델로부터 학습된 데이터의 결과와 평가 데이터셋을 비교하여, 복수의 모델 중 가장 성능이 우수한 모델을 선택하게 된다. 이렇게 선택된 모델의 경우, 후술하는 스마트 컨트랙트 태그 추천부(2000)에 적용되게 된다.Specifically, the result of the data learned from the plurality of models and the evaluation data set are compared to select a model with the best performance among the plurality of models. In the case of the selected model, it is applied to the smart contract tag recommendation unit 2000 to be described later.

즉 상술한 것과 같이 추천 시스템 알고리즘 등에 의해, 성능이 가장 우수한 모델을 선택하게 되면, 해당 모델이 바로 최적의 모델이라 명할 수 있게 된다. 자세히 설명하지 않았지만 추천 시스템 알고리즘이 아니라 다른 형태의 성능평가모델을 도입하여 적용할 수도 있다.That is, as described above, when a model having the best performance is selected by the recommendation system algorithm or the like, the model can be called as an optimal model. Although not described in detail, other types of performance evaluation models may be introduced and applied instead of the recommended system algorithm.

또한 도면 2의 하단 부분에 도시된 스마트 컨트랙트 태그 추천부(2000)은 제2 스마트 컨트랙트 분석부(2100), 스마트 컨트랙트 모델 적용부(2200) 및 태그 추천 적용부(2300)를 포함할 수 있다.In addition, the smart contract tag recommendation unit 2000 shown in the lower part of FIG. 2 may include a second smart contract analysis unit 2100, a smart contract model application unit 2200, and a tag recommendation application unit 2300.

구체적으로, 제2 스마트 컨트랙트 분석부(2100)은 사용자가 의뢰한 스마트 컨트랙트로부터 복수의 파라미터를 추출하는 역할을 수행한다.Specifically, the second smart contract analysis unit 2100 serves to extract a plurality of parameters from a smart contract requested by a user.

여기서 이야기하는 스마트 컨트랙트는 앞서 상술한 제1 스마트 컨트랙트 분석부(1100)에서 언급된 스마트 컨트랙트와 다른 의미로, 사용자가 분석을 의뢰하고자 하는 스마트 컨트랙트이며, 현실적으로 대부분 소스코드가 없는 바이너리 코드의 형태일 것이다.The smart contract discussed here has a different meaning from the smart contract mentioned in the above-described first smart contract analysis unit 1100, and is a smart contract that the user wants to request for analysis, and in reality, it is mostly in the form of binary code without source code. will be.

그러므로, 제2 스마트 컨트랙트 분석부(2100)에서 추출된 파라미터는 바이너리 코드에서 추출되는 실행코드의 형태일 것이고, 결과적으로 추출된 정보들은 구성요소, 문맥정보, 길이정보가 바람직하다.Therefore, the parameter extracted by the second smart contract analysis unit 2100 will be in the form of an executable code extracted from a binary code, and the resulting extracted information is preferably a component, context information, and length information.

이후 해당 추출된 정보들을 이어붙이기(concatenate)한 뒤, 벡터화한다.After that, the extracted information is concatenated and then vectorized.

또한, 스마트 컨트랙트 모델 적용부(2200)는 상기 제2 스마트 컨트랙트 분석부(2100)로부터 추출된 파라미터(추출된 정보들)에 상기 스마트 컨트랙트 최적 모델 선택부(1300)로부터 선택된 최적의 모델을 적용하는 역할을 수행한다.In addition, the smart contract model application unit 2200 applies the optimal model selected from the smart contract optimal model selection unit 1300 to the parameters (extracted information) extracted from the second smart contract analysis unit 2100. Play a role.

또한 태그 추천 적용부(2300)는 상기 스마트 컨트랙트 모델 적용부(2200)으로부터 선정된 태그를 추천하는 역할을 수행한다.In addition, the tag recommendation application unit 2300 serves to recommend a tag selected from the smart contract model application unit 2200.

구체적으로 태그 추천 적용부(2300 )상위 k 개의 태그만을 추출하는 Top-k selection 기법을 적용한 뒤, 결과적으로 추천할 태그를 선택하여 사용자에게 매칭시키게 된다.Specifically, the tag recommendation application unit 2300 applies a Top-k selection technique that extracts only the top k tags, and as a result, a tag to be recommended is selected and matched to a user.

마지막으로, 상술했던 특정 학습 모델의 일실시예로 제시된 딥 뉴럴 네트워크(Deep Neural Networks), 딥 협업 필터링(Deep Collaborative Filtering), KNN(K-Nearest Neighbors)에 대해서는 도면 3에서 딥 협업 필터링을 설명하면서, 같이 자세하게 설명하도록 한다.Finally, for Deep Neural Networks, Deep Collaborative Filtering, and K-Nearest Neighbors (KNN) presented as an embodiment of the specific learning model described above, while explaining deep collaboration filtering in FIG. , Please explain in detail.

도면 2에서는 이러한 각 구성요소들의 동작구간을 점선(dot-line)으로 구분하여 도시하였으며, 혹 도면과 세부 기능의 표현에 차이가 있는 부분에 대해서는 발명을 실시하기 위한 구체적인 내용 부분을 우선적으로 참고하기로 한다.In Figure 2, the operation section of each of these components is shown by dividing it with a dotted line, and for a part where there is a difference in the representation of detailed functions from the drawing, first refer to the specific content for carrying out the invention. To

도 3은 딥 협업 필터링(Deep Collaborative Filtering) 모델의 개념도이다.3 is a conceptual diagram of a deep collaborative filtering model.

도면 3에서는 상술한 복수의 모델 중 본 발명에서 사용되고 있는 딥 협업 필터링(Deep Collaborative Filtering)을 설명하고 있다. 딥 협업 필터링은 사용자의 평가 정보를 활용하여 추천하는 것이 특징인 협업 필터링(Collaborative Filtering)에 딥 러닝 알고리즘이 적용된 방법이다. 사용자가 직접 선택한 각 아이템에 대한 등급 정보(rating 정보)와 함께 사용자를 표현하는 부가정보와 아이템에 대한 부가정보를 함께 고려한다는 특징이 있다. 또한, 본 발명에서는 딥러닝 알고리즘 중 데이터의 잡음을 최소화하여 의미있는 저차원의 벡터로 재표현하는 방법인 주변소음 제거 오토 엔코더(Marginalized Denoising AutoEncoder)를 사용하여, 실행코드의 정보와 태그 정보를 잡음을 최소화한 임의의 f차원의 벡터로 재표현하여 분석에 사용할 수 있다. 이러한 오토 엔코더를 사용함으로써, 사용하지 않은 경우보다 정확도가 높고, 정교한 결과를 산출한다. 결과적으로, 실행코드 정보와 태그 정보 각각에 오토엔코더(AutoEncoder)를 적용하여 축소된 f차원의 벡터를 산출하고 두 벡터의 곱을 연산함으로써, 태그 정보가 실행코드 정보에 얼마나 적합한가를 나타내는 등급(rating)을 산출할 수 있다. FIG. 3 illustrates deep collaborative filtering used in the present invention among the plurality of models described above. Deep collaborative filtering is a method in which a deep learning algorithm is applied to collaborative filtering, which is characterized by recommending using user evaluation information. The characteristic is that the additional information representing the user and the additional information on the item are considered together with rating information for each item selected by the user. In addition, in the present invention, a marginalized denoising autoencoder, which is a method of minimizing data noise among deep learning algorithms and re-expressing them as meaningful low-dimensional vectors, is used to determine execution code information and tag information. It can be used for analysis by re-expressing it as an arbitrary f-dimensional vector that minimizes. By using such an auto encoder, the accuracy is higher and more precise results are produced than when not used. As a result, a reduced f-dimensional vector is calculated by applying an AutoEncoder to each of the execution code information and the tag information, and the product of the two vectors is calculated to indicate how appropriate the tag information is to the execution code information. Can be calculated.

또한 상술했던 주변소음 제거 오토 엔코더에 대해서 부연하고자 한다. 기본적으로, 오토엔코더랑 1개의 피드포워드 레이어(엔코더)와 이에 대한 역순의 레이어(디코더)로 구성된 딥러닝 모델이다. 즉, 입력 값과 출력 값을 동일한 데이터로 설정하여 입력 값의 차원보다 적은 차원으로 데이터를 엔코딩(encoding)하고 엔코딩(encoding)된 값으로부터 다시 디코팅(decoding)하여 원래의 데이터를 산출할 수 있도록 설계하는 것이 특징이다. 이 과정에서 적은 차원으로 변환된 데이터는 입력 값에 대한 정보를 내재하면서도 축약된 형태라고 볼 수 있다. 주변소음 제거 오토 엔코더는 오토 엔코더의 변형된 알고리즘으로 기본적으로 오토 엔코더의 네트워크 구조를 따르지만, 입력 값으로 원 데이터에 임의적인 잡음을 추가한 데이터를 입력하며, 출력 값으로 원 데이터를 산출하도록 하여, 모델 자체적으로 잡음을 최소화하도록 학습하는 알고리즘이다.Also, I would like to amplify the above-described ambient noise removal auto encoder. Basically, it is a deep learning model composed of an autoencoder, one feedforward layer (encoder), and the reversed layer (decoder). In other words, by setting the input value and the output value to the same data, the data is encoded in a dimension less than the dimension of the input value, and the original data can be calculated by re-decoding from the encoded value. It is characterized by design. In this process, the data converted to a smaller dimension can be seen as an abbreviated form while containing information about the input value. The ambient noise removal auto encoder is a modified algorithm of the auto encoder and basically follows the network structure of the auto encoder, but it inputs data by adding random noise to the original data as an input value, and calculates the original data as an output value. It is an algorithm that learns to minimize noise by itself.

다음으로는, 특정 학습 모델의 또다른 일실시예로 제시된 딥 뉴럴 네트워크(Deep Neural Networks)에 대해서 설명한다.Next, deep neural networks proposed as another embodiment of a specific learning model will be described.

더욱 구체적으로 본 발명에서는 랭킹 손실 함수(ranking loss function)가 더 적용된 딥 뉴럴 네트워크 방식을 사용하는 것이 바람직하다.More specifically, in the present invention, it is preferable to use a deep neural network method to which a ranking loss function is further applied.

딥러닝의 레이어 중 피드 포워드 레이어로 구성된 네트워크에 손실 함수(loss function)로 랭킹 손실 함수를 사용하는 모델이다. 여기서 랭킹 손실 함수는 일반적인 손실 함수와는 다르게 연산되어 모델의 파라미터를 갱신할 때 생길수 있는 문제점을 해결한다. 구체적으로 본 발명에는 태그를 추천할 때, Top-k Selection 과정을 수행하게 된다. 즉, 상위 k개의 태그만 선택하여 손실(loss)을 계산하게 되면 top-k를 선택하는 과정에서 미분 계산이 되지 않아 파라미터를 갱신하기 어려운 문제를 해결할 수 있다. 또한 학습된 모델은 실행 코드 정보를 입력으로 받아 딥러닝 알고리즘을 거쳐(행렬 연산) 전체 태그의 수와 동일한 벡터를 산출하고 이는 곧 등급(rating)과 동일한 역할을 하게 된다.It is a model that uses a ranking loss function as a loss function in a network composed of a feed forward layer among deep learning layers. Here, the ranking loss function is calculated differently from the general loss function and solves a problem that may occur when the parameters of the model are updated. Specifically, in the present invention, when recommending a tag, a top-k selection process is performed. That is, if only the top k tags are selected and the loss is calculated, a problem in which it is difficult to update the parameter can be solved because differential calculation is not performed in the process of selecting top-k. In addition, the trained model receives execution code information as input and passes through a deep learning algorithm (matrix operation) to calculate a vector equal to the total number of tags, which soon plays the same role as a rating.

마지막으로, 특정 학습 모델의 또다른 일실시예로 제시된 KNN(K-Nearest Neighbors)에 대해서 설명한다.Finally, a description will be given of KNN (K-Nearest Neighbors) proposed as another embodiment of a specific learning model.

KNN은 각 스마트 컨트랙트 간의 유사도를 측정하여 유사한 스마트 컨트랙트 k개를 선정하고, 선정된 집단 내에서 빈번히 사용된 태그(tag)를 순서대로 나열하여 제공한다. 이러한 KNN 모델링의 경우, 별도의 추가적인 모델 파라미터가 없어 학습 과정이 매우 짧다는 장점이 있다. 반면 KNN의 경우, 추론 과정에서 반복적인 유사도 측정 연산이 필요해 속도 측면에서 다른 모델링 기법들에 비해 상대적으로 낮은 성능을 보이는 단점이 있다.KNN measures the similarity between each smart contract, selects k similar smart contracts, and provides tags that are frequently used within the selected group in order. In the case of such KNN modeling, there is an advantage that the learning process is very short since there is no additional model parameter. On the other hand, KNN has a disadvantage of showing relatively low performance compared to other modeling techniques in terms of speed because it requires repetitive similarity measurement calculations in the inference process.

또한 본 발명에서 언급된 사용자 디바이스(700)은 사용자가 스마트 컨트랙트를 본 발명의 시스템에 의뢰하는 디바이스와 스마트 컨트랙트를 블록체인 시스템으로부터 수용하는 디바이스를 모두 포함하는 구성이다. 즉, 사용자 디바이스(700)는 스마트폰, 패드, 인터넷에 접속이 가능한 노트북 등이 모두 가능하며, 더 크게 보아서는 데스크탑 환경의 컴퓨팅 디바이스 들도 모두 포함될 수 있다.In addition, the user device 700 mentioned in the present invention includes both a device for which a user requests a smart contract to the system of the present invention and a device for accepting a smart contract from a blockchain system. That is, the user device 700 may be a smart phone, a pad, a notebook capable of accessing the Internet, and so on, and in a larger view, all computing devices in a desktop environment may be included.

마지막으로, 본 발명을 실제 스마트 컨트랙트의 분석에 적용한 실시예를 설명하기로 한다.Finally, an embodiment in which the present invention is applied to the analysis of an actual smart contract will be described.

본 발명의 실제 적용 과정에서 이더리움 블록체인에 저장된 스마트 컨트랙트 중, 제목과 소스코드 정보를 보유하고 있는 스마트 컨트랙트 34,397개를 추출하여 예제 데이터로 사용하였다. 이때 추출하여 분석한 스마트 컨트랙트 34,397개의 제목과 함수 명에 포함된 단어는 약 16,000개로, 이 중 전수조사를 통해 오타 수정, 유사한 단어 병합 등의 처리를 거쳐, 계약 내용을 대표할 수 있는 단어를 선정한 결과, 태그는 184개의 단어로 구성되는 것을 확인하였다. 이 때, 단어의 선정 기준은 ICO, SALE등과 같이 스마트 컨트랙트의 목적을 대표하는 단어와, Refund, Freeze 등과 같이 특정 행위를 묘사할 수 있는 단어로 선정하였다. 이후 본 발명의 복수의 모델들을 트레이닝하는 과정에서 전체 34,397개의 데이터셋 중 80%에 해당하는 27,517개의 데이터셋만을 사용하여 학습하며, 나머지 20%에 해당하는 6,880개의 데이터셋은 성능 평가 과정에서 사용하도록 하였다. 이렇게 데이터를 분리함으로써 시스템 평가를 보다 공평하게 하며, 구축된 본 발명의 학습모델링이 강건(robust)함을 평가할 수 있었다.In the actual application process of the present invention, among the smart contracts stored in the Ethereum blockchain, 34,397 smart contracts containing title and source code information were extracted and used as example data. At this time, 34,397 smart contract titles and words included in function names extracted and analyzed are about 16,000, of which words that can represent the contract contents are selected through processing such as correcting typos and merging similar words through a total investigation. As a result, it was confirmed that the tag was composed of 184 words. At this time, the criteria for selecting words were selected as words representing the purpose of the smart contract, such as ICO and SALE, and words that can describe specific actions such as Refund and Freeze. Thereafter, in the process of training a plurality of models of the present invention, only 27,517 data sets corresponding to 80% of the total 34,397 data sets are used to learn, and 6,880 data sets corresponding to the remaining 20% are used in the performance evaluation process. I did. By separating the data in this way, the system evaluation was made more fair, and it was possible to evaluate the robustness of the constructed learning modeling of the present invention.

이 때, 트레이닝된 모델의 성능평가에는 사전에 분류해둔 테스트용 스마트 컨트랙트 데이터를 사용하여, 각 스마트 컨트랙트마다 10개의 태그를 생성하고, 다음의 추천 시스템의 성능 평가 지표를 활용하여 모델의 성능을 비교하여 가장 좋은 성능을 보이는 알고리즘을 사용하여서, 사용자의 스마트 컨트랙트에서 적절한 태그를 추천하는 데 사용하였다.At this time, for the performance evaluation of the trained model, 10 tags are generated for each smart contract by using pre-categorized test smart contract data, and the performance of the model is compared using the performance evaluation index of the following recommendation system. Therefore, the algorithm showing the best performance was used to recommend appropriate tags in the user's smart contract.

본 발명의 일실시예에 따른 자동화된 스마트 컨트랙트 추천 시스템을 이루는 개별 혹은 선택적으로 조합된 구성요소들은 컴퓨터와의 결합을 통해 실행시키기 위한 저장매체에 저장된 컴퓨터 프로그램으로 구현될 수 있다.Individual or selectively combined components constituting the automated smart contract recommendation system according to an embodiment of the present invention may be implemented as a computer program stored in a storage medium for execution through a combination with a computer.

또한, 본 발명의 일실시예에 따른 자동화된 스마트 컨트랙트 추천 시스템을 이루는 개별 혹은 선택적으로 조합된 구성요소들은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리, SSD(Solid State Drive) 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.In addition, individual or selectively combined components constituting the automated smart contract recommendation system according to an embodiment of the present invention may be implemented in the form of program instructions that can be executed through various computer means and recorded in a computer-readable medium. have. The computer-readable medium may include program instructions, data files, data structures, and the like alone or in combination. The program instructions recorded on the medium may be specially designed and configured for the present invention, or may be known and usable to those skilled in computer software. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tapes, optical media such as CD-ROMs and DVDs, and magnetic media such as floptical disks. -Includes magneto-optical media, and hardware devices specially configured to store and execute program instructions such as ROM, RAM, flash memory, solid state drive (SSD), and the like. Examples of the program instructions include not only machine language codes such as those produced by a compiler, but also high-level language codes that can be executed by a computer using an interpreter or the like.

또한 본 발명에서 사용되는 컴퓨터 또는 컴퓨터 프로그램과 같은 구성은 이동통신 단말기의 형태가 스마트폰과 같이 변형되며, 컴퓨팅 파워가 획기적으로 커짐에 따라, 스마트폰 또는 스마트폰에서 실행되는 어플리케이션과 같은 의미로도 사용될 수 있다.In addition, a configuration such as a computer or a computer program used in the present invention has the same meaning as a smart phone or an application running on a smart phone, as the shape of the mobile communication terminal is transformed like a smart phone, and the computing power is dramatically increased. Can be used.

상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다. Although the above has been described with reference to preferred embodiments of the present invention, those skilled in the art will variously modify and change the present invention within the scope not departing from the spirit and scope of the present invention described in the following claims. You will understand that you can do it.

10000: 스마트 컨트랙트 추천 시스템
1000: 스마트 컨트랙트 태그 추천 모델 빌드업부
1100: 제1 스마트 컨트랙트 분석부
1200: 스마트 컨트랙트 추천 모델 학습부
1300: 스마트 컨트랙트 최적모델 선택부
2000: 스마트 컨트랙트 태그 추천부
2100: 제2 스마트 컨트랙트 분석부
2200: 스마트 컨트랙트 모델 적용부
2300: 태그 추천 적용부
700: 사용자 디바이스
10000: Smart contract recommendation system
1000: Smart contract tag recommendation model build-up unit
1100: first smart contract analysis unit
1200: Smart contract recommendation model learning unit
1300: Smart contract optimal model selection unit
2000: Smart contract tag recommendation department
2100: second smart contract analysis unit
2200: Smart contract model application unit
2300: tag recommendation application unit
700: user device

Claims (5)

사용자의 스마트 컨트랙트를 분석하여 태그를 추천하는 스마트 컨트랙트 추천 시스템(10000)에 있어서,
상기 추천 시스템(10000)은
학습이 될 복수의 스마트 컨트랙트로부터 복수의 파라미터를 추출하여 복수의 학습 및 평가 데이터셋을 생성하는 제1 스마트 컨트랙트 분석부(1100);
제1 스마트 컨트랙트 분석부로부터 상기 학습 데이터셋을 입력받아, 특정 학습 모델을 사용하여 학습시키는 스마트 컨트랙트 추천 모델 학습부(1200);
및 상기 스마트 컨트랙트 추천 모델 학습부로부터 학습된 데이터와 상기 평가 데이터셋을 비교하여, 스마트 컨트랙트 태그를 추천할 수 있는 모델을 선택하는 스마트 컨트랙트 최적 모델 선택부(1300)을 포함하고,
스마트 컨트랙트로부터 추출되는 상기 복수의 파라미터는 스마트 컨트랙트의 바이너리 코드를 디스어셈블(disassemble)한 실행코드(opcode), 스마트 컨트랙트의 소스 코드로부터 추출한 정보를 사용하고,
상기 실행코드(opcode)로부터 추출되는 정보는 길이, 문맥, 구성요소를 포함하며, 상기 소스코드로부터 추출되는 정보는 스마트 컨트랙트의 제목(contract name) 또는 함수 명(function name)을 포함하고,
상기 실행코드의 구성요소는 원-핫 엔코딩(one-hot encoding)기법으로 구현되는 것을 특징으로 하는 스마트 컨트랙트 추천 시스템.
In the smart contract recommendation system 10000 that recommends tags by analyzing a user's smart contract,
The recommendation system 10000
A first smart contract analysis unit 1100 for generating a plurality of learning and evaluation data sets by extracting a plurality of parameters from a plurality of smart contracts to be learned;
A smart contract recommendation model learning unit 1200 for receiving the training data set from a first smart contract analysis unit and learning it using a specific learning model;
And a smart contract optimal model selection unit 1300 that compares data learned from the smart contract recommendation model learning unit with the evaluation data set, and selects a model capable of recommending a smart contract tag,
The plurality of parameters extracted from the smart contract use the executable code (opcode) disassembled the binary code of the smart contract, and information extracted from the source code of the smart contract,
The information extracted from the execution code (opcode) includes a length, a context, and a component, and the information extracted from the source code includes a title (contract name) or a function name (function name) of the smart contract,
The component of the execution code is a smart contract recommendation system, characterized in that implemented by a one-hot encoding (one-hot encoding) technique.
사용자의 스마트 컨트랙트를 분석하여 태그를 추천하는 스마트 컨트랙트 추천 시스템(10000)에 있어서,
상기 추천 시스템(10000)은
복수의 스마트 컨트랙트로부터 복수의 파라미터를 추출하여 복수의 모델 학습을 통해 태그를 추천하는 스마트 컨트랙트 최적 모델 선택부(1300);
사용자가 스마트 컨트랙트로부터 복수의 파라미터를 추출하는 제2 스마트 컨트랙트 분석부(2100);
상기 제2 스마트 컨트랙트 분석부(2100)로부터 추출된 파라미터에 상기 스마트 컨트랙트 최적 모델 선택부(1300)로부터 선택된 모델을 적용하는 스마트 컨트랙트 모델 적용부(2200);
및 상기 스마트 컨트랙트 모델 적용부(2200)으로부터 선정된 태그를 추천하는 태그 추천 적용부(2300)를 포함하고,
스마트 컨트랙트로부터 추출되는 상기 복수의 파라미터는 스마트 컨트랙트의 바이너리 코드를 디스어셈블(disassemble)한 실행코드(opcode), 스마트 컨트랙트의 소스 코드로부터 추출한 정보를 사용하고,
상기 실행코드(opcode)로부터 추출되는 정보는 길이, 문맥, 구성요소를 포함하며, 상기 소스코드로부터 추출되는 정보는 스마트 컨트랙트의 제목(contract name) 또는 함수 명(function name)을 포함하고,
상기 실행코드의 구성요소는 원-핫 엔코딩(one-hot encoding)기법으로 구현되는 것을 특징으로 하는 스마트 컨트랙트 추천 시스템.
In the smart contract recommendation system 10000 that recommends tags by analyzing a user's smart contract,
The recommendation system 10000
A smart contract optimal model selection unit 1300 for extracting a plurality of parameters from a plurality of smart contracts and recommending a tag through learning a plurality of models;
A second smart contract analysis unit 2100 for a user to extract a plurality of parameters from the smart contract;
A smart contract model application unit 2200 for applying the model selected from the smart contract optimal model selection unit 1300 to the parameters extracted from the second smart contract analysis unit 2100;
And a tag recommendation application unit 2300 for recommending a tag selected from the smart contract model application unit 2200,
The plurality of parameters extracted from the smart contract use the executable code (opcode) disassembled the binary code of the smart contract, and information extracted from the source code of the smart contract,
The information extracted from the execution code (opcode) includes a length, a context, and a component, and the information extracted from the source code includes a title (contract name) or a function name (function name) of the smart contract,
The component of the execution code is a smart contract recommendation system, characterized in that implemented by a one-hot encoding (one-hot encoding) technique.
삭제delete 제1항에 있어서,
상기 특정 학습 모델은 복수의 모델로 이루어지며, 상기 복수의 모델은 각각 딥 뉴럴 네트워크(Deep Neural Networks), 딥 협업 필터링(Deep Collaborative Filtering), KNN(K-Nearest Neighbors) 중 둘 이상을 선택적으로 조합하여 사용하는 것을 특징으로 하는 스마트 컨트랙트 추천 시스템.
The method of claim 1,
The specific learning model consists of a plurality of models, and each of the plurality of models selectively combines at least two of Deep Neural Networks, Deep Collaborative Filtering, and K-Nearest Neighbors (KNN). Smart contract recommendation system, characterized in that to use.
삭제delete
KR1020180149850A 2018-11-28 2018-11-28 Automated Smart Contract Tagging System based on Tag Recommendation Model KR102184772B1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020180149850A KR102184772B1 (en) 2018-11-28 2018-11-28 Automated Smart Contract Tagging System based on Tag Recommendation Model
PCT/KR2019/007440 WO2020111424A1 (en) 2018-11-28 2019-06-20 Automated system for generating and recommending smart contract tag using tag recommendation model

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180149850A KR102184772B1 (en) 2018-11-28 2018-11-28 Automated Smart Contract Tagging System based on Tag Recommendation Model

Publications (2)

Publication Number Publication Date
KR20200068775A KR20200068775A (en) 2020-06-16
KR102184772B1 true KR102184772B1 (en) 2020-12-01

Family

ID=70853815

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180149850A KR102184772B1 (en) 2018-11-28 2018-11-28 Automated Smart Contract Tagging System based on Tag Recommendation Model

Country Status (2)

Country Link
KR (1) KR102184772B1 (en)
WO (1) WO2020111424A1 (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111861667A (en) * 2020-07-21 2020-10-30 上海仙豆智能机器人有限公司 Vehicle recommendation method and device, electronic equipment and storage medium
US11909482B2 (en) * 2020-08-18 2024-02-20 Qualcomm Incorporated Federated learning for client-specific neural network parameter generation for wireless communication
CN113110843B (en) * 2021-03-05 2023-04-11 卓尔智联(武汉)研究院有限公司 Contract generation model training method, contract generation method and electronic equipment
CN113051144B (en) * 2021-03-26 2022-02-08 中山大学 Intelligent contract recommendation method and device

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018137564A1 (en) 2017-01-26 2018-08-02 阿里巴巴集团控股有限公司 Service processing method and apparatus
US20180267781A1 (en) * 2017-03-20 2018-09-20 Coursera Inc. Code generation for isomorphic data fetching

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101933953B1 (en) * 2016-05-26 2019-01-04 연세대학교 원주산학협력단 Software domain topics extraction system using PageRank and topic modeling
KR20180068888A (en) 2016-12-14 2018-06-22 성신여자대학교 산학협력단 Method and apparatus for purchasing game item using smart contract
KR101778768B1 (en) 2017-04-21 2017-09-18 (주)케이사인 METHOD OF CONTROLLING IoT DEVICE AND IoT DEVICE CONTROL SYSTEM FOR PERFORMING THE SAME

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018137564A1 (en) 2017-01-26 2018-08-02 阿里巴巴集团控股有限公司 Service processing method and apparatus
US20180267781A1 (en) * 2017-03-20 2018-09-20 Coursera Inc. Code generation for isomorphic data fetching

Also Published As

Publication number Publication date
KR20200068775A (en) 2020-06-16
WO2020111424A1 (en) 2020-06-04

Similar Documents

Publication Publication Date Title
KR102184772B1 (en) Automated Smart Contract Tagging System based on Tag Recommendation Model
Bell Machine learning: hands-on for developers and technical professionals
Sewak et al. Practical convolutional neural networks: implement advanced deep learning models using Python
US11062179B2 (en) Method and device for generative adversarial network training
WO2018188576A1 (en) Resource pushing method and device
CA3087534C (en) System and method for information extraction with character level features
CN110852110B (en) Target sentence extraction method, question generation method, and information processing apparatus
Sarkar et al. Ensemble Machine Learning Cookbook: Over 35 practical recipes to explore ensemble machine learning techniques using Python
Banik Hands-on recommendation systems with Python: start building powerful and personalized, recommendation engines with Python
Layton Learning data mining with python
CN110490304B (en) Data processing method and device
Barnes Microsoft Azure essentials Azure machine learning
US8463591B1 (en) Efficient polynomial mapping of data for use with linear support vector machines
CN110162609B (en) Method and device for recommending consultation problems to user
Klaas Machine learning for finance: principles and practice for financial insiders
De Marchi et al. Hands-On Neural Networks: Learn how to build and train your first neural network model using Python
US20230281247A1 (en) Video retrieval method and apparatus using vectorizing segmented videos
Ciaburro et al. Python Machine Learning Cookbook: Over 100 recipes to progress from smart data analytics to deep learning using real-world datasets
Ravichandiran Hands-on meta learning with Python: meta learning using one-shot learning, MAML, Reptile, and Meta-SGD with TensorFlow
CN117056575B (en) Method for data acquisition based on intelligent book recommendation system
CN109902162B (en) Text similarity identification method based on digital fingerprints, storage medium and device
Gokhale et al. AbhAS: A novel realistic image splicing forensics dataset
Wang et al. Numerical Machine Learning
Peeperkorn et al. Conformance checking using activity and trace embeddings
Nickerson et al. Banksformer: A deep generative model for synthetic transaction sequences

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant