2023년 03월 11일 01:31

Oracle과 Chainlink



Oracle과 Chainlink



Oracle : 블록체인(On-Chain)과 외부 세계(Off-Chain)의 통신을 이뤄주는 미들웨어

Oracle Problem : 외부 세계와 블록체인 네트워크 상의 연결에서 발생하는 문제. 외부 세계의 데이터 제공처(Third Party)의 신뢰에 의존하는 문제 발생

탈중앙화 오라클 네트워크(DON) : 평판 제도와 유효성 검사를 진행하며 외부 세계와 블록체인을 연결하는 방식으로 Oracle Problem문제 해결





1. 서론

블록체인 네트워크와 외부 세계를 연결해보고 싶다는 생각을 하신 적있으신가요? 금융, 보험, 무역 등 다양한 분야에서 스마트 컨트랙트를 활용하고 싶기는한데, 시장 정보는 어떻게 가져올지, IoT 및 웹 데이터는 어떻게 가져올지, 거래 문서 정보는 어떻게 가져올지 등등 외부 세계의 자료를 블록체인 네트워크에 어떻게 가져올 수 있을지 고민을 하고는 합니다.

이런 외부 세계의 정보는 블록체인 네트워크에서 생성되지 않으며 기존 서비스에 직접적으로 접근할 수 없습니다. 더욱이 외부에서 정보를 제공하는 Third Party의 신뢰에 의존해야합니다. 우리는 이런 문제를 Oracle Problem이라고 합니다. 블록체인 네트워크를 더욱 확장하고 여러 산업에서 활용하려면 이런 문제를 해결 할 수 있어야하고, 많은 사람들이 이 문제에 대해 고민합니다.

Chainlink는 이런 Oracle Problem의 해법을 제시합니다. 해당 아티클에서는 Chainlink와 Oracle은 무엇이고 Chainlink가 Oracle Problem을 어떻게 해결하는지 알아보겠습니다.




Chainlink 홈페이지 | 출처 : https://chain.link/


Chainlink 홈페이지 | 출처 : https://chain.link/

2. 본론

블록체인 네트워크가 다양한 산업으로 확장되고 사용되기 위해서는 외부 세계와의 상호작용이 필요했지만, 상호연동이 어렵다는 문제가 있었습니다. 이런 문제를 해결하기 위한 방법 중 하나가 Oracle입니다.

Oracle이란 블록체인(On-Chain)과 외부 세계(Off-Chain)의 데이터 공급자, 웹 API, 엔터프라이즈 백엔드, 클라우드 공급자, IoT 장치, 전자 서명, 결제 시스템, 기타 블록체인 등을 포함한 모든 오프체인 시스템 간의 통신을 용이하게 만들어주는 일종의 미들웨어입니다.

분산형 Web3 생태계가 기존 데이터 소스, 레거시 시스템 및 고급 컴퓨팅에 액세스할 수 있는 방법을 제공합니다. 외부 세계에서 발생하는 이벤트를 블록체인 네트워크 상의 코드로 가져올 수 있도록 하고 기존 시스템과 상호 운용하는 고급 분산형 애플리케이션(dApp)을 지원하며 하이브리드 스마트 컨트랙트가 가능하도록 만들어줍니다.






Oracle의 기능


Oracle의 본질적인 기능은 외부 세계와 블록체인 네트워크를 연결시켜주는 것입니다. 이를 위해 Oracle은 수신, 추출, 검증 등 다양한 기능을 제공합니다.


  • Listen : 블록체인 네트워크를 모니터링하여 접근하는 사용자 또는 Off-chain 데이터에 대한 스마트 계약 요청 확인
  • Extract : 타사 웹 서버에서 호스팅되는 오프체인 API와 같은 하나 이상의 외부 시스템에서 데이터 추출
  • Format : 외부 API에서 검색된 데이터를 블록체인에서 읽을 수 있는 형식으로 형식화하거나 블록체인 데이터를 외부 API와 호환되도록 형식화
  • Validate : 데이터 서명, 블록체인 트랜잭션 서명 등 신뢰할 수 있는 실행 환경 증명 또는 영지식 증명의 조합을 사용하여 Oracle 서비스의 성능을 증명하는 암호화 증명 생성
  • Compute : 스마트 계약을 위한 안전한 Off-Chain 계산 수행
  • Broadcast : 스마트 계약에서 사용할 데이터 및 해당 증명을 On-Chain으로 보내기 위해 블록체인에서 트랜잭션에 서명하고 브로드캐스팅
  • Output : 기존 결제 네트워크에 결제 지침을 전달하거나 사이버-물리 시스템에서 작업을 트리거하는 등 스마트 계약 실행 시 데이터를 외부 시스템으로 출력

