Permalink
Fetching contributors…
Cannot retrieve contributors at this time
50 lines (36 sloc) 4.13 KB

네오 스마트 계약 (Smart Contract) 소개

스마트 계약이란 무엇인가?

스마트 계약이란 디지털 형식으로 규정된 일련의 약속들로, 계약 당사자들이 어떻게 계약을 이행할 지에 대한 방법까지 포함합니다. 블록체인 기술을 통해 이루는 탈 중앙화되고, 변경 불가의, 고도로 안정된 매우 유용한 스마트 계약을 활용 할 수 있습니다. 스마트 계약은 블록체인 기술에 있어서 매우 중요한 요소중의 하나이며, 블록체인이 분열 기술(disruptive technology)이라 불리는 이유입니다. 현재 날이 갈수록 블록체인 기술의 효율은 높아지고 있습니다.

네오 스마트 계약의 특징은?

네오 스마트 계약 2.0은 다음의 특징들을 가지고 있습니다 : 확실성, 높은 성능 그리고 확장성. 네오 계약에는 다음과 같은 형식들이 있습니다 : 확인 계약(validation contract), 함수 계약(function contract), 그리고 어플리케이션 계약(Application contract)

성능 관점에서 보자면, 네오는 계약 실행 환경으로 가벼운(lightweight) NeoVM (NEO Virtual Machine)을 사용합니다. NeoVM은 시작 속도가 빠르고 자원 소모가 적기 때문에 스마트 계약 같은 짧은 과정(short procedures)에 적합합니다. 정적 편집(Static compilation)과 핫스팟 계약의 임시 저장기능은 JIT(실시간 컴파일러)기술을 이용해 비약적으로 향상될 수 있습니다. NeoVM의 명령어 부분(instructinal step)에서 스마트 계약에 있어서 암호 알고리즘의 실행 효율을 최적화 하는 일련의 암호화 명령어들이 제공됩니다. 덧붙여 데이터 조작 설명 부분은 복잡한 데이터의 구조와 배열(array)부분을 직접적으로 지원합니다. 위에 나열된 모든 특징들이 네오 스마트 계약2.0의 효율을 향상시키는 데 중요한 역할을 합니다

네오 스마트 계약 2.0은 고도의 동시성과 동적 분할성(portioning)의 저-결합(low-coupling) 디자인을 통한 결합구조로 인해 확장성있는 접근법을 지니고 있습니다. 이 저 결합 계약 과정은 가상 머신(NeoVM)에서 실행되며 상호작용(interactive) 서비스 레이어를 통해 외부와 교신합니다. 그렇기 때문에 그렇기 때문에 대부분의 스마트 계약 기능의 업그레이드는 이 상호작용 서비스 레이어의 API를 통해 이루어집니다.

모든 언어로 스마트 계약 작성 가능

프로그래밍 언어 관점에서 보면, 네오 스마트 계약2.0과 이더리움의 차이점은 보다 더 직관적입니다 : 이더리움의 원 솔리더티(Solidity) 언어와 달리, 네오 스마트 계약은 거의 모든 고급 프로그래밍 언어로 직접 작성이 가능합니다. 먼저 지원하는 언어는 C#, VB. Net, F#, Java와 Kotlin입니다. 네오는 이 언어들에 대해 컴파일러와 플러그인을 제공하며, 이들을 통해 네오 가상 머신이 지원하는 명령어들로 컴파일할 수 있습니다. 첫 번째 컴파일러는 MSIL (Microsoft intermediate language)을 지원하기 때문에 이론상, 어떤 .Net 언어나 다른 언어들도 MSIL로 변환되어 바로 지원됩니다.

현재 지원하는 언어들은 다음과 같습니다 :

  1. C#, VB.Net, F#
  2. Java, Kotlin
  3. Python

향후 지원될 언어들은 아래와 같습니다 :

  1. C, C ++, GO
  2. JavaScript

다양한 언어를 사용할 수 있기 때문에, 90%이상의 개발자들이 새로운 언어를 배울 필요 없이 바로 네오 스마트 계약 개발을 시작할 수 있습니다. 현존하는 비즈니스 시스템 코드는 블록체인상에 바로 포팅될 수 있습니다. 우리는 네오의 이런 면이 미래 블록체인의 인기를 크게 올릴 것이라고 생각합니다.

추가적으로, 기존 스마트 계약들은 디버깅이 어렵고 테스트를 위한 툴들이 부족합니다. 그러나 네오는 네오 가상 머신 상에서 디버깅 툴을 제공하기 때문에, 사용자들이 네오 스마트 계약2.0을 보다 쉽고 빠르게 개발할 수 있습니다.