Ethereumのお勉強はじめました
どうも、ぺろりんです。
Ethereum(ETH)でスマートコントラクトのお勉強をはじめました。
教科書は「はじめてのブロックチェーン・アプリケーション Ethereumによるスマートコントラクト開発入門 (DEV Engineer's Books)」を使っています。
途中で詰まったら別のにするかも。
というわけで、勉強した内容をこのブログでメモとしてまとめていきます。
さぁて、まったりとやっていきますよ。
Ethereumの概要
Ethereumってなに?
Ethereum(イーサリアム)は、ブロックチェーン上で、任意に決めたルールで自動的にデジタルアセット[注1]を移動(=スマートコントラクト)するための基盤システム。
スマートコントラクトの方法は?
任意の状態遷移関数[注2]をコード化した「コントラクト」を作成して、これを実行することでスマートコントラクトを実現する。
実際には、Goなどのプログラミング言語で書いたコードをEthereumのブロックチェーン上に格納し、実行する。
単位
Ethereumにも通貨(仮想通貨、暗号通貨)が実装されており、この単位は「ether(イーサ)」。通貨単位として記載されるときは「ETH」。
補助単位で「wei(ウェイ)」(=10-18 ether)、「szabo(ザボー)」(=10-6 ether)、「finney(フィニー)」(=10-3 ether)というのもある。
手数料
コントラクトの実行のために、手数料が必要で、このときに支払うetherのことを「Gas(ガス)」という。燃料的な意味でこんな名前なんですかね。
これはマイナーが持つコンピュータのリソースを使わせてもらう対価として支払う。
「Gas Fee(ガス・フィー)」は、コントラクトの内容(Ethereumに要求するリソースの量や複雑さ)で決まる手数料が何Gasか、というの。
「Gas Price(ガス・プライス)」は、Gasの値段で 1 Gas = ??? wei の???のところ。(なので単位は「wei/Gas」)
Gas Priceが高い送金トランザクションから実行されるというのが重要ですね。
相場はここでわかるみたいです。
「Gas Limit(ガス・リミット)」は、支払い可能なGasの最大値。
1つ1つのトランザクション実行にはGasが必要だけど、実行できるのは支払うGasの総量がGas Limitとなるまで。
・(すべてのトランザクションによるGas総量)< Gas Limit
→ すべてのトランザクションが実行され、差額は戻ってくる。
・(すべてのトランザクションによるGas総量)= Gas Limit
→ すべてのトランザクションが実行され、Gas Limit分支払う。
・(すべてのトランザクションによるGas総量)> Gas Limit
→ Gas Limit分までのトランザクションが実行され、それ以上は実行されない。
ツール
この本ではGeth(ゲス)ことgo-ethereumという、Ethereumを操作するためのコマンドラインインターフェースを使う。
(参考)
・Gethをインストールする。(Ethereum入門)
・Ethereum Gethをインストールして開発環境を整える (1) (@takeoworks)
資料
この本で資料が紹介されていたのでリンクをメモっておきます。
・Ethereumのホワイトペーパー(日本語訳を見つけたのでこれもリンクを貼っておきます)
・Ethereumの仕様書
まとめ
今回からしばらく(?)、「はじめてのブロックチェーン・アプリケーション Ethereumによるスマートコントラクト開発入門 (DEV Engineer's Books)」を使ってEthereumのお勉強をはじめてみます。
Ethereumは仮想通貨というよりは「ブロックチェーン上でプログラムを動かすための環境」です。
自分のPCのリソースではなく、基本は「マイナー」が持つハイスペックなコンピュータで計算してもらい、ブロックチェーン上でのトランザクションを実行します。
マイナーにお願いするために、報酬として彼らに「Gas」を支払うわけですね。
さて、次回はまず勉強環境をつくるところを書き残すことにします。
ではおたのしみに。
[注1] アセット…資産、財産、資源、有価物、有用なもの、利点、長所、などの意味を持つ英単語。(IT用語辞典)
[注2] 状態遷移関数…Ethereumでの具体的な内容はよくわからないですが、オートマトンとか状態遷移とかこういう考え方があるので、ここの意味での状態遷移を実現する関数のことでしょう。
Ethereum(ETH)でスマートコントラクトのお勉強をはじめました。
教科書は「はじめてのブロックチェーン・アプリケーション Ethereumによるスマートコントラクト開発入門 (DEV Engineer's Books)」を使っています。
途中で詰まったら別のにするかも。
というわけで、勉強した内容をこのブログでメモとしてまとめていきます。
さぁて、まったりとやっていきますよ。
Ethereumの概要
Ethereumってなに?
Ethereum(イーサリアム)は、ブロックチェーン上で、任意に決めたルールで自動的にデジタルアセット[注1]を移動(=スマートコントラクト)するための基盤システム。
スマートコントラクトの方法は?
任意の状態遷移関数[注2]をコード化した「コントラクト」を作成して、これを実行することでスマートコントラクトを実現する。
実際には、Goなどのプログラミング言語で書いたコードをEthereumのブロックチェーン上に格納し、実行する。
単位
Ethereumにも通貨(仮想通貨、暗号通貨)が実装されており、この単位は「ether(イーサ)」。通貨単位として記載されるときは「ETH」。
補助単位で「wei(ウェイ)」(=10-18 ether)、「szabo(ザボー)」(=10-6 ether)、「finney(フィニー)」(=10-3 ether)というのもある。
手数料
コントラクトの実行のために、手数料が必要で、このときに支払うetherのことを「Gas(ガス)」という。燃料的な意味でこんな名前なんですかね。
これはマイナーが持つコンピュータのリソースを使わせてもらう対価として支払う。
「Gas Fee(ガス・フィー)」は、コントラクトの内容(Ethereumに要求するリソースの量や複雑さ)で決まる手数料が何Gasか、というの。
「Gas Price(ガス・プライス)」は、Gasの値段で 1 Gas = ??? wei の???のところ。(なので単位は「wei/Gas」)
Gas Priceが高い送金トランザクションから実行されるというのが重要ですね。
相場はここでわかるみたいです。
「Gas Limit(ガス・リミット)」は、支払い可能なGasの最大値。
1つ1つのトランザクション実行にはGasが必要だけど、実行できるのは支払うGasの総量がGas Limitとなるまで。
・(すべてのトランザクションによるGas総量)< Gas Limit
→ すべてのトランザクションが実行され、差額は戻ってくる。
・(すべてのトランザクションによるGas総量)= Gas Limit
→ すべてのトランザクションが実行され、Gas Limit分支払う。
・(すべてのトランザクションによるGas総量)> Gas Limit
→ Gas Limit分までのトランザクションが実行され、それ以上は実行されない。
ツール
この本ではGeth(ゲス)ことgo-ethereumという、Ethereumを操作するためのコマンドラインインターフェースを使う。
(参考)
・Gethをインストールする。(Ethereum入門)
・Ethereum Gethをインストールして開発環境を整える (1) (@takeoworks)
資料
この本で資料が紹介されていたのでリンクをメモっておきます。
・Ethereumのホワイトペーパー(日本語訳を見つけたのでこれもリンクを貼っておきます)
・Ethereumの仕様書
まとめ
今回からしばらく(?)、「はじめてのブロックチェーン・アプリケーション Ethereumによるスマートコントラクト開発入門 (DEV Engineer's Books)」を使ってEthereumのお勉強をはじめてみます。
Ethereumは仮想通貨というよりは「ブロックチェーン上でプログラムを動かすための環境」です。
自分のPCのリソースではなく、基本は「マイナー」が持つハイスペックなコンピュータで計算してもらい、ブロックチェーン上でのトランザクションを実行します。
マイナーにお願いするために、報酬として彼らに「Gas」を支払うわけですね。
さて、次回はまず勉強環境をつくるところを書き残すことにします。
ではおたのしみに。
[注1] アセット…資産、財産、資源、有価物、有用なもの、利点、長所、などの意味を持つ英単語。(IT用語辞典)
[注2] 状態遷移関数…Ethereumでの具体的な内容はよくわからないですが、オートマトンとか状態遷移とかこういう考え方があるので、ここの意味での状態遷移を実現する関数のことでしょう。