Oracle 종류


블록체인 네트워크는 금융, 게임, 무역 등 다양한 외부 세계와 연결되고자 합니다. 여러 분야의 Off-Chain과 연결되기 위해 Oracle도 다양한 종류로 제공되고 있습니다.


  • Input Oracles : 가장 널리 알려진 유형으로 외부 세계(Off-chain)의 데이터를 블록체인 네트워크로 전송해 스마트 컨트랙트를 가능하도록 합니다. Chainlink Price Feeds에 주로 사용되며 금융 시장 데이터에 대한 접근으로 DeFi 스마트 컨트랙트를 가능하도록 도와줍니다.
  • Output Oracles : Input Oracles의 반대개념으로 블록체인 네트워크의 스마트 컨트랙트가 외부 세계(Off-Chain)에 명령을 전송할 수 있도록 도와줍니다. 은행 네트워크에 지불을 통지하거나 공급된 데이터를 외부 세계에 저장해두는 등의 기능을 실행할 수 있도록 합니다.
  • Cross-Chain Oracles : 다른 유형의 Oracle들이 서로 다른 블록체인 간 정보를 읽고 쓸 수 있도록 도와주는 Oracle입니다. 서로 다른 블록체인끼리 데이터와 자산을 이동시켜 상호 운용이 가능하도록 만들어줍니다.
  • Compute-Enabled Oracles : 스마트 계약 어플리케이션에서 더욱 널리 사용되는 새로운 유형의 오라클은 “컴퓨팅 지원 오라클”입니다. 이 오라클은 안전한 오프 체인 연산을 사용하여 기술적, 법적 또는 재정적 제약으로 인해 온 체인으로 실행하기가 비현실적인 분산형 서비스를 제공합니다.여기에는 Chainlink Automation을 사용하여 사전 정의된 이벤트가 발생했을 때 스마트 계약 실행을 트리거하거나 제로 지식 증명을 계산하여 데이터 프라이버시를 생성하거나 검증 가능한 랜덤성 함수를 실행하여 스마트 계약에 변조 방지 및 공정한 랜덤성 소스를 제공하는 것이 포함됩니다.

Oracle 활용






다양한 방식으로 사용되는 Oracel | 출처 : https://xangle.io/insight/research/63c5175eec03d82c97dc00ba

외부 세계가 블록체인 네트워크와 연결되도록 도와주는 만큼 다양한 분야에서 활용되고 있습니다.


  • Decentralized Finance(DeFi) : DeFi시장에서는 외부 세계의 자산, 시장에 대한 대무데이터가 필요합니다. 때문에 Oracle 기술이 필수적입니다. Oracle은 외부 세계의 시장과 블록체인 네트워크를 연결해 자본 효율성을 향상하도록 합니다.
  • Dynamic NFTs and Gaming : Oracle은 Dynamic NFT, 게임과 같은 스마트 컨트랙트와 같은 비재무적인 분야에서도 활용가능합니다. Computing Oracle의 경우 랜덤화된다는 특성을 활용해 NFT에 활용하는 것입니다. 또한 게임 분야에서는 랜덤성을 활용해 사용자들에게 다양한 경험을 주기 위해 노력합니다.
  • Insurance : 보험 산업에서는 Output Oracle을 사용해 보험금 청구 시 지불할 수 있는 수단으로 사용합니다.
  • Enterprise : Cross-Chain Oracle을 사용해 백엔드 시스템과 블록체인 네트워크를 연결하도록 도와줍니다. 이를 통해 엔터프라이즈 시스템이 다양한 종류의 블록체인을 읽고 쓸 수 있도록 합니다. 이를 통해 시스템이 블록체인의 종류에 상관없이 자산과 데이터를 배포하는 로직을 수행할 수 있도록 활용하는 것입니다. 덕분에 사용자들이 블록체인에 빠르게 적근해서 원하는 스마트 컨트랙트를 수행할 수 있습니다.




출처 : https://blog.chain.link/what-is-the-blockchain-oracle-problem/




3개 층의 분산형 어그리게이션 | 출처 : https://chain.link/education/blockchain-oracles

Oracle Problem은 위에서 언급했듯이 외부 세계와 블록체인 네트워크 상의 연결에서 발생하는 문제입니다. 데이터를 외부 세계에서 제공받다보니 정보제공자의 신뢰에 의존하게 되는 것입니다. Chainlink는 이런 문제를 해결하는 Oracle 기술을 판매하고 있습니다. 그렇다면 Chainlink는 어떻게 Oracle Problem을 해결하는 것일까요?

