github.com/hyperion-hyn/go-ethereum@v2.4.0+incompatible/docs/Privacy/Constellation/Constellation.md (about)

     1  # Constellation
     2  
     3  Constellation is a self-managing, peer-to-peer system in which each
     4  node:
     5  
     6    - Hosts a number of NaCl (Curve25519) public/private key pairs.
     7  
     8    - Automatically discovers other nodes on the network after
     9      synchronizing with as little as one other host.
    10  
    11    - Synchronizes a directory of public keys mapped to recipient hosts
    12      with other nodes on the network.
    13  
    14    - Exposes a public API which allows other nodes to send encrypted
    15      bytestrings to your node, and to synchronize, retrieving
    16      information about the nodes that your node knows about.
    17  
    18    - Exposes a private API which:
    19  
    20        - Allows you to send a bytestring to one or more  public keys,
    21          returning a content-addressable identifier. This bytestring is
    22          encrypted transparently and efficiently (at symmetric
    23          encryption speeds) before being transmitted over the wire to
    24          the correct recipient nodes (and only those nodes.) The
    25          identifier is a hash digest of the encrypted payload that
    26          every receipient node receives. Each recipient node also
    27          receives a small blob encrypted for their public key which
    28          contains the Master Key for the encrypted payload.
    29  
    30        - Allows you to receive a decrypted bytestring
    31          based on an identifier. Payloads which your node has sent or
    32          received can be decrypted and retrieved in this way.
    33  
    34        - Exposes methods for deletion, resynchronization, and other
    35          management functions.
    36  
    37    - Supports a number of storage backends including LevelDB,
    38      BerkeleyDB, SQLite, and Directory/Maildir-style file storage
    39      suitable for use with any FUSE adapter, e.g. for AWS S3.
    40  
    41    - Uses mutually-authenticated TLS with modern settings and various trust
    42      models including hybrid CA/tofu (default), tofu (think OpenSSH), and
    43      whitelist (only some set of public keys can connect.)
    44  
    45    - Supports access controls like an IP whitelist.
    46  
    47  Conceptually, one can think of Constellation as an amalgamation of a
    48  distributed key server, PGP encryption (using modern cryptography,)
    49  and Mail Transfer Agents (MTAs.)
    50  
    51  Constellation's current primary application is to implement the
    52  "privacy engine" of Quorum, a fork of Ethereum with support for
    53  private transactions that function exactly as described in this
    54  README. Private transactions in Quorum contain only a flag indicating
    55  that they're private and the content-addressable identifier described
    56  here.
    57  
    58  Constellation can be run stand-alone as a daemon via
    59  `constellation-node`, or imported as a Haskell library, which allows
    60  you to implement custom storage and encryption logic.