3 ms·
> You send me the computation (as ostensible data) that you want to operate on my (secret) "data" (as ostensible code/function) which I apply and return results
by klez 4y ago
> You send me the computation (as ostensible data) that you want to operate on my (secret) "data" (as ostensible code/function) which I apply and return results.
Isn't that basically what we do with web applications? The server sends me JavaScript code which I run on my machine with my data (which the server doesn't need to see) and send the result to the server (either for further computation or for storage).
I mean, in it's current form it's not a perfect separation. It's more of a hybrid model where computation happens both on the client and the server, and some data is actually sent to the server without client-side computation. But the basic model is there.
- nonrandomstring 4y ago> Isn't that basically what we do with web applications? ... It's more of a hybrid model where computation happens both on the client Yes I think that's a valid observation, the essential paradigm, but you nail it (the limitations) as "hybrid". You're sending potentially untrustworthy (tamperable of obfuscated) code in the clear, and I have to trust your code and execute it. Flipping the data-code it's my code that runs on your data. Without sequencing the crypto primitives clearly yet, it feels like with a set of homomorphic operations we can get a "zero knowledge result" - you don't get to see my data and I don't get to see your "ask", and nobody in the middle gets to see anything - yet useful, mutually beneficial computation is obtained. Seems a Haskell/LISP-like paradigm using remotely evaluated first-class functions/monads would be the ecosystem within which to start experimenting with such ideas.