Hacker Challenge

Architecture

Technical architecture of the P2P engine behind the hacker challenge.

Hacker Challenge is a decentralized network of nodes. Each node in the network runs inside an enclave1. Memory pages of programs within the enclave are encrypted outside the enclave. Programs within the enclave have access to sources of entropy that are also protected from outside interventions. Enclaves also have exclusive access to their unique secrets that they usually use to seal2 data on disk. Each enclave in the cluster must have the same measurements3, since it runs the same version of the code and configuration. A running program can generate a quote that can be used to verify the measurements and legitimacy of the hardware it's running on. Decentralized algorithms are simplified as you will see from the code, since every node in the cluster is inherently trusted.

Assuming there are no vulnerabilities in any of the mentioned hardware features, and our node implementation has none either, it should be practically impossible to steal the SOL from the network wallet because:

  • wallet key is created inside the enclave1 using a trusted source of entropy
  • memory pages of the node that keep the wallet are encrypted to the outside world
  • node seals2 it's own current progress and the Solana wallet keys on the disk
  • nodes verify if measurements3 of each other match through RATLS

Hence when the new node joins the network, it connects to 3 peers using the RATLS handshake. The peers exchange their measurements and verify them. If the measurements are not in the whitelist, the peer will reject the connection. When the node is successfully connected, it receives the Solana wallet keypair and is able to mint the DTHC token.

Footnotes

  1. The enclave is a program that operates in a trusted execution environment (TEE) 2
  2. Sealing is a technique that the enclave uses to symmetrically encrypt and decrypt disk data to hide it from host 2
  3. Enclave measurements are strings that uniquely identify the enclave and its configuration, like hash of the enclave's binary, configuration, the signer public key, its version and product id 2