暗号ウォレットアドレスの理解と取引が確認される仕組み
暗号ウォレットアドレスとは何か、どのように機能するか、そしてブロックチェーン取引が確認されるステップバイステップのプロセスを学びます。
英語からの翻訳です。 原文を読む
ポイント
- ウォレットアドレスは、ブロックチェーン上で暗号資産を受け取る公開の英数字識別子です。
- 取引はネットワークにブロードキャストされ、ブロックにまとめられ、Proof‑of‑WorkやProof‑of‑Stakeなどのコンセンサス機構で確認されます。
- 各確認はセキュリティを高め、取引をより不可逆的にします。
暗号ウォレットアドレスとは何か?
暗号ウォレットアドレスは、ブロックチェーン上の送金先を表す文字列です。
メールアドレスと同様に公開できますが、対応する秘密鍵を持つ者だけが資金を使えます。
アドレスはウォレットの公開鍵の暗号ハッシュから派生し、公開鍵は秘密鍵から生成されます。
- ビットコイン:26〜35文字、1、3、またはbc1で始まる(例:1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa)
- イーサリアム:42文字、0xで始まる(例:0x742d35Cc6634C0532925a3b844Bc454e4438f44e)
- その他チェーン:類似パターンだがbase58、base32、またはBech32でエンコードされる場合があります
ウォレットアドレスの生成
ウォレット生成時、ソフトウェアはランダムな256ビット秘密鍵を作成します。
秘密鍵は楕円曲線乗算アルゴリズム(ビットコイン・イーサリアムはsecp256k1)に入力され、512ビット公開鍵が得られます。
公開鍵は2回ハッシュ(ビットコインはSHA‑256→RIPEMD‑160)され、最終アドレス形式にエンコードされ、チェックサムが付加されます。
- 秘密鍵例:5J3mBbAH58C1B4c8p6v4k4Yw3h2Xg4Z5y6v7w8x9y0z1a2b3c4d5e6f7g8h9i0j
- 公開鍵:65バイト、未圧縮は0x04、圧縮は0x02/0x03で始まる
- チェックサム:ハッシュの最後の4バイト、エンコード前に付加
取引送信:開始からブロードキャストまで
資金を移動するには、送信者が受取人アドレス、金額、少額手数料を含む取引を作成します。
取引は送信者が所有する1つ以上の未使用トランザクション出力(UTXO)を参照し、入力合計が出力合計+手数料と等しくなるようにします。
ウォレットソフトウェアは送信者の秘密鍵で取引に署名し、所有権を証明するデジタル署名を生成します。
- UTXO例:入力0.5 BTC、出力0.3 BTCを受取人へ、0.199 BTCを変更アドレスへ、0.001 BTCを手数料
- Nonce(またはシーケンス番号)は、イーサリアムのようなアカウントベースモデルでリプレイ攻撃を防ぎます。
- 手数料はBTCはサトシ/バイト、ETHはガスあたりgweiで表され、マイナー/バリデーターの選択に影響します。
取引が確認される仕組み
ネットワークノードは保留中の取引を候補ブロックに集め、ブロックチェーンに応じてコンセンサスアルゴリズムがブロックを選択します。
Proof‑of‑Work(例:ビットコイン)では、マイナーが暗号パズル(ブロックハッシュがターゲット以下になるnonceを見つける)を解き、最初に解いたマイナーがブロックをブロードキャストし、ネットワークが次のブロックとして受け入れます。
Proof‑of‑Stake(例:マージ後のイーサリアム)では、ステークに比例してバリデーターが選ばれ、ブロックの有効性を証言します。ブロックはスーパーマジョリティのバリデーター署名で確定します。
- ブロックサイズ上限:ビットコインは1 MB、イーサリアム2.0は2 MB
- マイニング報酬:ビットコインはブロックあたり6.25 BTC、イーサリアムは2 ETH+手数料
- 確定性:ビットコインは確率的、PoSは数回の証言後にほぼ即時確定
確認が重要な理由
取引はブロックに含まれるまで「保留中」とみなされます。その間、手数料を上げた取引で置き換えられる可能性があります(Replace‑by‑Fee)。
確認ブロックが増えるごとに、攻撃者が履歴を書き換えるのが指数関数的に難しくなります。
取引所や商人は、受領資金をクレジットする前に一定数の確認を待つことが多いです。高額転送では6確認(約60分)が一般的です。
- ゼロ確認取引は可能ですが、二重支払のリスクがあります。
- PoSチェーンでは、単一バリデーターの不正はスラッシングで修正され、追加の安全層が加わります。
- 一部ウォレットは小額で即時確認を「信頼ノード」や「ライトクライアント」で可能にします。
具体例:友人へ0.01 BTC送金
ステップ1:ウォレットを開き「送信」を選択。
ステップ2:友人のビットコインアドレス(例:1BoatSLRHtKNngkdXEeobR76b53LETtpyT)を貼り付け。

ディスカッション 0