Concept: A Content-Safe Bitcoin Full Node

Proposal: A Trustless, Content-Redacting Bitcoin Full Node

Status: Discussion draft / research proposal
Purpose: Solicit technical review, criticism, alternative designs, and implementation ideas.
Scope: This document proposes an architecture, not a finished protocol specification.
Forum note: Diagrams use fixed-width ASCII so this version renders on standard Discourse installations without Mermaid support.

Short description

This proposal explores a Bitcoin node architecture that can independently verify the valid Bitcoin chain without receiving, processing, storing, or relaying selected arbitrary-data regions embedded in otherwise valid Bitcoin transactions.

The core idea is to separate:

  1. Bitcoin consensus β€” which blocks and transactions are valid;
  2. deterministic redaction rules β€” which byte regions a safe node refuses to possess;
  3. cryptographic validity proofs β€” proving that the hidden bytes existed in the committed Bitcoin block and that the complete, unredacted block was consensus-valid; and
  4. peer-to-peer distribution β€” allowing safe representations and proofs to be generated by anyone and relayed by anyone without trusting the sender.

The proposed system does not require a trusted sanitizer, a federation, a blacklist operator, a voting system among provers, or a second blockchain. Ideally it also requires no Bitcoin consensus change.

The guiding principle is:

Hide bytes, not economic information, whenever possible. Every hidden byte must be hidden because a deterministic public rule requires itβ€”not because a prover chose to hide it.


1. Motivation

A conventional Bitcoin full node downloads and validates the complete serialized contents of every block it processes. Even when a node operator has no interest in arbitrary non-financial data embedded in transactions, the node normally must receive that data in order to independently validate the chain.

This creates a potential problem if arbitrary blockchain data contains material that an operator does not want to possess for legal, ethical, religious, organizational, or other reasons.

The desired node should therefore have two properties that normally appear to conflict:

Property A β€” Independent validation

The node should not have to trust a block explorer, API, centralized server, federation, or designated β€œclean copy” of Bitcoin.

Property B β€” Data avoidance

The node should be able to categorically refuse to receive selected byte regions that match deterministic structural rules.

The objective is not to determine whether data is morally acceptable, legal, offensive, copyrighted, artistic, or otherwise subjectively classified.

Instead, the software would identify structural mechanisms used to carry arbitrary data, according to a deterministic public policy.

Examples worth researching include rules conceptually similar to:

  • data-bearing OP_RETURN constructions above a defined threshold;
  • known non-executed script-envelope patterns;
  • data pushes within statically non-executed branches such as OP_FALSE OP_IF ... OP_ENDIF;
  • other script or witness regions that can be proven unnecessary to the executed spending condition and match explicit protocol rules.

The exact rules are intentionally left open for review.


2. Non-goals

This proposal is not intended to:

  • change which Bitcoin transactions are consensus-valid;
  • prevent miners from mining arbitrary data;
  • make transactions disappear from Bitcoin;
  • create a new blockchain;
  • create a committee that decides what Bitcoin contains;
  • establish subjective content moderation;
  • require safe nodes to trust a regulatory authority;
  • require safe nodes to trust proof generators;
  • introduce a second consensus mechanism;
  • redefine Bitcoin Core relay policy as Bitcoin consensus;
  • conceal ordinary financial transactions merely because somebody dislikes them.

A transaction may be completely valid Bitcoin while parts of its serialization qualify for redaction by the safe-node protocol.


3. Important Bitcoin property: the block header already commits to every transaction

A Bitcoin block header contains the transaction Merkle root. The block hash and proof of work are calculated from the block header, while the Merkle root cryptographically commits the header to the transactions in the block.

Conceptually:

                 Bitcoin block header
               β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
               β”‚ previous block hash β”‚
               β”‚ merkle root         β”‚
               β”‚ time                β”‚
               β”‚ target              β”‚
               β”‚ nonce               β”‚
               β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                          β”‚
                          β–Ό
                  transaction Merkle root
                          β”‚
                β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                β”‚                   β”‚
                β–Ό                   β–Ό
              branch              branch
              /   \               /   \
           txid   txid         txid   txid

Changing any committed transaction changes its transaction ID and therefore changes the Merkle root.

