Repository navigation
Refuse relayed mutations of fields the block hash does not cover. - #1090
Conversation
After the PoW update, stake type, the proof-of-full-node fields, pre-update hashVeilData on stake blocks, and the post-update accumulator body can be rewritten without moving the hash. Reject those copies as a possible corruption before storage, and only connect the copy this call stored.
The previous download path is no longer available.
The previous download path is no longer available.
Previous download path is no longer available.
seanPhill
left a comment
There was a problem hiding this comment.
This is a necessary vulnerability fix. The code has been thoroughly checked by multiple of us, and it will be further tested on testnet before it becomes an official release. It will be done quickly.
|
Looks good, just two small issues: right now CheckProofOfFullNode() accepts missing PoFN fields without checking whether the coinstake has blinded outputs. Since those fields aren’t hashed, they can be stripped without changing the block hash; the stripped copy gets stored, later fails normally, and causes the honest same-hash block to be rejected. Also CheckBlock() still routes PoW from the body and can hit bad-pos-version before checking the body commitments. I can forward fixes to @seanPhill shortly |
* validation: close remaining block mutation paths * test: initialize synthetic transaction outputs * validation: order authenticated block checks before signatures --------- Co-authored-by: Nik <69503704+nik343@users.noreply.github.com>
|
The version current at this moment will be running on testnet shortly along with other non-upgraded nodes. |
As this is also the release candidate for v1.4.5.0 bump master to v1.4.5.99. This will help identify peers as upgraded or not.
After the PoW update, stake type, the proof-of-full-node fields, pre-update hashVeilData on stake blocks, and the post-update accumulator body can be rewritten without moving the hash. Reject those copies as a possible corruption before storage, and only connect the copy this call stored. All credit belongs to @ohcee! Many thanks.