Join GitHub today
GitHub is home to over 40 million developers working together to host and review code, manage projects, and build software together.Sign up
Proving key size is ~110mb for Semaphore. Assuming this is embedded on mobile device, it bloats the APK a lot. Current APK size is ~30mb and even that might be high for people with limited bandwidth.
Either drastically reduced key size, or some strategy for getting it after that gives a reasonable UX and.
1. Reduce key size
Don't know what this would entail or to what extent it is possible, needs to be researched. Some thoughts from Barry here:
2. Get key after install
E.g. strategy to download proof key after install. This becomes a UX problem where you have to download a "big" file to get started messaging. This might be mitigated with basic rate limiting etc, but requires more thought.
3. Use different ZKP technology
The tradeoffs might look different. Didn't find anything regarding proof key size after a cursory search.
I think any change in inputs would at least require the recomputation of H, off the top of my head I don't see a way around it. In this case, though, you could think of doing something like Gepetto/LegoSNARK to have two separate proofs and pay a bit more in verification time (you could batch verify to help with the costs maybe).
Curious - how come 90% are the same? Seems like an interesting situation.