학습 차원에서 틈틈히 해외 블록체인 전문가들이 블로그나 미디어 그리고 책에서 쓴 글을 정리하고 있습니다. 이번 포스팅도 그중 하나고요. 거칠고 오역된 부분이 있을 수 있습니다. 제대로 번역되지 않은 부분은 확인주시면 반영토록 하겠습니다. 이번글은 오라클 관련 논문을 쓴 john adler가 미디엄에 '탈중앙화된 오라클의 상태'라는 제목으로 쓴 글을 번역한 것입니다.
스마트 컨트랙트 블록체인이 직면한 두가지 주요한 문제는 중요도 순으로 확장성과 오라클이다. 확장성은 잘 알려져 있다. 블록체인 생태계에서 거의 모든 이들에 의해 많이 얘기되고 있다. 그러나 오라클은 거의 논의되지 않는다. 확장성은 블록체인을 쓸 수 있게 하지만 오라클은 블록체인을 유용하게 한다.
오라클은 무엇인가?
블록체인의 핵심 요구 사항들중 하나는, 결정론적인 검증 가능성이다. 다시 말해 모든 노드가 제네시스 블록부터 현재 체인 헤드까지 체인 상태를 언제나(지금이나 앞으로나) 온체인 데이터를 사용해 검증할 수 있어야 한다. 이같은 제약은 주변에서 설계로 풀어줘야 하는 흥미로운 문제를 불러일으킨다.
다시 말해 영리한 메커니즘은 종종 입증할 수 있게 올바른 방법으로 온체인 데이터를 저장하거나, 오프체인 컴퓨팅을 실행해야할 필요가 있다. 날씨, 월드컵 우승팀과같은 외부 데이터를 블록체인에 가져오는 것은 암호학적인 증명을 통해 결정론적으로 증명될 수 없다. 다른 수단을 통해 온체인 소비용으로 쓰일 수 있어야 한다.
오라클은 외부 데이터를 온체인에서 사용하기 위해 보여주는 어떤 시스템이다. 오라클 없다면 탈중앙화된 스마트 컨트랙트는 온체인 데이터로만 운영될 수 있을 것이다. 이것은 필연적으로 토큰 전송에만 활용을 제한하는 결과로 나타날 것이다. 오라클은 스마트 컨트랙트를 쓸수 있게 만든다. 오라클이 없다면, 블록체인은 고립된 세계에 머물러 있을 수 밖에 없다.
어떤 실용적인 사용을 위해서라면, 오라클은 데이터에 대해 이용 가능하다는 특정한 보장을 해줘야 한다. 이것은, 암호학적인 증명의 형태를 띌수도 있다.(TLSnotary, Town crier), 또 그들의 명성이 걸려 있는 신뢰되는 정보 자원일 수도 있다.(Oraclize), 아니면 가장 바람직한 것인데, 조작 저항, 활성(Liveness)과 안전에 대한 정량적이고 경제적인 보증이다.
이번 포스트의 핵심과 앞서 진행한 나의 박사 연구는 마지막 부분에 해당하는 오라클에 대한 것이다.
아테나(Athena)의 간략한 역사
2017년 여름이 시작되면서, 탈중앙화된 가짜 뉴스 탐지 플랫폼에 대한 브레인스토밍이 시작됐다. 조작된 미디어 뉴스 문제에 많이 노출되면서 뉴스 기사의 정확도를 판단하는 것을 가능케 하고 촉진시키는 해결 방안이 모색됐다.
결과 검증에 동기를 부여하기 위해 트루비트의 강제된 에러(forced errors)를 사용하는 것에서 영감을 얻어, 내가 연구 그룹과 나는 이같은 플랫폼을 개발하는데 착수했다. 코드명 '아스트라이어'였다. 이 문제를 풀려고 하는 것은 많은 근본적인 문제들을 갖고 있다는 것이 분명해졌다. 다시 말해, 이같은 플랫폼이 개발된다고 해도, 어떻게 라도 쓰이려면 미디어 소비자들에 대한 교육이 요구될 수 있다. 그리고 소비자 교육은 대체로 이미 가짜 뉴스 문제를 풀 수 있다.
또 뉴스 기사의 사실성과 허위를 판단하는 것은 말이 되지 않았다. 사용자 행동에 동기를 부여할 수 있는 실측 진실이 없다. 여름이 끝나가면서, 라이언 베리힐과 나는 모든 사람이 하기를 두려하지만 해야 한다는 것을 알고 있는 것을 하기로 결정했다. 피벗이었다. 어떤 것의 진실과 허위를 결정하기 위한 개인들의 탈중앙화 네트워크라는 전제는 그대로 유지됐다. 그러나, 기반 전제는 바뀌었다. 사용자들은 의견들을 판단하고 형성하는 것보다는 사실을 보고하는 역할이었다. 다시 말해, 우리는, 오라클을 개발하고 있었다. 우리는 해당 작업에 아테나라는 이름으로 부르기로 결정했다.
아테나는 어떻게 작동하나
논문 피어 리뷰는 무료로 볼수 있다. 학문적인 관성으로 이것은,전체 프로젝트의 원래 이름 아래 공개됐다. 그러나 해당 시스템은 논문에서 아테나라는 이름으로 적절하게 설명됐다. 나는 이 포스트를 보기전에, 논문을 읽어볼 것을 강력하게 권고한다. 이 글에선 시스템의 핵심을 보여주기 위해 구체적인 내용들은 많이 건너 뛸 것이기 때문이다. 원래 자료를 숙지하고 있다는 가정아래 말이다.
아테나의 기본 전제는 간단하다. 우리 제안이 참인지 거짓인지 결정하기를 원한다. 제안은 사람이 읽을 수 있는 것이다. 예를 들면 콘텐츠를 담은 텍스트들이다. 이같은 제안 리스트를 입력으로 고려해 아테나는 각각에 입력에 대한 결정들을 내놓을 것이다. 이 시스템에서 2가지 핵심 요소는 조작 저항성과 인센티브 호환성으로 설명할 수 있다.
아테나에선 3가지 사용자 그룹이 존재한다(각각의 그룹은 중복될 수도 있다)
서브미터(submitter), 보터(voter), 서티파이어(certifiers)들이다. 이름대로 서브미터는 제안들을 오라클에 제출한다. 서브미터는 그들이 제출하는 각각의 제안에 이더나 토큰을 상품으로 오라클에 첨부한다. 이들은 체인상에서 결과가 소비되기를 원하는 이들이라고 할 수 있다. 이것에 대해 이들은 비용을 낼 의지가 있다.
두번째 사용자은 보터다. 임의로 할당된 제안들을 투표하는 사람들이다.
임의 할당은 보터들에게 어느 제안에 투표하고 싶은지, 선택하도록 하는 것보다 시스템에 조작 저항성을 보여한다. 제안 리스트 크기를 매개변수화할 수 있음을 감안하면 어떤 단일 제안에 대한 조작 비용은 예상할 수 있다.
보터들은, 비제로 확인 스테이킹(staking)과 다수 보팅 스테이크에 동의한다면 제안에 첨부된 상품으로 보상을 받는다.(이 대목은 정말 무슨 말인지 모르겠다)
세번째 그룹은 인센티브 호환성을 유지하는데 필요하다. 아래 나오는 사고 실험을 생각해보라. 보터들이 시스템에서 유일한 그룹이라면 이들이 항상 진실이라고 투표하는 '변질된 평형'(degenerate equilibrium)이 존재한다. 그리고 상품을 수집한다.
이 경우에도 오라클이 존재할까? 토론의 여지가 있지만 해결책은 있다. 서티파이어는 보터들과 달리 투표하기 위한 제안을 선택할 수 있다. 서티파이어들도 다수의 서티파잉 스테이크에 동의한다면 보상을 받는다. 그러나 서티피케이션 풀에서만 각각의 결과에 대해 하나씩 보상을 받는다.
제안의 결과가 사실이라면, 해당 제안에 인증한 서피파이어들은 트루 풀에서 보상을 받는다. 마찬가지로 거짓일 경우에는 거짓 풀에서 보상을 받는다. 다시 말해 서티피케이션 풀들은, 비대칭적으로 소비된다. 대칭적으로 보상을 받는다면, 이것은 모든 사람이 하나의 방향으로 투표하는 변질된 평형을 깰 수 있다. 서티파이어들은 퇴화된 평형에선 보상을 모을 수 없기 때문이다.
앞에서 원래 작업에 친밀하다고 썼던 것을 반복할 것이다. 위의 몇 문장이 이해가 되지 않으면 논문을 먼저 읽어 보기 바란다.
아테나는 아래와 같은 핵심 특성들이 있다.
매우 다양한 사용 케이스를 위해 높은 매개 변수화가 가능하다. 트루스코인 같은 예측 시장 기반 오라클과 달리, 사용자가 예상할 수 없는 시간에 작업을 하도록 요구하지 않는다. 사용자는 모든 스테이크를 시스템에 둘 수 있다. 어떤 손실도 없이 콜드 스토리지에 무기한으로 둘 수 있다.
아테나는 또 자체적으로 데이터를 이용할 수 있는 오라클로서도 사용될 수 있다. 현재 다른 모든 오라클 제안들을 포함해 외부 데이터에 의존하는 어떤 시스템들이 직면하고 있는 커다란 문제를 풀 수 있다. 그리고 많은 확장성 제안들을 포함하고 있다. 이것이 어떻게 작동하는지에 대한 구체적인 내용은 논문에 자세하게 설명돼 있다.
시스템을 공격하는 비용은, 결정론적으로, 정량적으로 측정될 수 있다. 공격에 영향을 받지 않는 탈중앙화된 스테이크 기반 시스템은 없다. 그리고 그 결과물을 어떤 조건 하에서 신뢰할 수 있는지를 정량화 할 수 있어야한다.
리스트 제안의 랜덤 할당 덕분에 아테나는 개별적인 제안의 결과를 결정하기 위해 필요한 스테이크를 초과하는 외인성 보상을 갖춘 애플리케이션과 함께 사용될 수 있다.
신타쿠(Shintaku)
2018년 여름, 흥미로운 포스트를 우연히 찾았다. 궁극적인 오픈소스 정신에서, 커뮤니티 멤버는 시스템을 가져오고 나와 나의 그룹은 그것을 개조하고 그것을 수행한다. 저자는 이 프로젝트에 신타쿠라는 이름을 붙였다. 신타쿠는 일본어로 오라클이었다. 모호한 이름 선택은 별개로 하고, 이 프로젝트는 아테나가 무시한 구체적인 수행들에 대해 해결책을 보여주고 있다. 원래 자료에 친숙하다는 가정아래 모든 것을 여기에서 반복하지는 않을 것이다.
신타쿠 창시자는 우아하게 본질적으로 증명자의 딜레마로서 아테나가 풀려고 시도했던 문제에 대한 틀을 다시 짜고 있다.
이전 섹션에서 퇴화되는 케이스로 설명된 것은 틀이 다시 짜일 수 있다. 시스템안의 사용자들이 오라클의 결과를 검증하지 않기 때문이다. 그들이 그렇게 하도록 동기를 부여할수 있는 것은 아무것도 없다.
그들은 단지 항상, 한방향으로 투표하고 보상을 받을 수 있다. 아테나는 이것을 대칭적으로 자금이 지원되고 비대칭적으로 소비되는 인증 풀을 사용해서 해결한다. 신타쿠는 보터들에게 제안들을 임의로 할당하도록 제안한다. 그리고 서티파이어와 서티피케이션 풀을 완전히 제거한다. 보팅 스테이크 다수에 동의하는 가운데, 두 투표가 다르다면, 그들에게 보상 한다.
이것외에 저자는 또 엔드투엔드 탈중앙화 시스템에 대한 요구 사항들에 대해서도 언급하고 있다. 이 분야에서 유일하게 부족한 것이라고 생각한다. 나는 탈중앙화되었다고 주장하지만 싱글키 백도어를 포함하고 탈중앙화된 애플리케이션으 목적을 헛되이 할 수 있는 도피 수단을 갖는 너무나 많은 프로젝트들을 봐왔다.
여전히 무엇이 수행되어야 하는가?
코드의 주요 부분이 수행되는 동안 코드 기반에 대한 간략하게 살펴본 결과, 아래와 같은 것들이 필요할 수 있다.
표준화: API와 인터페이스는 커뮤니티 피드백을 아직 경험하지 못했따. 커뮤니티는 대체로 API를 위한 요구 사항들을 갖고 있다. 단일 개발자 또는 소규모 팀이 결코 생각할 수 없는. 것이다.
오라클 코드 테스트: 현재 테스트 스윗은 불완전해 보인다. 그러나 표준화가 없다는 것을 다시 고려하면, 전체 인터페이스는 커뮤니티가 무엇을 원하는지에 따라 가까운 미래에 바뀔 수 있다.
향상된 랜덤 넘버 생성. 현재 상태에서 신타쿠는 랜다오( RANDAO) 변형을 사용한다. 표준 랜다오로 기능하고, 활성 보장을 하지 않거나, 랜덤 넘버 생성의 잠재적인 최소 조작성 비용을 보장하지 않는다. 커뮤니티가 시간을 가면서 이 프로젝트에 기여할 것으로 기대하고 있다. 이것이 블록체인 분야에서 진정한 탈중앙화된 작업중 하나이기 때문이다.
오라클의 미래
TL;DR 오라클 문제는 해결됐다. 엔드투엔드 탈중앙화된 범용 오라클 시스템은 기본적으로 요즘도 신타쿠 형태로 사용할 수 있다. 미래 연구는 확실히, 이 시스템의 구성 요소들을 향상하는 것인 반면 온체인에서 쓰기 위해 외부 데이터를 확보하는 것과 관련한 오래된 문제는 해결되고 있다.
온체인 범용 랜덤 넘버 생성 같은 것들에 대한 개선이 향후 몇년간 핫토픽이 될것으로 보고 있다. 올바르게 된다면, 아테나, 신타쿠 기반 오라클에서 매우 유용할 것이다, 다른 많은 탈중앙화된 애플리케이션에서도 마찬가지다.
결론
오라클 문제가 비켜가면서 나의 우선 초점은, 확장성 풀이다. 퍼스트와 세컨드 레이어 확장성 솔루션과 툴들이, 몇뎡동안 활발하게 연구돼왔다. 이것은 흥미로운 영역이라고 생각한다. 일부 전문가들은 블록체인의 미래는, 퍼미션드 체인에 있다고 보고 있다. 그리고 확장은 대기업들을 신뢰함으로써 해결될 수 있다고 말한다.
그들이 말하는 것을 실제 아는 다른 이들은 확장성은 탈중앙화된 방법으로 이뤄져야 한다고 생각한다. 이것은 물론 일을 더욱 어렵게 만든다. 내가 앞으로 올릴 포스트는, 현재 차일드 체인 상태, 이더리움 공간에서 확장성 풀로서 스테이트 채널 기술들에 대한 내용이 될 것이다.
[관련글]스마트컨트랙트를 비상케할 오라클 무작정 이해해 보기-1 https://brunch.co.kr/@delight412/205
[관련 원문 링크]The State of Decentralized Oracles https://media.consensys.net/the-state-of-decentralized-oracles-df45bf0dc51d