Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Malleability C] hotstuff CertifiedBlock #6718

Open
Tracked by #6647
UlyanaAndrukhiv opened this issue Nov 14, 2024 · 0 comments
Open
Tracked by #6647

[Malleability C] hotstuff CertifiedBlock #6718

UlyanaAndrukhiv opened this issue Nov 14, 2024 · 0 comments

Comments

@UlyanaAndrukhiv
Copy link
Contributor

UlyanaAndrukhiv commented Nov 14, 2024

CertifiedBlock is a Block with an acquired quorum. As an implementation of the ID() method is wrong, a byzantine consensus node can change the quorum certificate without being noticed by other nodes. The usage of this data structure should be reviewed to be proven safe. The ID() might be changed by Hash() function which hashes the quorum certificate too.

type CertifiedBlock struct {
	Block        *Block
	CertifyingQC *flow.QuorumCertificate
}

func (b *CertifiedBlock) ID() flow.Identifier {
	return b.Block.BlockID
}

type QuorumCertificate struct {
	View    uint64
	BlockID Identifier
	SignerIndices []byte
	SigData []byte
}
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

No branches or pull requests

1 participant