ビットコインが「数学的に完璧」と言われる本当の理由

ビットコインが「数学的に完璧」と言われる本当の理由

Bitcoin Japan
Bitcoin Japan
13 分で読めます

SHA-256——すべての出発点となるハッシュ関数

ビットコインのセキュリティは、SHA-256(Secure Hash Algorithm 256-bit)と呼ばれるハッシュ関数を軸に成り立っている。アメリカ国家安全保障局(NSA)が設計し公開されたこのアルゴリズムだが、暗号の安全性は設計者への信頼によって担保されるのではない。公開仕様として世界中の研究者による継続的な解析にさらされ、長年にわたって実用的な攻撃が発見されていないことが、その信頼の根拠だ。SHA-256は公開仕様のハッシュ関数であり、その内部構造や挙動は誰でも検証できる。

SHA-256が生成するハッシュ値は256ビット、10進数では約78桁の数に相当する。最も重要な特性は「一方向性」にある。任意のデータを入力すれば瞬時にハッシュ値を計算できるが、ハッシュ値から元のデータを復元することは、現在の技術では事実上不可能だ。SHA-256の出力範囲は宇宙の原子数に近い規模の広大さを持ち、その可能な組み合わせは 2^256(約 10^77)通りに達する。

もう一つの重要な性質が「アバランシュ効果」だ。入力データのたった1ビットを変えるだけで、出力ハッシュは全く異なる値になる。これがブロックチェーンの改ざん耐性の根拠でもある。過去のトランザクションを1ビットでも書き換えれば、そのブロックのハッシュが変わり、後続ブロックとの整合性も崩れる。改ざんを成立させるには、その後のプルーフ・オブ・ワークを積み直さなければならない——これが現実上、不可能に近いコストを要する。

マイナーが取り組む「プルーフ・オブ・ワーク(Proof of Work)」もSHA-256を使った計算問題だ。特定の条件を満たすハッシュ値を見つけるまで試行を繰り返す。2026年現在、ビットコインネットワーク全体では毎秒数百京〜千京回規模の計算が実行されているにもかかわらず、各ブロックの発見には平均10分かかる——これは後述する「難易度調整」によって設計上そうなっている。

secp256k1——透明性の高い楕円曲線の選択

ビットコインの公開鍵暗号には「secp256k1」という楕円曲線が使われている。後になって「慧眼だった」と評価されることになった選択だ。

楕円曲線の基本式は y² = x³ + ax + b だ。secp256k1では曲線係数が a = 0、b = 7 となり、方程式は y² = x³ + 7 というシンプルな形になる。有限体の素数 p も明示的に定義されており、ドメインパラメーター全体は公開されている。secp256k1上の有効な点は、公開鍵として表現できる。秘密鍵(巨大な乱数)に「生成点(Generator Point)G」を掛け合わせることで公開鍵が生成され、この「掛け算」は一方向のみ計算可能だ。公開鍵から秘密鍵を逆算することは「楕円曲線離散対数問題」の困難性によって現実的に不可能とされている。

2013年、NIST標準に含まれていた疑似乱数生成器 Dual_EC_DRBG にNSA由来のバックドア疑惑が持ち上がり、暗号標準の透明性に対する不信が広がった。secp256k1 自体に同種の問題が確認されたわけではないが、NIST推奨曲線ではなく、比較的シンプルな構造を持つ secp256k1 を採用していたことは、結果的に「透明性を重視するビットコインの設計思想」と相性がよかったと見る向きもある。

現在、Bitcoin Core はオープンソースの専用ライブラリ「libsecp256k1」を使用しており、広範なテスト基盤を備えている。

2100万BTCの上限——等比級数と右シフト演算が作り出す数

「ビットコインの総発行数が2100万枚」という事実はよく知られているが、その数がどこから来るかを正確に理解している人は少ない。

Bitcoin Core のコードには MAX_MONEY = 21000000 * COIN という上限定数が存在する。一方で、実際の新規発行スケジュールそのものは、初期報酬50BTCと210,000ブロックごとの「ビット右シフト演算(>>)」によって定義されており、その等比級数の総和として約2100万BTCが導かれる。

コードの核心は nSubsidy >>= halvings という演算だ。最初のブロック報酬は50BTC、210,000ブロック(約4年)ごとに報酬が半分になる。この等比級数の合計は厳密には 20,999,999.9769 BTC となる。理論上の総発行量はこの値だが、ゲネシスブロックの報酬は使用不能であり、さらにロストコインも存在するため、実際に市場で流通可能な枚数は、それより少ないとみられる。

