아하
검색 이미지
생활꿀팁 이미지
생활꿀팁생활
생활꿀팁 이미지
생활꿀팁생활
청렴한가오리296
청렴한가오리29619.04.26

스마트 컨트렉트와 오라클에 대해 문의 드립니다.

스마트 컨트렉트가 본래의 기능보다 축소되어 단순히 코인간의 거래에만 이용되고 있는 이유중에 가장 큰 이유중 하나가 오라클 시스템이 제대로 적립되지 않아서 라고 하는데요

오라클 시스템에대해서 개인적으로 찾아보니.

블록체인에 외부데이터를 제공하는시스템이라고 설명이 나옵니다.

오라클 시스템에 대해 좀 쉽게 설명해 주시면 감사하겠습니다.

55글자 더 채워주세요.
답변의 개수
2개의 답변이 있어요!
  • 안녕하세요

    오라클에 대해서 궁금하셨나보군요

    오라클은 데이타베이스 서버 이름입니다

    pc에 설치된 OS 명칭이 윈도우,

    휴대폰에 설치된 OS 가 안드로이드인것처럼

    DB 명칭이구요

    오라클이 하는 일은 말씀하신데로 자료저장,검색,수정,삭제등의 역활을 하며

    은행이나 큰규모의 기업에서 데이타저장용으로 많이들 사용하고 있습니다

    그러니깐 중앙집중적인곳에 많이들 사용이 되는것이죠

    이제 질문하신내용중에

    스마트 컨트렉트가 본래의 기능보다 축소되어 단순히 코인간의 거래에만 이용되고 있는 이유중에 가장 큰 이유중 하나가 오라클 시스템이 제대로 적립되지 않아서 라고 하는데요

    라고 하셨는데요, 블럭체인 성격상 오라클 DB서버에 접근하게 만들기 어렵습니다

    예를 들어 설치된 노드가 10만 PC라면?

    10만 PC가 엄청나게 오라클 DB서버에 접속시도를 하여 자료를 입/출력 할텐데 절대 불가능이죠

    또한 쓸데없는 일이기도 하구요

    그래서 오라클을 블록체인상에서 데이타베이스용도로 사용을 할려면?

    블럭체인과 오라클디비서버 사이에 중계역활을 해주는 중앙집중식서버가 필요로 하게 됩니다

    예를 들어 여기 아하 홈페이지가 중간자 역활을 하는것과 같은거죠

    그래야 오라클디비를 퍼펙트하게 사용이 가능하게 됩니다^^


  • 오라클(oracle)이란 단어를 영어 사전에 찾아보면 '신탁'이라는 의미가 있습니다. 즉 신의 계시라는 의미가 있죠. 신의 계시는 인간 세계의 밖에서 인간 세계로 신의 메시지를 보내는 것을 의미하는데, 이러한 의미를 블록체인에서는 '외부에 있는 데이터나 정보를 블록체인으로 가져오는 것, 입력하는 것'을 의미하게 됩니다.

    질문자께서 말씀하신 것처럼 스마트 컨트랙트가 동작하는 과정에서 '오라클 문제'가 발생할 수 있는데요, 한 가지 예를 들어보도록 하겠습니다.

    A라는 사람과 제가 내기를 한다고 가정하고 내기 결과에 따른 보상을 암호화폐로 지급하겠다고 스마트 계약을 맺었다고 해 보겠습니다. 그 내기의 내용은 이런 것입니다.

    '만약에 5월 안에 아하 서비스의 월간 활성 유저 수가 100만 명을 넘는다면 A가 erc20에게 100만 AHT를 지불한다. 그 반대의 경우는 erc20이 A에게 100만 AHT를 지불한다.'

    즉 erc20은 5월 안에 MAU가 100만 명을 넘는다고 예상했고, A는 넘지 못한다고 예상한 것이 되겠죠. 이때 스마트 컨트랙트로 계약할 수 있는 부분은 계약 조건을 만족할 경우 erc20과 A가 각각 상대방에게 AHT를 지불한다는 것입니다.

    그렇다면 '아하 서비스의 월간 활성 유저수가 100만 명을 넘었다'라는 사실은 어떻게 확인할 수 있을까요? 그렇습니다. 이 정보나 데이터는 바로 외부에서 가져오거나 입력되어야만 하는 정보인 것입니다. 스마트 컨트랙트가 작동하기 위해 필요한 외부 정보가 존재하게 되는 것이죠.

    앞서 살펴 보았듯이 오라클이 '외부에 있는 데이터나 정보를 블록체인으로 가져오는 것, 입력하는 것'을 의미한다면 신뢰할 수 있는 외부 정보, 오라클이 없이는 스마트 계약이 이행되기가 힘든 것입니다. 이것을 '오라클 문제'라고 부릅니다.

    계속해서 A와 erc20이 아하의 MAU를 아하 팀에 문의해서 확인을 받았다고 가정해 보겠습니다. 그리고 100만 명이 넘었다는 답변을 들었다고 할 때, A가 erc20에게 100만 AHT를 줘야 할텐데, 갑자기 A가 100만 명이 넘는다는 것을 어떻게 믿느냐고 따집니다. 아하에서 담당자가 실수로 잘못 알려줬거나 통계가 잘못되었을 수도 있다고 따지면 erc20으로서도 어떻게 할 수가 없는 상황이 생길 수도 있습니다. 따라서 외부 정보의 신뢰성을 확신할 수 없어 스마트 계약은 여전히 체결되지 못하는 상황(오라클 문제)에 빠지게 됩니다.

    그러므로 이 오라클 문제를 해결하지 않고서는 스마트 컨트랙트가 자판기 수준의 계약을 넘어 외부 정보를 활용한 계약을 체결하는 것에 한계가 생긴다고 할 수 있습니다.

    그렇다면 이러한 오라클 문제를 해결하기 위한 방법에는 어떤 것이 있을까요?

    1. 중앙값을 이용하는 방법이 있습니다. 중앙 값이란 나열할 수 있는 데이터의 가장 중간에 위치한 값으로 평균값이 극단적인 데이터에 의해 왜곡될 수 있으므로 가장 중앙에 위치하는 값을 신뢰값으로 선택하는 것을 의미합니다. 앞서 예시에 적용해 보면 여러 가지 변수를 달리하여 5월의 MAU에 대한 통계를 여러번 내 봤을 때 150만이라는 값이 중간에 위치했다면 아하의 MAU가 150만을 돌파했다고 보고 A가 erc20에게 100만 AHT를 지급하는 스마트 계약을 실행하게 되는 것이 되겠습니다.

    2. 다음으로 투표를 하는 방법이 있습니다. 이 문제에 대해 AHT 홀더들이 각자 AHA 측에 문의해 보고 각자가 들은 답을 말해 줌으로써, 100만 명을 넘었다는 것과 넘지 못했다는 것 중에서 더 많은 득표를 한 사실을 신뢰할 수 있는 외부 정보로 삼게 되는 것이라고 할 수 있습니다. 이 경우 계약과 직접적인 관계가 없는 제3자들이 외부정보(오라클)에 대한 신뢰도만을 판단하게 되므로 믿을 수 있는 정보일 확률이 높아지게 됩니다. 따라서 100만 명이 넘었다는 결과가 나올 경우 A가 erc20에게 100만 AHT를 지불하는 스마트 계약이 실행되어야 할 것입니다.

    3. 끝으로 미들맨 또는 미들웨어, 중간자라고 불리는 사람의 존재를 인정하는 방법도 있습니다. 예를 들어 앞서 A와 erc20이 계약을 맺을 때 아하가 5월에 MAU 100만 명을 넘었다는 사실을 증명해 줄 수 있는 객관적인 중간자를 '아하 팀'이라고 결정했다고 해 보겠습니다. 이 경우 계약의 당사자들이 합의하고 인정하는 중간자로 '아하 팀'이 존재하기 때문에, 팀에 오라클 문제의 해결을 의뢰할 수 있는 것이죠. 즉, 신뢰할 수 있는 외부 정보를 줄 수 있는 중간자가 존재하기 때문에 오라클 문제가 발생하지 않고 스마트 계약이 실행될 수 있게 되는 것입니다.

    어떻게 오라클에 대해 이해하기 쉽게 잘 설명해 드렸는지 모르겠습니다. 답변이 도움이 되길 바랍니다.