w3f / ring-vrf

MIT License
39 stars 17 forks source link

Write a Specification for the repo #89

Closed drskalman closed 1 month ago

drskalman commented 7 months ago

Open Points

So that we're all on the same page and we can have a constructive discussion

@drskalman @swasilyev @burdges @AlistairStewart @davxy @andresilva

drskalman commented 7 months ago
davxy commented 7 months ago

Some notes that could help during ThinVRF specs writing :

burdges commented 7 months ago

ark-transcript is robust when used in a larger protocol, like here the same transcript could be used for dleq_vrf and ring-proof. We do this because it's cheap and saves us thinking about things later.

Should we add a method which doesn't push the length to implement stuff specd differently (e.g. RFC 9381)?

No.

The only other serious preposal for robust domain speration in hashing is the SAFE API, which works similarly, but optimized for SNARKs. SAFE API produces a single domain seperation constant, but fills your code with panics if any of the lengths are wrong, etc. It's a nice ida for SNARKs, but they've not made it user friendly enough.

BTW ArkTranscript adds word challenge before hashing that is not what RFC9381 calls for.

We should discuss if this should be something else besides the label "challenge", like maybe a 0x0000, but again we want this to be a clean seperation, because then we do not need to think about it again.

In general, RFC9381 is unsuitable for our use cases. If you can reference RFC9381 usefully then great, but you will break things if you start making changes based upon RFC9381.

burdges commented 7 months ago

We do kinda need vrfs_merge + thin_vrf in sassafras btw, because the claim must uniquely link the ticket. The erased key links the ticket, but maybe no longer exists by claim time. We thus need one common VRF pre-output shared between the ring_vrf and the thin_vrf that claims the ticket, and one VRF pre-output that was never before revealed.

swasilyev commented 7 months ago

https://hackmd.io/ulW5nFFpTwClHsD0kusJAA

davxy commented 1 month ago

Done