4조

cdc wiki
4조 (토론 | 기여)님의 2019년 6월 17일 (월) 07:30 판 (서론)
이동: 둘러보기, 검색

프로젝트 개요

기술개발 과제

국문 : 이더리움 스마트 컨트랙트 개발 툴킷

영문 : ethereum smart contract development toolkit

과제 팀명

4조

지도교수

김성환 교수님

개발기간

2019년 3월 ~ 2019년 6월 (총 4개월)

구성원 소개

서울시립대학교 조경학과 2013875019 이상엽(팀장)

서울시립대학교 조경학과 2013875008 김현진

서울시립대학교 컴퓨터과학부 2014920012 노일호

서울시립대학교 컴퓨터과학부 2014920059 최치원

서론

개발 과제의 개요

개발 과제 요약

◇ 배포된 스마트 컨트랙트의 변수들의 인덱스와 값을 찾아 보여주는 모듈인 Show-State 모듈 구현 - 스마트 컨트랙트 변수들의 선언 순서에 따른 index 배정 규칙에 대해 연구한다. - 스마트 컨트랙트 변수들이 이더리움 storage에 저장되는 물리적 위치에 대해 연구한다. - Solidity 컴파일러인 sol c를 활용해 Solidity코드의 AST를 추출한 후 AST로부터 각 변수들의 index 위치를 계산한다.

◇ 솔리디티 스마트 컨트랙트를 위한 디버깅 툴 개발 - 이더리움 솔리디티 스마트 컨트랙트 변수의 index를 구하는 라이브러리 개발을 수행한다. - Indexing 기능을 활용해 이더리움 스마트 컨트랙트의 변수를 추적하는 debugging tool 개발함으로서 더 나은 스마트 컨트랙트 디버깅 환 경을 제공한다. - 제작한 디버거를 오픈소스 스마트 컨트랙트 개발 프레임웍인 vvsip에 integration함으로서 사용성을 높힌다.

◇ VVISP프로그램에 CI/CD툴 추가 - 보안 분석을 담당하는 Mythril패키지를 통합할 수 있도록 한다. - 코드 테스트, 코드 커버리지, 보안 분석, 배포 절차 자동화 시스템을 구축할 수 있도록 한다.

개발 과제의 배경

기존에는 이더리움 스마트 컨트랙트 변수에 대해서, 변수가 저장되는 스토리지 위치인 index를 구하는 라이브러리가 존재하지 않았다. 또한 기존의 솔리디티 스마트 컨트랙트 디버거들은 OP코드 단위로만 실행이 가능한 등 사용성이 떨어졌다. 이를 해결 하기 위해 이더 리움 솔리디티 스마트 컨트랙트 변수의 index를 구하는 라이브러리를 개발하고, 이를 활용해 스마트 컨트랙트 디버거를 개발한다. 이를 통해 더 나은 스마트 컨트랙트 디버깅 환경을 제공하고, 보다 쉽고 편리하게 DApp을 만들 수 있는 환경을 제공한다. 이러한 기능들을 VVISP에 통합한 후 CI/CD 기능도 제공할 수 있도록 하여 기존의 Truffle이나 Remix보다 개발자들이 사용하기 쉽고 편리한 프로그램을 만들 수 있도록 한다.


개발 과제의 목표 및 내용

◇ 배포된 스마트 컨트랙트의 Indexing - solidity 컴파일러인 solc를 통해 나오는 중간 산출물인 ast를 파싱함으로써 변수들의 이름과 타입을 획득 - 위에서 획득한 타입에 따른 인덱싱 배정 규칙에 따라 인덱스 계산

◇ 이더리움 스마트 컨트랙트 debugging tool 개발 - 개발한 Indexing 라이브러리를 활용해 이더리움 스마트 컨트랙트의 변수를 추적가능한 디버거를 개 발한다. - 개발한 디버거를 최종적으로 VVISP에 Integration할 수 있도록 한다.

◇ VVISP에 CI/CD 기능 추가 - CI/CD 기능 추가를 통해 개발한 코드의 검증, 빌드, 배포를 자동화 함으로써 스마트 컨트랙트 개발시간을 단축할 수 있도록 한다.

관련 기술의 현황

관련 기술의 현황 및 분석(State of art)

  • 전 세계적인 기술현황

