加具留矢流余

かぐるやるよ

書評「マスタリングイーサリアム」

巷で流行りのNFTに乗るべく「マスタリングイーサリアム」を購入&読了したので感想。

何が書かれていて何が書かれていないのか

この本の主なトピックはイーサリアムを支える要素技術+EVMとなっている。イーサリアムは仮想通貨であると同時に、チューニング完全で単一の状態を持つ仮想マシンでもあります。この本の前半では暗号や秘密鍵等のベーシックな技術を見ていきつつ、後半ではSolidityと呼ばれる言語を利用してイーサリアム仮想マシン(EVM)で動作するプログラム(スマートコントラクト)の事例紹介が中心となっている。

逆に言うとブロックチェーン自体の技術(PoW等)の記述は殆ど無いので、その辺が知りたい人には向かないかもしれない。焦点が完全にEVM上で動作するスマートコントラクトに合っているのでトークンやNFT、スマートコントラクトのセキュリティに興味がある人にはおすすめできる内容です。

感想

知識0から読み始めたのでイーサリウムの仮想マシンとしての側面を良く知れたのは良かった。シングルスレッドかつグローバルで一つの状態を持つマシン上で誰もが任意のコードを実行できるのは凄いことでは?と終始小学生並みの感想を抱きながら読んでました。低レイヤをもっと詳しければEVMオペコードの周りとかももっと楽しんで読めるんだろうなーという感じ。

途中大事な章を読み飛ばしてスマートコントラクトって何?契約?みたいな感じで頭上に?が浮かびまくっていましたが、スマートコントラクト=イミュータブルなコンピュータプログラムというのはかなりミスリーディングな名前な気が・・・。EVMだったりSolidity関連は日本語の殆ど無いので、全体像をざっくり掴めるのはこの本の良い点だと思います。

Solidityのバージョン

イーサリウムの開発カルチャーには迅速なイノベーション、急速な進化、そして後方互換性をいくらか犠牲にしてでも将来を見越した改善を実施する意欲を特徴としています

1.10章にこのような記載があるが、本書のSolidityバージョン(0.4台)と現行のバージョン(0.8台)で乖離が大きすぎて本に乗っているコードを写経するだけだと動かないのがネック。0.6.0よりバグ防止のためfallback関数を明示的に指定しないとコンパイルが通らなくなっていたり、微妙に修正しないといけない点が多くて困る。

スマートコントラクトはイミュータブルで一度登録してしまうと変更ができないのでバグが発生しにくいように次から次に文法の修正が入っている様子。デプロイした後にバグ見つかったらどうするんだろ?

この後

折角Solidity勉強したのでEIP721読んでNFTのスマートコントラクト立ち上げてみようと思う。まずはFauset動かせるようにがんばります・・・