What is Shutter

Shutter Network is a protocol that allows users to encrypt their messages and decrypt them later on automatically.

This might sound simple but it has a wide amount of use cases such as MEV protection. By encrypting users' inputs until they are included in a block, it protects users from MEV attacks, as no one knows the transaction's details until executed

Shielded voting, people decisions get easily influenced by seeing other people decisions shutter allows to solve that too, it encrypts voters vote and decrypts them when the proposal voting is completed so voters can't influence each other

This is just the gist of the problems, Shutter Network can solve it has much bigger potential and in this article we are deep diving into how it exactly works.

How it works

Shutter have basically two main components - Keypers and Shuttermint

  1. Keypers

    Keypers are the backbone of the whole ecosystem. They perform key tasks such as generating and managing encryption keys and ensuring that data remains encrypted until it's meant to be revealed. Currently, keypers are manually selected by the DAO, though this may transition to a fully permissionless system in the future

  2. Shuttermint

    Shuttermint serves as the operational hub of the Shutter Network, facilitating communication between keypers for key generation. It is based on Tendermint, with keypers also acting as validators for this blockchain.

Key Generation & Encryption/Decryption

Shutter Network employs threshold cryptography, a type of Multi-Party Computation where multiple parties share a secret key. They use this shared key to sign messages and decrypt data without ever consolidating the secret key in one location, performing their roles asynchronously.

In the Shutter Network, a master key, or Eon key, is generated at the start. This key only needs regeneration if the keyper set changes.

The Eon key, along with an epoch number, is used to calculate epoch keys, to generate epoch keys it does not require communication between keypers; instead, each keyper can generate their portion of the epoch key locally.

Users encrypt their data using the required epoch public key, which keypers collaboratively decrypt using their epoch key shares. For executing tx onchain users uses a batch number as epoch number to generate the epoch public key and then the keypers decrypt and execute the txs in batches, this will be discussed in later sections in more detail

Contracts

There are three main contracts:

  1. Config Contract
    TODO
  2. Batcher Contract
    TODO
  3. Executor Contract
    TODO

Risks & Decentralization

TODO

Integration with Chains

TODO

Full Working image (Todo)

Snapshot Integration

One of the usecase of Shutter Network i.e. Shielded Voting is already live in Snapshot and can be used by anyone and experience a part of the future Shutter Network offers right now!

Shielded Voting is basically hiding the voter votes until the proposal voting is complete, which is important because we humans get easily influenced how others have voted till now and a small group of participants can influence votes of others, and privacy in vote results until completed makes sure whales and other malicious actors do not have insights about the voting results and stops them from manipulating it

Image Not Showing Possible Reasons
  • The image was uploaded to a note which you don't have access to
  • The note which the image was originally uploaded to has been deleted
Learn More →

How it basically works?

The votes where Shutter Network privacy is enabled are encrypted using the Epoch key with proposal id as the epoch number.

When the voting ends Snapshot asks Shutter Network to send decryption key, which is then computed by the Shutter Network keypers

Snapshot then validates the decryption key, decrypt the votes and count them!