Creator
Created
Nov 1, 2023 6:03 PM
Project
Cross-chain interoperability
What is a finality proof/certificate?
- Signatures from majority of power for same (epoch, tipset) tuple
- Power table of previous final tipset (recursive)
What is a power table?
- Collection of pairs of (node ID, pubkey, power)
Questions
- Should this be a real blockchain?
- Add hash of previous FinalityCertificate, add a block producer who signs the block.
- This would mean that nodes need to reach consensus on exactly the same evidence of finality. At present, nodes might have different collections of signatures that add up to majority QAP, and that’s ok.
- If it’s not an actual blockchain, does that introduce attacks where adversary can release protocol-violating sigs in the past and produce safety violations that make deterministic catch-up hard?
- Is EC chain self-finalising if it includes built-in actor that verifies finality certificates?
- I.e. if fully validating the EC chain, don’t need to also validate the finality chain, because that logic is included in an actor.
- Yes?
- Is finality verification efficient enough for a smart contract?
- Construct signature payloads
- Verify BLS aggregate
- Compute power table delta
- Is it reasonable for a smart contract to store power table in its state, and process deltas?
- An alternative is that power table is a merkle tree (or better vector commitment). Then SC stores only the root, and a finality certificate needs to include inclusion proofs for all the signers
- The merkle proofs might be larger and more expensive
- Anca’s VC would be way more efficient - multi-openings for single lookup cost. Ideal, but would take longer to implement.
- To check: is BLS aggregate over different msg or exactly same message?