Open leandernikolaus opened 1 year ago
In quorum certificates, we sign the block (encoded). Why do we not just sign the hash of the block? By just signing the hash, we could verify certificates without having to retrieve the block. This makes it easier to parallelize such verifications.
func (c crypto) CreatePartialCert(block *hotstuff.Block) (cert hotstuff.PartialCert, err error) { sig, err := c.Sign(block.ToBytes()) if err != nil { return hotstuff.PartialCert{}, err } return hotstuff.NewPartialCert(sig, block.Hash()), nil }
From here: https://github.com/relab/hotstuff/blob/5196107d449a52e240ab4eddf7ded7cf96a755e3/crypto/crypto.go#L36
Add a benchmark and tests (if not already sufficiently tested) and try it.
In quorum certificates, we sign the block (encoded). Why do we not just sign the hash of the block? By just signing the hash, we could verify certificates without having to retrieve the block. This makes it easier to parallelize such verifications.
From here: https://github.com/relab/hotstuff/blob/5196107d449a52e240ab4eddf7ded7cf96a755e3/crypto/crypto.go#L36