2019년 3월 5일
스마트 계약 (Smart Contract)
I. 블록체인 2.0 핵심기능, 스마트계약
가. 스마트계약(Smart Contract)의 개념
- 계약, 공증 등 블록체인 코드 업로드, 실행 기반 다양한 형태 계약 체결 및 자동 이행 기술
나. 스마트계약의 특징
구분 | 특징 | 설명 |
---|---|---|
계약 측면 | 계약 / 이행 | – 조건 업로드, 일치 시 자동 이행 |
프로세스 간소화 | – 복잡한 프로세스 간소화 | |
기술 측면 | 탈중앙화 | – P2P 중심의 노드 간 운용 |
튜링 완전성 | – 튜링 기계와 동일한 계산 능력 |
II. 스마트계약 개념도 및 기술요소
가. 스마트계약 개념도
나. 스마트계약 기술요소
구분 | 기술요소 | 설명 |
---|---|---|
신뢰성 | 전자서명 | – RSA 기반 부인 방지 |
Mining | – 합의 알고리즘 기반 신뢰성보장 | |
튜링완전 언어 | Solidity | – JavaScript와 유사, 객체지향 |
Serpent | – Python과 유사, 이더리움 개발 | |
이더리움 | EVM | – 바이트배열 키/값 스택 가상머신 |
DApp | – 사용자 UI 제공 기술 |
III. 스마트 계약 사례 기반 절차
BLOCK3 | – 모든 거래과정 블록체인으로 묶임, 거래성사 |
BLOCK4 | – 거래에서 대금 지불 완료 확인 |
BLOCK5 | – 블록체인으로 묶이고 이력화, 상호부인 불가 |
IV. 스마트계약 개발 환경 및 절차
가. 스마트계약의 개발 개념도
- 스마트계약은 크게 [Creation/Deployment], [Invoke by Message], [Call]의 절차로 구성
나. 스마트계약의 구성요소
구분 | 구성요소 | 설명 |
---|---|---|
스마트 계약 개발환경 | Byte Code | – 스마트계약 코드, EVM 위 실행 – Message TX, Call 통해 실행 |
Function Signature | – to: Contract Address – data: method signature | |
ABI | – Application Binary Interface – Method → Contract 함수 호출 | |
Blockchain Engine | – geth, parity,eth 등 이더리움 노드 – 스마트계약 관련 트랜잭션 처리 | |
Application | – 이더리움과 인터페이스 기반 스마트계약 어플리케이션 |
다. 스마트계약 절차
절차 | 설명 |
---|---|
Contract Creation /Deployment | – Byte Code 생성 시 트랜잭션 수행 – Contract 생성 후 contractAddress에 생성된 contract 주소 사용 |
Message Transaction | – Contract 함수 실행 트랜잭션(쓰기) – 계약 저장, 변경 시 수행(Gas소모) |
Call | – Contract 함수 실행 트랜잭션(읽기) – 노드의 Contract를 로컬에서 수행 |