How does the chain check PoSt deadline and generation attack threshold?


Does the blockchain uses a timestamp to keep track the deadline? Or some kind of logical ordering like the virtual voting in hashgraphs?

For Example:
Let’s say node A is storing a file on node B. Assume the file file has been sealed properly and proven on B. Then comes the PoSt part where B has to post PoSt for the file for some interval on the chain. Let’s say B sends the proof to the chain within the threshold. In this process (of sending this proof to the chain) it comes across to node C (on the network), and there are some connection problems for C with the rest of the network, such that by the time the proof (from B) has arrived at C it has passed the threshold. How can C be sure that B has send the proof within the threshold?

1 Like

The blockchain uses block times to keep track of PoST deadlines. B’s proof must be transmitted to the network in a message and mined into a block by a certain number of blocks since the last PoST message (or initial seal) or B will be hit with fines and penalties from its collateral. As blocks are spaced regularly in time this acts to prevent generation attacks as your title describes.

Ensuring that the penalty mechanism is forgiving enough to not cause excessive pain to honest miners while still harshly coming down on would-be generation-attackers is active work.

1 Like

Thanks for the reply! Your answer was every helpful.
Just as a followup question, (assume we are talking about the same setup as in the original question) the PoSt proof (for B) on the chain is checked by A right? Afterwards if the PoSt proof is verified A will send a key for the payment channel for B.