[Blockchain] 스마트 컨트랙트

yooni·2022년 3월 10일
0

Blockchain

목록 보기
23/36
post-thumbnail

1. 스마트 컨트랙트 🤝

블록체인 기반으로 다양한 형태의 계약을 체결하고 이행하는 것

계약 당사자가 사전에 협의한 내용을 미리 프로그래밍하여 전자 계역서 문서 안에 넣어두고, 계약 조건이 충족되면 자동으로 계약 내용이 실행되도록 하는 시스템이다. 기존 블록체인 1.0 기술이 '과거에 일어났던 일'을 기록한다면, 스마트 컨트랙트를 구현한 블록체인 2.0 기술은 '미래에 일어날 일'을 미리 기록한다. 스마트 컨트랙트는 중간에 제3의 보증기관 없이 개인간 P2P 계약을 체결할 수 있도록 해주는 디지털 전자 계약이다. 일정한 조건을 만족시키면 실행되는 기능이기에 금융거래 뿐 아니라 다양한 분야의 거래와 계약에 활용 될 수 있다.

스마트 컨트랙트는 1994년 닉 재보가 처음 제안한 개념이다. 닉 재보는 스마트 컨트랙트를 '계약에 필요한 요소를 코드를 통해 스스로 실행되게 하는 전산화된 거래 약속'이라고 정의했다. 이 개념은 마치 자동판매기로 상품을 구매하는 것과 같다. 닉 재보는 스마트 컨트랙트가 적용된 디지털 화폐인 비트골드를 고안했지만, 당시 기술 한계로 구현하지는 못했다. 2015년 비탈릭 부테린에 의해 이더리움이 개발되면서 실제로 스마트 컨트랙트가 구현되었다. (엄밀히는 2009년 비트코인에서 가장 먼저 지원했지만 구현에 제약이 많았다.)



1-1. 스마트 컨트랙트의 작동 방식

모든 규칙은 스마트 컨트랙트에 의해 사전에 정의되어 있을 뿐 아니라 집행 또한 스마트 컨트랙트에 의해서 자동으로 이루어진다.


상호의존성

스마트 컨트랙트는 단독으로 작동할 수 있지만, 다른 스마트 컨트랙트와 함께 구현될 수도 있다. 특정 스마트 컨트랙트가 성공적으로 완료되면 다른 스마트 컨트랙트가 시작되도록 할 수 있다. 시스템과 조직 전체가 전적으로 스마트 컨트랙트 상에서 운영될 수도 있다.


스마트 컨트랙트의 필수 객체

  • 서명인 (스마트 컨트랙트를 이용하는 둘 이상의 당사자)
    이들은 디지털 서명을 통해 계약 조건에 동의하거나 동의하지 않는다.

  • 동의의 대상
    이것은 스마트 컨트랙트 환경 내에 존재하는 객체이거나, 스마트 컨트랙트가 아무런 제약 없이 해당 객체에 직접 접근할 수 있어야 한다.

  • 구체적인 조건
    계약의 조건은 특정 스마트 컨트랙트의 환경에 적절한 프로그래밍 언어를 이용해 수학적으로 기술되어야 한다. 여기에는 조건과 관련된 모든 규칙, 보상 및 패널티는 물론 모든 참여 당사자들에게 기대되는 요건들도 포함된다.


기본 로직

어떠한 이벤트가 실행되면 (조건, if~) → 미리 약속한 특정 액션을 실행한다. (수행, then~)

이렇게 발생된 액션은 블록체인 위에 올라가기 때문에 일단 수행이 되면 삭제하거나 수정할 수 없다. 조건에 따른 결과가 미리 결정되어 있는 디지털 계약이다.

블록체인 기반 스마트 컨트랙트는 기본적으로 모든 트랜잭션 로그가 저장된 블록체인 데이터베이스스마트 컨트랙트의 상태를 저장하는 데이터베이스 두 가지가 존재한다. 스마트 컨트랙트의 상태는 해당 어플리케이션에서 사용하는 변수라고 할 수 있으며, 이를 변경하기 위한 입력값이 트랜잭션에 포함되어 있다.



1-2. 스마트 컨트랙트의 장단점

✔️ 장점

  • 보안성
    탈중앙화된 분산형 블록체인 위에서 실행되어 중앙화된 공격 지점이 없고 위/변조 위험이 없다.
  • 신뢰성
    계약 이행이 블록체인 네트워크 상의 노드들에 의해 수행되고 검증되기 때문에 정확도가 높다.
  • 비용 절감
    영리적 목적의 중개인이 없어 비용 절감 효과가 크다.
  • 안전성
    스마트 컨트랙트를 위한 환경은 복잡한 암호화로 보호되므로 안전성을 보장한다.
  • 효율성
    데이터 입력, 계약 이행 여부 검증 및 계약 집행이 코드로 자동화 되어 있다. 또한 계약 과정이 간단하고 빠르게 계약할 수 있다.

✔️ 단점

스마트 컨트랙트의 장점인 기능이 단점으로 작용할 수 있다.

  • 초기 계약이 잘못 설정되어 문제가 발생할 수 있다.
  • 프로그래밍 코드로 동작하기 때문에 시스템 결함에 따라 문제가 발생할 수 있다.
  • 조건을 만족하는 기준과 근거가 명확하지 않을 수 있다.



📌 Reference
https://kr.cointelegraph.com/ethereum-for-beginners/what-are-smart-contracts-a-beginners-guide-to-automated-agreements
https://blog.naver.com/PostView.naver?blogId=pentamkt&logNo=222397450523&categoryNo=19&parentCategoryNo=0&viewDate=¤tPage=1&postListTopCurrentPage=1&from=postView
https://www.koreascience.or.kr/article/JAKO201823955287915.pdf

profile
멋쟁이 코린이

0개의 댓글