◇ 블록체인 ‘블록'이라고 하는 소규모 데이터들이, P2P 방식을 기반으로 생성된 체인 형태의 연결고리 기반 분산 데이터 저장환경에 저장되어, 누구라도 임의로 수정할 수 없고 누구나 변경의 결과를 열람할 수 있는 분산 컴퓨팅 기술 기반의 데이터 대변 방지 기술. 스마트 컨트랙트 블록체인 기반으로 금융거래, 부동산 계약, 공증 등 다양한 형태의 계약을 체결하고 이행하는 것. 이더리움 블록체인 기술을 기반으로 스마트 컨트랙트 기능을 구현하기 위한 분산 컴퓨팅 플랫폼. 솔리디티 다양한 블록체인 플랫폼의 스마트 컨트랙트 작성 및 구현에 사용되는 계약 지향 프로그래밍 언어.

◇ CI/CD 애플리케이션 개발 단계를 자동화하여, 애플리케이션을 보다 짧은 주기로 고객에게 제공하는 방법. 애플리케이션의 통합 및 테스트 단계에서부터, 제공 및 배포에 이르는 애플리케이션의 라이프사이클 전체에 걸쳐 지속적인 자동화와 지속적인 모니터링 제공.

◇ Dapp 개발 프로세스 관리 지원 스마트 컨트랙트 디버그 패키지 로컬 EVM 환경에서 트랜잭션 단위 디버깅 제공. 스마트 컨트랙트 커버리지 패키지 테스트 수행시, 코드 자체가 얼마나 실행되었는지를 확인. 스마트 컨트랙트 보안 분석 패키지 스마트 컨트랙트 배포 이전 단계에서 외부 위험 요소 제거.

  • 특허조사 및 특허 전략 분석

◇ 특허조사 스마트 컨트랙트 개발 툴들에서 smartContract를 디버깅하는 방법 스마트 컨트랙트의 소스코드와 op코드가 맵핑되는 방법 블록체인 SDK에서 CI/CD 기능을 제공하는 방법 배포된 스마트 컨트랙트에 있는 변수들에 대해 변수들의 스토리지 인덱싱을 확인하는 방법

◇ 특허전략 국제 특허 출원 시, 국내출원 > PCT (12개월 내) > 미국출원 (30개월 내) 순으로 출원 (PCT 경로) 단 국내출원비용이 수백만 원에 달하는 현실 고려, 서비스 출원 후 1년 이내 출원 결정 미국 시장 진입 시, 가출원을 통해 특허 대비 비용을 절약 가능

  • 기술 로드맵

스마트 컨트랙트에 대한 이해를 위한 선행적인 학습 및 실습 기존의 truffle이 가지고 있는 solidity컴파일, 배포 및 debug 등의 방식에 대한 파악 및 이해, Remix 조사를 통한 개발 툴들의 전반적인 장 점과 단점 파악 위에서 마련한 이론을 바탕으로 한 실전 적용 – VVISP을 보완할 수 있는 모듈 제작 구현된 기능들을 VVISP에 통합시켜 DApp에 대한 이해가 부족한 사용자들도 쉽게 쓸 수 있도록 프로그램 보완

시장상황에 대한 분석

  • 경쟁제품 조사 비교

◇ Truffle - Ethereum의 스마트 컨트랙트 개발, 테스팅, 배포 프레임 워크 - 테스트 배포시 테스트 로컬 이더리움 블록체인 제공 어플리케이션인 Ganache를 사용 - Pros

로컬 블록체인 및 메인넷에 배포 가능
소스코드와 op코드가 맵핑되는 디버그 명령어 제공

- Cons

코드 커버리지나 빌드 및 배포 자동화와 같은 CI/CD 기능이 제공되지 않음
배포된 스마트 컨트랙트 변수의 스토리지 인덱스 확인 불가능

◇ Remix - Ethereum의 스마트 컨트랙트 개발을 위한 브라우저 기반의 IDE - 브라우저 상에서 작성한 스마트 콘트랙트의 디버깅 가능 - Pros

로컬 JavascriptVM 및 메인넷에 배포 가능

- Cons

디버깅을 op코드 단위로만 수행가능
코드 커버리지나 빌드 및 배포 자동화와 같은 CI/CD 기능이 제공되지 않음
배포된 스마트 컨트랙트 변수의 스토리지 인덱스 확인 불가능

◇ VVISP - Ethereum의 스마트 컨트랙트 개발을 위한 CLI 도구 및 프레임워크 - Pros

로컬 블록체인 및 메인넷에 배포 가능
빌드 및 배포 자동화 기능이 제공
서비스라는 단위로 여러개의 컨트랙트를 동시 배포 가능

- Cons

디버깅 명령어가 존재하지 않음
코드 커버리지 및 코드 보안성 검증 절차가 없어 완벽한 CI/CD 기능이 제공되지 않음
배포된 스마트 컨트랙트 변수의 스토리지 인덱스 확인 불가능*마케팅 전략 제시

