블록체인 10강,11강

이더리움

Posted by 동식이 블로그 on June 11, 2019

이더리움과 스마트계약

제 10강 이더리움과 스마트계약1

  • 이더리움 출현
    • Vitalik Buterin의 이더리움
      • 차세대 스마트 계약과 비집중화된 응용 플랫폼
  • 이더리움 현황

    • 현황 및 계획
      • Homestead 버전의 시스템이 출시되어 2017년까지 현장에서 운영
      • Metropolis(Byzantium)버전 2017년 10월 출시
      • Serenity 버전의 시스템 출시 예정
      • Serneity 버전에서는 비트코인과 융사한 작업증명 기반의 현재의 채굴과 합의 알고리즘이 소유 증명 기반으로 변경 예정
  • 이더리움 목표
    • 이더리움 개발 목표
      • 어떤 형태의 비즈니스 계약도 프로그램으로 작성하여 블록체인에 저장하고, 관련 참여자들이 적절하게 계약 프로그램을 실행하고, 실행 결과를 블록체인에 저장할 수 있는 가상 머신 개발
      • 스마트 계약 저장과 실행을 위한 World Computer 개발
  • 스마트 계약
    • 스마트 계약

      • 외부 참여자에 의해 작성되어 블록체인에 저장된 실행 가능한 프로그램

      • 자체 계좌(Contract Account)를 가지고, 실행 결과를 블록체인에 저장할 수 있으며, 관련 외부 참여자와 거래(transaction)를 통해 다양한 형태의 통신 가능

      • 이더리움 거래의 당사자로 참여(내부 참여자)
      • ex) 에스크로(Escrow) 프로그램

        • 구매자는 스마트 계약과의 거래 실행을 통해 스마트 계약의 계좌로 구매대금 지불
        • 스마트 계약은 판매자에게 지불 사실 통보
        • 판매자는 상품을 전달한 후 스마트 계약에게 통보
        • 스마트 계약은 판매자 계좌로 구매대금 이체
      • ex) DAO(Distributed Autonomous Organization)

        • 블록체인 상에 스마트 계약으로 작성된 벤쳐 투자 회사
        • 2016년 이더리움 재단에서 Solidity로 작성하고 운영(11.5M ETH 규모)
        • 투자자 모집, 지분에 따른 권한 배분, 투자금 회수, 투자 프로젝트 결정 등 조직의 모든 운영을 스마트계약 프로그램과 투자자의 거래를 통해 수행
    • 스마트 계약의 작성

      • 외부 참여자가 작성
      • 스마트 계약 생성 거래를 통해 블록체인에 저장
    • 스마트 계약의 실행

      • 외부 참여자가 스마트 계약과의 를
  • 이더리움 계좌 자료 구조
    • 계좌 자료구조
      • 넌스
      • 잔고
      • 저장소루트
      • 코드해
    • EOA의 주소 추론 과정
      • A = keccak256(K)
      • keccak256 : NIST가 HSA256 후속 표준인 HSA3을 만들기 위해 제안된 해시 알고리즘
    • CA의 주소 추론 과정
      • Aca = kecca256(Aeoa+nonce)

11강 이더리움 스마트계약2

이더리움 통화

  • ETH의 발행

    • 참여자간의 지불 거래와 거래 수수료 지불을 위해 자체화폐(ETH) 발행
    • 초기 이더리움 프로젝트 수행 비용 조달을 위해 크라우드 세일(Crowd Sale) 방식으로 72,009,990,49948 ETH 선 발행
    • 이후 약 14초 마다 블록 채굴 보상금으로 일정액의 ETH를 계속 발행
    • 블록 보상 : 정규 블록 보상 (5ETH → 3ETH), 삼촌 불록 보상(87.5%), 조카 블록 보상(3.125%)

스마트 계약의 실행

  • 가스 공급 기반의 거래를 통한 실행
    • 거래 실행 시에 실행에 요구되는 명령(instructions)의 종류와 수에 상응하는 비용을 지불
    • 자체 통화인 이더(ETH) 기반의 가스 공급(gas fueling) 메커니즘을 거래 실행에 도입
    • 이더리움의 거래는 소비할 수 있는 가스 한도를 명시하므로 무한정 많은 량의 가스 소비가 불가능
    • 공격자가 무한 루프를 사용한 DoS 공격 시도 불가
  • 거래 유형
    • 계약 생성 거래(contract creation transaction)
      • EOA의 참여자가 Solidity 등으로 계약 프로그램을 작성하여 블록체인에 실장하기 위해 네트워크로 송신
      • 채굴자에 의해 처리되어 블록체인에 저장되면 해당 계약 프로그램에 의해 제어되는 CA가 생성되고 CA의 주소가 반환
    • 메시지 전송 거래(message transfer transaction)
      • 송신자 계좌와 수신자 계좌 간에 메시지를 전송
      • 수신 계좌가 EOA인 경우 메시지는 단순히 ETH 통화를 포함
      • 수신 계좌가 CA인 경우 CA의 계약 프로그램의 특정 함수를 호출하는 데 필요한 데이터를 추가로 포함 가능
  • 거래 자료 구조
    • 넌스(nonce)
    • 가스가격(gasPrice)
    • 가스한도(gasLimit)
    • 수신자(to)
    • 값(value)
    • v, r, s(공개키와 주소 복구가 가능한 서명 정보)
    • 시작코드(init)
    • 데이터(data)

스마트 계약 실행을 위한 가스 공급

  • 가스 - 암호 연료
    • 이더리움 거래 수수료는 필수로 설정
    • 거래 실행에 포함되는 명령의 종류와 수에 의해 결정
    • 송신자가 지불한 전체 수수료에서 거래 실행 과정에서 수행되는 명령 마다 필요한 수수료를 사용
    • 거래 실행이 안료되면 지불된 전체 수수료 중 명령 수행에 사용된 수수료를 제외한 나머지를 송신자 계좌에 반환