This means a safe node can independently:

  • obtain the Bitcoin header chain;
  • verify proof of work and chain selection;
  • know the transaction Merkle root selected by that proof of work;

without first receiving all transaction bytes.

However, a Merkle commitment by itself is not enough.

Knowing that a hidden transaction hash belongs in a block does not prove that the hidden transaction was consensus-valid.

That is the role of a validity proof.


4. Core architecture

The system has two broad node capabilities:

Full-data nodes

These are ordinary systems capable of receiving complete Bitcoin blocks.

Some full-data nodes may additionally generate cryptographic proofs.

Safe nodes

These deliberately refuse to receive byte regions classified for redaction.

They verify Bitcoin headers, safe block representations, cryptographic commitments, validity proofs, and state continuity.

There is no privileged prover.

                    Bitcoin P2P Network
                       complete blocks
                    /       |       \
                   /        |        \
                  v         v         v
        +---------------+ +---------------+ +---------------+
        | Full-data /   | | Full-data /   | | Full-data /   |
        | Prover A      | | Prover B      | | Prover C      |
        +-------+-------+ +-------+-------+ +-------+-------+
                |                 |                 |
                v                 v                 v
          +-----------+     +-----------+     +-----------+
          | Safe Node |<--->| Safe Node |<--->| Safe Node |
          |     1     |     |     2     |     |     3     |
          +-----+-----+     +-----------+     +-----+-----+
                ^                                   |
                |                                   v
                +-----------------------------+-----------+
                                              | Safe Node |
                                              |     4     |
                                              +-----------+

A safe node does not need to know whether the peer supplying a proof actually generated it.

A proof package may come from:

  • a proof generator;
  • another safe node;
  • an archive;
  • a cache;
  • removable media;
  • an untrusted mirror;
  • any other transport.

The sender is untrusted.

The proof is verified locally.


5. Why prover consensus should not be required

A tempting design would have multiple provers vote on the correct safe representation.

For example:

67% of registered provers agree that SafeBlock X is correct.

This proposal explicitly avoids that design.

A prover quorum creates an additional consensus problem:

  • Who qualifies as a prover?
  • How are votes weighted?
  • Can identities be Sybil-attacked?
  • What happens if a majority colludes?
  • What happens during a network partition?
  • Why should safe nodes trust this consensus rather than Bitcoin consensus?

Instead:

Bitcoin determines the canonical chain. Deterministic rules determine the canonical redaction. Cryptographic proofs determine whether those rules were applied correctly.

A single valid proof should be sufficient.

Correct provers do not need to agree with one another by communication; they independently evaluate the same deterministic function.

                       Bitcoin block B
                            β”‚
            β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
            β–Ό               β–Ό               β–Ό
         Prover A         Prover B         Prover C
            β”‚               β”‚               β”‚
            β–Ό               β–Ό               β–Ό
      Transform(B)    Transform(B)    Transform(B)
            β”‚               β”‚               β”‚
            β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                            β–Ό
                same canonical result

Multiple provers improve availability and censorship resistance, not truth.


6. Deterministic redaction

The protocol should define a pure deterministic operation such as:

CanonicalRedact(transaction) -> SafeTransaction

For a particular protocol version, the same transaction must always result in the same safe representation.

No prover discretion should exist.

Conceptually:

if region_matches_redaction_rule(region):
    replace region with canonical commitment
else:
    preserve exact bytes

The protocol should strongly prefer partial redaction over hiding an entire transaction.

For example:

Original transaction
β”œβ”€β”€ version                         RETAIN
β”œβ”€β”€ inputs
β”‚   β”œβ”€β”€ previous output             RETAIN
β”‚   β”œβ”€β”€ sequence                    RETAIN
β”‚   └── witness
β”‚       β”œβ”€β”€ signature               RETAIN
β”‚       β”œβ”€β”€ executed script logic   RETAIN
β”‚       β”œβ”€β”€ arbitrary data region   REDACT
β”‚       └── control information     RETAIN
β”œβ”€β”€ outputs                         RETAIN
└── locktime                        RETAIN

This allows the safe node to retain as much directly useful Bitcoin information as possible.


7. Canonical redaction representation

A conceptual safe representation might look like:

SafeTransaction {
    protocol_version

    retained_regions[]

    redacted_regions[] {
        position
        original_length
        commitment
        rule_id
    }

    txid_commitment
    wtxid_commitment_if_applicable
}

