화폐기능이 중심인 비트코인에 비해서 이더리움은 프로그래밍에 의한 스마트계약 작성의 차별점이 있습니다.
스크립트 기반의 아주 제한적인 프로그래밍이 가능했던 비트코인에 비해 이더리움의 스마트 계약은 Solidity 언어를 사용하여 Turing complete 형태의 완전한 프로그래밍이 가능합니다.
Solidity는 홈페이지에서 다음과 같이 정의되어 있습니다.
"Solidity is a contract-oriented, high-level language for implementing smart contracts"
즉, Solidity 언어는 스마트계약을 구현하기 위한 계약지향의 하이레벨 프로그래밍 언어로 위에서 언급한것처럼 "Turing complete" 하기 때문에 비트코인과 같이 제한적이지 않고 생각할수 있는 모든것을 프로그래밍할수 있고 다음과 같이 다양한 개발환경을 지원합니다
|
이번 포스팅에서는 가장 간단하게 이전에 설치한 Mist를 사용하여 간단한 스마트계약을 하나 작성해보도록 하겠습니다.
Mist의 컨트랙트 메뉴를 선택하면 다음과 같이 컨트랙트 설치화면이 나옵니다.
여기서 신규 컨트랙트 설치를 선택하면 송신처와 작성할 Solidity 코드가 나오며, 하기의 에디터 창에서 만들고자 하는 스마트계약의 코드를 작성하면 됩니다.
그럼 다음과 같이 간단한 스마트계약 코드를 작성하도록 하겠습니다.
하기 코드는 Solidity 홈페이지의 샘플코드를 참고로 하였습니다.
소스코드를 작성한후 설치할 컨트랙트에서 Simple Storate를 선택한후 설치를 선택한후, Geth의 mining 을 시작하면 작성한 컨트랙트가 이더리움 블록체인상에 실행가능상태로 올라가게 됩니다.
설치가 완료되면 컨트랙트 메뉴상에 설치한 컨트랙트가 보여지게 되고, 설치한 컨트랙트를 선택하면 다음과 같이 실행화면이 보여집니다.
Select function 에서 작성한 Set 함수를 선택한후 value 100을 입력하고 실행하면 컨트랙트가 실행되며 mining 상태라면 다음과 같이 입력한 값 100이 보여집니다.
위에서 작성한 컨트랙트는 이더리움상에서 동작되는 스마트 컨트랙트의 작성과 동작방법을 설명하기 위한 아주 간단하 코드입니다.
위 코드를 기반으로 스마트 컨트랙트의 작성방법을 알아보시기 바라고, 이후에는 Mist가 아닌 solidity 프로그래밍을 위한 IDE인 Remix를 사용하여 작성을 하도록 하겠습니다.
'이더리움 > DApp 프로그래밍' 카테고리의 다른 글
Contract에서 다른 Contract의 함수 호출하기 (2) | 2018.05.25 |
---|---|
remix에서 solidity 디버깅하기 (2) | 2018.05.22 |
SMT 토큰 해킹사건 (1) | 2018.04.26 |
이더리움 기반의 ERC20 토큰 만들기 (10) | 2018.04.10 |
Remix IDE를 이용한 Solidity 프로그래밍 (0) | 2018.04.08 |