이전 포스팅에서는 스마트 컨트랙트(Smart Contract) 기술이 블록체인 위에서 어떻게 동작하는지에 대해 알아보았습니다.
블록체인 기술 연재 시리즈
블록체인 기술 개요
스마트 컨트랙트(Smart Contract) 개요 -1
스마트 컨트랙트(Smart Contract) 개요 -2
이번 포스트에서는 loopchain의 스마트 컨트랙트인 SCORE(Smart Contract On Reliable Environment) 가 어떤 특징을 가지고 있는지에 대해 알아보도록 하겠습니다.
SCORE(Smart Contract On Reliable Environment)의 특징
loopchain SCORE의 가장 큰 특징은 개발 친화적 언어를 통해 자유롭게 개발환경을 구성할 수 있다는 점입니다. 대표적인 블록체인 기반 스마트 컨트랙트 플랫폼인 이더리움의 경우 특수한 가상머신 EVM(Ethereum Virtual Machine)에서 사용 가능한 언어로만 스마트 컨트랙트를 작성할 수 있습니다. 즉 Solidty, Serpent, LLL을 통해서 스마트 컨트랙트를 개발을 해야하고 데이터 접근 및 저장 또한 EVM 내부 변수를 통해서만 저장할 수 있습니다.
loopchain SCORE는 합의엔진과 의존성을 최대한 떨어뜨린 별도의 모듈로 개발되었습니다. 합의 엔진과 SCORE는 내부 GRPC로 구현된 인터페이스를 통하여 통신을 하기 때문에 인터페이스만 맞으면 어떠한 언어로도 구현이 가능하나 현재는 파이썬 구현체만 허용하고 있습니다. 데이터 베이스 또한 자유롭게 사용할 수 있죠. 다만 이더리움 처럼 변수의 모든 데이터가 저장되지는 않고 데이터베이스에 직접 읽고 쓰고 한 결과만 저장됩니다.
SCORE 데모
아직 정확한 일정이 확정되지 않았지만 올해 하반기에 loopchain는 오픈소스로 공개될 예정이며 이때 SCORE 서비스 부분도 함께 공개될 것입니다.
공개 전에 SCORE를 이해하는데 도움이 되도록 SCORE기반 채팅 샘플에 대해 동작 방식과 함께 설명하겠습니다.
채팅서비스는 중계자가 필요한 대표적인 서비스입니다. 채팅 참여자는 각자가 직접 연결되지 않고 채팅서버와 연결한 후 채팅서버에서 보내주는 다른 참여자의 말을 믿고 대화를 진행합니다. 즉, 대화 당사자가 아닌 채팅서버라는 별도의 TTP(Trusted Third Party)가 대화라는 거래를 중계해주는 방식이라고 할 수 있습니다.
이를 스마트 컨트랙트로 간략히 구성한다면 아래와 같습니다.
- 스마트 컨트랙트로 공유하는 내용
- 채팅 참여자간 대화록
- 스마트 컨트랙트 갱신 조건
- 채팅 참여자가 보내온 대화의 서명이 해당 채팅 참여자의 서명이 맞으면 대화록에 추가함
즉, 채팅 참여자가 각각 블록체인 노드를 구성하고 대화 내용을 포함하고 서명을 하여 거래를 발생시키면 해당 거래가 동기화되고 거래 내역이 정당하면(채팅 참여자의 서명이 맞으면) 거래에 포함된 대화 내용을 전체 대화록에 추가하는 식입니다.
SCORE 기반 채팅 서비스 데모
이전 포스팅에서 설명하였듯이 스마트 컨트랙트는 Transaction과 Query라는 두가지 형태의 인터페이스를 가지고 있습니다. 위 동영상의 ‘보내기’는 Transaction으로써 다른 사람에게 메세지를 보내는 역활을 하며 ‘조회’는 Query로써 채팅방에 올려진 메세지를 확인할 수 있습니다. Query는 본인이 가지고 있는 스마트 컨트랙트의 내용을 확인하는 것이죠.
동영상 시나리오와 같이 한 사용자가 오프라인 상태가 되더라도 다른 사용자에게는 영향이 없으며 다시 온라인 상태가 되면 블록 동기화 과정을 통해 이전에 있던 모든 메세지를 받을 수 있습니다.
사실 채팅서비스는 블록체인이 유용한 어플리케이션이라고 하기는 어렵습니다. Socket.io 등을 이용하면 더 편리하고 실시간성으로 만들 수 있죠. 본 예제는 loopchain SCORE가 어떻게 돌아가는지 보여주기 위해 만든 샘플 정도로 보시면 됩니다. 그러나 예전에 야후 메신저가 내용 위변조가 안되고 모든 내용을 저장하는 특성 때문에 일부 도메인에서 사업 계약에 이용되었던 것을 생각하면 대화내용에 대한 무결성을 보장하는 블록체인 기반 채팅서비스도 상용화될 수 있습니다.
본 포스팅에서는 loopchain의 스마트 컨트랙트인 SCORE에 대해서 알아보았습니다. 다음 포스팅 부터는 블록체인의 또다른 주요 요소인 합의 알고리즘에 대해 알아보도록 하겠습니다.