From: Chris Belcher <belcher@riseup.net>
To: bitcoin-dev@lists.linuxfoundation.org
Subject: Re: [bitcoin-dev] BIP proposal: Anti-fee-sniping protection with nSequence in taproot transactions to improve privacy for off-chain protocols
Date: Thu, 22 Jul 2021 15:44:11 +0100 [thread overview]
Message-ID: <5c367528-5fc9-1225-5c32-150e71a9de45@riseup.net> (raw)
In-Reply-To: <3dc2e965-77c6-f923-4c00-0cbea7b6d9e5@riseup.net>
Hello list,
Someone reviewing my taproot privacy BIP proposal suggested
clarification on the spec, so I've written some python-like pseudocode.
It implements the suggestion of choosing a random input instead of the
first one.
Some wallet teams are already working on implementing taproot for their
on-chain app. I urge wallet developers to include this BIP as well, so
that their user's spends will improve the privacy and fungibility of
off-chain protocols. Also, and admittedly a less urgently,
anti-fee-sniping will improve the incentives for miners in the
low-inflation future of bitcoin.
As before find the latest version of this BIP here:
https://gist.github.com/chris-belcher/903feab321bf41055c91eaec46581e89
def apply_anti_fee_sniping_fields(transaction):
# bip68 requires v=2
transaction.version = 2
# always set nlocktime if any of the transaction inputs have more
# confirmations than 65535 or are taproot inputs
# otherwise choose either nlocktime or nsequence with 50% odds
if any(map(lambda input: input.confirmations() > 65535
|| input.is_taproot(), transaction.inputs))\
|| randint(2) == 0:
transaction.nlocktime = blockchain.height()
if randint(10) == 0:
transaction.nlocktime = max(0, transaction.nlocktime
- randint(0, 99))
else:
input_index = randint(len(transaction.inputs))
transaction.inputs[input_index].nsequence = transaction.inputs\
[input_index].confirmations()
if randint(10) == 0:
transaction.inputs[input_index].nsequence = max(0,
transaction.inputs[input_index].nsequence
- randint(0, 99))
next prev parent reply other threads:[~2021-07-22 14:44 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-06-10 12:56 [bitcoin-dev] BIP proposal: Anti-fee-sniping protection with nSequence in taproot transactions to improve privacy for off-chain protocols Chris Belcher
2021-07-22 14:44 ` Chris Belcher [this message]
[not found] <mailman.96927.1623334755.32591.bitcoin-dev@lists.linuxfoundation.org>
2021-06-28 10:55 ` Ben Carman
2021-06-29 9:25 ` Chris Belcher
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5c367528-5fc9-1225-5c32-150e71a9de45@riseup.net \
--to=belcher@riseup.net \
--cc=bitcoin-dev@lists.linuxfoundation.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox