BTC

BitcoinDAO

「Bitcoin: A Peer-to-Peer Electronic Cash System」
Satoshi Nakamoto, 2008/10/31

ビットコインの歴史

サトシナカモトは「ビットコインをこう作ってください」という設計図(ホワイトペーパー)を世界に公開しました。
ところが、その設計図の一番大事な約束が破られてしまいました。

たとえば、街で「迷い猫をさがしています。見つけてくれたら1万円差し上げます」というポスターを見かけたことはありませんか?
これは法律では「」と呼ばれるもので、ポスターを貼った人は、猫を見つけてくれた人に お礼を払う義務があります。

サトシナカモトのホワイトペーパーも同じです。 「この仕様どおりにビットコインを作ってください」 という設計指示書であり、法的に片務契約の要件を満たしています。

しかし現在、このホワイトペーパーの仕様に忠実に従っているビットコインネットワークは存在しません。
これが暗号資産業界の最大の課題です。

出典:本コンテンツは、(約300万ページ)をもとに、ビットコイン領域に関係する部分を整理・解説したものです。

ビットコインがそうなった経緯

「関係者A」がを通じての給与を支払い、彼らを取り込む。に共同投資した「関係者A」と「関係者B」は、したタイミングでBitcoin Core開発に資金を提供し始めた。
Blockstreamがのプロトタイプをリリース。 BitcoinとLiquidの間で資産を移転可能にするもの。
がマージされる。ホワイトペーパー Section 2 の が覆される。
戦略の本質
メール内には、ビットコインをあえてホワイトペーパー通りではなくダウングレードさせることで、自社グループのという意図と戦略が記載されている。
2026年 現在
その戦略通りに進んでしまったため、2026年現在においても ビットコインはホワイトペーパー通りのプロトコルを取り戻せていない。PR #6871 のマージから10年以上が経過したが、一切改善されていない。
Bitcoin Core v0.12.0 / PR #6871 — commit 5891f870 ()

2015年11月27日 マージ

2026年現在も未改善 — 10年以上放置されている

src/main.cpp —

BEFORE(〜v0.11 — RBF導入前)
// Check for conflicts with in-memory transactions
{
    LOCK(pool.cs); // protect pool.mapNextTx
    for (unsigned int i = 0; i < tx.vin.size(); i++)
    {
        COutPoint outpoint = tx.vin[i].prevout;
        if (pool.mapNextTx.count(outpoint))
        {
            // Disable replacement feature for now
            return false;          // ← 衝突したら即リジェクト
        }
    }
}

first-seen ルール:メンプール内のtxと入力が衝突したら、問答無用で拒否。差し替えは一切不可。

// Disable replacement feature for now
→ 差し替え機能は「今は無効」。最初に見たtxが勝つ。

AFTER(v0.12.0 — PR #6871、2015/11/27)
set<uint256> setConflicts;
{
    LOCK(pool.cs); // protect pool.mapNextTx
    BOOST_FOREACH(const CTxIn &txin, tx.vin)
    {
        if (pool.mapNextTx.count(txin.prevout))
        {
            const CTransaction *ptxConflicting =
                pool.mapNextTx[txin.prevout].ptx;
            if (!setConflicts.count(
                    ptxConflicting->GetHash()))
            {
                // Allow opt-out of transaction
                // replacement by setting
                // nSequence >= maxint-1 on all inputs.
                bool fReplacementOptOut = true;
                BOOST_FOREACH(const CTxIn &txin,
                    ptxConflicting->vin)
                {
                    if (txin.nSequence <
                        std::numeric_limits<unsigned int>
                            ::max()-1)
                    {
                        fReplacementOptOut = false;
                        break;
                    }
                }
                if (fReplacementOptOut)
                    return state.Invalid(false,
                        REJECT_CONFLICT,
                        "txn-mempool-conflict");

                setConflicts.insert(
                    ptxConflicting->GetHash());
            }
        }
    }
}

RBF導入:「衝突=即拒否」をやめ、nSequenceシグナル + BIP125ルールを満たせば差し替えを許可

// Allow opt-out of transaction replacement
→ first-seen は opt-in で放棄可能に。

この変更がもたらした結果

Before — ホワイトペーパー準拠

マイナーたちが送金トランザクションの有効性を直ちにチェック・伝播。first-seen ルールにより、一度ネットワークに受け入れられたtxは 事実上覆せない。

→ 支払ってすぐに商品を受け取る決済体験が可能

After — ホワイトペーパー違反

RBFにより、未承認txはより高い手数料で差し替え可能に。支払いを受けた商人は、ブロックに取り込まれるまで 安心できない。

→ 10分間(1ブロック)待たないと決済が確定しない

即時決済の崩壊

Whitepaper Section 2:

“the earliest transaction is the one that counts”

RBFはこの原則を覆し、「最も手数料の高いtxが勝つ」モデルに変えた。
サトシが設計した「ピア・ツー・ピアの電子キャッシュ」は、 もはや即座に使えるキャッシュではなくなった。