스마트 컨트랙트란 무엇인가요?

이번 편에서는 스마트 컨트랙트가 무엇인지에 대해서 알아보겠습니다.

예전에 블록체인은 은행 시스템의 데이터 저장소와 같다라고 말씀을 드렸는데요. "스마트 컨트랙트는 은행 시스템의 프로그램과 같다" 라고 말씀드릴 수가 있습니다. 또한, 스마트 컨트랙트가 왜 이름이 붙여지게 되었는지도 알아보겠습니다.

은행 시스템 예에서, 계좌에 100만큼 가지고 있는 여러분(A)은 은행을 통해 누군가(B)에게 50을 이체하려고 합니다. 여러분이 거래내역을 작성하고 은행에 보내면, 은행은 거래에 대해 확인 후, 데이터 저장소에 기록을 합니다. 그러면 사용자들의 잔액이 변경된다라고 말씀을 드렸었죠.

조금 심화된 방식으로, 여러분은 "2021년 9월 23일 오후 5시에 B에게 50만큼 이체를 해줘" 라는 예약을 걸어두고 싶습니다. 그럼 거래내역이 저장되는 데이터 저장소 말고, 예약을 지정해두는 장소가 따로 필요하지 않을까요? 은행 시스템에서는 자동으로 처리할 수 있도록"2021.09.23. PM 5시에 B에게 이체"하는 기능을 가진 프로그램을 등록해 두면 됩니다. 사람이 직접 이체하려면 기억해두었다가 시간이 되었을 때 실행해야하지만, 예약 이체라는 프로그램를 둬서 자동화를 시킨 것이지요.

블록체인에서도 마찬가지입니다. 100BTC를 가진 여러분이 50BTC를 B에게 이체하려고 할 때, 예약 기능을 구현해두고 현재 거래내역을 작성해두면 나중에 자동으로 이체를 할 수 있겠지요? 아쉽게도 비트코인에는 기능이 매우 제한적이라 이런 프로그램을 구현하기 어렵기 때문에 이런 기능을 도입하고자 하는 시도가 있어왔고, 프로그램을 매우 쉽게 구현할 수 있도록 하는 개념으로 스마트 컨트랙트라는 것을 도입합니다. 따라서, 은행 시스템과 블록체인 네트워크를 매핑시켜보면 데이터 저장소는 블록체인, 기능을 구현한 프로그램은 스마트 컨트랙트 라고 할 수 있는 것입니다. 자 그럼, 원리는 알았는데 왜 이게 스마트 컨트랙트 일까요?

먼저 우리는 계약을 왜 하는지 생각해봅시다. 상호 간에 약속을 이행하고, 나중에 문제가 생겼을 시 법적 효력을 가지기 위해서 계약을 작성합니다. 조금 다른 말로 하면, 실행을 강제하는 효과를 지닌 것이 계약입니다. 블록체인에 등록된프로그램인 스마트 컨트랙트는 블록체인의 특성상 위변조가 불가능하기 때문에, 작성된 그대로 프로그램이 실행되는 것을 보장합니다. 이를 마치 디지털로 계약서를 쓴 것과 같다고 해서 이름을 스마트 컨트랙트라고 부르게 되었습니다.

설명에서는 간단하게 은행 시스템을 예로들었지만, 여러분이 사용하시는 수많은 디지털 프로그램들이 있을 텐데요. 하루에도 몇 번씩 접속하는 포탈 사이트나, SNS 및 메신저, 암호 화폐 보유자라면 거래소 등에 이르기까지 모든 시스템은 서버의 프로그램을 가지고 있습니다. 이 모든 것들을 스마트 컨트랙트로 구현이 가능하니, 앞으로 다가올 변화가 느껴지시나요?

기존 시스템들은 중앙화되어 있는 반면, 스마트 컨트랙트로 구현된 시스템은 탈중앙화 되어 있기 때문에, 누군가의 부정 행위, 정보 조작, 검열 등이 없는 매우 투명하고 깨끗한 시스템이 될 수 있습니다. 이런 시스템을 구축할 수 있는 가장 인기있는 플랫폼, 이더리움에 대해서 다음편에서 알아보겠습니다.

Last updated