public inbox for bitcoindev@googlegroups.com
 help / color / mirror / Atom feed
From: Nighttime Satoshi <nighttimesatoshi@gmail•com>
To: Bitcoin Development Mailing List <bitcoindev@googlegroups.com>
Subject: Re: [bitcoindev] Proposal: Unlocking Dust UTXOs as Miner Transaction Fees
Date: Sat, 8 Mar 2025 15:15:23 -0800 (PST)	[thread overview]
Message-ID: <e02354e1-19c9-420d-86bb-d052668d8805n@googlegroups.com> (raw)
In-Reply-To: <5674c8ec-a38c-487d-9736-bf3b99178335@app.fastmail.com>


[-- Attachment #1.1: Type: text/plain, Size: 10597 bytes --]

Hi Light,

Thanks for the thoughtful questions!

1. The 546-satoshi threshold isn't intended to be permanently fixed in the 
protocol. I used this value as it matches Bitcoin Core's existing dust 
threshold for P2PKH outputs. I further noted in the proposal that a dynamic 
threshold would be more appropriate than a fixed one, since the dust 
threshold naturally fluctuates with network conditions. Wallet softwares 
could calculates what qualifies as "dust" based on current mempool 
conditions. And you are correct - users can designate any UTXO, but 
economically rational users will only choose those below the spendable 
threshold. This approach maintains my proposal's focus on economically 
unviable outputs while allowing flexibility as network conditions evolve.

2. Great point. I focused on simple key-controlled UTXOs (P2PKH, P2WPKH) 
for a couple of reasons: 

   - They're straightforward to verify with a single signature
   - They represent a significant portion of dust UTXOs
   - Extending to complex scripts would substantially increase 
   implementation complexity
   
I deliberately targeted simple script types for the initial implementation 
to keep the proposal focused and feasible. However, future extensions could 
add support for multisig and other script-based dust once we establish the 
basic mechanism and validate its effectiveness.

3. You're right that the metadata requirements (txid: 32 bytes, vout: ~1-4 
bytes, signature: ~64 bytes, prefix: ~7 bytes) has the risk of exceeding 
the standard 80-byte limit. If this is the case, we could use SegWit 
witness data instead of OP_RETURN. A new witness version could efficiently 
encode this information, drastically reducing on-chain bytes, or Implement 
Schnorr or aggregated signatures to reduce signature size. Economically, 
this would significantly reduce the transaction weight, making it viable 
even during periods of higher fees. Users would still only designate dust 
UTXOs when it makes economic sense based on current fee rates. I mentioned 
in passing these alternative methods in the proposal but I should clarify 
them as main solutions instead.

4.Does this method actually save any onchain bytes relative to "traditional 
spending"?  - The proposal is less about byte savings (though I do think it 
offers benefits to it):

Traditional spending of a dust UTXO requires:

Input data (~148 vB for legacy inputs, ~68 vB for SegWit inputs)
Output data (~31 vB per output)
Transaction overhead

My mechanism removes the need for users to include the full input 
scriptSig/witness data since miners claim the UTXO directly in their 
coinbase transaction. This is particularly efficient when users designate 
multiple dust UTXOs in a single transaction.

5. Is it worth a soft fork? I believe it is, for several reasons:

The problem of Bitcoin dust is a growing issue - especially as adoption and 
price grows.
It unlocks value currently trapped in dust UTXOs without requiring users to 
pay upfront fees
It provides miners with an additional revenue source, which becomes 
increasingly important as block rewards diminish
It efficiently cleans up the UTXO set, addressing a long-term scalability 
concern
It improves Bitcoin's fungibility by providing a path for stranded satoshis 
to rejoin economic circulation

I should clarify an important aspect: when miners "claim" dust UTXOs, these 
UTXOs are permanently destroyed, not retained in their original form. Their 
value is transferred directly into the miner's coinbase output as newly 
spendable satoshis. This permanent removal of unspendable UTXOs from the 
set is a key benefit.
This mechanism is specifically limited to miner coinbase transactions 
because:

Coinbase transactions already have special consensus rules that allow them 
to create outputs without standard input validation
Restricting to coinbase transactions greatly simplifies security 
considerations
Extending this capability to regular transactions would introduce 
significant risks and complexities

Neither Lightning nor existing wallet techniques can economically address 
truly unspendable dust UTXOs without user-paid fees.

Let me know what you think of these.

Warm regards,, 
Nighttime
On Saturday, March 8, 2025 at 4:23:34 PM UTC-6 Light wrote:

