스마트 컨트랙트란 무엇인가?
스마트 컨트랙트란 무엇인지, 어디에 쓰이는지, 활용 사례와 코드에 숨은 위험을 설명합니다.
가이드 읽기
언어
블록체인 네트워크는 어떤 데이터가 옳은지 결정하는 중앙 기관에 의존하지 않고 탈중앙화 환경에서 정보를 기록하고 검증하도록 설계되었습니다. 그러나 이러한 자율성에는 근본적인 한계가 있습니다. 블록체인은 자체 네트워크 안에 존재하는 정보를 매우 정밀하게 검증할 수 있지만 그 밖에서 발생하는 일을 직접 알 수는 없습니다. 예를 들어 주가, 비행기가 목적지에 도착했는지 여부, 특정 도시의 기온, 기업이 계약에서 정한 조건을 충족했는지 여부를 직접 알 수 없습니다. 이러한 한계를 해결하기 위해 이른바 블록체인 오라클이 등장했습니다. 오라클은 외부 세계를 블록체인에서 작동하는 기록과 탈중앙화 애플리케이션에 연결하기 위한 메커니즘입니다.
오라클의 기능은 본질적으로 블록체인이 특정 작업을 실행하는 데 필요한 외부 데이터를 제공하는 것입니다. 이 기능은 단순해 보일 수 있지만 실제로는 탈중앙화 아키텍처에서 가장 복잡한 문제 가운데 하나입니다. 블록체인 기반 애플리케이션이 외부 데이터에 의존하는데 그 데이터가 잘못되었거나 조작되었거나 오래된 것이라면 스마트 컨트랙트의 로직이 잘못된 정보에 기반해 실행되어 실제 결과를 만들 수 있습니다. 이 문제를 흔히 오라클 문제라고 하며 탈중앙화 애플리케이션 생태계에서 중요한 보안 및 신뢰 문제 가운데 하나입니다.
그 중요성을 이해하려면 블록체인의 핵심 특성을 기억할 필요가 있습니다. 네트워크 노드는 시스템 자체에 속한 거래와 상태에 대해서는 합의에 도달할 수 있지만 외부 사건을 확인할 기본 메커니즘은 없습니다. 예를 들어 이더리움은 주소의 잔액을 수학적으로 확인하거나 거래가 프로토콜 규칙을 따르는지를 검증할 수 있습니다. 그러나 외부 금융시장의 유로-달러 환율이 특정 수준에 도달했는지는 스스로 확인할 수 없습니다. 이 정보는 수집하고 전달할 수 있는 추가 메커니즘을 통해 입력되어야 합니다.
오라클은 정확히 이 두 환경을 연결하는 다리 역할을 합니다. 일반적으로 외부 출처에서 정보를 받아 처리한 뒤 블록체인으로 전달해 스마트 컨트랙트가 사용할 수 있게 합니다. 설계에 따라 금융시장, 웹사이트, 센서, 연결된 기기, 기업 시스템, 공공기관 또는 다른 블록체인 네트워크에서 데이터를 가져올 수 있습니다. 데이터가 체인에 입력되면 스마트 컨트랙트는 이를 사용해 코드에 정의된 조건을 자동으로 실행할 수 있습니다.
가장 잘 알려진 활용 사례 가운데 하나는 탈중앙화 금융입니다. 많은 프로토콜은 담보 요건, 청산, 환율 또는 특정 금융상품의 조건을 결정하기 위해 자산의 가치를 알아야 합니다. 예를 들어 이더를 담보로 예치하고 스테이블코인 표시 대출을 받을 수 있는 대출 프로토콜은 이더의 가치를 지속적으로 알아야 합니다. 이 가격이 블록체인 내부에서 저절로 생기는 것은 아닙니다. 외부 출처나 오라클 역할을 하는 정보 집계 시스템에서 가져와야 합니다.
데이터를 어떻게 얻는지는 데이터 자체만큼 중요합니다. 단일 출처에 기반한 오라클은 단일 장애 지점이 될 수 있습니다. 그 출처가 중단되거나 잘못된 정보를 게시하거나 조작되면 스마트 컨트랙트가 잘못된 신호를 받을 수 있습니다. 이러한 이유로 더 정교한 시스템은 여러 출처와 집계 메커니즘을 사용합니다. 하나의 제공자를 신뢰하는 대신 여러 값을 수집한 뒤 공통 기준값을 계산할 수 있습니다. 목적은 특정 출처에서 나온 비정상적인 데이터 하나가 미치는 영향을 줄이는 것입니다.
이 특성은 중앙화 오라클과 탈중앙화 오라클 사이의 중요한 차이를 만듭니다. 중앙화 시스템은 정보를 수집하고 검증하고 전달하는 특정 기관에 의존할 수 있습니다. 운영은 효율적일 수 있지만 신뢰를 하나의 행위자에게 집중시킵니다. 탈중앙화 시스템에서는 여러 독립 운영자가 정보를 병렬로 제공할 수 있습니다. 이후 합의 또는 집계 메커니즘이 궁극적으로 사용할 값을 결정합니다. 외부 데이터가 관련된 상황에서 모든 신뢰를 없애는 것은 어렵기 때문에 목적은 신뢰를 분산시키고 단일 취약점을 줄이는 데 있습니다.
데이터 품질을 보장하기 위해 사용하는 메커니즘은 다양합니다. 일부 시스템은 여러 정보 제공자를 사용해 결과를 비교합니다. 다른 시스템은 운영자가 올바르게 행동할 유인을 갖도록 경제적 인센티브를 도입하며, 허위 정보 제공에 대한 처벌을 가능하게 하기도 합니다. 특정 기준값을 주기적으로 기록하고 데이터가 변경될 수 있는 빈도를 제한해 비정상적인 변동을 피하는 모델도 있습니다. 구체적인 아키텍처는 전달할 정보의 유형, 필요한 속도, 요구되는 보안 수준에 따라 달라집니다.
모든 오라클이 동일한 유형의 정보를 제공하는 것은 아닙니다. 일부는 가격 데이터를 제공하도록 설계되고 다른 일부는 현실 세계의 사건을 전달할 수 있습니다. 보험과 같은 분야에서 스마트 컨트랙트는 특정 기상 조건에 따른 보상액을 자동으로 결정하기 위해 날씨 정보에 의존할 수 있습니다. 물류에서는 화물 도착과 관련된 데이터를 사용해 결제를 실행할 수 있습니다. 예측 시장에서는 블록체인 밖에서 발생한 사건의 결과를 결정하는 데 오라클이 핵심적인 역할을 할 수 있습니다.
계산 오라클이라고 하는 또 다른 범주도 있습니다. 이들은 외부 정보를 전달하는 데 그치지 않습니다. 블록체인 내부에서 직접 처리하기에는 비용이 너무 높거나 복잡한 작업을 실행할 수도 있습니다. 이를 통해 처리의 일부가 오프체인에서 이루어지고 그 결과가 이후 스마트 컨트랙트로 반환될 수 있습니다. 이러한 결합은 모든 작업을 온체인 환경으로 옮기지 않고도 탈중앙화 애플리케이션의 능력을 확장할 수 있게 합니다.
블록체인이 디지털 자산의 이전만을 위해 사용되는 단계에서 벗어나 금융, 기업, 물리적 시스템과 통합되기 시작할수록 오라클의 중요성은 커집니다. 스마트 컨트랙트는 자신이 통제하지 않는 사건에 관한 정보를 점점 더 많이 필요로 합니다. 이러한 의존성 때문에 오라클은 핵심 인프라가 됩니다. 오라클 시스템의 장애가 단 하나의 애플리케이션에만 영향을 주는 것은 아닙니다. 같은 제공자가 여러 프로토콜에 정보를 공급한다면 중대한 변경이 여러 서비스에 동시에 영향을 줄 수 있습니다.
극단적인 변동성 상황에서도 위험이 발생할 수 있습니다. 금융시장은 가격이 몇 초 안에도 변할 수 있기 때문에 특히 민감합니다. 오라클이 데이터를 너무 느리게 업데이트하면 프로토콜이 실제 시장 상황을 더 이상 반영하지 않는 기준값을 사용할 수 있습니다. 반대로 신뢰할 수 없는 출처에 의존하면서 지나치게 자주 업데이트하면 비정상적인 움직임을 증폭시킬 수도 있습니다. 따라서 오라클 설계에는 정확성, 속도, 비용, 조작 저항성 사이의 균형이 필요합니다.
이러한 맥락에서 보안은 스마트 컨트랙트 코드에만 달려 있지 않습니다. 컨트랙트가 의존하는 데이터를 공급하는 인프라에도 달려 있습니다. 이는 탈중앙화에 대한 초기 관점을 부분적으로 바꿉니다. 애플리케이션이 로직을 자동으로 실행하고 퍼블릭 블록체인을 정산 시스템으로 사용할 수 있어도 특정 사실을 알기 위해서는 여전히 외부 메커니즘이 필요할 수 있습니다. 따라서 탈중앙화는 중개자를 제거하는 것만으로 달성되는 것이 아니라 정보가 수집되고 검증되고 전달되는 방식을 신중하게 설계함으로써 달성됩니다.
블록체인 오라클은 가장 눈에 잘 띄지 않으면서도 동시에 가장 중요한 탈중앙화 인프라 구성 요소 가운데 하나입니다. 그 임무는 매우 다른 특성을 가진 두 현실을 연결하는 것입니다. 한쪽에는 암호학적 규칙과 합의 메커니즘을 통해 상태를 검증할 수 있는 네트워크가 있습니다. 다른 한쪽에는 정보가 모호하거나 역동적이거나 불완전하거나 조작되기 쉬운 외부 세계가 있습니다. 이 두 환경을 연결하는 능력이 스마트 컨트랙트와 탈중앙화 애플리케이션이 어디까지 발전할 수 있는지를 크게 결정합니다.
이 기술의 미래 발전은 점점 더 신뢰할 수 있고 투명하며 공격에 강한 데이터 출처에 대한 필요성과 연결될 것입니다. 서로 다른 제공자가 응답을 조정하는 방식도 개선해야 하며 새로운 중앙화 지점을 만들지 않고 비정상적인 행동을 탐지할 수 있는 메커니즘도 개발해야 합니다. 더 많은 경제 활동이 블록체인에서 실행되는 자율 소프트웨어에 의존할수록 외부 데이터의 무결성을 보장하는 것은 거래 자체의 보안을 보장하는 것만큼 중요해질 것입니다.
따라서 오라클은 블록체인 생태계의 부차적인 부속물이 아닙니다. 탈중앙화 네트워크가 그 밖에서 발생하는 사건과 상호작용할 수 있게 하는 구성 요소입니다. 이러한 메커니즘이 없다면 많은 스마트 컨트랙트는 체인 내부 정보만 사용할 수 있습니다. 오라클이 있으면 블록체인은 디지털 자산을 시장, 기업 시스템, 물리적 사건, 현실 세계의 데이터와 연결할 수 있지만 그러한 확장은 새로운 기술적·보안적 과제도 만듭니다. 이러한 과제를 해결하는 것은 자동화와 탈중앙화에 대한 약속이 디지털 환경을 넘어 실제 경제적·운영상의 결과를 갖는 애플리케이션으로 확장되는 데 필수적입니다.