Solidity の基礎~Ethereumの理解を深める
イーサリアムの基礎
イーサリアムは分散型アプリであるDApps(Decentralized Applications)やスマート・コントラクトを構築するためのプラットフォームの名称です。
イーサリアムを利用するために必要な内部流通通貨として「Ether(イーサ)」が用いられています。
Etherの単位
イーサリアムの単位はETH(イーサ〜ether)。
最小単位は「wei(ウェイ)」。
1ether=100京wei。
実際はweiよりもgwei表記のことが多く、1gwei = 10億weiとなり、10億gweiが1etherとなります。
gweiは、情報理論の父としてしられる数学者のクロード・シャノンにちなんで、Shannonというニックネームが付いています。

アラン・チューリングやジョン・フォン・ノイマンとともに現代のコンピュータ技術の基盤を作り上げた人物として、名前が並びます。
ネットワーク
イーサリアムプロトコルは1つですが、プロトコルを実行するためのネットワークは複数存在しています。
メインネット
パブリックイーサリアムネットワークは開発者間ではメインネットと呼ばれています。
テストネット(フォーセット)
コミュニティーがステージング環境として利用するためのテストネットというパブリックネットワークも存在しており、テストネットにはフォーセット(faucet)があり、フォーセットは開発者がスマートコントラクトをテストできるようにイーサリアムを無償で配布するメカニズムとなっています。
イーサリアムプロトコルを実行しているネットワークではすべてでイーサリアムを使用しますが、実際に価値を持つのはメインネットのイーサリアムだけになります。
イーサリアム自体をメインネットにデプロイして実行するためにはメインネットのイーサリアムが必要になります。
Gas
ガス(イーサリアムトランザクション手数料)はイーサリアムの価格に依存しません。
イーサリアムの価格変動によってエコシステム全体に悪影響にならないようにするためです。
イーサリアムトランザクションはwei単位でGasPriceを設定します。
ブロックの作成者がブロックに追加するトランザクションを決める際に設定しますが、Gasには暗黙の相場が存在しています。
トランザクションの実行に速度を求める際はGasの価格を高く設定する必要があり、速度を必要としない場合は低く設定することで、費用対効果の調整をトランザクション作成者が自分で調整することができます。
Gasのルール
イーサリアムのトランザクションにはgas属性とgasPrice属性がそれぞれ必ず含まれている必要があります。
これらの属性の掛け合わせで実行予定のトランザクション手数料の最も高い数値がwei建てで設定されます。
gas属性はトランザクションで実行される計算に上限を課す(gaslimit)ため、この上限を超過した分はトランザクション作成者に返還されます。
Solidityについて
Solidity(イーサリアム用のプログラミング言語)はオブジェクト指向型の言語になります。
Solidityでは読み取り専用の関数をpureキーワードとviewキーワードで表します。
書き込み専用の関数はSolidityのデフォルト関数でありキーワードは不要になります。
関数を実行するためにデータをトランザクション経由で送信し、ブロックに書き込みます。
トランザクション属性
Solidityではトランザクション(tx)の属性として2つ定義されています。
gasPrice
トランザクションを作成したEOAが設定するガス価格(wei建てで決まります)
origin
トランザクションを作成したEOAアドレスです。
メッセージ属性
Solidityはトランザクション属性が他にもありますが、それらはメッセージ(msg)という概念で統一されています。
コントラクト関数の呼び出しには必ずmsg.senderがあります。
data
実行中の外部関数やパブリック関数に送信されたデータの生のバイトでコールデータとも呼ばれています。
sender
実行中の外部関数または、パブリック関数の呼び出し元アドレス。
sig
呼び出し中の関数を特定するためのコールデータのうち最初の4バイトで、関数IDとも呼ばれています。
value
この関数に送信されているweiの量。
number
新しいブロックが増えるたびに増加。
timestamp
ブロックが作成された時刻。
blockhash
ハッシュ値は16進数であり、当然現在のハッシュ値は入手不可能ですが、直近の256ブロックまでなら入手可能。
difficulty
現在のブロックのマイニング難易度。
gaslimit
ブロックで消費できるガスの最大値。
coinbase
ブロック作成者のアドレス。
となっています。
こちらの記事もいかがですか?!
ざっくり歴史把握シリーズは今さら聞けない情報もたくさんありおすすめです!
自分じゃなくてよかった・・・ 株式市場の歴史、実は結構古いんです。
株式市場の歴史をざっくり把握する / Stock market
今さら聞けない・・・ビットコインやイーサリアムの歴史をざっくり把握しておきましょう! 現代でも裁量トレードはまだ残っていますが、この先の未来では裁量トレードを行う人はほとんどいなくなるかと思います。アルゴリズム取引の歴史をざっくり把握する / Algorithmic trading
ナイチンゲールは実はデータサイエンティストだった!? 裁量トレードだって、botトレードだってテクニカル分析の基本を知らなければいけません。こちらもなかなか今さら聞けない分野ですので、歴史についてまずはざっくり勉強していきましょう。
テクニカル分析の歴史をざっくり把握 / Technical analysis
なんとなく頼りないイメージのある経済学者ですが、もちろん凄い人は凄いんです。 FXは慎重に!