> Hi Nighttime,
>
> Several questions come to mind:
>
> 1. Why fix the limit at 546 sats? Why not allow any UTXO to be spent this 
> way?
>
> 2. What about "dust" UTXOs owned by scripts rather than keys? e.g. multisig
>
> 3. The size of this OP_RETURN output could be a barrier, both technical 
> and economic:
>
> Technical: Based on the metadata contained in this output, this may be 
> larger than the current 80-byte OP_RETURN standardness limit. Is that 
> correct? If so, does this imply a need to increase this standardness limit, 
> or require an assumption that the user will find their own way to 
> circumvent this limit? e.g. using Libre Relay
>
> Economic: Depending on the size of this OP_RETURN output and the current 
> market fee rate, the value of the dust may still be uneconomical for the 
> miner to claim. For example, if the OP_RETURN output is 100 vB and the 
> current fee rate is 6 s/vB then a 546 sat dust output will not be 
> economical for the miner to include in their block.
>
> 4. Given the above considerations, I wonder how this proposal is an 
> improvement over the status quo at all. Does this method of spending a UTXO 
> via OP_RETURN actually save any onchain bytes relative to "traditional 
> spending"? And even if it does result in onchain byte savings in some or 
> all cases, is it really worth all of the effort of a soft fork and wallet 
> updates etc to allow them to become spendable this way if economic 
> realities could make them uneconomical to spend anyways should we 
> permanently transition to a paradigm of sufficiently high fee rates?
>
> Regards,
>
> Light
>
> On Sat, Mar 8, 2025, at 1:23 PM, Nighttime Satoshi wrote:
> > Dear fellow Bitcoin developers,
> >
> > I'm excited to share a proposal addressing a long-standing Bitcoin 
> > challenge: economically unviable dust UTXOs.
> > As Bitcoin's value and transaction fees increase, more UTXOs become 
> > effectively unspendable because the cost to move them exceeds their 
> > value. This creates a growing dust horizon - small amounts of BTC 
> > permanently stranded from circulation, weakening fungibility and 
> > bloating the UTXO set.
> >
> > I'm proposing a solution that enables users to voluntarily designate 
> > their dust UTXOs as transaction fees through cryptographic 
> > authorization, allowing miners to claim them directly without requiring 
> > traditional spending. This is a win-win-win solution for users 
> > (reclaiming otherwise stranded value), miners (additional fee income), 
> > and the network (reduced UTXO set size).
> >
> > Key Features: 1. *Entirely Voluntary* - Users must explicitly authorize 
> > any dust UTXO transfer with cryptographic signatures proving ownership
> > 2. *Implementation as Soft Fork* - Backward-compatible with 
> > non-upgraded nodes
> > 3. *Simple Security Model* - Uses familiar signature verification 
> > without exposing private keys
> > 4. *Clearly Defined Dust Threshold* - Fixed at 546 satoshis, matching 
> > Bitcoin Core's existing dust limit
> > 5. *Race Condition Prevention* - Comprehensive safeguards against 
> > double-spend and miner race conditions
> > 6. *Minimal Consensus Impact* - Carefully designed to introduce 
> > minimal complexity to Bitcoin's validation logic
> > Economic Benefits: 1. *UTXO Set Cleanup* - Removing millions of dust 
> > UTXOs could significantly reduce the UTXO set size
> > 2. *Enhanced Fungibility* - Provides a pathway for stranded satoshis 
> > to rejoin economic circulation
> > 3. *Long-term Miner Incentive* - Creates an additional fee source as 
> > block rewards diminish
> > 4. *Complementary to Existing Solutions* - Works alongside batching, 
> > consolidation, and Lightning Network
> > Technical Implementation:
> > The proposal uses a special OP_RETURN output format in transactions to 
> > designate dust UTXOs for miner claiming:
> >
> > OP_RETURN <DUST_FEE_PREFIX> <dust_utxo_txid> <dust_utxo_vout> <signature>
> >
> > Miners can claim these UTXOs in their coinbase transaction if and only 
> > if the corresponding designation transaction is included in the same 
> > block.
> >
> > Historical Context & Contributions:
> > It seems that previous discussions on dust UTXOs have considered many 
> > approaches, including forced reclamation. This proposal avoids those 
> > controversies by requiring explicit user authorization while still 
> > providing an economically rational path for dust cleanup.
> >
> > You can read the full proposal draft here: 
> > 
> https://github.com/satoshinotebook/BIPs/blob/main/unlocking-dust-utxos-as-transaction-fees.md
> >
> > I'd appreciate feedback on:
> >
> > 1. Technical feasibility of the soft fork implementation
> > 2. Security considerations and potential edge cases
> > 3. Economic incentive alignment
> > 4. User experience concerns for wallet implementations
> > Thank you for any feedback! I believe it offers a practical solution to 
> > a growing challenge that will only become more significant as Bitcoin 
> > continues to mature and evolve.
> >
> > With respect,
> >
> > Nighttime Satoshi
> >
> > nighttim...@gmail•com
> >
> > https://satoshinotebook.com
> >
> >
> > -- 
> > 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+...@googlegroups•com.
> > To view this discussion visit 
> > 
> https://groups.google.com/d/msgid/bitcoindev/62b454f8-56be-4eae-ba3e-57c53d493f3dn%40googlegroups.com 
> > <
> https://groups.google.com/d/msgid/bitcoindev/62b454f8-56be-4eae-ba3e-57c53d493f3dn%40googlegroups.com?utm_medium=email&utm_source=footer
> >.
>

-- 
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/bitcoindev/e02354e1-19c9-420d-86bb-d052668d8805n%40googlegroups.com.

[-- Attachment #1.2: Type: text/html, Size: 13672 bytes --]

  reply	other threads:[~2025-03-08 23:31 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-03-08 18:23 Nighttime Satoshi
2025-03-08 22:13 ` Light
2025-03-08 23:15   ` Nighttime Satoshi [this message]
2025-03-08 23:48 ` Pieter Wuille
2025-03-09  1:35   ` Nighttime Satoshi
2025-03-13 12:55     ` Garlo Nicon

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=e02354e1-19c9-420d-86bb-d052668d8805n@googlegroups.com \
    --to=nighttimesatoshi@gmail$(echo .)com \
    --cc=bitcoindev@googlegroups.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html
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