'2018/04'에 해당되는 글 2건

  1. 2018.04.21 블록체인 세계의 중재자, Oracle
  2. 2018.04.08 코인, 토큰, ERC-20 스펙

Oracle 이란?

  • Oracle은 블록체인 내부세계가 외부세계와 소통할 수 있게 중재하는 "Smart Contract"
    • 이더리움 Smart Contract는 원칙적으로 EVM 외부세계의 데이터를 참조할 수 없음 (EVM이 API를 제공하지 않음)
    • Smart Contract가 블록체인 외부세계와 연동하기 위해서는 Oracle이 필요
  • 예를 들어, 비행기 연착 보험을 Smart Contract로 구현할 경우, 비행기가 연착되었다는 정보를 외부세계(Web)로 부터 가져올 필요가 있음. 이때 Oracle이 필요함


Oraclize 란?

  • Oracle을 맨바닥부터 새로 만들 필요 없음
  • 이미 존재하는 Oracle 서비스를 이용할 수 있음. Oraclize는 그런 서비스들 중 하나 (Oralize ltd. 회사가 만듬)
  • Oraclize가 제공하는 외부세계 데이터 종류
    Datasource 설명
    URL
    임의의 URL을 HTTP Get 또는 HTTP Post 호출 (Web과 연동)
    WolframAlpha 울프럼알파 검색 엔진을 쿼리
    * 울프럼알파: http://www.wolframalpha.com/
    IPFS IPFS에 저장된 파일 내용을 쿼리
    * IPFS: Inter-Planet File System (행성간 분산 파일 시스템)
    random 추후 정리 (어느 용사가 한줄로 정리해서 알려주기를 희망...)
    computation 임의의 어플리케이션 실행 결과를 쿼리
    * 어플리케이션은 Dockerfile로 컨테이너화 되어야 함
    * 어플리케이션은 stdout에 실행결과를 출력해야 함

  • Oraclize는 정보를 Query할 때마다 수수료를 징수
    Datasource Base price Proof type
    None TLSNotary Android Ledger
    URL 0.01$ +0.0$ +0.04$ +0.04$ N/A
    WolframAlpha 0.03$ +0.0$ N/A N/A N/A
    IPFS 0.01$ +0.0$ N/A N/A N/A
    random 0.05$ +0.0$ N/A N/A +0.0$
    computation 0.50$ +0.0$ +0.04$ +0.04$ N/A


Ref


Posted by ingeeC
,

코인(Coin)과 토큰(Token)

  • 코인과 토큰은 모두 암호화폐
    • 계좌의 저장 단위 (a unit of account)
    • 가치의 저장소 (a store of value)
    • 거래의 수단 (a medium of exchange)
  • 코인은 독자적인 블록체인 네트워크를 소유
    • 비트코인 네트워크의 코인, "비트코인 (BTC)"
    • 이더리움 네트워크의 코인, "이더 (ETH)"
  • 토큰
    • 기존 블록체인 네트워크 위에서 특정 자산을 표현
    • 교환 가능한 모든 자산은 토큰으로 표현 가능
    • 토큰을 정의하는 일은 코인을 정의하는 일보다 쉬움 (기존 블록체인 네트워크를 활용하기 때문)

ERC-20 스펙

  • ERC-20 스펙이란?
    • Ethereum Request for Comment 20
    • 이더리움 위에서 발행되는 토큰의 표준
    • ERC-20 스펙에 맞게 토큰을 발행하면
      1. 이더(ETH)와 쉽게 교환할 수 있고
      2. 표준 이더리움 지갑 (MEW, Meta Mask, Mist 등)으로 자유롭게 저장/교환 가능
    • ERC-20 스펙 definition
      contract ERC20 {
          function totalSupply() constant returns (uint supply);
          function balanceOf( address who ) constant returns (uint value);
          function allowance( address owner, address spender ) constant returns (uint _allowance);
      
          function transfer( address to, uint value) returns (bool ok);
          function transferFrom( address from, address to, uint value) returns (bool ok);
          function approve( address spender, uint value ) returns (bool ok);
      
          event Transfer( address indexed from, address indexed to, uint value);
          event Approval( address indexed owner, address indexed spender, uint value);
      }
      

ref

Posted by ingeeC
,