Skip to content

[Producer] Validation flow: perform syncronisation when validation of received block digest fails #33

@HaySayCheese

Description

@HaySayCheese

Roles

Og - observer that generates the block;
Or - observer that receives block candidates digests;

Description

At the moment, Or performs additional blockchain sync. in case if it receives BlockHash notification from the Og, and it's hash does not equal to the last block of the Or's chain. Og broadcasts BlockHash notification each time, when new block has been generated.

This kind of sync is needed for the cases, when Or has missed Signatures collection from the Og, and does not committed the last block, when the rest observers has been comited it. In this case, this sync. makes it possible for the Or to quickly download the last block form someone from the network and attach it to the chain.

Optimization

This synchronization might be performed when Or receives Block Digest from the Og and received digest's hash does not passes validation (does not corresponds to the last block hash). In this case Or should try to check validity of it's chain with the help of majority (perform synchronization).

This way makes it possible to simplify validation flow logic and optimize traffic usage.

Vulnerabilities

  • Malicious Og might drain the Or with invalid Block Digests, so the Or would again and again perform sync. with other observers. To prevent this malicious behavior - only one sync. operation should be performed by the Or, and, in case if the last block of the Or was exactly the same as the majority has -- then Og should be marked as malicious node for current generation round, and no any sync. attempts must be performed.

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions