오라클라이즈

해시넷
ykslck (토론 | 기여)님의 2019년 4월 10일 (수) 18:36 판 (오라클라이즈 Oracle 모델에 대한 이론)
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)
이동: 둘러보기, 검색
오라클라이즈(Oraclize) 로고
오라클라이즈(Oraclize) 로고
오라클라이즈(Oraclize) 회사

오라클라이즈(Oraclize)는 영국 런던에 있는 데이터 제공 회사이다. 현실 세계의 다양한 데이터를 수집하여 스마트 계약을 운영하려는 블록체인 네트워크에게 API 방식으로 제공해 주는 오라클 서비스를 하고 있다. 오라클라이즈는 오라클 문제(oracle problem)를 해결하기 위한 중간자(middleware)이다.

오라클라이즈의 데이터는 http 방식의 URL, 울프럼 알파(Wolfram Alpha) 검색엔진, 분산 파일 시스템인 IPFS, 랜덤하게 생성된 값, 계산을 거쳐서 생성된 값 등 5종류로 나뉘어 제공된다. 호출 수수료(call fee)는 쿼리 1건당 약 $0.01 ~ $0.05 달러 정도이다.

회사 개요[편집]

오라클라이즈는 블록체인과 외부 API를 연결하는 데이터 전송 수단이다. 이더리움뿐만 아니라 비트코인, 루트스톡, 코다에서도 사용할 수 있다. 특정 시점에 특정 서버가 제공한 데이터라는 사실을 보장하는 TLSNOtary암호화 인정서를 사용한다. 에스토니아 정부의 eID 스마트 카드 프로젝트에 이더리움 주소를 연결한 사례가 있다. 안드로이드 기기가 최신버전의 운영체제를 사용하는지 증명하거나 오라클라이즈가 개발한 하드웨어 지갑레저에서 제대로 동작하는지 제3자에게 증명하는 서비스도 제공한다.[1]

오라클라이즈 Oracle 모델에 대한 이론[편집]

오라클라이즈는 스마트 계약과 블록체인 어플리케이션을 위한 선도적인 오라클 서비스로서 Ethereum , Rootstock , R3 Corda , Hyperledger Fabric 및 EOS 와 같은 플랫폼에서 매일 수천 건의 요청사항을 처리한다.
블록체인 공간에서 오라클은 데이터를 제공하는 당사자이다. 이러한 수치의 필요성은 Bitcoin 스크립트 및 스마트 계약과 같은 블록체인 응용 프로그램이 필요한 데이터를 직접 액세스하고 가져올 수 없기 때문에 발생한다. 즉 자산과 금융 애플리케이션에 대한 가격 공급, P2P 보험에 대한 날씨 관련 정보, 도박에 대한 무작위 생성 등 필요한 데이터에 직접 액세스하여 가져올 수 없다는 사실에서 그러한 수치가 필요하다. 그러나 새로운 신뢰 중간자에 의해 이 사례는 데스크 탑 애플리케이션의 보안과 환원모델이 된다. 이것이 블록을 처음부터 흥미롭고 유용하게 만든다.
한 가지 해결책은 둘 이상의 신뢰할 수없는 또는 부분적으로 신뢰할 수 있는 당사자로부터 데이터 입력을 수락 한 다음 많은 수의 사용자가 동일한 제한 사항 내에서 동일한 대답 또는 응답을 제공 한 후에 만 ​​데이터 종속 작업을 실행하는 것이다. 이러한 유형의 시스템은 분산 된 오라클 시스템으로 간주 될 수 있다. 아쉽게도 이 방법은 심각한 제한이 있다.

  • 데이터 형식에 대한 미리 정의 된 표준이 필요하다.
  • 본질적으로 비효율적이다. 참여하는 모든 당사자는 수수료를 요구할 것이며, 모든 요청에 ​​대해 충분한 답변을 제공하기까지는 시간이 걸릴 것이다.

오라클라이즈가 개발 한 솔루션은 원본 데이터 소스에서 가져온 데이터가 진품이며 개조되지 않았음을 입증하는 것이다. 이는 반환된 데이터를 신뢰성 증명이라는 문서와 함께 제공함으로써 완성된다. 신뢰성 테스트는 감별가능한 가상 머신 및 신뢰할 수 있는 실행 환경과 같은 다양한 기술을 기반으로 할 수 있다.(오라클라이즈 정품인증에 대한 자세한 내용은 설명서 정품보증서 섹션을 참조하면 된다.) 이 솔루션은 오라클(Oracle) 문제를 우아하게 해결해 준다.
블록체인 응용 프로그램의 개발자와 응용 프로그램 사용자는 오라클라이즈를 신뢰할 필요가 없이 보안모델이 유지된다. 데이터 공급자는 블록체인 프로토콜과 호환되도록 서비스를 수정할 필요가 없으며, 스마트 계약은 웹 사이트 또는 API에서 직접 데이터에 액세스 할 수 있다. 오라클라이즈 엔진은 다양한 블록체인 프로토콜의 개인 및 공개 인스턴스와 쉽게 통합이 가능하다.
오라클라이즈 팀은 서비스를 구축하는 동안 초기에 구상한 것보다 훨씬 더 광범위한 적용 가능성을 발견했다. 예를 들어 Oraclize Random Data-source는 사용자가 지속적으로 공정한 운영을 할 수 있도록 전통적인 도박 애플리케이션에서도 사용이 가능하다. [2]

오라클라이즈 작동원리[편집]

스마트 계약서는 데이터 소스와 매개 변수를 지정하는 오라클라이즈 간에 통화요청을 발행하여 데이터를 가져온다. 오라클라이즈는 수신된 요청을 기반으로 데이터를 가져오고 callBack함수를 사용하여 결과를 반환한다.
오라클라이즈 데이터소스 목록은 다음과 같다.

  • URL: 인터넷 연결.
  • 울프 럼 알파(WolframAlpha): 울프 럼 알파는 계산수학애플리케이션을 개발한 울프 럼 R&D가 개발한 차세대 검색엔진으로 문제에 관한 해답을 직접 제시하는 웹 사이트이다. 2009년 5월 15일 오후 7시 (미국 중부지역 시간, 베이징시간 5월16일 오전 8시) 사전 오픈을 함으로써 사용자가 검색상자의 키를 눌러 필요한 쿼리를 입력하면 링크대신 직접 답안을 제공한다.
  • 블록체인: 다른 블록체인의 데이터
  • IPFS: 파일전송 시스템의 데이터
  • nested: 중첩된 데이터 소스는 다른 서비스에 대한 액세스를 제공하지 않는 메타 데이터 소스이다. 단일 쿼리가 사용 가능한 데이터 원본을 기준으로 하위 쿼리를 작성하고 결과로 별도의 문자열을 생성 할 수 있게 하는 간단한 추가 논리를 제공하는 데 사용된다.
  • computation: 응용프로그램체인 아래에서 결과를 실행할 수 있다. 끝내기 전에 앱은 쿼리 결과를 마지막 줄 (표준 출력 필드에)에 인쇄해야한다.

진위성[편집]

오라클라이즈는 반환 된 결과가 누구에 의해 수정되지 않았음을 증명하기 위해 TLSNotary Proof를 제공한다. TLS는 신뢰할 수 있는 기관에서 발급 한 CA를 사용하여 전송이 올바른지 확인하는 네트워크 전송 프로토콜이다. TLSNotary는 오라클라이즈가 계약에 제공하는 데이터가 특정 시점에 대한 올바른 데이터임을 입증하는 TLS의 개선이다.

수수료[편집]

계약에 대한 오라클라이즈에 대한 첫 번째 호출은 무료이다.
두번째 호출은 데이터 소스와 호출된 증명유형에 따라 이더리움을(Ethereum)을 이용한 계약간의 지불이 된다.

API 소개[편집]

증명 API[편집]

증명된 데이터 정확성을 입증해야 한다.
oraclize_setProof (proofType_TLSNotary | proofStorage_IPFS)
첫 번째 매개 변수는 증명 유형이고 두 번째 매개 변수는 증명 저장 위치이며 현재는 유일하게 IPFS에 저장된다.
증명 불필요: 오라클라이즈_setProof (proofType_NONE)

Query API: oraclize_query[편집]

