Oracle Concepts#
블록체인의 한계#
블록체인은 자체 완결적이고 결정론적(deterministic) 시스템으로 설계되었습니다. 결정론적이라는 것은 동일한 입력이 주어지면 항상 동일한 출력을 생성한다는 의미입니다. 이 속성은 보안과 합의에 중요하며, 모든 블록체인 노드는 모든 트랜잭션에 대해 데이터 상태에 동의해야 합니다.
그러나 블록체인의 고립된 특성으로 인해 블록체인은 외부(오프체인) 데이터에 직접 접근할 수 없습니다. 이러한 설계는 보안과 데이터 영구성을 향상시키지만, 다음과 같은 중요한 트레이드오프를 초래합니다:
- 블록체인은 글로벌 합의가 필요하기 때문에 전통적인 컴퓨팅 시스템보다 높은 지연 시간으로 트랜잭션을 처리합니다.
- 스마트 컨트랙트는 실제 세계의 데이터(예: 금융 시장 가격, 날씨 조건, IoT 센서 판독값)를 독립적으로 가져올 수 없기 때문에 제한된 기능을 가집니다.
이러한 근본적인 한계를 **Oracle Problem(오라클 문제)**이라고 합니다. 블록체인 애플리케이션은 외부 데이터 소스와 연결할 수 있는 신뢰할 수 있는 방법 없이는 완전한 실제 세계 적용 가능성을 달성하기 어렵습니다.
블록체인 오라클이란?#
블록체인 오라클은 블록체인과 외부 시스템 간의 안전한 데이터 교환을 가능하게 하는 인프라 구성 요소입니다. 분산형 오라클은 오프체인 데이터를 블록체인으로 가져오는 신뢰 최소화 메커니즘을 제공하며, 실제 세계 이벤트나 오프체인 계산을 기반으로 스마트 컨트랙트가 실행될 수 있도록 합니다.
오라클 문제를 해결함으로써, 오라클은 스마트 컨트랙트의 기능을 확장하여 분산 금융(DeFi) 및 게임과 같은 산업 전반에서 더 동적이고 유용하게 만듭니다.
오라클의 주요 기능#
오라클은 다음과 같은 중요한 기능을 수행합니다:
- Listening(수신): 블록체인에서 스마트 컨트랙트가 외부 데이터를 요청하는 시점을 감지합니다.
- Fetching(가져오기): 오프체인 소스(예: API, 웹 서버, IoT 장치)에서 데이터를 검색합니다.
- Formatting(포맷팅): 데이터를 블록체인 호환 형식으로 변환합니다.
- Securing & Validating(보안 및 검증): 암호화 검증 메커니즘을 통해 데이터 무결성을 보장합니다.
- Computing(계산): 확장성, 효율성 및 보안을 향상시키기 위해 오프체인 계산을 수행합니다.
- Broadcasting(브로드캐스팅): 검증된 데이터를 블록체인으로 다시 전송합니다. 모든 노드가 데이터에 동의해야 하기 때문에 "브로드캐스팅"이라고 합니다.
- Delivery(전달): 필요에 따라 계산 결과를 외부 시스템에 전달하거나 외부 시스템에서 스마트 컨트랙트로 다시 전달합니다.
블록체인 오라클의 유형#
Inbound Oracles(인바운드 오라클)#
이러한 오라클은 외부 데이터를 블록체인으로 가져옵니다. 예를 들어, 날씨 조건, 스포츠 점수 또는 주식 가격과 같은 정보를 스마트 컨트랙트에 전달합니다.
Outbound Oracles(아웃바운드 오라클)#
이러한 오라클은 블록체인에서 외부 시스템으로 데이터를 전송합니다. 스마트 컨트랙트가 오프체인 시스템과 통신하고 상호 작용할 수 있도록 합니다.
Consensus Oracles(합의 오라클)#
이러한 오라클은 여러 소스의 데이터를 집계하고 스마트 컨트랙트에 단일 진실 소스를 제공합니다. 이는 데이터의 신뢰성과 정확성을 향상시키기 위해 수행됩니다.
Cross-Chain Oracles(크로스체인 오라클)#
이러한 오라클은 서로 다른 블록체인 네트워크(각각 고립된 "섬"과 같음) 간의 통신 및 데이터 교환을 용이하게 합니다. 크로스체인 오라클은 서로 다른 블록체인 간의 상호 운용성에 필수적입니다.
중앙화 vs 분산형 오라클#
Centralized Oracles(중앙화 오라클)#
- 단일 엔티티 또는 노드를 통해 운영됩니다.
- 위험 요소: 단일 장애 지점, 공격 취약성, 데이터 조작 가능성
- 중앙 오라클 노드가 손상되거나 중지되면 블록체인은 더 이상 신뢰할 수 있는 외부 데이터에 접근할 수 없습니다.
Decentralized Oracles(분산형 오라클)#
- 여러 독립적인 노드를 사용하여 데이터를 가져오고 검증하여 조작 및 다운타임 위험을 줄입니다.
- 여러 당사자 간에 신뢰를 분산하여 신뢰 최소화 시스템을 만들어 보안, 투명성 및 신뢰성을 향상시킵니다.
오라클 사용 시기#
Data Exchange(데이터 교환)#
스마트 컨트랙트는 금융 시장 피드, 보험 청구 데이터, 게임 결과와 같은 외부 데이터 소스를 통합할 수 있습니다.
Automation(자동화)#
스마트 컨트랙트는 외부 데이터, 온체인 조건 또는 특정 시간 간격에 의존하는 프로세스를 자동화할 수 있습니다. 이는 예를 들어 시장 가격에 따라 결제를 트리거하거나 거래를 실행하는 데 유용합니다. 이러한 자동화 오라클은 특정 조건이 충족될 때 스마트 컨트랙트의 작동을 트리거하기 위해 인간이나 중앙화된 엔티티에 대한 의존성을 제거할 수도 있습니다.
Cross-Chain Communication(크로스체인 통신)#
스마트 컨트랙트는 다른 블록체인 네트워크와 상호 작용할 수 있어 더 복잡하고 상호 운용 가능한 분산 애플리케이션(dApps)을 가능하게 합니다.
Verifiable Randomness(검증 가능한 무작위성)#
블록체인은 설계상 결정론적이므로 동일한 입력이 항상 동일한 출력을 생성합니다. 이로 인해 온체인에서 진정한 무작위성을 생성하는 것이 불가능합니다. 오라클은 채굴자가 조작할 수 없는 암호화 검증된 난수를 제공하며, 이는 공정한 NFT 배포, 게임 애플리케이션 및 무작위 선택 프로세스에 중요합니다.