web3.jsとは?初心者向けガイド:ブロックチェーンとウェブの新しいつながり共起語・同意語・対義語も併せて解説!

  • このエントリーをはてなブックマークに追加
web3.jsとは?初心者向けガイド:ブロックチェーンとウェブの新しいつながり共起語・同意語・対義語も併せて解説!
この記事を書いた人

高岡智則

年齢:33歳 性別:男性 職業:Webディレクター(兼ライティング・SNS運用担当) 居住地:東京都杉並区・永福町の1LDKマンション 出身地:神奈川県川崎市 身長:176cm 体系:細身〜普通(最近ちょっとお腹が気になる) 血液型:A型 誕生日:1992年11月20日 最終学歴:明治大学・情報コミュニケーション学部卒 通勤:京王井の頭線で渋谷まで(通勤20分) 家族構成:一人暮らし、実家には両親と2歳下の妹 恋愛事情:独身。彼女は2年いない(本人は「忙しいだけ」と言い張る)


web3.jsとは?

web3.jsは、JavaScriptのライブラリで、ブロックチェーンとウェブアプリをつなぐ橋の役割を果たします。主に Ethereum の世界で使われ、ウェブブラウザや Node.js 上で動くアプリから、ブロックチェーンへアクセスするための機能を提供します。

なぜweb3.jsが必要なのか

ブロックチェーンは分散された台帳で、情報の参照や操作には特別な手順が必要です。web3.jsは、それらの手順を開発者が扱いやすい形にまとめ、読み取り書き込みの両方を簡単に行えるようにします。例えば残高の取得、スマートコントラクトの関数の呼び出し、トランザクションの送信などが、このライブラリを通じて行えます。

主な機能と使い方の流れ

web3.jsを使うには、まずブラウザでMetaMaskのようなウォレットを接続する必要があります。次にweb3.jsのインスタンスを作り、接続先のノードやネットワークを指定します。あとは、アカウント情報を取得したり、スマートコントラクトと対話したりできます。読み取りは通常ガス代がかからないことが多い場合がありますが、書き込みはネットワーク手数料(ガス代)がかかります。開発者はこのライブラリを使うことで、低レベルのJSON-RPC呼び出しを自分で作る手間を省けます。

導入の簡単な手順

1. ウォレットをブラウザに接続します。2. web3.jsのインスタンスを作成します。3. 読み取りたいデータを取得したり、コントラクトとやり取りします。4. 書き込みを行う場合は署名とガス代を確認します。

よくある用語の整理

ブロックチェーン、ノード、ウォレット、スマートコントラクト、トランザクションといった用語を押さえておくと、学習が進みやすくなります。

表:web3.jsの特徴と使い方

<th>項目
説明
対象Ethereumを中心とした分散アプリケーションの開発
基本資源アカウント、ノード、コントラクト、トランザクション
使い方の流れウォレット接続 → web3インスタンス作成 → 読み取り/書き込み
注意点ガス代、セキュリティ、ノードの信頼性

web3.jsの同意語

web3.js
Ethereumと対話するためのJavaScriptライブラリWeb3.jsの名称そのもの。DApps開発において、ブロックチェーンとWebアプリをつなぐAPI群を提供します。
Web3.jsライブラリ
Web3.jsというライブラリを指す別表現。JavaScriptからEthereumノードへアクセスする機能をまとめたライブラリの意味。
Web3 JavaScriptライブラリ
Web3.jsを指す別表現。JavaScriptでWeb3関連機能を使えるライブラリのこと。
Ethereum用Web3ライブラリ
Ethereumと対話する目的で使うWeb3ライブラリの総称。Web3.jsを代表例とします。
Ethereum用Web3.js
EthereumとやりとりするためのWeb3.jsの呼び方の一つ。
Web3対応JavaScriptライブラリ
Web3機能に対応したJavaScriptライブラリのこと。Web3.jsがその代表例。
Web3 APIライブラリ
Web3に関連するAPIを提供するJavaScriptライブラリのこと。Web3.jsがこのカテゴリに含まれます。
ブロックチェーンJavaScriptライブラリ
ブロックチェーンとやり取りできるJavaScriptライブラリの総称の中で、Web3.jsを指す場合にも使われる表現。
Web3クライアントライブラリ
Web3機能をクライアントサイドで提供するライブラリという意味。Web3.jsのことを指す場合にも使われます。
Web3.js API
Web3.jsが提供するAPI群を指す表現。開発者向けの文脈で使われます。

web3.jsの対義語・反対語

Web2.js
Web3.jsの対義語として、Web2.0の中心集権的な考え方を前提とするライブラリ。サーバー中心の設計で、中央機関や信頼できる中間者に依存する運用を想定します。
中央集権.js
分散型の理念に対抗する、データや権限が一箇所に集中するアーキテクチャを前提とするライブラリ。
中型.js
データ・機能が特定の一点に集中して管理される設計を支援するライブラリ。分散性より中央管理を重視します。
サーバー依存.js
クライアント側よりサーバー側の処理を中心に置く設計のライブラリ。オフライン対応や分散性は限定的です。
信頼依存.js
第三者の信頼を前提に動作する設計のライブラリ。ブロックチェーンの分散性・検証の利点を活かしません。
Web1.js
Web1.0の静的・読み取り中心のウェブ体験を前提とするライブラリ。動的・分散的な要素は薄い設計です。
非分散.js
データや処理が分散されず、中央管理された設計を支援するライブラリ。
モノリシック.js
一体型で大規模な構成を前提とするライブラリ。モジュール化・分散性が低い設計を想定します。
クライアント中心.js
フロントエンドのクライアントを中心に据えた設計を支援するライブラリ。バックエンドの分散性は低い傾向です。
集中管理API.js
APIを中央の管理下で提供する前提のライブラリ。データは一元管理され、分散性は限定的です。
中央制御.js
中央の制御機構を通じて動く設計を支援するライブラリ。分散技術の活用は想定されません。

web3.jsの共起語

Ethereum
分散型ブロックチェーンのプラットフォーム。スマートコントラクトを実行する基盤として広く使われています。
DApp
分散型アプリケーションの略。中央サーバーを持たず、ブロックチェーン上のスマートコントラクトと相互作用して動作します。
ブロックチェーン
改ざんが難しい分散台帳。取引履歴を多くのノードで共有・検証します。
スマートコントラクト
条件を満たすと自動で実行されるプログラム。ブロックチェーン上にデプロイします。
Solidity
スマートコントラクトを主に書く高級言語。C系の構文をベースにした設計になっています。
ABI
スマートコントラクトの関数仕様を表すインタフェース。web3.jsが契約とやり取りする際に使います。
JSON-RPC
ノードと通信する標準的なプロトコル。リクエストとレスポンスはJSON形式でやり取りします。
RPC URL
ノードへ接続するためのURL。InfuraやAlchemyなどのエンドポイントを指します。
provider
web3.jsがノードとやり取りする入口。ネットワーク情報や接続設定を提供します。
MetaMask
ブラウザ拡張型のウォレット。アカウント管理と取引署名を行います。
Infura
クラウド上のEthereumノードへアクセスできるサービス。自前のノードを立てずに利用できます。
gas
取引や計算を実行するための計算資源の単位。手数料の基本要素です。
gasPrice
1ガスあたりの価格。市場の需要と供給で変動します。
gasLimit
1回の操作で使える最大ガス量。上限を超えると実行は中止されます。
トランザクション
ブロックチェーン上に記録される操作の提案。送金や契約の呼び出しが含まれます。
アカウント
ブロックチェーン上の識別子。通常は一意のアドレスで表されます。
アドレス
チェーン上の口座識別子。0xから始まる文字列で表示されます。
バランス
アカウントが現在保有しているETHの量。
nonce
同じアカウントの未処理取引の順番を示す番号。正しい順序で処理するのに必要です。
chainId
ネットワークを識別する番号。メインネットかテストネットかを区別します。
mainnet
Ethereumの本番ネットワーク。実際の資産や取引が行われます。
testnet
開発・検証用のネットワーク。実資産は使いません。
ERC-20
トークンの標準仕様。互換性が確保され、他のアプリとやり取りしやすくなります。
ERC-721
NFTの標準仕様。各トークンが一意であることを規定します。
NFT
非代替性トークン。デジタル資産の所有権を表すトークンです。
getBalance
指定アカウントのETH残高を取得するweb3.jsの関数。
sendTransaction
ETHを送るための関数。署名と送信を行います。
deploy
スマートコントラクトをブロックチェーン上にデプロイする作業。
call
契約の読み取り呼び出し。状態を変更しないデータの取得に使います。
estimateGas
実行に必要なガス量の概算を返す機能。
encodeABI
契約呼び出しデータをABI形式にエンコードします。
contract
スマートコントラクトを表すオブジェクト。アドレスとABIを結びつけて操作します。
methods
契約の関数を呼び出す際に使う集合。例: contract.methods.transfer(...).call()
events
スマートコントラクトが発行するイベントのログ。外部アプリに通知を送るのに使います。
private key
ウォレットの秘密鍵。署名に使う重要な情報なので厳重に管理します。
public key
公開鍵。アドレスの由来となります。
signing
取引やメッセージに秘密鍵で署名すること。
ethers.js
web3.jsの代替となるJavaScriptライブラリ。Ethereumと対話できます。
Web3.js
JavaScriptでEthereumと対話するためのライブラリ。契約呼び出しやウォレット連携を提供します。
RPC呼び出し
ノードへリクエストを送ってデータを取得・操作するアクションのことです。

