---
title: 分散式驗證者技術
description: 分散式驗證者技術讓多方能夠分散式地營運以太坊驗證者。
lang: zh-tw
template: staking
sidebarDepth: 2
summaryPoints:
  - 將驗證者的簽署金鑰分散到多台機器和營運者中，消除單點故障
  - 在個別硬體、軟體或營運者發生故障時，仍能保持驗證者在線
  - 現今被獨立質押者、質押服務和質押池所使用的生產基礎設施
---

## 什麼是分散式驗證者技術？ {#what-is-dvt}

分散式驗證者技術 (DVT) 是一種驗證者安全方法，將金鑰管理和簽署責任分散給多方，以減少單點故障並提高驗證者的韌性。

DVT 透過將用於保護驗證者的**私鑰分割到多台電腦**（組織成一個「叢集」）來分散金鑰管理和簽署。這樣做允許叢集中的某些節點離線，同時保持驗證者節點活躍，因為必要的驗證工作可以由每個叢集中的一部分機器完成。這種分散減少了單點故障，使驗證者更加穩健。DVT 簽署分散的另一個好處是，它使攻擊者很難獲取金鑰，因為完整的金鑰不會儲存在任何單一機器上。

![一張圖表，顯示單一驗證者金鑰如何被分割成金鑰份額，並分配給具有不同元件的多個節點。](./dvt-cluster.png)

DVT 不是一種獨立的質押方式。它是任何質押設定都可以使用的軟體層：
- [獨立質押者](/staking/solo/)可以組隊共同營運一個驗證者，或者單個獨立質押者可以使用 DVT 為其獨立質押設定增加韌性。
- [質押服務](/staking/saas/)和[質押池](/staking/pools/)可以使用 DVT 來增加韌性並強化其質押基礎設施，或者將驗證者營運分散給許多獨立的營運者。

## 為什麼我們需要 DVT？ {#why-do-we-need-dvt}

### 安全性 {#security}

驗證者會產生兩對公私鑰：用於參與共識的驗證者金鑰，以及用於存取資金的提款金鑰。雖然驗證者可以將提款金鑰安全地保存在冷儲存中，但驗證者私鑰必須 24/7 全天候在線，以簽署驗證者全天被分配的職責，例如證明和區塊提案。將金鑰保持在線會增加被盜的風險，而 DVT 限制了這種風險：只有金鑰份額會在線，完整的金鑰永遠不會在線。

如果驗證者私鑰遭到外洩，攻擊者就可以控制驗證者，這可能會導致罰沒或質押者的 ETH 損失。DVT 減輕了這種風險。透過 DVT，原始的完整驗證者金鑰會被加密並分割成金鑰份額。金鑰份額在線存在，分散在共同營運驗證者的多個節點中，而完整的「主」金鑰則安全地保持離線。這種分散是可能的，因為[以太坊](/)驗證者使用具有可加性的 BLS 簽章，這意味著可以透過加總其組成部分來重建完整的金鑰。使用金鑰份額製作的部分簽章會組合成對完整金鑰有效的簽章，因此日常簽署永遠不需要完整的金鑰本身。當叢集使用分散式金鑰生成來產生新的驗證者金鑰時，完整的私鑰永遠不會存在於任何單一機器上。

### 無單點故障 {#no-single-point-of-failure}

當一個驗證者被劃分到多個營運者和多台機器時，它可以承受個別的硬體和軟體故障而不會離線。透過在叢集中的節點上使用多樣化的硬體和軟體配置，也可以降低故障風險。單節點驗證者配置原生並不具備多營運者分散功能；它來自 DVT 中介軟體層。

如果叢集中某台機器的其中一個元件發生故障（例如，如果驗證者叢集中有四個營運者，其中一個使用了有錯誤的特定客戶端），其他營運者可以確保驗證者繼續運行。

### 去中心化 {#decentralization}

