You are on page 1of 15

2023-11-30

스마트 컨트랙트 개요

스마트 컨트랙트란?

https://hakin9.org/the-truth-about-smart-co

2
2023-11-30

스마트 컨트랙트란?

스마트 컨트랙트 (Smart Contract)

• 블록체인 네트워크 안에서 돌아가는 코드

• 블록체인 기반의 애플리케이션을 완성시키기 위한 코드

• 블록체인 기반의 애플리케이션의 규칙과 규정들을 디지털로 정의하고 강제하기 위한 코드

스마트 컨트랙트란?

• 1994년 Nick Szabo가 제시한 개념

• 자동화된 보안 프로세스를 기반으로 구축된 디지털 마켓


플레이스를 구축하기 위한 방법으로 스마트 컨트랙트 활용을 제안

https://www.google.com/url?sa=i&url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv
%3DvXCOfTteQAo&psig=AOvVaw0vuyaPyWjkfQlhyfU_uo2&ust=1689854068473000&sour
ce=images&cd=vfe&opi=89978449&ved=0CBEQjRxqFwoTCKDzuo3bmoADFQAAAAAdAA
AAABAE

4
2023-11-30

스마트 컨트랙트란?

스마트 컨트랙트란?

• 스마트 컨트랙트는 계약 조건을 실행하는 전산화된 거래 프로토콜

• 스마트 컨트랙트는 일반적인 계약 조건 (지불 등)을 충족하고, 중개자의 필요성을 최소화 하는 것이 목표임

6
2023-11-30

스마트 컨트랙트란?

Input output

ether token

동전 음료수

스마트 컨트랙트란?

https://www.google.com/url?sa=i&url=https%3A%2F%2Flitslink.com%2Fblog%2Fsmart-
contract-in-
blockchain&psig=AOvVaw02JHL0vSUDAHvrI0A26bXS&ust=1689855094674000&source
=images&cd=vfe&opi=89978449&ved=0CBEQjRxqFwoTCMi_2vbemoADFQAAAAAdAAA
AABAg

8
2023-11-30

스마트 컨트랙트 특징

• 불변성
• 블록체인에 배포된 스마트 컨트랙트는 수정 및 삭제가 불가능

• 투명성
• 블록체인에 배포된 스마트 컨트랙트의 내용은 전부다 공개됨

• 자동화
• 조건이 충족되면 자동으로 실행됨

스마트 컨트랙트 동작 과정

컴파일 트랜잭션 배포

스마트 컨트렉트 바이트 코드 변환 블록에 저장 블록체인에 저장


생성
기계어로 변환

10

10
2023-11-30

스마트 컨트랙트 동작 과정

컴파일

스마트 컨트렉트 생성 바이트 코드 변환

11

11

스마트 컨트랙트 동작 과정

트랜잭션 배포 EVM에 의해서 동작

블록에 저장

12

12
2023-11-30

스마트 컨트랙트 동작 과정

이더리움 노드
EVM (Ethereum Virtual Machine) 이란
합의
• 이더리움 블록체인에서 작성된 스마트 컨트랙트 코드를 실행하는데 사용
저장
• 블록체인 노드들이 가지고 있는 가상 환경
네트워크
• 실행된 기록이 상태를 변화 시킬 경우 블록에 다시 기록함
EVM

1+1 = 2 1+1 = 2 1+1 = 2

sc sc sc

1+1 = 2 1+1 = 2

sc sc

13

13

스마트 컨트랙트 수수료


Gas Price (가스 가격)

• 이더리움 트랜잭션을 처리하는데 사용되는 가격

• 트랜잭션을 발생하는 모든 행위에는 가스가 소모됨


• 이더리움 전송
• 스마트 컨트랙트 동작
• 스마트 컨트랙트 발행

• Gas Price를 높게 잡으면, 트랜잭션이 빨리 처리됨

Gas Limit (가스 한도)

• 하나의 트랜잭션에 사용할 수 있는 최대 가스 양

https://ezio.tistory.com/108
14

14
2023-11-30

스마트 컨트랙트 수수료

수수료 / Gas 가 필요한 이유

• 이더리움 암호화폐 생태계 유지

• 악의적인 사용자 방지

• 무한 루프 방지

15

15

스마트 컨트랙트 언어

Solidity

• 객체 지향

• C++과 유사한 형태

• 가장 많이 사용되는 언어

• 상속 및 라이브러리 사용 가능

16

16
2023-11-30

스마트 컨트랙트 언어

Vyper

• 파이썬과 유사한 형태

• 사용자에게 가장 친숙함

• 기능이 적기 때문에 빠른 데모 버전을 생성할 수 있음

17

17

스마트 컨트랙트 언어

YUL, YUL+

• Low Level을 지원하기 위한 언어

• 스마트 컨트랙트 최적화를 위해서 사용하기 좋음

18

18
2023-11-30

스마트 컨트랙트 언어

FE

• 파이썬과 러스트 언어의 영향을 받음

• EVM 과 직접 상호작용 하기 위한 언어

• 아직 개발중

19

19

스마트 컨트랙트 언어

FE

• 파이썬과 러스트 언어의 영향을 받음

• EVM 과 직접 상호작용 하기 위한 언어

• 아직 개발중

20

20
2023-11-30

스마트 컨트랙트 개발 도구

1. 탭

2. 메인 화면

3. 콘솔 화면

21

21

스마트 컨트랙트 개발 도구

22

22
2023-11-30

스마트 컨트랙트 개발 도구

스마트 컨트랙트 테스팅, 컴파일, 배포를 자동화 할 수 있는 도구

23

23

스마트 컨트랙트 개발 도구

24

24
2023-11-30

스마트 컨트랙트의 한계
• 개발의 어려움
• 일반 사용자가 작성할 수 없는 형태

https://www.google.com/url?sa=i&url=https%3A%2F%2Fcryptoast.fr%2Fles-ricardian-contracts-avenir-smart-
25
contracts%2F&psig=AOvVaw1X7DQgUoh97ELkcEFdogR9&ust=1689861439514000&source=images&cd=vfe&opi=89978449&v
ed=0CBEQjRxqFwoTCKCCicj2moADFQAAAAAdAAAAABAE

25

스마트 컨트랙트의 한계
• 직접적인 읽기 어려움

26

26
2023-11-30

스마트 컨트랙트의 한계
• 직접적인 읽기 어려움

27

27

스마트 컨트랙트의 한계
• 가스비 최적화 문제

28

28
2023-11-30

스마트 컨트랙트의 한계
• 수정 및 재배포의 불가능

• 안전한 코드 기준의 없음

https://medium.com/haechi-audit-kr/%EC%8A%A4%EB%A7%88%ED%8A%B8-
29
%EC%BB%A8%ED%8A%B8%EB%9E%99%ED%8A%B8-
%EB%B3%B4%EC%95%88%EA%B0%90%EC%82%AC%EB%9E%80-dd6c36da7608

29

You might also like