This is illustrative only.

For example, an arbitrary-data envelope might be transformed conceptually from:

OP_FALSE
OP_IF
    <large arbitrary byte sequence>
OP_ENDIF
<executed spending condition>

into something like:

OP_FALSE
OP_IF
    REDACTED_REGION {
        length: 347221
        commitment: 9e81... 
        rule: NON_EXECUTED_DATA_ENVELOPE
    }
OP_ENDIF
<executed spending condition>

The safe representation is not a Bitcoin transaction and must not be confused with one.

It is a separate representation whose relationship to the real transaction is cryptographically proven.


8. Structural rules, not content classification

The redaction rules should avoid interpreting the human meaning of bytes.

Bad rule:

Redact material that appears offensive.

Bad rule:

Redact illegal imagery.

Bad rule:

Redact gibberish.

These require subjective interpretation or content inspection.

Instead, rules should be defined in machine-verifiable terms.

Conceptual examples:

RULE_001:
A qualifying OP_RETURN construction whose serialized data-bearing
region exceeds threshold X.

RULE_002:
A qualifying statically non-executed data envelope matching an
exact script structure.

RULE_003:
A qualifying region of witness/script data that is provably outside
the executed validation path and satisfies precisely specified size
and structural requirements.

The terms qualifying, threshold, and exact script semantics would need rigorous specification.

An especially relevant known construction is the Ordinals inscription envelope, in which inscription content is serialized as data pushes inside an unexecuted OP_FALSE OP_IF ... OP_ENDIF conditional.

The proposal should not special-case a brand, protocol, political viewpoint, MIME type, or human-readable content. It should describe byte-level structures.


9. The anti-censorship property

A critical requirement is that a malicious prover must not be able to hide arbitrary transactions or arbitrary fields.

Suppose a transaction contains an ordinary payment and no region qualifies for redaction.

A malicious prover sends:

[HIDDEN TRANSACTION]

The proof must fail because:

CanonicalRedact(real_transaction) != supplied_safe_representation

Likewise, suppose only one region qualifies but the prover attempts to conceal the recipient and amount.

Again:

CanonicalRedact(real_transaction) != supplied_safe_representation

The proof fails.

This gives the system an important property:

A prover cannot decide what to censor. It can only prove the deterministic transformation defined by the protocol.

Changing what gets redacted therefore requires changing the safe-node software/protocol rules, not convincing a sanitizer or federation.


10. The validity proof

For a safe representation S, the prover possesses the original transaction or block B.

At a high level, the proof should establish a statement resembling:

There exists a complete Bitcoin block B such that:

1. B corresponds to the advertised Bitcoin block header.

2. The transaction Merkle root of B equals the Merkle root
   committed to by that header.

3. B satisfies Bitcoin consensus rules relative to the valid
   previous chain state.

4. Applying every transaction in B produces the claimed next
   chain state.

5. Applying CanonicalRedact() to B produces exactly the supplied
   SafeBlock representation S.

6. Every omitted byte is therefore omitted only where the
   public redaction rules permit omission.

The hidden portions are private witness data to the proof system.

The safe representation, block header, state commitments, protocol version, and other required values are public inputs.

                    Complete Bitcoin Block
                      (private to prover)
                              |
          +-------------------+-------------------+
          |                   |                   |
          v                   v                   v
 +------------------+  +----------------+  +------------------+
 | Bitcoin consensus|  | CanonicalRedact|  | Bitcoin Merkle   |
 | validation       |  |      ()        |  | commitment       |
 +---------+--------+  +-------+--------+  +---------+--------+
           \                  |                    /
            \                 |                   /
             \                v                  /
              \        +---------------+        /
               +------>| State         |<------+
                       | transition    |
                       +-------+-------+
                               |
                               v
                       +---------------+
                       | Validity proof|
                       +-------+-------+
                               |
                               v
                         +-----------+
                         | Safe Node |
                         +-----------+

The exact proof circuit may organize these checks differently; the important point is that the proof binds all of them to the same complete block.

The safe node learns that the claims are true without receiving the redacted bytes.


11. Merkle proofs versus zero-knowledge validity proofs

These solve different problems.

Merkle commitment