以太坊的理想情況是擁有盡可能多獨立營運的驗證者。然而，少數質押提供商變得非常受歡迎，並佔據了網路上總質押 ETH 的很大一部分。DVT 可以允許這些營運者存在，同時保持質押的去中心化。這是因為每個驗證者的金鑰都分散在許多機器上，驗證者要變得惡意需要更大程度的共謀。

如果沒有 DVT，質押提供商更容易為其所有驗證者僅支援一兩種客戶端配置，從而增加了客戶端錯誤的影響。DVT 可用於將風險分散到多種客戶端配置和不同的硬體上，透過多樣性創造韌性。

**DVT 為以太坊提供以下好處：**

1. 以太坊權益證明共識的**去中心化**
2. 確保網路的**活躍度**
3. 創造驗證者**容錯能力**
4. **信任最小化**的驗證者營運
5. **最小化罰沒**和停機風險
6. **改善多樣性**（客戶端、資料中心、位置、法規等）
7. **增強**驗證者金鑰管理的**安全性**

## DVT 是如何運作的？ {#how-does-dvt-work}

DVT 實作通常作為叢集中每台機器上的附加軟體運行。該軟體充當了中介軟體，位於節點的驗證者客戶端與其共識客戶端之間，它在那裡與叢集中的其他節點協調，以便集體簽署驗證者的職責。

DVT 解決方案包含以下元件：

