Performing computation on encrypted data is an interesting challenge. Fully-homomorphic encryption has been one approach to it. It is both computationally expensive and slow. Nillion takes an interesting approach. It uses one-time pads, something that a cryptography student learns and immediately forgets about. So, rather than storing the plain-text information, Nillion stores data encrypted (XORed) with one-time pads. And these pads are generated via multi-party computation with some minimum number of shares for decryption, say
What this leads to is something interesting. Rather than storing plain-text data
D, Nillion’s decentralized nodes are stored
P is a one-time pad that’s generated from multi-party computation where minimum
T nodes have to collude to get that. Can all computations be performed on
D⊕P, well, no, But quite a bit. The bigger advantage, I believe, is that
D⊕P has no dispersion. A typical encryption algorithm is expected to produce high dispersion, so, when you change a single bit in the plain-text data
D, the output will look radically different in several bits all over. In the case of a one-time pad, there is no such dispersion. And that makes them a great candidate for being able to perform distributed computation on encrypted data.