From the whitepaper, I’ve found this statement:
“For conditional statements involving secret values, this means evaluating both branches and for dynamic loops we add randomness to the execution”.
I (think that I) understand the notion of homomorphic encryption, and how it applies to LSSS. But I’m failing to understand what the word “randomness” above means.
I’m hoping for some clarity in understanding how an MPC handles a dynamic loop. How can a worker with only partial knowledge of the system state reliably determine how to handle a dynamic loop?
I could imagine that maybe the worker runs the loop infinitely, saving the final state of each iteration and then selecting the correct number of iterations afterwards. But this seems pretty inefficient.