
Web2の開発者がWeb3に入るには?
TechFlow厳選深潮セレクト

Web2の開発者がWeb3に入るには?
ブロックチェーンの基礎を理解し、その活用を探求した後、自分の興味に応じて特定の分野で専門性を高める。
執筆:Tiny 熊
AIとWeb3は、現在非常に大きな可能性を秘めている数少ない分野だと考えられている。特にWeb3は比較的高水準の給与が得られ、リモート勤務のポジションも多く、世界中どこからでも働けるため、多くのWeb2開発者がWeb3へ移行しようとしている。
Web3開発を学ぶ上で最も難しいのは、おそらく何から手をつければいいのか分からないことだろう。Web3は10年以上の発展を経て、その内容がますます広がり、多くの要素が相互に依存している。そのため、Web3に入門したい開発者にとっては「どこから学べばいいのか」「何を学べばいいのか」という点で混乱しやすい状況にある。
私は2017年にWeb3の世界に入り、スマートコントラクトの開発や技術啓蒙活動を行いながら、ブロックチェーン技術の進化を追い続けてきた。この経験をもとに、Web3全体に対する理解を整理して、以下のような学習ロードマップを作成した。皆さんが学び始める際の道しるべになれば幸いだ。
本記事はこの学習ロードマップの解説となる。また、ロードマップ自体はインタラクティブ式[1]となっており、不明な用語があれば、各用語右上の小さな矢印をクリックすることで、右側に詳細な説明が表示される。
この学習ロードマップでは、Web3の学習をいくつかの段階に分けている:まずブロックチェーンの基礎を理解し、次に実際にブロックチェーンを使ってみることで体験を積み、その後自分の興味に基づいて特定の分野に特化していく。
Web3開発を始めたばかりの人は、方向性を選ぶ際に欲張らず、ある程度取捨選択を行い、一つのポイントに集中して深く掘り下げていくべきだ。そうすることで迷子になりにくく、自分の成長も実感しやすくなる。
ブロックチェーンの基礎を理解する
ブロックチェーンの裏にある技術は、依然として従来のコンピュータ技術の延長線上にある。Web3での開発を行うには、データベース、データ構造、コンピュータネットワーク、プログラミング言語といった基本的な知識は引き続き必要不可欠である。
しかし、ブロックチェーンの非中央集権的な運営モデルは、最初は理解しづらいかもしれない。というのも、これは単なる技術的問題ではなく、社会的な思想とも結びついているからだ。
純粋に技術的な視点だけで考えると、「なぜBTCの総発行量が2100万枚に制限されているのか?」という疑問が生じる。「プログラムならいつでも変更できるはずじゃないか」と思うだろう。
だが、この問いに答えられるようになれば、ブロックチェーンの基礎(つまり「ブロックチェーンとは何か?どうやって動いているのか?」)はほぼ理解できたと言える。
ブロックチェーンの用途や価値、そしてどのようなシナリオでブロックチェーン技術が必要になるのかは、時間とともに徐々に理解が深まっていくプロセスである。
現時点でも、ブロックチェーン技術にはまだ多くの課題があるが、全体としては、個人の主権を強化し、集団での協働をより透明にする技術といえる。
私は、Web2の長所とWeb3の短所を常に比べてしまう人が多くいるのを見てきた。しかし、新しい技術を学ぶ際には、できるだけオープンマインドを持ち続けるべきだ。そうすることで、より多くのことを吸収できる。
ブロックチェーンがもたらす変化は、AIほど直接的ではないため、その価値を過小評価しがちである。
ブロックチェーンの実践的探索
ブロックチェーンの基礎的理解を得た後は、実際にリアルなブロックチェーンアプリケーションを体験してみよう。例えば、ウォレット[2]ソフトウェアを使って自身のアカウントを作成したり、可能であれば少額の暗号資産を保有してみるのもよい(ハードルはあるが、テストネットのトークンでも体験は可能。ただし、実物資産を持つ体験とは異なる)。
トランザクションの署名方法、ブロックチェーンエクスプローラーでの確認、トランザクションがパッケージされ、ブロックに取り込まれるプロセスなどを実際に感じてみよう。
使用中に、異なるブロックチェーン間の取引速度の違いを感じることで、さまざまなコンセンサスメカニズムについて学び、それぞれが「非中央集権性」「安全性」「効率性」の間でどのようにトレードオフしているかを理解できるだろう。
興味があれば、DEXでの資産交換、NFTの取引、DAOによるガバナンスなども体験してみよう。
Web2と比較した場合、Web3アプリケーションの主な違いは以下の通りだ。第一に、「あなたの資産はあなた自身にしか属さない」こと(あらゆる情報は一種の資産と見なせる)。資産を動かすには、自分だけが持つ秘密鍵での署名が必要であり、誰にも奪われることはない。第二に、Web3アプリケーションは通常オープンソースであり、すべての参加者が平等に、透明なルールのもとで関与できる。
もしWeb3の価値と意義に共感できるなら、ぜひ建設側にも参加してみてほしい。
方向性の選択
ここからは主に技術的観点からの話になる(Web3プロジェクトにはコミュニティ運営なども重要な領域だが、ここでは扱わない)。
理論的または学術的なバックグラウンドがあり、新しい事象の探求に興味がある場合は、研究寄りの方向性を選ぶのもよい。例えば、暗号学、コンセンサスアルゴリズム、スケーリングソリューション、トークノミクス(Tokenomics)などを研究する場合、多くの英語論文を読む必要がある。
開発の方向性は大きく二つに分けられる:「チェーン開発」と「アプリケーション開発」である。
チェーン開発
チェーン開発は、開発者に求められるスキルレベルが高く、給与も高い傾向にある。ただし、需要はアプリケーション開発よりも少ない。時間が経つにつれて、アプリケーション層の拡大が進み、アプリ開発の需要は増えていく一方で、チェーン開発は徐々に安定化していくと考えられる。新規チェーンの開発機会はそれほど多くなく、チェーン開発は底層技術に深く関わりたい人向けだ。
チェーン開発の選択肢としては、新規チェーンの開発、あるいはL2・L3のスケーリングチェーンの開発がある。
新規チェーンの開発(通常Layer1と呼ばれる)では、以下の技術を理解しておく必要がある:
-
Geth:Go言語で実装されたイーサリアムノードソフトウェア。EVM互換チェーンの開発やカスタマイズに広く使われている。
-
Reth:Rust言語によるイーサリアムの実装。高性能なイーサリアムクライアントとして注目されている。
-
Substrate:Rust言語で実装されたカスタムブロックチェーン構築フレームワーク。Parityが開発し、Polkadotエコシステムで広く採用されているほか、独立したチェーンとしても利用されている。
-
Cosmos SDK:Go言語で開発されたモジュール型ブロックチェーン開発フレームワーク。Cosmosネットワーク互換の新規チェーンは、基本的にCosmos SDKを基に開発されている。
-
その他、Move仮想マシンやSolana VMを使ったチェーンもある。
Layer2スケーリングまたはLayer3アプリケーションチェーン
メインチェーン(特にイーサリアムやビットコイン)の取引処理能力には限界があり、大規模なユーザー需要を満たせない。そこでLayer2では、一部の取引をメインチェーン外(Layer2)で実行し、Layer1はその結果の検証のみを担当する。Layer3は特定のユースケースに特化したカスタムチェーンである。チェーン開発者は以下の内容を把握すべきである:
-
OP Stack:Optimismが開発したLayer2フレームワーク。イーサリアムのLayer2チェーンで最も広く使われている。
-
Polygon CDK:Polygonが提供するチェーン開発キット。ValidiumやzkRollupなど、柔軟な拡張をサポートしている。
-
StarkEx:StarkWareが開発したZK-STARK技術を利用したLayer2スケーリングソリューション。同様のZK方式には、Matter Labs(zkSyncの開発チーム)のZK Stackもある。
-
Arbitrum Stylus(Arbitrum Nitroの進化版)およびArbitrum Orbit:Arbitrumチームが開発したLayer2およびLayer3スケーリングソリューション。Stylusはマルチ言語対応の実行レイヤー拡張を提供する。
チェーン開発を目指す場合、「モジュラーブロックチェーン」の概念も押さえておきたい。これは、従来一体型だったブロックチェーンを複数のレイヤーに分割し、それぞれが異なる役割を担う考え方である。4つのレイヤーとは:
-
実行層:スマートコントラクトの実行を担当。イーサリアムのEVMに相当する。Layer2は実質的にこの実行層の役割を果たしている。
-
決済層:取引の最終決済を行い、資産の安全性と取引の正当性を保証する。
-
コンセンサス層:ノード間で取引の合意を得る仕組みを提供する。
-
データ可用性(DA)層:チェーン上のデータが正しく保存・アクセス可能であることを保証する。Layer2の取引正当性検証に使われる。代表的なDAソリューションには、EIP-4844のBlob、AnyTrust、EigenDA、Avail DA、Celestia、NearDAなどがある。
最近のトレンドとして、ブロックチェーンにゼロ知識証明(ZKP)機能を統合する動きが進んでいる。たとえば、ZKPを使って取引実行の正当性を証明する(zkRollupはLayer2で使われるが、Layer1でも適用可能)、ストレージ状態の証明を行い、軽量クライアントやステートレスクライアントを実現してより良い非中央集権性を達成する。また、ZKPを利用してプライバシー保護型の取引を実現するチェーンもある。
チェーン開発を志す初心者へのアドバイスとして、Go言語を学び、GethとOp Stackを深く調査することをおすすめする。他のフレームワークは、必要に応じて興味に応じて学べばよい。
上記のLayer2スケーリングは主にイーサリアム視点の話だが、最近ではビットコインのスケーリングソリューションも多くのチームが開発中で、注目度が高い。大まかに分けて(ステート)チャネル型とサイドチェーン型がある。前者はビットコインのセキュリティを継承するため高いが、プログラミング拡張性に乏しい。代表例はライトニングネットワーク、およびRGB、RGB++のクライアントバリデーションとの組み合わせ。後者はセキュリティの継承が弱く(例:MPCによるクロスチェーン)、プログラミング拡張性は高い。両者を組み合わせたハイブリッド型の提案もある。
現時点では、ビットコインのスケーリングは業界全体でまだ模索段階にある。ビットコイン信奉者の方は、ぜひ注目してほしい。
アプリケーション開発
アプリケーション開発を目指す場合、チェーンの底層実装まで深く理解する必要はないが、各チェーンの特性(性能、非中央集権性の程度など)は把握しておくべきだ。
たとえば、SNSやゲーム系アプリを開発する場合は、チェーンの高いパフォーマンスが求められる。一方、高価値のDeFiアプリを開発する場合は、非中央集権性の高さが重視される。
また、底層チェーンがサポートする開発言語、エコシステムの活性度、アプリ支援体制なども考慮すべきポイントだ。これらはアプリ開発の工数やユーザー獲得コストに直結する。
就職を考える場合も同様で、エコシステムが活発であればあるほど、仕事のチャンスは多いが、競争も激しくなる。
アプリ成功の鍵となるのは、適切な底層チェーンの選定である。多くのアプリは1つまたは1系統のチェーンに基づいて開発されるが、インフラ系アプリ(ウォレット、クロスチェーンブリッジ、オラクルなど)は多くのチェーンをサポートする必要がある。
自分に合ったエコシステムを選ぶ
各エコシステムを簡単に比較し、参考にしてほしい:
ビットコイン:最大の合意形成と資金規模を持つが、スクリプト機能が限定的で、オンチェーンで実現可能なアプリは少ない。多くのアプリはインデクサーまたはクライアントバリデーションと組み合わせて実装される。エコシステムは未成熟だが、発展の観点からは大きなチャンスがある。
EVMエコシステム:イーサリアムおよび多数のEVM互換チェーン(Tronなども含む)を含む。一部のBTC Layer2もEVM互換である。これらのチェーンは同じプログラミングモデルを使い、Solidityでスマートコントラクトを開発する。アプリエコシステムが豊かで、開発ツールやリソースも充実している。
Solana:過去1年で急速に成長し、エコシステム規模は第2位だが、EVMエコシステムとの差は依然大きい。Solanaの強みは高いスループットと高速な取引処理。コントラクトはRustで開発され、入門ハードルは高い。
TON:大量のユーザーを持つTelegramを背景に持ち、最近の注目度が高い。TONも高性能を特徴とする。スマートコントラクトは主にFunc言語で記述されるが、エコシステムの歴史が浅く、ツールやライブラリが不十分で、開発リソースも少ない。
その他のブロックチェーンエコシステムとしては、Moveエコ(Sui / Aptos)、Starknet、ICP、AO/ARなどがあり、それぞれ独自の強みを持つが、現時点での注目度は低い。
以上は現時点のエコシステム状況であり、それぞれの発展は動的である。また、文化面でも特徴があるため、自分の好みに合わせて選ぶのがよい。
初心者には、資料が豊富でエコシステムも安定しているEVMエコシステムからのスタートをおすすめする。
スマートコントラクト開発
Web3アプリ開発と従来のインターネットアプリ開発の大きな違いは、多くのバックエンドロジックがスマートコントラクトとしてオンチェーンで実行されることにある(一部のバックエンド処理はフロントエンドに移行することもある。次のセクション参照)。これにより、中央集権的なサーバーへの依存が排除される。
一方で、スマートコントラクト開発を伴わないWeb3アプリもある(ウォレット、取引所、オンチェーンデータサービスなど)。このようなアプリを開発する際は、コントラクトとどう連携するかを理解する必要がある(次のセクション参照)。
EVMエコシステムにおけるスマートコントラクト開発で最も一般的な言語はSolidityである。必ず学ぶべきだ。Yulはコントラクトのアセンブリ言語であり、余力があれば学んでおくとよい。
Solana、TON、Moveなどのエコシステムではそれぞれ独自の開発言語を使用しており、別の機会に紹介する予定である。
Solidity開発のIDEとしては、初心者にはオンラインのRemix IDEをおすすめする。実際のプロジェクト開発では、VS Code + 開発フレームワークの組み合わせが一般的。開発フレームワークはコントラクトのコンパイル、デプロイ、テストを支援する。代表的なのはFoundry(テストが容易)と、それに次ぐHardhatである。
スマートコントラクトを開発する際は、ERC20、ERC2612、ERC721、ERC1155などの一般的なToken/NFT標準を理解し、使いこなせるようにするべきだ。既存の優れたコード(Wheel)を使うことも重要だ。OpenZeppelinは代表的なスマートコントラクトライブラリで、各種標準を実装しており、これを活用することで開発工数を削減し、セキュリティを向上させることができる。
コントラクト開発では、標準に従うことを心がけよう。これはWeb2開発との大きな違いである。Web2ではアプリは主に自分で呼び出すものだが、スマートコントラクトは誰にでも公開され、他人が呼び出すことが前提である。他人が呼び出すほどアプリの価値が高まるため、標準に従うことで他者があなたのプログラムを容易に利用できるようになる。
スマートコントラクト開発(上級編)
Solidityの入門は簡単だが、優れたコントラクトエンジニアになるには多くのスキル(練習)が必要だ。たとえば、Gas費を抑えるための最適化テクニック、Create2によるコントラクトアドレスの作成と予測、低レベルのCall呼び出しとDelegateCallのメカニズムの理解、コントラクトのアップグレード方法、オフライン署名によるユーザー手数料の削減、Merkle木によるオンチェーンストレージコストの削減、よくあるセキュリティ脆弱性の知識、DAOガバナンスの仕組みと実装、アカウント抽象化の理解、オラクルを通じた外部データ取得方法などである。
また、DeFi(分散型金融)は現時点でのWeb3最大の応用分野である。一般的な金融概念を理解し、主要なDeFiプロトコルの動作を把握し、フラッシュローンの仕組みを理解することで、より多くの機会を得られるだろう。
Web3アプリのフロントエンドとバックエンド
スマートコントラクトはバックエンドの役割を果たすが、使いやすいWeb3アプリにはフロントエンドも不可欠である。Web3アプリではユーザー自身が資産を管理するため、フロントエンドはウォレットと連携してインタラクションを行う必要がある。
Web3アプリのバックエンドは、主にキャッシュ層として機能する。オンチェーンデータはデータベースのような構造化データではなく、クエリに不向きなため、バックエンドをキャッシュ層として追加することで、ユーザーエクスペリエンスを最適化できる。
現在では、専門のオンチェーンデータサービス企業も多く存在する。ブロックチェーン上には膨大なオープンデータがあり、これはまさにデータの宝庫である。ビッグデータに興味がある人にとっても、非常に魅力的な分野だ。
Web3フロントエンド開発では、MetaMask、WalletConnect、Web3Modalなどのウォレット接続方法を理解する必要がある。フロントエンドとチェーンの通信は、通常Viem.sh、Ethers.js、Web3.jsなどのライブラリを通じて行われる。これらは実際にはチェーンノードが提供するRPCサービスのラッパーである。呼び出し時には、フロントエンドがRPCノードのURLでどのチェーンと通信するかを指定し、ABIとコントラクトアドレスで具体的な関数を特定する。
Web3バックエンドは主にデータ処理を担当する。たとえば、ブロックをスキャンし、特定のコントラクトのイベントデータを取得するなど。チェーンとの通信方法はフロントエンドと類似しているが、バックエンドの言語に応じて異なるラッパーライブラリを使用する。よく使われるのは、Goバックエンドのgo-ethereum、Node.jsバックエンドのViem.shやEthers.jsなどである。これらのライブラリはぜひ慣れておこう。
TechFlow公式コミュニティへようこそ
Telegram購読グループ:https://t.me/TechFlowDaily
Twitter公式アカウント:https://x.com/TechFlowPost
Twitter英語アカウント:https://x.com/BlockFlow_News












