Recently, I came across Nillion ’s whitepaper . Nillion at its core is trying to be a new decentralized encrypted data-processing layer. Here’s how it works.
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 T
.
What this leads to is something interesting. Rather than storing plain-text data D
,
Nillion’s decentralized nodes are stored D⊕P
where 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.