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