こんにちは。
Ethereumの技術について、ざっと概要を書きたいと思います。
Ethereum Solidity
Ethereumネットワーク上のEVM(Ethereum Virtual Machine:Ethereum仮想マシン)で動作するスマートコントラクトを記述するためのプログラミング言語です。
JavaScriptにフォーマットが似ていますが、クラスがある。また、変数の型がJavascriptとは違い、静的な型付けとなっている。
ほかにも、 他の言語で言うところの Class
に相当する Contract
を定義でき、継承もできます。
スマートコントラクト
いろいろ定義があるようです。
今までの技術でも同じことが機能的には実現できるのですが、以下の点が絶対的に違います。
- プログラムやデータがブロックチェーンに記録されてるので、改ざんできない(変更することが出来ない)
- そもそもプラットフォームが管理者不在でも問題ないブロックチェーンで動作する(インフラについて気にする必要がない)
Web3.js
Ethereum を制御する JavaScript
のライブラリ。
制御には直接関連しないが、Ethereum に関連するユーティリティモジュールも含まれる。
Ethereum の概要
Web3.js から見た Ethereum の要素
Ethereum は以下のような構成になっているそうです。
Ethereum(web3.eth) ブロックチェーン・スマートコントラクト。 アカウントやトランザクションなどもここに含まれる。
Whisper(web3.shh) ブロードキャスト、ユニキャストが可能なメッセージング。 メッセージはブロックチェーンには記録されない(一定時間経過後に消える)
Swarm(web3.bzz)
Ethereum
のブロックチェーンを利用した分散ファイルシステム。 こちらもスマートコントラクトと同じ様に改ざんできないが、消去もできないとのこと。
Ethereum が動作する環境の種別
プライベートネット : 自分または自分の知るノードのみが参加するEthereumネットワーク。 開発用などはこちらで作業する。 普段はこれでOK。
テストネット : テスト用に運用されている開かれたネットワーク。
ライブネット : Ethereumの本番ネットワーク。
技術情報
一次情報
本家サイトはこちら。 ethereum.org
ソースはこちら。 github.com
メインネットのトランザクションを見たり出来ます。 https://etherscan.io/
学習に役立つサイト
ブロックチェーンEthereum入門 1 | NTTデータ先端技術株式会社
Solidity — Solidity 0.5.8 documentation
JavaScript API · ethereum/wiki Wiki · GitHub
Create a cryptocurrency contract in Ethereum
リンク集のようになってしまいましたが、次回より具体的な内容を書いていけたらと思います。