entropyxyz/synedrion

Implement failure/correctness proof checking for identifiable aborts

fjarri opened this issue · 0 comments

fjarri commented

With #39 and #41 merged, we now have a (draft) proof generation on errors. A node may return either a proof of misbehavior of another node, or a proof of its own correct behavior.

What is currently missing is an API to verify these proofs. We need to decide what should be attached to them (the relevant signed messages by other nodes, certainly, but is there anything else?), and how can a third party verify them.

In the paper the error path is a part of the protocol, but since in practice we have a global state (blockchain) and, possibly, an independent arbiter (the user initiating the signing process), we can perhaps simplify things and decouple this verification from the happy path of the protocol execution.

Even if we did have only the nodes with no global state, it may still be worth it to keep the verification external to the happy path, because otherwise the message routing would get complicated (and it is complicated enough already), and every round would have to branch out depending on what path it received messages from, for each node - a generalization nightmare.