Why using server key?

I read the TFHE-rs documentation but couldn’t find any information about the server key. Could you please explain why the server key is used and how it works in the background on the server side?

The ServerKey is a collection of keys needed by the server to be able to perfom the different FHE task, there are several things that makes them required

  • Doing FHE computation increases noise, and so, to be able to do an arbitrary amount of them, the server needs bootstrap keys to refresh the noise so that it does not get too big (otherwise you’ll get incorrect results)
  • Most FHE Computation make use the of the bootstrap keys ability to evaluate lookup tables
  • Features like CompressedCiphertextList also require some special keys to be able to compress ciphertext

All these keys are public keys, in the sense that they do not allow the server to decrypt the data it is processing