1. 블록체인에서 사용되는 스마트 계약이란 무엇인가
기술과 금융이 융합된 핀테크 시대가 다가오면서 핵심기술인 블록체인에 대한 다양한 사업이 도입되고 있습니다. 그와 함께 스마트 계약(Smart Contract)에 대한 관심도 높아지고 있는 상황입니다. 스마트 계약이란 분산 원장 기술에서 거래의 일정 조건을 만족시키면 당사자간에 자동으로 거래체 체결되는 기술을 말합니다.
기존 계약 방법은 계약의 이행을 보장하기 위해 계약 중개인이 필요했고, 신용카드 회사의 연계가 필요하며 여러 가지 다양한 법적인 감시자가 필요했습니다. 그로 인해 발생하는 많은 비용을 줄이기 위한 방안으로 스마트 계약 기술이 많은 관심을 받게 되었습니다.
이 문서에서는 스마트 계약의 특징과 기술요소, 활용방안에 관해 기술되어 있습니다.
2. 스마트 계약의 특징과 어떠한 기술로 구현될 수 있는가
스마트 계약은 계약 조건을 컴퓨터 코드로 지정해두고 조건이 맞으면 계약을 자동으로 이행하는 방식이며 기존 계약의 복잡한 프로세스를 간소하게 진행 가능하게 해 줍니다. 기술 측면에서는 탈중앙화를 지향하여 중앙에서 관리하지 않고 P2P 중심으로 운용됩니다. 어떤 프로그래밍 언어나 추상 기계가 튜링 기계와 동일한 계산 능력을 지니고 있다는 특징도 가지고 있습니다.
스마트 계약은 크게 4개의 특징을 가지고 있습니다. 첫 번째 관측 가능성(Observability)은 서로의 계약 이행 가능성을 관찰하거나 성과를 입증할 수 있어야 한다는 것이며 검증 가능성(Verifiability)은 계약을 이행하거나 위반했을 때 이를 감지할 수 있어야 한다는 것입니다. 또한 계약 내용은 계약에 필요한 당사자들에게만 분배되어야 한다는 사생활 보호(Privity) 원칙을 가지고 있으며 계약을 강제로 이행할 수 있는 구속력이 있어야 한다는 강제 가능성(Enforceability)의 특징도 가지고 있습니다.
스마트 계약의 구성도와 기술요소는 아래의 그림에서 확인할 수 있습니다.
스마트 계약에서는 권리부터 의무의 교환 과정 전체를 처리하여 하나의 계약은 블록체인 상에 존재하는 코드 만으로 존재 가능하게 합니다. 스마트 계약의 신뢰성을 보장하기 위한 기술 요소로는 전자서명과 마이닝 기술이 있습니다. 전자서명은 공개키와 개인키를 이용한 부인방지 기능을 위해 사용되고 마이닝은 합의 알고리즘에 의한 신뢰성을 보장하기 위해 사용되는 기술입니다. 튜링 완전 언어로는 Solidity와 Serpent가 사용됩니다. Solidity는 자바 스크립트와 유사한 객체지향 프로그래밍이며 Serpent는 파이선과 유사한 이더리움 개발 가능 프로그램입니다. 이더리움 관련 기술로는 메모리 바이트 배열과 키와 값 저장소를 갖는 스택 기반 가상 머신인 EVM(Ethereum Virtual Machine)과 사용자 유저단 UI를 제공하는 기술은 DApp로 구현됩니다.
3. 스마트 계약 서비스는 어떻게 활용될 수 있을까
스마트 계약은 지급결제와 송금 서비스, IP(지적재산권), 권리증명, 인증 등 다양한 분야로 확산되고 있습니다. 지급결제와 송금 분야에서는 동전, 지폐 등 실물화폐를 이용하여 금용 중개망과 3차 신탁 등의 중간 기능을 축소하여 간소화된 송금 서비스를 제공할 수 있게 해 줍니다. 지적재산권 관련 문제도 스마트 계약 서비스를 이용하면 중앙에 의한 특허관리의 등록 및 인증 기능을 축소하여 서비스를 운용할 수 있게 됩니다. 권리 증명이나 인증 문제도 중앙에 의한 부동산 등기 및 권리확인 기능을 축소하고 보안과 관련된 3차 인증을 축소하는 등 부가적인 비용을 줄이고 효과적인 계약 서비스를 가능하게 할 수 있는 것이 스마트 계약 서비스입니다.