실생활 예를 통한 스마트 컨트랙트
스타트업이나 초기 팀빌딩이 막 되려고하는 곳에 근로 계약서를 작성하게 되면 근로계약서에 ‘스탁옵션'이라는 항목이 있을 것이다.
스탁옵션이란 회사가 일정 수량의 자사 주식을 “살 수 있는” 권리를 주는 제도를 말한다. 의외로 많은 사람들이 스탁옵션과 주식을 같은 것으로 보고 스탁옵션을 받으면 바로 주식이 되는 것으로 착각하는데, 말 그대로 자사 주식을 “살 수 있는" 권리를 주는 제도라서 액면가에 해당하는 돈을 지불하고 주식을 사야 내 주식이 되는 것이다.
그런데 보통 이런 스탁옵션은 근로계약을 하고 3년이나 4년후에 “살 수 있다" 라고 조항에 적혀있다.
따라서 1~2년 정도 근무하고 이직을 한다고 하면 이 스탁옵션이 없어지고 그에 따라 그 회사 주식을 살 수 있는 권리는 없어지는 것이다.
스마트 컨트랙트를 이용하면 이런 근로계약서의 스탁옵션 조항을 자동화 할 수 있다.
스탁옵션을 주식으로 바꾸려는 직원이 스탁옵션 효력이 발생하는 시점이 되면 convertStockOptionToStock이라는 함수를 실행시켜서 주식을 받아가는 것을 자동화 할 수 있다.
물론 이 함수를 실행해서 누구나 주식을 받아가면 안되기 때문에 함수에
i) 함수를 실행하는 사람(지갑 주소)이 회사 직원(회사 직원 지갑주소)인지 확인을 하고
ii) 지금이 근로시작일부터 5년이 지난 스탁옵션을 행사할 수 있는 시점인지 확인을 하고
iii) 근로자가 함수를 실행하면서 컨트랙트에 보내는 돈이 계약서에 사인했던 그 금액와 같은지 확인을 하고
위 세 항목이 모두 맞으면 그때 회사직원의 지갑주소로 주식을 전송하는 방식이다.
물론 위의 코드는 주식이 token화 될 수 있다는 것을 전제로 말한 것이지만, 점점 블록체인의 mass adoption이 일어나면 주식도 token화 되고, 스탁옵션뿐만 아니라 근로계약서의 전체 조항이 스마트 컨트랙트화 될 수 있다고 생각한다.
위 convertStockOptionToStock 함수에서 사용한 workStartDate(근로시작일), stockOptionParValue(액면가), isWorker(회사직원인지 확인) 하는 데이터들에 대해서도 블록체인에 저장해두는 방식으로 근로계약을 하는 것도 가까운 미래에 충분히 상상해 볼 수 있는 일인 것 같다.
p.s) 근로계약 스마트컨트랙트의 예로 간략하게 코드를 작성해보면 아래와 같은 모습이 될 것이다.