이번 글에서는 Smart Contract와 Hash는 무엇인지, 블록체인과 암호화폐의 관계는 무엇인지 짚고 넘어가본다.
스마트 컨트랙트
스마트 컨트랙트는 컴퓨터 Code로서 블록체인에 기록되고 구현되는 조건문 또는 프로그램을 의미한다. 1994년에 최초 Concept가 제시된 것으로 알려져 있으며, 2015년 Ethereum에서 비탈릭 뷰테린에 의해 실질적으로 구현되었다.
스마트 컨트랙트는 특정 조건이 충족될 경우, 스마트 컨트랙트에서 지정하는 Action이 자동으로 구현되게 하여 준다. 대표적으로 많이 제시되는 예시는 다음과 같다.
2018년 7월 1일, 서울에서 기상청 발표 기준 5mm/시간 이상의 비가 내릴 경우, A는 B에게 50 ETH 송금
스마트 컨트랙트는 단순히 계약이행의 조건만을 기록하는 것을 넘어, Action의 실행 담보하기 위해 A는 50 ETH를 계좌에 예치(Escrow)하고 있는지 점검하고, 계약 이행 이전에 이를 출금하는 것을 제한하기도 한다.
Hash
Hash란 암호화 알고리즘으로, 어떤 분량의 Data를 넣는다 해도 일정한 길이의 Text로 변환하며, 다음과 같은 특징을 갖는다.
- Hash에서 원래 input으로 복호화 불가능
- Input의 미세한 차이에도 완전히 다른 Hash가 생성
- 비트코인의 경우 SHA-256이라는 해시 함수 사용 (64자리 16진수 문자열 산출)
- Hash의 실행속도는 매우 빠름 (예, 20만회 0.5초내)
Hash는 원래 데이터를 암호화한다는데 의미가 있다기 보다는, 특정 데이터의 진위를 확인하는데 있어, Hash값을 비교하는 방식으로 진위 검증하는 도구로서 의미가 있다고 보면 된다.
암호화폐와 블록체인
블록체인의 유지를 위한 보상수단으로서 암호화폐의 역할에 대해서 알아본다.
블록체인상 다수의 노드(또는 Miner)는 신규 Block을 생성하기위해 아래와 같이 경쟁한다고 하였다.
비트코인의 경우 확정블록의 생성자는 사전에 정의된 Rule에 따라, 특정 개수의 신규 암호화폐를 특정 주소에 할당하는 것이 가능하다. 즉, 경쟁에서 이긴 Miner는 본인의 주소에 신규 암호화폐를 할당하여 블록 생성에 대한 보상을 받게 되는 것이다. (또는, 개별 Transaction의 전송 수수료를 본인의 주소에 할당하는 방식도 있음) 즉, 블록 찾기 경쟁의 승자는 신규 암호화폐를 보상으로 받으며, 블록체인 유지에 참여할 유인이 생기게 된다.
이와같이 Public 블록체인은 불특정 다수가 노드로 참여가능한 블록체인으로, 암호화폐의 발행을 통한 보상 수단이 수반된다. 그러나, 반대로 참여자가 제한적인 Private 블록체인은 보상 수단을 암호화폐로 반드시 할 필요가 없어, 통상 암호화폐 발생이 수반되지 않는다고 보면 된다.