AI-generated analysisPublished automatically and not human-verified. Validated context appears in community notes below.
← Watch feed
Moderate 59 Bitcoin

fix: unblinded re/issuance for non-policy asset greater than 21 million (#1445)

Public commit record

What the developer wrote

Authored by Byron Hambly

100/100 · Strong
fix: unblinded re/issuance for non-policy asset greater than 21 million (#1445)

* test: add test for unblinded re/issuance greater than 21 million

Co-authored-by: Mihailo Milenkovic <mihailo.milenkovic84@gmail.com>

* fix: unblinded re/issuance for greater than 21 million

Co-authored-by: Mihailo Milenkovic <mihailo.milenkovic84@gmail.com>

* enable with param config

* change range check to policy with config option

* refactoring, additional error messages and test extension

---------

Co-authored-by: Mihailo Milenkovic <mihailo.milenkovic84@gmail.com>
Co-authored-by: Tom Trevethan <ttrevethan@blockstream.com>
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides detailed explanatory context✓ Mentions testing or verification✓ Links an issue, advisory, or supporting reference
The short version

What changed, and why it matters

This commit fixes a bug in the Elements sidechain where creating or reissuing more than 21 million units of a non-bitcoin asset was incorrectly rejected when the issuance was unblinded (publicly visible amounts). The change makes the 21-million limit apply only to the network's main pegged asset (like bitcoin), not to other custom assets, and adds a configurable policy switch so node operators can choose whether to relay/mine such large unblinded issuances. Previously, unblinded issuances over 21 million could fail validation even though they are allowed by consensus rules for non-policy assets.

Recommended action

Review whether the default of true for -acceptunlimitedissuances is appropriate for your network's policy. Ensure that all nodes meant to enforce the stricter policy set -acceptunlimitedissuances=0 consistently, and verify that miners/relays in your federation agree on the policy to avoid mempool divergence. Consider adding release-note documentation about the new policy option.

Security signals we found

01

Consensus/policy boundary change: 21M amount check narrowed from all explicit issuances to only the pegged asset

02

New configurable mempool policy: -acceptunlimitedissuances controls relay/mining of large unblinded issuances

03

Potential for network partition: nodes with different flag settings may accept/reject different mempool transactions

04

Fixes incorrect rejection of valid unblinded re/issuance for non-policy assets > MAX_MONEY

Risk score

Why this scored 59/100

Our methodology →
Potential impact 18/30
Exploitability 12/25
Stealth signal 8/15
Affected reach 10/15
Confidence 7/10
Evidence quality 4/5
Human-validated context

Community notes

Notes can correct, qualify, or add evidence to the AI analysis. Every note shown here has been validated by a human moderator.

No validated notes yet.

The AI analysis stands alone for now. Submit a note if you can add evidence or important context.