스마트 계약에 대해서 질문드립니다.
블록체인 기술은 암호화폐에만 사용할 수 있는 것이 아니라 위변조 방지가 필요한 각종 계약서 작성에 활용할 수 있다. 특히 일정한 조건이 만족되면 자동으로 계약 내용이 실행되도록 하는 스마트 계약 기능에 사용할 수 있고 합니다.
스마트 계약이라는게 구체적으로 어떻게 계약이 된다는것인가요?
안녕하세요 천량아 입니다.
스마트 계약 또는 스마트 컨트랙트(smart contract)는 계약 당사자가 사전에 협의한 내용을 미리 프로그래밍하여 전자 계약서 문서 안에 넣어두고, 이 계약 조건이 모두 충족되면 자동으로 계약 내용이 실행되도록 하는 시스템입니다.
기존의 블록체인 1.0 기술이 '과거에 일어났던 일'을 기록한다면, 스마트 계약 기능을 구현한 블록체인 2.0 기술은 '미래에 일어날 일'을 미리 기록해 둘 수 있습니다.
스마트 계약은 중간에 제3의 보증기관을 끼우지 않고 개인간(P2P)에 원하는 계약을 체결할 수 있도록 해주는 디지털 전자계약 기능입니다.
마트 계약은 1994년 닉 재보(Nick Szabo)가 처음 제안하였으나 실제로 구현하지는 못하였으며,
2013년 당시 19세의 천재 프로그래머였던 비탈릭 부테린(Vitalik Buterin)은 스마트 계약 플랫폼인 이더리움(Ethereum)을 개발할 것을 제안하고, 2015년 7월 30일 이더리움 개발에 성공하여 실제 서비스를 시작했습니다.
솔리디티(solidity)라는 프로그래밍 언어를 사용하여, 계약 기간, 금액, 조건 등을 미리 코딩해 두면, 부동산 거래, 중고 자동차 거래, 무역 거래 등 어떠한 종류의 계약도 자동 실행되도록 만들 수 있습니다.
기존의 비트코인이 블록체인 기술을 활용하여 가치의 저장과 전달이 가능한 암호화폐를 만들었다면, 이더리움은 한 단계 더 나아가 블록체인 기술을 활용하여 인간이 상상할 수 있는 모든 종류의 계약을 자동으로 실행할 수 있는 스마트 계약 플랫폼을 개발한건데요
비탈릭 부테린이 이더리움을 통해 스마트 계약 기능을 구현함으로써, 블록체인 기술을 비트코인과 같은 암호화폐에만 사용하는 것이 아니라, 위변조 방지가 필요한 각종 계약서 작성 등에 활용할 수 있게 되었습니다.
이런 점에서 기존의 비트코인을 '블록체인 1.0'이라고 부르고, 스마트 계약 기능을 구현한 이더리움을 '블록체인 2.0'이라고 부르고있습니다.
'상품 거래'를 예시로 스마트 컨트랙트 시스템에서 다음과 같이 작동합니다.
기록 저장 : 판매자가 상품을 올리겠다는 내용을 코딩하여 트랜잭션을 만든 후 블록체인에 전송하죠 상품 등록 트랜잭션 발생 시, 네트워크의 모든 노드는 상품 등록 트랜잭션을 공유하고 블록을 생성한 후 블록을 브로드캐스팅하고, 블록을 전달받은 각 노드는 해당 블록을 자신의 블록체인 맨 끝에 추가하고, 해당 블록에 저장되어 있는 트랜잭션을 적용시켜 자신의 스마트 컨트랙트 데이터베이스를 동기화하게됩니다. 이러한 과정을 통해 모든 블록체인의 노드들이 스마트 컨트랙트 상태 데이터베이스를 공유하게 됩니다.
상품 조회 : 구매자는 블록체인 네트워크에서 상품을 조회하는데요 스마트 컨트랙트에 쓰는 것는 것은 트랜잭션을 발생시키지만, 이미 저장되어 있던 값을 읽어 오는 것은 트랙잭션을 발생시키지 않습니다. 블록체인의 어떤 데이터도 변경시킬 필요 없이 스마트 컨트랙트 데이터베이스 내 저장된 상태 값만 조회하면 되기 때문에 쿼리 정보는 블록체인에 동기화할 필요 없고, 블록 동기화 타이밍에 상관없이 바로 응답할 수 있게되어있습니다.
계약 이행 : 구매자가 상품 구매 트랜잭션을 보내면 트랜잭션을 공유하고 블록체인 네트워크에 동기화를 진행합니다. 모든 노드의 스마트 컨트랙트 데이터베이스에 상품 구매자를 등록하고 돈을 판매자에게 전송하는데요,그러면 등록된 콘텐츠의 소유권이 구매자에게로 이동하게됩니다.