brunch

You can make anything
by writing

C.S.Lewis

by Brandon Chung Aug 19. 2018

[블록체인 정리] #2. 스마트컨트랙트

#2. 스마트컨트랙트


- 스마트 컨트랙트란?
 ; 정말 한글의 폐해라고 할 수 있을텐데, 다짜고짜 새로운 단어만 만들어놓으면 그것 정의하느라고 난리가 납니다.
 스마트 컨트랙트라는 영어단어를 그냥 가져오다보니, '계약'이라는 단어를 마구 섞어버리는데, 이러다보니 전혀 원래의 의미를 이해하지 못하고 있습니다.

 Smart Contract 를 복잡하게 생각하지 마시고, 쉽게 생각하자면, 인터넷 웹사이트라고 생각하시면 됩니다.

 역시 일반인들 기준으로 설명드리고 엔지니어 입장에서 설명드리죠.

 Smart Contract를 적용한 이더리움은 분명하게 '블록체인 앱 플랫폼'을 목표로 개발된 것입니다. 먼저 글에서 '블록체인'은 데이터를 저장하는 방법일 뿐이라고 설명드렸습니다.

 모든 컴퓨터의 구성의 기본은 CPU라고 불리는, 계산하는 능력을 가진 장치와, 메모리라고 불리는, 데이터를 저장하는 장치로 구성됩니다.

 이 비유로 보았을때, '블록체인' 기술은 이전까지는 데이터를 불특정한 다수에게 분산하여 저장하는 것에 대한 '저장'(메모리) 기술은 있었지만, 이 데이터를 활용하여 계산처리(CPU)할 수 있는 역할은 없었던 상태였습니다.

 예를 들면 비트코인코어 기술로, 비트코인은 정해진 알고리즘으로 그 '화폐'가 되는 단위가 불특정한 다수에게 분산되어질 수 있고, 이 동일한 코어를 사용하면 이를 누구나 사용(CPU)할 수 있는 것처럼 보였지만, 이 코어의 알고리즘을 수정한다면, 기존의 비트코인의 데이터를 사용할 수 없는, 완전히 무관한 상황이 되어버리기 때문에, 진정으로 분산된 CPU의 역할을 수행하는 것이 아닌, 통제되는 정해진 계산 만 할 수 있는 기능을 여럿이 복사하여 똑같이 행동하는 것이지요.

 하지만, 이더리움은 이더리움 자체의 코어 기술과 상관없이, 그 위에서 누구나 자신만의 계산법을 만들어(CPU), 분산된 데이터들(메모리)를 사용할 수 있도록, 이상적인 블록체인 기술 플랫폼을 만들기 위해서, Smart Contract라는 것을 만든 것입니다.

 즉, Smart Contract 란, 블록체인 데이터들을 이용해서 계산하고 구동될 수 있는 어플리케이션을 말하는 것입니다. 이것을 dApp 이라고 표현하고 있지요.

 쉽게 비유하자면, 비트코인은 여러분이 피쳐폰을 열고 번호를 입력하면 전화 통화를 할 수 있는 기기로, 오직 하나의 목적으로 만들어진 블록체인 상품이라면, 이더리움은 아이폰을 만들고, 앱스토어를 만들어서 다른 개발자들이, 아이폰에서 구동될 수 있는 프로그램을 개발하여, 앱스토어에 올릴 수 있도록 '플랫폼'을 만든 것이라고 보시면 됩니다.

 이것이 Smart Contract 이고, dApp 과 동일한 단어이며, 어플리케이션, 그리고 지금 우리가 부르는 모바일 앱과 동일한 내용입니다.

 엔지니어 입장에서 들여다본다면, 이 스마트컨트랙트를 만드는 방법은, 기존과 동일하게 해당 플랫폼에서 지정한 언어( 이더리움은 현재 솔리디티라는 프로그래밍 언어 )로, 정해진 규약에 따라 프로그램을 개발하는 것입니다.

 이렇게 개발된 프로그램은, 앱으로 컴파일되어 이더리움 데이터에 접근이 가능한 블록체인에 저장되어, 앱을 실행할 때, 블록체인상에서 구동되어 블록체인 데이터를 사용하고, 그 결과 등을 블록체인상에 저장하는 앱이 되는 것입니다.

 물론, 이 블록체인상에서 구동되는 앱은 모든것을 할 수는 없습니다. 한계는 분명하게 해당 블록체인 안에 들어있는 데이터를 사용할 수 있는 수준일 뿐이고, 그 데이터를 계산, 저장, 출력하는 수준인 것이지요.

 그리고, dApp 을 개발하는 개발자들은 Front-end 라고 불리우는, 즉, 실제 사용자들이 사용하고 체감하는 부분은 웹사이트나 모바일 어플리케이션에서 관련 데이터를 가져와서 보여주거나 입력을 하면서, 사용자들에게 보여지는 앱을 완성하게 되는 것입니다.

 즉, 기존의 프로그램과 비교해보자면, dApp 의 역할은 '서버 어플리케이션'의 역할이 되는 것이지요.

 게임과 비교해보자면, 리니지 게임을 다운로드 받았을 때, 여러분의 모바일폰에서 리니지가 실행되는 것 같지만, 사실은 여러분의 모바일폰에서 실행되어(Front-end, 모바일 게임앱) 연결되어져 있는 리니지의 서버(Smart Contract, dApp)에서 모든 데이터가 관리되고 계산되며, 여러분의 모바일 폰에서는 그 결과만을 보여주는 것과 마찬가지 역할이라고 보시면 됩니다.

 스마트 컨트랙트는 '계약' 과는 무관한 것입니다.

 여러분이 스마트 컨트랙트로 부동산 계약 dApp을 개발할 수는 있겠지요. 하지만, 저 단어 때문에 '계약'만 머리속에 있다면, 그건 잘못된 정의로 잘못된 설명을 하는 이들 때문입니다.

 스마트 컨트랙트는 그냥 dApp, 서버 어플리케이션, 앱이라고 생각하시면 됩니다.

#스마트컨트랙트 #smartcontract #블록체인 #blockchain #ico #암호화폐 #가상화폐 #거래소 #스캠 #scam

브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari