{
  "$schema": "https://degreesofsatoshi.com/encyclopedia/schemas/article-v1.json",
  "schemaVersion": "1.0.0",
  "id": "validator-slashing-protection",
  "canonical": "https://degreesofsatoshi.com/encyclopedia/validator-slashing-protection/",
  "collection": "ethereum",
  "title": "Moving an Ethereum validator safely: slashing-protection records",
  "description": "Learn why validator migrations need signing history and why copying a keystore is not a safe active-backup strategy.",
  "aliases": [
    "validator migration slashing protection",
    "Ethereum slashing protection database"
  ],
  "dates": {
    "published": "2026-10-02",
    "modified": "2026-10-02",
    "verified": "2026-10-02T19:27:58.939Z",
    "dataAsOf": "2026-10-02"
  },
  "authorship": {
    "publisher": "Degrees of Satoshi editorial project",
    "process": "AI-assisted research and drafting with a separate automated source-verification pass; no external expert or named human review is implied."
  },
  "quickAnswer": {
    "text": "Slashing protection records what a validator has already signed so software can refuse conflicting proposals or votes. When moving a key to another client, transfer the relevant signing history using the supported process, such as EIP-3076 interchange. Stop the old signer before enabling an independent replacement; the history file is not permission to run both at once.",
    "claimId": "validator-slashing-protection-quick-answer",
    "sourceIds": [
      "x425-eth-eip3076"
    ]
  },
  "keyFacts": [
    {
      "label": "History",
      "value": "Key material alone does not contain all prior signing decisions.",
      "sourceIds": [
        "x425-eth-eip3076"
      ],
      "id": "history",
      "claimId": "validator-slashing-protection-fact-history"
    },
    {
      "label": "Interchange",
      "value": "EIP-3076 defines a format for moving signing history between clients.",
      "sourceIds": [
        "x425-eth-eip3076"
      ],
      "id": "interchange",
      "claimId": "validator-slashing-protection-fact-interchange"
    },
    {
      "label": "Network",
      "value": "The interchange metadata identifies the consensus chain.",
      "sourceIds": [
        "x425-eth-eip3076"
      ],
      "id": "network",
      "claimId": "validator-slashing-protection-fact-network"
    }
  ],
  "prerequisites": [
    "ethereum-slashing"
  ],
  "sections": [
    {
      "id": "conflict",
      "heading": "A restored key can unknowingly repeat a duty",
      "sourceIds": [
        "x425-eth-eip3076"
      ],
      "paragraphs": [
        "A validator can be penalized for signing incompatible messages, including certain proposals or attestations. A new client holding the key may not know that the old client already signed a conflicting message.",
        "The protection database supplies that missing context. Preserve it when changing software, recovering hardware or following a supported migration procedure."
      ]
    },
    {
      "id": "example",
      "heading": "A backup computer can create a second signer",
      "sourceIds": [
        "x425-eth-eip3076",
        "x425-eth-eth-solo"
      ],
      "paragraphs": [
        "Suppose the old machine loses monitoring connectivity but continues signing. Starting an independent backup with the same key can leave both active. A backup intended to prevent downtime can then introduce a conflicting-signature risk.",
        "Confirm shutdown and follow the clients’ migration guidance before enabling the replacement. Coordinate signing history as part of the move rather than treating it as an optional log."
      ]
    },
    {
      "id": "import",
      "heading": "Check compatibility and import results",
      "sourceIds": [
        "x425-eth-eip3076"
      ],
      "paragraphs": [
        "An interchange file identifies the network and contains validator public keys plus relevant signed-message records. Clients can maintain complete or minimal protection histories, and the interchange rules account for those different strategies.",
        "Use the actual client’s supported import and export commands, verify their outcomes and retain secure backups. A valid file format does not certify that every relevant signer or history record was included."
      ]
    }
  ],
  "faq": [
    {
      "question": "Is copying the validator keystore enough for migration?",
      "answer": "No. It provides key material but may omit previous signing decisions. Use the supported transfer of slashing-protection history as well.",
      "sourceIds": [
        "x425-eth-eip3076"
      ]
    },
    {
      "question": "Can slashing protection guarantee no slashing under all failures?",
      "answer": "No. Its protection depends on correct client behavior, complete enough history and coordinated operation. Independent duplicate signing remains a material risk.",
      "sourceIds": [
        "x425-eth-eip3076"
      ]
    }
  ],
  "claims": [
    {
      "id": "validator-slashing-protection-quick-answer",
      "articleSlug": "validator-slashing-protection",
      "statement": "Slashing protection records what a validator has already signed so software can refuse conflicting proposals or votes. When moving a key to another client, transfer the relevant signing history using the supported process, such as EIP-3076 interchange. Stop the old signer before enabling an independent replacement; the history file is not permission to run both at once.",
      "sourceIds": [
        "source-9d546a950a3e1f5d"
      ],
      "sourceLocators": [
        {
          "sourceId": "source-9d546a950a3e1f5d",
          "locator": "Interchange format; import and export; safety"
        }
      ],
      "scope": {
        "collection": "ethereum",
        "dataAsOf": "2026-10-02",
        "blockHeight": null
      },
      "qualification": "",
      "evidenceStatus": "documented",
      "verification": {
        "status": "verified",
        "method": "independent automated source review",
        "checkedAt": "2026-10-02T19:27:58.939Z",
        "reviewer": "Independent automated verification agent verify_bitcoin_stablecoins_100",
        "notes": [
          "Read EIP3076 schema, conditions, complete/minimal database advice and general recommendations. Keystores omit signing history; genesis_validators_root identifies chain. Stop exporting/importing signers to avoid stale-history races. Imported history is not permission for concurrent independent signing; no guarantee asserted after losing records."
        ]
      }
    },
    {
      "id": "validator-slashing-protection-fact-history",
      "articleSlug": "validator-slashing-protection",
      "statement": "History: Key material alone does not contain all prior signing decisions.",
      "sourceIds": [
        "source-9d546a950a3e1f5d"
      ],
      "sourceLocators": [
        {
          "sourceId": "source-9d546a950a3e1f5d",
          "locator": "Interchange format; import and export; safety"
        }
      ],
      "scope": {
        "collection": "ethereum",
        "dataAsOf": "2026-10-02",
        "blockHeight": null
      },
      "qualification": "",
      "evidenceStatus": "documented",
      "verification": {
        "status": "verified",
        "method": "independent automated source review",
        "checkedAt": "2026-10-02T19:27:58.939Z",
        "reviewer": "Independent automated verification agent verify_bitcoin_stablecoins_100",
        "notes": [
          "Read EIP3076 schema, conditions, complete/minimal database advice and general recommendations. Keystores omit signing history; genesis_validators_root identifies chain. Stop exporting/importing signers to avoid stale-history races. Imported history is not permission for concurrent independent signing; no guarantee asserted after losing records."
        ]
      }
    },
    {
      "id": "validator-slashing-protection-fact-interchange",
      "articleSlug": "validator-slashing-protection",
      "statement": "Interchange: EIP-3076 defines a format for moving signing history between clients.",
      "sourceIds": [
        "source-9d546a950a3e1f5d"
      ],
      "sourceLocators": [
        {
          "sourceId": "source-9d546a950a3e1f5d",
          "locator": "Interchange format; import and export; safety"
        }
      ],
      "scope": {
        "collection": "ethereum",
        "dataAsOf": "2026-10-02",
        "blockHeight": null
      },
      "qualification": "",
      "evidenceStatus": "documented",
      "verification": {
        "status": "verified",
        "method": "independent automated source review",
        "checkedAt": "2026-10-02T19:27:58.939Z",
        "reviewer": "Independent automated verification agent verify_bitcoin_stablecoins_100",
        "notes": [
          "Read EIP3076 schema, conditions, complete/minimal database advice and general recommendations. Keystores omit signing history; genesis_validators_root identifies chain. Stop exporting/importing signers to avoid stale-history races. Imported history is not permission for concurrent independent signing; no guarantee asserted after losing records."
        ]
      }
    },
    {
      "id": "validator-slashing-protection-fact-network",
      "articleSlug": "validator-slashing-protection",
      "statement": "Network: The interchange metadata identifies the consensus chain.",
      "sourceIds": [
        "source-9d546a950a3e1f5d"
      ],
      "sourceLocators": [
        {
          "sourceId": "source-9d546a950a3e1f5d",
          "locator": "Interchange format; import and export; safety"
        }
      ],
      "scope": {
        "collection": "ethereum",
        "dataAsOf": "2026-10-02",
        "blockHeight": null
      },
      "qualification": "",
      "evidenceStatus": "documented",
      "verification": {
        "status": "verified",
        "method": "independent automated source review",
        "checkedAt": "2026-10-02T19:27:58.939Z",
        "reviewer": "Independent automated verification agent verify_bitcoin_stablecoins_100",
        "notes": [
          "Read EIP3076 schema, conditions, complete/minimal database advice and general recommendations. Keystores omit signing history; genesis_validators_root identifies chain. Stop exporting/importing signers to avoid stale-history races. Imported history is not permission for concurrent independent signing; no guarantee asserted after losing records."
        ]
      }
    }
  ],
  "sources": [
    {
      "id": "x425-eth-eip3076",
      "label": "Slashing protection interchange format",
      "publisher": "Ethereum Improvement Proposals",
      "url": "https://eips.ethereum.org/EIPS/eip-3076",
      "locator": "Interchange format; import and export; safety",
      "note": "Signing-history transfer between validator clients does not authorize concurrent independent copies.",
      "version": "EIP-3076",
      "checkedAt": "2026-10-02T18:55:26.323Z",
      "contentSha256": "bf236c87eea59de6a6eb5fdfb802dffa5399004902cacc4f44522f4f80e95866",
      "recordId": "source-9d546a950a3e1f5d"
    },
    {
      "id": "x425-eth-eth-solo",
      "label": "Home staking Ethereum",
      "publisher": "ethereum.org contributors",
      "url": "https://ethereum.org/en/staking/solo/",
      "locator": "How it works; responsibilities; requirements",
      "note": "Running and maintaining execution, consensus and validator infrastructure with a qualifying stake.",
      "version": "Documentation snapshot retrieved 2 October 2026; response hash recorded separately",
      "checkedAt": "2026-10-02T18:55:25.708Z",
      "contentSha256": "8892580b4f6bb823ebe817c3073ad9d7eb2c8b32b54e4645f8ff6d4cbc919d51",
      "recordId": "source-ed235bbe5523f774"
    }
  ],
  "related": {
    "articles": [
      "ethereum-slashing",
      "ethereum-nodes-rpc",
      "ethereum-staking-withdrawals",
      "ethereum-validator-fee-recipient"
    ],
    "dossiers": [],
    "wallets": []
  },
  "revisionHistory": [
    {
      "date": "2026-10-02",
      "kind": "published",
      "summary": "First publication after primary-source research and separate automated verification."
    }
  ],
  "citation": "Degrees of Satoshi editorial project. “Moving an Ethereum validator safely: slashing-protection records.” Published 2026-10-02; updated 2026-10-02. https://degreesofsatoshi.com/encyclopedia/validator-slashing-protection/"
}
