이더리움 마스터하기, 2nd Edition
by Carlo Parisi, Alessandro Mazza, Niccolo Pozzolini, Gavin Wood, Andreas M. Antonopoulos
11장. Oracle
이 작품은 AI를 사용하여 번역되었습니다. 여러분의 피드백과 의견을 환영합니다: translation-feedback@oreilly.com
이 장에서는 이더리움 스마트 콘트랙트에 외부 데이터 소스를 제공할 수 있는 시스템인 오라클에 대해 설명합니다. 오라클이라는 용어는 그리스 신화에서 유래한 것으로, 신과 소통하며 미래의 비전을 볼 수 있는 사람을 가리킵니다. 블록체인의 맥락에서 오라클은 이더리움 외부의 질문에 답할 수 있는 시스템입니다. 이상적으로 오라클은 탈중앙화된 원칙에 따라 작동하기 때문에 신뢰할 필요가 없는 시스템입니다.
Oracle이 필요한 이유
이더리움 플랫폼의 핵심 구성 요소는 분산화된 네트워크의 모든 노드에서 합의 규칙에 따라 프로그램을 실행하고 이더리움의 상태를 업데이트하는 기능을 갖춘 EVM입니다. 합의를 유지하려면 EVM 실행은 완전히 결정론적이어야 하며, 이더리움 상태와 서명된 트랜잭션의 공유 컨텍스트에만 기반해야 합니다. 이는 특히 두 가지 중요한 결과를 초래하는데, 첫 번째는 EVM과 스마트 콘트랙트가 작동할 수 있는 내재적 무작위성이 존재할 수 없다는 것이고, 두 번째는 트랜잭션의 데이터 페이로드로서만 외재적 데이터를 도입할 수 있다는 것입니다.
이 두 가지 결과를 좀 더 자세히 살펴보겠습니다. 스마트 콘트랙트에 무작위성을 제공하기 위해 EVM에서 진정한 무작위 함수를 금지하는 것을 이해하려면, 그러한 함수를 실행한 후 합의를 달성하려는 시도에 미치는 영향을 고려해 보겠습니다. 노드 A는 명령을 실행하고 스마트 콘트랙트를 대신해 스토리지에 3 를 저장하고, 동일한 스마트 콘트랙트를 실행하는 노드 B는 대신 7 을 저장할 것입니다. 따라서 노드 A와 B는 동일한 컨텍스트에서 정확히 동일한 코드를 실행했음에도 불구하고 결과 상태에 대해 서로 다른 결론을 내릴 수 있습니다. 실제로 스마트 콘트랙트를 평가할 때마다 결과 상태가 달라질 수 있습니다. 따라서 전 세계에서 독립적으로 운영되는 수많은 노드가 있는 네트워크가 결과 상태에 대해 탈중앙화된 합의를 도출할 수 있는 방법은 없을 것입니다. 실제로는 이더 전송을 포함한 노크온 효과가 기하급수적으로 증가하기 때문에 이 예시보다 훨씬 더 빠르게 악화될 것입니다.
암호학적으로 안전한 해시 함수(결정론적이어서 EVM의 일부가 될 수 있고 실제로도 있음)와 같은 의사 난수 함수는 많은 애플리케이션에 충분하지 않습니다. 동전 던지기를 시뮬레이션하여 동전 지불금을 결정하는 도박 게임을 예로 들어보면, 앞면 또는 뒷면이 무작위로 나와야 하는 경우 블록 제안자는 게임을 플레이하고 자신이 이길 수 있는 블록에만 자신의 트랜잭션을 포함시킴으로써 이점을 얻을 수 있습니다. 그렇다면 이 문제를 어떻게 해결할 수 있을까요? 모든 노드가 서명된 트랜잭션의 내용에 동의할 수 있으므로 무작위성 소스, 가격 정보, 일기 예보 등을 포함한 외부 정보를 네트워크에 전송되는 트랜잭션의 데이터 부분으로 도입할 수 있습니다. 그러나 이러한 데이터는 검증할 수 없는 출처에서 나온 것이기 때문에 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access