This is affecting our code base broadly, will all implementations of the Entity interface.
Example:
One of the central functions of an ExecutionResult is to commit to the end state of the executed block.
The current implementation gets the end state from (👉 code):
the last chunk's EndState
however, the ID computation for Chunk does not cover the end state 😱
I think at the moment, this might not be a problem, because ExecutionResult.ID serializes the entire execution receipt and then hashes it. However, this is easily broken probably without noticing (see for example the proposal in https://github.com/dapperlabs/flow-go/issues/6864)
For broader discussion of this topic 👉 Technical Product Meeting on March 16, 2023 (recoding)
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.
This is affecting our code base broadly, will all implementations of the
Entity
interface.Example:
One of the central functions of an
ExecutionResult
is to commit to the end state of the executed block.The current implementation gets the end state from (👉 code):
EndState
Chunk
does not cover the end state 😱I think at the moment, this might not be a problem, because
ExecutionResult.ID
serializes the entire execution receipt and then hashes it. However, this is easily broken probably without noticing (see for example the proposal in https://github.com/dapperlabs/flow-go/issues/6864)For broader discussion of this topic 👉
Technical Product Meeting
on March 16, 2023 (recoding)