블록체인 시장에서 유망한 키워드로 제시되었던 것이 스마트 콘트랙트(Smart Contract)다. 원하는 조건을 코드에 삽입해서 특정 사건이 발생할 경우 사전에 지정된 거래가 자동으로 이루어지도록 강제하는 시스템을 스마트 계약이라고 일컫는다. 블록체인 네트워크상에서 스마트 콘트랙트가 관리되므로 중개자 없이 신뢰할 수 있는 계약 조건을 만들어낼 수 있다는 점 때문에 주목을 받았다. 스마트 계약은 정말 ‘스마트'할까? 스마트 계약이 생각보다 한계점이 많다는 사실 때문에 실생활에서 적용이 잘 안 되고 있다.
‘스마트’하다는 것의 의미는 거래가 이루어지는 상황에 따라 융통성 있게 처리하고 정상 참작을 할 수 있는 지능을 보유하고 있다는 뜻일 것이다. 모호한 상황에서도 모든 거래 당사자가 만족할 수 있는 대안을 제시할 수 있다면 ‘스마트’하다고 표현할 수 있다. 하지만 스마트 콘트랙트는 기존의 계약 기반 거래보다 멍청하다. 특정 조건이 충족되면 자동으로 코드가 실현되는 형태가 과연 ‘스마트’한지에 대한 의문이 여럿 존재한다. 스마트 콘트랙트에 존재하는 현실적인 장벽에 관해 살펴보자.
오라클 문제
블록체인에서 오라클 문제는 상당히 고질적인 이슈이다. 오라클이란 블록체인에서 오프체인의 데이터를 받아오는 과정을 의미한다. 오라클 문제란 오프체인의 데이터를 신뢰할 수 없을 때 나타나는 문제이다. 또는 여러 가지 오라클이 서로 다른 정보를 나타낼 때 어느 것을 믿고 출처로 가져올 지에 관해 결정하는 문제이다.
탈중앙화된 네트워크에서 누군가를 신뢰하는 것은 사실상 어려운 일이다. 블록체인 네트워크 밖에 있는 정보를 누가 가져오느냐에 따라 해당 네트워크가 처리하는 트랜잭션의 정확도에 따라 큰 차이가 나타날 수 있다. 예를 들어 비행기가 연착되면 자동으로 소비자에게 보상 처리를 하는 블록체인 기반 보험이 있다고 가정해보자. 비행기가 조금이라도 지연될 경우 지연시간에 따라 소비자에게 상응하는 보상을 해주어야 한다.
그런데 비행기 연착 정보를 A 회사에서 받아올 수도 있고 B 회사에서 받아올 수도 있다. A의 정확도가 B의 정확도보다 높을 수도 있고, 아닐 수도 있다. 때에 따라서는 특정 회사의 정보가 해킹되어 조작될 수도 있다. 조금이라도 잘못된 데이터를 받아올 경우 불가역적으로 트랜잭션이 처리되기 때문에 블록체인 기반 거래의 기초가 되는 오라클 문제는 매우 중요하다.
기존 계약을 기반으로 하는 거래에선 오라클이 조금 잘못되었더라도 수동으로 처리하기 때문에 문제가 발생할 경우 융통성 있게 처리하면 된다. 하지만 스마트 콘트랙트에 기반한 거래는 오라클이 조금만 잘못되더라도 바로 거래가 발생하기 때문에 여러 가지 문제가 발생할 가능성이 상존한다.
또한, 블록체인 네트워크상에서 계약이 이루어졌더라도 실제 상황에서 계약이 이루어지도록 강제하는 것은 어려운 일이다. 계약을 강제할 수 있더라도 시차가 존재하기 때문에 현실에서 이루어진 사건의 타임스탬프를 블록체인에 투명하게 기록하는 것도 어렵다. 예를 들어 부동산 거래를 블록체인상에서 할 수 있는 플랫폼이 있다고 치자. 디지털상에서 거래 소유권이 넘어갔어도 실제 세계에서 거래 소유권이 넘어갔다는 사실을 보장하기 위해서는 제삼자의 보증이 필요하다. 오라클을 보증해줄 사람이 필요하다는 점에서 기존 계약과 비교하였을 때 강점이 희석된다.
안전성 문제
이더리움 기반의 스마트 콘트랙트는 튜링이 완전하다는 특징이 있다. 튜링이 완전하다는 특징 덕분에 코드로 쓰인 계약은 어떠한 상황을 주더라도 예외 처리를 하지 않고 정상적으로 작동하게 된다. 따라서 계약서를 코드로 작성하는 개발자에게 모든 책임이 돌아가게 된다. 끊임없이 코드 리뷰를 하면서 가능한 모든 취약점을 제거해야 하는 데 이러한 상황이 비효율적이다.
스마트 콘트랙트는 코드에 의존하기 때문에 안전성을 확보하는 것이 매우 중요하다. 조금이라도 코드에 오류가 있거나 취약점이 존재한다면 엄청난 피해가 발생할 수밖에 없다. 대표적인 사례가 이더리움 클래식을 포크시킨 DAO 사태다. DAO 에 투자한 사람들의 이더리움 투자금 일부가 해커에게 넘어가게 되면서 이더리움과 이더리움 클래식을 포크하게 된 결정적인 계기가 되었다.
지미 송(Jimmy Song)은 ‘스마트 콘트랙트의 진실'이라는 글에서 탈중앙화된 네트워크상에서 스마트 콘트랙트의 취약점을 이용한 해커는 조세 제도를 잘 이용하여 절세하는 회계사와 다를 바가 없다고 말한다. 블록체인에서 코드는 곧 법이기 때문에 해당 코드를 잘 이용하여 돈을 갈취한 해커도 실제 세계의 법을 잘 이용하여 돈을 버는 자본가와 무엇이 다르냐고 반문한다. 결국 스마트 콘트랙트는 디지털 세계와 현실 세계의 접점이 없는 곳에서만 사용할 수 있는가, 라는 의문이 든다. 블록체인 네트워크와 직접 연결된 인터넷 세계에서 이루어지는 일들엔 스마트 콘트랙트를 보다 쉽게 적용할 수 있을 것이다. 기존의 실물 비즈니스와 스마트 콘트랙트를 접목하는 것은 예단하기 쉽지 않다.
<참고문헌>
ⅰ The Truth about Smart Contract, Jimmy Song, https://medium.com/@jimmysong/the-truth-about-smart-contracts-ae825271811f
ⅱ 스마트 컨트랙트의 진실, 김도윤, https://brunch.co.kr/@doyunism/4