スマートコントラクトとは?
事前に定義されたプログラム通りに、条件を満たした時に自動で契約を執行することをスマートコントラクトと言います。
例えば、電子マネーのオートチャージのように、 残高が3,000円を下回ったら、3,000円チャージする、のようなものです。
イーサリアム
イーサリアムとはブロックチェーンのネットワーク上でアプリケーションを実行できるプラットフォームです。
ETHと呼ばれる仮想通貨を消費して、プログラムの実行が可能です。
Solidityとは?
Solidityとはイーサリアムプラットフォームスマートコントラクトを開発するためのJavaScriptライクな開発言語です。
ブラウザベースの統合開発環境Remixを利用すると、簡単に開発をスタートできます。

Getter Setterのサンプル
Remixにアクセスして、画面左上の+ボタンから新規ファイルを作成します。
プログラムの作成
今回は簡単なGetterSetterを作成します。
IDEで以下の内容を記述します。
contractValueにsetValueで値をセットし、getValueで値を取得します。
// バージョンプラグマの指定
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に「"ほげほげ"」を入力して、「transact」をクリックします。
すると、またGasが消費されたのがわかります。
次にgetValueを実行します。
getValueをクリックすると、setValueでセットした値が表示されます。
setValueの際はGasが消費されましたが、getValueの際はコントラクトに対してデータを送信しないので、Gasは消費されません。