From mboxrd@z Thu Jan 1 00:00:00 1970 Delivery-date: Fri, 21 Aug 2026 13:35:17 -0700 Received: from mail-oa1-f55.google.com ([209.85.160.55]) by mail.fairlystable.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1wxVxN-0008Ui-6m for bitcoindev@gnusha.org; Fri, 21 Aug 2026 13:35:17 -0700 Received: by mail-oa1-f55.google.com with SMTP id 586e51a60fabf-456b5122c7csf3948954fac.1 for ; Fri, 21 Aug 2026 13:35:16 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1787344511; cv=pass; d=google.com; s=arc-20260327; b=BDhMO3DkO7198pnUWDbgqdzrUgv5uvIN0uCGj2/I7of+lMmpfbjGCrzVg/O2pWNweR fd0Cg+q7x75Kn0xOVEtFhGCkKCD2ong+ihdcGjtqYhRnxFGX+hCPdFPJjHfRItukb/6D C3IQoo4YQbns4o1VYZuT7AqIuzGy+u49/M8QAPHAcyM0KW2aV8zdxDCklwjWWXmKBt6Q 0zVDS0VJLdIV0BrNYyRrZNZsLduuyR4/QFeQowoH940vRJzNWVjq/0JVnR5RX2cPz5gy prny6MSzT1OTR0AsdWtJoDI/nileoyCinB5OsWRrDtcEqp2ZU4fTC3Jqfqom9A4CKhkV z6IQ== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20260327; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:reply-to:content-transfer-encoding :mime-version:feedback-id:references:in-reply-to:message-id:subject :cc:from:to:date:dkim-signature; bh=zeGBhs/A0lxbMxRY2TfQugv/g8IU2GAW2VvhRuQjUks=; fh=8NUrx5lZmUZkF+mY2velKmmME1pX0LY7A3MVEjjL0+4=; b=EjRBjjXusmBTxdOqCGpNv/8zPwQlZVjALL8yHAQG+4cwuCTJ5EhkrCZKG5qRLgSiDj vfJdDGAifIhSwtA86bJ4h41vqbiMo3ys8CNIuS3/6QhQWADloQ65lczbiyfC59XXrKSo 7JtqcPPxXcEjqy2hhont21bZu9/ZnIJL8u+t6eDb6cAxJMdpXGBYa9NMYFnUkqjjB6js tPI43lH/MTVIIjW0rHkga72D4Cg6KZ6dmW9jFyy2mqFQL8YhmQp0a5U4t8TmxhhbJP+e swPEti+C/0oZGtEugiQ0qnjlSPjKX3AkvF5B/xCwti3eqfDVRG4GrL/hGBlnn8QziW2m 5EUw==; darn=gnusha.org ARC-Authentication-Results: i=2; gmr-mx.google.com; dkim=pass header.i=@pm.me header.s=protonmail3 header.b=SblLKzRK; spf=pass (google.com: domain of nervana21@pm.me designates 109.224.244.116 as permitted sender) smtp.mailfrom=nervana21@pm.me; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=pm.me DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlegroups.com; s=20251104; t=1787344511; x=1787949311; darn=gnusha.org; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:reply-to :x-original-authentication-results:x-original-sender :content-transfer-encoding:content-type:mime-version:feedback-id :references:in-reply-to:message-id:subject:cc:from:to:date:from:to :cc:subject:date:message-id:reply-to:content-type; bh=zeGBhs/A0lxbMxRY2TfQugv/g8IU2GAW2VvhRuQjUks=; b=cwcJCta9fIJEMz76eol/q51QAgX0MWp3iHx+ESrKzaTGWvbXLJCB5ZvcZPeUsDy88J RUpVJuTb1uytC4ZVAUecZ+GClFibVE7942jpfXY9RtcZ+OxHqd18OvIdw5w7cH95kj0A Q47KPOWyceoYVEIb3jByMBes/t8rs31HptLn+9DBNAECAxTO+9d8wED74/UbPhQf6B8t t7PLlWhKoDCDUsPVNuPs70Ef2p0Hphe47eTATownDh3huQU2hdYw5if4QpFvtl7a+Haz NI1dKY/JL4+pPTZasuc4NAOeOaE7Cw0fUlN/mapXhq2DZ4fFYvTycVMj1JKUT9MWSltE pEKQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787344511; x=1787949311; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:reply-to :x-original-authentication-results:x-original-sender :content-transfer-encoding:content-type:mime-version:feedback-id :references:in-reply-to:message-id:subject:cc:from:to:date :x-beenthere:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to:content-type; bh=zeGBhs/A0lxbMxRY2TfQugv/g8IU2GAW2VvhRuQjUks=; b=CYL6cFpi4AxsfTYZQ9UjdmhP0gkoOVfm4RsqQgI0hFfnxutR6cUaDiULF97OFLnJl4 GO5I3TpVRY4Db72fIOoRYhbo3NCmaQxX4Lj2QSqR6FZRZ2W/vZJl/sWThXQXucfvnZ+y f1TTLY9qosPr6UWe0UlKvg5ZtpNczAaRRQioSIz4twQstiPTnbfBHC2hvDrRva+7Ke0q IA3m6Vora747cy7Ce1Bh5IPqGBvjKy+tq4shbl7fxR8IWRaaHivW7ZorHYplsJQtQk5W h5zXb/JfCv9mtLYN5cOn/l5vz8cG92l4uDqAd6Eox8bilWd5qk2jdLqaDKK49b1sX8kP ldVA== X-Forwarded-Encrypted: i=2; AHgh+RpLfqnr5a7AhNDKaGaWgKzGpP0IpRzQx4sf8Pd0uHe6RhTv5apFmIb5PKtgYl9f343+QjAZ3Ws7yLbT@gnusha.org X-Gm-Message-State: AOJu0Yyn1eHEht4tijB/4IS9R6QtUVJ725/m7Bik00JMoFOrw1Vily+D VSPDMUsfK36YJ13kL96Jvjvv/9TRibSv1b8cdLjstf1XT4FN3jP8971z X-Received: by 2002:a05:6871:1c6:b0:456:4c6b:773a with SMTP id 586e51a60fabf-46352137722mr7623262fac.9.1787344510893; Fri, 21 Aug 2026 13:35:10 -0700 (PDT) X-BeenThere: bitcoindev@googlegroups.com; h="ATskLdeo0jIEb99n6B0TqVJEemfRs/jCwq1SWOhEQAeQt3JJHA==" Received: by 2002:a05:6870:6289:b0:457:ae9e:6504 with SMTP id 586e51a60fabf-462eef6774fls1228590fac.0.-pod-prod-00-us-canary; Fri, 21 Aug 2026 13:35:06 -0700 (PDT) X-Received: by 2002:a05:6808:1a0b:b0:4b2:8d83:436e with SMTP id 5614622812f47-4b2cdc411damr14169022b6e.8.1787344506168; Fri, 21 Aug 2026 13:35:06 -0700 (PDT) Received: by 2002:a05:620a:90d:b0:8d6:1bc4:a7bc with SMTP id af79cd13be357-9373b006f48ms85a; Fri, 21 Aug 2026 13:29:27 -0700 (PDT) X-Received: by 2002:a05:620a:414f:b0:936:950b:6afb with SMTP id af79cd13be357-937398cbbbbmr624096785a.20.1787344167235; Fri, 21 Aug 2026 13:29:27 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1787344167; cv=none; d=google.com; s=arc-20260327; b=Ii42xWtHzbEZ7r6bd/xc73KuP7/iV8PwHvxEQk0+zqCoGkp24Lyv5X8++GNblU0j6z vUlH9AQzDlgzZ3Vb85G+LccLdzFGVqWozF8694Y3I1KL5nmu6KpZgRkSecCSAERnZxOR TtHipiXrhhIh7z/Z06R9DJ0MDo1EjIfZahTE3SjhSCRCNpJMDP5svzdTWC5sU0nWWm4x xMU3A0Ivhgwv1br7Mo4KoK6d8SoTKda7f9PGmafBG6WJXmetkbHUfpk8TL/wtSIro1lL /vwbm4JZwaSUsCAu0or8S1sSFEtCE8V+dOts5un16UGru6wIhJ+WPHIwyFrxLycu4daN bjsQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20260327; h=content-transfer-encoding:mime-version:feedback-id:references :in-reply-to:message-id:subject:cc:from:to:date:dkim-signature; bh=hrgclWxpyjJW4ZF87VTfMl4sEZG9rmEr2mC3SmiUOpM=; fh=Iil/mRVFEsTsm1LRBEwrYN2oVi4jGaOdDO0yJcggNHU=; b=Ssf1ONsI/QmLhr7DFK6ievTxzcVZjYEa4EExI0IT6dHRgy9ab6MoIFya36xfN2zbO7 JmsVqjeOTWvujnXUuL64oFgzqHvUiOwHeL0JZGz/uOJ2Cu0/R3PV5Q9MNLkqD1d9QL1s HO1vyM8nACtMxOLgUPmmJKzFwNbm74pI0WZpT6RJHwBxkDXkOwiZ4WX7lgRoYmj4vVU2 POM5pPvWTiOn5B5G16ZzA9K3T0d32RR1fIZxPhX9C/uA4WtgchZdxSwPAAYwSggGqDW1 abgyjiExUR1ph3KtvHJj8ZvXVtHE2AkkfjhBWaZ4s0JTDNYztVDGa3l47jqgyK3MRglE wrqw==; dara=google.com ARC-Authentication-Results: i=1; gmr-mx.google.com; dkim=pass header.i=@pm.me header.s=protonmail3 header.b=SblLKzRK; spf=pass (google.com: domain of nervana21@pm.me designates 109.224.244.116 as permitted sender) smtp.mailfrom=nervana21@pm.me; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=pm.me Received: from mail-244116.protonmail.ch (mail-244116.protonmail.ch. [109.224.244.116]) by gmr-mx.google.com with ESMTPS id af79cd13be357-93749102b55si56585a.8.2026.08.21.13.29.27 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 21 Aug 2026 13:29:27 -0700 (PDT) Received-SPF: pass (google.com: domain of nervana21@pm.me designates 109.224.244.116 as permitted sender) client-ip=109.224.244.116; Date: Fri, 21 Aug 2026 20:29:23 +0000 To: b10c <0xb10c@gmail.com> From: "'nervana21' via Bitcoin Development Mailing List" Cc: Bitcoin Development Mailing List Subject: Re: [bitcoindev] Re: [BIP Proposal] Anti-Fee-Sniping with LockTime Message-ID: In-Reply-To: <2b19cd5e-84aa-4779-b1a6-490cc918cc52n@googlegroups.com> References: <2b19cd5e-84aa-4779-b1a6-490cc918cc52n@googlegroups.com> Feedback-ID: 215169482:user:proton X-Pm-Message-ID: 567f23213c64b7b29bbc1ec00d19f76e8e7d0e2b MIME-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Original-Sender: nervana21@pm.me X-Original-Authentication-Results: gmr-mx.google.com; dkim=pass header.i=@pm.me header.s=protonmail3 header.b=SblLKzRK; spf=pass (google.com: domain of nervana21@pm.me designates 109.224.244.116 as permitted sender) smtp.mailfrom=nervana21@pm.me; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=pm.me X-Original-From: nervana21 Reply-To: nervana21 Precedence: list Mailing-list: list bitcoindev@googlegroups.com; contact bitcoindev+owners@googlegroups.com List-ID: X-Google-Group-Id: 786775582512 List-Post: , List-Help: , List-Archive: , List-Unsubscribe: , X-Spam-Score: -1.0 (-) Hi b10c, Thanks for the comments, my replies are inline below. On Wednesday, August 19th, 2026 at 9:21 AM, b10c <0xb10c@gmail.com> wrote: > Hi nervana21, >=20 > some comments in random order on the BIP proposal and Anti-Fee-Sniping: >=20 >=20 > - You mention BIP125 a couple of times in Specification. Note that in rec= ent versions of Bitcoin Core, BIP125 signaling is no longer required for a = transaction to be replaceable under the default mempool policy. You're right. I've updated the draft to remove references to BIP125. For th= is BIP the only sequence requirement is that at least one input is non-fina= l so that nLockTime is enforced. The pseudocode uses 2**32 - 2 as one conve= ntional choice. > - While the 10%-back-date-rule in Anti-Fee-Sniping is a privacy feature f= or some people, it is also a privacy leak for others: https://github.com/bi= tcoin/bitcoin/issues/26526: When fee-bumping a previously not back-date tra= nsaction, Bitcoin Core might back-date the replacement. This is fingerprint= that you likely back-dated the replacement transaction. There is also http= s://github.com/bitcoin/bitcoin/issues/26527, which I'm not sure if it's an = actual problem or not (haven't had the time to double-check). Maybe documen= ting some of these edge-cases in the BIP makes sense. This allows potential= future/other implementations not to make similar mistakes. I added a Rationale section that cites https://github.com/bitcoin/bitcoin/i= ssues/26526 and the related type flip case https://github.com/bitcoin/bitco= in/issues/35628. The BIP now says implementations should document replaceme= nt locktime policy, including locktime type across replacements. When re-ru= nning the privacy branch on a height based previous locktime, it floors at = that height and does not go older unless that policy is intentional and doc= umented. The spec already covers that a child nLockTime does not protect an= unconfirmed parent, so I left https://github.com/bitcoin/bitcoin/issues/26= 527 out of the BIP. Separately, there is currently an open Core PR that aim= s at the same floor on bumpfee via minimum_height. https://github.com/bitco= in/bitcoin/pull/36040 > - There has been a case where the trying to do Anti-Fee-Sniping 1) wasn't= implemented properly in a wallet so it didn't work 2) ended up being a cle= ar fingerprint for this wallet: https://b10c.me/observations/01-locktime-st= airs/. By now, this wallet doesn't have much usage anymore (https://mainnet= .observer/charts/transactions-not-enforced-locktime/) but this still shows = some of it's pitfalls. Got it. I've updated the BIP to warn implementers of this pitfall. I cited = your locktime stairs writeup and the unenforced locktime chart. > - Note that currently only around 5% of the transactions set a heigt-base= d time-lock: https://mainnet.observer/charts/transactions-height-based-lock= time/ - growing this anonymity set might be interesting to some wallets, bu= t currently, do don't stick out if you don't do Anti-Fee-Sniping (or use lo= cktime). Makes sense. The draft now mentions this point explicitly and keeps broader= adoption as the anonymity set goal. Updated draft https://github.com/nervana21/bips/blob/anti-fee-snipe/bip-anti-fee-sniping-= with-locktime.md Best, nervana21 >=20 >=20 > Best > b10c > On Tuesday, 18 August 2026 at 11:17:44 UTC+2 nervana21 wrote: >=20 > > Hello all, > >=20 > > Anti-fee-sniping with nLockTime has been present in Bitcoin Core since > > 2014 and in Electrum since 2017. BIP326 assumes this nLockTime behavior > > as the baseline and uses nSequence instead for some taproot spends. > > However, the nLockTime rules themselves were never specified in a BIP. > >=20 > > https://github.com/nervana21/bips/blob/anti-fee-snipe/bip-anti-fee-snip= ing-with-locktime.md > >=20 > > The BIP draft follows Bitcoin Core's DiscourageFeeSniping and > > IsCurrentForAntiFeeSniping functions. nLockTime is set to the current t= ip height. > > With probability 10%, a uniform random integer in 0..99 is subtracted > > and the result is clamped at 0. A locktime equal to the tip height > > cannot be included in a remine of the tip. An older locktime chosen on > > the privacy branch can. nLockTime is set to 0 during initial block > > download or when the tip is more than 8 hours old. The policy is not > > applied when nLockTime is already set or when any input already has a > > preset nSequence. Test vectors are included. > >=20 > > Constructive criticism is greatly appreciated. > >=20 > > Cheers, > > nervana21 >=20 > -- > You received this message because you are subscribed to the Google Groups= "Bitcoin Development Mailing List" group. > To unsubscribe from this group and stop receiving emails from it, send an= email to bitcoindev+unsubscribe@googlegroups.com. > To view this discussion visit https://groups.google.com/d/msgid/bitcoinde= v/2b19cd5e-84aa-4779-b1a6-490cc918cc52n%40googlegroups.com. --=20 You received this message because you are subscribed to the Google Groups "= Bitcoin Development Mailing List" group. To unsubscribe from this group and stop receiving emails from it, send an e= mail to bitcoindev+unsubscribe@googlegroups.com. To view this discussion visit https://groups.google.com/d/msgid/bitcoindev/= WCgkJmyQ8exgIWF_AXmaycRFvGbLtOwTExlanZ3qkAS1to6Ecb4VduhTFqC42Bc3XE9AIPvpx30= Ebe5Vl2NeKarBMUzw8syjsAzgxIZOVso%3D%40pm.me.