おはようございます。
web3リサーチャーのmitsuiです。
今日はweb3の基礎の基礎レポートということで「ウォレット」について深堀します。
基礎と言いつつ、専門用語が多く出てきて少し難しいかもしれませんが、適度に読み飛ばしていただき、なんとなくでも伝われば嬉しいです!
1. はじめに
この記事では、web3を利用する上で必須となる「ウォレット」の基礎知識から、実際の導入・基本操作方法までを詳しく解説します。
web3が普及するにつれて、ブロックチェーン上で資産を管理し、トランザクションを実行するためにウォレットは欠かせないツールとなりました。しかし、多くの初心者にとっては「ウォレットとは何か?」「どのように使えばよいのか?」といった疑問があり、セキュリティ面でも不安を抱えやすいものです。
前編では、以下の内容を中心に解説します。
ウォレットの定義と役割
公開鍵暗号とアドレス生成の仕組み
ウォレットの種類と特徴
ウォレットの安全な管理方法(基礎編)
これらをしっかり理解することで、「自分の資産を安全に保管し、web3サービスを安心して利用できる知識」を身につけられます。
2. ウォレットとは何か?
2.1 ウォレットの定義と役割
ウォレット(Wallet)とは、ブロックチェーン上で「秘密鍵(private key)」「公開鍵(public key)」「アドレス」を管理し、トランザクションに署名してネットワークに流すためのソフトウェアやハードウェアの総称です。ざっくり言えば、ウォレットは「自分のweb3上の資産を入れるデジタルのお財布」と考えられます。
秘密鍵(private key)
256ビット(32バイト)の乱数で生成された鍵。ウォレットの最も重要な情報であり、この秘密鍵を失ったり他人に知られてしまうと、資産を取り戻すことがほぼ不可能になります。公開鍵(public key)
秘密鍵から一方向の演算(楕円曲線暗号)で導かれる鍵。第三者に知られてもセキュリティを損なうことはありません。公開鍵は、主にアドレスを生成するために用いられます。アドレス(address)
ブロックチェーン上でトークンの受け取り先として使われる識別子。一般的に、公開鍵をハッシュ化したものを16進数で表記し、先頭に「0x」を付与して表現します。(例:0x1234…ABCD
)
ウォレットは上記の「秘密鍵⇄公開鍵⇄アドレス」の一連の管理を担い、ユーザーがweb3上で以下のような操作を行う際に必要な機能を提供します。
アドレス生成
初めてウォレットを作成するときに、秘密鍵・公開鍵・アドレスを自動的に生成します。生成されたアドレスを使って他者からトークンを受け取ることができます。
トランザクション署名
送金やコントラクト呼び出しを行う際、ウォレットがトランザクションデータに対して秘密鍵で署名し、ネットワークに送信します。これにより、誰がその取引を行ったのかを公開鍵で検証でき、改ざんを防止します。
チェーンとの通信
ノード(ブロックチェーンの参加者)に対してトランザクションを送信したり、残高を照会したりするためのRPC(Remote Procedure Call)機能を使って、現在のブロック高や残高などの情報を取得します。
2.2 ウォレットと銀行口座・クレジットカードの違い
web3のウォレットは、銀行口座やクレジットカードのように「中央管理者(銀行やカード会社)があるわけではない」という点で大きく異なります。
中央集権 vs 分散管理
銀行口座やクレジットカード:中央集権的に運営されるサーバーやデータベースに預金情報や利用履歴が保存され、銀行・カード会社がそのデータを管理・運用します。
ウォレット:ユーザー自身が「秘密鍵」という形でデータを保存・管理し、ブロックチェーンネットワークに直接トランザクションを送信します。中央管理者は存在せず、ノードが分散処理を行うことで、記録の一貫性を担保します。
KYC/AMLの有無
銀行・カード:利用前に厳格な本人確認(KYC: Know Your Customer)やマネーロンダリング対策(AML: Anti-Money Laundering)を受ける必要があります。
ウォレット:一般的にウォレットを作るだけではKYCは不要です。匿名性やプライバシー重視のメリットがある一方、不正利用や資産紛失のリスクもユーザー自身で負う必要があります。
資産の自己管理
銀行:銀行が倒産すると、預金保険制度などによって一定額まで保護されます。
ウォレット:秘密鍵を失ったり、ウォレットがハッキングされると、原則として誰も助けてくれません。資産の自己管理責任が非常に重くなるのが特徴です。
3. 公開鍵暗号とアドレスの仕組み
ウォレットの本質を理解するために、まず「公開鍵暗号」と「アドレス生成の流れ」を押さえておきましょう。
3.1 公開鍵暗号の基本
公開鍵暗号(Public-Key Cryptography)は、以下のような特徴を持つ暗号方式です。
秘密鍵(private key)と公開鍵(public key)のペア
秘密鍵は本人のみが保持し、厳重に管理。
公開鍵は誰にでも公開してよく、復号や検証に利用できる。
一方向性
秘密鍵から公開鍵を導出することは容易だが、公開鍵だけから秘密鍵を逆算するのは極めて困難(現状のコンピュータ能力ではほぼ不可能)。
署名と検証
トランザクションを発行するとき、まずトランザクションデータをハッシュ化し、ユーザーはハッシュ値に対して秘密鍵で「電子署名」を行います。
ネットワークの他のノードは公開鍵を使ってその署名を検証し、「本当に署名者がそのトランザクションを意図的に行ったか」を確認できます。
これにより、改ざんやなりすましを技術的に防止します。
たとえば、Ethereum上のウォレットでは、楕円曲線暗号(ECDSA: Elliptic Curve Digital Signature Algorithm)の一種であるsecp256k1という曲線を使って鍵ペアを生成します。具体的な流れは次のとおりです。
秘密鍵の生成
ランダムな256ビットの値を生成し、それを秘密鍵として扱う。
公開鍵の導出
楕円曲線上の演算を用いて、秘密鍵から公開鍵(512ビット)を計算する。
アドレスの生成
公開鍵をKeccak-256(SHA-3の一種)でハッシュし、ハッシュ値の下位20バイト(160ビット)を取り出す。
それを16進数表記にし、先頭に「0x」を付与して、最終的な20バイト・40文字のアドレスが完成する。
例:
0x1234ABCD5678EF90...
のような形式。
3.2 トランザクション署名の流れ
ウォレットを使って「送金」や「スマートコントラクト呼び出し」を行う場合、裏側では次のような一連の処理が行われています。
トランザクション作成
送金する場合:送金先アドレス、送金額、ガス価格(Gas Price)、ガスリミット(Gas Limit)などを含むトランザクションデータを構築。
コントラクト呼び出しの場合:コントラクトアドレス、関数名や引数をABI(Application Binary Interface)でエンコードしたデータを含める。
ハッシュ演算
上記のトランザクションデータをハッシュ化し、署名対象の固定長データを生成する。
電子署名(署名生成)
ウォレットはユーザーの秘密鍵を使って、ハッシュ値に対してECDSAによる電子署名を生成。
署名には「r, s, v」といった3つの値が含まれ、これをトランザクションに付与する。
署名付きトランザクションのブロードキャスト
ウォレットは、署名付きトランザクションをノード(RPCエンドポイントやインフラプロバイダー)に送信し、ネットワークに流す。
ノードは受け取ったトランザクションを検証し、正当な署名であることをチェックすると、メモリープールに保管される。
マイナー/バリデーターによる承認とブロック投入
PoW(Proof of Work)やPoS(Proof of Stake)の仕組みでブロックが形成される際、メモリープールからトランザクションをピックアップしてブロックに組み込む。
新しいブロックが生成されると、ネットワーク全体に伝播し、各ノードが台帳を更新する。
これにより、ユーザーはブラウザやスマホアプリ上で「送金ボタンを押すだけ」で複雑な暗号処理やネットワーク通信を自動的に行い、web3の恩恵を受けられる仕組みとなっています。
4. ウォレットの種類と特徴
ウォレットは大きく「ホットウォレット(Hot Wallet)」と「コールドウォレット(Cold Wallet)」に分類されます。それぞれ利便性やセキュリティ面でメリット・デメリットが異なるため、利用目的や保有資産の規模に応じて使い分けが重要です。
4.1 ホットウォレット(Hot Wallet)
定義:常時インターネットに接続されているウォレット。具体的には、ブラウザ拡張機能、スマホアプリ、デスクトップアプリなどが該当します。
メリット
利便性が高い
すぐに送金・受け取りができ、DApp(分散型アプリケーション)への連携もワンクリックで完了。
初心者向けのUI/UX
MetaMaskやTrust Walletなどは導入が簡単で、操作手順がわかりやすい。
複数チェーン対応が容易
Ethereumだけでなく、BSC(Binance Smart Chain)、Polygon、Avalancheなど複数のEVM互換チェーンを設定変更で切り替えられる。
デメリット
ハッキングリスクがある
秘密鍵やリカバリーフレーズをPCやスマホなどインターネットにつながったデバイスに保存するため、マルウェアやフィッシング詐欺によって盗まれる可能性がある。
フィッシングサイトに要注意
URLを偽装した悪意あるDAppサイトに接続すると、知らぬ間に権限を許可して資産を失うリスクがある。
具体例
MetaMask(ブラウザ拡張・モバイル)
最も利用者が多い。Chrome/Firefoxなどのブラウザ拡張機能としてインストールし、EthereumやEVM互換チェーンに対応。
Trust Wallet(モバイル)
Binanceが買収したスマホ向けウォレット。バイナンスチェーン(BNB Smart Chain)をはじめ、多数のチェーンに対応し、NFT表示やDAppブラウザ機能も備える。
Coinbase Wallet(モバイル)
Coinbaseの提供するウォレットアプリ。Coinbaseアカウントと連携可能で、初心者向けのUIが特徴。NFTコレクションの表示やDApp連携が容易。
Brave Wallet(ブラウザ内蔵型)
Braveブラウザに内蔵されたウォレット。拡張機能を追加せずに利用でき、インターフェースがシンプル。
4.2 コールドウォレット(Cold Wallet)
定義:インターネットから切断されたオフライン環境で秘密鍵を保管するウォレット。物理的にインターネット接続が遮断されているため、ハッキングリスクが大幅に低減される。
メリット
高いセキュリティ
秘密鍵がインターネットに晒されないため、オンライン攻撃やマルウェアから守られる。
長期保管に最適
大量の資産を長期間保管する場合に向いている。将来使うまで秘密鍵をオフラインで保管し、必要なときだけオンライン環境に接続して操作する。
デメリット
即時の操作に不向き
送金時にはPCやネットワークに接続し、ウォレットをスキャンして署名する手間がかかる。
紛失リスク
ハードウェアウォレットやペーパーウォレットを紛失すると、資産復旧が困難。特にペーパーウォレットでは水濡れや火災、劣化に注意する必要がある。
具体例
ハードウェアウォレット(Hardware Wallet)
代表例:Ledger Nano X / Nano S、Trezor One / Model T など。USBキーのような物理デバイスに秘密鍵を格納し、専用アプリ(Ledger Live、Trezor Suite)と連携してトランザクション署名を行う。
ペーパーウォレット(Paper Wallet)
秘密鍵やリカバリーフレーズを紙に印刷し、オフラインで保管する方法。作成時にオンライン接続を遮断し、安全な環境(エアギャップ)で作成する必要がある。
5. ウォレットの安全な管理方法(基礎編)
ウォレットを利用する上で最も重要なのは「安全な管理」です。ここでは、初心者にも実践しやすい基本的なセキュリティ対策をまとめます。
5.1 フィッシング詐欺への対策
正規サイトのURLをブックマークしておく
偽サイトはドメインが微妙に異なっている(例:metamask-support.com、ledger-support.net など)。必ず正しいURLを使う。
ブラウザ拡張機能の権限に注意
DAppに接続するとき、ウォレットは「サイトにアカウント情報へのアクセスを許可しますか?」と確認ダイアログを表示する。
署名要求が来たときは、トランザクション内容を必ず自分で確認し、思い当たらない操作を承認しない。
マルウェア対策ソフトを必ず導入
パソコンやスマホにマルウェア対策ソフト(アンチウイルス)をインストールし、定期スキャンを行う。
OS(Windows/Mac/Linux)やブラウザ、ウォレット拡張機能も最新バージョンにアップデートしておく。
偽アプリやクローンアプリに注意
スマホアプリの場合、App StoreやGoogle Play以外からインストールすると偽アプリを掴まされる危険がある。
公式アプリの開発元(Trust Walletなら「Trust Wallet LLC」、Coinbase Walletなら「Coinbase, Inc.」)を必ず確認する。
5.2 シードフレーズ・秘密鍵の保管方法
オフライン保存の徹底
シードフレーズは絶対にデジタルデータとして保存しない(テキストファイル、スクリーンショット、DropboxなどのクラウドストレージはNG)。
紙または金属プレートに書き写し、耐火金庫や鍵付き金庫に保管する。
複数箇所に分散保管
シードフレーズを一箇所にまとめず、耐火用金庫、銀行の貸金庫、信頼できる家族に分散して保管するとリスク分散できる。
ただし、複数コピーを作ると「どこに置いたか忘れる」「どこが最新かわからなくなる」リスクもあるため、管理方法をしっかりメモしておく。
秘密鍵そのものを直接保存しない
多くのウォレットは「シードフレーズ→秘密鍵を導出する」仕組みになっており、シードフレーズさえ正しければ他の情報は不要。
直接秘密鍵(16進数文字列など)を扱う機会は極力減らし、外部に漏れないように管理する。
5.3 定期的なソフトウェア/ファームウェアアップデート
ウォレットアプリのアップデート
MetaMaskやTrust Walletなどのウォレットアプリは頻繁にバグ修正や機能追加が行われる。
公式ストアやGitHubリポジトリで最新バージョンを適用し、新たに発見された脆弱性に備える。
ハードウェアウォレットのファームウェアアップデート
LedgerやTrezorなどのハードウェアウォレットは、定期的にファームウェアをアップデートすることで新しいセキュリティ強化機能や脆弱性修正が提供される。
Ledger LiveやTrezor Suiteと連携して、画面上の「Update firmware」などの案内に従ってアップグレードを実施する。
アップデート中は絶対にデバイスを抜かないこと。失敗するとウォレットが動作しなくなる場合がある。
5.4 フィッシングメール・ソーシャルエンジニアリングへの注意
怪しい招待リンクやメールは開かない
「あなたのウォレットがハッキングされそうです。以下のリンクからログインして設定を更新してください」という類の詐欺メール(フィッシング)は後を絶たない。
公式の案内は基本的に「ウォレットを通じて」直接通知がくるだけで、メールで「ここをクリック」という形式はほぼ存在しない。
SNS上の詐欺アカウントに気をつける
TwitterやTelegramなどで「公式を装ったアカウント」が「私があなたに1 ETHを送ります。ここに署名してください」と誘導するケースが多い。
公式マーク(☑️のマーク)がついているかどうか、URLを慎重に確認し、タグ付けや暗号化されたチャットのみを使う。
6. 前編まとめ:基礎から使い始めるまでのポイント整理
本前編では、以下の内容を詳しく解説しました。
ウォレットの概念と役割
秘密鍵・公開鍵・アドレスの関係、およびそれらを管理するウォレットの機能を理解。
ウォレットは銀行口座とは異なり、自己責任での資産管理が求められる。
公開鍵暗号とアドレス生成の仕組み
楕円曲線暗号(ECDSA)を用いて秘密鍵から公開鍵を導出し、さらにハッシュ化してアドレスを作るフローを解説。
トランザクション署名時に秘密鍵・公開鍵がどのように使われるかを確認。
ウォレットの種類と特徴
ホットウォレットとコールドウォレットの違い、代表的なウォレットを紹介。
利便性とセキュリティのトレードオフを認識し、自分の用途に合ったウォレットを選ぶことが重要。
ウォレットの安全な管理方法(基礎編)
フィッシング詐欺対策として、公式URLの利用やマルウェア対策ソフト、偽アプリへの注意を徹底。
シードフレーズは必ずオフラインで保管し、複数箇所に分散保管する。
定期的なソフトウェアおよびファームウェアのアップデートを怠らない。
フィッシングメールやSNS詐欺にも警戒し、安易にリンクをクリックしない。
以上の内容をしっかり実践していただくことで、web3利用時に最もリスクとなる資産紛失やハッキング被害を大幅に低減できます。次回の後編では、マルチシグウォレット、スマートコントラクトウォレット、ソーシャルリカバリーなどの「応用編・高度編」について詳しく解説し、さらにセキュリティを強化しながら利便性を向上させるテクニックを学びます。
免責事項:リサーチした情報を精査して書いていますが、個人運営&ソースが英語の部分も多いので、意訳したり、一部誤った情報がある場合があります。ご了承ください。また、記事中にDapps、NFT、トークンを紹介することがありますが、勧誘目的は一切ありません。全て自己責任で購入、ご利用ください。
About us:🇯🇵🇺🇸🇰🇷🇨🇳🇪🇸の5ヶ国語で展開されるweb3ニュースレターの日本語版。「1日5分でweb3をより深く学ぶ」をコンセプトに、web3の注目トレンドやプロジェクトの解説、最新ニュース紹介などのリサーチ記事を毎日配信しています。
Author:mitsui @web3リサーチャー
「web3 Research」を運営し、web3リサーチャーとして活動。
Contact:法人向けのリサーチコンテンツの納品や共同制作、リサーチ力を武器にしたweb3コンサルティングや研修なども受付中です。詳しくは以下の窓口よりお気軽にお問い合わせください。(📩 X / HP)
→お問い合わせ先はこちら