web3.jsの関連用語

web3.js
Ethereum ブロックチェーンと対話するための JavaScript ライブラリ。ノードへ RPC 指示を送ったり、スマートコントラクトを操作したりするための機能を提供します。
Ethereum
分散型のブロックチェーンプラットフォーム。スマートコントラクトを実行し、Ether が取引手数料と価値の単位として使われます。
JSON-RPC
ノードと通信するための標準的な API 形式。web3.js はこのプロトコルを使ってノードに命令を送ります。
Provider
ノードとの接続経路。HTTP、WebSocket、IPC などの形態があります。
HttpProvider
HTTP 経由でノードへ RPC を送るプロバイダ。
WebsocketProvider
WebSocket 経由でノードへ RPC を送るプロバイダ。イベント通知に適しています。
IpcProvider
同一マシン上のノードと高速に通信するプロバイダ。
web3.eth
Ethereum のアカウント操作やブロックチェーン情報取得、送信などを行う主要オブジェクト。
web3.eth.Contract
スマートコントラクトを対象にメソッドを呼び出したりイベントを取得したりするための橋渡し。
ABI
Contract の関数やイベントの仕様を記したデータ構造。エンコードとデコードの基盤になります。
ABI encoding
関数呼び出しデータや戻り値データをバイト列へ変換する過程。
Solidity
Ethereum 上のスマートコントラクトをくための主要な高級言語。
Contract deployment
新しいスマートコントラクトをチェーン上に配置すること。
ERC-20
fungible token の標準。残高管理、送金、承認などの共通機能を規定します。
ERC-721
NFT の標準。別トークンごとに所有者を管理し、転送やメタデータ取得をサポートします。
ERC-1155
一つのコントラクトで複数のトークンを扱える標準。 fungible と non-fungible の混在が可能です。
Token
ロックチェーン上のデジタル資産の総称。
ERC-20 functions
balanceOf、transfer、approve、allowance など、 ERC-20 トークン操作の基本関数群。
MetaMask
ブラウザ拡張ウォレット。DApp がユーザーのアドレスと署名を使えるようにします。
Wallet
秘密鍵と公開鍵を保管し、アドレスと資産を管理する仕組み。
Private key
署名を作るための秘密鍵。厳重に管理する必要があります。
Public key / Address
公開鍵から導出されるアドレス。送金の宛先として使います。
Signature
データに対する署名。取引の承認を証明します。
Transaction
ブロックチェーン上の操作を実行するための単位。送金やコントラクト呼び出しを表します。
eth_call
状態を変更しない読み取り専用のコントラクト関数呼び出し。
eth_sendTransaction
状態を変更するトランザクションをノードへ送信します。
send / call
call は読み取り、send は書き込みの操作を指します。web3.js では methods.*().call() や .send() が使われます。
estimateGas
トランザクション実行に必要なガス量を推定します。
Gas / gasPrice / gasLimit
ガスは処理コストの単位。gasPrice はガス1単位あたりの価格、gasLimit は許容最大ガス量です。
Nonce
同一アカウントから送るトランザクションの連番。衝突を避けるために使います。
Balance
アドレスの ETH 残高。
Transaction receipt
トランザクションの結果情報。成功/失敗、使用ガス量、イベントログなどを含みます。
Event logs / filters
コントラクトのイベントを追跡するデータ。フィルタを使って関心のあるイベントだけ取得します。
Subscriptions
WebSocket を使って新しいブロックやイベントをリアルタイムで受信する仕組み。
Infura
ノード運用をせずに Ethereum RPC を提供するクラウドサービス
Alchemy
Infura に類似したノード提供サービス
Goerli
Ethereum の公開テストネットの一つ。テスト用の資産を使って開発できます。
Sepolia
Goerli に続く Ethereum テストネット。
Mainnet
Ethereum の本番ネットワーク。実資産が動く環境です。
Polygon
Ethereum 互換のレイヤー2/別チェーン。web3.js から接続して利用できます。
DApp
分散型アプリケーション。スマートコントラクトとウェブ UI を組み合わせたアプリ。
DeFi
分散型金融。貸借り、取引、ステーキングなどをスマートコントラクトで提供。
NFT
非代替性トークン。デジタル資産の一意性をブロックチェーン上で保証します。
Ethers.js
web3.js の主要な競合ライブラリ。Ethereum との対話を簡易化します。
Web3.js v1.x vs v0.x
v1.x は非同期/Promise ベースで使いやすくなった大幅な改良版。