Bitcoin’s existing transaction Merkle root allows a verifier to establish that transaction hashes are committed to by the proof-of-work-secured block header.

It does not establish that an unseen transaction:

  • spent existing UTXOs;
  • had valid signatures;
  • satisfied Bitcoin Script;
  • obeyed locktime and sequence rules;
  • avoided double spending;
  • obeyed block-level consensus constraints;
  • caused the claimed UTXO state transition.

Validity proof

The validity proof can establish those properties while keeping designated bytes private.

Therefore, this proposal likely needs both:

Bitcoin PoW
    ↓
Block header
    ↓
Transaction Merkle commitment
    ↓
Validity proof over complete hidden/visible block data
    ↓
Verified safe representation

12. State validation and the UTXO problem

Hiding transaction bytes introduces an important state problem.

Suppose a redacted transaction creates an output that is spent years later.

The safe node must still know that:

  1. the output really existed;
  2. its value and spending conditions were what the later transaction requires;
  3. it had not already been spent.

A conventional node learns this by processing the complete transaction and maintaining the UTXO set.

A safe node therefore needs a cryptographically committed chain state.

Conceptually:

State commitment N
        β”‚
        β”‚ + Bitcoin block N+1
        β”‚ + validity proof
        β–Ό
State commitment N+1
        β”‚
        β”‚ + Bitcoin block N+2
        β”‚ + validity proof
        β–Ό
State commitment N+2

Utreexo is especially relevant research here because it defines a dynamic hash accumulator for Bitcoin’s UTXO set and mechanisms for validation against that committed state.

The final design need not necessarily use Utreexo unchanged, but it should study and reuse established work wherever practical.


13. Recursive proofs and trustless bootstrapping

A new safe node should ideally not need a trusted UTXO snapshot or checkpoint.

A long-term architecture could use recursive proofs so that a current proof cryptographically attests to the validity of prior state transitions.

Conceptually:

Genesis-defined      Proof 1      State 1      Proof 2      State 2
 initial state   --->   |    --->    |    --->   |    --->    |
                                                        ...   |
                                                              v
                                                   +-------------------+
                                                   | Recursive proof   |
                                                   | through height N  |
                                                   +---------+---------+
                                                             |
                                                             v
                                                          State N

A newly installed node could then bootstrap from:

  • Bitcoin consensus rules;
  • the proof-of-work header chain or a proof that correctly commits to it;
  • a succinct recursive validity proof;
  • the current safe state representation.

No trusted prover identity is required.

Projects such as ZeroSync and Raito demonstrate related research directions involving STARK proofs for Bitcoin chain state. They should be treated as research references rather than assumed production-ready components.


14. SafeBlock: a possible transport object

A useful protocol abstraction may be a deterministic object such as:

SafeBlock {
    safe_protocol_version

    bitcoin_block_header
    bitcoin_block_hash

    previous_safe_state_commitment
    resulting_safe_state_commitment

    safe_transactions[]

    redaction_summary

    canonical_representation_root

    validity_proof
}

The exact structure is open for design.

A key goal is:

same Bitcoin block
+ same Safe protocol version
= same canonical SafeBlock representation

Proof bytes themselves may differ depending on proof-system properties, but the committed semantic representation should not.


15. Merkleizing the safe representation

SafeBlock data could itself be represented by a Merkle tree or other content-addressed structure.

                         SafeBlockRoot
                       /               \
                      /                 \
             MetadataRoot             DataRoot
                                      /      \
                                     /        \
                              retained      redaction
                               data         commitments

Potential benefits:

  • integrity checking;
  • parallel downloads;
  • deduplication;
  • caching;
  • resumable synchronization;
  • selective retrieval;
  • content-addressed P2P distribution;
  • efficient proof-package sharing.

Safe nodes could request pieces by hash without trusting the peer serving them.


16. P2P distribution

The safe network should behave as a peer-to-peer network rather than a hierarchy under prover infrastructure.

       Prover A              Prover B              Prover C
          |                     |                     |
          v                     v                     v
      +--------+            +--------+            +--------+
      | Safe 1 |<---------->| Safe 2 |<---------->| Safe 3 |
      +---+----+            +---+----+            +---+----+
          |                     |                     |
          |                     |                     |
          |                 +---v----+                |
          +---------------->| Safe 5 |<---------------+
                            +---+----+
                                |
                                v
                            +--------+
                            | Safe 4 |
                            +--------+

