스마트 컨트랙트

citron03·2022년 3월 10일
1

블록체인

목록 보기
4/19
  • 스마트 컨트랙트는 블록체인 네트워크 위에 호스팅되어 실행되는 프로그램이다.
  • 조건을 지정해두고, 해당 조건이 충족되면 미리 정해둔 계약이 이행되는 방식으로 코드가 작성된다.
  • 탈중앙화된 블록체인에서 실행되기에, 계약 조건이나 이행 내용을 변조하기 어렵고 계약을 위해서 신뢰할만한 제삼자가 필요하지 않다.
    🍍 스마트 컨트랙트의 개념을 만든 닉 사보는 이것이 자판기와 같다고 말했다.
  • 코드가 블록체인 네트워크에 올라가면, 네트워크는 미리 결정된 조건이 충족되고 검증된 경우 조건에 따른 액션(계약 이행)을 실행한다.
  • 완료된 트랜잭션은 블록체인에 올라가고, 이는 스마트 컨트랙트에서 한 번 액션이 실행되면 수정하거나 취소할 수 없다는 것을 의미한다.
    🍒 스마트 컨트랙트는 조건에 따른 결과가 결정되어 있기에 결정론적인 상태인 다자간 디지털 계약이다.

스마트 컨트랙트의 장점

  1. 스마트 컨트랙트는 블록체인 인프라 위에서 실행되기에 모든 노드들이 스마트 컨트랙트와 이행 결과를 가지며, 이는 변조나 공격의 위험에서 안전하다.
    🍅 보안이 좋다.
  2. 스마트 컨트랙트 로직은 조건에 부합하여 계약이 이행되면 블록체인 네트워크의 노드들에게 여러번 수행되고 검증되기에 위변조가 어렵고 정확도가 높다.
    🍅 신뢰성이 높다.
  3. 계약 조건을 공유하고 강제하기 위해서 분산화된 블록체인 네트워크를 사용하기에 영리적인 목적의 중개자가 필요하지 않다. (수수료가 없다)
    🍅 공평하다.
  4. 계약 이행을 자동화하기에 계약 당사자들이 수동으로 데이터를 입력하거나, 상대방의 계약 의무 이행 여부를 검증하거나, 중개자가 계약을 집행하는지 확인할 필요가 없다.
    🍅 효율적이다.

비트코인에서 스마트 컨트랙트

  • 블록체인은 디지털이며 위조를 방지할 수 있고, 제삼자가 필요하지 않기에 스마트 컨트랙트를 지원할 수 있다.

  • 하지만, 비트코인은 Opcode(오피코드)를 사용해 화폐 거래를 위한 제한적인 스크립트만 작성할 수 있었기에 프로그램 구현에 제약이 많다.
    🍉 Opcode는 비트코인에서 스마트 컨트랙트를 동작시키는 연산들의 집합을 의미한다. (opcode는 C++로 작성되었다)

  • 비트코인은 스크립트(script)라는 스크립트 언어로 스마트 컨트랙트를 구현한다. (비트코인 스크립트)

  • 비트코인 스크립트는 보안상의 이슈로 반복문 opcode가 빠져 튜링 불완전하다.

  • 비트코인은 최초의 블록체인 알고리즘이지만, 확장성이나 성능등의 한계가 존재했다. 또한 비트코인의 스마트 컨트랙트는 연산에 대한 수수료가 비쌌기에 실질적으로 사용이 어려웠다.

이더리움에서의 스마트 컨트랙트

  • 이더리움은 프로그래밍이 가능한 스마트 컨트랙트를 위한 블록체인이다.

  • 이더리움은 Solidity(솔리디티)라는 언어를 사용하여 스마트 컨트랙트를 위한 코드를 작성한다.
    🍓 솔리디티는 객체 지향, 정적 타입, 고급 스크립트 언어이다.
    🍓 솔리디티는 튜링 완전한 언어이다.
    🍓 솔리디티를 계약 지향언어라고도 한다.

  • 이더리움의 스마트 컨트랙트에서는 반복문이 사용될 수 있고, 이에 따라서 무한 루프 문제가 일어날 수 있다. 이를 방지하기 위해서 이더리움의 트랜잭션에는 수수료(가스)를 지불해야 한다.

  • 솔리디티로 작성된 코드는 EVM(Ethereum Virtual Machine)를 통해서 이더리움 블록체인 위에서 실행된다.
    🥭 이더리움은 여러 개의 독립적인 스마트 컨트랙트를 실행할 수 있기에, World Computer라고 불리기도 한다.

  • 누구든지 dApp(분산형 어플리케이션)을 이더리움 네트워크에 배포할 수 있다.

  • 비트코인은 무허가 퍼블릭 트랜잭션만 허용하는 반면, 이더리움은 허가 / 무허가 트랜잭션 모두를 허용한다.

  • 이더리움은 블록 생성에 대한 보상을 제공하지 않는다. 그 대신에 채굴 노드가 트랜잭션 수수료를 받게 한다.

참고 자료 출처 : 코드 스테이츠

profile
🙌🙌🙌🙌

0개의 댓글