Chainlink는 Oracle Problem을 해결하기 위해 탈중앙화 오라클 네트워크(DON) 네트워크를 개발했습니다. 평판 제도와 유효성 검사를 진행하며 외부 세계와 블록체인을 연결하는 방식입니다. Oracle을 활용해 외부 세계와 블록체인 네트워크를 연결하는 방법을 설명하자면 다음과 같습니다.






해결방법


  1. 스마트 컨트랙트에 데이터가 필요한 경우 스마트 컨트랙트 지원 블록체인에서 프로세스가 시작됩니다.
  2. 스마트 컨트랙트는 해당 계약에 필요한 정보를 요청합니다.
  3. Chainlink 프로토콜은 이 요청을 ‘이벤트’로 등록하고 해당 스마트 컨트랙트를 블록체인에 생성합니다.
  4. Chainlink Reputation Contract, Chainlink Order-Matching Contract, Chainlink Aggregating Contract의 세 가지 하위 계약을 생성합니다.
  5. Chainlink 계약은 Oracle 제공업체의 실적을 확인해 진위 여부와 성능 기록을 검증한 다음 평판이 좋지 않거나 신뢰할 수 없는 노드를 평가하고 폐기합니다.
  6. Chainlink Aggregating Contract는 선택한 오라클의 모든 데이터를 가져와 정확한 결과를 위해 유효성 검사를 진행합니다.
  7. Chainlink 노드는 외부 데이터에 대한 계약의 요청을 받고 “Chainlink Core” 소프트웨어를 사용하여 해당 요청을 On-Chain 프로그래밍 언어에서 Off-Chain 프로그래밍 언어로 변환합니다.
  8. 변환된 코드는 외부 애플리케이션 프로그래밍 인터페이스(API)으로 라우팅됩니다.
  9. 데이터가 수집되면 Chainlink 코어를 통해 블록체인 언어로 다시 변환되어 Chainlink 집계 계약으로 다시 전송됩니다.
  • Chainlink Aggregating Contract의 유효성 검사 : 예를 들어, 5개의 노드가 하나의 답변을 제공하고 다른 2개의 노드가 다른 답변을 제공하는 경우, 해당 두 노드가 결함(또는 부정직)임을 알고 답변을 폐기합니다. 이러한 방식으로 Chainlink 노드는 단일 소스의 데이터를 검증하는 것입니다.

Chainlink는 Oracle Problem 해결을 위해 다음과 같은 기능을 제공합니다. 아래와 같은 기능을 조합해 적절한 대응을 할 수 있도록 하는 것입니다.



Chainlink가 Oracle Problem 해결을 위해 제공하는 기능


  • Open-source : 더 넓은 블록체인 커뮤니티가 독립적으로 Chainlink의 소스 코드 및 기능의 보안과 신뢰성을 검증하고 개선에 기여할 수 있도록 합니다.
  • External Adapters : 노드가 API 키를 안전하게 저장하고 계정 로그인을 관리할 수 있도록 허용합니다. 이를 통해 스마트 컨트랙트의 보호 및 외부 시스템, API에서 데이터를 검색할 수 있도록 합니다.
  • Decentralization : 노드 및 데이터 소스 레벨에서 탈중앙화를 적용하여 어떤 노드나 데이터 소스도 단일 실패 지점이 되지 않도록 합니다. 이렇게 하면 데이터가 사용자에게 제 시간에 전달되고 부정적인 조작에 대해 저항할 수 있습니다.
  • Data Signing : 노드가 스마트 컨트랙트에 제공하는 데이터에 암호화된 서명을 함으로써 사용자는 어떤 노드가 데이터를 보냈는지 식별하고 과거 기록을 확인하여 성능 품질을 결정할 수 있습니다.
  • Reputation Systems : 서명된 On-Chain 데이터를 Reputation Systems에 제공합니다. 이를 통해 사용자는 제대로 수행된 작업/서비스에 대한 클라이언트 목록, 평균 응답 시간과 같은 노드 정보를 얻을 수 있습니다. 해당 정보들에 기반해 사용자가 의사결정 할 수 있도록 도와줍니다.
  • Certification Services : 노드가 여러 인증을 획득하여 보안과 안정성을 높이면 KYC, 노드의 지리적 위치, 인프라의 보안 검토 등과 같은 추가 보증을 사용자에게 제공합니다.
  • Advanced Cryptography and Hardware : 데이터 원본 증명(예: 특정 서버에서 가져온 특정 데이터), 데이터 기밀 유지, Off-Chain 계산 수행 등과 같은 추가 기능을 수행할 수 있도록 고급 암호화(예: 신뢰할 수 있는 실행 환경) 및 하드웨어(예: 신뢰할 수 있는 실행 환경)에 대한 유연성을 제공합니다.