개발과제의 기대효과

기술적 기대효과

◇ Solidity로 작성된 Ethereum 스마트 컨트랙트에 있는 변수들의 index를 구함으로써 변수들의 상태를 보일 수 있게 한다. - 기존의 스마트 컨트랙트 개발 프로그램 에서는 스마트 컨트랙트의 state 변수 스토리지의 index를 구할 수 있는 기능이 전무했다. 정적인 변수들 은 변수 선언 순서에 따라 index가 배정되지만 동적 인 변수들은 그렇지 않기 때문에 추적하는 것이 쉽지 않기 때문이다. index를 구하고 state를 보 일 수 있는 기능이 구현된다면 작성한 스마트 컨트랙트에 대한 분석이 훨씬 용이해질 것이다.

◇ 기존의 VVISP에서 제공하지 않던 debugging tool을 제공함으로써 작성된 스마트 컨트랙트에 대한 논리적인 오류 검출 가능

◇ CI/CD기능 제공을 통해 지속적인 서비스 제공과 지속적인 배포 가능

◇ 블록체인을 잘 모르는 개발자들도 기존의 웹 / 앱 개발 방식을 유지한 채 높은 수준의 DApp를 만들 수 있도록 기능 제공 - 기존의 VVISP은 단순한 설정 파일 형태로 배포 대상을 간단하게 정의하고 코드 작성없이 배포 순 서도 알아서 고려할 수 있도록 편의성을 제공하 였다. 이와 더불어 show state, debug, CI/CD기능 을 함께 제공한다면 편리한 배포 뿐만아니라 오류검출, 지속적인 유지 보수에도 도움을 주어 VVISP으로 하여금 개발자에게 편의성을 주는 통합적인 개발툴 로써의 의미를 가질 수 있게 할 것이 다.

경제적, 사회적 기대 및 파급효과

◇ 편리한 UX로 인해 대중이 거부감 없이 블록체인을 사용할 수 있게 하여 DApp의 활성화 기반 마련

◇ 세계경제포럼은 블록체인 플랫폼이 2025년 세계 GDP의 10%를 차지할 것으로 예상, 가트너는 블록체인을 통한 경제적 부가가치가 2017년 40억 달러에서 2030년 3.1조 달러까지 성장할 것으로 전망. 한국과학기술정보연구원(KISTI)가 Markets and Markets 및 코인저널 자료를 종합 분석하여 전망한 국내 블록체인 시장규모는 2016년 201억원에서 2022년 3562억원으로 성장할 것으로 보임. 이외에 세계 금융기업과 it기업들이 빠른 속도로 블록체인 시장을 형성하고 있는 지금 더 쉽고 실용적으로 블록체인 플랫폼을 활용할 수 있게하는 미들웨어의 발전이 동반됐을 때 급속한 경제적 성장을 이루어낼 것으로 예상

기술개발 일정 및 추진체계

개발 일정

시스템 개발 계획 수립 : 3~4월 시스템 요구사항 분석 : 4월 상세 설계 팀원 전체 : 4월~5월 구현 및 테스트 팀원 전체 : 5월~6월

구성원 및 추진체계

◇ 요구분석 및 기초 설계까지는 모든 팀원이 함께 진행한다. ◇ 각 팀원 별 담당 업무 노일호

스마트 컨트랙트 코드 실행가능한 local evm 구축 이더리움 스마트 컨트랙트 debugging 기능 개발 오픈소스를 활용하여 vvisp의 CI/CD 기능 추가

최치원

solc 컴파일러 및 EVM 가상머신의 동작에 대한 연구 이더리움 스마트 컨트랙트 debugging 기능 개발

김현진

스마트 컨트랙트 변수들의 선언 순서에 따른 index 배정 규칙 연구 배포된 스마트 컨트랙트의 변수들의 인덱스와 값을 찾는 기능의 모듈인 show-state 구현 오픈소스를 활용하여 vvisp의 CI/CD 기능 추가

이상엽

스마트 컨트랙트 변수들이 이더리움 storage에 저장되는 물리적 위치에 대한 연구 배포된 스마트 컨트랙트의 변수들의 인덱스와 값을 찾는 기능의 모듈인 show-state 구현

설계

설계사양

제품의 요구사항

내용

설계 사양

내용

개념설계안

내용

이론적 계산 및 시뮬레이션

내용

상세설계 내용

내용

결과 및 평가

완료 작품의 소개

프로토타입 사진 혹은 작동 장면

내용

포스터

내용

관련사업비 내역서

내용

완료작품의 평가

내용

향후계획

내용

특허 출원 내용

내용