Any safe peer may relay a valid proof package. The receiving node verifies
it locally; the relay peer does not become trusted merely by forwarding it.

Once one valid proof package exists, any safe node can verify, cache, and relay it.

A safe node receiving a package from another peer asks only:

Does this verify?

not:

Do I trust this peer?

This makes proof generation permissionless and proof distribution fully decentralized.


17. Availability versus trust

Multiple provers remain useful, but not because the safe node takes a majority vote.

Safety

Cryptographic verification protects the safe node from incorrect prover output.

Availability

Many independent proof generators make it difficult for one organization or jurisdiction to prevent safe nodes from obtaining proofs.

Therefore:

1 valid proof = sufficient for correctness

many independent provers = better availability

A malicious prover can:

  • waste bandwidth;
  • refuse to respond;
  • delay generating a proof;
  • send an invalid proof.

It should not be able to make a valid safe node accept an invalid Bitcoin state or unauthorized redaction.


18. No encrypted copy of redacted payloads

The preferred design should avoid sending an encrypted or reversibly encoded copy of excluded bytes to safe nodes.

Instead, safe nodes should receive only information necessary for cryptographic verification, such as:

  • cryptographic commitments;
  • original byte length where required;
  • location/structural metadata;
  • rule identifier;
  • proof data.

For example:

RedactedRegion {
    offset: ...
    length: ...
    commitment: SHA256(... or protocol-defined commitment)
    rule_id: ...
}

The underlying bytes should never cross the safe node’s trust boundary.

The legal significance of hashes, commitments, ciphertext, metadata, or other derived information will vary by jurisdiction and requires separate legal analysis. The technical design should nevertheless minimize exposure by construction.


19. Suggested classifications

A useful protocol may distinguish three outcomes:

RETAIN

The exact original bytes are delivered to the safe node.

REDACT

A particular byte region is replaced with a cryptographic commitment and associated proof metadata.

OPAQUE

The protocol cannot safely expose a useful partial representation, so a larger structure must remain hidden.

The design goal should be:

Minimize OPAQUE. Prefer precise REDACT. Preserve RETAIN wherever possible.

This allows the safe node to directly inspect and validate as much conventional Bitcoin data as possible.


20. Relationship to Bitcoin relay policy

Safe-node redaction rules must not be confused with:

  • Bitcoin consensus rules;
  • Bitcoin Core standardness rules;
  • mempool policy;
  • miner transaction-selection policy;
  • historical defaults such as data-carrier limits.

For example, it may be perfectly coherent for:

Bitcoin consensus: VALID
Safe protocol:     REDACT REGION

The Safe protocol is determining what its nodes are willing to possess, not whether Bitcoin accepts the transaction.

Terminology such as RETAIN and REDACT is preferable to VALID, INVALID, STANDARD, or NONSTANDARD.


21. Mempool behavior

This proposal primarily addresses data that has already been mined into blocks.

Mempool behavior can be treated separately.

A safe node could have a conservative mempool policy that simply declines to request or relay transaction forms likely to contain qualifying arbitrary-data regions.

That does not affect consensus validation of mined blocks.

Possible future work could explore proof-carrying sanitized unconfirmed transactions, but that should not complicate the initial design.


22. Compatibility with ordinary Bitcoin peers

A safe node cannot be a perfect archival substitute for an ordinary full-data node.

If it deliberately does not possess redacted bytes, it cannot later serve those bytes to another peer.

It can, however, potentially participate in many normal node activities:

  • validating proof of work;
  • following the most-work valid Bitcoin chain;
  • wallet transaction verification;
  • maintaining or verifying UTXO state;
  • relaying retained transactions;
  • relaying safe representations;
  • serving safe proof packages;
  • monitoring chain reorganizations;
  • exposing Bitcoin RPC functionality that does not require the omitted content.

A separate service bit and/or P2P protocol extension would likely be appropriate so peers know which data the node can serve.

(continued in next post)


23. Reorganizations

Chain reorganizations require explicit treatment.

Safe state should be associated with the exact Bitcoin block hash, not merely height.

For example:

SafeState {
    bitcoin_tip_hash
    bitcoin_height
    state_commitment
}