- **[Shamir 秘密共享](https://medium.com/@keylesstech/a-beginners-guide-to-shamir-s-secret-sharing-e864efbf3648)** - 驗證者使用 [BLS 金鑰](https://en.wikipedia.org/wiki/BLS_digital_signature)。驗證者私鑰可以分割成多個「金鑰份額」，並且因為 BLS 簽章具有可加性，使用這些金鑰份額製作的部分簽章可以組合成對完整驗證者金鑰有效的單一簽章。
- **[門檻簽章方案](https://medium.com/nethermind-eth/threshold-signature-schemes-36f40bc42aca)** - 決定簽署職責所需的個別金鑰份額數量，例如 4 個中的 3 個。
- **[分散式金鑰生成 (DKG)](https://medium.com/toruslabs/what-distributed-key-generation-is-866adc79620)** - 產生金鑰份額的密碼學過程，用於將現有或新驗證者金鑰的份額分散到叢集中的節點。
- **[多方運算 (MPC)](https://messari.io/report/applying-multiparty-computation-to-the-world-of-blockchains)** - 完整的驗證者金鑰是使用多方運算秘密產生的。任何個別營運者都永遠不會知道完整的金鑰——他們只會知道自己擁有的那一部分（他們的「份額」）。
- **共識協定** - 共識協定選擇一個節點作為區塊提案者。他們與叢集中的其他節點共享該區塊，其他節點將其金鑰份額添加到聚合簽章中。當聚合了足夠的金鑰份額時，該區塊就會在以太坊上被提案。

分散式驗證者具有內建的容錯能力，即使某些個別節點離線也能繼續運行。即使驗證者節點叢集中的某些節點被證明是惡意或怠惰的，該叢集也具有韌性。

## 生產環境中的 DVT {#dvt-in-production}

如今，分散式驗證者在主網上運行，涵蓋獨立質押、質押服務和聯合質押。有兩個網路佔了這項活動的大部分：

<ProductDisclaimer />

- **Obol** 開發了 Charon，這是一個開源的 DVT 中介軟體客戶端，讓機器叢集可以共同營運一個驗證者（「小隊質押」）。群組透過 Obol 的 [DV Launchpad](https://docs.obol.org/learn/readme/launchpad) 執行分散式金鑰生成並配置其叢集。Obol 叢集在生產環境中被[質押協定](/staking/pools/)和[質押服務](/staking/saas/)使用，包括 Lido 的 Simple DVT 模組和 EtherFi 的 Operation Solo Staker 計畫，該計畫將家庭營運者引入容錯叢集中。
- **SSV Network** 是一個由獨立節點營運者組成的無需許可網路。驗證者金鑰被分割成金鑰份額，並分散給一組選定的營運者，他們集體執行驗證者的職責；沒有任何單一營運者持有完整的金鑰。質押服務和質押池在 SSV 上運行大型驗證者集，並且與 Obol 一樣，它也被 Lido 的 Simple DVT 模組所使用。

## DVT 使用案例 {#dvt-use-cases}

DVT 對更廣泛的質押產業具有重大意義：

### 獨立質押者 {#solo-stakers}

DVT 實現了**小隊質押**：一小群人（例如朋友、社群成員或透過啟動平台協調的陌生人）在他們自己的機器上集體營運單一驗證者。群組的門檻（例如 4 人中的 3 人）必須在線，驗證者才能執行其職責，因此沒有任何單一成員的停機、硬體故障或錯誤會導致驗證者離線。當使用分散式金鑰生成建立金鑰時，沒有任何成員會持有完整的簽署金鑰。

DVT 還透過允許您將驗證者金鑰分散到遠端節點，同時將完整的金鑰完全保持離線，來實現非託管質押。這意味著質押者不一定需要運行自己的硬體，並且分散金鑰份額有助於防止潛在的駭客攻擊。

### 質押即服務 (SaaS) {#saas}

管理許多驗證者的營運者（例如質押池和機構質押者）可以使用 DVT 來降低其風險。透過分散其基礎設施，他們可以為其營運增加備援，並使其使用的硬體類型多樣化。

DVT 在多個節點之間分擔金鑰管理的責任，這意味著也可以分擔一些營運成本。DVT 還可以降低質押提供商的營運風險和保險成本。

### 質押池 {#staking-pools}

由於標準的驗證者設定，質押池和流動性質押提供商過去必須對每個個別營運者給予極大的信任，因為收益和損失在整個池中是社會化的。他們也依賴營運者來保護簽署金鑰，因為在 DVT 出現之前，他們沒有其他選擇。

儘管傳統上會努力透過將質押分散給多個營運者來分散風險，但每個營運者仍然獨立管理著大量的質押。如果單一營運者表現不佳、遇到停機、遭到外洩或採取惡意行動，依賴單一營運者會帶來巨大的風險。

透過利用 DVT，可以減少對每個個別營運者所需的信任。**質押池可以讓營運者持有質押而無需託管驗證者金鑰**（因為只使用金鑰份額）。它還允許將管理的質押分散給更多營運者（例如，與其讓單一營運者管理 1000 個驗證者，DVT 允許這些驗證者由多個營運者集體營運）。多樣化的營運者配置有助於確保如果一個營運者發生故障，其他營運者仍然能夠進行證明。由此產生的備援和多樣化可以帶來更好的效能和韌性，同時最大化獎勵。

最小化單一營運者信任的另一個好處是，質押池可以允許更開放和無需許可的營運者參與。今天一些質押池在生產環境中就是這樣做的。多營運者 DVT 叢集讓協定可以將家庭質押者和較小的營運者與較大的專業營運者配對，結合了精選和無需許可的營運者集。

## 使用 DVT 的潛在缺點 {#potential-drawbacks-of-using-dvt}

- **額外的元件** - 引入 DVT 節點增加了一個可能發生故障或存在漏洞的部分。這可以透過擁有多個 DVT 軟體實作來減輕，就像共識層和執行層有多個客戶端一樣。
- **營運成本** - 由於 DVT 將驗證者分散在多方之間，因此營運需要更多節點而不僅僅是單一節點，這帶來了增加的營運成本。
- **潛在的延遲增加** - 由於 DVT 利用共識協定在營運驗證者的多個節點之間達成共識，因此它可能會帶來增加的延遲。

## 常見問題 {#faq}

<ExpandableCard title="我需要 DVT 才能質押嗎？" eventCategory="DVT" eventName="clicked do I need DVT to stake">
不需要。運行驗證者客戶端的單台機器可以在沒有任何 DVT 軟體的情況下運作，這仍然是常見的家庭質押設定。DVT 是一個可選層，它增加了容錯能力並消除了單點故障。如果您希望您的驗證者能夠在個別機器故障時存活下來，或者如果您想與其他人分擔營運驗證者的責任，這將非常有用。
</ExpandableCard>

<ExpandableCard title="DVT 會拆分我的 ETH 或提款金鑰嗎？" eventCategory="DVT" eventName="clicked does DVT split my ETH">
不會。DVT 僅分割驗證者_簽署_金鑰，該金鑰用於證明和區塊提案等共識職責。您的質押始終由為驗證者設定的提款地址控制，這不受 DVT 影響。自佩克特拉升級以來，提款地址持有者也可以直接從執行層觸發驗證者退出，完全不需要簽署金鑰。
</ExpandableCard>

<ExpandableCard title="如果叢集中的節點離線會發生什麼事？" eventCategory="DVT" eventName="clicked what happens if nodes go offline">
只要達到門檻的節點保持在線（例如 4 個中的 3 個），驗證者就會繼續執行其職責。如果同時有太多節點離線，驗證者就會直接離線並錯失獎勵，直到有足夠的節點返回，這與任何離線驗證者一樣。離線並不是會被罰沒的違規行為。
</ExpandableCard>

<ExpandableCard title="叢集必須是 4 取 3 嗎？" eventCategory="DVT" eventName="clicked does a cluster have to be 3 of 4">
不是。「4 個中的 3 個」只是最小的常見配置，在本頁面中被用作範例。叢集大小和簽署門檻是在建立叢集時選擇的。

叢集的大小通常設定為門檻是節點的三分之二絕對多數，這使得叢集能夠在容忍故障或離線成員的同時繼續簽署。4 節點叢集用 3 個節點簽署並容忍 1 個故障；7 節點用 5 個簽署並容忍 2 個；10 節點用 7 個簽署並容忍 3 個。較大的叢集以運行更多機器和它們之間更多協調為代價，換取了更多的容錯能力。

[更多關於叢集大小和韌性的資訊](https://docs.obol.org/next/learn/charon/cluster-configuration#cluster-size-and-resilience)
</ExpandableCard>

<ExpandableCard title="DVT 和聯合質押一樣嗎？" eventCategory="DVT" eventName="clicked is DVT the same as pooled staking">
不是。聯合質押結合了許多人的 ETH 來資助驗證者，是幾種[質押方式](/staking/)之一。DVT 是用於_營運_驗證者的基礎設施。它將一個驗證者的簽署分散到多台機器和營運者中。兩者是互補的；許多質押池使用 DVT 來分散其營運者集，但 DVT 本身並不匯集任何人的 ETH。
</ExpandableCard>

## 進一步閱讀 {#further-reading}

- [以太坊分散式驗證者技術 (DVT) - 完整介紹](https://www.cyfrin.io/blog/full-introduction-to-ethereum-distributed-validator-technology-dvt) - Cyfrin
- [什麼是 DVT 以及它如何改善以太坊上的質押？](https://blog.obol.org/what-is-dvt-and-how-does-it-improve-staking-on-ethereum/) - Obol
- [以太坊分散式驗證者規範（高階）](https://github.com/ethereum/distributed-validator-specs)
- [以太坊分散式驗證者技術規範](https://github.com/ethereum/distributed-validator-specs/tree/dev/src/dvspec)
- [Obol 文件](https://docs.obol.org/)
- [SSV Network 文件](https://docs.ssv.network/)
- [Lido Simple DVT 模組](https://operatorportal.lido.fi/modules/simple-dvt-module)
- [Shamir 秘密共享展示應用程式](https://iancoleman.io/shamir/)