• About
  • FAQ
  • Earn Bitcoin while Surfing the net
  • Buy & Sell Crypto on Paxful
Newsletter
Approx Foundation
  • Home
    • Home – Layout 1
  • Bitcoin
  • Ethereum
  • Regulation
  • Market
  • Blockchain
  • Business
  • Guide
  • Contact Us
No Result
View All Result
  • Home
    • Home – Layout 1
  • Bitcoin
  • Ethereum
  • Regulation
  • Market
  • Blockchain
  • Business
  • Guide
  • Contact Us
No Result
View All Result
Approx Foundation
No Result
View All Result
Home Bitcoin

bitcoin core – Would a “Bulk Dust” relay/consensus rule (limiting 100+ sub-1,000-sat outputs, plus a ratio check) be effective without negative effects?

Moussa by Moussa
October 28, 2025
in Bitcoin
0
peer discovery – how to obtain the IP addresses of nodes for mining pools?
189
SHARES
1.5k
VIEWS
Share on FacebookShare on Twitter


I’m exploring a potential solution to discourage UTXO-bloat patterns without touching Script or witness semantics. This rule simply flags “bulk dust” transactions that create many very low-value outputs:

  • Threshold: at least 100 outputs with value < 1,000 sats
  • Ratio: those “tiny” (sub-1,000 sat) outputs are ≥ 60% of all outputs in the Tx

The goal isn’t to eliminate all arbitrary data uses, but to raise costs for patterns most associated with UTXO growth (cheap, “bulk dust” Txs), while leaving typical payments, channel opens, and one-off inscriptions unaffected.

Patterns this would limit (not necessarily eliminate)

  • Fake pubkeys hiding data (UTXO fan-outs)
  • Bitcoin STAMPS / UTXO-art using many dust UTXOs
  • BRC-20 batch mints that fan out tiny outputs
  • Some batched Ordinal inscriptions that spread data/state across many small UTXOs
  • Dust bombing (tracking) / UTXO squatting / resource-exhaustion attempts
  • Mass micro-airdrops of sub-1k-sat outputs (collateral effect)

Non-goals / Not covered

  • Single/few-output inscriptions with large witness data (these wouldn’t trigger the “bulk dust” heuristic)
  • Any scheme that simply uses ≥1,000 sat per output (economically more expensive but still valid)

Why a ratio + count?

Requiring both (tiny_count ≥ 100) and (tiny_count / total_outputs ≥ 0.6) reduces false positives (e.g., big custodial batch payouts with a mix of values). It focuses on transactions that are mostly made of dust-like outputs.

Ask

  • Are there credible, non-spam use-cases that need ≥100 sub-1k-sat outputs with ≥60% tiny ratio in one tx?
  • Are there policy pitfalls I’m missing (e.g., fee market dynamics, odd coinbase behaviors, privacy tools)?
  • Any prior art or measurements you can point to about the prevalence of such transactions?

(with syntax highlighting here: https://pastebin.com/tYsvDh2R)

RELAY POLICY FILTER sketch —

// Place in /policy/policy.cpp, and call from within IsStandardTx() before returning:
//     if (IsBulkDust(tx, reason))
//         return false;   // reject as nonstandard


bool IsBulkDust(const CTransaction& tx, std::string& reason)
{
    static constexpr CAmount MIN_OUTPUT_VALUE_SATS = 1000;   // < 1000 sats counts as "tiny"
    static constexpr int     MAX_TINY_OUTPUTS      = 100;    // >= 100 tiny outputs triggers ratio check
    static constexpr double  TINY_RATIO_THRESHOLD  = 0.6;    // >= 60% of all outputs tiny = reject
 
    int tiny = 0;
    const int total = tx.vout.size();
 
    // Sanity check — avoid division by zero
    if (total == 0)
        return false;
 
    // Count any spendable output under 1000 sats as "tiny"
    for (const auto& out : tx.vout) {
        if (out.nValue < MIN_OUTPUT_VALUE_SATS)
            ++tiny;
    }
 
    // Threshold + ratio check
    if (tiny >= MAX_TINY_OUTPUTS && (static_cast(tiny) / total) >= TINY_RATIO_THRESHOLD)
    {
        reason = strprintf("too-many-tiny-outputs(%d of %d, %.2f%%)", tiny, total, 100.0 * tiny / total);
        return true;  // flag as bulk dust
    }
 
    return false;
}

CONSENSUS (soft-fork, hybrid activation) sketch —

// Helpers in /consensus/tx_check.cpp; activation/enforcement in /validation.cpp
// Also define deployment in: /consensus/params.h, /chainparams.cpp, /versionbits.*

 
// -----------------------------------------------------------------------
// --- In /consensus/tx_check.cpp (helper only; no params needed) ---
// -----------------------------------------------------------------------
 
static constexpr CAmount MIN_OUTPUT_VALUE_SATS = 1000;   // < 1000 sats counts as "tiny"
static constexpr int     MAX_TINY_OUTPUTS      = 100;    // >= 100 tiny outputs triggers ratio check
static constexpr double  TINY_RATIO_THRESHOLD  = 0.6;    // >= 60% of all outputs tiny = reject
 
bool IsBulkDust(const CTransaction& tx)    // expose via tx_check.h if needed
{
    int tiny = 0;
    const int total = tx.vout.size();
 
    // Sanity check — avoid division by zero
    if (total == 0)
        return false;
 
    // Count any spendable output under 1000 sats as "tiny"
    for (const auto& out : tx.vout) {
        if (out.nValue < MIN_OUTPUT_VALUE_SATS)
            ++tiny;
    }
 
    // Threshold + ratio check
    if (tiny >= MAX_TINY_OUTPUTS && ((static_cast(tiny) / total) >= TINY_RATIO_THRESHOLD))
        return true;
    
    return false;
}
 
 
// -----------------------------------------------------------------------
// --- In /validation.cpp (enforcement with hybrid activation) ---
// -----------------------------------------------------------------------
 
#include 
#include 
 
// ... inside the appropriate validation path (e.g., after basic tx checks),
// with access to chainparams/params and a tip pointer:
 
const Consensus::Params& params = chainparams.GetConsensus();
 
const bool bulk_dust_active =
    DeploymentActiveAtTip(params, Consensus::DEPLOYMENT_BULK_DUST_LIMIT) ||
    (chainActive.Tip() && chainActive.Tip()->nHeight >= params.BulkDustActivationHeight);
 
if (bulk_dust_active) {
    if (IsBulkDust(tx)) {
        return state.Invalid(TxValidationResult::TX_CONSENSUS, "too-many-tiny-outputs");
    }
}
 
 
// -----------------------------------------------------------------------
// --- In /consensus/params.h ---
// -----------------------------------------------------------------------
 
enum DeploymentPos {
    // ...
    DEPLOYMENT_BULK_DUST_LIMIT,
    MAX_VERSION_BITS_DEPLOYMENTS
};
 
struct Params {
    // ...
    int BulkDustActivationHeight; // height flag-day fallback
};
 
 
// -----------------------------------------------------------------------
// --- In /chainparams.cpp (per-network values; examples only) ---
// -----------------------------------------------------------------------
 
consensus.vDeployments[Consensus::DEPLOYMENT_BULK_DUST_LIMIT].bit = 12;
consensus.vDeployments[Consensus::DEPLOYMENT_BULK_DUST_LIMIT].nStartTime = 1767225600;  // 2026-01-01 UTC
consensus.vDeployments[Consensus::DEPLOYMENT_BULK_DUST_LIMIT].nTimeout   = 1838160000;  // 2028-04-01 UTC
consensus.vDeployments[Consensus::DEPLOYMENT_BULK_DUST_LIMIT].min_activation_height = 969696;
 
consensus.BulkDustActivationHeight = 1021021;  // flag-day fallback



Source link

Related articles

How do Bitcoin mining pools typically handle payout frequency versus thresholds?

Compiling a statically linked binary for bitcoin core v0.12.0

March 23, 2026
How do Bitcoin mining pools typically handle payout frequency versus thresholds?

Compiling a statically linked binary for bitcoin core v0.12.0

March 23, 2026
Share76Tweet47

Related Posts

Everything Crypto Traders Need to Know About FOMC March 2026

Everything Crypto Traders Need to Know About FOMC March 2026

by Moussa
March 23, 2026
0

The Federal Reserve’s FOMC March 2026 meeting tomorrow lands at one of the most uncertain macro moments in years, and...

Bitcoin Price Sinks Deeper, Is a Larger Breakdown Now Unfolding?

Bitcoin Price Sinks Deeper, Is a Larger Breakdown Now Unfolding?

by Moussa
March 23, 2026
0

Bitcoin price started a sharp decline from well above $72,000. BTC is now consolidating and might extend losses unless there...

Polymarket Sees Coordinated Buying on Early US-Iran Ceasefire Contracts

Polymarket Sees Coordinated Buying on Early US-Iran Ceasefire Contracts

by Moussa
March 23, 2026
0

A cluster of newly created wallets is placing coordinated bets on an early U.S.-Iran ceasefire, igniting fresh debate over whether...

How do Bitcoin mining pools typically handle payout frequency versus thresholds?

transactions – What are the malleability threat vectors when passing PSBTs to other actors?

by Moussa
March 23, 2026
0

If your signature used SIGHASH_ALL then the signature covers all outputs so changing even 1 bit in the outputs would...

Hyperliquid Closes in on Cardano: Is HYPE Price On Verge of Pump to $50?

Hyperliquid Closes in on Cardano: Is HYPE Price On Verge of Pump to $50?

by Moussa
March 22, 2026
0

Cardano is fighting to maintain its dominance as newer, high-performance chains threaten to disrupt the status quo. The high-performance chain...

Load More

youssufi.com

sephina.com

[vc_row full_width="stretch_row" parallax="content-moving" vc_row_background="" background_repeat="no-repeat" background_position="center center" footer_scheme="dark" css=".vc_custom_1517813231908{padding-top: 60px !important;padding-bottom: 30px !important;background-color: #191818 !important;background-position: center;background-repeat: no-repeat !important;background-size: cover !important;}" footer_widget_title_color="#fcbf46" footer_button_bg="#fcb11e"][vc_column width="1/4"]

We bring you the latest in Crypto News

[/vc_column][vc_column width="1/4"][vc_wp_categories]
[/vc_column][vc_column width="1/4"][vc_wp_tagcloud taxonomy="post_tag"][/vc_column][vc_column width="1/4"]

Newsletter

[vc_raw_html]JTNDcCUzRSUzQ2RpdiUyMGNsYXNzJTNEJTIydG5wJTIwdG5wLXN1YnNjcmlwdGlvbiUyMiUzRSUwQSUzQ2Zvcm0lMjBtZXRob2QlM0QlMjJwb3N0JTIyJTIwYWN0aW9uJTNEJTIyaHR0cHMlM0ElMkYlMkZhcHByb3gub3JnJTJGJTNGbmElM0RzJTIyJTNFJTBBJTBBJTNDaW5wdXQlMjB0eXBlJTNEJTIyaGlkZGVuJTIyJTIwbmFtZSUzRCUyMm5sYW5nJTIyJTIwdmFsdWUlM0QlMjIlMjIlM0UlM0NkaXYlMjBjbGFzcyUzRCUyMnRucC1maWVsZCUyMHRucC1maWVsZC1maXJzdG5hbWUlMjIlM0UlM0NsYWJlbCUyMGZvciUzRCUyMnRucC0xJTIyJTNFRmlyc3QlMjBuYW1lJTIwb3IlMjBmdWxsJTIwbmFtZSUzQyUyRmxhYmVsJTNFJTBBJTNDaW5wdXQlMjBjbGFzcyUzRCUyMnRucC1uYW1lJTIyJTIwdHlwZSUzRCUyMnRleHQlMjIlMjBuYW1lJTNEJTIybm4lMjIlMjBpZCUzRCUyMnRucC0xJTIyJTIwdmFsdWUlM0QlMjIlMjIlM0UlM0MlMkZkaXYlM0UlMEElM0NkaXYlMjBjbGFzcyUzRCUyMnRucC1maWVsZCUyMHRucC1maWVsZC1lbWFpbCUyMiUzRSUzQ2xhYmVsJTIwZm9yJTNEJTIydG5wLTIlMjIlM0VFbWFpbCUzQyUyRmxhYmVsJTNFJTBBJTNDaW5wdXQlMjBjbGFzcyUzRCUyMnRucC1lbWFpbCUyMiUyMHR5cGUlM0QlMjJlbWFpbCUyMiUyMG5hbWUlM0QlMjJuZSUyMiUyMGlkJTNEJTIydG5wLTIlMjIlMjB2YWx1ZSUzRCUyMiUyMiUyMHJlcXVpcmVkJTNFJTNDJTJGZGl2JTNFJTBBJTNDZGl2JTIwY2xhc3MlM0QlMjJ0bnAtZmllbGQlMjB0bnAtcHJpdmFjeS1maWVsZCUyMiUzRSUzQ2xhYmVsJTNFJTNDaW5wdXQlMjB0eXBlJTNEJTIyY2hlY2tib3glMjIlMjBuYW1lJTNEJTIybnklMjIlMjByZXF1aXJlZCUyMGNsYXNzJTNEJTIydG5wLXByaXZhY3klMjIlM0UlQzIlQTBCeSUyMGNvbnRpbnVpbmclMkMlMjB5b3UlMjBhY2NlcHQlMjB0aGUlMjBwcml2YWN5JTIwcG9saWN5JTNDJTJGbGFiZWwlM0UlM0MlMkZkaXYlM0UlM0NkaXYlMjBjbGFzcyUzRCUyMnRucC1maWVsZCUyMHRucC1maWVsZC1idXR0b24lMjIlM0UlM0NpbnB1dCUyMGNsYXNzJTNEJTIydG5wLXN1Ym1pdCUyMiUyMHR5cGUlM0QlMjJzdWJtaXQlMjIlMjB2YWx1ZSUzRCUyMlN1YnNjcmliZSUyMiUyMCUzRSUwQSUzQyUyRmRpdiUzRSUwQSUzQyUyRmZvcm0lM0UlMEElM0MlMkZkaXYlM0UlM0NiciUyRiUzRSUzQyUyRnAlM0U=[/vc_raw_html][/vc_column][/vc_row]
No Result
View All Result
  • Contact Us
  • Homepages
  • Business
  • Guide

© 2024 APPROX FOUNDATION - The Crypto Currency News