블록체인 - 이더리움에서 스마트 계약 개발 입문편

스마트 계약이란?



사전에 정의된 프로그램대로 조건을 충족했을 때 자동으로 계약을 집행하는 것을 스마트 계약이라고 합니다.

예를 들면, 전자화폐의 오토차지와 같이, 잔액이 3,000엔을 밑돌면, 3,000엔 충전하는, 같은 것입니다.

이더리움



이더리움은 블록체인 네트워크에서 애플리케이션을 실행할 수 있는 플랫폼입니다.
ETH라는 가상 통화를 소비하여 프로그램을 실행할 수 있습니다.

블록체인에 대해서는 이 블로그를 참조

Solidity란?



Solidity는 이더리움 플랫폼 스마트 계약을 개발하기 위한 JavaScript와 같은 개발 언어입니다.
브라우저 기반 통합 개발 환경 Remix을 사용하면 쉽게 개발을 시작할 수 있습니다.



Getter Setter 샘플



Remix로 이동하여 화면 왼쪽 상단의 + 버튼에서 새 파일을 만듭니다.

프로그램 만들기



이번에는 간단한 GetterSetter를 만듭니다.
IDE에서 다음 내용을 설명합니다.

contractValue에 setValue로 값을 설정하고 getValue로 값을 가져옵니다.

sample.sol
// バージョンプラグマの指定
pragma solidity ^0.4.0;

// サンプルコントラクトの宣言
contract Sample {
    // サンプル変数の宣言
    string contractValue;

    // サンプル変数に値をセット
    function setValue(string localValue) {
        contractValue =localValue;
    }

    // サンプル変数の値を取得
    function getValue() constant returns (string) {
        return contractValue;
    }
}

프로그램 컴파일 및 실행 준비



화면 오른쪽의 Compile 탭에서 Start to Compile 버튼을 클릭하면 컴파일됩니다.

컴파일이 성공적으로 완료되면 Run 탭으로 전환합니다.



Environment는 프로그램을 실행하는 환경입니다.
JavaScriptVM을 선택합니다.

Account는 실행할 계정입니다.
여러 개 존재하지만 이번에는 아무래도 좋습니다.

이더리움에서는 프로그램을 실행하기 위해 ETH라는 가상 통화를 소비합니다.
계정 ID의 오른쪽에 (100ether)가 있습니다만, 이것이 계정이 보유하고 있는 ETH입니다.

프로그램 실행



자, 방금 전의 프로그램을 실행해 봅시다!


방금 만든 Sample을 선택하고 Deploy를 클릭합니다.
그러면 계정 ID 오른쪽의 ether가 줄어듭니다.

이더리움에서는 계약에 데이터를 전송할 때 "Gas"라는 비용을 소비합니다.



setValue의 localValue에 ""How""를 입력하고 "transact"를 클릭하십시오.

그러면 Gas가 소비되었음을 알 수 있습니다.

그런 다음 getValue를 실행합니다.
getValue를 클릭하면 setValue로 설정된 값이 표시됩니다.

setValue에서는 Gas가 소비되었지만 getValue에서는 계약에 데이터를 보내지 않으므로 Gas는 소비되지 않습니다.

좋은 웹페이지 즐겨찾기