KR20200068775A - 태그 추천 모델을 이용한 자동화된 스마트 컨트랙트 태그 생성 및 추천 시스템 - Google Patents

태그 추천 모델을 이용한 자동화된 스마트 컨트랙트 태그 생성 및 추천 시스템 Download PDF

Info

Publication number
KR20200068775A
KR20200068775A KR1020180149850A KR20180149850A KR20200068775A KR 20200068775 A KR20200068775 A KR 20200068775A KR 1020180149850 A KR1020180149850 A KR 1020180149850A KR 20180149850 A KR20180149850 A KR 20180149850A KR 20200068775 A KR20200068775 A KR 20200068775A
Authority
KR
South Korea
Prior art keywords
smart contract
model
learning
smart
tag
Prior art date
Application number
KR1020180149850A
Other languages
English (en)
Other versions
KR102184772B1 (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 KR1020180149850A priority Critical patent/KR102184772B1/ko
Priority to PCT/KR2019/007440 priority patent/WO2020111424A1/ko
Publication of KR20200068775A publication Critical patent/KR20200068775A/ko
Application granted granted Critical
Publication of KR102184772B1 publication Critical patent/KR102184772B1/ko

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

사용자의 스마트 컨트랙트를 분석하여 태그를 추천하는 스마트 컨트랙트 추천 시스템이 개시된다. 이미 알려진 스마트 컨트랙트들을 분석하여 태그를 추출할 수 있는 여러가지 학습방법들을 제시하고, 학습된 모델들을 사용하여, 사용자가 분석을 원하는 스마트 컨트랙트를 본 발명의 시스템에 입력시키면, 해당 스마트 컨트랙트에 매칭되는 태그를 사용자에게 추천하여, 결과적으로 사용자가 신뢰할 수 있는 스마트 컨트랙트를 쉽고 빠르게 확인할 수 있는 장점이 있다.

Description

태그 추천 모델을 이용한 자동화된 스마트 컨트랙트 태그 생성 및 추천 시스템 {Automated Smart Contract Tagging System based on Tag Recommendation Model}
본 발명은 자동화된 스마트 컨트랙트 추천 시스템에 관한 것으로, 더욱 상세하게는 스마트 컨트랙트의 정보로부터 태그(tag) 방식을 활용하여 스마트 컨트랙트를 자동으로 분류/분별하거나 사용자에게 추천하는 방법과 시스템에 관한 것이다.
스마트 컨트랙트(smart contract)란, 이더리움(ethereum) 상에서 사전에 정의된 조건을 만족할 경우 작성된 계약 내용을 자동으로 이행하는 컴퓨터 프로그램으로 정의될 수 있다. 블록체인(Blockchain) 상에서 자동으로 작동해야하는 업무를 처리할 뿐만 아니라, 암호화폐에 대한 처리도 가능하기 때문에 ICO(Initial Coin Offering), 이더리움 토큰(token) 발행, 도박 사이트 운영 등 다양한 목적으로 사용되고 있다.
이러한 스마트 컨트랙트는 전송받은 이더리움에 대한 처리가 가능하기 때문에, 스마트 컨트랙트가 악용되는 경우, 폰지(ponzi), 피라미드 방식(pyramid scheme) 등의 금융 사기 문제가 발생할 수 있다.
또한, 스마트 컨트랙트가 어떠한 내용으로 작성되어 있는지 확인하기 위해서는 블록체인에 저장된 실행파일 형식의 실행코드를 해석하거나, 작성자가 업로드한 소스 코드(source code)를 해석해야 하는 번거로움이 있으며 사용자에게 전문 지식이 없을 경우 아예 해석을 할 수 없다는 문제가 있다.
결과적으로 스마트 컨트랙트를 이용한 서비스 제공자와 서비스 이용자 간의 정보의 비대칭성으로 인한 피해를 줄이기 위해서는, 스마트 컨트랙트의 내용을 규명할 수 있는 정보를 제공할 필요가 있다.
공개번호 제10-2018-0068888호, 스마트 컨트랙트를 이용한 게임 아이템 구매 방법 및 장치 등록번호 제10-1778768호, IoT 기기 제어 방법 및 시스템
상기와 같은 문제들을 해결하기 위한 본 발명의 목적은, 자동화된 스마트 컨트랙트의 태그를 추천할 수 있는 시스템을 제공하는데 있다.
상기 목적을 달성하기 위한 본 발명은, 학습이 될 복수의 스마트 컨트랙트로부터 복수의 파라미터를 추출하여 복수의 학습 및 평가 데이터셋을 생성하는 제1 스마트 컨트랙트 분석부(1100), 제1 스마트 컨트랙트 분석부로부터 상기 학습 데이터셋을 입력받아, 특정 학습 모델을 사용하여 학습시키는 스마트 컨트랙트 추천 모델 학습부(1200) 및 상기 스마트 컨트랙트 추천 모델 학습부로부터 학습된 데이터와 상기 평가 데이터셋을 비교하여, 스마트 컨트랙트 태그를 추천할 수 있는 최적의 모델을 선택하는 스마트 컨트랙트 최적 모델 선택부(1300)를 포함하는 것을 특징으로 한다.
또한, 본 발명은 복수의 스마트 컨트랙트로부터 복수의 파라미터를 추출하여 복수의 모델 학습을 통해 최적의 태그를 추천하는 스마트 컨트랙트 최적 모델 선택부(1300), 사용자가 스마트 컨트랙트로부터 복수의 파라미터를 추출하는 제2 스마트 컨트랙트 분석부(2100), 상기 제2 스마트 컨트랙트 분석부(2100)로부터 추출된 파라미터에 상기 스마트 컨트랙트 최적 모델 선택부(1300)로부터 선택된 최적의 모델을 적용하는 스마트 컨트랙트 모델 적용부(2200) 및 상기 스마트 컨트랙트 모델 적용부(2200)으로부터 선정된 태그를 추천하는 태그 추천 적용부(2300)를 포함하는 것을 특징으로 한다.
또한, 스마트 컨트랙트로부터 추출되는 복수의 파라미터는 스마트 컨트랙트의 바이너리 코드를 디스어셈블(disassemble)한 실행코드(opcode), 스마트 컨트랙트의 소스 코드로부터 추출한 정보를 사용하는 것을 특징으로 한다.
또한, 상기 특정 학습 모델은 복수의 모델로 이루어지며, 상기 복수의 모델은 각각 딥 뉴럴 네트워크(Deep Neural Networks), 딥 협업 필터링(Deep Collaborative Filtering), KNN(K-Nearest Neighbors) 중 둘 이상을 선택적으로 조합하여 사용하는 것을 특징으로 한다.
또한, 상기 실행코드(opcode)로부터 추출되는 정보는 길이, 문맥, 구성요소를 포함하며,상기 소스코트로부터 추출되는 정보는 스마트 컨트랙트의 제목(contract name) 또는 함수 명(function name)을 포함하는 것을 특징으로 한다.
상기와 같은 본 발명에 따른 스마트 컨트랙트 추천 시스템을 이용할 경우에는 사용자에게 스마트 컨트랙트를 쉽게 구분하거나 구별할 수 있도록 식별(identification)이 가능한 태그를 추천하여 제공할 수 있다.
또한, 본 발명에 따라 생성된 태그를 통해서 스마트 컨트랙트의 실질적인 용도와 위험성을 사용자로하여금 직관적으로 알 수 있게 하는 효과를 제공한다.
또한, 본 발명의 스마트 컨트랙트 추천 방법과 추천 시스템은 자동화된 과정을 통해서 스마트 컨트랙트 사용자의 편의성을 보장할 수 있다.
또한, 본 발명을 이용하면 사용자들이 스마트 컨트랙트의 내용을 확인할 수 있는 전문적인 시스템 스킬의 여부와 관계 없이 모든 사용자가 쉽고 공평하게 스마트 컨트랙트의 서비스를 이용할 수 있도록 보장한다.
결과적으로, 스마트 컨트랙트로 인한 여러 금융 사기(폰지 사기 등)로부터 사용자들을 쉽게 보호할 수 있는 장점이 있다.
도 1은 스마트 컨트랙트 태그 추천 모델을 이용한 자동화된 스마트 컨트랙트 추천 시스템의 개념도이다
도 2는 스마트 컨트랙트 태그 추천 모델을 이용한 자동화된 스마트 컨트랙트 추천 시스템의 세부 구성도이다.
도 3은 딥 협업 필터링(Deep Collaborative Filtering) 모델의 개념도이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1또는 2은 스마트 컨트랙트 태그 추천 모델을 이용한 자동화된 스마트 컨트랙트 추천 시스템(10000)의 개념도와 세부 구성도를 설명하고 있다.
본 발명의 스마트 컨트랙트 추천 시스템(10000)은 도면 1에서 도시된 것과 같이 사용자 디바이스(700)를 통해 사용자가 스마트 컨트랙트에 대해서 추천을 의뢰하는 형태로 구현될 수 있다. 즉 사용자는 스마트 컨트랙트에 관련된 정보를 얻고 싶을 때 본 발명과 같은 추천 시스템에 정보를 알고 싶은 대상이 되는 스마트 컨트랙트를 온라인/오프라인으로 의뢰하게 되고, 추천 시스템은 의뢰된 스마트 컨트랙트에 맞는 태그를 사용자에게 추천하게 된다.
또한, 스마트 컨트랙트 추천 시스템(10000)은 스마트 컨트랙트로부터 태그를 효율적으로 추출하도록 본 발명의 시스템을 구축(system buildup process)하는 것을 목적으로 하는 스마트 컨트랙트 태그 추천 모델 빌드업부(1000)과 본 발명의 시스템을 적용(system application process)하는 것을 목적으로 하는 스마트 컨트랙트 태그 추천부(2000)로 구성되어 있다.
스마트 컨트랙트 태그 추천 모델 빌드업부(1000)는 도면 2의 상단 부분을 이루고 있으며, 스마트 컨트랙트 태그 추천부(2000)는 도면 2의 하단 부분을 이루고 있다.
스마트 컨트랙트 태그 추천 모델 빌드업부(1000)은 다시 제1 스마트 컨트랙트 분석부(1100), 스마트 컨트랙트 추천 모델 학습부(1200) 및 스마트 컨트랙트 최적모델 선택부(1300)을 포함할 수 있다.
구체적으로, 제1 스마트 컨트랙트 분석부(1100)은 학습이 될 복수의 스마트 컨트랙트로부터 복수의 파라미터를 추출하여 복수의 학습 및 평가 데이터셋을 생성하는 역할을 수행한다.
더욱 구체적으로 블록체인 시스템으로부터 소스코드 및 바이너리 코드를 구할 수 있는 복수의 스마트 컨트랙트를 입수하여, 이의 바이너리 코드를 디스어셈블하여 실행코드(Opcode)를 구하고 이로부터 구성요소, 문맥정보, 길이정보를 추출한다. 추출된 정보들을 이어붙이기(concatenate)한 뒤, 데이터셋을 이루도록 한다.
여기서, 구성요소와 관련되어, 실행코드(opcode)는 전체적인 계약 내용을 이행하기 위해 해야하는 세부적인 하나의 행동으로 생각할 수 있다. 특정 목적을 이행하기 위해 할 수 있는 모든 행동(opcode)를 취해야하기도 하지만, 일부의 행동으로 목적을 달성할 수 도 있다. 즉, 목적에 따라 필요한 행동의 종류가 다르기 때문에 우리는 계약을 이행하기 위해 필요한 실행코드(opcode)의 종류를 스마트 컨트랙트의 구성요소라 정의하며, 추출하게 된다.
구체적으로 상술한 실행코드의 구성요소는 스마트 컨트랙트가 어떠한 행동으로 목적을 달성하는가에 대한 정보를 얻기 위해, 실행한 행동을 1로 실행하지 않은 행동은 0으로 하는 값을 가지도록 원-핫 엔코딩(one-hot encoding) 기법을 통해 스마트 컨트랙트의 구성요소를 66차원 벡터 형태로 변환하여 구현할 수 있다.
여기서, 문맥정보와 관련되어, 동일한 구성요소를 지니는 스마트 컨트랙트라 해도, 실행코드(opcode)의 실행 순서에 따라 다른 결과를 낼 수 있다. 이러한 구성요소 정보의 한계점을 보완하기 위해, 문서 임베딩 기법을 활용하여 실행코드(opcode)의 문맥 정보를 추출한다.
구체적으로 상술한 실행코드의 문맥정보는 Doc2Vec 알고리즘을 통해 벡터 형태로 변환하여 구할 수 있다. Doc2Vec 알고리즘은 문서 내에 포함된 단어의 순서를 고려해, 문맥을 분석하고 이를 벡터 형태로 변환하는 기법이다. 이를 적용하여 스마트 컨트랙트의 opcode를 실행 순서대로 나열된 문서에서 문맥 정보를 도출해 실수 값 벡터로 변환한다. 벡터의 차원은 임의로 설정이 가능하며, 일 실시예로 32차원의 벡터를 사용한다.
여기서, 길이정보란 실행코드의 길이를 의미하고, 실행코드 길이는 보통 스마트 컨트랙트를 이용한 계약 내용의 양에 따라 결정된다. 스마트 컨트랙트의 목적에 따라 기본적으로 작성되어야 하는 하위 컨트랙트 내용이 존재하며, 내용이 복잡해질 수록 그 실행코드의 길이는 길어지는 특징을 가진다.
구체적으로 상술한 실행코드의 길이정보는 이진코드(bytecode)의 문자열 길이와 스마트 컨트랙트의 행동 기록을 나타내는 실행코드(opcode) 문서의 길이 (실행해야 하는 동작의 개수)를 사용해 정수 값으로 구성된 2차원 벡터로 변환하여 사용할 수 있다.
또한, 상기 소스코드로부터는 스마트 컨트랙트의 제목, 함수 명을 추출하여, 태그 정보를 생성한 뒤, 상술한 데이터셋에 추가한다.
여기서, 상기 소스코드로부터 생성되는 태그의 경우, 구체적으로 스마트 컨트랙트의 작성자가 부여한 스마트 컨트랙트의 제목 (contract name)과 작성자가 업로드한 소스코드에 포함된 함수 명(function name)을 추출한다. 이때, 보통 작성자가 사용하는 함수 명에 스마트 컨트랙트의 고유의 기능이나 특징이 반영될 수 있다는 점, 그리고 금융 사기 등에 사용되는 스마트 콘트랙트의 소스 코드에 동일한 형태의 기능들이 동일한 함수 명으로 기재되어 있을 확률이 높다는 점에서 함수 명을 태그 추천에 반영하는 의의가 있다.
더욱 구체적으로, 상기 태그 정보를 생성하기 위해, 우선적으로 블록체인에 저장된 스마트 컨트랙트 중, 제목 정보와 소스코드 정보가 포함된 스마트 컨트랙트 n개의 표본을 추출한다. 추출한 표본의 제목과 함수 명에서 사용된 핵심 단어를 얻기 위해, 먼저 불필요한 숫자, 특수문자를 제거하고 공백, 대문자를 기준으로 정규표현식을 사용해 단어를 생성한다. 생성된 단어는 줄임 표현이나 오타, 고유 단어 등이 포함되어 있어 전수 조사를 통해 줄임 표현의 통일화, 오타 수정, 고유 단어 제거 등의 처리 과정과 함께 m개의 대표성을 지니는 단어 선출 작업을 진행하여 구현될 수 있다.
결과적으로, 이렇게 모아진 데이터셋은 학습을 위한 학습 데이터셋과 평가를 위한 평가 데이터셋으로 분리되며, 이 중 학습 데이터셋은 후술하는 스마트 컨트랙트 추천 모델 학습부(1200)에서 학습 데이터로 사용되게 된다. 또한 상술한 평가 데이터셋은 추후 학습된 모델로부터 나온 결과를 평가하는 데 사용하게 된다.
또한, 스마트 컨트랙트 추천 모델 학습부(1200)는 제1 스마트 컨트랙트 분석부로부터 상기 학습 데이터셋을 입력받아, 특정 학습 모델을 사용하여 학습시키는 역할을 수행한다.
이 때 특정 학습 모델은 복수의 모델로 이루어지며, 상기 복수의 모델은 각각 딥 뉴럴 네트워크(Deep Neural Networks), 딥 협업 필터링(Deep Collaborative Filtering), KNN(K-Nearest Neighbors) 중 둘 이상을 선택적으로 조합하여 사용할 수 있다.
상술한 복수의 모델에 대해서는 후술되는 도면 3의 설명 부분에서 구체적으로 설명하기로 한다.
또한 스마트 컨트랙트 최적 모델 선택부(1300)는 상기 스마트 컨트랙트 추천 모델 학습부로부터 학습된 데이터와 상기 평가 데이터셋을 비교하여, 스마트 컨트랙트 태그를 추천할 수 있는 최적의 모델을 선택하는 역할을 수행한다.
또한, 본 발명의 시스템을 통해 결과적으로 추천되는 태그는 하나의 스마트 컨트랙트 정보와 다수의 태그 정보간의 패턴을 분석하여 복수의 태그를 제안할 필요성이 있기 때문에, 추천 시스템(suggestion system) 알고리즘이 사용되는 것이 바람직하다.
구체적으로, 복수의 모델로부터 학습된 데이터의 결과와 평가 데이터셋을 비교하여, 복수의 모델 중 가장 성능이 우수한 모델을 선택하게 된다. 이렇게 선택된 모델의 경우, 후술하는 스마트 컨트랙트 태그 추천부(2000)에 적용되게 된다.
즉 상술한 것과 같이 추천 시스템 알고리즘 등에 의해, 성능이 가장 우수한 모델을 선택하게 되면, 해당 모델이 바로 최적의 모델이라 명할 수 있게 된다. 자세히 설명하지 않았지만 추천 시스템 알고리즘이 아니라 다른 형태의 성능평가모델을 도입하여 적용할 수도 있다.
또한 도면 2의 하단 부분에 도시된 스마트 컨트랙트 태그 추천부(2000)은 제2 스마트 컨트랙트 분석부(2100), 스마트 컨트랙트 모델 적용부(2200) 및 태그 추천 적용부(2300)를 포함할 수 있다.
구체적으로, 제2 스마트 컨트랙트 분석부(2100)은 사용자가 의뢰한 스마트 컨트랙트로부터 복수의 파라미터를 추출하는 역할을 수행한다.
여기서 이야기하는 스마트 컨트랙트는 앞서 상술한 제1 스마트 컨트랙트 분석부(1100)에서 언급된 스마트 컨트랙트와 다른 의미로, 사용자가 분석을 의뢰하고자 하는 스마트 컨트랙트이며, 현실적으로 대부분 소스코드가 없는 바이너리 코드의 형태일 것이다.
그러므로, 제2 스마트 컨트랙트 분석부(2100)에서 추출된 파라미터는 바이너리 코드에서 추출되는 실행코드의 형태일 것이고, 결과적으로 추출된 정보들은 구성요소, 문맥정보, 길이정보가 바람직하다.
이후 해당 추출된 정보들을 이어붙이기(concatenate)한 뒤, 벡터화한다.
또한, 스마트 컨트랙트 모델 적용부(2200)는 상기 제2 스마트 컨트랙트 분석부(2100)로부터 추출된 파라미터(추출된 정보들)에 상기 스마트 컨트랙트 최적 모델 선택부(1300)로부터 선택된 최적의 모델을 적용하는 역할을 수행한다.
또한 태그 추천 적용부(2300)는 상기 스마트 컨트랙트 모델 적용부(2200)으로부터 선정된 태그를 추천하는 역할을 수행한다.
구체적으로 태그 추천 적용부(2300 )상위 k 개의 태그만을 추출하는 Top-k selection 기법을 적용한 뒤, 결과적으로 추천할 태그를 선택하여 사용자에게 매칭시키게 된다.
마지막으로, 상술했던 특정 학습 모델의 일실시예로 제시된 딥 뉴럴 네트워크(Deep Neural Networks), 딥 협업 필터링(Deep Collaborative Filtering), KNN(K-Nearest Neighbors)에 대해서는 도면 3에서 딥 협업 필터링을 설명하면서, 같이 자세하게 설명하도록 한다.
도면 2에서는 이러한 각 구성요소들의 동작구간을 점선(dot-line)으로 구분하여 도시하였으며, 혹 도면과 세부 기능의 표현에 차이가 있는 부분에 대해서는 발명을 실시하기 위한 구체적인 내용 부분을 우선적으로 참고하기로 한다.
도 3은 딥 협업 필터링(Deep Collaborative Filtering) 모델의 개념도이다.
도면 3에서는 상술한 복수의 모델 중 본 발명에서 사용되고 있는 딥 협업 필터링(Deep Collaborative Filtering)을 설명하고 있다. 딥 협업 필터링은 사용자의 평가 정보를 활용하여 추천하는 것이 특징인 협업 필터링(Collaborative Filtering)에 딥 러닝 알고리즘이 적용된 방법이다. 사용자가 직접 선택한 각 아이템에 대한 등급 정보(rating 정보)와 함께 사용자를 표현하는 부가정보와 아이템에 대한 부가정보를 함께 고려한다는 특징이 있다. 또한, 본 발명에서는 딥러닝 알고리즘 중 데이터의 잡음을 최소화하여 의미있는 저차원의 벡터로 재표현하는 방법인 주변소음 제거 오토 엔코더(Marginalized Denoising AutoEncoder)를 사용하여, 실행코드의 정보와 태그 정보를 잡음을 최소화한 임의의 f차원의 벡터로 재표현하여 분석에 사용할 수 있다. 이러한 오토 엔코더를 사용함으로써, 사용하지 않은 경우보다 정확도가 높고, 정교한 결과를 산출한다. 결과적으로, 실행코드 정보와 태그 정보 각각에 오토엔코더(AutoEncoder)를 적용하여 축소된 f차원의 벡터를 산출하고 두 벡터의 곱을 연산함으로써, 태그 정보가 실행코드 정보에 얼마나 적합한가를 나타내는 등급(rating)을 산출할 수 있다.
또한 상술했던 주변소음 제거 오토 엔코더에 대해서 부연하고자 한다. 기본적으로, 오토엔코더랑 1개의 피드포워드 레이어(엔코더)와 이에 대한 역순의 레이어(디코더)로 구성된 딥러닝 모델이다. 즉, 입력 값과 출력 값을 동일한 데이터로 설정하여 입력 값의 차원보다 적은 차원으로 데이터를 엔코딩(encoding)하고 엔코딩(encoding)된 값으로부터 다시 디코팅(decoding)하여 원래의 데이터를 산출할 수 있도록 설계하는 것이 특징이다. 이 과정에서 적은 차원으로 변환된 데이터는 입력 값에 대한 정보를 내재하면서도 축약된 형태라고 볼 수 있다. 주변소음 제거 오토 엔코더는 오토 엔코더의 변형된 알고리즘으로 기본적으로 오토 엔코더의 네트워크 구조를 따르지만, 입력 값으로 원 데이터에 임의적인 잡음을 추가한 데이터를 입력하며, 출력 값으로 원 데이터를 산출하도록 하여, 모델 자체적으로 잡음을 최소화하도록 학습하는 알고리즘이다.
다음으로는, 특정 학습 모델의 또다른 일실시예로 제시된 딥 뉴럴 네트워크(Deep Neural Networks)에 대해서 설명한다.
더욱 구체적으로 본 발명에서는 랭킹 손실 함수(ranking loss function)가 더 적용된 딥 뉴럴 네트워크 방식을 사용하는 것이 바람직하다.
딥러닝의 레이어 중 피드 포워드 레이어로 구성된 네트워크에 손실 함수(loss function)로 랭킹 손실 함수를 사용하는 모델이다. 여기서 랭킹 손실 함수는 일반적인 손실 함수와는 다르게 연산되어 모델의 파라미터를 갱신할 때 생길수 있는 문제점을 해결한다. 구체적으로 본 발명에는 태그를 추천할 때, Top-k Selection 과정을 수행하게 된다. 즉, 상위 k개의 태그만 선택하여 손실(loss)을 계산하게 되면 top-k를 선택하는 과정에서 미분 계산이 되지 않아 파라미터를 갱신하기 어려운 문제를 해결할 수 있다. 또한 학습된 모델은 실행 코드 정보를 입력으로 받아 딥러닝 알고리즘을 거쳐(행렬 연산) 전체 태그의 수와 동일한 벡터를 산출하고 이는 곧 등급(rating)과 동일한 역할을 하게 된다.
마지막으로, 특정 학습 모델의 또다른 일실시예로 제시된 KNN(K-Nearest Neighbors)에 대해서 설명한다.
KNN은 각 스마트 컨트랙트 간의 유사도를 측정하여 유사한 스마트 컨트랙트 k개를 선정하고, 선정된 집단 내에서 빈번히 사용된 태그(tag)를 순서대로 나열하여 제공한다. 이러한 KNN 모델링의 경우, 별도의 추가적인 모델 파라미터가 없어 학습 과정이 매우 짧다는 장점이 있다. 반면 KNN의 경우, 추론 과정에서 반복적인 유사도 측정 연산이 필요해 속도 측면에서 다른 모델링 기법들에 비해 상대적으로 낮은 성능을 보이는 단점이 있다.
또한 본 발명에서 언급된 사용자 디바이스(700)은 사용자가 스마트 컨트랙트를 본 발명의 시스템에 의뢰하는 디바이스와 스마트 컨트랙트를 블록체인 시스템으로부터 수용하는 디바이스를 모두 포함하는 구성이다. 즉, 사용자 디바이스(700)는 스마트폰, 패드, 인터넷에 접속이 가능한 노트북 등이 모두 가능하며, 더 크게 보아서는 데스크탑 환경의 컴퓨팅 디바이스 들도 모두 포함될 수 있다.
마지막으로, 본 발명을 실제 스마트 컨트랙트의 분석에 적용한 실시예를 설명하기로 한다.
본 발명의 실제 적용 과정에서 이더리움 블록체인에 저장된 스마트 컨트랙트 중, 제목과 소스코드 정보를 보유하고 있는 스마트 컨트랙트 34,397개를 추출하여 예제 데이터로 사용하였다. 이때 추출하여 분석한 스마트 컨트랙트 34,397개의 제목과 함수 명에 포함된 단어는 약 16,000개로, 이 중 전수조사를 통해 오타 수정, 유사한 단어 병합 등의 처리를 거쳐, 계약 내용을 대표할 수 있는 단어를 선정한 결과, 태그는 184개의 단어로 구성되는 것을 확인하였다. 이 때, 단어의 선정 기준은 ICO, SALE등과 같이 스마트 컨트랙트의 목적을 대표하는 단어와, Refund, Freeze 등과 같이 특정 행위를 묘사할 수 있는 단어로 선정하였다. 이후 본 발명의 복수의 모델들을 트레이닝하는 과정에서 전체 34,397개의 데이터셋 중 80%에 해당하는 27,517개의 데이터셋만을 사용하여 학습하며, 나머지 20%에 해당하는 6,880개의 데이터셋은 성능 평가 과정에서 사용하도록 하였다. 이렇게 데이터를 분리함으로써 시스템 평가를 보다 공평하게 하며, 구축된 본 발명의 학습모델링이 강건(robust)함을 평가할 수 있었다.
이 때, 트레이닝된 모델의 성능평가에는 사전에 분류해둔 테스트용 스마트 컨트랙트 데이터를 사용하여, 각 스마트 컨트랙트마다 10개의 태그를 생성하고, 다음의 추천 시스템의 성능 평가 지표를 활용하여 모델의 성능을 비교하여 가장 좋은 성능을 보이는 알고리즘을 사용하여서, 사용자의 스마트 컨트랙트에서 적절한 태그를 추천하는 데 사용하였다.
본 발명의 일실시예에 따른 자동화된 스마트 컨트랙트 추천 시스템을 이루는 개별 혹은 선택적으로 조합된 구성요소들은 컴퓨터와의 결합을 통해 실행시키기 위한 저장매체에 저장된 컴퓨터 프로그램으로 구현될 수 있다.
또한, 본 발명의 일실시예에 따른 자동화된 스마트 컨트랙트 추천 시스템을 이루는 개별 혹은 선택적으로 조합된 구성요소들은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리, SSD(Solid State Drive) 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
또한 본 발명에서 사용되는 컴퓨터 또는 컴퓨터 프로그램과 같은 구성은 이동통신 단말기의 형태가 스마트폰과 같이 변형되며, 컴퓨팅 파워가 획기적으로 커짐에 따라, 스마트폰 또는 스마트폰에서 실행되는 어플리케이션과 같은 의미로도 사용될 수 있다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
10000: 스마트 컨트랙트 추천 시스템
1000: 스마트 컨트랙트 태그 추천 모델 빌드업부
1100: 제1 스마트 컨트랙트 분석부
1200: 스마트 컨트랙트 추천 모델 학습부
1300: 스마트 컨트랙트 최적모델 선택부
2000: 스마트 컨트랙트 태그 추천부
2100: 제2 스마트 컨트랙트 분석부
2200: 스마트 컨트랙트 모델 적용부
2300: 태그 추천 적용부
700: 사용자 디바이스

Claims (5)

  1. 사용자의 스마트 컨트랙트를 분석하여 태그를 추천하는 스마트 컨트랙트 추천 시스템(10000)에 있어서,
    상기 추천 시스템(10000)은
    학습이 될 복수의 스마트 컨트랙트로부터 복수의 파라미터를 추출하여 복수의 학습 및 평가 데이터셋을 생성하는 제1 스마트 컨트랙트 분석부(1100);
    제1 스마트 컨트랙트 분석부로부터 상기 학습 데이터셋을 입력받아, 특정 학습 모델을 사용하여 학습시키는 스마트 컨트랙트 추천 모델 학습부(1200);
    및 상기 스마트 컨트랙트 추천 모델 학습부로부터 학습된 데이터와 상기 평가 데이터셋을 비교하여, 스마트 컨트랙트 태그를 추천할 수 있는 최적의 모델을 선택하는 스마트 컨트랙트 최적 모델 선택부(1300)을 포함한 것을 특징으로 하는 스마트 컨트랙트 추천 시스템.
  2. 사용자의 스마트 컨트랙트를 분석하여 태그를 추천하는 스마트 컨트랙트 추천 시스템(10000)에 있어서,
    상기 추천 시스템(10000)은
    복수의 스마트 컨트랙트로부터 복수의 파라미터를 추출하여 복수의 모델 학습을 통해 최적의 태그를 추천하는 스마트 컨트랙트 최적 모델 선택부(1300);
    사용자가 스마트 컨트랙트로부터 복수의 파라미터를 추출하는 제2 스마트 컨트랙트 분석부(2100);
    상기 제2 스마트 컨트랙트 분석부(2100)로부터 추출된 파라미터에 상기 스마트 컨트랙트 최적 모델 선택부(1300)로부터 선택된 최적의 모델을 적용하는 스마트 컨트랙트 모델 적용부(2200);
    및 상기 스마트 컨트랙트 모델 적용부(2200)으로부터 선정된 태그를 추천하는 태그 추천 적용부(2300)를 포함한 것을 특징으로 하는 스마트 컨트랙트 추천 시스템.
  3. 제1항 또는 제2항에 있어서,
    스마트 컨트랙트로부터 추출되는 복수의 파라미터는 스마트 컨트랙트의 바이너리 코드를 디스어셈블(disassemble)한 실행코드(opcode), 스마트 컨트랙트의 소스 코드로부터 추출한 정보를 사용하는 것을 특징으로 하는 스마트 컨트랙트 추천 시스템.
  4. 제1항에 있어서,
    상기 특정 학습 모델은 복수의 모델로 이루어지며, 상기 복수의 모델은 각각 딥 뉴럴 네트워크(Deep Neural Networks), 딥 협업 필터링(Deep Collaborative Filtering), KNN(K-Nearest Neighbors) 중 둘 이상을 선택적으로 조합하여 사용하는 것을 특징으로 하는 스마트 컨트랙트 추천 시스템.
  5. 제3항에 있어서,
    상기 실행코드(opcode)로부터 추출되는 정보는 길이, 문맥, 구성요소를 포함하며, 상기 소스코드로부터 추출되는 정보는 스마트 컨트랙트의 제목(contract name) 또는 함수 명(function name)을 포함하는 것을 특징으로 하는 스마트 컨트랙트 추천 시스템.
KR1020180149850A 2018-11-28 2018-11-28 태그 추천 모델을 이용한 자동화된 스마트 컨트랙트 태그 생성 및 추천 시스템 KR102184772B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020180149850A KR102184772B1 (ko) 2018-11-28 2018-11-28 태그 추천 모델을 이용한 자동화된 스마트 컨트랙트 태그 생성 및 추천 시스템
PCT/KR2019/007440 WO2020111424A1 (ko) 2018-11-28 2019-06-20 태그 추천 모델을 이용한 자동화된 스마트 컨트랙트 태그 생성 및 추천 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180149850A KR102184772B1 (ko) 2018-11-28 2018-11-28 태그 추천 모델을 이용한 자동화된 스마트 컨트랙트 태그 생성 및 추천 시스템

Publications (2)

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

Family

ID=70853815

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180149850A KR102184772B1 (ko) 2018-11-28 2018-11-28 태그 추천 모델을 이용한 자동화된 스마트 컨트랙트 태그 생성 및 추천 시스템

Country Status (2)

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

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111861667A (zh) * 2020-07-21 2020-10-30 上海仙豆智能机器人有限公司 车辆推荐方法及装置、电子设备、存储介质
US11909482B2 (en) * 2020-08-18 2024-02-20 Qualcomm Incorporated Federated learning for client-specific neural network parameter generation for wireless communication
CN113110843B (zh) * 2021-03-05 2023-04-11 卓尔智联(武汉)研究院有限公司 合约生成模型训练方法、合约生成方法及电子设备
CN113051144B (zh) * 2021-03-26 2022-02-08 中山大学 一种智能合约推荐方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101778768B1 (ko) 2017-04-21 2017-09-18 (주)케이사인 IoT 기기 제어 방법 및 시스템
KR20170134191A (ko) * 2016-05-26 2017-12-06 연세대학교 원주산학협력단 페이지랭크와 토픽 모델링을 이용한 소프트웨어 도메인 토픽 추출 시스템
KR20180068888A (ko) 2016-12-14 2018-06-22 성신여자대학교 산학협력단 스마트 컨트랙트를 이용한 게임 아이템 구매 방법 및 장치
WO2018137564A1 (zh) * 2017-01-26 2018-08-02 阿里巴巴集团控股有限公司 一种业务处理方法及装置
US20180267781A1 (en) * 2017-03-20 2018-09-20 Coursera Inc. Code generation for isomorphic data fetching

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170134191A (ko) * 2016-05-26 2017-12-06 연세대학교 원주산학협력단 페이지랭크와 토픽 모델링을 이용한 소프트웨어 도메인 토픽 추출 시스템
KR20180068888A (ko) 2016-12-14 2018-06-22 성신여자대학교 산학협력단 스마트 컨트랙트를 이용한 게임 아이템 구매 방법 및 장치
WO2018137564A1 (zh) * 2017-01-26 2018-08-02 阿里巴巴集团控股有限公司 一种业务处理方法及装置
US20180267781A1 (en) * 2017-03-20 2018-09-20 Coursera Inc. Code generation for isomorphic data fetching
KR101778768B1 (ko) 2017-04-21 2017-09-18 (주)케이사인 IoT 기기 제어 방법 및 시스템

Also Published As

Publication number Publication date
WO2020111424A1 (ko) 2020-06-04
KR102184772B1 (ko) 2020-12-01

Similar Documents

Publication Publication Date Title
Song et al. Machine learning models that remember too much
WO2018188576A1 (zh) 资源推送方法及装置
Sarkar et al. Hands-On Transfer Learning with Python: Implement advanced deep learning and neural network models using TensorFlow and Keras
KR102184772B1 (ko) 태그 추천 모델을 이용한 자동화된 스마트 컨트랙트 태그 생성 및 추천 시스템
CA3087534C (en) System and method for information extraction with character level features
CN110852110B (zh) 目标语句提取方法、问题生成方法以及信息处理设备
Zhao et al. Modeling fonts in context: Font prediction on web designs
US11620843B2 (en) Metamodeling for confidence prediction in machine learning based document extraction
CN108984555B (zh) 用户状态挖掘和信息推荐方法、装置以及设备
Torfason et al. From face images and attributes to attributes
CN110162609B (zh) 用于向用户推荐咨询问题的方法及装置
US11893499B2 (en) Deep forest model development and training
Barnes Microsoft Azure essentials Azure machine learning
JP2022037955A (ja) 学習モデルを選択するシステム
Soui et al. Deep learning-based model using DensNet201 for mobile user interface evaluation
JP2009295097A (ja) 情報分類装置、情報分類方法、情報処理プログラム及び記録媒体
Gokhale et al. AbhAS: A novel realistic image splicing forensics dataset
US11755671B2 (en) Projecting queries into a content item embedding space
Duan et al. Mitigating representation bias in action recognition: Algorithms and benchmarks
Körner et al. Mastering Azure Machine Learning: Perform large-scale end-to-end advanced machine learning in the cloud with Microsoft Azure Machine Learning
Felicetti et al. Visual and textual sentiment analysis of daily news social media images by deep learning
Peeperkorn et al. Conformance checking using activity and trace embeddings
US11586520B2 (en) Automated data linkages across datasets
Kuznetsov et al. A new sport teams logo dataset for detection tasks
Gkalelis et al. Subclass deep neural networks: re-enabling neglected classes in deep network training for multimedia classification

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