“진실을 알고싶다면, 오라클을 찾아가봐.”
영화 매트릭스의 오라클은 세계 전체를 바라보는 신관으로 등장한다. 또한 매트릭스 세계관에서 오라클은 안과 밖을 잇고 관장하는 역할을 한다.
실제 블록체인에서 이야기하는 오라클의 개념도 이와 유사하다.
블록체인 세상에 기록할 정보를 제공하고 스마트 컨트랙트를 수행하게 하는 ‘연결고리' 역할이 오라클이다.
■ 스마트 컨트랙트를 완성하는 마지막 퍼즐 조각 “오라클"
블록체인의 특성 중 하나는 ‘블록체인에 기록되면 수정이 불가능하다는 것’이다. 즉, 한번 기록된 정보를 고치는 것은 불가능에 가깝기 때문에 오라클을 통해 기록되는 정보의 정확성이 매우 중요하다.
만약 ‘내일 서울에 눈이 온다면 A는 B에게 만 원을 지급한다.’는 계약(스마트 컨트랙트)을 작성했다고 가정해 보자. 정말로 눈이 올 경우, 오라클이 가져온 눈이 왔다는 정보(기록할 외부 정보)를 통해 A는 B에게 만 원을 지급하게 될 것이다.
- ‘내일 눈이 온다면’ -> 블록체인 기록을 위해 오라클이 확인해야 할 외부 정보
- ‘A는 B에게 만 원을 지급한다.’ -> 외부 정보 조건이 부합하면 스스로 실행하는 스마트 컨트랙트
여기서 오라클의 역할은 계약 이행을 위해 조건을 확인하여 블록체인 내부로 가져오는 것이다.
즉, 눈이 온 것을 확인하고 ‘조건이 충족했다.’는 정보를 블록체인에 기록하는 역할이 바로 오라클이다.
■ 만약 정보가 틀렸다면? 오라클 문제 발생
눈이 왔기 때문에, A는 B에게 만 원을 지급했다.
“그러나, 사실 눈이 온 곳은 서울이 아니었다면?”, “눈이 내린 적도 없다면?”
여기서, 외부 정보값을 입력하는 오라클에 대한 의문이 발생한다. 바로 정보의 신뢰성에 대한 의문이다. 만일, 블록체인에 기록한 내용이 잘못된 정보였다면 ‘오라클 문제’가 발생한 것이다.
우리는 어떻게 오라클이 제공한 정보가 진실이라고 믿을 수 있을까?
여기서 오라클이 수행하는 역할을 크게 2가지로 나눌 수 있다.
1) 객관적인 정보를 기록하는 오라클
아시안게임에서 손흥민 선수가 금메달을 딸 경우(객관적 정보) -> 군 면제 혜택을 받는다.
류현진 선수가 월드시리즈에서 1실점도 안 할 경우(객관적 정보) -> 연봉이 10% 상승한다.
위와 같은 객관적인 정보는 오라클 문제가 상대적으로 적게 발생한다.
2) 주관적인 정보를 기록하는 오라클
사람의 피부를 보고 질환을 예상될 경우(주관적 정보) -> 연계된 병원의 토큰을 보상한다.
여기서 한가지 문제가 발생한다. 피부를 보고 질환을 누가 평가하는가?
이 경우, 정말 질환이 맞는지 유무를 판단할 주체가 필요하다. 그리고 정보가 타당한지 확인하는 검수자의 역할까지 필요하다.
즉, 어떤 정보를 기록하냐에 따라 오라클에게 필요한 역할이 달라진다.
■ 오라클의 치명적인 약점 ‘과반수의 판단’
정보 기록의 오류라는 오라클 문제를 해결하기 위한 가장 간단한 방법은 과반수 참여자들이 정보를 판단하는 것이다. 가장 간단한 방법이라고 말한 이유는 과반수를 통해 정보의 조작 또한 쉽게 이뤄지기 때문이다.
10명의 참여자 중 6명이 틀린 정보를 선택한다면? 악의적으로 6명은 ‘서울에 눈이 안 왔다.’는 정보를 선택할 수 있다.
결국 과반수가 의도적으로 다른 값을 선택할 경우, 틀린 정보가 옳은 정보로 둔갑하여 기록될 수 있다. 또 위 변조된 기록으로 스마트 컨트랙트가 동작하여 전혀 다른 사람에게 코인이 지급될 수도 있다.
즉, 과반의 선택이 오라클을 문제를 반드시 해결하는 것은 아니다. 무엇보다 옳은 정보를 선택할 만큼 신뢰도 있는 사용자 51% 이상이 오라클에 참여해야만 한다.
■ 참여를 만드는 ‘보상 설계’로 해결
어떻게 하면 옳은 정보를 선택할 신뢰도 있는 사용자가 오라클에 참여하게 할 수 있을까? 매일매일 정확한 서울 날씨정보를 제공하고 선택하는 사용자가 많아지려면 어떻게 해야 할까?
바로 사용자가 자발적으로 참여하게 만드는 보상 설계, “토큰 이코노미”가 구성되어야 할 것이다. 사용자를 끌어들이기 위한 홍보용 보상이 아니다. 생태계에 자발적으로 참여하게 되는 환경을 만들어주는 보상이어야 한다.
날씨를 예로 들어보자.
1) 제공자 보상: 정확한 날씨 정보를 제공함에 따라 보상을 한다면, 제공자는 정확한 정보를 제공할 것이다.
2) 참여자 보상: 다른 사람의 정보가 옳은지 판단 유무에 따라 보상을 한다면, 참여자는 더 많은 정보를 판단할 것이다.
3) 기여도 보상: 지속적으로 정보 제공, 판별함에 따라 보상을 강화하면 제공자와 참여자는 지속적으로 생태계에 참여할 것이다.
4) 패널티: 틀린 값을 연속적으로 선택할 경우, 보상을 차감한다면 의도적인 위 변조는 줄어들 것이다.
위와 같은 보상 설계가 진행된다면 날씨 정보에 대한 오라클 문제는 보다 효율적으로 개선될 것이다. 분명한 건 자발적 참여를 만드는 보상 시스템을 끊임없이 설계하고 적용하면서 오라클을 고도화해 나가는 노력이 필요하다. 제대로 된 오라클이 나온다면 블록체인이 보여주고자 했던 세상은 생각보다 빠르게 도래할 것이다.
*내용에 기재된 오라클은 특정 기업명이 아닌 블록체인 시스템 개념의 일환입니다.
*본 조사분석 자료는 당사가 신뢰할 만한 자료 및 정보를 기초로 참고가 될 수 있는 정보제공을 목적으로 작성된 자료이나, 그 정확성이나 완전성을 보장할 수 없습니다.
*본 자료는 개인의 의견을 반영하였으며 회사의 공식적인 견해와 일치하지 않을 수 있습니다.