Ethereumを動かす ~Part7~

Blog Single

前回までで、各アカウント間でのEthereumの受け渡しまで行いました。
今度は応用として、Ethereumでスマートコントラクトを作成したいと思います。今回は、そもそもスマートコントラクトとはという説明に充てたいと思います。

ブロックチェーン技術の画期的な面

 

そもそもブロックチェーン技術が画期的なのは、それぞれのノードがお互いを監視しているという点にあります。
具体的に言うと、任意のノードの情報を他のブロックが持っているということです。変更などの情報も全て保持されています。これにより、特定の一つのノードの情報のみを意図的に改竄することが出来なくなり、また全ノードの情報を同時に書き換えるのは理論上不可能なのでブロックチェーンは改竄不可能と言われています。
やりとりなどの情報が改竄不可能だからこそ仮想通貨としての役割を果たせているのですが、この改竄不可能性は通貨以外のもの、例えば契約などでも使えるのでは無いか、という考えから生まれたものがスマートコントラクトです。
 

スマートコントラクト

 
スマートコントラクトは、直訳すると「賢い(Smart)契約(Contract)」で、ごくごく簡単に言うと契約プログラムのことです。しかもこれは自動で動きます。

Ethereum上にアカウントを作って送金したり採掘したりと様々な操作をしてきましが、ここでのアカウントとは厳密に言うとExternally Owned Account、通称EOAのアカウントを指します。
Ethereumには実はもう一つアカウントと呼ばれる存在があり、それがコントラクトのアカウントです。
 
ブロックチェーン=仮想通貨というイメージの方は驚かれるかと思いますが、プログラミングをブロックチェーン環境へデプロイして、それを実行することがEthereumでは可能なのです。
先述した契約のプログラミングをブロックチェーン環境にデプロイしたものをコントラクトと呼びます。
しかも、EOAと同様にコントラクトはアドレスを持っているので、EOA同士でEtherをやりとりしたように、コントラクトへとEtherを送ることも可能です。

“契約プログラミング”というと難しそうですが、非常に単純なプログラミングも実行可能です。「Hello World」を表示させるだけのプログラミングももちろん可能です。

このコントラクトを記述する言語で代表的なものにSolidityというものがあります。
次回からはこのSolidityの説明と、実際にSolidityを用いたコントラクトの記述に取り組んでいきたいと思います。

技術書は勿論、本全般が好き。品揃えの良い本屋に行くとテンション上がりすぎて後で具合が悪くなる。

Other Posts: