# Obol DVT Explained

## Ok, so what is DVT...?

Distributed Validator Technology. In a traditional solo staking setup, if a single validator node goes offline due to technical issues or maintenance, it immediately stops performing its validator duties (attestations, block proposals, etc.).

This can lead to missed rewards and penalties for the staker. However, with DVT, a group of stakers works together as a single unit. If one of the stakers within the group experiences downtime, the remaining stakers continue to perform the validator duties collectively.

This ensures that the staking process remains uninterrupted, maintaining network stability and allowing the group to continue earning rewards while minimizing the risks associated with individual node failures.

With a standard solo validator, without DVT, the setup looks like this:

<figure><img src="/files/vZ4VWXlKUmwAElrMVZGD" alt=""><figcaption><p>Standard Solo Validator without DVT</p></figcaption></figure>

{% hint style="info" %}
**What are the parts of an Ethereum Validator Node?**

**EC** = Execution Client (e.g. Geth, Besu, etc.)

**BN** = Beacon Node (e.g. Lighthouse, Teku, etc.)

**VC** = Validator Client (e.g. Lighthouse, Teku, etc.)
{% endhint %}

As you can see, a standard solo validator holds the entire validator signing key. This is the key that is used to perform validator duties such as proposing blocks and attesting (voting).

DVT is a technology that allows a single key to be split into multiple parts, called <mark style="color:green;">**keyshares**</mark>, and through some cryptographic magic, those <mark style="color:green;">**keyshares**</mark> can be used to perform validator duties when combined!

## How does Obol DVT work?

[Obol](https://obol.tech/) is a company that has been building a DVT solution using their <mark style="color:green;">**Charon**</mark> (pronounced Karon) client. This is a piece of software that sits in between your Beacon Node and Validator Client.

<mark style="color:green;">**Charon**</mark> is also the software that will be used by Ether.fi to split the validator key into <mark style="color:green;">**keyshares**</mark>.

<figure><img src="/files/HCByixdWOOSciBqd6wDQ" alt=""><figcaption><p>Charon splitting an existing validator key into multiple keyshares</p></figcaption></figure>

Once those <mark style="color:green;">**keyshares**</mark> have been generated, they will be distributed to each of the solo stakers, who are collectively called a <mark style="color:green;">**cluster**</mark>.

<figure><img src="/files/8ZMq0QNdlXOJ0WmeVexU" alt=""><figcaption><p>An Obol DVT Cluster with 4 keyshares</p></figcaption></figure>

Each solo staker in the <mark style="color:green;">**cluster**</mark> is given one <mark style="color:green;">**keyshare**</mark>. The cluster will be configured with a 3/4 <mark style="color:green;">**threshold**</mark> which means that if at least 3 of the 4 operators are online, the <mark style="color:green;">**cluster**</mark> will be able to perform its validator duties.

The important points you need to be aware of are:

* Ether.fi will be generating the validator key and <mark style="color:green;">**keyshares**</mark>, so don't worry, you don't need to know the details about how that works (unless you'd like to learn more from the [Obol docs](https://docs.obol.tech/docs/int/quickstart/quickstart-split)).
* You will be given one <mark style="color:green;">**keyshare**</mark> that you will upload to your staking machine.

How do you upload the <mark style="color:green;">**keyshare**</mark> to your staking machine? Just follow the instructions for your specific machine:

{% content-ref url="/pages/qwGL2MapsKv5ZPqChUBa" %}
[Avado Setup](/etherfi/solo-stakers/operation-solo-staker/obol-dvt-explained/avado-setup.md)
{% endcontent-ref %}

{% content-ref url="/pages/iInqBgrCqLB5qakqbglz" %}
[Dappnode Setup](/etherfi/solo-stakers/operation-solo-staker/obol-dvt-explained/dappnode-setup.md)
{% endcontent-ref %}

{% content-ref url="/pages/l9jHy1nXkHAyd6ovHWmU" %}
[Custom Setup](/etherfi/solo-stakers/operation-solo-staker/obol-dvt-explained/custom-setup.md)
{% endcontent-ref %}


---

# 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://etherfi.gitbook.io/etherfi/solo-stakers/operation-solo-staker/obol-dvt-explained.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.
