zkmopro / mopro

Making client-side proving on mobile simple.
Apache License 2.0
103 stars 28 forks source link

Make witness generation work for iOS release #109

Closed oskarth closed 1 day ago

oskarth commented 3 months ago

Problem

We currently don't have witness generation that works for App Store release. This is due to an unexpected blocker with dylib for app store submission.

Three potential paths:

1) Dylib/Framework - we thought this would work but getting upload issues for obscure reasons, we tried pretty much everything we can think of. See https://github.com/oskarth/mopro/issues/107 2) Rust native witness gen - we tried to implement this experimental lib but turns out some gnarly bugs; long term very interesting but short term bugs too complex. See https://github.com/oskarth/mopro/issues/32 3) C++ witness gen - this is from iden3 ppl, it seems to work but it is a different stack. See https://github.com/oskarth/mopro/issues/110 4) There might be other C++/Rust hybrid approaches, but probably nothing that we can integrate <2w for showcase app

Right now, it seems worthwhile to go for 3 and at least do a timeboxed attempt to see if it can be integrated. Unknowns (a) how well it integrates with existing stack and how big changes are required (b) C++ so can expect some linking/distribution issues here, but other team seems to have been working OK with this (though no app store release afaik).

Acceptance criteria

Some witness generation integrated that works for app store release.

oskarth commented 1 month ago

Another contender that seems promising: Tachyon. Vivian has done some benchmarking and experimental work on this. Can setup separate issue for this one.