Description
beacon_block_and_blobs_sidecar
gossip validations are not sufficient to protect against any node mutating the sidecar after the proposer begins the gossip. As there is both no (1) proposer signature on the sidecar payload or (2) a cryptographic check that the commitments in the block map to the blobs in the sidecar.
EDIT: some background on gossip validations, we generally want to do minimum sufficient crypto-economic and validity checks to ensure the payload is at least "worth" gossiping. Usually this is a signature check to know it is from the expected actor and then whatever relatively cheap validity checks you can do to make sure it's generally well-formed. Here we have no crypto-economic commitment taht the adjoining payload was even made by the expected actor
So we can either sign the payload and do another sig check or we can run the full validate_blobs_sidecar
.
@Inphi estimates validate_blobs_sidecar
as ~12ms @ 2MB (4ms at 256kb) whereas the signature check @terencechain estimates at 1 to 4ms. If we run validate_blobs_sidecar
will it be dominant wrt time? If so, we need to be careful here. If not, lets just do that.