aboutsummaryrefslogtreecommitdiff
path: root/src/policy
diff options
context:
space:
mode:
authorAntoine Poinsot <darosior@protonmail.com>2021-09-02 13:41:28 +0200
committerAntoine Poinsot <darosior@protonmail.com>2021-09-02 13:41:28 +0200
commitd873db7f8ff37c37f9c72482d8ecd52282f4438e (patch)
tree9b7a50cdb6a1e484cf8a3da018ff63e866903977 /src/policy
parentb997dd211ecfe5d0d6f757b8426ad81e40219143 (diff)
policy: document we intentionally don't lower the dust threshold for Taproot
A "correction" of what seemed to be an overlook was initially proposed in PR #22779. It was deemed unnecessary to further reduce the dust level, so document the intention. Signed-off-by: Antoine Poinsot <darosior@protonmail.com>
Diffstat (limited to 'src/policy')
-rw-r--r--src/policy/policy.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/policy/policy.cpp b/src/policy/policy.cpp
index 9e433584e7..fced397e51 100644
--- a/src/policy/policy.cpp
+++ b/src/policy/policy.cpp
@@ -22,7 +22,7 @@ CAmount GetDustThreshold(const CTxOut& txout, const CFeeRate& dustRelayFeeIn)
// so dust is a spendable txout less than
// 182*dustRelayFee/1000 (in satoshis).
// 546 satoshis at the default rate of 3000 sat/kvB.
- // A typical spendable segwit txout is 31 bytes big, and will
+ // A typical spendable segwit P2WPKH txout is 31 bytes big, and will
// need a CTxIn of at least 67 bytes to spend:
// so dust is a spendable txout less than
// 98*dustRelayFee/1000 (in satoshis).
@@ -34,6 +34,11 @@ CAmount GetDustThreshold(const CTxOut& txout, const CFeeRate& dustRelayFeeIn)
int witnessversion = 0;
std::vector<unsigned char> witnessprogram;
+ // Note this computation is for spending a Segwit v0 P2WPKH output (a 33 bytes
+ // public key + an ECDSA signature). For Segwit v1 Taproot outputs the minimum
+ // satisfaction is lower (a single BIP340 signature) but this computation was
+ // kept to not further reduce the dust level.
+ // See discussion in https://github.com/bitcoin/bitcoin/pull/22779 for details.
if (txout.scriptPubKey.IsWitnessProgram(witnessversion, witnessprogram)) {
// sum the sizes of the parts of a transaction input
// with 75% segwit discount applied to the script size.