oraclize_query 함수는 적어도 두 개의 실참 필요, 데이터 소스, 입력 값 (질의 조건)
아래와 유사하다
oraclize_query ( " URL " , " http : XX // id = XX " );
첫 번째 인수가 문자열이면 데이터 소스로 간주되며 두 번째 매개 변수는 쿼리 조건이 된다.
세 개의 매개 변수가 있는 경우 POST 요청으로, 세 번째 매개 변수는 POST 요청의 매개 변수이다.
오라클라이즈는 사전예약 쿼리를 작성할 수도 있다.
oraclize_query(60,"WolframAlpha",:"random number between 0 and 100")
위 코드의 매개 변수는 정수 60이며 인터페이스는 예약 쿼리에 대한 요청을 기본값 으로 사용하며 쿼리는 60초 후에 실행된다. 위의 목적은 WolframAlpha 데이터 소스를 호출하여 견고성 난수에 대한 여러가지 안전하지 않은 솔루션 중 하나 인 0에서 100 사이의 임의의 숫자를 쿼리하는 것이다.

사용자정의gas[편집]

오라클라이즈를 사용하게 되면 특정 요금을 지불해야 한다. 이 요금은 오라클라이즈 요금이외에 콜백을 지불하는 데 사용된다. 기본 값은 200,000가스이다. 사용자는 콜백 함수의 gasLimit을 지정할 수 있지만 사용자가 오라클라이즈로 보낸 가스가 너무 높으면 gasLimit를 초과하는 부분은 오라클라이즈로 반환되며 가스가 너무 낮으면 영원히 콜백을 받을 수 없게 된다.
oraclize_query ( " WolfameAlpha " , " random betwwen 0 and 100 " , 500000 );
세 번째 매개 변수가 정수일 경우 가스 비용을 나타내며 기본 값 20,0000보다 작을 수 없다.

콜백[편집]

오라클라이즈가 데이터를 가져 오면 계약 주소의 다음 세 가지 방법 중 하나를 호출한다.

  • _callback (bytes32 myid, string result) "."Myid는 고유한 ID이다. 이 ID는 oraclize_query 메소드에 의해 리턴 되며 계약에 여러 oraclize_query 호출이 있는 경우 이를 결과와 일치하는 조회에 사용한다.
  • TLSNortary 증명이 필요한 경우 결과는 _callback (bytes32 myid, string result, bytes proof)이다.
  • 다른 방법이 없는 경우 익명 함수를 사용한다.

분석보조원[편집]

오라클라이즈는 크롤러 라이브러리로 캡슐화 된 html 페이지를 분석하는 것과 유사한 페이지 분석에 관한 유용한 도구를 제공한다.

조회가격받기[편집]

실제 쿼리 이전에 비용이 얼마인지 알고 싶다면 oraclize.getPrice ( )함수를 사용하여 필요한 수를 얻을 수 있다. 첫 번째 인수는 데이터 소스이고 두 번째 인수는 선택 가능한 사용자 지정 가스이다. 자주 사용하는 예를 들면 이더리움 잔액이 조회를 수행하기에 충분하지 않을 때, 클라이언트 측 계약에 이더리움을 추가하도록 통지하는 것이다.

암호화 조회[편집]

예를 들어 사용자가 자신의 주소, 매개 변수 및 기타 정보를 노출하고 싶지 않을 때 오라클라이즈는 암호화를 조회서비스를 제공하며, 파이썬(python)으로 작성한다: https://github.com/oraclize/encrypted-queries. 클라이언트 측 만 해독이 가능하다.[3]

오라클라이즈 사용료[편집]

오라클라이즈 사용료 [2]

사용절차[편집]

  • Oraclize 계약승계
  • 외부 데이터 소스를 정의하는 접근 방식
  • 데이터 리턴을 정의하는 리턴 함수__callback()

동영상[편집]

각주[편집]

  1. 가사키 나가토, 시노하라 와타루, 〈처음 배우는 블록체인〉, books.google
  2. 2.0 2.1 Oraclize , Oraclize
  3. 像我这样的人, 〈区块链中的预言机:Oraclize原理介绍〉, 《博客园》

참고자료[편집]

같이 보기[편집]