Wat is Double Signing?
Double Signing is wanneer een validator twee conflicterende berichten ondertekent voor dezelfde hoogte of ronde in een proof of stake netwerk. Denk aan twee verschillende blokken of stemmen die op exact hetzelfde moment beweren “de juiste” te zijn. Het is alsof je bij twee concerten tegelijk incheckt en verwacht dat de beveiliging daar geen probleem van maakt.
“Double Signing is hetzelfde als een double spend.” Niet helemaal. Een double spend is een transactie truc, terwijl Double Signing een schending van het consensusprotocol is door validators die conflicterende gegevens voor dezelfde slot ondertekenen.
Hoe Double Signing werkt
Kort overzicht van hoe iemand erom in de problemen kan komen, opzettelijk of per ongeluk.
- Stap 1: Een validator sleutel is online en klaar om berichten voor de keten te ondertekenen.
- Stap 2: De operator start een tweede node met dezelfde sleutel of de client configureert failover verkeerd. Oeps.
- Stap 3: Beide nodes maken handtekeningen voor dezelfde hoogte, maar op verschillende payloads.
- Stap 4: Als er tijdelijke netwerkforks zijn, ontvangt elke kant mogelijk een andere handtekening van diezelfde sleutel.
- Stap 5: Peers detecteren het conflict, leggen bewijs vast en het protocol straft de ondertekenaar.
Ja, het kan een simpele misklik zijn met zeer niet simpele gevolgen.
Waarom Double Signing belangrijk is
Waarom je erom zou moeten geven, zelfs als je nooit een node draait:
- Voordeel: Weten dat het voorkomt helpt je configuraties te vermijden die fondsen en reputatie in gevaar brengen.
- Perspectief: De meeste netwerken reageren met slashing, omdat de daad het vertrouwen in het consensusproces verzwakt.
- Ter info: Je zult het tegenkomen in stakingdocumentatie, DAO stemmen en validator dashboards.
Draai slechts één actieve signer voor je sleutel en behandel failover met zorg. Gebruik meldingen, een sentry opzet en een remote signer die weigert twee keer te ondertekenen voor dezelfde hoogte. Bewijs staat op de blockchain, dus verbergen is niet mogelijk.
Belangrijkste kenmerken van Double Signing
Kernkenmerken die je kunt herkennen en onthouden:
- Conflict: Twee handtekeningen van dezelfde sleutel voor dezelfde hoogte of ronde op verschillende gegevens.
- Straffen: Leidt doorgaans tot verlies van stake en een tijdelijke uitsluiting van valideren.
- Waarneembaar: Bewijs wordt uitgezonden en opgeslagen, zodat peers het kunnen verifiëren.
Varianten
Verschillende chains noemen het anders, maar het blijft hetzelfde type fout:
- Double vote: Twee stemmen voor dezelfde hoogte op verschillende blokken.
- Dubbel voorstel: Twee voorgestelde blokken voor één ronde van dezelfde proposer.
- Ondertekenen over forks heen: Dezelfde sleutel ondertekent op concurrerende takken tijdens een tijdelijke splitsing.
De meeste Double Signing gebeurt per ongeluk. Twee machines met dezelfde sleutel laten draaien is al genoeg om het te veroorzaken, zelfs voor een paar seconden.
Voorbeeld
Een validator start een backup node zonder de primaire uit te schakelen, beide ondertekenen een blok op dezelfde hoogte en het netwerk markeert Double Signing binnen enkele minuten.
Leuk weetje
Veel clients hebben ingebouwde “double sign protection” die de laatst ondertekende hoogtes van een sleutel bijhoudt, als een kleine portier die je tweede valse ID weigert.
Samenvatting
Kort gezegd: Double Signing is de consensusvariant van op twee plaatsen tegelijk zijn en een boete krijgen omdat je doet alsof dat geen probleem is.
