IT와 비즈니스를 연결하다.

[블록체인] 블록체인(On-Chain)과 외부 세계(Off-Chain)를 이어주는 가교 '오라클(Oracle)'을 읽고... 본문

IT 관련 소식/블록체인

[블록체인] 블록체인(On-Chain)과 외부 세계(Off-Chain)를 이어주는 가교 '오라클(Oracle)'을 읽고...

sujiinsight 2018. 9. 16. 18:40

1.  블록체이란?

  1. 모든 노드가 동일한 기록을 저장하는 수평적인 분산 원장 네트워크
  2. 특정한 합의 알고리즘에 기반하여 새로운 블록을 생성함
  3. 블록체인 네트워크가 성장하면 할수록 이를 유지하기 위해 더 많은 채굴과 시간 자원을 필요로 함

2. 블록체인 네트워크의 성장에 걸림돌이 되는 '블록 용량의 한계'

   블록체인 밖의 데이터를 내부로 가져올 때 생기는 '오라클 문제'

 

3. 블록 용량 한계로 인한 대용량 데이터 저장 및 전송 불가

  1. 블록 하나 당 저장할 수 있는 데이터의 양이 제한적
  2. 각 블록체인 네트워크의 용도에 맞게 어떤 데이터를 얼마만큼 저장할 것인지 신중히 결정해야함
  3. 주로, 타임스탬프, 이전 블록의 해시값, 거래 내역 등의 데이터가 블록에 담김
  4. 확장성 문제에 접근하는 관점은 온체인(On-Chain)오프체인(Off-Chain)으로 나뉨
    1. 블록체인 자체를 확장하는 방식, 'On-Chain Scaling(온체인 스케일링)'
      • 온체인(On-Chain)이란 블록체인 위에 거래 내역(데이터)를 기록하는 방식을 의미함
      • 따라서, 확장성 문제에 접근하는 관점도 '블록체인 그 자체를 확장하는 것'에서 시작함
      • 빅블록(Big Block)
        • 빅블록의 전환은 일부 코드만 수정하면 될 정도로 아주 간단한 작업
        • 블록의 크기가 늘어나면 수수료가 줄어들고 더 많은 거래 내역을 저장할 수 있음
        • 개인이 아닌 전문채굴업체만이 채굴 작업을 지속하 수 있게됨
        • 채굴이 중앙집권화될 가능성이 높음
        • 블록체인 네트워크 구성원들을 설득한느게 관건
        • 빅블록 전환하려면 하드포크 (블록체인 플로토콜이 어느 한 시점에서 급격하게 변경되는 것을 뜻함)가 필수적인데, 만일 모든 네트워크 구성원들이 구버전에서 신버전으로 업데이트를 하지 않으면 네트워크가 분리됨
    2. 블록체인 외부에 데이터를 기록하는 방식, '오프체인(Off-Chain)'
      • 오프체인(Off-chain)이란 블록체인 밖에 데이터를 저장하는 것을 의미함
      • 분산 파일 시스템(Distributed file system, DFS)
        • P2P로 모든 컴퓨터들이 네트워크를 통해 파일을 공유하는 시스템
        • 파일을 여러 개로 쪼개어 다수의 서버에 저장하는데 각각의 파일 조각들은 고유한 해시(Hash)값으로 ㅛ현됨
        • 쉽게 말해 각각의 파일에 접근할 수 있는 주소(링크)라고 이해하면 됨
        • 어떤 파일을 필요로하는 사용자는 해시(Hash)값을 통해 다른 노드에 파일을 요청할 수 있음
        • 파일 조각을 가진 노드들이 파일을 사용자에게 전달함
        • 분산 파일 시스템에 종류 중 블록체인과 자주 거론되는는 IPFS(Inter-Planetary File System) 솔루션을 설명하려고 함
          • 데이터의 탈중앙화를 위한 웹 분산화 프로토콜이며, 각각의 컴퓨터(노드)에 해시 파일을 저장하고 이를 P2P 통신으로 공유하는 시스템임
          • IPFS 프로토콜은 이미지, 동ㅇ영상 등의 용량이 큰 파일일을 해시값으로 변환함
          • 이러한 해시값은 용량이 아주 작아서 블록에 직접 기록할 수 있따는 장점이 있음
          • 블록에 '거래내역'과 '데이터 해시값'을 같이 입력한다면 '해당 거래에서 어떤 데이터가 전송되었고 이에 대한 대가로 얼마만큼의 코인을 지블했는지'처럼 구체적인 거래 내역을 블록체인에 기록할 수 있음
          • IPFS는 파일을 전달바을 때 파일 조각끼리 중복(같은 내용의 파일 조각)이 발견될 경우 이를 인지할 수 있어서, 대용량 파일도 효율적으로 전달할 수 있음
          • 노드가 파일 데이터를 저장하도록 장려하고자 적절한 보상을 제공해야함
          • IPFS개발팀은 '파일 코인(Filecoin)'이라는 탈중앙화 저장소 네트워크를 만들어 IPFS 파일 저장을 장려하고 있음
          • 모든 사람의 파일의 해시값을 얻을 수 있어서 쉽게 파일을 전달바을 수 있다는 특성은 분명히 편의성 측면에서 장점
          • 모든 사람에게 파일이 공유될 수 있으므로 민감한 정보가 담긴 파일은 IPFS에 적합하지 않음
          • 이런점을 보완하고자 애초에 IPFS에 파일을 올리기 전에 파일을 암호화하는 방법이 등장함. 파일을 암호화하면 악의적인 사용자가 파일을 전달받더라도 복호화 키가 없으니 파일을 열람할 수 없음
        • 라이트닝 네트워크(Lightning Network)
          • 같은 거래 당사자가 비트코인 블록체인 상에서 수 차례의 거래를 진행할 시, 이 모든 내용이 블록체인에 입력되어 블록의 용량을 차지하고, 사용자들이 높은 수수료를 지불해야하는 단점을 보완하고자 제시된 솔루션
          • 거래 당사자들의 동의 하에 비트코인 블록체인 외부에 새로운 거래 채널을 열어 여러 번의 거래를 진행함
          • 어느 정도 거래 내역이 모이면 채널을 닫고 최종 거래 내역을 블록체인 상에 기록함
          • 즉, 여러 번의 거래를 진행하더라도 두 번의 거래로 인정되어 수수료를 절약할 수 있음
          • 블록체인 상에 거래 내역을 기록할 때 이를 암호화해서 당사자 외에는 거래 기록을 열람할 수 없도록 조치할 수 있음
          • 소규모 겨제 및 다수 간의 거래 가능하고, 당사자 모두가 승인(서명)을 해야만 거래가 인정됨
          • 일정 시간이 지나도 블록체인에 거래가 기록되지 않으면 해당 거래를 무효화하고 거래되었던 코인을 원래대로 되돌릴 수 있음
          • 다만, 일회적이 ㄴ거래를 진행하는 경우에는 비트코인 블록체이 ㄴ상에서 거래를 진행하는 것보다 시간과 수수료를 많이 지불해야 한다는 단점이 있음
          • 라이트닝 네트워크를 이용하려면, 일정량의 암호화폐를 채널 안에 미리 예치해두어야함
          • 아직까지 사람들은 암호화폐보다 명목화폐를 더 선호하므로, 코인을 현금화하기 위해 채널을 닫아버릴 가능성이 높음. 그러므로 암호화폐 거래가 보편적이지 않은 현재 시점에서 라이트닝 네트워크를 유지한다는 것은 어려움
    3. 스마트 계약을 완성하는 마지막 퍼즐 한 조각, '오라클(Oracle)'
      1. '외부의 데이터를 블록체인 내부로 어떻게 들여와야 하는가"에 대한 이슈
      2. 블록체인 상에 외부 데이터가 필요한 이유는 무엇일까?
        1. 스마트 컨트랙트가 제대로 작동하기 위해서는 현실 세계에서 일어난 사건(외부 데이터)을 블록체인 네트워크가 인지해야 하기 때문에
          • 분산화된 네트워크인 블록체인은 중개인에게 의존하지 않고, 계약 이행 조건이 충족되었음을 스스로 인지해야 하기 때문
        2. 스마트 컨트랙트(Smart Contract)란, 중개자 없이 거래 당사자끼리 디지털 명령어로 계약을 작성해서 특정 조건이 충족되면 계약 내용이 자동으로 이행되는계약 자동화 시스템임
        3. 스마트 컨트랙트 등장의 계기로, Dapp들이 이더리움(Ethereum) 블록체인 플랫폼 위에 다양한 비즈니스 모델을 구축할 수 있게 됨
        4. 블록체인 2.0의 시작
        5. 블록체인 기반이라 계약 내용이 모든 사람들에게 공개되기에 함부로 악의적인 행위를 하기가 어려움
        6. 계약 조건만 충족되면 무조건 시행되기 떄문에 계약 사항이 불이행 될 위험도 없음
        7. 중개인 수수료 없이, 개인과 개인이 수평적으로, 계약 불이행 위험 없이, 투명하고 강제적으로 이행되는 계약 시스템
        8. 블록체인 네트워크 외부(Off-Chain)에서 데이터를 가져오는 게 왜 어려울까?
          • 외부에서 데이터를 불러오는 경우 다음과 같은 이슈(Oracle Problem)가 생기기 때문
            • 어떤 채널에서, 어떤 주체로부터, 어떤 데이터를 수집할 것 인가?
            • 데이터 전송 과정에서 위변조 가능성이 있는가?
            • 외부에서 가져온 데이터를 신뢰할 수 있는가?(데이터의 무결성)
      3. 블록체인과 외부 세계를 연결하는 통로, 오라클(Oracle)의 유형
        1. 오라클은 외부 세계의 데이터를 블록체인 네트워크 내로 들여오는 기술
        2. 현실 세계의 데이터를 찾아서 진위 여부를 확인하고 이 정보를 블록체인 네트워크에 제출하는 역할을 함
        3. 하드웨어 오라클(Hardware Oracle) 스프트웨어 오라클(Software Oracle)로 나뉨
        4. 하드웨어 오라클
          • 외부 변화를 감지해서 데이터를 송신하는 센서를 의미함
          • 센서는 온도, 음식의 부패 정도, 특정 물품의 파손율, 온실가스 배출량 등, 현실 세계의 다양한 정보들을 데이터화하여 블록체인 네트워크에 제공할 수 있음.
          • 예를들어, 자판기 내부에 센서가 있으니 커피 원두가 얼마나 암았는지 자동으로 인식할 수 있음. 자판기 내에 남은 원두의 양이 100g 이하가 되면 A업체에서 자동으로 새로운 원두 5KG를 주문한다라는 스마트 컨트랙트를 셋팅할 수 있음
          • 즉, 센서가 현실 세계의 사건을 블록체인에 보고하게 함으로써 거래/구매 프로세스를 자동화할 수 있음
        5. 소프트웨어 오라클
          • 온라인 상의 신뢰할 수 있는 채널(ex. 기상청, 중앙은행, 항공사 홈페이지 등)로부터 데이터를 가져오는 것을 의미함
          • 환율, 상품의 가격, 비행기 또는 기차의 연착 정보, 선거 결과 등, 웹 사이트에서 얻을 수 있는 데이터를 모아 블록체인 네트워크에 제공하는 것
          • 예를 들면, 특정 업체 주식의 주가가 000원에 도달하면 해당 주식을 10주 구매한다 또는 미국 달러와 한국 원화 사이의 외환율이 00% 이하가 되면 USD 달러를 000원 어치 자동으로 환전한다. 당의 스마트 컨트랙트를 셋팅가능함.
        6. 소프트웨어 오라클, 하드웨어 오라클 유형 외의 오라클
          • 블록체인 상에서 발생하는 거래 데이터를 외부로 전송하는 '아웃바운드 오라클(Outbound Oracles)'임
          • 적용 예시로는 A가 자전거를 빌리는 대가로 B에게 코인을 지불하면 스마트 컨트랙트가 B의 자건거 IOT 자물쇠 잠금장치를 일정시간 도안 해제하는 역할을 할 수 있음.
        7. 오라클 문제(Oracle Problem)는 어떻게 풀어햐 할까?
          • 오라클은 복잡한 현실 세계의 데이터를 자동으로 수취하고, 이를 데이터화해서, 스마트 컨트랙트까지 안전하게 전송하는 역할을 함
          • 미들웨어(Middlewar)와 지분증명(PoS)활용함
          • 미들웨어(Middleware)
            • Dapp이 자체적으로 오라클 모델을 만들지 않아도 검증된 외부 데이터를 가져올 수 있게 타업체로부터 솔루션을 제공받는 것
            • 미들웨어는 스마트 컨트랙트가 작동하기 위해 필요로 하는 각종 측정 데이터를 API형태로 제공함
            • 미들웨어 사용이 보편화될 경우 또 다른 '중개자'가 등장할 가능성이 배제할 수 없음
            • 미들웨어가 제공하는 데이터 역시 무결성이 100% 보장되지 않는다는 점
          • 지분 증명(PoS) - Augur
            • 지분 증명(PoS)을 통해 오라클 모델을 구성하는 방법으로, Dapp에 일정 지분을 보유한 노드를 통해 오라클 모델을 구축하는 것
            • 지분 증명이란 합의 알고리즘으로, 특정 블록체인에 해당한는 지분을 보유한 노드에 새로운 블록을 생성할 수 있는 권한을 부여함
            • 지분이 많을수록 블록응ㄹ 생성할 수 있는 기회가 더 높은 확률로 주어짐
            • 과반수(51%) 이상의 지분이 동의한 블록이 더 빠르고 길게 다음 블록을 형성함
            • 한계점
              • 스마트 컨트랙트가 어떤 형식으로 데이터를 보고받을 것인지에 대한 기준을 사전에 지정해야함
              • 무결한 데이터를 입력하기 위해 매번 다수로부터 충분한양의 데이터를 보고받으려면 시간이 소요됨
              • 노드가 올바른 데이터를 보고하도록 유도하기 위해선 매번 일정 수준의 보상(수수료)을 제공해야 함
        8. '오라클'은 스마트 컨트랙트가 제대로 작동하기 위해서 꼭 필요한 시스템
        9. 하지만, 현재까지 논의된 방시과 이론들이 복잡한 현실세계에서 얼마나 효율적으로 적용될 것인지는 지켜보아야 함
        10. '오라클'은 시행착오를 거치며 보완되어야 함

Source: https://verticalplatform.kr/archives/10000