仓库指标
- 星标
- (519 个星标)
- PR 合并指标
- (平均合并 12天 5小时) (30 天内合并 13 个 PR)
描述
Implement batch Merkle proof for multiple keys (in scrypto), and use it to prove that interlink vector is indeed corresponding to its header (add it to json/binary representation of PoPoW header, add checks to the verifier).
Interlink vector (links to super-blocks of different levels in the past) is stored in extension section of a block in packed form,
So the proof generation and verification would be as following:
-
add batchProofFor(keys: Array[Byte])* to ExtensionCandidate to get batch proof for possibly many keys
-
in NipopowAlgos, instead of proofForInterlink (which can be removed), make proofForInterlinkVector(ext: ExtensionCandidate) to get batch Merkle proof for all the interlinks in the extension (so keys starting with InterlinksVectorPrefix)
-
add batch proof to PoPowHeader, and make there method to check it (note: pack the vector before the check), fix serialization accordingly
-
implement hasValidProofs which is checking proofs for all the PoPoWHeader instances
-
do tests on the way :)