If the Bitcoin node identifies a stronger competing branch, the safe node must verify proofs for the replacement branch and roll its state back/forward accordingly.

The safe protocol must never create its own notion of β€œcanonical chain.”

Bitcoin proof of work remains authoritative.


24. Protocol versioning

Deterministic redaction policy is consensus-like within the safe protocol, even though it is not Bitcoin consensus.

Therefore it must be versioned very carefully.

For example:

Safe Protocol v1
Safe Protocol v2
...

A SafeBlock must identify the rule set under which it was produced.

Changing a redaction rule can change the canonical safe representation of a Bitcoin block.

Possible upgrade strategies need review, but an implementation must never silently reinterpret historic SafeBlocks under a different rule set.


25. Security model

A safe node should ideally trust only:

  • Bitcoin’s cryptographic assumptions;
  • Bitcoin’s consensus rules;
  • the soundness assumptions of the selected proof system;
  • the correctness of its local proof verifier;
  • the correctness of its local safe-protocol implementation.

It should not have to trust:

  • a proof generator;
  • a sanitizer;
  • another safe peer;
  • a block explorer;
  • a UTXO snapshot provider;
  • a federation;
  • an exclusion-list operator;
  • a majority of provers.

Conceptually:

TRUST / SECURITY ASSUMPTIONS
----------------------------
Bitcoin consensus implementation
Bitcoin proof-of-work assumptions
cryptographic hash assumptions
proof-system soundness
local verifier correctness
Safe protocol implementation


NOT TRUSTED
-----------
prover identity
peer identity
proof distributor
cache
mirror
individual full-data node
individual safe node

26. Failure modes to design for

Invalid proof

Reject.

Correct block, incorrect redaction

Proof must fail.

Correct redaction, invalid Bitcoin transaction

Proof must fail.

Prover hides additional financial fields

Proof must fail canonical-redaction verification.

Prover refuses service

Request the object from another prover or safe peer.

Safe peer sends corrupted data

Hash/proof verification fails.

Two provers generate different canonical SafeBlock commitments

At least one implementation is buggy, malicious, or using a different protocol version. No voting should resolve this; local deterministic verification should.

Proof system vulnerability

This is a severe systemic risk. Proof systems and verifier implementations require exceptional scrutiny, multiple implementations where possible, reproducible test vectors, and conservative deployment.


27. Potential implementation strategy

A full Bitcoin node implementation is not the best first experiment.

A staged sidecar prototype would make the cryptographic questions easier to isolate.

Phase 0 β€” Formalize the problem

Specify:

  • threat model;
  • exact definition of β€œnever receive”;
  • protocol boundaries;
  • which Bitcoin fields must remain visible;
  • initial redaction predicates.

Phase 1 β€” Canonical redaction only

Input:

ordinary Bitcoin transaction

Output:

deterministic SafeTransaction

No zero-knowledge proof yet.

Build extensive test vectors.

Phase 2 β€” Block commitment proof

Given a real Bitcoin block and one intentionally hidden region, prove that the safe representation corresponds to transactions committed by the block’s Merkle root.

Phase 3 β€” Hidden transaction validity

Prove relevant transaction parsing and consensus properties without exposing the redacted region.

Phase 4 β€” Full state transition

Prove that processing the complete block correctly transforms previous UTXO state into next UTXO state.

Phase 5 β€” State accumulator

Integrate or adapt an authenticated UTXO representation, studying Utreexo closely.

Phase 6 β€” Recursive chain proof

Allow a new node to bootstrap state without trusting a checkpoint.

Phase 7 β€” Safe P2P protocol

Add decentralized discovery, retrieval, caching, and relay of SafeBlocks and proofs.

Phase 8 β€” Node integration

Integrate the verifier and safe state manager into a production-quality Bitcoin node implementation.


28. Prototype success criterion

An early end-to-end demonstration could deliberately choose one known transaction in one known historical block and manually mark a byte region for prototype redaction.

The verifier should receive:

  • the Bitcoin block header;
  • safe representations of the transactions;
  • retained bytes;
  • commitments replacing the chosen hidden bytes;
  • any required Merkle material;
  • state commitments;
  • a cryptographic proof.

The verifier must be able to demonstrate:

