스마트 컨트랙트의 3가지 한계점
디지털 자산이 단순한 재화로만 이용되는 기능을 넘어서 블록체인의 확장성을 불러온 스마트 컨트랙트(Smart Contract)의 3가지 한계점에 대하여 알아보도록 하겠습니다.
스마트 컨트랙트의 정의에 대한 다양한 견해
새로 등장한 기술이 기존의 계약법에서 어떠한 의의를 가지며 어느 정도의 영향을 미칠 것인가를 검토하기 위해서는 그 대상이 가지는 정의(의미)를 분명히 하는 것이 선행되어야 합니다. 그러나 현재 스마트 컨트랙트에 대한 정의는 매우 다양하게 이루어지고 있습니다.
먼저, 미국 국립표준연구원(NIST)에서는 스마트 컨트랙트를 아래와 같이 정의하고 있습니다.
이는 기술적인 면을 보다 강조한 것으로 해석되는데요. 이 외 단순히 컴퓨터 코드에 의해 자동으로 이행되는 합의, 자동실행 및 자동으로 강제집행되는 디지털 합의 등의 견해가 존재합니다. 그렇다면 스마트 컨트랙트 기능을 최초로 구현한 이더리움에서는 스마트 컨트랙트를 어떻게 정의하고 있을까요?
이렇게 스마트 컨트랙트 정의에 대한 다양한 견해가 존재하며 정의가 일치되어 있지 않아, 스마트 컨트랙트의 응용 및 확장이 지속됨에 따라 그 의미와 효력이 모호해지는 사례가 나올 것으로 예상되기도 합니다.
계약 성립 시 불공정성
일반적으로 계약을 할 때 해당 계약이 도덕성에 어긋난다거나 법령상 금지되는 내용이 포함되어 있을 경우 계약 자체가 무효가 되어 계약자는 계약을 이행할 필요가 없습니다. 하지만 스마트 컨트랙트의 경우에는 계약이 자동으로 실행되기 때문에 ‘계약의 공정성’과 관련한 문제가 발생할 소지가 있습니다.
예를 들어, 세입자가 집주인이 전세 계약을 하는 상황이라고 가정합시다. 이사 후 세입자는 집주인에게 연락해 에어컨 구멍을 뚫고 나갈 때 메우는 것에 동의를 얻었습니다. 타공 후 집주인이 갑자기 입장을 바꿔 에어컨 설치에 동의한 것이지 벽을 뚫는 것은 허락한 적 없다고 손해배상을 하라고 합니다. 집주인의 비도덕적인 행동이 분명하지만, 스마트계약에 따르면 계약서에 별도로 기재되지 않았기 때문에 불리할 수밖에 없을 것입니다.
이처럼 스마트 계약은 그저 계약을 잘 지키도록 할 뿐, 결코 계약을 현명하게 처리해 주지 못한다는 단점이 있습니다.
용이하지 않은 수정
블록체인에서 작동하는 스마트 컨트랙트는 누구나 쉽게 위조하거나 변조할 수 없다는 것이 큰 장점입니다. 이로 인해 보안성이 유지되기도 하지만 동시에 변경이 불가능하다는 것이 단점으로 작용하기도 하는데요.
2016년 DAO(탈중앙화 자치 조직)가 스마트 컨트랙트 코드의 결점으로 해킹을 당해 수백만 이더를 도난당한 일이 있었습니다. 하지만 블록체인 상에 기록된 코드를 수정할 수 없어 도난당한 이더리움을 제자리로 돌려놓는 하드포크를 진행하게 된 사례가 있습니다.
<이더리움DAO 모집 계좌에 찍힌 해커의 계좌 거래 내역>
그외 스마트 컨트랙트의 기술적 한계들
앞서 말한 한계점 외에 스마트 컨트랙트는 다양한 기술적인 문제들에 당면해 있습니다.
먼저, 프로그래밍 언어 관련 문제입니다. 스마트 컨트랙트는 솔리디티(Solidity)라는 프로그래밍 언어를 사용하는데요. 솔리디티는 비교적 최근에 개발된 프로그래밍 언어로 지원되는 타입이나 명령어, 라이브러리 등이 아직은 부족하다는 평가를 받고 있습니다. 또한 보안 취약점이 나타나 이를 이용한 해킹 공격(DAO 사건)이 일어나기도 하여 이를 보완해야 하는 과제를 안고 있습니다.
다음으로 오라클 문제(Oracle Problem) 입니다.
스마트 컨트랙트의 경우 계약 조건이 충족되면 자동으로 계약 내용이 실행되므로 블록체인 외부에서 발생하는 이벤트나 조건에 대한 정보를 수집할 수 없습니다. 결국 외부에서 데이터를 입력해 주어야 하는데, 이때 블록체인 외부와 내부의 데이터 차이에 따라 발생하는 문제들이 오라클 문제인 것입니다. 간단히 말해 블록체인 밖에 있는 데이터를 블록체인 안으로 가져올 때 발생하는 문제인 것이죠.
오라클 문제에는 소프트웨어 오라클 문제와 하드웨어 오라클 문제가 있습니다.
1) 소프트웨어 오라클 문제
스마트 컨트랙트와 연동되는 소프트웨어의 버그나 문제로 인해 블록체인 내에 기록될 데이터가 오염되거나 블록체인 자체가 해킹될 가능성은 극히 낮지만, 외부 소프트웨어의 경우 해킹을 당할 수 있어 기록되어야 할 데이터에 문제가 생길 가능성을 말합니다.
2) 하드웨어 오라클 문제
블록체인 내에 데이터를 기록하기 위해 센서 등을 사용할 경우 발생할 수 있는 문제로, 예를 들어 물류 창고의 습도 센서가 오작동을 일으켜 잘못된 습도를 측정 및 기록할 경우를 하드웨어의 오라클 문제라고 합니다.
이와 같이 외부에서 입력되는 데이터의 오류를 막기 위해서 다양한 방법들이 고안되고 있습니다. 대표자를 선출해 이들을 통해서 의사결정을 내리게 하는 등의 투표 방식, 여러 데이터 가운데 중앙값을 선택하는 중앙값 방식, 외부 데이터와 블록체인 사이에 신뢰할 수 있는 중간자를 두는 방식 등이 고안되고 있습니다.