스마트 계약 (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를 로컬에서 수행

 

콘텐츠 사용 시 출처 표기 부탁 드리고, 궁금한 점이나 의견은 댓글 남겨주세요^^