βœ“ block header satisfies the expected Bitcoin PoW rules

βœ“ safe data corresponds to transactions committed by the
  header's transaction Merkle root

βœ“ the unseen original transaction/block data satisfies
  Bitcoin consensus

βœ“ the hidden region satisfies the deterministic redaction predicate

βœ“ no non-qualifying region was omitted

βœ“ the block transforms prior state into the claimed new state

βœ“ the verifier never receives the hidden byte sequence

That would establish the core feasibility of the project before attempting a complete node.


29. Research questions

The proposal needs substantial review in at least these areas.

Bitcoin consensus semantics

Can all required validation behavior be represented efficiently in the selected proof system?

Transaction ID and witness commitments

What exact commitments must be exposed for legacy, SegWit, and Taproot transactions while withholding qualifying regions?

Redaction granularity

Can most arbitrary-data carrier patterns be safely redacted at the byte-region level, or are there cases requiring whole-script, whole-witness, or whole-transaction opacity?

Static versus executed script analysis

How can the protocol rigorously prove that a byte region is semantically unnecessary to the executed spending path?

UTXO state

Should the project adopt Utreexo, modify it, or use another authenticated data structure?

Proof technology

STARKs, SNARKs, recursive proofs, specialized proof systems, or hybrids each have different tradeoffs in prover cost, verifier cost, proof size, trusted setup, cryptographic assumptions, and implementation complexity.

Proof generation cost

Can commodity machines generate proofs quickly enough to keep pace with Bitcoin?

Recursive bootstrapping

Can a safe node validate from genesis-equivalent trust anchors without downloading prohibited historical bytes?

P2P denial-of-service resistance

How should proof objects be announced, requested, bandwidth-accounted, and cached?

Reorganizations

How cheaply can state proofs and safe representations be rewound and replaced?

Rule upgrades

How should safe-protocol rule changes be versioned without turning them into a social consensus system?

Legal analysis

Does possession of commitments, hashes, lengths, or other metadata raise issues in particular jurisdictions even when the underlying bytes are never obtained?


30. Design principles

A proposed implementation should attempt to preserve these principles:

  1. Bitcoin remains the only blockchain consensus.
  2. No trusted prover.
  3. No prover federation or quorum.
  4. No subjective content classification.
  5. Deterministic, publicly auditable redaction rules.
  6. Canonical output for a given Bitcoin block and protocol version.
  7. Hide only the minimum qualifying byte regions whenever possible.
  8. A prover cannot arbitrarily conceal financial information.
  9. Safe nodes verify locally rather than trusting distributors.
  10. Safe nodes can relay already-verified proof packages to one another.
  11. Proof generation is permissionless.
  12. Multiple provers improve availability, not authority.
  13. No reversible copy of redacted bytes is sent to safe nodes.
  14. No Bitcoin consensus change unless later shown to be genuinely necessary.
  15. Trustless bootstrapping should be a long-term requirement.

31. The architecture in one diagram

                         BITCOIN
                            |
                  PoW + canonical block
                            |
                            v
                    +---------------+
                    | Complete block|
                    | full-data side|
                    +-------+-------+
                            |
                            v
 +----------------------+   |   +---------------------------+
 | Public deterministic |---+-->| Permissionless prover     |
 | CanonicalRedact()     |       | no authority / no vote    |
 | rules                 |       +-------------+-------------+
 +----------------------+                     |
                                                v
                                  +---------------------------+
                                  | SafeBlock + state         |
                                  | commitment + validity     |
                                  | proof                     |
                                  +-------------+-------------+
                                                |
                                                v
                                          +-----------+
                                          | Safe Node |
                                          +-----+-----+
                                                |
                               +----------------+----------------+
                               |                                 |
                               v                                 v
                          +----------+                       +----------+
                          |Safe Peer |<--------------------->|Safe Peer |
                          +----------+                       +----------+

Separately, the Safe Node checks Bitcoin headers / proof of work itself.

Or in compact form:

Bitcoin determines:
    What the canonical chain is.

Bitcoin consensus determines:
    Whether the complete blocks are valid.

CanonicalRedact() determines:
    Which byte regions safe nodes must not receive.

The proof system demonstrates:
    That the complete hidden+visible block is valid and that
    CanonicalRedact() was applied exactly.