web3.jsのおすすめ参考サイト


インターネット・コンピュータの人気記事

awstatsとは?初心者でもわかる使い方と基本解説共起語・同意語・対義語も併せて解説!
15475viws
bing・とは?初心者のための基本ガイド:検索エンジンの仕組みと使い方共起語・同意語・対義語も併せて解説!
2482viws
着信転送とは?初心者向けガイドで分かる使い方と設定のコツ共起語・同意語・対義語も併せて解説!
1112viws
差し込み印刷・とは?初心者でもすぐわかる使い方と仕組みガイド共起語・同意語・対義語も併せて解説!
1091viws
com端子・とは?初心者にも分かる基礎ガイド|シリアルポートの使い方と歴史を解説共起語・同意語・対義語も併せて解説!
984viws
充電アダプターとは何かを徹底解説|初心者でも分かる基本と選び方のコツ共起語・同意語・対義語も併せて解説!
936viws
7zファイル・とは?初心者でもわかる使い方と特徴を解説共起語・同意語・対義語も併せて解説!
894viws
全角文字とは?初心者向け解説|全角と半角の違いをやさしく学ぶ共起語・同意語・対義語も併せて解説!
885viws
リマインドメールとは?初心者にもわかる基本ガイドと使い方のコツ共起語・同意語・対義語も併せて解説!
825viws
pinロックとは?初心者が知っておくべき基本と使い方ガイド共起語・同意語・対義語も併せて解説!
823viws
none とは?初心者にもやさしく解説する意味と使い方ガイド共起語・同意語・対義語も併せて解説!
753viws
16進数カラーコード・とは?初心者でもつまずかない基礎と使い方ガイド共起語・同意語・対義語も併せて解説!
741viws
ローカルポート・とは?初心者にも分かる基本と使い方ガイド共起語・同意語・対義語も併せて解説!
647viws
xlsmとは?初心者でも分かるExcelのマクロ付きファイルの基本共起語・同意語・対義語も併せて解説!
646viws
asp・とは?初心者向けに徹底解説する基本と使い方ガイド共起語・同意語・対義語も併せて解説!
642viws
countifとは?初心者でもすぐ使える基本と応用ガイド共起語・同意語・対義語も併せて解説!
574viws
ワンタイムコード・とは?初心者でも分かる基本と使い方ガイド共起語・同意語・対義語も併せて解説!
561viws
sha256とは?初心者が知るべき暗号ハッシュの基礎と使い道共起語・同意語・対義語も併せて解説!
541viws
csvダウンロードとは?初心者が今すぐ使える基本ガイド共起語・同意語・対義語も併せて解説!
536viws
googleドキュメントとは?初心者が今日から使いこなす基本ガイド共起語・同意語・対義語も併せて解説!
496viws

新着記事

インターネット・コンピュータの関連記事