스마트컨트랙트

요니·2022년 11월 24일
0

스마트컨트랙트

  • 블록체인 네트워크에서 조건을 지정해두고, 해당 조건이 충족되면 미리 정해둔 계약을 이행하는 방식
  • 중앙집중적 서버가 아닌 탈중앙화된 블록체인에서 실행하기 때문에 계약조건이나 이행 내용을 변조하기 어렵고 계약을 보증할 제 3자가 필요x

동작방식

if (이벤트 x 가 실행되면){
  y	를 실행하라
}

장점

  • 보안: 계약에 대한 중앙회된 공격지점이 없고, 누군가에게 뇌물을 주고 계약내용이나 결과를 변조할 위험이 없음
  • 신뢰성: 스마트컨트랙트 로직이 조건에 부합해 계약이 이행되면 네트워크에 있는 노드들에 의해 여러번 검증되기 때문에 위변조가 어렵고 정확성이 높음
  • 공평함: 계약조건을 공유하고 강제하기위해 분산화된 블록체인 네트워크를 사용하기 때문에 수수료 등 중개자가 필요x
  • 효율성: 계약 이행을 자동화해서 효율 높임

비트코인

UTXO

비트코인 스크립트

  • UTXO는 일종의 계약으로 정의될 수 있고, 이 계약은 유효한 해제조건을 주면 잠긴 비트코인을 이동시킴. <<스마트컨트랙트

이더리움

  • 블록체인 기술을 활용해 스마트컨트랙트와 암호화폐 거래를 제3자 없이 안전하게 이루어질 수 있도록 하는 오픈소스 서비스
  • 누구든지 디앱을 이더리움 네트워크에 배포할 수 있음
  • 솔리디티 사용
  • 이더리움 네트워크에 올라간 솔리디티 코드는 EVM을 통해 실행됨

비트코인과 이더리움의 차이점
비트코인은 암호화폐를 거래하는 반면, 이더리움은 스마트 컨트랙트를 활용한 분산 어플리케이션(dApp)을 만들 수 있도록 솔리디티 언어와 EVM(Ethereum Virtual Machine)을 지원합니다.
비트코인은 무허가 퍼블릭 트랜잭션만을 허용하지만, 이더리움은 허가 트랜잭션과 무허가 트랜잭션을 모두 허용합니다.
비트코인에서는 플랫폼을 실행하고 트랜잭션을 검증하는 채굴 노드가 보상받습니다. 기본적으로 새로운 블록을 만드는 첫 번째 컴퓨터가 비트코인을 보상으로 받습니다. 반면, 이더리움은 블록 생성에 대한 보상을 제공하지 않으며, 대신 채굴 노드가 트랜잭션 수수료를 받을 수 있도록 합니다.

EVM

  • 코드와 이더리움 블록체인 사이에 있는 가상 머신, 블록체인에서 코드가 실행될 수 있도록 함
  • 솔리디티를 읽을 수 없기때문에 solc를 이용해 컴파일해서 바이트코드 형태로 만듦 => Geth를 이용해 이더리움 네트워크에 올림

솔리디티

  • 객체지향, 정적타입, 고급 스크립트 언어

실행 비용 (gas)

  • 트랜잭션 실행 수수료

    수수료를 지불하는 이유
    이더리움은 튜링 완전 언어이기 때문에, 튜링 불완전한 비트코인 스크립트와는 달리 반복문을 지원합니다. 그러나 반복문의 가장 큰 단점은 무한 루프 문제가 일어날 수 있다는 것입니다. 만약 악의적인 사용자가 큰 자원을 소모하는 무한 루프 코드가 들어있는 트랜잭션을 실행시킨다면, 트랜잭션은 이더리움 네트워크의 엄청난 양의 자원을 소모하게 될 것이고, 심각하게는 이더리움 네트워크 전체가 멈출 수도 있습니다.
    수수료는 이러한 악의적인 공격으로부터 네트워크를 보호합니다. 연산마다 수수료를 부과하면 악의적인 사용자라도 수수료를 지불해야 하므로 쉽게 무한 루프 코드를 실행시킬 수 없습니다. 또한 의도치 않게 무한 루프를 만든 코드를 실행시키더라도 Gas Limit을 설정해두면 지정해둔 가스를 다 소모하기 전에 실행을 멈출 수 있습니다.

프라이빗 블록체인

하이퍼레저 패브릭과 체인코드

  • 프라이버시와 기밀성: 패브릭의 채널(Channel)은 네트워크의 특정 하위 노드 집합에게 트랜잭션 프라이버시와 기밀성을 보장
  • 효율적인 처리: 네트워크의 동시성과 병렬성을 제공하여, 트랜잭션 실행을 트랜잭션 정렬 및 커밋과 분리
  • 체인코드 기능: 이더리움의 스마트 컨트랙트에 해당하는 체인코드를 제공
  • 모듈식 설계: 아키텍쳐들을 모듈식으로 구현하여 필요한 모듈들을 가져다 쓸 수 있도록 선택권을 제공

스마트컨트랙트의 활용

오라클 문제

  • 오라클은 web API나 마켓데이터 피드와 같은 방식을 통해 블록체인과 스마트컨트랙트용 외부데이터를 검색하고 검증하는 것을 의미
  • 오라클문제는 서드파티 오라클과 스마트컨트랙트의 무신뢰성 실행간 보안, 인증, 신뢰 등 충돌문제에 관한 것. 데이터에 대한 자체적인 판단 능력 x
  • 컴퓨터는 입력받은 값에 대해 정해진 행동을 하므로, 조종할 수 없는 새로운 데이터 생성은 x

스마트컨트랙트를 활용한 새로운 서비스들

  • 금융상품 (DeFi)
    Decentralized Finance. 스마트컨트랙트를 활용해 코인거래, 자산관리 등 전통적인 금융서비스를 재창조하고 새로운 서비스를 만들어 제공
  • 게임과 NFT
    게임 내 액션의 변조방지를 위해 스마트컨트랙트 사용
  • DAO
    컴퓨터 프로그램으로 인코딩되고 조직 구성원들이 통제, 중앙정부의 영향을 받지 않는 규칙들로 구성된 조직. 새로운 분산형 비즈니스 모델 제공
  • ICO
    Initial Coin Offering, IPO같은 느낌. 투자자들에게 투자금을 받고 그 대가로 코인을 나눠줌
  • 브릿지
    토큰이나 임의의 데이터를 하나의 체인에서 다른 체인으로 전송할 수 있게 하는 연결

활용 사례

  • 일정한 형식의 반복적인 계약이 많은 경우
    보험업에서 특정 조건을 만족시키면 계약에 대한 보상이 지급되도록 작성, 조건 성취시 자동으로 보험금 지불 (AXA, Fizzy => 비행시간이 지연되었을 경우 자동으로 제공하는 여행보험상품)
  • 원격자 간 계약체결이 필요한 경우
    집이나 자동차를 공유하는 경우, 계약조건을 정하고 이에 따라 금전 혹은 서비스 제공
  • 제품의 유통 추적이 필요한 경우
  • 저작권 등
profile
개발자가 될래요

0개의 댓글