The safe P2P network provides:
    Permissionless distribution, caching, and redundancy.

32. Why this may qualify as a form of full validation

The phrase full node should be used cautiously until the security model is rigorously demonstrated.

A conventional Bitcoin full node independently executes the consensus rules over the complete block data.

The proposed node instead independently verifies a cryptographic proof that those rules were correctly executed over committed data it intentionally does not possess.

If the proof is sound and the state transition is completely covered, the node may achieve the important security property normally meant by β€œfull validation”:

It does not trust another party’s assertion that Bitcoin consensus was followed.

Whether the Bitcoin community ultimately calls such a system a β€œfull node,” β€œproof-validating node,” β€œsafe full node,” or something else is a terminology question worth leaving open during research.


33. Related work

This proposal appears to intersect several existing areas of Bitcoin research.

Bitcoin transaction Merkle commitments

Bitcoin block headers contain a Merkle root derived from block transactions, cryptographically binding the proof-of-work-secured header to the transaction set.

Reference:

ZeroSync

ZeroSync explores STARK proofs of Bitcoin chain state and explicitly describes custom Bitcoin proofs that can transform, filter, and index blockchain data.

Reference:

The project currently describes itself as early-stage research and warns that its code contains critical security bugs; it should therefore be treated as research inspiration rather than a production dependency.

Raito

Raito is a Bitcoin ZK consensus client written in Cairo. Its architecture includes verifying a proof of previous chain state, applying subsequent Bitcoin blocks, and producing a proof of the new state.

Reference:

Utreexo

Utreexo is a dynamic hash accumulator designed for Bitcoin’s UTXO set. Its current BIP work covers the accumulator, Bitcoin validation using it, and related P2P behavior.

References:

Ordinals envelope structure

The Ordinals protocol documentation describes inscription content as serialized data pushes within unexecuted OP_FALSE OP_IF ... OP_ENDIF envelopes. This is an example of the kind of objectively identifiable structural data carrier that motivates deterministic redaction research.

Reference:


34. Proposed discussion focus

The most useful criticism at this stage would probably focus on five questions:

  1. Is the security goal coherent?
    Can a node credibly claim trustless Bitcoin validation while deliberately never learning selected witness/block bytes?

  2. Can CanonicalRedact() be rigorously defined?
    In particular, can eligible byte regions be recognized structurally without subjective content classification?

  3. What must the proof actually prove?
    Which Bitcoin consensus operations must be represented inside the proof system, and which can remain directly validated by the safe node?

  4. What authenticated state structure is best?
    Is Utreexo a good fit, or would another commitment scheme integrate more naturally with recursive validity proofs?

  5. Can this be practical?
    What are realistic proof-generation costs, proof sizes, verification times, storage requirements, and implementation risks?


35. Summary

The proposal is to create a Bitcoin-validating node that never receives selected arbitrary-data regions.

Its core construction is:

                     BITCOIN
                       β”‚
                 proof of work
                       β”‚
                       β–Ό
                  block header
                       β”‚
                 tx Merkle root
                       β”‚
                       β–Ό
             complete Bitcoin block
                       β”‚
          β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
          β”‚                         β”‚
          β–Ό                         β–Ό
   Bitcoin consensus        CanonicalRedact()
      validation            deterministic rules
          β”‚                         β”‚
          β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                       β–Ό
                validity proof
                       β”‚
                       β–Ό
                 SafeBlock object
                       β”‚
              permissionless P2P
              /        |        \
             β–Ό         β–Ό         β–Ό
          Safe A    Safe B    Safe C

The intended result is:

A decentralized Bitcoin node network in which safe nodes independently verify the canonical Bitcoin chain and every relevant consensus state transition, while cryptographically ensuring that specific structurally-defined byte regions never need to be received, processed, stored, or relayed.

No proof generator is in charge.

No prover majority decides truth.

No human moderator decides which content is acceptable.

Bitcoin remains Bitcoin.

The additional protocol answers only one question:

How can a node verify everything it needs to verify without possessing bytes that its deterministic software rules say it must not possess?

That is the research problem this proposal invites others to help solve.

1 Like

You’ve been busy I see. I’ll give this several more looks, but conceptually, I really like the concept of never loading non-consensus required local node implementation policy standard data. Nice write-up too.