1. 스마트 컨트랙트

스마트 컨트랙트는 일종의 코드일 뿐이지만, 지정된 조건에서 스스로 계약을 이행하며, 계약 당사자 간의 합의를 강요한다는 점에서 계약이라고 칭하고 있다. 스마트 컨트랙트는 블록체인을 통해 실행되는 애플리케이션 또는 프로그램으로 정의할 수 있다. 일반적으로 특정 규칙에 의해 적용되는 디지털 컨트랙트로 작동한다. 이러한 규칙은 모든 네트워크 노드에서 복제 및 실행되는 컴퓨터 코드로 미리 정의된다. 스마트 컨트랙트는 특정 조건이 충족되면 특정 작업을 실행한다. 스마트 컨트랙트를 이용하면 제3자가 나서서 중개할 필요성이 없어져 운영비용을 크게 절감시킬 수 있다.

CONDOR Chain Network에서 스마트 컨트랙트는 유저(주소)가 상호 작용할 때 발생하는 블록체인 작업의 실행과 관리를 담당한다. 따라서 스마트 컨트랙트는 컴퓨터 코드가, EOA는 유저가 제어한다. 스마트 컨트랙트가 아닌 모든 주소를 EOA(Externally Owned Account, 외부소유계정)라고 한다.

기본적으로 CONDOR Chain Network의 스마트 컨트랙트는 컨트랙트 코드와 2개의 공개 키(Public Key)로 이뤄진다. 첫 번째 공개 키는 컨트랙트 작성자가 제공하는 키이고, 다른 하나는 컨트랙트 자체를 나타내며, 스마트 컨트랙트마다 고유한 디지털 식별자 역할을 한다. 모든 스마트 컨트랙트는 블록체인 거래를 통해 구축되며 EOA 또는 다른 스마트 컨트랙트가 호출해야 활성화 될 수 있다. 그러나 첫 번째 트리거(trigger)는 항상 EOA(유저)에 의해 발생한다.

CONDOR Chain Network의 스마트 컨트랙트는 다음과 같은 특징이 있다.

분산화(Distributed)

스마트 컨트랙트는 CONDOR Chain Network의 모든 노드에 복제 및 배포된다. 이는 중앙 집중식 서버를 기반으로 하는 다른 솔루션과 다른 주요 차이점 중 하나이다.

결정론적인(Deterministic)

스마트 컨트랙트는 요구 사항을 충족하는 경우에만 설계된 작업을 수행한다. 또한 누가 실행하든 항상 똑같은 결과를 도출해 낸다.

자율적으로(Autonomous)

스마트 컨트랙트는 모든 종류의 작업을 자동화하여 자가 실행 프로그램처럼 작업할 수 있다. 그러나 대부분의 경우 스마트 컨트랙트가 트리거 되지 않으면 "휴면상태"로 유지되고 아무런 조치도 수행하지 않는다.

불변의(Immutable)

스마트 컨트랙트는 배포 후 변경할 수 없다. 배포 이전에 특정 기능이 구현된 경우에만 이러한 항목을 "삭제"할 수 있다.

유저 지정 가능(Customizable)

배포 전에 스마트 컨트랙트는 여러 가지 방법으로 코딩될 수 있다. 따라서 다양한 유형의 분산 응용프로그램(DApp)을 작성하는 데 사용할 수 있다. 이는 CONDOR Chain Network가 튜링완전성을 가진 블록체인이라는 사실과 관련이 있다.

※ 블록체인의 튜링완전성

블록체인의 튜링완전성은 튜링완전언어(Turing Complete Language)를 통해 확보할 수 있다. 튜링완전언어는 무한한 저장공간을 바탕으로 이 세상의 모든 문제를 풀 수 있는 기계인 튜링머신(Turing Machine)을 만들고 이러한 튜링머신 안에 입력할 수 있는 알고리즘을 구현하는 언어를 말한다.

신뢰관계를 형성할 필요 없는(Trustless)

두 명 이상의 계약 당사자가 서로 알 필요도, 신뢰관계를 형성할 필요도 없이 스마트 컨트랙트를 통해 상호작용할 수 있다. 또한 블록체인은 데이터의 정확성을 보장한다.

투명한(Transparent)

스마트 컨트랙트는 퍼블릭 블록체인을 기반으로 하기 때문에 소스코드는 불변할 뿐 아니라 누구나 열람할 수 있다.

Last updated