Review of Spark's trust model

Unilateral-exit readiness

A seed alone is not an operator-outage recovery backup for Spark

Blink's published case study states that a seed cannot rediscover current leaves after Operators are offline. Its documented procedure requires complete, current, validated leaf and ancestor state, represented by a recovery bundle saved while Operators are reachable; with that state, the seed still supplies signing authority. 12

2 sourcesEvidence reviewed through July 14, 2026

What the evidence shows

Technical and product details

  1. State requirement

    Blink states that current leaves cannot be discovered from the seed alone after Spark Operators are offline. 1

    Supporting material shown on this page

    Blink recovery-bundle requirementPinned source code · github.com · checked 2026-07-14
    Relevant lines from the pinned source · open raw file
    22leaves cannot be discovered from the seed alone. The exit needs a **recovery
    23bundle** — a JSON snapshot of the wallet's leaves and their ancestor
    24transactions — refreshed while operators are still online:
    25
    26```sh
    27make refresh-recovery-bundle SEED_FILE=../.spark-seed.txt BUNDLE=../recovery-bundle.json
    28```
  2. State representation

    Blink's procedure stores the required current leaves and ancestor transactions in a recovery bundle. Another implementation could persist equivalent complete state in a different format. 1

    Supporting material shown on this page

    Blink recovery-bundle requirementPinned source code · github.com · checked 2026-07-14
    Relevant lines from the pinned source · open raw file
    22leaves cannot be discovered from the seed alone. The exit needs a **recovery
    23bundle** — a JSON snapshot of the wallet's leaves and their ancestor
    24transactions — refreshed while operators are still online:
    25
    26```sh
    27make refresh-recovery-bundle SEED_FILE=../.spark-seed.txt BUNDLE=../recovery-bundle.json
    28```
  3. Online preparation

    The required state must be refreshed and validated while Operators remain reachable; the seed does not encode later changes to the wallet's Spark tree. 1

    Supporting material shown on this page

    Blink recovery-bundle requirementPinned source code · github.com · checked 2026-07-14
    Relevant lines from the pinned source · open raw file
    22leaves cannot be discovered from the seed alone. The exit needs a **recovery
    23bundle** — a JSON snapshot of the wallet's leaves and their ancestor
    24transactions — refreshed while operators are still online:
    25
    26```sh
    27make refresh-recovery-bundle SEED_FILE=../.spark-seed.txt BUNDLE=../recovery-bundle.json
    28```
  4. Outage consequence

    If current, complete exit state was not saved in advance, the documented offline procedure has no graph from which to construct the exit. 1

    Supporting material shown on this page

    Blink recovery-bundle requirementPinned source code · github.com · checked 2026-07-14
    Relevant lines from the pinned source · open raw file
    22leaves cannot be discovered from the seed alone. The exit needs a **recovery
    23bundle** — a JSON snapshot of the wallet's leaves and their ancestor
    24transactions — refreshed while operators are still online:
    25
    26```sh
    27make refresh-recovery-bundle SEED_FILE=../.spark-seed.txt BUNDLE=../recovery-bundle.json
    28```

Scope control

What this does not establish

  • The seed still derives the signing keys, fee-funding address, and final sweep. Complete current leaf-and-ancestor state need not use Blink's JSON format, but it must exist before an all-Operator outage. With that state and fee funds, the documented exit proceeds without later Operator cooperation. 12

Sources and excerpts

Primary sources

The relevant details and available source-code excerpts appear alongside the claims above. This list preserves the complete original-source trail for independent verification.

1

Blink recovery-bundle requirement

Pinned source code · github.com · Pinned or archival · checked 2026-07-14

Open original source
2

Blink seed-derived operations

Pinned source code · github.com · Pinned or archival · checked 2026-07-14

Open original source

How sources, absence findings, and limitations were evaluated