2100万という数には、別次元の数学的な適切さもある。最小単位サトシ(1BTC = 1億サトシ)で換算すると、総流通量は 2,100,000,000,000,000(約2京1千兆)サトシとなる。この数は64ビット整数の最大値 2^64 - 1 を大幅に下回るため、標準的なコンピューターの整数型で問題なく扱える。Satoshi Nakamotoがこの数値を選んだ理由を明示した一次資料は乏しいが、後年そのように解釈されることがある。

供給上限には強固なガバナンスも支えている。上限を変更するには、ネットワーク参加者の広範な合意と採用が必要であり、マイナーも投資家も開発者も、インフレによる価値毀損に同意する理由がない。数学的な設計と経済的インセンティブが一体となって、上限の不変性を守っている。

半減期と難易度調整——自己修正するシステムの優雅さ

ビットコインの設計で最も見落とされがちながら、実は最も重要な要素が「難易度調整(difficulty adjustment)」だ。

ビットコインは2,016ブロックごと(約2週間)に採掘難易度を自動で再調整する。過去2,016ブロックが2週間より短い時間で生成されていれば、ネットワーク全体のハッシュパワーが増加した証拠として難易度を引き上げる。逆に時間がかかっていれば難易度を下げる。どれほどの計算機が参加しようとも離脱しようとも、平均ブロック時間を10分に保つことが目的だ。

10分という設定は、ブロック伝播の遅延による分岐リスクと、決済確定までの待ち時間とのバランスを取った設計だと一般に理解されている。短すぎれば、世界中のノードがブロックを同期する前に次のブロックが生成されてしまいネットワークが分岐しやすくなる。長すぎれば、ユーザー体験が損なわれる。

難易度調整が存在することで、半減期のスケジュールも守られる。マイニングのASICが性能を何千倍に向上させても、ビットコインの発行ペースは当初の設計通りに進む。2021年に中国がビットコインマイニングを規制した際、ハッシュレートが一時的に大きく落ちたが、難易度調整がそれを吸収し、ネットワークは止まることなく動き続けた。

金と対比すると、この仕組みの優雅さが際立つ。金はより多く採掘しようとするほど、より深く掘らなければならないという物理的な希少性を持つ。ビットコインは計算能力が増えれば計算問題が難しくなるという、数学的な希少性を持つ。自然界の摂理と数学的設計が、同じ哲学を共有している。

秘密鍵の空間——宇宙の原子数に匹敵する広大さ

secp256k1上の有効な秘密鍵の数は楕円曲線の位数(order)に等しく、その値はおよそ 1.16 × 10^77 だ。一方、観測可能な宇宙に存在する原子の数はよく 10^80〜10^82 オーダーで語られる。秘密鍵の空間はまさに宇宙規模の広大さを持つ。

現在想定できる計算資源では、全秘密鍵の総当たり探索は現実的な手段として成立しない。この事実こそが、ビットコインの所有権を数学的に保証する根拠だ。

量子コンピューターは将来的なリスクとして議論されているが、その実用的な脅威の時期や影響範囲には依然として大きな不確実性がある。もっとも、ビットコインはオープンソースのプロトコルであり、必要になれば量子耐性のある署名方式への移行をコミュニティが検討する余地はある。NISTはすでに量子耐性暗号の標準化を進めており、この分野の動向は継続的に注視されている。

数学はルールブックであり、法律である

法律は政府が変更でき、金融規制は中央銀行が書き換えられ、契約は当事者の合意で破棄できる。しかしビットコインの根本ルールは、特定の国家や企業が一方的に変えられるものではない。

SHA-256は入力データが1ビット変わればハッシュが全く変わり、secp256k1は秘密鍵から公開鍵への道を一方通行にし、2100万BTCの上限は等比級数の数学から生まれ、難易度調整は自動的にシステムを正常に保つ。これらはすべて、人間の意志ではなく数学が執行するルールだ。

信頼の根拠を「制度」や「人間」ではなく「公開・検証可能な数学」に置くという発想の転換——それこそがビットコインが「数学的に完璧」と呼ばれる本質であり、Satoshi Nakamotoの最大の革新だった。JPモルガンのCEOジェイミー・ダイモンはかつて、「それが2100万で終わると、どうして分かるのか。君たちはそのアルゴリズムを読んだのか。本当に信じているのか」と疑問を呈した。答えはシンプルだ——数学は「信じる」対象ではなく、「検証する」対象だ。そしてビットコインは、16年以上にわたって毎日その検証に耐え続けている。

最新情報を入手!

新しいブログ投稿をあなたの受信箱に配信するために購読してください