# Distributed Key Generator (DKG)

The Distributed Key Generator (DKG) is a critical protocol component responsible for provisioning cryptographic keys for a secure, time-locked encryption/decryption mechanism. This mechanism is formalized via Single Key Delay Encryption (SKDE).

{% hint style="info" %}
*Initially, the DKG is operated by Radius, with plans for transitioning to decentralized operator management to further enhance network robustness.*
{% endhint %}

#### **Core Functions**

DKG is designed to provide the foundational certainty necessary for high-value operations:

* **Byzantine Fault Tolerance (BFT)**: Implements BFT to safeguard the system. By decentralizing key management, DKG ensures that operator failure does not compromise the cryptographic security of the entire system.
* **Distributed Architecture**: Multiple specialized nodes decentralize the key management process, eliminating the single point of failure inherent in centralized key storage.
* **Time-Lock Encryption**: Keys for encryption are available immediately; decryption keys are released only after pre-determined time intervals.
* **SKDE Integration**: Seamlessly integrates with the SKDE framework to guarantee the integrity of time-locked cryptographic operations.
* **High Performance**: Achieves efficient key generation and consensus via asynchronous task processing.

#### **Architecture**

DKG operates through four specialized node types, each contributing to the security and integrity of the key lifecycle:

<figure><img src="/files/a25iGbeyCSUPy2dwhiBX" alt=""><figcaption></figcaption></figure>

#### **Node Roles**

| **Role**  | **Purpose**           | **Key Responsibilities**                                                                        |
| --------- | --------------------- | ----------------------------------------------------------------------------------------------- |
| Authority | Trusted Setup Manager | Constructs, manages, and securely distributes SKDE parameters.                                  |
| Committee | Key Generation Leader | Generates encryption keys and coordinates consensus among nodes.                                |
| Solver    | Decryption Provider   | Computes the time-lock decryption keys.                                                         |
| Verifier  | Network Monitoring    | Detects, monitors, and reports any Byzantine (malicious or faulty) behavior within the network. |

#### **How DKG Works**

DKG utilizes a time-locked encryption model:

1. Setup Phase: The Authority node initializes the system by generating and distributing foundational SKDE parameters.
2. Key Generation: Committee nodes create the encryption keys corresponding to scheduled time intervals.
3. Immediate Access: Encryption Keys are immediately available for external services.
4. Time-Locked Release: Solver nodes compute and release the corresponding decryption keys after pre-determined delays.
5. Verification: Verifier nodes continuously monitor the network operations, ensuring all nodes adhere to the protocol and maintaining fault tolerance.

<figure><img src="/files/rjLo2pZNxXhUlhErmFHb" alt=""><figcaption></figcaption></figure>

#### **Operational Lifecycle**

<figure><img src="/files/MxhINCAd988xEcwxYAOq" alt=""><figcaption></figcaption></figure>

#### **Key States and Transitions**

<figure><img src="/files/H5bjmciX6BfDL7lETtkr" alt=""><figcaption></figcaption></figure>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.theradius.xyz/overview/secure-block-building-sbb/distributed-key-generator-dkg.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
