블록체인에 눈을 달아주는 세 가지 방법
“오라클 문제” 시리즈 3편 — Web3에서 가장 어려운 질문을 쉬운 말로 풀어봅니다.
지금까지는 소식이 우울했습니다. 블록체인은 바깥세상을 볼 수 없고(1편), AI가 그걸 마법처럼 고쳐주지도 못합니다(2편). 그런데도 매일 수십억 달러가 바깥 데이터에 의존하는 시스템을 통해 흐르고, 대부분은 털리지 않습니다. 어떻게일까요?
답은 누군가 전령을 완벽하게 믿을 수 있게 만드는 법을 찾아서가 아닙니다. 그런 사람은 없습니다. 답은 더 영리합니다. 신뢰를 아주 얇게 흩뿌려서, 어떤 단 한 명의 거짓말쟁이도 피해를 못 주게 하는 것. 이 아이디어에는 큰 갈래가 셋 있습니다. 한 번 보고 나면 암호화폐 곳곳에서 눈에 띌 겁니다.
첫 번째: 전문가 패널
Chainlink 같은 “데이터 피드”가 쓰는 방식.
기온을 알고 싶은데 한 사람이 거짓말할까 걱정된다고 합시다. 뻔한 해법은 이렇습니다. 한 사람에게 묻지 마세요. 서로 독립적인 서른 명에게 묻고, 양 극단을 버린 뒤, 가운데 값을 취하세요. 거짓말쟁이 한 명이 그 가운데 값을 움직이려면 서른 명 중 상당수를 매수해야 하니, 한 명을 속이는 것보다 훨씬 어렵습니다.
가장 널리 쓰이는 암호화폐 오라클이 정확히 이렇게 작동합니다. 서로 독립적인 여러 운영자가 각자 가격을 보고합니다. 그 숫자들이 하나의 합의된 값으로 결합되고, 이상치는 무시되며, 그 값을 여러분의 앱이 읽습니다. 나쁜 하나가 값을 흔들 수 없습니다.
초보자가 자주 걸려 넘어지는 미묘한 함정 하나. 이 보고들은 매초 도착하지 않습니다. 가격이 충분히 움직였거나 정해진 시간이 지났을 때 갱신됩니다. 그래서 꼼꼼한 앱은 항상 마지막 보고가 얼마나 오래됐는지 확인하고, 낡은 값 위에서는 움직이길 거부해야 합니다. 한 시간 전의 ‘진짜’ 가격은 ‘가짜’ 가격만큼 위험할 수 있습니다.
두 번째: 시장 자체를 평균 내기
Uniswap 같은 거래소 위에 세운 “TWAP” 오라클이 쓰는 방식.
두 번째 아이디어는 발상을 뒤집습니다. 바깥사람에게 가격을 묻는 대신, 사람들이 실제로 거래하는 붐비는 온체인 시장에서 곧바로 읽으면 어떨까요? 문제는 1편에서 봤듯이, 시장의 순간 가격은 지갑이 충분히 큰 공격자가 한순간 세게 밀어버릴 수 있다는 것입니다.
해법은 단순해서 아름답습니다. 순간 가격을 쓰지 말고, 시간에 걸친 평균을 쓰세요. “지금 가격이 얼마냐”가 아니라 “지난 30분 동안 평균 가격이 얼마였냐”를 묻는 겁니다.
왜 이게 공격자를 막을까요? 가격을 한순간 미는 건 쌉니다. 하지만 30분 평균을 움직이려면 여러 분 동안 내리 가격을 왜곡시켜야 하고, 그러는 매초 시장이 반격하며 공격자의 돈을 빨아들입니다. 1초 강도가 큰돈이 드는 30분짜리 포위전으로 바뀝니다. 회사를 깜빡이는 한 호가로 판단하느냐, 월 평균으로 판단하느냐의 차이죠. 평균은 지루하고, 지루함이야말로 위조를 어렵게 만듭니다.
(궁금한 분을 위한 각주: Uniswap의 최신 버전은 내장 오라클을 없애고 이 역할을 옵션 “훅(hook)” — 붙였다 뗄 수 있는 작은 프로그램 — 으로 옮겼습니다. 그중 하나는 한 블록에서 가격이 움직일 수 있는 폭을 제한합니다. 같은 정신, 더 날카로운 도구입니다.)
세 번째: 증인단의 정족수
“서명 쿼럼”이 쓰는 방식이자, AI 출력을 보증하는 데도 점점 많이 쓰입니다.
세 번째 아이디어가 가장 인간적입니다. 믿을 만한 증인 몇을 정합니다. 각자에게 같은 사실에 직접 서명하게 합니다. 위조할 수 없고 나중에 부인할 수도 없는 암호학적 서명입니다. 그리고 규칙을 세웁니다. 예컨대 세 증인 중 최소 둘이 서명해야만 그 사실을 받아들인다.
이제 증인 하나가 매수돼도 무해합니다. 그 혼자의 서명으로는 문턱을 못 넘고, 누가 무엇에 서명했는지 모두가 볼 수 있으니 나쁜 증인은 발각되어 퇴출됩니다. 평균 낼 깔끔한 시장도 없고 여론을 물을 군중도 없을 때 고르는 방식이 이것입니다. 그리고 점점, AI가 정말로 자기가 주장하는 그 출력을 냈다고 보증하는 데도 쓰입니다.
세 가지에 숨은 교훈
이 셋의 공통점을 보세요. 어느 것도 전령을 정직하게 만들지 않습니다. 어느 것도 신뢰를 없애지 않습니다. 이들이 하는 일은 어떤 단 하나의 지점에도 모든 신뢰를 걸지 않기를 거부하는 것입니다. 패널은 신뢰를 여러 보고자에게, 시간 평균은 여러 분(分)에, 정족수는 여러 증인에게 흩뿌립니다.
이것이 현재 시점에서 오라클 문제에 대한 진짜 답입니다. 신뢰를 없앨 수는 없지만, 아주 여러 조각으로 부숴서, 시스템을 배신하려면 감당 불가능한 수를 한꺼번에 매수해야 하게 만들 수는 있습니다. 그리고 가장 강한 시스템은 한 방식만 고르지 않습니다. 여럿을 조합하고, 두 방식이 어긋나는 순간 경보를 울립니다.
정말 영리한 공학입니다. 하지만 여기엔 천장이 있습니다. 아무리 잘 만들어도 평균과 투표와 전문가 패널이 조용히 무너지는 종류의 문제. 그 천장에서 이 시리즈는 끝납니다. 그리고 QR 코드를 찍어 먹거리의 출처를 확인해 본 적 있는 분이라면, 그 부분이 가장 중요합니다.
Tags: Blockchain, Web3, SmartContracts, DeFi, Fintech