全3266文字
PR

 日常的にプログラミングをしているなら、使えるプログラミング言語が1種類しかない人はあまりいないだろう。特定の言語をマスターしていれば、他の言語にも応用が利くことは多い。

 私もたいていのメジャーな言語は、プログラムを読み書きしたことがある。入門記事のサンプルコードを書いたり、プロのソフトウエア開発者が書いた原稿を編集したりする機会が多いからだ。

 そんな私が今、気になっているのが「Solidity(ソリディティー)」という言語だ。最近、次世代のインターネット技術である「Web3」が大きな注目を集めている。Web3では、「イーサリアム」などのブロックチェーンの上で動作するプログラムでサービスを実装する。このプログラムを「スマートコントラクト」と呼び、スマートコントラクト専用の記述言語がSolidityだ。

 これまでSolidityはほとんど触ったことがなかったが、日経クロステックでWeb3の特集を執筆したのをきっかけに学習を始めることにした。ブロックチェーン技術を使うWeb3のサービスをどのように実装するかを知っていれば、今後Web3に関連した記事を執筆する際の参考になるのではないかと考えたのだ。

関連記事: 「Web3」の正体に迫る10の疑問

 手始めに、インターネットで無料公開されている「CryptoZombies(クリプトゾンビ)」というSolidityのチュートリアルをやってみることにした。ゾンビを題材にしたブロックチェーンゲームを作成するものだ。この種のチュートリアルは英語が多いが、このチュートリアルは日本語化されている。

 それぞれの手順では、コードが一部欠けたプログラムが示される。説明文をヒントに欠けた部分のコードを埋めていき、正解であれば次に進める。仕事の合間にやっていたが、やり出すと面白くなり、結局2~3日で終えてしまった。Solidityの基本的な記法はJavaScriptに近いこともあり、プログラミングに慣れた人であれば、1日もあればできるだろう。

 比較的短いチュートリアルにもかかわらず、内容は盛りだくさん。アプリケーションの基本ブロックである「コントラクト」の書き方から始まり、構造体や関数といった基本的な文法やアクセス制御などを学んでいく。

 後半では、外部のスマートコントラクトが持つデータの利用、ERC721準拠のいわゆる「NFT(Non-Fungible Token、非代替性トークン)」の発行、WebのフロントエンドからスマートコントラクトにアクセスするためのJavaScriptライブラリー「Web3.js」の使い方といった、実用的な知識を学べるようになっている。