トランザクションの検証と探索

ブロックチェーン上でトランザクションを検証する方法、確認の意味、そして次に探索する高度なトランザクション・タイプ。

0ステップ ·

進捗 0/0

何を学ぶか

  • ブロック・エクスプローラーでトランザクションを読む方法
  • 確認が何を意味し、何回必要か
  • 次に進む場所:マルチシグ、タイムロック、タップルート

エクスプローラーでトランザクションを読む

ブロードキャストされると、任意のブロック・エクスプローラーでtxidによってトランザクションを検索できます。何が見えるか、そして各フィールドが何を意味するか:

Transaction ID:    a1b2c3d4e5f6...
Status:            Confirmed (Block #840,000)
Confirmations:     6
Size:              222 bytes / 141 vBytes
Fee:               1,410 sats (10.0 sat/vB)

Inputs:
  ← bc1q...sender  0.005 BTC  (from txid:abc123..., vout:0)

Outputs:
  → bc1q...recipient  0.003 BTC
  → bc1q...change     0.001959 BTC

すべてのフィールドは、あなたが手で作ったものにマッピングされます:

  • インプット(Inputs) - ステップ3で参照したUTXO
  • アウトプット(Outputs) - ステップ4で作成した新しいUTXO
  • 手数料(Fee) - ステップ5で計算した差額
  • サイズ/vBytes - ステップ6からのシリアライズされたデータ

確認(Confirmations)を理解する

確認は、あなたのトランザクションがブロックに含まれ、その上に追加のブロックが構築されたことを意味します。

確認意味典型的な用途
0メムプール内(未確認)信頼するには安全でない
1最新ブロックに含まれる小額購入
3上に2ブロック構築中程度価値の送金
65ブロック深く最終性の業界標準
100+深く埋められているコインベース報酬の使用に必要

各追加の確認は、逆転を指数関数的に困難にします。6回確認されたトランザクションを取り消すには、攻撃者はネットワークの残りよりも速く6ブロックを再マイニングする必要があります - グローバル・ハッシュレートの膨大なシェアを必要とします。

ほとんどの目的には、6回の確認(~1時間)が最終と見なされます。

自分のノードで検証する

ブロック・エクスプローラーを信頼することは、第三者を信頼することです。独立して検証するには:

# Decode and inspect the raw transaction
bitcoin-cli getrawtransaction "txid" true

# Check confirmation count
bitcoin-cli gettxout "txid" 0

gettxoutコマンドはUTXOセットを直接チェックします - あなたのアウトプットのデータを返せば、UTXOは存在し未使用です。何も返さなければ、アウトプットは存在しないか、すでに使用されています。

フルノードを運営することは、誰も信頼せずにトランザクションを検証する唯一の方法です。これが実践的に「don't trust, verify(信頼するな、検証せよ)」が意味することです。

あなたが作ったもの

この10ステップを通じて、あなたはビットコイン・トランザクションをゼロから構築しました:

  1. 使うUTXOを選択
  2. そのUTXOを指すインプットを構築
  3. 受取人とおつりのためのアウトプットを作成
  4. 適切な手数料を計算
  5. すべてを生16進にシリアライズ
  6. 秘密鍵でトランザクションに署名
  7. SegWitウィットネス・データを追加
  8. トランザクションをネットワークにブロードキャスト
  9. ブロックチェーン上で確認を検証

今やあなたはビットコイン・トランザクションのすべてのバイトを理解しています。ほとんどのウォレット・ソフトウェアは「Send」ボタンの裏でこのすべてをミリ秒で行います - しかしその下で何が起こっているかを知ることは、プロトコルに対するあなたの考え方を変えます。

次に進む場所

あなたが構築したトランザクションは単純な単一署名の支払いです。ビットコインのスクリプティング・システムは、はるかに多くを可能にします:

マルチシグ・トランザクション

使用を承認するために複数の秘密鍵を必要とします(例:2-of-3)。企業の金庫、共有カストディ、単一障害点の排除に使われます。マルチシグ参照。

タイムロック

特定の時刻またはブロック高まで使用できないようビットコインをロックします。相続計画、エスクロー、決済チャネルを可能にします。二つのopcode:OP_CHECKLOCKTIMEVERIFY(絶対)とOP_CHECKSEQUENCEVERIFY(相対)。

タップルート (BIP340/341/342)

2021年11月に有効化されたタップルートは、シュノア署名と**MAST(Merklized Alternative Script Trees)**を使って、複雑なトランザクションをブロックチェーン上でシンプルなものと同一に見せます。これによりプライバシーが改善され、複雑なスクリプトの手数料が削減され、より洗練されたスマート・コントラクトが可能になります。

ライトニング・ネットワーク

ビットコイン・トランザクション - あなたがたった今構築する方法を学んだのと同じ種類 - の上に構築された決済チャネルを作ることで、瞬時で低手数料のビットコイン・トランザクションを可能にするレイヤー2決済ネットワークライトニング・ネットワーク参照。

コース完了

あなたは「最初のトランザクションを作る」コースを終えました。概念的理解からビットコイン・トランザクションがどう機能するかのバイト・レベルの知識へと進みました。ライトニングからタップルート、サイドチェーンまで、他のすべてのビットコイン技術はこの基礎の上に構築されています。

この知識を固める最良の方法:実際のトランザクションを構築しましょう。ビットコインのテストネット(またはsignet)を使って、このコースの原則を用いてトランザクションを構築、署名、ブロードキャストしましょう。実際のビットコインのリスクなし、完全な学習の見返りあり。