해당 기능들은 Chainlink가 제공하는 기능 중 일부입니다. Chainlink에서 이러한 주요 기능을 구축함으로써 스마트 컨트랙트가 외부 세계 데이터에 접근할 수 있도록 합니다. 이것은 단순히 블록체인 네트워크와 외부 세계의 연결이 아니라 블록체인 네트워크가 다양한 분야로 확장될 수 있는 토대가 됩니다.



Chainlink란?






2022년 2분기 Chainlink Network Metrics | 출처 : https://kr.ambcrypto.com/korean/article/32249/




출처 : https://xangle.io/insight/research/63c5175eec03d82c97dc00ba

Chainlink란 2017년에 Sergey Nazarov와 Steve Ellis가 만든 분산형 노드 네트워크입니다. 현재 Chainlink는 LINK라는 코인을 발행하고 Oracle이라는 기술을 판매하기도 합니다.


  • LINK : 네트워크에서 서비스 비용을 지불하는데 사용되는 디지털 자산 토큰

외부 세계(Off-Chain) 데이터를 수집해 블록체인 네트워크(On-Chain)에 연결하는 Oracle이라는 기술을 판매하는 만큼 Off-Chain Data를 On-Chain으로 전달하고 있습니다. 2022년 2분기 자료를 보면 3,000,000,000건 이상의 데이터를 전송해왔으며, Oracle Problem을 해결하는 선두자로써 Oracle 네트워크에서 높은 점유율을 보이고 있습니다. (Total Oracle Network 1000+, 89.7%)


  • Chainlink의 장점
  • 연결성 : 다양한 네트워크의 스마트 계약을 기존 애플리케이션 및 외부 데이터(Bloomberg 등)와 통합
  • 결제 : 스마트 컨트랙트에서 기존 은행 계좌 및 사용되는 결제 네트워크(PayPal 등)로의 결제 기능
  • 상호 운용성 : 스마트 계약과 다른 공용(Ethereum) 또는 사설 네트워크(Hyperledger) 간에 안전한 교차 체인 연결 생성

3.결론





A Web3 Services Platform for Web3/Trust Minimized Apps | 출처 : https://xangle.io/insight/research/63c5175eec03d82c97dc00ba

Oracle이란 블록체인(On-Chain)과 외부 세계(Off-Chain)의 오프체인 시스템 간의 통신을 연결해주는 일종의 미들웨어입니다. 블록체인에서는 외부 정보가 생성되지 않기 때문에 외부 세계에서 블록체인 네트워크로 정보를 제공받습니다. 이 과정에서 Third Party의 신뢰에 의존해야합니다. 이런 문제를 Oracle Problem이라고 합니다. Chainlink는 평판제도와 유효성 검사를 통해 Oracle Problem을 해결하는 탈중앙화 오라클 네트워크(DON) 네트워크를 개발했습니다.

창립자 Sergey Nazarov에 따르면 Chainlink의 목표는 Oracle을 활용한 신뢰 최소화 네트워크를 만드는 것이라고 합니다. 이것은 단순히 외부 세계와 블록체인 네트워크를 연결하는 것이 아니라 Off-Chain연산, Cross-Chain 통신 영역으로의 확장을 의미합니다. 위의 그림처럼 Web2 플랙폼과의 연결, Web3 플랫폼과의 연결, 블록체인 레이어들의 연결을 통해 탈중앙성과 신뢰 최소화를 이뤄나가려는 것으로 보입니다. 이런 목표를 갖고 난수 생성 솔루션 VRF, 스마트 컨트랙트 자동화 솔루션 등 다양한 서비스를 선보이고 있습니다.

Chainlink의 확장에 따라 블록체인의 활용도도 높아지기 때문에 Chainlink의 다음이 기대됩니다. 반면, 외부 세계와의 연결을 독점하게 된다면 그것을 과연 탈중앙화라고 할 수 있을지에 대한 의문이 듭니다. 과연 Chainlink가 앞으로 신뢰성, 탈중앙화의 문제를 어떻게 해결해가는지, 외부 세계와의 연결로 어떤 서비스를 선보일지, 그 행보가 기대됩니다.


함께 보면 좋은 콘텐츠