{
  "$schema": "https://degreesofsatoshi.com/encyclopedia/schemas/article-v1.json",
  "schemaVersion": "1.0.0",
  "id": "bitcoin-merkle-proofs",
  "canonical": "https://degreesofsatoshi.com/encyclopedia/bitcoin-merkle-proofs/",
  "collection": "bitcoin",
  "title": "Bitcoin Merkle proofs: proving inclusion without the full block",
  "description": "Understand how a transaction inclusion proof connects a Bitcoin transaction to a block header and which questions that proof does not answer.",
  "aliases": [],
  "dates": {
    "published": "2026-10-02",
    "modified": "2026-10-02",
    "verified": "2026-10-02T18:15:23.891Z",
    "dataAsOf": "2026-10-02"
  },
  "authorship": {
    "publisher": "Degrees of Satoshi editorial project",
    "process": "AI-assisted research and drafting with a separate automated source-verification pass; no external expert or named human review is implied."
  },
  "quickAnswer": {
    "text": "A Bitcoin Merkle proof supplies the sibling hashes needed to connect a transaction hash to the Merkle root in a block header. It can demonstrate inclusion in that committed transaction tree, assuming the relevant hashing rules. It does not by itself establish block validity, the accepted chain, current unspentness or ownership.",
    "claimId": "bitcoin-merkle-proofs-quick-answer",
    "sourceIds": [
      "bitcoin-dev-blockchain",
      "bitcoin-whitepaper"
    ]
  },
  "keyFacts": [
    {
      "label": "Commitment",
      "value": "A block header contains a Merkle root for the transaction tree.",
      "sourceIds": [
        "bitcoin-dev-blockchain"
      ],
      "id": "commitment",
      "claimId": "bitcoin-merkle-proofs-fact-commitment"
    },
    {
      "label": "Proof size",
      "value": "The branch needs hashes along the path rather than every transaction body.",
      "sourceIds": [
        "bitcoin-whitepaper"
      ],
      "id": "proof-size",
      "claimId": "bitcoin-merkle-proofs-fact-proof-size"
    },
    {
      "label": "Scope",
      "value": "Inclusion is different from independently checking all transaction rules.",
      "sourceIds": [
        "bitcoin-whitepaper"
      ],
      "id": "scope",
      "claimId": "bitcoin-merkle-proofs-fact-scope"
    }
  ],
  "prerequisites": [
    "anatomy-of-a-bitcoin-block"
  ],
  "sections": [
    {
      "id": "branch",
      "heading": "Reconstruct the root step by step",
      "sourceIds": [
        "bitcoin-dev-blockchain"
      ],
      "paragraphs": [
        "Start with the transaction’s hash. Combine it with a sibling hash in the specified order, hash the pair and continue with the next sibling until reaching the root. Compare the result with the header’s committed root.",
        "A proof must include enough ordering information to reconstruct the correct path. Bitcoin’s treatment of an odd number of tree entries is part of the tree algorithm, not an invitation to choose arbitrary padding."
      ]
    },
    {
      "id": "header",
      "heading": "A matching root is only one check",
      "sourceIds": [
        "bitcoin-whitepaper"
      ],
      "paragraphs": [
        "An attacker can present a header from an irrelevant branch or a made-up chain. A client must establish which headers it accepts and evaluate the work and chain context.",
        "Full validation checks much more than a root: transactions must satisfy input, script and value rules. A Merkle branch cannot replace those checks."
      ]
    },
    {
      "id": "current-state",
      "heading": "Historical inclusion does not prove an unspent balance",
      "sourceIds": [
        "bitcoin-dev-transactions",
        "bitcoin-dev-blockchain"
      ],
      "paragraphs": [
        "A receipt included years ago may have been spent later. Its inclusion proof remains a statement about that old block, not a current ownership certificate.",
        "When an interface advertises “proof,” identify the exact proposition being demonstrated and what additional data or trust is needed for the conclusion you care about."
      ]
    }
  ],
  "faq": [
    {
      "question": "Does an inclusion proof show who owns a transaction?",
      "answer": "No. It links transaction data to a block commitment. It does not identify a person or demonstrate possession of the keys required to spend an output.",
      "sourceIds": [
        "bitcoin-whitepaper",
        "bitcoin-dev-transactions"
      ]
    }
  ],
  "claims": [
    {
      "id": "bitcoin-merkle-proofs-quick-answer",
      "articleSlug": "bitcoin-merkle-proofs",
      "statement": "A Bitcoin Merkle proof supplies the sibling hashes needed to connect a transaction hash to the Merkle root in a block header. It can demonstrate inclusion in that committed transaction tree, assuming the relevant hashing rules. It does not by itself establish block validity, the accepted chain, current unspentness or ownership.",
      "sourceIds": [
        "source-190b9fe0eec933dc",
        "source-0e46aca4dbc5a030"
      ],
      "sourceLocators": [
        {
          "sourceId": "source-190b9fe0eec933dc",
          "locator": "Proof Of Work; Block Height And Forking; Transaction Data"
        },
        {
          "sourceId": "source-0e46aca4dbc5a030",
          "locator": "Sections 4–5 and 7–11"
        }
      ],
      "scope": {
        "collection": "bitcoin",
        "dataAsOf": "2026-10-02",
        "blockHeight": null
      },
      "qualification": "",
      "evidenceStatus": "documented",
      "verification": {
        "status": "verified",
        "method": "independent automated source review",
        "checkedAt": "2026-10-02T18:15:23.891Z",
        "reviewer": "Independent automated verification agent verify_bitcoin_stablecoins_100",
        "notes": [
          "Checked the developer guide Transaction Data tree algorithm, ordering and odd-leaf duplication, and white-paper sections 7–8. Matching a commitment is scoped to inclusion, not independent full transaction validation.",
          "Current unspentness, accepted-chain selection and identity require additional evidence; historical inclusion is not an ownership certificate."
        ]
      }
    },
    {
      "id": "bitcoin-merkle-proofs-fact-commitment",
      "articleSlug": "bitcoin-merkle-proofs",
      "statement": "Commitment: A block header contains a Merkle root for the transaction tree.",
      "sourceIds": [
        "source-190b9fe0eec933dc"
      ],
      "sourceLocators": [
        {
          "sourceId": "source-190b9fe0eec933dc",
          "locator": "Proof Of Work; Block Height And Forking; Transaction Data"
        }
      ],
      "scope": {
        "collection": "bitcoin",
        "dataAsOf": "2026-10-02",
        "blockHeight": null
      },
      "qualification": "",
      "evidenceStatus": "documented",
      "verification": {
        "status": "verified",
        "method": "independent automated source review",
        "checkedAt": "2026-10-02T18:15:23.891Z",
        "reviewer": "Independent automated verification agent verify_bitcoin_stablecoins_100",
        "notes": [
          "Checked the developer guide Transaction Data tree algorithm, ordering and odd-leaf duplication, and white-paper sections 7–8. Matching a commitment is scoped to inclusion, not independent full transaction validation.",
          "Current unspentness, accepted-chain selection and identity require additional evidence; historical inclusion is not an ownership certificate."
        ]
      }
    },
    {
      "id": "bitcoin-merkle-proofs-fact-proof-size",
      "articleSlug": "bitcoin-merkle-proofs",
      "statement": "Proof size: The branch needs hashes along the path rather than every transaction body.",
      "sourceIds": [
        "source-0e46aca4dbc5a030"
      ],
      "sourceLocators": [
        {
          "sourceId": "source-0e46aca4dbc5a030",
          "locator": "Sections 4–5 and 7–11"
        }
      ],
      "scope": {
        "collection": "bitcoin",
        "dataAsOf": "2026-10-02",
        "blockHeight": null
      },
      "qualification": "",
      "evidenceStatus": "documented",
      "verification": {
        "status": "verified",
        "method": "independent automated source review",
        "checkedAt": "2026-10-02T18:15:23.891Z",
        "reviewer": "Independent automated verification agent verify_bitcoin_stablecoins_100",
        "notes": [
          "Checked the developer guide Transaction Data tree algorithm, ordering and odd-leaf duplication, and white-paper sections 7–8. Matching a commitment is scoped to inclusion, not independent full transaction validation.",
          "Current unspentness, accepted-chain selection and identity require additional evidence; historical inclusion is not an ownership certificate."
        ]
      }
    },
    {
      "id": "bitcoin-merkle-proofs-fact-scope",
      "articleSlug": "bitcoin-merkle-proofs",
      "statement": "Scope: Inclusion is different from independently checking all transaction rules.",
      "sourceIds": [
        "source-0e46aca4dbc5a030"
      ],
      "sourceLocators": [
        {
          "sourceId": "source-0e46aca4dbc5a030",
          "locator": "Sections 4–5 and 7–11"
        }
      ],
      "scope": {
        "collection": "bitcoin",
        "dataAsOf": "2026-10-02",
        "blockHeight": null
      },
      "qualification": "",
      "evidenceStatus": "documented",
      "verification": {
        "status": "verified",
        "method": "independent automated source review",
        "checkedAt": "2026-10-02T18:15:23.891Z",
        "reviewer": "Independent automated verification agent verify_bitcoin_stablecoins_100",
        "notes": [
          "Checked the developer guide Transaction Data tree algorithm, ordering and odd-leaf duplication, and white-paper sections 7–8. Matching a commitment is scoped to inclusion, not independent full transaction validation.",
          "Current unspentness, accepted-chain selection and identity require additional evidence; historical inclusion is not an ownership certificate."
        ]
      }
    }
  ],
  "sources": [
    {
      "id": "bitcoin-dev-blockchain",
      "label": "Bitcoin Developer Guide: Block Chain",
      "publisher": "Bitcoin developer documentation contributors",
      "url": "https://developer.bitcoin.org/devguide/block_chain.html",
      "locator": "Proof Of Work; Block Height And Forking; Transaction Data",
      "note": "Block headers, transaction Merkle trees and competing valid branches.",
      "version": null,
      "checkedAt": "2026-10-02T17:03:41.181Z",
      "contentSha256": "0102eb1bda0d084051a86735e4b293dadc5a93b2bee93ad71c62cfeb855f1583",
      "recordId": "source-190b9fe0eec933dc"
    },
    {
      "id": "bitcoin-whitepaper",
      "label": "Bitcoin: A Peer-to-Peer Electronic Cash System",
      "publisher": "Satoshi Nakamoto",
      "url": "https://bitcoin.org/bitcoin.pdf",
      "locator": "Sections 4–5 and 7–11",
      "note": "Most-work chain selection, Merkle inclusion, SPV limits and transaction change.",
      "version": "2008 paper",
      "checkedAt": "2026-10-02T17:03:41.335Z",
      "contentSha256": "b1674191a88ec5cdd733e4240a81803105dc412d6c6708d53ab94fc248f4f553",
      "recordId": "source-0e46aca4dbc5a030"
    },
    {
      "id": "bitcoin-dev-transactions",
      "label": "Bitcoin Developer Guide: Transactions",
      "publisher": "Bitcoin developer documentation contributors",
      "url": "https://developer.bitcoin.org/devguide/transactions.html",
      "locator": "P2PKH Script Validation; Transaction Fees And Change",
      "note": "UTXO inputs, transaction outputs, change and the difference paid as a fee.",
      "version": null,
      "checkedAt": "2026-10-02T17:03:41.190Z",
      "contentSha256": "449ae88ea59f9b198c398d3f5f56f83a92cd6be1638fa6681a1fdeea164892c0",
      "recordId": "source-b282fdecc069b74d"
    }
  ],
  "related": {
    "articles": [
      "simplified-payment-verification",
      "bitcoin-block-reorganizations",
      "how-to-read-a-block-explorer"
    ],
    "dossiers": [],
    "wallets": []
  },
  "revisionHistory": [
    {
      "date": "2026-10-02",
      "kind": "published",
      "summary": "Initial Bitcoin encyclopedia entry at this permanent URL."
    },
    {
      "date": "2026-10-02",
      "kind": "publishing-format",
      "summary": "Added reusable claims, explicit source locators, and matching Markdown and JSON. This publishing change does not itself establish factual verification."
    }
  ],
  "citation": "Degrees of Satoshi editorial project. “Bitcoin Merkle proofs: proving inclusion without the full block.” Published 2026-10-02; updated 2026-10-02. https://degreesofsatoshi.com/encyclopedia/bitcoin-merkle-proofs/"
}
