{
 "number": 36040,
 "input_hash": "5c44aaebed67ef02",
 "model": "openrouter/google/gemini-3.8-flash",
 "batch": false,
 "created": "2026-09-17T16:22:24+00:00",
 "provider": "Google",
 "stop_reason": "end_turn",
 "usage": {
  "input_tokens": 25906,
  "cache_creation_input_tokens": 0,
  "cache_read_input_tokens": 0,
  "output_tokens": 2320
 },
 "cost_usd": 0.0281295,
 "error": null,
 "result": {
  "display": {
   "goal": [
    "Prevent bumpfee from backdating replacement transaction locktimes below original transactions",
    "Eliminates a distinctive transaction-creation fingerprint that leaks Bitcoin Core wallet usage"
   ],
   "reviewability": [
    "Ready",
    "Clean branch with comprehensive unit tests and multiple ACKs on the latest push"
   ],
   "agreement": [
    "Strong consensus across multiple reviewers (molnard, nervana21, polespinasa)",
    "Earlier questions regarding off-by-one bounds and stale chain behavior were resolved",
    "Only minor non-blocking commit message typo suggestions remain (nervana21)"
   ],
   "categories": [
    {
     "name": "wallet",
     "why": [
      "P3 because it fixes an anomalous anti-fee-sniping behavior that creates an on-chain fingerprint",
      "Affects transaction creation privacy during fee bumping, but occurs infrequently and carries no fund safety risks"
     ]
    }
   ]
  },
  "summary": "This PR modifies wallet fee bumping so that replacement transactions generated via `bumpfee` do not receive an `nLockTime` earlier than the original transaction being replaced. It passes the original transaction's locktime as a lower bound into `DiscourageFeeSniping`, ensuring random anti-fee-sniping backdating is constrained between the original locktime and the current chain tip, and adds unit tests covering boundary and stale-chain behaviors.",
  "problem": "Bitcoin Core's anti-fee-sniping mechanism randomly backdates transaction locktimes by up to 99 blocks roughly 10% of the time. When fee-bumping an existing transaction, this random choice can result in a replacement transaction having an older locktime than the transaction it replaces, an anomalous condition on-chain that serves as a recognizable wallet fingerprint.",
  "discussion": {
   "open_concerns": [
    "Minor commit message typo suggestions on the latest commit (nervana21)"
   ],
   "resolved_concerns": [
    "Off-by-one error in random backdate range calculation and proper inclusive bounds (nervana21, polespinasa)",
    "Handling of locktimes during stale chain conditions or chain reorganizations where minimum_height exceeds block_height (molnard, nervana21)",
    "Architectural discussion on whether to keep replacement locktime state in CCoinControl or feebumper.cpp (molnard)",
    "Replacement of flaky functional test with deterministic unit tests in spend_tests and feebumper_tests (molnard, polespinasa)"
   ],
   "author_status": "active"
  },
  "reviewability": {
   "state": "Ready",
   "label": "Ready",
   "reason": "The patch is clean, rebased, tested, and all material reviewer concerns have been addressed in code."
  },
  "agreement": {
   "state": "Strong",
   "summary": "Strong: substantive ACKs from molnard and nervana21 with no blocking objections",
   "reason": "Reviewers agreed with the approach and confirmed testing after architectural discussions and test hardening were completed.",
   "evidence": [
    "molnard reviewed and gave full ACK on e34f934",
    "nervana21 gave tested ACK on e34f934 with minor formatting nits",
    "polespinasa gave Approach ACK on earlier revision"
   ]
  },
  "dependencies": {
   "depends_on": [],
   "enables": []
  },
  "categories": [
   {
    "name": "wallet",
    "member": true,
    "evidence": "Modifies wallet transaction creation and fee bumping logic in src/wallet/feebumper.cpp, src/wallet/spend.cpp, and src/wallet/coincontrol.h.",
    "band": "P3",
    "reason_tag": "bug fix",
    "score": 0.35,
    "factors": {
     "security_stability": 1,
     "bug_severity": 1,
     "performance": 0,
     "user_value": 1,
     "leverage": 0
    },
    "rationale": "P3 because this fixes an observable wallet fingerprinting defect during RBF fee bumping. Anti-fee-sniping backdating in replacements where A.locktime > B.locktime is estimated to occur in less than 2% of on-chain RBF transactions, so while it has clear privacy value for transaction creation, it does not threaten fund safety or node stability."
   }
  ],
  "confidence": "high",
  "uncertainties": [],
  "needs": [],
  "card": "This PR updates wallet transaction construction so that bumpfee replacements do not backdate nLockTime below that of the original transaction. Under current behavior, anti-fee-sniping backdating can randomly assign a replacement transaction a locktime older than the original, creating an anomalous fingerprint that identifies Bitcoin Core or Electrum wallets. The PR bounds backdating in DiscourageFeeSniping to no lower than the prior locktime and adds deterministic unit tests for bounds and stale-tip scenarios. Review is active and supportive, with multiple ACKs from experienced contributors."
 },
 "raw_text": null
}