おはようございます。
web3リサーチャーのmitsuiです。
今日はweb3の基礎の基礎レポートということで「ビットコイン」について改めて解説します。よくある疑問20個に答えていく形式にしましたので、改めてビットコインについて改めて理解を深める機会にしてもらえればと思います。
後編は技術的な質問となります。
それではどうぞ!
鍵(秘密鍵・公開鍵)とアドレスの仕組みは?
トランザクションとUTXOモデル(未使用トランザクション出力)とは?
ノードはトランザクションをどうやって検証する?
P2Pネットワークでノード同士はどう通信する?
フルノードとSPVノードの違いは?
ブロックの構造とマークルルートとは?
難易度調整アルゴリズム(Difficulty Adjustment)って何?
ASICマイナー(特化型チップ)の役割は?
ソフトフォークとハードフォークの違いは?
51%攻撃(オーバーハッシュレート攻撃)とは何?
1. 鍵(秘密鍵・公開鍵)とアドレスの仕組みは?
● 取引の認証を支える暗号技術
ビットコインにおいて「このコイン(UTXO)はあなたのもの」と認識させるためには、暗号技術を用います。その中心となるのが「秘密鍵(Private Key)」と「公開鍵(Public Key)」です。ビットコインを送信(トランザクション作成)するとき、あなたは秘密鍵で署名し、それを検証する側(ノード)は公開鍵を使って「間違いなくあなただけが持っている鍵で署名した」ことを確認します。
● 秘密鍵を生成 → 公開鍵を導出 → アドレスを作成
ビットコインのアドレスは、次のようなステップで生成されます。
秘密鍵の生成
まず256ビットの乱数(非常に大きな整数)を取り、これを秘密鍵とします。具体的には1~2^256-1までの数字の中からランダムに選ぶイメージで、天文学的な組み合わせ数を誇るため、事実上の重複はまずありません。
公開鍵の導出
楕円曲線暗号(Bitcoinではsecp256k1曲線)を使い、秘密鍵から一意の公開鍵を計算します。公開鍵はX座標・Y座標を含む点(座標値)として表現され、フル形式だと65バイト(圧縮形式なら33バイト程度)になります。
公開鍵ハッシュ(PKH)
公開鍵を
SHA-256
→RIPEMD-160
の順で二重ハッシュし、20バイトの「公開鍵ハッシュ」を得ます。これがアドレスのコア部分です。
バージョンバイトの付加 & Base58Checkエンコード
メインネットの場合、先頭に0x00(バージョンバイト)を加え、さらに4バイトのチェックサムを付加してBase58Check(アルファベットと数字の一部を使う表記)でエンコードすると、いわゆる「1~3」で始まるP2PKHアドレス(例:1A1zP1...)が完成します。
● シードフレーズによるバックアップ
ウォレットによっては、秘密鍵そのものではなく12~24語程度の英単語(シードフレーズ)をメモしておくことで、秘密鍵を再現できる仕様を採用しています(BIP39など)。万一ウォレットアプリが壊れたり端末を失ったりしても、このシードフレーズさえ安全に保管しておけば復元が可能です。
● 秘密鍵の厳重管理が何より重要
他人に秘密鍵が知られた場合、あなたのビットコインを勝手に送金される恐れがあります。ウォレットを複数使うときや、取引所に預ける際も、鍵を誰が管理しているのかを意識することが大事です。「秘密鍵を自分で管理する」ことが、ビットコインの自律性を最大限に活かす手段とも言えます。
2. トランザクションとUTXOモデル(未使用トランザクション出力)とは?
● アカウント残高方式ではなく、UTXO方式
ビットコインは「口座に何BTC残高がある」という形ではなく、「未使用トランザクション出力(Unspent Transaction Output, UTXO)」という単位で管理します。これは、一見複雑そうですが、二重支払いを防ぎ、改ざんチェックをしやすくするために設計された方法です。
● トランザクションの基本構造
入力(Input / vin)
「どのUTXOを使うか」を示し、そこに所有者の署名データ(ScriptSig)が含まれます。具体的には、先の秘密鍵で署名されたデータを提示し、「自分こそがそのUTXOを使う権利者だ」という証拠を出します。
出力(Output / vout)
どのアドレスに何BTCを送るかを指定する部分で、ScriptPubKey(公開鍵ハッシュなどのロック条件)と送金額が記述されます。トランザクションの出力が、次回の取引で使われる「UTXO」となるわけです。
● UTXO消費のイメージ
例えば「アリスが1BTCのUTXOを持っている」としましょう。この1BTCを、0.3BTCをボブに送り、0.7BTCを自分のお釣りとして受け取る形にすると、出力として「0.3BTC(ボブ宛)+0.7BTC(アリス宛)」が作られます。すると元の1BTCのUTXOは“消費済み”になり、新たな2つのUTXO(合計1BTC分)が生まれます。これがビットコインの取引構造です。
● 二重支払いを防ぐ
ネットワーク上のノードは「すでに使われたUTXOを再び使おうとしていないか」「署名が正しいか」を検証します。もし同じUTXOを使おうとするトランザクションが複数流れた場合、マイナーがどれか一方だけをブロックに採用し、もう一方は不正として無視されるため、同じコインを二度使うことはできません。
3. ノードはトランザクションをどうやって検証する?
● フルノードによる検証プロセス
ビットコインのフルノードは、ネットワーク上に流れてきたトランザクションを以下のようなステップで検証します。
UTXOの確認
そのトランザクションの入力として指定されているUTXOが、「未使用」の状態で本当に存在するかをチェック。すでに使われた痕跡があれば無効です。
署名(ScriptSig)の検証
入力のScriptSigに含まれる署名を公開鍵で照合し、実行結果(スクリプトの実行)がOKなら所有権が証明されたとみなします。
金額合計の整合
入力の合計額 ≥ 出力の合計額 + 手数料 になっているかを確認します。もし出力合計のほうが大きければ不正です。
サイズや形式のチェック
トランザクションのサイズ(バイト数)が上限を超えていないか、形式が正しいか、などをチェックします。
mempool(メモリプール)への格納
上記すべての検証を通過したら、そのトランザクションを「承認待ち」としてmempoolに格納。マイナーが次のブロックを作る際に、このトランザクションを採用する可能性があります。
● SPVノードの場合
SPVノードはフルノードほど厳密な検証を行いません。基本的にはブロックヘッダーのみをダウンロードし、マークルツリーからの証拠(マークルパス)を受け取ることで「自分が関係するトランザクションが正当なブロックに含まれているか」を確認します。SPVノードは処理や容量を抑えられますが、最終的にはフルノードの正確な検証に頼らざるを得ない構造です。
4. P2Pネットワークでノード同士はどう通信する?
● ポート8333で待ち受け
ビットコインノードは起動するとTCPポート8333を使い、他のノードとの通信を試みます。最初は「DNSシード」や「ソースコードにハードコーディングされたノード情報」から数台のノードを知り、そこへ接続していきます。
● INV → GETDATA → TX/Block メッセージ
新しいトランザクションやブロックが見つかったとき、ビットコインのP2Pネットワークでは以下のような手順で情報が広まります。
INV(Inventory)メッセージ
“どのハッシュのデータがあるか”を知らせる小さな通知。具体的にはトランザクションIDやブロックIDなどのハッシュだけを送ります。
GETDATA(Get Data)メッセージ
受信したノードが「詳細を欲しい」と思ったらGETDATAを返すことで、実際のデータ(TXやBlock)を要求します。
TX/Block メッセージ
詳細データを応答し、それを受信したノードは検証を行い、正しければさらに他のノードへINVを送って拡散していきます。
● ピア数の確保
各ノードは8~125程度のピア(接続相手)と繋がり、全体としてメッシュ(網目)状のネットワークを形成します。こうすることで、ある地域でノードがダウンしても他の経路でブロックやトランザクションが伝わり、ネットワーク全体としては強い耐障害性を持ちます。
● 接続の切り替えやバンルール
ビットコインノードは定期的に接続先を見直し、悪意あるノード(スパムや不正なデータを送ってくるノード)を検知するとBAN(遮断)リストに入れます。こうした仕組みにより、ネットワークの品質と健全性が維持されるのです。
5. フルノードとSPVノードの違いは?
● フルノード(Full Node)
全ブロックデータをダウンロード
ジェネシスブロック(2009年1月)の最初から最新ブロックまで、すべてを取得し、すべてのトランザクションを検証します。完全な独立性とセキュリティ
他のノードを信頼せず、自分だけの力で「チェーンの正しさ」を判断できるため、ビットコインの分散性・検閲耐性を支える要石と言えます。ディスク容量・帯域幅の負担
ブロック高が約80万近く(2025年時点)に達し、チェーンデータは数百GB以上に膨らんでいるため、ある程度のストレージとネットワーク回線が必要です。
● SPVノード(Simplified Payment Verification Node)
ヘッダーのみをダウンロード
ブロックヘッダー(80バイト程度)だけを全数ダウンロードし、各ブロックのトランザクションは基本的に取らず、マークルルートを利用して“関連するトランザクションが含まれているか”を判定します。軽量で高速だが、フルノードを間接的に信頼
自分ではブロック全体の検証を行わないため、特定の悪意あるノードに騙されるリスクがフルノードより高いです。スマホウォレットや簡易クライアントの多くがSPV方式
一般ユーザーが大容量データを保存・検証するのは難しいため、SPVの仕組みは利用しやすい選択肢と言えます。
● 結論
ビットコインのセキュリティと分散性を真に支えているのはフルノードです。一方、多くの一般ユーザーが使うにはSPVノードが現実的。ビットコインの仕組みは、両者の役割分担でバランスを保っているとも言えます。
6. ブロックの構造とマークルルートとは?
● ブロックの構造
ブロックヘッダー
バージョン:プロトコルのバージョン
前ブロックハッシュ:1つ前のブロックヘッダーのSHA-256ハッシュ
マークルルート:ブロック内トランザクションのハッシュをまとめたルート
タイムスタンプ:ブロックが作られた時刻(近似値)
nBits(難易度ターゲット):PoWの難易度を示す値
ナンス(Nonce):マイナーがPoW探索に使うカウンター的値
トランザクション本体(一覧)
ブロックヘッダーの後ろに、今回採用されたすべてのトランザクションデータが続く。数百~数千件のトランザクションが含まれる場合も。
● マークルルート(Merkle Root)
マークルツリー構造
ブロックに含まれるすべてのトランザクション(Tx)をペアでハッシュ化し、さらにペアでハッシュ化を繰り返すことで最終的に1つのハッシュ値を得る仕組み。二分木(バイナリツリー)の形状をしているため「マークルツリー」と呼ばれる。改ざん検知
もしブロック内のトランザクションが1つでも改ざんされると、そのハッシュ値が変わり、上位のハッシュも連鎖的に変わる。最終的にマークルルートが変わるため、ブロックヘッダーだけを見れば中身の改ざんを検知できる。SPVノードとの関係
SPVノードは、マークルパス(特定のTxがマークルルートに至る経路のハッシュ)を受け取ることで「本当にブロックに含まれているか」を証明できる。
7. 難易度調整アルゴリズム(Difficulty Adjustment)って何?
● 平均10分に1ブロック生成を目指す
ビットコインは「10分に1ブロック」のペースで新しいブロックが作られるように設計されています。もしマイニング参加者(マイナー)の計算能力が増えすぎればブロック生成が早くなり、逆に減れば遅くなります。
● 2,016ブロック(約2週間)ごとに調整
ビットコインでは2,016ブロック単位(約2週間)で、実際にかかった時間を基に難易度(ハッシュターゲット)を再設定します。
もし想定より早く2,016ブロックが終わったら ⇒ 難易度を上げる
想定より時間がかかりすぎたら ⇒ 難易度を下げる
こうすることで、マイニングパワーが大幅に増減しても、なるべく10分ペースを維持できる仕組みになっています。
● ターゲット値とハッシュ探索
PoW(Proof of Work)では、ブロックヘッダーのSHA-256二重ハッシュが「ターゲット値以下」になるようにナンス(Nonce)を変えながら延々と計算します。難易度が高いほどターゲット値は小さくなり、該当するハッシュを見つけるのがより難しくなるのです。
8. ASICマイナー(特化型チップ)の役割は?
● マイニングの専門機械
ASICとは「Application-Specific Integrated Circuit(特定用途向け集積回路)」の略称で、ビットコインのマイニング用に設計された専用チップです。一般的なCPUやGPUは汎用性が高いぶん、特定のハッシュ計算に最適化されていません。一方、ASICはビットコインのSHA-256ハッシュを効率的に計算するよう作られており、同じ電力消費でも圧倒的に多くのハッシュが計算可能です。
● 個人マイニングへの影響
初期のビットコインはCPUやGPUでもマイニングが可能でしたが、ASICが台頭するとその効率差は桁違いになりました。個人が普通のPCでマイニングしても、報酬を得られる確率はほぼゼロに近くなり、多くのマイナーは大規模なマイニングプールに参加するようになりました。
● ハッシュパワーの集中化リスク
ASICを大量に導入できる資本力のある企業や組織が巨大なマイニングファームを運営し、結果的にハッシュパワーが集中しがちになる懸念があります。理想的には世界中の多くのマイナーが分散してマイニングするのがセキュリティ上も望ましいのですが、経済効率の観点からは大規模化が進むのが現実です。
● ASIC耐性を模索する動き
ビットコインはアルゴリズムを頻繁に変えない方針です(ハードフォークリスクや安定性など考慮)。しかし他の暗号資産には「ASIC耐性アルゴリズム」を採用するものもあります。ビットコインの場合は、すでにSHA-256が広く普及しているため、ASICマイナーは「ネットワークを支えるセキュリティインフラ」とも捉えられています。
9. ソフトフォークとハードフォークの違いは?
● フォーク(分岐)とは?
ビットコインのプロトコルやルールに変更を加えるとき、「フォーク」という手法が用いられます。アップデート内容によってはチェーンが分岐し、新しい通貨が生まれる可能性もあるため、参加者の合意形成が重要です。
● ソフトフォーク(Soft Fork)
後方互換性がある変更
古いノードが新ルールで生成されたブロックを有効とみなせる場合、ソフトフォークと呼びます。チェーンが分裂しにくい
古いノードは新ルールを知らなくても、新ブロックを「問題なし」と受け入れられるため、ネットワーク全体で統一チェーンを維持しやすい。例:SegWit(BIP141)導入
2017年に導入されたSegWitは、ブロックのスクリプト署名部分(Witnessデータ)を分離し、ブロック容量の実効拡張や署名マレブルリティ解消を実現しました。古いノードでもSegWitブロックを拒否しない設計がなされました。
● ハードフォーク(Hard Fork)
後方互換性がない変更
古いノードが新ブロックを「無効」と判断してしまうほどルールを変える場合、ハードフォークです。チェーンが分裂しやすい
新ルールに同意しないノード・マイナーがいれば、それぞれが独自のチェーンを形成し、結果的に全く別の暗号資産が生まれます。例:Bitcoin Cash(BCH)の誕生
2017年にブロックサイズ上限を巡って意見が対立した結果、ビットコインから分岐する形で誕生しました。
● コンセンサス(合意形成)の重要性
ビットコインはコミュニティ全体で議論や開発を行い、ソフトフォーク方式を好む傾向があります。理由は「チェーン分裂でユーザーが混乱し、資産や信用に影響する」リスクを避けたいからです。マイナーやノードの多数派が賛成しないアップデートを強行すれば、結果的にチェーンが分断され別コインとなる可能性が高まります。
10. 51%攻撃(オーバーハッシュレート攻撃)とは何?
● ネットワーク全体の過半数ハッシュレートを掌握する
ビットコインはPoWに基づく合意形成を行っています。もしある集団がネットワークのハッシュレート(計算能力)の51%以上を支配できたとしたら、「最長チェーン(または累積難易度が最大のチェーン)」を自分の都合の良いように伸ばし、不正な取引の巻き戻しなどを実行する恐れがあります。
● ダブルスペンドの可能性
たとえば、攻撃者がある取引を実行して商品を受け取りながら、裏で秘密チェーンを構築してその取引を含まないチェーンを延ばしていきます。秘密チェーンが正規チェーンの累積難易度を上回った時点でネットワークに公開すると、短いチェーンは破棄され、攻撃者の取引を“なかったこと”にできます。これを「ダブルスペンド」と呼びます。
● 実行コストが莫大
現在のビットコインネットワークのハッシュレートは膨大であり、過半数を握るには莫大な資本・設備投資・電力が必要です。さらに、成功してもビットコインの信用と価格が急落するリスクが高く、攻撃者自身も大損する恐れがあります。そのため、理論的には可能でも実際に起こる確率は極めて低いと考えられています。
● 分散化こそ防御策
ビットコインの価値を支えるのは分散化によるセキュリティです。マイナーが世界各地に散らばり、異なる事情・電力コスト・地政学リスクの下でマイニングしている限り、一箇所に強大な計算パワーが集中するのは難しく、これが51%攻撃を抑止する一因となっています。
まとめ:ビットコイン内部のメカニズムを深く知る
後編では、ビットコインのテクニカルな仕組みにフォーカスして10の疑問に答えました。具体的には、秘密鍵と公開鍵の関係やアドレス生成、UTXOモデルによる二重支払い防止、ノード間のP2P通信やフルノードとSPVノードの違い、ブロック構造やマークルルート、難易度調整、ASICの登場がマイニングに与える影響、フォークの種類、そして51%攻撃の脅威などを見てきました。
改めて振り返ると、ビットコインのしくみが下記のように複数の要素で成り立っていることが分かります。
暗号技術(公開鍵暗号・ハッシュ関数)
秘密鍵を使ったデジタル署名やマークルツリー、PoWのSHA-256計算などにより、不正や改ざんを困難にしている。
P2Pネットワークと分散台帳
中央管理者がいなくても、世界中のノード同士が直接つながりあい、取引データを共有・検証することで合意形成を行う。
インセンティブ設計(マイニング報酬)
ブロックを正しく生成すればビットコインが報酬として得られるため、不正よりも正直にマイニングするほうが得になっている。
半減期や発行上限による希少性
約4年ごとにマイニング報酬が半分になり、最終的に2100万枚の上限で新規発行が止まる設計により、長期的なインフレ率が下がる仕組み。
コミュニティによる合意とアップデート
ソフトフォークを好む慣習や、ハードフォークによる分裂など、多様な開発者・マイナー・ノードが意見を交わしながら仕組みを進化させている。
こうした複合的な要素が噛み合い、ビットコインはこれまで約15年以上もの間稼働し続けてきました。
もちろん、価格変動の激しさやマイニングのエネルギー消費量、法規制との兼ね合いなど課題も多く存在します。しかし、それらを踏まえてもなお「中央管理者なしでデジタル通貨を動かす」というコンセプトを実現し、人々から価値を認められるまでに至った点は、技術史上極めてユニークな成果と言えるでしょう。
免責事項:リサーチした情報を精査して書いていますが、個人運営&ソースが英語の部分も多いので、意訳したり、一部誤った情報がある場合があります。ご了承ください。また、記事中にDapps、NFT、トークンを紹介することがありますが、勧誘目的は一切ありません。全て自己責任で購入、ご利用ください。
About us:🇯🇵🇺🇸🇰🇷🇨🇳🇪🇸の5ヶ国語で展開されるweb3ニュースレターの日本語版。「1日5分でweb3をより深く学ぶ」をコンセプトに、web3の注目トレンドやプロジェクトの解説、最新ニュース紹介などのリサーチ記事を毎日配信しています。
Author:mitsui @web3リサーチャー
「web3 Research」を運営し、web3リサーチャーとして活動。
Contact:法人向けのリサーチコンテンツの納品や共同制作、リサーチ力を武器にしたweb3コンサルティングや研修なども受付中です。詳しくは以下の窓口よりお気軽にお問い合わせください。(📩 X / HP)
→お問い合わせ先はこちら