An update on the encryption protocol

Hi! :wave:

We’re pretty close to finalizing our encryption protocol:

This^ document includes:

  1. Bootstrapping the network
  2. Registration of new nodes
  3. Contracts state encryption
  4. Contracts inputs and outputs encryption

Still not finished:

  1. How network upgrades can occur without losing state and tx input/output history.
  2. How to generate contract_id in a trusted way, to prevent two contracts having the same encryption key (this section).

We’d love to get your feedback on this! :blush:
So please ask us hard questions, including about all of the “TODO reasoning” and about attack vectors.

List of previous discussions:



This is meaningful update to our earlier posts (1, 2). As expected, as we went deeper into the details there were quite a few small tweaks and changes to be made.

The general ideas are still the same. These are mostly finer implementation details but as spec goes - this is where people should look at.

Thanks @assafmo, @reuven, @toml and others for helping in finding solutions through our internal discussions. We welcome any outside feedback and issues that are raised.