Bitcoin 1.01:サーバー不要、量子耐性の署名を持ち、ビットコインにアンカーされたピアツーピアの通貨
ホワイトペーパー · ローンチ版 · 2026
この文書は Bitcoin 1.01 の形式、プルーフ・オブ・ワーク、そしてマイニング以外のセキュリティ対策を説明する。すべての数値はプログラムのソースコードにある定数から来ており、ファイル名を括弧内に示す。設計上の決定の完全な記録は TASARIM.md、使い方は
BENIOKU.md にある。コマンド名、ファイル名、フォルダ名はトルコ語の単語である。プログラムと一致させるため、ここでもそのまま記す。
要旨
Bitcoin 1.01 は、ビットコインの考え方を受け継ぐピアツーピアの通貨である。誰でも検証できるブロックチェーン、プルーフ・オブ・ワークで選ばれる最も重いチェーン、固定され減っていく発行量。ビットコインと違うのは次の 3 点である。
- 署名とハッシュを量子コンピュータに備えて新しくした。 取引は、ハッシュ関数だけに基づく SLH-DSA-SHAKE-256s (NIST FIPS 205)で署名する。ブロックは 1024 ビットの ORION ハッシュ(容量 1024 ビットの Keccak-f[1600])で封印する。
- どのサーバーも必要としない。 ピアは同じローカルネットワークでは自動で、インターネットではシードのアドレスとアドレスの共有によって互いを見つける。ドメイン、ホスティング、アカウント、本人確認(KYC)はない。
- セキュリティの一部をマイナーからビットコインへ移す。 ノードはときどきブロックのダイジェストをビットコインに書く(アンカー)。ビットコインで 6 承認を得たアンカーは、計算力の過半数に対してもそのブロックを守る。アンカーした人は、アンカーしたブロックの報酬の半分を受け取る。
ローンチに合わせて難易度を意図的に引き上げた。どのブロックも少なくとも 2^36 回の試行(ビットコインの難易度 1 の 16 倍)を要し、ジェネシスブロックは約 1.29 兆回(ビットコインのジェネシスの 300 倍)を要する。ブロックは 15 分ごとに生まれ、難易度は相対 ASERT 規則で毎ブロック調整される。ネットワークの開始時刻は事前に公表され、最初のブロックは開始後に採掘されたビットコインブロックに結びつく。そのため、開始前にひそかに採掘しても無駄になる。
1. なぜ Bitcoin 1.01 なのか
ビットコインの署名(ECDSA、secp256k1)は、十分に大きな量子コンピュータ上の Shor のアルゴリズムで破ることができる。ビットコインを変えるにはネットワーク全体の合意が要る。Bitcoin 1.01 は、この変更を最初から組み込んだチェーンとして試み、それ以外のすべてではビットコインに近いままでいる:UTXO モデル、最も多くの仕事量を持つチェーンの規則、2100 万を超えない発行量、4 年ごとに半減する報酬。
2 つ目の目標はサーバーを持たないことである。プログラムはどのウェブサイト、API、中央のサービスにも依存しない。bit101.org のサイトは文書とダウンロードのリンクを載せているだけで、なくなってもネットワークは動き続ける。参加するにはプログラムを動かせばよい。身元、メールアドレス、電話番号は求めない。
2. 形式
2.1 ハッシュ:ORION ファミリー
ORION は独自の発明ではない。SHA-3 の中核である Keccak-f[1600] 置換を、容量 1024 ビット、レート 72 バイトで使う。これは SHA3-512
の設定である(src/orion.*)。
| 名前 | 出力 | 用途 | 一般的な安全性 |
|---|---|---|---|
| ORION-1024 | 1024 ビット | ブロックの指紋、プルーフ・オブ・ワーク、アドレスの導出 | 512 ビット |
| ORION-512 | 512 ビット | 取引 ID、マークルのノード、アンカーのダイジェスト | 衝突 256、原像 512 ビット |
すべての呼び出しの前にタグを付ける:[長さ(1 バイト)] "orion-stars-up-my-sleeve/" + 用途。用途は blok、islem、
merkle-yaprak、adres などである。そのため、ある用途で作られたハッシュを別の用途に使うことはできない。
透明性:ORION-512 は同じ入力に対する公式の SHA3-512 の結果と完全に同じであり、ORION-1024 の先頭 64 バイトも同じである。誰でも、ブロックのハッシュの前半をどんな SHA3-512 ツールでも確かめられる。
2.2 √2 と 3x+1
√2 の 2 進展開は、ライブラリを使わずにプログラムの中で計算する(src/kok2.*)。最初の 64 ビットは 6a09e667f3bcc908 で、
SHA-256 の最初の初期定数と同じである。
- ジェネシス:√2 の最初の 2048 ビットをジェネシスの記録に、最初の 1024 ビットをジェネシスの「前のハッシュ」に書く(「チェーンの前に √2 があった」)。
- 期定数:ブロックのハッシュは
ORION-1024("blok", ヘッダー || 期定数)で計算する。半減期(140,000 ブロック)ごとに、 √2 の次の 1024 ビットが期定数になる。投票は要らず、すべての機器が同じ結果を得る。 - 3x+1:各ヘッダーは、(高さ + 27)のコラッツ数列が 1 に達するまでの手数を持つ。ジェネシスではその数は 27 で、111 手、最大値は 9,232 である。セキュリティでの役割はなく、チェーンの署名のようなものである。ジェネシスの採掘も nonce = 27 から始まる。
√2 は秘密ではない。どの鍵も √2 からは作らない。
2.3 ブロックヘッダー(228 バイト、リトルエンディアン)
| フィールド | バイト | 説明 |
|---|---|---|
| バージョン | 4 | 101 |
| 高さ | 8 | |
| 前のハッシュ | 128 | ORION-1024 |
| マークルルート | 64 | 署名を含む完全な取引 ID の ORION-512 |
| 時刻 | 8 | Unix 秒(UTC) |
| target_bits | 4 | 圧縮されたターゲット(第 3 節) |
| nonce | 8 | |
| collatz | 4 | 3x+1 の手数 |
ブロック = ヘッダー + 取引数(4 バイト)+ 取引。本体は最大 4 MB である。マークル木では葉と内部のノードを別のタグでハッシュし、奇数で余ったノードは複製せずに 1 つ上の段へそのまま持ち上げる(ビットコインの CVE-2012-2459 のような曖昧さをなくすため)。
2.4 鍵、アドレス、署名
- 署名:SLH-DSA-SHAKE-256s(NIST FIPS 205、セキュリティカテゴリ 5)。公開鍵 64 バイト、署名 29,792 バイト。コードはゼロから書かれ、NIST の公式 ACVP テストベクトルをすべて通る(
bitcoin101 nist-test)。署名は「ヘッジ付き」で、毎回オペレーティングシステムから新しい 32 バイトの乱数を加える。 - アドレス =
ORION-1024("adres", 公開鍵)の出力の 768 ビット。文字列の形はorn+ Base58(アドレス + 4 バイトのチェックサム)、140 文字。1 文字でも間違ったアドレスは拒否される。 - ウォレット:256 ビットのマスターシークレットが 1 つ。すべてのアドレスはそこから導かれ、72 文字のバックアップ 1 つ(64 桁の 16 進 + チェックサム)ですべてが戻る。
2.5 取引
| 種別 | 名前 | 内容 |
|---|---|---|
| 0 | 報酬取引 | 各ブロックの最初。入力はなく、マイナー報酬と手数料を書く。100 ブロックの間は使えない。 |
| 1 | 通常の取引 | 未使用の出力(UTXO)を使う。バージョン 1:アドレスの出力。バージョン 2:HTLC の出力と請求/返金の経路(ビットコインとのアトミックスワップ)。 |
| 2 | アンカー報酬 | ブロックをビットコインにアンカーした人の分を支払う。入力も署名もなく、ビットコインの証明は本体の中にある(第 5.3 節)。 |
- 取引 ID(txid) =
ORION-512("islem", 本体)。署名は含まれないので、署名で ID を変えることはできない。マークル木には署名を含む完全な ID が入る。 - 同じアドレスからの入力は1 つの署名を共有する。署名はそれぞれ約 30 KB あるので、これは重要である。
- 取引には最大 80 バイトのメモ欄がある。
- 手数料のポリシー:1,000 バイトあたり 1,000 単位。署名が 1 つの取引は約 30 KB で、手数料は約 0.0003 コイン。これはプールの受け入れ規則であり、コンセンサス規則ではない。
- 1 コイン = 100,000,000 単位。
2.6 ビットコインアンカーの形式
アンカーは、ビットコインの 1 つの OP_RETURN 出力に書く 77 バイトのペイロードである(ビットコインの標準の 80 バイト制限の内側):
"B101" | ネットワーク(1 バイト:0 メイン、1 テスト) | 高さ(8、リトルエンディアン) | ダイジェスト(32) | 報酬(32)
ダイジェスト = ORION-512("bitcoin-capasi", 1.01 のブロックハッシュ) の先頭 32 バイト
報酬 = ORION-512("capa-odul-adresi", 1.01 の報酬アドレス) の先頭 32 バイト
アンカー取引は、ウォレットのマスターシークレットから導かれる単一鍵の P2WSH アドレスから支払われ、約 211 vB である(2 sat/vB で約 420 sat)。アンカー報酬の取引(種別 2)の証明は次の形である:
証明の長さ(4) | ビットコインの取引 + マークルブランチ + ビットコインのブロック ID | ヘッダー数(1)= 6 | 80 バイトのヘッダー × 6
3. プルーフ・オブ・ワークと難易度:なぜ採掘を難しくしたのか
3.1 規則
ターゲットは 1024 ビットの数で、ビットコインの圧縮形式で書く:T = c × 256^(e−3)、bits = e<<24 | c。ブロックは、そのハッシュ(ビッグエンディアンの数として)が T より小さければ有効である。期待される試行回数は 2^1024 / T である。ジェネシスを含むすべてのブロックを同じ規則で検証する(src/zorluk.*):
| パラメータ | 値 | 意味 |
|---|---|---|
POW_LIMIT | 0x7C0FFFFF | 下限:どのブロックも少なくとも 約 2^36 回の試行(約 687 億回)、ビットコインの難易度 1 の 16 倍 |
GENESIS_HEDEF | 0x7C00DA73 | ジェネシス:約 2^40.23 回の試行(約 1.29 兆回)、ビットコインのジェネシスの 300 倍、下限の約 18.75 倍 |
BLOK1_HEDEF | POW_LIMIT | ネットワークは下限から始まり、計算力が来るにつれて難易度が上がる |
HEDEF_BLOK_SURESI | 900 秒 | 15 分のブロック |
ASERT_YARI_OMUR | 12 時間 | ブロックが合計 12 時間遅れると難易度は半分に、12 時間早く来ると 2 倍になる |
MAX_GELECEK | 3,600 秒 | タイムスタンプは機器の時計より最大 1 時間先まで(ビットコインでは 2 時間) |
MTP_PENCERE | 11 ブロック | タイムスタンプは直近 11 ブロックの中央値より大きくなければならない |
AG_ACILIS_ZAMANI | 2026-11-03 10:10(イスタンブール) | 第 1 ブロックはこれより前にできない |
MIN_HEDEF_BIT | 921 | ターゲットは少なくとも 2^920。仕事量が 128 ビットに収まる |
正規の符号化が必須である:1 つのターゲットにつき 1 通りの書き方だけを受け入れ、符号ビットや下限より易しいターゲットは拒否する。チェーンはブロック数ではなく総仕事量で選ぶ:ブロックの仕事量は 2^1024 / T で、整数として計算され、どのコンピュータでも同じになる。
3.2 相対 ASERT
各ブロックのターゲットは、前のブロックのターゲットと間隔から計算する:
T_新 = T_前 × 2^((間隔 − 900) / 43,200)
- 係数はチェーンに沿って互いに打ち消し合う:N ブロック後の結果は合計時間だけで決まる。下限に当たらない限り絶対 ASERT と同じである(2,000 個のランダムな間隔で測定:差は 0.01%)。
- 違いは下限で現れる。ネットワークが下限で待っている間、絶対 ASERT は「予定の借り」をためる。強いマイナーが来ると、その借りを返すまで難易度が低いままになり、安いブロックが降ってくる。相対 ASERT では借りがたまらない。
- 計算はすべて整数である:2^x には 2^(2^−i) の Q62 表を使い、結果は最近接に丸める。どの機器でもビット単位で同じ結果になり、 65,536 個の小数値のどれでもオーバーフローしない。
- タイムスタンプの小細工の効果は限られる:タイムスタンプを許される最も先(1 時間先)に押しても、難易度は最大で ×0.944 しか下がらない。
- 第 1・第 2 ブロックは固定のターゲット(下限)で採掘する:第 1 ブロックの間隔はジェネシスから開始までの時間で、意味がないからである。
3.3 なぜ難しくしたのか
ローンチ前のテストネットワークでは下限が 2^16 回の試行だった。普通のノートパソコンが数秒で数百のブロックを採掘でき、チェーンは予定から大きく遅れていた。引き上げた下限とジェネシスは、次の問題を解決する。
- 安い偽のチェーンとヘッダーのスパム。 ノードは、送られてきたすべてのヘッダーのプルーフ・オブ・ワークを検証する。下限が低いと、偽のヘッダーチェーンを作るのはただ同然である。下限があれば、どのヘッダーも少なくとも 2^36 回の試行を要し、偽のブランチは本物の仕事と同じだけ高くつく。
- 仕事量に基づく規則に意味を持たせる。 深いフォークへのペナルティ、ファイナリティ、ビットコインアンカー(第 5 節)といった対策は、 1 つのブロックが一定の仕事量を表すという前提に立っている。毎秒 100 ブロックを採掘できるネットワークでは「100 ブロックの深さ」は何も意味しない。ネットワークにつながる前に採掘を始めたノードが、数秒でファイナリティの深さを超えるチェーンを作り、メインのチェーンから切り離されてしまうこともあった。
- 公正な始まり。 下限は、最初の数時間にブロックを安く集めることを難しくする。開始の規則(第 6 節)と合わせて、ネットワークが開く前に誰も有利になれない。
- 規則の一貫性。 ジェネシスは後続のブロックと同じ規則で検証される。下限より易しいジェネシスは、ネットワーク自身の規則を破る唯一のブロックになってしまう。ジェネシスの難易度(ビットコインのジェネシスの 300 倍)がセキュリティに与える寄与は小さい。本当の意味は、誰でも再現できるが誰も選べない出発点にある:nonce は 27 以上で有効な最小の値である。
- 15 分のブロック。 SLH-DSA の署名は大きい(取引あたり約 30 KB)。家庭の回線とサーバーのない伝播では、ブロックの間隔が長いほど孤立ブロックの割合が下がる。同じ計算力なら、1 つの承認が 2 分のブロックの 7.5 倍の仕事量を運ぶ。代償は承認の遅さであり、アンカーによるファイナリティ(第 5.2 節)が多額の支払いについてその代償を減らす。
3.4 シミュレーションと正直な代償
araclar/zorluk_test.cpp(と bitcoin101 test 第 7 節)は、計算力が変わるシナリオを規則そのもので再現する。ブロックの間隔は指数分布から引く:
| 段階 | 最初の 100 ブロックの平均 | 落ち着いた平均 | 難易度(ビットコインのジェネシスの何倍か) |
|---|---|---|---|
| 8 コアのプロセッサ、8 MH/s | 7,924 秒 | 8,709 秒 | 16(下限) |
| GPU 1 枚、500 MH/s | 232 秒 | 900 秒 | 114 |
| GPU ファーム、20 GH/s | 52 秒 | 907 秒 | 4,211 |
| ファームが去った、500 MH/s | 3,090 秒 | 892 秒 | 97 |
| 長期、500 MH/s | 1,056 秒 | 900 秒 | 106 |
- 下限は代償である。 プロセッサだけの小さなネットワークでは、ブロックは 15 分より遅く来る:毎秒 800 万回試行するプロセッサは、下限で平均 約 2.4 時間に 1 ブロックを見つける。ネットワークが 15 分に落ち着くには、全体の計算力が少なくとも 約 76 MH/s (2^36 / 900 秒)必要である。
- ジェネシスは一度だけ採掘する。 毎秒 800 万回で平均 約 45 時間かかる。運の要素が大きく、五分五分で 31 時間未満、5% の確率で 134 時間を超える。採掘は止まった所から再開でき、結果は中断にもコア数にも依存しない。
- GPU と専用ハードウェア。 ORION はメモリを多く要するハッシュではない。GPU や、いずれは専用回路がプロセッサより速くなる。これは意図して受け入れた:誰でも好きなハードウェアで採掘でき、ASERT はどの計算力の水準でも 15 分に落ち着く。今日のプログラムにはプロセッサ用のマイナーだけが入っている。
4. 通貨政策
| 規則 | 値 |
|---|---|
| ブロック報酬 | 75 コイン |
| 半減 | 140,000 ブロックごと(約 4 年)、√2 の期定数が変わる時点と同じ |
| 最大発行量 | 20,999,924.979 コイン(ジェネシスに報酬はない) |
| アンカー分 | 高さが 4 の倍数のブロックの報酬の半分を、そのブロックをビットコインにアンカーした人へ |
| アンカー分の合計 | 最大 2,624,962.49475 コイン(発行量の 1/8) |
| 成熟 | マイニングとアンカーの報酬は 100 ブロックの間使えない |
アンカー分は発行量を増やさず、マイナーの報酬から取り分けられる。高さが 4 の倍数のブロックのマイナーは 37.5 コイン、そのブロックをアンカーした人は 37.5 コインを受け取る。それ以外のブロックではマイナーが 75 コインすべてを受け取る。1 週間(672 ブロック)以内に請求されなかった分は発行されず、発行量は 2100 万を下回ったままになる。報酬取引が書けるのは最大で マイナー報酬 + 手数料 である。
5. マイニング以外のセキュリティ
プルーフ・オブ・ワークを使うどのチェーンも、計算力の過半数を握った者に対して完全には守れない。ビットコインも守れない。 Bitcoin 1.01 の対策は、攻撃を高くつかせ、被害を限り、利用者に間に合うように警告し、セキュリティの一部をビットコインのプルーフ・オブ・ワークに結びつける。
5.1 セキュリティ係数
コンセンサス規則(すべてのノードが同じように適用する。破るブロックは無効):
| 係数 | 値 | 何に対して |
|---|---|---|
| 難易度の下限 | 約 2^36 回の試行 | 安い偽のチェーンとヘッダーのスパム |
| タイムスタンプ | 直近 11 ブロックの中央値より大きく、現在 + 1 時間以下 | 時刻を操作して難易度を下げること |
| 報酬の成熟 | 100 ブロック(約 25 時間) | 攻撃者が採掘した分をすぐに持ち逃げすること |
| アンカー報酬の証明 | ビットコインのヘッダー 6 つ、それぞれターゲット ≤ 2^182 | 偽のアンカー報酬の請求 |
| アンカー報酬の期間 | アンカーされたブロックから最大 672 ブロック以内、ビットコインのブロックは最大 12 時間遅れまで | 遅い請求と便乗した請求 |
| 開始アンカー | 第 1 ブロックのメモはビットコインブロックの ID | 事前採掘(第 6 節) |
| ブロック本体 | 最大 4 MB、取引のメモは最大 80 バイト | 膨らませたブロック |
ノードのポリシー(各ノード自身の判断。ひそかに採掘されて一度に公開されるチェーンへの対策):
| 係数 | 値 | 意味 |
|---|---|---|
| 短いフォーク | 6 ブロック以下 | 通常の規則:総仕事量がはっきり多いチェーンが勝つ |
| 深いフォークへのペナルティ | 6 < d ≤ 100 | 新しいブランチは、巻き戻す部分の少なくとも d/6 倍の仕事量を持たなければならない |
| ファイナリティ | 100 ブロック(約 25 時間) | それより深いフォークは自動では決して受け入れない |
| ビットコインアンカーによる拒否 | ビットコインの 6 承認 | アンカーされた自分のブロックを巻き戻し、自分より先にアンカーされていないブランチは拒否 |
| 競合するアンカー | — | 自チェーンにないブロックのアンカーは警告を出し、アンカーによるファイナリティを止める |
| マイナーの分布 | 直近 100 ブロックの半分超 | 1 つのアドレスが過半数を占めていたら警告 |
| 時計の差 | 20 分 | ピアの時計がずれていたら警告 |
| ピアなしでの採掘 | メインネットでは待つ | つながっていないノードが自分のチェーンに閉じこもらないように(--tek-basina を除く) |
深いフォークへのペナルティの意味:攻撃者の計算力の割合を q とすると、d ブロックを巻き戻すには q/(1−q) ≥ d/6 が必要になる。 12 ブロックなら 67%、30 ブロックなら 83%、60 ブロックなら 91%。100 より深いものは自動では不可能である。
暗号:
| 項目 | 選択 | 安全性 |
|---|---|---|
| 署名 | SLH-DSA-SHAKE-256s | NIST カテゴリ 5。ハッシュだけに基づき、Shor のアルゴリズムが狙うものがない |
| ブロックのハッシュ | ORION-1024 | 一般的な安全性 512 ビット |
| アドレス | 768 ビット | アドレスから公開鍵に至るには 768 ビットの原像が要る |
| 取引 ID | ORION-512 | 衝突耐性 256 ビット |
| ウォレットのファイル | Argon2id(64 MiB、3 パス、4 レーン)+ ChaCha20-Poly1305 | パスワードは 15 文字以上(NIST SP 800-63B-4)。3 回間違えると待ち時間が倍々に伸びる |
| 乱数 | オペレーティングシステム(BCryptGenRandom / getrandom) | 失敗したらプログラムは止まり、弱い乱数には決して落ちない |
ネットワーク: 送信接続は最大 8、受信接続は最大 64、同じ IP からは最大 4。メッセージは最大 6 MB。180 秒沈黙したピアは閉じる。無効なブロック、ヘッダー、取引を送ったピアは 1 時間禁止する。1 つのピアから検証する取引は 1 分あたり最大 120。ピアから聞いたアドレスで張る送信接続は、/16 のネットワークグループごとに最大 1 つのピアしか選ばない(エクリプス攻撃への対策)。状態に依存しない誤り(壊れた署名、他人の出力、壊れたビットコインの証明)は違反である。状態から生じる誤り(その出力がない、まだ成熟していない、別のブランチ)は違反とみなさない。
5.2 ビットコインアンカー
ノードは自分のチェーン上のブロックのダイジェストをビットコインに書く。ビットコインのブロックが承認されると、それは「1.01 のチェーンでブロック #h は遅くともビットコイン #X の時点で存在した」ことを、ビットコインのプルーフ・オブ・ワークで守られた形で示す証明になる。証明(生の取引 + マークルブランチ + ビットコインのブロック)はピアに広がる。各ノードはそれを自分のビットコインのヘッダーチェーンで検証する。このチェーンはプログラムに埋め込まれた本物のビットコインブロック(チェックポイント)から始まり、ビットコインのヘッダーの規則をすべて適用する。誰も信頼する必要はない。
- 拒否(ベトー):フォークが、ビットコインで 6 承認のアンカーを持つ自チェーンのブロックを巻き戻すことになり、しかも新しいブランチが自分より先にアンカーされていなければ、そのブランチは仕事量にかかわらず拒否される。拒否は、仕事量の少ないチェーンへ移らせることは決してなく、拒むだけである。
- アンカーによるファイナリティ:アンカーされたブロック以下の取引は、アプリで「確定・アンカー」と表示される。推奨の頻度(4 ブロックに 1 回、先端から少なくとも 6 ブロック後ろ、ビットコインで 6 承認)なら、取引はおよそ 2.5〜3.5 時間でこの状態になる。仕事量の規則だけなら 100 ブロック(約 25 時間)かかる。
- 正直な限界:自分の秘密のブランチも早くアンカーする攻撃者は、拒否では止まらず、仕事量の規則がそのまま適用される。ただしそのアンカーは、誰でも見られる痕跡をビットコインに残す:ウォッチャー(
araclar/capa_gozcu.py)がそれを見つけ、ネットワークは「競合するアンカー」を警告し、ファイナリティは止まる。
検討したほかの方式:マージマイニング(不可能:プルーフ・オブ・ワークが違う)、ステークを持つ検証者によるファイナリティ(ステークのロック、スラッシング、約 30 KB の投票取引が要る。ローンチ時はステークが少数の手に集まるので後回しにした)、リリースのチェックポイント(ローンチ後に加える)。
5.3 アンカー報酬
アンカーは安い(約 420 sat)が、誰かがアンカーし続けなければならない。報酬は、この役目を 1 人の善意からネットワークの規則へ移す。
- 高さ h が 4 の倍数のブロック #h の報酬の半分は、マイナーではなく、#h をビットコインにアンカーした人のために取り分けられる。アンカーのペイロードは、報酬が渡る 1.01 アドレスのダイジェストを持つ。アンカーするプログラムは、ウォレットの最初のアドレスを書く。
- アンカーがビットコインで 6 承認を得ると、アンカーした人のプログラムがアンカー報酬の取引(種別 2)を作って中継する。中身はアンカー取引、マークルブランチ、ビットコインのヘッダー 6 つ(アンカーのブロックとその後の 5 ブロック)である。
- 各ノードはこの取引をチェーンとは独立に検証する。ヘッダーは連続し、それぞれのプルーフ・オブ・ワークが有効で、それぞれがネットワークのビットコイン難易度の下限を満たさなければならない(ターゲット ≤ 2^182、つまりビットコインの難易度 ≥ 約 4.4 兆。 2026 年の難易度の約 1/32)。マークルブランチは最初のヘッダーに届き、ペイロードはブロック #h のダイジェストと出力アドレスのダイジェストを持ち、金額はちょうどその分でなければならない。
- マイナーはさらに、請求のビットコインブロックが自分のビットコインのヘッダーチェーンで 6 承認を持つことを確かめる(ポリシー)。
- チェーン上で報酬は 1 つのブロックにつき最大 1 回支払われ、最初に入ったものが受け取る。請求は #h から遅くとも 672 ブロック(約 1 週間)以内にチェーンに入らなければならず、ビットコインのブロックは #h の時刻から最大 12 時間後まででなければならない。
偽の請求の代償:ビットコインのヘッダーチェーンにないアンカーのためには、下限の難易度でヘッダーを 6 つ採掘しなければならない。これは今日のビットコインのブロック 1 つの仕事量の約 19% で、約 0.6 BTC のマイニング収入に相当する仕事である。本物のアンカーは約 420 sat で済む。偽の請求は常に正直なアンカーより高くつく。1.01 の価値が上がれば、古いブロックを無効にせずに下限を引き上げられる(ソフトフォーク)。
なぜ半分なのか:マイナーは毎ブロック、プルーフ・オブ・ワークを生み出す。アンカーする人は 1 時間に 1 回、ビットコインに証明を書く。報酬の半分あれば、ビットコインの手数料が高いときでもアンカー取引は利益を生む。総コストは発行量の 1/8 で頭打ちになる。誰もアンカーしなければその分はマイナーにも渡らず、発行もされない。そのため、マイナーにはアンカーのないチェーンを好む理由が生まれない。
5.4 ブリッジ
ビットコインとの交換は HTLC のアトミックスワップで行う:金庫も、仲介者も、サーバーもない。両者が約束どおりのものを受け取るか、両者とも自分のお金を取り戻すかのどちらかが保証される。ネットワークが小さいうちは、スワップの安全性は 1.01 の計算力の強さまでしかないので、本物の BTC を使うスワップは最大 0.01 BTC に制限される。
6. ネットワークの開始とジェネシス
ジェネシスはすべて定数から作られ、誰でも同じ結果を得る:
| フィールド | 値 |
|---|---|
| 前のハッシュ | √2 の最初の 1024 ビット |
| 記録 | "orion-stars-up-my-sleeve" + √2 の最初の 2048 ビット(使用可能な出力なし) |
| 時刻 | 2026-10-23 20:12:00 イスタンブール(1792775520) |
| ターゲット | 0x7C00DA73 |
| 3x+1 | 111 |
| Nonce | 27 以上でターゲットを満たす最小の値 |
nonce は誰も選べない:探索は 27 から始まり、最初の有効な値で終わる。採掘は多くのコアを使うが、区間は順に配られ、それより小さい区間がすべて終わるまで止まらない。結果はコア数にも中断にも依存せず、誰でも採掘し直して同じ nonce を見つけられる。見つかった値は、
C++ のコードとは独立した純粋な Python の Keccak 実装で再び検証される(araclar/genesis_dogrula.py)。ハッシュの前半は、どんな
SHA3-512 ツールとも比べられる。nonce とハッシュはプログラムが表示する:bitcoin101 genesis。
開始:ネットワークの開始時刻は事前に公表され、第 1 ブロックの時刻はそれより前にできない。タイムスタンプだけでは事前採掘を止められない:誰かが開始前にひそかに仕事量をため、タイムスタンプを開始後に置き、開始時にそのチェーンを公開できるからだ。これをふさぐ規則が開始アンカーである:第 1 ブロックの報酬取引のメモは btc:<ビットコインのブロック ID> でなければならず、ノードは自分のビットコインのヘッダーチェーンで、そのビットコインブロックが実在し、その時刻が開始後であることを確かめる。そのブロックは開始前には知りようがないので、開始前に行った仕事は無駄になる。マイナーのプログラムはメモを自分で書く:開始後に採掘された最初のビットコインブロックを待つ。
事前採掘も開発者の取り分もない。 ジェネシスには使用可能な出力がない。最初のコインは第 1 ブロックから、誰とも同じ規則で採掘される。
7. 正直な限界
- 計算力の過半数を握った者は新しい取引を検閲できる。第 5 節の対策は、過去の書き換えを難しくするだけである。
- 対策の多くはノードのポリシーである。100 ブロックより長くネットワークから切り離されたノードは、メインのチェーンへ自動では戻らず、手作業での判断が要る。ゼロから同期するノードは、最初に見た有効なチェーンを取る。
- アンカー報酬では最初に入ったものが受け取る。マイナーは他人の請求を外し、自分の(本物の)アンカーの請求を入れることができる。これはセキュリティを損なわない(どちらにしてもブロックはアンカーされている)が、報酬が誰に渡るかには影響する。
- ローンチ時のネットワークは小さい。プロセッサだけのネットワークでは、ブロックは 15 分より遅く来る。
- ピア間の通信はまだ暗号化されていない(内容はもともと公開のチェーンであり、問題はプライバシーと盗聴・改ざんである)。Android 向けの本物のアプリパッケージはない。プログラムはコード署名(Authenticode)を持たず、配布物は SHA-256 のダイジェストと SLH-DSA のファイル署名で検証する。
- ブリッジのビットコイン側は ECDSA であり、量子耐性はない。鍵はスワップごとに新しく、数時間だけ使われる。
- 科学レイヤー(
BILIM_KATMANI.md)は草案であり、コンセンサス規則には含まれない。
付録:パラメータの要約
| パラメータ | メインネット | テストネットワーク(--lab) |
|---|---|---|
| ジェネシスのターゲット | 0x7C00DA73 | 0x807FFFFF(nonce 27) |
下限(POW_LIMIT) | 0x7C0FFFFF | 0x807FFFFF |
| ブロック間隔 / ASERT の半減時間 | 900 秒 / 12 時間 | 120 秒 / 2 時間 |
| 開始時刻 | 2026-11-03 10:10 イスタンブール | なし |
| ブロック報酬 / 半減 | 75 コイン / 140,000 ブロック | 10 コイン / 140,000 ブロック |
| アンカーの間隔 | 4 ブロック | 10 ブロック |
| ビットコインのネットワーク / アンカーの下限 | ビットコインのメインネット / 2^182 | testnet4 または regtest / 0x207FFFFF |
| ビットコインのチェックポイント | #971,712 | testnet4 #157,248、regtest のジェネシス |
| ピアプロトコル | 3 | 3 |
検証:bitcoin101 test(223 の確認)、bitcoin101 nist-test、bitcoin101 fuzz、araclar/zorluk_test.cpp、
araclar/genesis_dogrula.py。エンドツーエンドでは、本物の Bitcoin Core 31.1 の regtest に対して araclar/capa_testi.py(44/44)と
araclar/kopru_testi.py(41/41)、アプリについては araclar/uygulama_testi.py(44/44)。
