DeFi 스마트 컨트랙트의 데이터 품질에 대해
DeFi 애플리케이션의 생태계와 블록체인 오라클이 확보한 가치가 함께 상호작용을 하며 서로의 성공 및 성장을 이끌고 있습니다. DeFi가 확보한 가치가 빠른 속도로 계속 증가함에 따라 이 혁신적인 DeFi 생태계가 사용자에게 더 높은 수준의 보안 및 신뢰성을 보장하는 것이 점점 더 중요해지고 있습니다.
블록체인 “오라클 문제”는 많은 기사에서 다뤄진 만큼 이미 잘 알려져 있습니다. 하지만 오라클이 제공하는 “데이터 품질”에 대한 문제는 여전히 잘 알려져 있지 않고 잘못 이해되고 있습니다. 보통 데이터 품질에 대한 오해는 오라클이 외부 데이터를 온체인으로 전달하는 것과 고품질 데이터를 생산하는 두 가지 업무를 수행하기 위해 사용된다는 잘못된 이해에서 기인입니다. 안전한 오라클 솔루션에 대한 체인링크의 연구 경험 및 개발 과정을 바탕으로 말씀드리자면 블록체인 오라클은 데이터를 온체인에 전달 및 데이터 조작 방지를 위해 디자인 되었지 데이터 자체를 생성하기 위해 디자인 된 것은 아닙니다.
데이터 전달과 데이터 품질이라는 두 가지 문제를 분리하는 것이 체인링크 가격 레퍼런스 데이터를 위한 분산 오라클 네트워크의 구조에 적용되었습니다. 현재 체인링크 가격 레퍼런스 데이터는 이더리움의 분산 파생상품 시장의 90% 이상에 사용되고 있습니다. 실제 응용에 고품질 데이터를 제공하는 성공적인 오라클 네트워크 덕분에 우리는 데이터 품질 문제를 해결할 수 있는 다섯 가지 주요 요소를 파악할 수 있었습니다.
- 오라클 노드가 프리미엄 데이터 제공자들에게 연결해 유저들의 컨트랙트가 가장 고품질 데이터에 액세스할 수 있도록 합니다. 이를 위해서는 오라클 포로토콜이 비밀번호를 갖추고 신용관리역량을 갖춰야만 모든 노드들이 안전하게 유료 사용자들을 위한 API 키를 보관하고 로그인 계정을 관리할 수 있습니다.
- 노드가 정확한 가격 데이터 생성 전문 제공 업체로부터 고품질 데이터를 받도록 합니다. 특히 모든 거래 환경에서 거래량 및 시장 커버리지를 고려해 조정된 데이터를 수집하는 데이터 어그리게이터로부터의 정보를 의미합니다. 오라클 메커니즘을 사용하여 로우 데이터 피드 모음에서 글로벌 시장 가격을 생성하는 것은 굉장히 어렵기도 하고 빠른 거래량 및 데이터 아웃라이어 등과 같이 암호화폐 시장에 흔하지 않은 다양한 공격에 노출되기 쉽습니다.
- 오라클의 보안성 및 신뢰성을 더 확보하기 위해 분산형 체제를 사용합니다. 다수의 개별 노드로부터 데이터를 받아 오라클 메커니즘이 조작 불가능하고 컨트랙트에 데이터를 잘 전달할 수 있도록 합니다. 데이터 퀄리티와 타협하지 않는 다수의 고품질 데이터 제공자들 덕분에 데이터 소스 차원에서의 분산화가 더 실현될 것입니다.
- 사용자와 개발자 모두에게 각 노드와 분산된 오라클 네트워크 전체에 대한 현재 및 과거 성능에 대한 온체인 인사이트를 제공해 오라클 메커니즘을 설계할 때 정보에 입각한 의사결정을 내릴 수 있도록 하는 시스템이 선호됩니다. 숨겨진 리스크를 최소화하기 위해 모호한 접근방식을 통한 보안은 피하고 더 많은 사람이 지켜봄으로써 잠재적 문제가 심각한 문제가 되기 전에 조기에 발견할 수 있도록 합니다.
- 하나의 거래소를 데이터 소스로 활용해 안전한 오라클 솔루션으로부터 제공받은 고품질 데이터에 덜 안전한 오라클 솔루션으로부터 제공받은 저품질 데이터를 섞어 영향을 미치는 것과 같은 큰 리스크를 방지하도록 합니다. 퀄리티 컨트롤 기준이 없는 분산화는 오히려 컨트랙트가 더 큰 복잡한 공격에 처할 수 있도록 하며 고품질 오라클 솔루션이 제공하는 결과와 다른 예상하지 못한 결과로 이어질 수 있습니다.
각각의 기능을 추가적으로 실행하기 위해서는 데이터의 품질이 매우 중요하며 안전한 분산형 오라클 네트워크, 체인링크의 유연성을 활용해 고품질 데이터 생성, 가격 오라클 네트워크를 설계할 때 초래될 수 있는 큰 데이터 소스 리스크 등을 방지하기 위해 필요한 이상적인 구성요소에 대해 살펴봤습니다.
안전한 분산형 오라클 네트워크의 구성
오라클 미들웨어는 블록체인과 외부 세계를 연결해주는 미들웨어의 역할을 수행합니다. 오라클은 스마트 컨트랙트가 블록체인에 저장되지 않은 정보를 사용할 수 있도록 해 실제 외부 세계에서 일어나는 일을 알 수 있게 해줍니다. 외부 연결성 덕분에 스마트 컨트랙트를 디자인할 수 있는 외부 이벤트의 수가 기하급수적으로 늘어나고 있으며 개발자들이 더 넓은 시장에 걸쳐 더 많은 가치를 수호할 수 있도록 합니다. 연결성이 증대되면서 외부 공격도 증가해 스마트 컨트랙트의 중요 요소인 조작 저항성, 불변성 및 가용성을 지키기 위한 노력이 더 필요합니다.
분산형 오라클 네트워크는 온체인 및 오프체인 환경을 연결해주는 안전한 미들웨어로 수십억 달러 이상의 가치를 지니고 있는 유저 펀드에 연결된 스마트 컨트랙트를 유저들이 믿을 수 있도록 안전하고 신뢰할 수 있는 프레임워크를 구축할 수 있도록 해줍니다. 블록체인만큼이나 안전하고 신뢰할 수 있는 오라클이 없다면 스마트 컨트랙트 자체에 결함이 없더라도 오라클에 연결된 전체 스마트 컨트랙트 자체가 위험해질 수 있습니다.
체인링크의 가격 레퍼런스 데이터는 분산형 오라클 네트워크의 모음으로 이더리움 생태계를 위해 데이터를 제공하는 가장 큰 온체인 가격 데이터를 갖추고 있으며 점점 더 많은 DeFi 애플리케이션이 체인링크 가격 레퍼런스 데이터를 사용하고 있습니다. 가격 오라클 네트워크의 검증가능한 분산형 디자인 패턴 덕분에 유저들에게 가장 보안성 높은 최고 품질의 데이터를 제공할 수 있습니다. 이미 체인링크 가격 레퍼런스 데이터에 실행하고 있는, 모든 분산형 오라클 네트워크가 데이터 품질을 보장하기 위해 시행해야 하는 네 가지 주요 요소에 대해 알려드리겠습니다.
고품질 데이터를 제공하는 프리미엄 데이터 제공자
블록체인 해시를 채굴하는 것은 상당히 일정한 작업이지만 실제로 수억 달러의 가치를 확보하기 위해 신뢰 할만한 충분히 높은 품질의 산업별 데이터를 생성하는 것은 누구에게나 믿고 맡길 수 있는 작업이 아닙니다. 오라클 메커니즘을 사용하여 로우 데이터 컬렉션에서 데이터를 생성하는 대신 개발자들은 대규모 팀, 풀 스택 인프라 및 특정 산업을 위해 고품질 데이터를 생성하려는 목표를 가진 신뢰할 수 있는 데이터 수집 회사로부터 노드 소스 데이터를 받는 편이 더 좋습니다.
독자적인 고품질 데이터를 생성하는 것은 자본 집약적입니다. 데이터는 무료가 아니며 법적 계약 및 신임장이 있어야만 로우 데이터에 액세스가 가능하기 때문입니다. 노드는 유료 데이터 제공자 (API)에 가입하거나 회사 내부 데이터와 같은 특정 데이터 제공자가 승인해야 데이터에 접근할 수 있습니다. 따라서 노드 오퍼레이터들은 API키 저장 및 계정 로그인 관리 능력을 갖춰야만 이러한 프리미엄 데이터 제공자들과 상호 교류할 수 있습니다.
크리덴셜 관리 능력이 없어서 프리미엄 API에 액세스 권한이 없는 오라클 솔루션들은 개방형, 무료 또는 불법 복제된 API 등 제한된 형태의 API만 사용할 수 있습니다. 이러한 API는 주로 낮은 품질의 데이터, rate limit throttle, 신뢰할 수 없는 응답 시간, 법적 구속력이 있는 가용성 또는 서비스 품질 보장과 같은 이유 때문에 이런 데이터 소스들은 큰 가치를 지닌 활용 사례는 물론이고 작은 가치의 활용 사례에도 사용되기 어렵습니다. 저품질 데이터를 인풋으로 사용하는 스마트 컨트랙트는 사용하는 데이터에 대한 신뢰도 또는 정확도에 대한 보장을 해주지 못하기 때문에 그 과정에서 표면 상 공격을 받을 수 있는 여지가 더 커집니다. 데이터를 사용하는 다른 모든 기술과 마찬가지로 “쓰레기가 투입되면 쓰레기가 나옵니다.”
체인링크 가격 레퍼런스 데이터 컨트랙트에 참여하고 있는 체인링크 노드들은 외부 어댑터를 활용하여 모든 프리미엄 API에 연결할 수 있습니다. 이러한 API는 더 높은 품질의 데이터, 더 빠른 응답 시간 및 데이터 가용성과 서비스 품질을 보장합니다. 외부 어댑터는 모듈식이며 모든 프로그래밍 언어로 작성할 수 있으며 체인링크 노드가 아닌 다른 서버에서도 호스팅할 수 있습니다. 데이터 제공자, 웹 API, 기업 시스템, IoT 기기, 결제 시스템, 다른 블록체인 등에서 데이터를 검색하는데 사용할 수 있습니다.
고품질 노드 오퍼레이터의 분산화
스마트 컨트랙트에 데이터를 제공하기 위한 안전하고 신뢰할 수 있는 오라클 메커니즘에서 데이터 품질은 아직 해결해야할 중요한 문제입니다. 고품질 노드 오퍼레이터의 탈중앙화는 예측할 수 없는 다운타임과 데이터 전달 과정에서 데이터를 조작하려는 시도가 있을 때 하나의 주체에 의존하지 않을 수 있도록 하는 중요한 핵심 설계 패턴입니다. 탈중앙화 컨센서스는 만약 몇 개의 노드가 다운타임을 겪거나 악의를 가지게 되더라도 최종 집계된 응답에는 거의 영향을 미치지 않기 때문에 공격 시 비용을 크게 증가시킵니다.
체인링크 가격 레퍼런스 컨트랙트는 보안 검토를 거친, 시빌 저항을 갖춘 수많은 개별 노드로 이루어진 분산형 오라클 네트워크로 작동됩니다. 참여하는 체인링크 노드는 오라클 메커니즘에서 단일장애지점 문제를 피하기 위해 전세계 주요 블록체인 DevOps 및 보안 팀으로 구성이 되어 온라인 클라우드와 실제 오프라인 서버까지 갖추고 있습니다. 또한 네트워크에 추가될 수 있는 수많은 커뮤니티 기반 노드들도 대기하고 있어 추가 분산화도 가능합니다.
분산화된 고품질 데이터 출처
오라클 솔루션은 개별 데이터 소스의 품질을 저해하지 않는 수준이라면 다수의 데이터 소스를 사용하는 것이 더 좋습니다. 고품질 데이터 소스의 분산화가 이루어진다면 하나의 데이터 제공자가 유일한 공급원이 되는 것을 방지할 수 있고 유일한 제공자가 오프라인이 되어도 보호책이 생깁니다. 하지만 하나의 고품질 데이터 소스만이 제공될 경우도 있고 그럴 경우에는 데이터 품질을 보장하기 위한 더 진보된 암호학적 기술, 지분 보장형 서비스 계약, TLS 검증 (Town Crier, DECO), 영지식증명과 같은 요소들이 더 중요해집니다. 체인링크의 가격 레퍼런스 컨트랙트는 데이터 출처 차원에서 이미 분산화가 이루어졌습니다. 각 가격 레퍼런스 네트워크는 각자 시장 데이터를 다수의 신뢰할 수 있는 개별 데이터 제공자로부터 모읍니다. 이러한 데이터 제공자들은 모든 거래 환경에 대한 시장 커버리지를 확보하고 있는 프리미엄 데이터 어그리게이터들이며 를 Brave New Coin, Kaiko, Amberdata 포함한 상당히 신뢰할 수 있는 데이터 제공자들로 구성되어 있습니다. 각 데이터 포인트가 집계되어 하나의 레퍼런스 가격을 형성해 컨트랙트를 위해 온체인에 저장됩니다.
오픈소스 시각화 자료 및 모니터링
DeFi 애플리케이션을 위한 스마트 컨트랙트가 실시간 모니터링이 가능한 공개 오픈소스 데이터라면 데이터를 제공하는 가격 오라클 메커니즘도 투명 해야 할 것입니다. 오라클 솔루션의 투명성이 없다면 디앱 유저들은 데이터의 출처를 검증할 수 없을 것이며 어떤 노드가 데이터를 제공하는지, 응답 대기시간, 오라클 네트워크의 과거 성능, 데이터의 정확도 등 그 어떤 정보도 알지 못할 것입니다.
체인링크의 가격 레퍼런스 데이터 컨트랙트는 각각 다음과 같은 세부 정보에 대한 온체인 데이터 출처에 대한 투명성에 대한 시각화 자료를 볼 수 있도록 제공하고 있습니다.
- 각 레퍼런스 데이터의 최신 가격
- 각 가격 피드를 스폰서 및 지원하는 DeFi 프로젝트
- 각 가격 피드 보안을 검증하는 노드 오퍼레이터
- 업데이트 발생 시기
- 어그리게이션을 위해 필요한 최소 노드 응답 수
- 전체 오라클 네트워크 및 개별 노드 오퍼레이터에 대한 무수히 많은 관련된 정보
또한 개별 노드 성능을 데이터 요청별로 분석해 노드가 데이터 요청을 성공적으로 완료할 수 있는지에 대한 여부를 직접 확인할 수 있습니다. 체인링크 Explorer을 사용하면 노드 오퍼레이터, 데이터 제공자 및 사용자가 네트워크 내 각 노드의 성능을 연구할 수 있고 도중에 오류가 있는지 확인하기 위해 어떤 조치를 위했는지 정확히 확인할 수 있습니다.
체인링크 사용시 데이터 수집의 유연성
DeFi에서 기본으로 사용되는 일반적 오라클 네트워크를 사용하기 위해서 필요한 중요한 요소는 유연성입니다. 유연성이 있어야만 개발자들이 원하는 오라클 디자인 패턴을 안전하게 신뢰할 수 있는 방식으로 만들 수 있습니다. 체인링크 가격 레퍼런스 데이터 피드는 다수의 데이터 어그리게이터를 활용해 글로벌 시장 가격을 생성하고 체인링크 프로토콜은 그 데이터를 바탕으로 오라클 네트워크가 어떠한 디자인 패턴을 갖춰야한다고 강제하는 부분은 없습니다. 대신 여러 조합을 할 수 있는 가장 유연한 모듈형 프레임워크를 제공해 필요에 따라 맞춰 사용할 수 있도록 합니다.
데이터, 노드 집합 및 어그리게이션 모델 활용
개발자들은 스마트 컨트랙트 실행에 필요한 데이터 소스에 빠르게 연결하기위해 이러한 외부 어댑터를 사용합니다. 또한 개발자들은 원하는 만큼의 분산화를 구현할 수 있으며 데이터를 제공받고 싶은 특정 데이터 소스 및 데이터 집계 알고리즘, 업데이트 주기까지 정밀하게 디자인할 수 있습니다. 이 덕분에 외부 데이터를 필요로 하는 스마트 컨트랙트에 최대한 맞춰 유동적으로 운영할 수 있습니다.
커스텀 가능한 프레임워크 덕분에 개발자들은 원하는 보안 수준에 따라 본인의 오라클 네트워크를 쉽게 스케일 업 또는 다운할 수 있습니다. 체인링크는 가장 큰 안전한 노드 오퍼레이터 풀을 보유하고 있으며 추가적으로 보안을 보장하기 위해 오라클 네트워크에 합류할 수 있는 수많은 커뮤니티 노드도 대기하고 있습니다. 또한 개발자들이 더 많은 데이터 소스에 대한 액세스가 생기면 추가 개발 노력이 없이도 데이터 어그리게이션이 가능해집니다.
체인링크는 평균, 중위 값, 또는 더 복잡한 모델을 사용해 아웃라이어를 제거하고 가중치를 조정해 데이터 어그리게이션에 대한 커스터마이징을 할 수 있습니다. 업데이트 주기, 시간 기반 업데이트를 사용할 것인지에 대한 여부, 가격 편차 업데이트 (가격이 0.5% 변동될 때 마다) 또는 다양한 파라미터를 섞은 하이브리드 방식을 사용하는 등 업데이트 관련된 것을 커스텀화 할 수 있습니다.
데이터 제공자들은 전통적 API 또는 체인링크 노드를 사용해 운영 가능
체인링크의 유연한 프레임워크 덕분에 데이터 제공자들은 새롭게 부상하는 스마트 컨트랙트 경제를 위한 데이터 제공 방식을 커스터마이징 할 수 있고 기존 API 비즈니스 운영 또는 체인링크 노드를 직접 운영하는 방식 중 고를 수 있습니다.
전통적API
데이터 제공자들은 지금과 같은 방식으로 그들의 데이터를 명목화폐로 구독비를 내는 유료 회원들에게 데이터를 제공할 수 있습니다. 체인링크 노드는 이러한 API를 구독해 그 데이터를 온체인으로 전송해 체인링크의 외부 어댑터를 노드 설정에 활용할 수 있습니다. 이는 현재 존재하는 데이터 제공자들에게 다 적용되는 내용이고 Amberdata, CoinGecko와 같은 프리미엄 데이터 제공자들의 데이터가 이미 체인링크 가격 레퍼런스 데이터 네트워크에 실제로 사용되고 있습니다. 체인링크는 이미 Binance, Coinbase 노드와 같은 거래소API를 위한 외부 어댑터가 존재합니다.
데이터 제공자들이 현재 비즈니스 모델 또는 인프라에 대해 아무것도 바꾸지 않아도 되기 때문에 이 모델은 강력합니다. 만약 데이터 제공자들이 직접 스마트 컨트랙트를 시장에 서비스하는 것에 대해 주저하더라도 체인링크 노드는 개발자들에게 모듈형 외부 어댑터를 통해 필요한 데이터 리소스에 대한 액세스를 제공할 수 있습니다. 이를 통해 노드는 노드들이 자체 데이터 제공자들의 서비스에 구독해 그들의 데이터의 추가 분산화를 위해 체인링크 노드를 운영할 수 있습니다.
체인링크 노드로서의 데이터 제공자
체인링크 노드로서 운영을 하며 데이터를 스마트 컨트랙트로 데이터를 직접 판매하고 싶은 데이터 제공자들을 위한 모델도 있습니다. 데이터를 수익화할 수 있는 새로운 방식은 이미 Kaiko, Alpha Vantage와 같은 시장 데이터 어그리게이터와 암호화폐 거래소인 Huobi와 같은 주요 데이터 제공자들이 사용하고 있습니다.
데이터 제공자들이 체인링크 노드를 직접 운영함으로써 얻을 수 있는 유니크한 장점 중 하나는 자신의 데이터에 암호학적 서명을 남길 수 있다는 점입니다. 유저들과 스마트 컨트랙트는 데이터 제공자 또는 거새로의 체인링크 노드가 직접 제공하는 가격 정보는 데이터가 온체인에 전파되기 전에 노드 고유의 개인 키를 통해 암호학적 서명이 추가되기 때문에 스마트 컨트랙트에 연결된 다른 어떤 루트로도 조작이 되지 않았다는 것 및 데이터 출처에 대한 진위성도 보장받을 수 있습니다.
이 프레임워크를 통해 데이터 제공자들은 블록체인에 직접 데이터를 전파할 수 있고 다른 외부 행위자가 그들의 데이터를 그들을 대신해 온체인화 하지 않아도 됩니다. 이 덕분에 데이터 제공자들은 그들이 데이터를 온체인에 전파하는 주기를 조절할 수 있으며 데이터의 보안도 데이터 생성에서부터 스마트 컨트랙트로의 전달까지 유지할 수 있습니다. 따라서 데이터 제공자들은 데이터를 동시다발적으로 다수의 다른 애플리케이션에 고유의 방식을 통해 전달할 수 있습니다. 예를 들어 한 애플리케이션에는 1분마다 업데이트 해서 데이터 전달을 할 수 있고 다른 애플리케이션에는 가격에 0.5% 변동이 있을 때 마다 업데이트를 할 수 있습니다.
하나의 게이트웨이로부터 모든 블록체인 환경에 판매
아직 블록체인 시장이 비교적 역사가 길지 않고 각자 환경에 대한 문서 및 이해도가 높은 개발자들이 많이 않아서 데이터 제공자들은 모든 블록체인 환경을 이해할 수도 없고 각자 블록체인에 맞는 운영을 할 수는 없습니다.
체인링크 오라클 네트워크는 기존 외부 어댑터/이니시에이터를 활용하거나 새로운 블록체인을 사용할 수 있도록 빠르게 새로운 네트워크를 구축해 모든 블록체인 환경에서 액세스할 수 있습니다. 체인링크는 오픈 소스로 되어있어 개발자들은 외부 허가 없이 체인링크 인티그레이션을 할 수 있으며 개발 병목현상 없이 확장할 수 있습니다. Ethereum, Polkadot, Tezos, Cosmos를 포함한 주요 블록체인 및 더 많은 블록체인 네트워크가 체인링크와의 인티그레이션을 진행하고 있습니다.
이러한 설정 덕분에 데이터 제공자들과 스마트 컨트랙트 개발자들은 모든 체인에서 판매 및 액세스할 수 있는 데이터를 하나의 게이트웨이에서 액세스할 수 있으며 궁극적으로 더 많은 온체인 데이터를 디앱에 제공해 데이터 제공자들이 더 많은 수익을 창출할 수 있도록 합니다. 또 중요한 것은 이 접근법의 유연성 덕분에 데이터 제공자들이 어디에 리소스를 배치할 지 선택하지 않아도 된다는 점입니다.
데이터 및 서비스 품질에 대한 암호경제적 보장체계 구축
체인링크 오라클 네트워크는 노드 오퍼레이터와 요청하는 스마트 컨트랙트 양쪽에서 법적 구속력이 있는 서비스 계약을 서명하도록 합니다. 노드가 계약 기간동안 꼭 지켜야할 파라미터에 대해 사전 정의를 하고 지키도록 규정합니다. 이러한 파라미터는 데이터 전달 (응답 지연), 데이터 품질 (응답 정확도), 스테이킹된 LINK (암호경제적 보장), 슬래싱 컨디션 (페널티) 등 요청자가 요구한 다른 사전 정의된 계약 조건에 따릅니다. 노드 오퍼레이터는 얼마나 파라미터에 따라 성공적으로 임무를 수행하는지, 제시간에 온체인에 고품질 데이터를 전달하는지 여부에 따라 비용이 결정됩니다. 이로 인해 체인링크 노드를 운영하는 데이터 제공자들은 데이터에 대해 보장할 수 있는 조건에 대한 유연성을 갖출 수 있어서 데이터에 대한 품질, 신뢰도, 정확도 및 진위성을 더 보장할 수 있습니다.
궁극적으로 스테이킹을 바탕으로 한 서비스 계약으로 인해 데이터 제공자들은 그들의 오라클 서비스를 담보로 삼아 원하지 않는 행동을 했을 시 페널티가 부과되어 청하는 스마트 컨트랙트에게 품질을 보장하는 보험을 들어주는 것과 마찬가지인 형태가 됩니다. 서비스 계약이 없다면 오라클 네트워크는 데이터 전달 및 데이터 품질에 대한 계약 조건이 없을 것이고 요청자들이 요구하는 데이터 품질 또는 오라클 서비스에 대한 보장을 받을 수 없는 상황이 초래됩니다.
평판 프레임워크 및 노드 마켓 플레이스를 활용한 지식에 입각한 의사결정 내리기
유연성을 관리하는데 있어 중요한 요소는 사용자들에게 오라클 네트워크에 대한 정보를 제공해 정보에 입각한 결정을 내릴 수 있는 도구를 제공하는 것입니다. 이는 평판 시스템 및 노드 마켓 플레이스 두 부분으로 구성되어있습니다.
평판 프레임워크
평판 시스템은 노드 오퍼레이터 및 데이터 제공자의 과거 실적을 보여주는 변경 불가능한 온체인 데이터를 제공합니다. 그러면 다음 요청자들은 암호화된 과거 기록을 통해 노드의 신뢰성을 확인 후 결정할 수 있습니다. 타사 서비스를 통해 체인링크 노드를 서로 직접 비교해 어떤 오라클 노드가 다른 노드보다 더 안정적인지 확인할 수 있습니다. 이 사이트가 제공하는 정보는 체인링크 네트워크에 대한 로우 데이터와 정제된 데이터를 포함하며 각 트랜잭션 횟수, 응답 시간, 취득한 수입, 성공률과 같은 각 오라클 노드의 세부사항을 보여줍니다.
노드 마켓 플레이스
오라클 네트워크에서 사용될 오라클 노드를 찾고 필터링, 비교 및 최종적으로 선정하기 위해 중요한 요소는 노드를 찾는 장소입니다. LinkPool의 Chainlink Market 과 CLCG의 Honeycomb Marketplace와 같은 체인링크 노드 리스트업을 제공하는 다수의 타사 웹사이트가 존재합니다. 이 마켓 플레이스 덕분에 신뢰할 수 있는 노드를 찾고 몇 개의 노드를 사용할지 결정할 수 있기 때문에 개발자들은 그들의 오라클 네트워크가 어떻게 구성될지에 대한 완전한 컨트롤을 가질 수 있습니다.
또한 개별 노드 오퍼레이터들은 그들의 증명, 보안 검토, 신원 증명, 외부 어댑터, 데이터 소스, 작업 주행 스펙 등과 같은 것을 공개해 스마트 컨트랙트를 위한 어떤 오프체인 서비스를 제공할 수 있는지 나열할 수 있습니다. 노드 오퍼레이터들은 그들이 제공하는 작업에 대해 원하는 비용 및 파라미터를 설정할 수 있고 노드들이 다양한 요소를 바탕으로 건전한 경쟁을 펼칠 수 있는 자유시장이 형성됩니다.
가격 오라클에 유연성을 활용해 대규모 데이터 소싱 리스크를 해결하는 법
오라클 메커니즘을 디자인하기에 앞서 고품질 데이터를 제공하기 위해서 고려해야하는 공격 벡터 및 미리 준비해야할 것들이 있습니다. 이러한 상황을 고려하지 않는다면 개발자들은 유저 펀드 관리 차원 및 전체 디앱을 큰 위험에 처하게 할 수 있습니다.
거래량 변동/거래소 록인(Lock-In)
암호화폐 시장은 전통적 금융 시장이랑 달리 자산을 발행할 수 있는 독점적인 거래소가 없기 때문에 사용자들이 시장을 언제든 떠날 수 있고 자산에 대한 거래 시장 전체 시장을 커버할 수 없습니다. 블록체인 기술은 허가가 필요없으므로 누구나 암호화폐 코인 또는 토큰을 거래소에 상장해 누구나 거래할 수 있도록 합니다. 이런 역동적인 시장 및 거래량 때문에 암호화폐는 다양한 거래소에 걸쳐 거래되고 있으며 거래소간 이동이 빠릅니다. 만약 데이터 집계 과정에 포함되지 않은 거래소로의 대규모 이동이 발생하는 시장 조작 공격에 대응하기 위해서는 오라클 메커니즘이 필요합니다.
플래시 크래시(Flash Crashes)
일반적으로 서킷 브레이커가 없는 암호화폐 거래소 같은 경우 시장 전반적으로 걸쳐 다른 거래소에서 나머지 거래소와는 훨씬 벗어나는 경우 플래시 크래시에 굉장히 취약합니다. 이미 가장 큰 암호화폐 거래소도 이미 수년간 이러한 이슈를 경험했고 이런 리스크에 놓여있습니다. Kraken은 BRC/CAD 가격 페어가 $11,200에서 $100으로 약 99% 급락한 플래시 크래시를 경험했습니다. Coinbase는 ETH 가격이 $322에서 $0.1로 폭락하는 심각한 플래시 크리시를 겪었습니다. 2020년 초 암호화폐 파생상품 거래소인 Bitmex는 XRP가 $0.33에서 $0.13으로 60% 급락한 플래시 크래시도 경험했습니다.
품질 희석
저품질 데이터 소스가 데이터 집계 프로세스에 영향을 미치지 않도록 하기 위해서는 품질관리 규정을 갖춘 분산화가 필요합니다. 과거 실적이 좋지않거나 평판이 없거나 검증되지 않은 보안 인프라를 사용하는 데이터 제공자들과 노드 오퍼레이터들은 오라클 메커니즘에 참여하는 것을 금지해야 합니다. 노드 오퍼레이터들과 데이터 제공자들이 발생할 일에 대해서 해결할 수 있고 경고 알림을 보내고 안전하게 운영할 수 있도록 리소스 및 지식을 보유하도록 해야 합니다.
참고로 악의적인 공격자는 숙련된 개발자가 아니더라도 이런 공격 벡터를 사용할 수 있습니다. 악용할 수 있는 기회를 포착한 소매 상인 또는 소규모 단체가 거래소의 UI를 사용하여 특정 시장을 조작하고 제한된 시장 커버리지를 갖고 있는 오라클의 가격 레퍼런스 정보를 왜곡할 수 있습니다. 만약 인터넷에 연결이 되어있고 거래소 계정을 가진 누구라면 이렇게 부적절하게 디자인된 오라클을 악용할 수 있는 공격의 여지가 크게 늘어납니다.
체인링크의 가격 레퍼런스 데이터 컨트랙트는 단일 거래소 API 또는 거래소 API 모음을 사용하는 대신 데이터 어그리게이터를 사용하여 이런 리스크를 줄일 수 있도록 특별히 디자인 되었습니다.
모든 시장 환경에 대한 시장 커버리지를 갖춘 고품질 데이터 어그리게이터
체인링크 가격 레퍼런스 데이터는 가장 넓은 시장 커버리지를 갖고 있는 데이터 어그리게이터만 사용하기 때문에 기존 금융 시장과 비교해 아직 거래량이 적은 시장에 정확한 데이터를 제공할 수 있습니다. 데이터 어그리게이터로부터 데이터를 제공받게 되면 거래량을 계속 추적하기에는 경험 또는 리소스가 부족한 오라클 네트워크가 아닌 전문 데이터 어그리게이터가 책임지고 시장 커버리지 유지를 위해 노력합니다.
데이터 어그리게이터들은 전세계적으로 분포된 팀으로 모든 거래 환경에 걸쳐 완전한 시장 커버리지를 갖추고 있으며 정확한 가격 데이터를 제공하는데 이미 숙련된 팀입니다. 유동성, 거래량, 시간과 같은 중요한 지표를 고려해보고 이러한 지표가 거래소마다 다른 점을 고려해야 하며 아웃라이어도 제거해야 합니다. 이러한 기능을 보유했기 때문에 체인링크 가격 레퍼런스 컨트랙트는 거래량 변화, 플래시 크래시 및 데이터 품질 문제에도 문제없이 운영할 수 있습니다.
체인링크 가격 레퍼런스 컨트랙트는 결과 데이터 포인트를 조작할 수 있는 단일 소스에 대해 저항력을 갖추기 위해 다수의 데이터 어그리게이터를 활용합니다. 보안 검토 완료된 노드 오퍼레이터들과 최고의 모니터링 팀이 결합하여 디앱 개발자 및 최종 사용자들에게 더 큰 보안 및 신뢰성을 보장합니다.
데이터를 공급받을 때 오라클의 유연성을 잘못 활용해 생길 수 있는 리스크
거래량이나 하나의 API를 데이터 소스로 삼는 오라클 네트워크가 직면한 리스크에 대해 더 이해를 하기위해 실제 사례를 통해 어떤 잘못된 일이 일어날 수 있는지 보겠습니다.
주의: 하나의 거래소 API에 기반한 오라클 네트워크는 피해주세요
단일 거래소에서 가격 정보를 가져오는 오라클 네트워크는 거래소 다운타임, 플래시 크래시, 가격 조작 등에 대한 보호장치가 없고 제한된 시장 커버리지를 갖고 있습니다. 이러한 설정이 변동성이 낮을 때는 괜찮아 보일 순 있지만 시장 변동성이 높아질수록 다른 거래소의 거래량에 따라 가격 변동이 크게 일어날 수 있습니다. 만약 오라클이 업데이트되어 다른 거래소를 가격을 반영할 수 있어도 시장 상황은 늘 같지 않기 때문에 새로운 가격 포인트가 부정확할 수도 있습니다. 따라서 데이터 소스가 바뀌어도 신뢰할 수 있는 시장 커버리지를 유지하지 못할 수 있습니다.
단일 거래소로부터 데이터를 제공받는 시나리오의 문제점을 단계별로 보여드리겠습니다.
- 개발자 Joe는 암호 자산에 대한 외부 가격 데이터를 필요로하는 스마트 컨트랙트 애플리케이션을 개발했습니다. Joe는 그가 좋아하는 C거래소로부터 가격 데이터를 전달받아 오라클 네트워크를 구축하기로 결심했습니다. Joe가 오라클을 만든 당일 C거래소에서 해당 자산의 80%가 거래되고 있었고 “충분히 괜찮은” 솔루션이라 생각했습니다.
- 1주일이 지나고 사용자 디포짓이 늘어나고 있습니다. 현재 해당 자산 거래량의 오직 50%가 C거래소에서 거래되고 있으며 자산에 대한 시장 변동성은 낮고 오라클 메커니즘이 잘 작동되는 것으로 보입니다. Joe는 오라클이 아직 “잘 작동하기” 때문에 오라클의 시장 커버리지가 떨어지는 것을 고려하기 보다는 그의 디앱에 더 많은 기능을 추가 개발하기로 결심합니다.
- 또 1달이 지나고 한밤중에 Joe는 그의 디앱에 있던 수백만 달러의 유저 디포짓이 증발되었다는 소식을 듣고 일어납니다. 그는 C거래소의 거래 물량의 대부분이 빠져나갔다는 것을 알게 되고 그의 오라클에 데이터를 받던 유일한 거래소는 이제 자산 거래량의 5%만 커버하고 있습니다. 이 거새로는 큰 거래자(whale trader)가 조작해 오라클이 아웃라이어 가격 포인트를 제공하게 해 아무것도 모르던 유저로부터 상당량의 가치를 불공평하게 빼앗을 수 있는 기회를 제공했습니다.
- Joe의 디앱은 현재 유저 신뢰를 완전히 잃어 가망이 없는 상태이고 개발자로서의 그의 평판 또한 추락했습니다. 만약 Joe의 오라클 솔루션이 시장 커버리지를 고려했다면 이러한 상황은 벌어지지 않았을 것입니다.
- Joe의 디앱은 현재 유저 신뢰를 완전히 잃어 가망이 없는 상태이고 개발자로서의 그의 평판 또한 추락했습니다. 만약 Joe의 오라클 솔루션이 시장 커버리지를 고려했다면 이러한 상황은 벌어지지 않았을 것입니다.
위 예시를 보면 하나의 거래소로부터 데이터를 받는 오라클 네트워크를 구축하면 생길 수 있는 위험에 대해 알 수 있었습니다. 시장 커버리지는 애플리케이션의 성공 또는 실패로 이어질 수 있으며 만약 위의 사례에서 플래시 크래시가 발생했다면 더 끔찍한 상황이 발생했을 것입니다.
거래량 변동에 취약한 미리 선택한 거래소에서만 집계한 오라클
미리 선택한 거래소에서 직접 데이터를 가져오는 오라클은 원래 집계 프로세스에 포함되지 않은 새로운 거래소로 거래량이 이동하는 상황에 취약합니다. 원래 오라클 네트워크의 데이터 소스로 선택한 거래소는 처음 선택 당시에는 유동성이 풍부했을 수 있지만 그 거래량이 미래에도 해당 거래소에 계속 유지될 것이라는 보장은 없습니다. 그렇기 때문에 악의적 공격자들이 공격할 때 해당 자산의 적은 양만 조작해도 되기 때문에 공격에 필요한 비용이 줄어듭니다.
굉장히 적은 공격 벡터라고 생각될 순 있지만 아래에서 설명하는 상황을 생각해보세요.
- Bob 이라는 스마트 컨트랙트 개발자가 Joe의 실수를 보고 하나의 거래소가 아닌 A, B, C거래소로부터 암호 자산 관련 데이터를 제공받는 오라클을 만들기로 결심합니다. Bob은 이렇게 거래소로부터의 평균값을 제공받는 오라클이라면 시장 조작 효과가 완화될 것이라 생각했습니다.
- 몇 주 후 Bob은 그가 만든 다수의 거래소로부터 데이터를 제공받는 오라클을 만들길 잘했다고 생각하고 하나의 거래소의 가격이 조작되어도 응답을 그대로 보냈습니다. 이로 인해 그의 애플리케이션의 주요 비즈니스 로직을 지키지 않게 됩니다. Bob은 새로운 기능을 개발하고 있고 2개의 새로운 거래소가 나타나 해당 암호 자산 거래량에 대한 85% 지분율을 갖고있다는 것을 발견했습니다.
- 며칠이 더 지나고 한밤중에 일어난 Bob은 Joe처럼 그의 컨트랙트를 사용해 수백만 달러의 유저 디포짓이 빠져나간 것을 알게되었습니다. Bob이 선택한 거래소들은 처음에 오라클 네트워크를 구축할 때는 유동성이 있었지만 시간이 지남에 따라 거래량이 처음 집계 과정에서 포함되지 않은 새로운 거래소로 옮겨지게 되었습니다. 이와 같이 그의 오라클 네트워크는 15% 시장 커버리지를 갖췄고 이 기회를 악용해 Bob의 스마트 컨트랙트 애플리케이션을 악용하려는 거래자들로부터 조작되었습니다.
- Bob이 오라클의 데이터 소스를 분산하려는 시도는 좋았지만 거래소간 거래량이 바뀌는 것은 고려하지 않아 해당 암호 자산에 대한 거래량이 새로운 거래소로 가는 것은 알아차리지 못했습니다. 만약 새로운 거래소가 생기지 않았더라도 거래량은 한두개의 거래소에 몰릴 수도 있었는데 그렇게 되면 거래자들이 거래량이 낮은 거래소를 공략해 가격 데이터의 평균값을 그들이 유리한 쪽으로 조작할 수 있습니다.
Bob과 Joe 모두 오라클 메커니즘을 사용하는 데이터 생성 프로덕트를 만들 때 시장 커버리지가 부족했습니다. 두 사람 모두 만약 시장 조작 예방 관련 및 시장 커버리지 이슈 관련 수십년의 경험이 있는 데이터 어그리게이터로부터 데이터를 제공받았다면 아마 이러한 상황을 완전히 피할 수 있었을 것입니다.
저품질 오라클 솔루션과 고품질 오라클 솔루션의 믹스
아웃라이어를 제거하기 위해 어떤 오라클은 다수의 다른 오라클을 사용해 가격 업데이트를 생성하려고 합니다. 다양한 오라클 솔루션을 사용해 분산하는 것은 이론상으로는 좋게 들리지만 낮은 품질의 데이터를 제공하는 오라클 메커니즘이 있을 수 있어 더 큰 리스크가 있습니다.
체인링크 가격 레퍼런스 데이터로부터 받은 안전하고 신뢰할 수 있는 가격 데이터를 프리미엄 API 지원받지 않는, 거래소 API로부터 시장 데이터를 제공받지 않는 검증되지 않은 덜 투명한 오라클 솔루션으로부터 제공받은 낮은 품질의 데이터를 함께 사용하게 되면 큰 리스크가 있습니다. 이런 우려는 특히나 DeFi가 확보한 가치가 더 커질수록 오라클 메커니즘의 허점을 통해 DeFi 디앱을 공격하려는 인센티브가 더 커져 심각한 사항이 됩니다.
세가지 오라클 솔루션이 한 번에 사용되는 상황을 상상해보세요. 하나는 고품질 노드를 통해 프리미엄 데이터 제공자로부터 데이터를 받는 체인링크의 가격 레퍼런스 데이터, 다른 것은 미리 선택한 거래소 API로부터 가격 데이터를 받아오는 오라클, 그리고 마지막은 크리덴셜 관리를 하지 못해 하나의 낮은 품질의 데이터 소스를 사용하거나 거래소 API를 사용하는 오라클 솔루션.
체인링크의 고품질 데이터를 안전하지 않은 오라클 솔루션으로부터 제공받은 저품질 데이터를 결합하면 최종 집계된 데이터 포인트의 품질이 저하될 수 있습니다.
다음은 이 예시에 대한 설명입니다.
- 오른쪽 그림에는 다수의 고품질 데이터 어그리게이터로부터 제공받은 체인링크 가격 레퍼런스 데이터가 있고 $100 거래를 하는 유동성 조정된 전체 시장에 대한 가격 정보를 보여주고 있습니다.
- 왼쪽 상단 오라클 솔루션은 미리 고른 거래소 A, B, C의 API로부터 받은 데이터이고 거래량의 85%를 차지하는 거래소 D와 E를 뺀 전체 시장 거래량의 15%만 커버하고 있습니다. 이로 인해 데이터 포인트가 왜곡이 되어 잘못된 가격 정보인 $70를 보이고 있습니다.
- 왼쪽 하단의 오라클 솔루션은 하나의 저품질 데이터 소스에만 연결이 되어있어서 시장의 높은 변동성 때문에 가격 정보를 받지 못했습니다. 단일장애지점 때문에 오라클이 가격 정보를 $0으로 보고했습니다.
스마트 컨트랙트가 3개의 가격 정보 ($0, $70, $100)를 받은 중간 값을 사용했을 때 최종 집계된 가격은 시장 전반에 걸친 올바른 가격인 $100가 아니라 잘못된 가격인 $70이었습니다. 심지어 3개 가격의 평균 값은 $57정도입니다. 두가지 경우 모두 두개의 다른 저품질 데이터를 사용하는 오라클 솔루션이 제공한 데이터 때문에 체인링크 가격 레퍼런스 데이터의 고품질 데이터에 영향을 미쳤습니다.
이러한 경우 저품질 데이터 포인트는 조작에 더 취약하며 체인링크가 제공하는 거래량 조정된 데이터에 영향을 미칠 확률이 더 높아집니다. 오라클 솔루션의 분산화는 중요하지만 데이터 또는 노드의 품질을 저해하면서까지 분산할 순 없습니다. 데이터를 믹스해서 사용하면 체인링크 가격 레퍼런스 데이터 네트워크가 제공하는 가치의 품질 자체를 떨어트릴 수 있는 위험이 있습니다. 체인링크는 출처가 없는 소스로부터 가격 데이터를 받아 사용하지 않으며 제대로 설계되지 않은 계산법을 사용하는 오라클을 사용하지 않으며 프리미엄 데이터가 없는 데이터는 믿지 않으며 암호 경제가 보장해야 할 요소를 갖추지 않은 오라클은 신뢰하지 않습니다.
차세대 애플리케이션을 위한 고품질 데이터 제공
오라클 및 데이터 소스는 풀 스펙트럼에 걸쳐 엔드 투 엔드 보안을 위해 갖춰야 중요한 요소입니다. 수십억, 나아가 수조 달러의 가치를 지닌 DeFi 생태계를 위해 필요한 신뢰할 수 있는 오라클 네트워크를 위해서 제공되는 데이터가 안전하고 신뢰할 수 있는 품질이어야 합니다. 체인링크는 추후 DeFi가 더 성장해 주류화 될 수 있도록 더 안전한 엔드 투 엔드 플랫폼을 만들기 위해 체인링크 오라클 메커니즘에 대한 보안 및 데이터의 신뢰를 늘 최우선으로 염두에 두고 있습니다.
만약 DeFi 프로젝트를 진행하고 있거나 가격 레퍼런스 오라클 네트워크를 만들고 싶거나 이미 존재하는 것을 사용하고 싶다면 체인링크 개발자 문서 페이지를 방문하거나 Discord에서 기술 대화를 나누거나 함께 더 깊은 논의를 위한 전화 예약을 이곳에서 잡아주세요. 메인넷 또는 테스트넷에 하나 또는 다수의 체인링크 오라클 네트워크를 인티그레이션을 통해 당신의 스마트 컨트랙트에 보안성 증대 또는 기술추가를 실현해보세요.
Website | Twitter | Reddit | YouTube | Telegram | Events | GitHub | Price Feeds | DeFi | Blog
Chainlink 한국 공식 채널
Kakaotalk: https://open.kakao.com/o/gWXAAf0b
Telegram: https://t.me/chainlink_korea
Facebook Group: https://web.facebook.com/groups/459042728150845
문의사항: [email protected]
Chainlink 공식 채널
GitHub: https://github.com/smartcontractkit/chainlink
Twitter: https://twitter.com/chainlinkofficial
Telegram: https://t.me/chainlinkofficial