Skip to content

Conversation

@murchandamus
Copy link
Collaborator

I took a stab at providing a few more details in the the Consensus Cleanup description.

@murchandamus murchandamus force-pushed the 2026-02-describe-consensus-cleanup branch from cd44e58 to c4ac1f9 Compare February 6, 2026 19:45
@murchandamus murchandamus force-pushed the 2026-02-describe-consensus-cleanup branch from c4ac1f9 to 58a5b83 Compare February 6, 2026 20:04
transactions are prevented by introducing limits on signature operations
that curb this malicious use but far exceed organic uses.
- Merkle tree weakness: the construction of the merkle tree on a block’s
transactions is ambiguous membership of transactions with stripped sizes of
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"is ambiguous membership of transactions" reads weird

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oops, I forgot a word in rephrasing.

Copy link
Contributor

@darosior darosior left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some nits. Looks good overall. Impressive conciseness skills.

@murchandamus
Copy link
Collaborator Author

Thanks for the review, @darosior. I made changes based on your suggestions. Please let me know what you think, if you have a chance.

@bitschmidty
Copy link
Contributor

Thanks @murchandamus! I pushed some changes to improve the formatting and work in related topic links to the new text.

- **Time warp bug**: an [off-by-one error][topic time warp] in the difficulty adjustment algorithm
permits a majority hashrate attacker to arbitrarily increase block cadence.
This is mitigated by limiting the permitted timestamps for the first block
in difficulty periods and requiring that at an entire difficulty period has
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think

Suggested change
in difficulty periods and requiring that at an entire difficulty period has
in difficulty periods and requiring that an entire difficulty period has

Copy link
Contributor

@darosior darosior left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me.

Comment on lines 109 to 112
- **Merkle tree weakness**: the construction of the merkle tree on a block’s
transactions treats transactions with witness-stripped sizes of
64 bytes indistinguishably from inner nodes. Forbidding such transactions prevents two ways of
creating [fake transaction inclusion proofs][topic merkle tree vulnerabilities].
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For the record technically one way allows to forge an inclusion proof and the other only allows to malleate a valid blocks into an invalid one, but i think it's fine. Maybe if you want to be more technically accurate at the expense of being less immediately clear about the impact, you could say "two ways of malleating the content of a valid block".

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks, I went with “two ways of misrepresenting the content of a valid block”.

Copy link
Collaborator Author

@murchandamus murchandamus left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the formatting update and the review. I fixed the extraneous word and the imprecision.

Comment on lines 109 to 112
- **Merkle tree weakness**: the construction of the merkle tree on a block’s
transactions treats transactions with witness-stripped sizes of
64 bytes indistinguishably from inner nodes. Forbidding such transactions prevents two ways of
creating [fake transaction inclusion proofs][topic merkle tree vulnerabilities].
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks, I went with “two ways of misrepresenting the content of a valid block”.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants