さて今回はついにイーサリアムの具体的な内容について踏み込んでいきます!
といったチャプターを読み進めていきましょう!
前回までの記事はこちら
イーサリアム(Ethereum)のホワイトペーパーを読んでみようPart1
イーサリアム(Ethereum)のホワイトペーパーを読んでみようPart2
この記事は日本語版ホワイトペーパーを参照に作成されています。
では早速いってみましょう!
Ethereum の目的は、分散型アプリケーションのための代替プロトコルを創造し、 大規模な分散型アプリケーションにとって、われわれが非常に役立つだろうと信じるところの、数々の修正を加え提供することであります。 ここにおいて、アプリの高速開発にかかる時間、小規模かつ滅多に使われないアプリに対するセキュリティ、他アプリ間の効率のよい相互作用を可能とすること、が重要視されます。
前回の投稿でも説明されていた通り、ブロックチェーンを用いたアプリケーションを作りたい時、「Bitcoinを土台とする方法」では制限が多く自由が効かないという問題点があり、「独自のネットワークを構築する方法」では実装が大変で、利用者が少ないとそもそも成り立たないという問題点があることを学びました。
イーサリアムの目的はこれらの問題を解決するプラットフォームを構築することです。
Ethereum アカウントは4つのフィールドを含みます。
・nonce:そのアカウントが送信した累積トランザクション数
・ether balance:そのアカウントが所有するether量
・contract code:コントラクト・コード(EOAの場合は空)
・storage:そのアカウントが保持する任意のデータ
Ethereum入門から引用
アカウントは二つの種類があります。
と
です。
EOAは直訳すると、外部から所有されているアカウント、つまり我々ユーザーによって生成されコントロールされるアカウントですね。
そしてcontractの方は、自動でコードを実行するアカウントで、EOAからのトランザクションをトリガーにして、自らのもつコントラクトコードを実行します。
etherというのはEthereumプラットフォーム上でアプリケーションやスマートコントラクトを実行するための燃料です。
んーなんだか今のところよくわからないですね笑
とりあえず次にいってみましょう。
Ethereum において、「トランザクション」は、 EOA から送られたメッセージを貯蔵する 署名付データパッケージ を参照するために使用されます。 トランザクションは、以下を含みます。・メッセージの受領人
・送信者を特定する署名
・送信者から受領人へ送られる ether の量
・オプショナルデータフィールド(署名付きデータパッケージ)
・STARTGAS 値:トランザクションの実行にかかる 計算のステップ数 の最大値
・GASPRICE 値:送信者が支払う、1計算ステップあたりの手数料
上の3つはビットコインと要領は同じですね。
相手アドレス名、相手アドレスへ送るetherの量、そして送信者がデジタル署名をすることで送信を証明します。
そして下の2つはトランザクション手数料として支払うetherの量を決める情報になります。トランザクションを行うにはデータの大きさに応じて「gas」という単位を用いて手数料を計算します。
STARTGAS値はトランザクションで行う最大のgas量(=計算量)のことで、これをあらかじめ決めておくことで、このgas量(計算量)以上のトランザクションを行わないように設定することができます。これにより、偶発的もしくは故意で無限ループや無駄なコードの消費を避けることができます。
GASPRICE値は1gas(1計算ステップ)あたりに支払うether量です。
つまり、
ということになります。
最後にオプデョナルデータフィールド(署名つきデータパッケージ)というのは、EOAから送り先のContractに対して引き渡すデータを格納しています。
Contractはこのデータを入力値としてコントラクト・コードを自動で実行し、このデータを新たにアプリケーションに組み込むことができます。
んーわかったようなわからないような感じですね笑
でも読み進めていけばだんだんとわかってくるかもしれません!
今回はここまでにしましょう!
続きはまた次回の投稿で!