분산형 오라클 네트워크(DON)를 메인 체인 또는 다른 비블록체인 시스템에서 스마트 컨트랙트의 기능을 향상시키기 위해 오라클 보고서 및 기타 서비스를 제공하도록 설계된 분산 시스템이다. DON은 일반적으로 위원회 기반 합의 프로토콜을 사용하여 구현되며 오라클 노드 집합에 의해 실행됩니다. DON의 속성과 모델은 대부분 특정 응용 프로그램과 독립적이며 특정 메인 체인과 연관될 필요가 없다.
오늘날 Chainlink는 단일 서비스가 아니라 오라클 노드의 다양한 독립 네트워크를 시작하기 위한 프레임워크입니다. 이러한 네트워크는 서로 다른 노드 운영자, 설계, 제공되는 서비스(예: 데이터 피드, 예약 증명 및 검증 가능한 무작위성), 분산 수준, 크기, 데이터 빈도 및 정확도를 가지고 있다.
체인링크의 Permissionless 모델은 생태계의 전문화와 성장을 가능하게 하여 사용자에게 더 낮은 비용과 더 높은 품질의 서비스를 제공한다. Chainlink 2.0에서 DON 기반 설계로 발전함에 따라 사용자에게 애플리케이션 요구사항을 가장 잘 충족하는 다양한 서비스 선택권을 제공하는 것을 목표로 개방적이고 허가 없는 프레임워크를 유지하는 데 전념하고 있다.
분산형 오라클 네트워크(DON)는 오라클 노드에 의해 유지되는 데이터 구조와 그 위에 있는 코어 API를 모두 포함하여 오라클 시스템의 전체 기능을 의미한다. “Ledger(원장)”(L)이라는 용어는 DON이 제공하는 서비스를 지원하기 위해 사용되는 기본 데이터 구조를 가리키는 데 사용됩니다. DON 프레임워크는 블록체인과 같은 독립형 시스템이 아니라 블록체인과 다른 시스템을 지원한다. 원장은 개념적으로 선형 순서의 데이터를 위한 게시판으로 보이며, 블록체인에서 일반적으로 발견되는 주요 속성을 가지고 있다.
"위원회"라고 불리는 일련의 오라클 노드는 원장(O로 표시됨)을 실행한다. Oi 플레이어의 공개 키는 pki로 표시되며, 해당 개인 키는 ski로 표시된다. 보안을 보장하기 위해 위원회는 최소 n = 3f + 1개의 노드가 2/3 이상의 정직한 노드를 가져야 합니다. 여기서 f는 잠재적으로 결함이 있는 노드의 수입니다. 공개 키 pk에 대한 메시지 m의 서명은 σ = Sigpk[m]로 표시되며, 이에 대응하는 서명 검증 알고리즘(verify(pk, σ, m))이 있다. 이 논문은 DON이 지원하는 단일 메인 체인(MAINCHANE)을 가정하지만, 여러 메인 체인 또는 비블록체인 서비스도 지원할 수 있다. DON은 일반적으로 메인체인에 의존하는 여러 컨트랙트을 지원한다.
DON은 위원회 기반 합의 프로토콜 위에 구축될 수 있으며, 우리는 그러한 프로토콜을 일반적으로 사용할 것으로 예상한다. 위원회 기반 시스템과 허가 없이 분산된 시스템의 보안은 비교할 수 없으며 둘 다 고유한 강점과 약점을 가지고 있다. 위원회 기반 시스템은 노드가 신뢰할 수 있는 엔티티인 경우 더 많은 기능을 지원할 수 있고 더 안전할 수 있지만, 위원회 기반 시스템을 손상시키는 것은 임계값 노드 수(일반적으로 1/3)를 손상시키는 것을 의미한다.
반면에, 허가 없는 시스템은 다수의 자원을 일시적으로 획득해야 하기 때문에 더 안전할 수 있지만, 그만큼의 기능을 지원할 수는 없다. 궁극적으로, DON은 위원회 기반 또는 허가 없는 합의 프로토콜 위에 구축될 수 있으며, 둘 사이의 선택은 DON 배포자의 목표에 따라 달라질 것이다.
Bolstering trust models: 체인링크를 통해 사용자는 분산 방식으로 기록된 성능 이력을 기반으로 노드를 선택할 수 있다. 스테이킹 메커니즘과 암시적 인센티브 프레임워크는 사용자에게 DON의 보안을 평가하고 참여 노드에 보안 요구 사항을 적용할 수 있는 기능을 제공한다. 이 프레임워크는 또한 규제 준수와 같은 특별한 신뢰 모델 요구사항을 시행하는 데 사용될 수 있다. DON의 견고성은 그들이 지원하는 주요 체인의 신뢰 메커니즘을 통해 강화될 수 있다.
DON은 단순하지만 강력한 인터페이스를 제공하도록 설계되었습니다. 실행 파일과 어댑터로 구성됩니다. 실행 파일은 스마트 컨트랙트와 유사한 결정론적 논리를 가진 프로그램으로, 미리 결정된 사건이 발생했을 때 실행 파일의 논리를 호출하는 프로그램인 이니시에이터를 가지고 있습니다. 어댑터는 오프체인 리소스에 대한 인터페이스를 제공하며 이니시에이터 또는 실행 파일의 핵심 로직에 의해 호출될 수 있습니다. 그러나 이들의 행동은 외부 자원에 의존할 수 있으므로 비결정론적일 수 있다. DON 개발자 인터페이스는 네트워킹, 컴퓨팅 및 스토리지의 세 가지 리소스로 특징지어집니다.
DON의 어댑터는 실행 파일이 오프체인 시스템 및 리소스와 상호 작용할 수 있는 인터페이스를 제공합니다. 그들은 데이터를 송수신할 수 있는 능력을 가지고 있으며, 안전한 통신을 위해 다양한 프로토콜과 암호화를 활용할 수 있습니다.
Figure ) 어댑터를 사용하면 DON이 다른 DON, 블록체인, 스토리지 시스템, 웹 서버 및 IoT 장치를 포함한 다양한 시스템 및 장치와 상호 작용하고 데이터를 교환할 수 있습니다.
어댑터를 생성할 수 있는 외부 리소스의 예:
블록체인: 어댑터는 블록체인에 트랜잭션을 보내는 방법과 블록체인에서 블록, 개별 트랜잭션 또는 기타 상태를 읽는 방법을 정의할 수 있습니다. 어댑터는 블록체인의 mempool에 대해서도 정의될 수 있다.
웹서버: 어댑터는 DON과 인터페이스하기 위해 특별히 조정되지 않은 레거시 시스템을 포함하여 웹 서버에서 데이터를 검색할 수 있는 API를 정의할 수 있습니다. 이러한 어댑터들은 또한 이러한 서버들로 데이터를 전송하기 위한 API들을 포함할 수 있다. DON이 연결되는 웹 서버는 사물인터넷(IoT) 장치와 같은 추가 리소스에 대한 게이트웨이 역할을 할 수 있습니다.
외부 저장소: 어댑터는 분산 파일 시스템 또는 클라우드 스토리지와 같은 DON 외부의 스토리지 서비스에 읽고 쓰는 방법을 정의할 수 있습니다.
다른 DONs: 어댑터는 DON 간에 데이터를 검색하고 전송할 수 있습니다.
DON은 어댑터 사용을 통해 온체인 시스템과 오프체인 시스템 간의 유연하고 강력한 인터페이스를 제공하도록 설계되었습니다. 그리고 DON은 사용자와 실행 파일을 대신하여 클라우드 스토리지 및 암호화폐와 같은 외부 자원을 제어하고 관리할 수 있는 능력을 갖게 될 것입니다.
실행 파일은 DON의 기본 코드 단위입니다. 실행 파일은 쌍 exec =(logic, init)입니다. 여기서, 논리학은 다수의 지정된 진입점(logic1, logic2, . . logicl)을 갖는 결정론적 프로그램이고, init는 대응하는 이니시에이터들의 집합(init1, init2, . . init)이다. DON의 완전한 감사 가능성을 보장하기 위해, 실행 파일의 논리는 모든 입력과 출력에 기본 원장 L을 사용한다.
Initiators: 오늘날 Chainlink의 이니시에이터는 Chainlink 노드에서 이벤트 의존적 작업 실행을 유발합니다. DON의 이니시에이터는 거의 동일한 방식으로 작동합니다. 그러나 DON 이니시에이터는 실행 파일과 연관되어 있습니다. 이니시에이터는 외부 이벤트 또는 상태, 현재 시간 또는 DON 상태의 predicate에 의존할 수 있습니다. 이벤트에 대한 의존성으로 인해 이니시에이터는 비결정론적으로 행동할 수 있습니다. 이니시에이터는 개별 DON 노드 내에서 실행할 수 있으므로 어댑터에 의존할 필요가 없습니다.
이니시에이터는 실행 파일과 스마트 컨트랙트을 구별하는 중요한 기능입니다. 실행 파일은 이니시에이터에 응답하여 실행될 수 있기 때문에 효과적으로 자율적으로 작동할 수 있으며, 더 나아가 실행 파일을 통합하는 하이브리드 컨트랙트도 가능하다.
실행파일은 스마트 컨트랙트와 기능 측면에서 유사합니다. 그러나 더 높은 성능을 제외하고는 일반적인 메인 체인 컨트랙트와는 두가지 본질적인 측면에서 다릅니다.
Confidentiality: 실행 파일은 기밀 계산을 수행할 수 있다. 간단한 모델에서 비밀 데이터는 DON 노드에 의해 액세스될 수 있으며, DON 노드는 중간 결과를 숨기고 처리되고 검역된 값만 MAINCHIN에 공개한다. 또한 DON 자체로부터 민감한 데이터를 숨길 수도 있습니다. DON은 이러한 목적을 위해 다자간 연산 및 신뢰할 수 있는 실행 환경(TEE)과 같은 접근 방식을 지원하기 위한 것입니다.
Supporting role: 실행 파일은 스마트 컨트랙트는 대체하기보다는 메인 체인에서 지원하기 위한 것이다. 실행 파일에는 스마트 컨트랙트와 다른 몇 가지 제한이 있습니다
Trust model: 실행 파일은 DON에 의해 정의된 신뢰 모델 내에서 작동한다.
Asset access: DON은 블록체인의 계정을 제어할 수 있으므로 어댑터를 통해 해당 계정의 자산을 제어할 수 있습니다. 그러나 주 체인(예: Ether 또는 ERC20 토큰)에서 생성된 자산은 고유 체인이 소유권에 대한 권위 있는 기록을 유지하기 때문에 DON에 권한이 없습니다.
Lifecycle: DON은 DON과 의존 컨트랙트 소유자 간의 온체인 서비스 수준 컨트랙트에 의해 정의되는 제한된 수명으로 의도적으로 설치될 수 있습니다. 대조적으로 블록체인은 영구 아카이브 시스템으로 기능하도록 되어 있다.
위원회 기반 시스템인 DON은 허가 없는 블록체인보다 훨씬 저렴한 비용으로 적당한 양의 데이터를 L에 영구적으로 저장할 수 있다. 또한 어댑터를 통해 DON은 데이터 스토리지를 위한 외부 분산 시스템을 참조할 수 있으므로 이러한 시스템을 스마트 컨트랙트에 연결할 수 있습니다.
DON은 특별히 지원되는 서비스에서 사용하기 위해 데이터를 로컬 또는 외부에 저장할 수 있습니다.
트랜잭션 실행 프레임워크(TEF)는 메인 체인과 분산 오라클 네트워크(DON)에서 컨트랙트을 효율적으로 실행하기 위한 범용 접근 방식이다. TEF는 목표 컨트랙트를 커스터마이징하고 권한 있는 상태 전환을 실행하는 메인 체인의 앵커 컨트랙트과 거래를 순서화하고 오라클 데이터를 제공하는 DON의 실행 파일이라는 두 가지 상호 운용되는 부분을 가진 하이브리드 컨트랙트로 리팩터링한다.
우리가 FSS(Fair Sequencing Services )와 TEF를 지원하기 위해 DON에 배포하려는 중요한 애플리케이션 계층 기능은 Mempool Services(MS)이다. MS는 어댑터로 간주될 수 있지만 중요한 기능입니다.MS는 메인 체인의 mempool을 모니터링하고 메인 체인의 대상 컨트랙트를 위한 트랜잭션을 수집한 다음 MS는 처리를 위해 DON의 실행 파일로 트랜잭션을 전달하고, 대상 컨트랙트 또는 대상 컨트랙트를 호출하는 다른 컨트랙트로 직접 전송할 수 있는 트랜잭션을 구성하는 데 사용할 수 있습니다.
mempool을 모니터링하기 때문에 MS는 SC(Smart Contract)와 직접 상호 작용하는 사용자로부터 트랜잭션을 얻을 수 있다. 따라서 사용자는 레거시 소프트웨어, 즉 MS 및 MS 구성 컨트랙트의 존재를 모르는 애플리케이션을 사용하여 계속해서 트랜잭션을 생성할 수 있습니다. (이 경우, 이중 처리를 방지하기 위해 원본 거래는 무시하고 MS에서 처리한 것만 받아들이도록 SC를 변경해야 합니다.)
대상 컨트랙트와 함께 사용할 경우, MS는 FSS 및/또는 TEF와 함께 사용할 수 있습니다.
오프체인 보고(OCR)는 오라클 보고서를 집계하고 의존 컨트랙트로 전송하기 위한 체인링크의 메커니즘이다.
All-or-nothing off-chain report broadcast: OCR은 인증된 보고서가 모든 정직한 노드 또는 그 중 어느 노드에서도 신속하게 사용할 수 있도록 보장합니다. 이는 정직한 노드가 인증된 보고서 전송에 참여할 수 있는 기회를 보장하는 데 도움이 되는 공정성 속성입니다.
Reliable transmission: OCR은 결함이 있거나 악의적인 노드가 있는 경우에도 모든 OCR 보고서와 메시지가 사전 정의된 특정 시간 간격 내에 SC로 전송되도록 보장합니다.
Contract-based trust minimization: SC는 보고된 값이 최근에 받은 다른 보고서와 크게 다른 경우와 같이 잠재적으로 잘못된 OCR 생성 보고서를 필터링합니다. 이것은 추가 프로토콜 정확성 시행의 한 형태입니다.
이 세 가지 속성 모두 DON에서 자연스러운 역할을 할 것이다. All-or-nothing off-chain(DON) report broadcast는 신뢰할 수 있는 전송에 대한 암호 경제적 보장을 위한 중요한 구성 요소이며, 이는 필수 어댑터 속성이다.
DECO와 Town Crier는 사용자가 웹 서버에서 데이터를 안전하게 확보하고 데이터의 진위와 기밀성을 모두 보장하는 방식으로 검증자에게 제시할 수 있도록 체인링크 네트워크에서 개발 중인 기술입니다. 프로버(Prover)가 웹 서버에서 데이터를 가져와 무결성과 기밀성을 보장하는 방식으로 검증자에게 제공할 수 있도록 설계되었습니다. 두 시스템은 프로버가 검증자에게 제공하는 데이터가 대상 서버에서 진짜로 생성되도록 보장한다는 점에서 무결성을 유지합니다. 그들은 프로버가 데이터를 수정하거나 수정할 수 있도록 하는 의미에서 기밀성을 지원합니다.
두 시스템의 주요 특징은 대상 웹 서버를 수정할 필요가 없다는 것입니다. 기존의 모든 TLS 지원 서버에서 작동할 수 있습니다.
두 시스템은 유사한 목표를 가지고 있지만, 신뢰 모델과 구현에서 차이가 있습니다.
DECO는 프로버가 웹 서버에서 데이터를 가져와 데이터의 진위와 기밀성을 보장하는 방식으로 검증자에게 제시할 수 있도록 설계된 기술입니다.
DECO를 사용하여 대상 서버와의 세션을 설정하는 동안 프로버는 동시에 검증자와의 대화형 프로토콜에 참여합니다. 이 프로토콜은 프로버가 현재 세션 동안 서버로부터 주어진 데이터 D를 받았음을 검증자에게 증명할 수 있게 한다.프로버는 대신 검증자에게 D의 일부 속성에 대한 영지식 증명을 제시하여 D를 직접 드러내지 않을 수 있다.
DECO의 일반적인 사용에서 사용자 또는 단일 노드는 웹 서버와의 개인 세션에서 DON의 모든 노드로 데이터 D를 내보낼 수 있습니다. 결과적으로, 전체 DON은 D(또는 영 지식 증명을 통해 D에서 파생된 사실)의 진위를 증명할 수 있다.
Town Crier는 인텔 SGX와 같은 신뢰할 수 있는 실행 환경(TEE:trusted execution environment)의 사용에 의존한다. 간단히 말해서, TEE는 조작 방지 및 기밀 방식으로 응용 프로그램을 실행하는 일종의 블랙박스 역할을 한다. 원칙적으로, TEE가 실행 중인 호스트의 소유자조차도 TEE로 보호된 애플리케이션을 (감지할 수 없게) 변경하거나, 기밀 데이터를 포함할 수 있는 애플리케이션의 상태를 볼 수 없습니다.
타운 크리어는 DECO 등의 모든 기능을 구현할 수 있습니다. DECO는 프로버를 단일 검증자와의 상호 작용에 구속한다. 대조적으로, 타운 크라이어는 프로버가 대상 서버에서 가져온 데이터 D에 대해 공개적으로 검증 가능한 증거, 즉 누구나, 심지어 스마트 컨트랙트도 직접 검증할 수 있는 증거를 생성할 수 있게 한다. 타운 크리어는 비밀(예: 사용자 자격 증명)을 안전하게 수집하고 사용할 수 있습니다.
타운 크리어의 주요 한계는 TEE에 대한 의존성이다. Production TEE는 기술이 초기 단계에 있으며 최근에 많은 심각한 취약성이 있는 것으로 나타났다.
체인링크 오라클 네트워크는 오늘날 다양한 블록체인 및 기타 분산형 시스템에 걸쳐 많은 주요 서비스를 제공한다. 이 백서에서 설명한 바와 같은 추가적인 진화는 이러한 기존 서비스에 추가적인 기능과 범위를 부여할 것입니다. 세 가지 예는 다음과 같다:
Data feeds: 오프체인 소스에 따른 주요 데이터를 전달합니다.
다음 여러 가지 방법으로 Chainlink 네트워크의 데이터 피드 제공을 향상시킬 것입니다.
Scaling: OCR 및 후속 DON은 Chainlink 서비스가 지원하는 많은 블록체인에 걸쳐 극적으로 확장할 수 있도록 하는 것을 목표로 합니다.
Enhanced security: 중간 보고서를 저장함으로써 DON은 충실도 높은 모니터링과 성능 및 정확도 측정을 위해 노드 동작에 대한 기록을 유지하여 체인링크 노드에 대한 평판 시스템의 강력한 경험적 접지를 가능하게 합니다.
Feed agility: 블록체인에 구애받지 않는 시스템(실제로 더 광범위하게는 소비자에 구애받지 않는 시스템)인 DON은 다양한 의존 시스템에 데이터 피드를 제공하는 것을 용이하게 할 수 있다. 단일 DON은 주어진 피드를 서로 다른 블록체인 집합에 동시에 푸시할 수 있으므로, 체인별 오라클 네트워크의 필요성을 없애고 기존 피드를 새로운 블록체인과 현재 서비스되는 블록체인 전반에 걸쳐 신속하게 배치할 수 있다.
Confidentiality: DON에서 일반화된 계산을 수행할 수 있는 기능을 통해 민감한 데이터에 대한 계산이 체인 외부에서 발생하여 체인에 노출되는 것을 방지할 수 있습니다.
Verifiable Random Functions (VRFs): 여러 유형의 디앱은 공정한 운영을 검증하기 위해 검증 가능한 정확한 무작위 소스를 필요로 한다.체인 링크는 훨씬 더 안전한 방법으로 예측할 수 없는 무작위성을 제공한다.
Keepers: Chainlink Keepers는 개발자가 일반적으로 의존하는 스마트 컨트랙트의 실행을 트리거하는 오프체인 작업의 분산 실행을 위한 코드를 작성할 수 있게 합니다. Keepers가 등장하기 전에는 개발자들이 이러한 오프체인 로직을 직접 운영하여 중앙 집중식 장애 지점(및 상당한 중복 개발 노력)을 만드는 것이 일반적이었습니다. Keepers는 대신 이러한 운영의 분산형 아웃소싱을 위한 사용하기 쉬운 프레임워크를 제공하여 개발 주기를 단축하고 활성 및 기타 보안 속성을 강력하게 보장할 수 있습니다
기존 체인링크 생태계는 체인의 기여 노드의 성능 이력을 문서화한다. 이 기능은 개별 노드 운영자 및 데이터 피드에서 성능 데이터를 수집, 필터링 및 시각화하는 평판 지향 리소스 모음을 발생시켰다. 사용자는 이러한 리소스를 참조하여 노드를 선택할 때 정보에 입각한 결정을 내리고 기존 네트워크의 작동을 모니터링할 수 있습니다. 유사한 기능은 사용자가 DON을 선택하는 데 도움이 될 것이다.
정확한 성능 기록의 분산된 컴파일과 사용자가 고성능 노드를 식별하고 노드 운영자가 평판을 구축할 수 있는 기능은 체인링크 생태계의 중요한 구별 기능이다.
chainlink whitepaper v2