[블록체인 용어.zip] 스마트 컨트랙트-2편
스마트 컨트랙트는 계약 내용을 코드로 구현하여 특정 조건이 충족되었을 때, 해당 계약이 이행되게 하는 스크립트(Script)를 뜻합니다. 즉, 개발 코드로 만들어진 디지털 계약서 혹은 계약 그 자체라고 생각하면 쉽습니다.
만약 A씨가 현재 살고 있는 집을 팔아야 하고 B씨는 집을 새로 구해야 한다고 가정해 봅시다. 집을 내놓거나 구하기 위해 우리는 부동산 중개소를 찾고, 중개인을 통해 거래를 진행할 것입니다. 매도자와 매수자는 도배, 수리 여부 등 협의가 필요한 내용에 대해 협의하여 정하고 난 후에 매매 계약서를 작성합니다. 그 다음, 잔금 지급까지 마치면 계약이 완료됩니다. 그런데 이렇게 만나서 협의하여 계약서를 작성하던 것을 스마트 컨트랙트로 진행한다면 어떨까요?
매도자 A씨 입장에서 거래를 진행해 볼까요? A씨가 집을 매도하기 위해서는 스마트 컨트랙트 시스템 상에서 매물을 내놓아야 하죠. 이를 위해 계약 기간, 금액, 조건 등이 담긴 매물 기록을 스마트 컨트랙트 언어로 코딩하여 블록체인에 전송합니다. 여기서 ‘매물을 내놓는 행위’ 자체를 하나의 이벤트로 ‘트랜잭션’이라고 칭합니다. 이러한 트랜잭션은 블록체인 네트워크의 모든 노드에게 공유 및 검증된 후 블록으로 생성되어 블록체인 맨 끝에 추가됩니다. 만약 추가로 변경되는 사항들이 있는 경우, 변경사항을 다른 블록에 공유하여 오류가 없는지 혹은 조건에 충족되는지 체크합니다.
*트랜잭션(transaction)이란 "쪼갤 수 없는 업무 처리의 최소 단위"를 말한다. 거래내역이라고도 한다.
A씨가 블록체인 상에 집을 매물로 등록하면, B씨 블록체인 네트워크에서 A씨의 매물을 조회할 수 있겠죠? 만약 B씨가 이 집이 마음에 들어 계약을 진행하고자 한다면 A씨가 스마트 컨트랙트 상에 설정한 계약 조건을 충족해야 합니다. 조건이 충족되면 매수가 가능하다는 일종의 매수 트랜잭션이 블록체인 네트워크의 모든 노드들과 공유되고 동기화합니다. 그리고 모든 노드의 스마트 컨트랙트 상에 매수자 B씨를 등록되고 매도자 A씨에게 돈이 전송됩니다. 그리고 등록된 매물의 소유권은 매도자 A씨에게서 매수자 B씨에게로 이동하게 됩니다.
지금까지 블록체인 상에서 어떻게 계약이 진행되는지 보았는데요. 스마트 컨트랙트의 경우 계약 과정 전반을 누구나 확인할 수 있기 때문에 그 내용을 임의로 변경하거나 조작할 수 없다는 장점이 있습니다. 또한 스마트 컨트랙트의 체결 사실이 모두에게 공유되기 때문에 보다 투명한 거래를 할 수 있습니다.