블록체인 기반의 스마트 컨트랙트는 기본적으로 모든 트랜잭션 로그가 저장된 블록체인 데이터베이스와 스마트컨트랙트의 상태를 저장하는 데이터베이스 이렇게 두 가지가 존재합니다.
여기서 스마트 컨트랙트는 상태를 변경할 수 있는 애플리케이션이라고 할 수 있으며, 스마트 컨트랙트의 상태는 해당 애플리케이션에서 사용하는 변수라고 할 수 있습니다.
이것을 변경하기 위한 입력값은 트랜잭션에 포함되어 있습니다.
스마트 컨트랙트는 두 가지 인터페이스를 공개하고 있습니다.
하나는 트랜잭션, 하나는 쿼리 입니다. 트랜잭션을 통한 인터페이스는 트랜잭션 데이터 베이스에 저장됩니다.
스마트 컨트랙트의 상태를 변경시키는 방법입니다.
쿼리는 트랜잭션 데이터베이스에 기록이 남지 않으면서 스마트 컨트랙트의 상태를 읽는 작업입니다. 트랜잭션은 쓰기, 삭제, 수정을 실행하지만 쿼리는 읽기를 통한 조회만을 실행합니다.
예시로 상품거래는 다음과 같이 작동합니다.
- 기록 저장 : 판매자가 상품을 올리는 내용을 코딩하여 트랜잭션을 만든 뒤 블록체인에 전송합니다.
상품을 등록하는 트랜잭션 발생 시 , 네트워크의 모든 노드는 상품 등록 트랜잭션을 공유합니다.
블록을 생성하고 블록을 브로드캐스팅합니다. 블록을 전달받은 각 노드는 해당 블록을 자신의 블록체인 맨 끝에 추가합니다. 해당 블록에 저장되어 있는 트랜잭션을 적용시켜 자신의 데이터베이스를 동기화 합니다. 이러한 과정을 통하여 모든 블록체인의 노드들이 스마트 컨트랙트 상태 데이터베이스를 공유하게 됩니다.
- 상품 조회 : 구매자는 블록체인 네트워크에서 상품을 조회합니다. 스카트 컨트랙트에 쓰는것은 트랜잭션을 발생시키지만 이미 저장되어 있던 값을 읽어오는 것은 그렇지 않습니다.
블록체인의 어떤 데이터도 변경시킬 필요 없이 스마트 컨트랙트 데이터베이스 내 저장된 상태 값만 조회하면 됩니다.
땓문에 쿼리 정보는 동기화할 필요가 없고, 블록 동기화 타이밍에 상관없이 바로 응답할 수 있습니다.
스마트 컨트랙트는 모든 데이터를 서로 공유 하기 때문에 특정한 사용자가 스마트 컨트랙트의 실행결과를 조작하려고 해도 조작 할수가 없습니다.
블록체인이 모든 트랜잭션의 무결성을 보장해 주는 방식으로 스마트 컨트랙트의 무결성도 보장할 수 있습니다.
조건이 충족된 경우 계약을 자동으로 이행함으로써 계약의 집행 비용및 분쟁의 가능성을 줄일 수도 있습니다. 다만 일상 언어를 프로그래밍 하는 과정에서 계약하고 작성 단계의 비용이 발생할 수 있습니다.
이 과정에서 프로그래밍 오류 문제가 발생할 가능성이 있습니다.
이더리움은 기존 시스템과 스마트 컨트랙트의 인터페이스를 위한 라이브러리를 제공하고 있습니다.
다른 기능들과 마찬가지로 스마트 컨트랙트도 일반 PC 어플리케이션, 모바일, 웹서버 등 기존 시스템과 인터페이스를 통하여 계약 내용의 등록, 집행, 결과 조회 등의 동작을 수행 할 수 있습니다.
공식 인터페이스 라이브러리에서 지원하는 언어는 JAVA, PHP, Python 등입니다. 스마트 계약과 이더리움 공식 인터페이스 라이브러리 사이에 상당한 제약 사항이 존재합니다. 솔리디티 언어의 struct 타입의 데이터는 인터페이스 라이브러리를 통하여 주고받을 수 없습니다. 만약 강제 이행하게 된다면 컴파일러에서 에러 처리됩니다. ABI 인코더를 사용하면 가능하겠지만 권장되지는 않습니다.
스마트 컨트랙트 활용
스마트 컨트랙트는 오랜 기간 동안 비즈니스 관행으로 고착화된 여러 제약을 넘어설 수 있는 사고의 파괴를 유도합니다.
나아가 새로운 가치를 창출할 수 있는 원천이기도 합니다.
스마트 계약을 통하여 해킹의 위험성을 낮추고, 보안 비용 또한 절감시킵니다.
제3 중개인이 없기 때문에 수수료 또한 절감되며, 데이터 무결성 검증시간이 단축 될 수 있습니다.
또한 계약의 투명성으로 인한 규제비용이 절감됩니다.
이중 지불의 위험 또한 사라지며, 시스템 구축비용또한 절감됩니다.
상호 약속된 규칙에 따른 절차로 작동하며 서로 간의 신뢰가 필요한 서비스 업무 영역에서 가장 큰 적용 효과를 발휘할 것으로 예상 됩니다.
기존 비트코인 블록체인에서부터 시작된 통화 및 지급 결제 수단으로 본원적 영역을 물론이고, 유 무형 자산을 포괄한 모든 재화에 대한 평가, 가치 관련 모든 거래 등에 빠르게 침투할 수 있습니다.
원격자 간의 계약 체결이 필요한 분야, 일정한 형식의 반복적인 계약이 많은 분야, 제품의 유통추적이 필요한 분야 등에서 스마트 컨트랙트를 우선적으로 도입하고 있습니다.
공유 경제
블록체인 기반의 스마트 계약은 공유 경제의 한계점 보안과 신뢰 문제를 해결할 수 있는 키가 될 수 있습니다. 스마트 계약 기능은 원격자 간 계약 체결이 필요한 분야인 공유 경제 분야에 활용될 수 있습니다.
예시로 집 혹은 자동차를 공유하기 위하여 계약 조건을 정하고 이에 따라 금전 지급 및 서비스 제공이 이루어지도록 스마트 계약을 실행하게 되면, 중개 업체를 거치지 않는 사용자 간의 직거래가 이루어질 수 있습니다. 미국 GM과 승차 공유기업 리프트는 사물인터넷 (IoT)를 기반으로 차량을 등록하였습니다.
스마트 계약을 통하여 차량 유치권, 압류 담보 관리, 이전 등의 추적을 자동화하는 작업을 진행하고 있습니다.
'블록체인 개발할뻔' 카테고리의 다른 글
이더리움 가상머신 EVM (0) | 2022.07.21 |
---|---|
스마트 컨트랙트의 문제점 (0) | 2022.07.20 |
스마트 계약 , 스마트 컨트랙트? 개요 (1) | 2022.07.12 |
클레이튼의 계정 유형 알아보기 (2) | 2022.07.08 |
클레이튼 시작하기 앞서 KCT 알아보기 (1) | 2022.07.06 |
댓글