Ce este semnarea dublă?
Semnarea dublă are loc atunci când un validator semnează două mesaje contradictorii pentru aceeași înălțime sau rundă într-o rețea proof-of-stake. Gândiți-vă la două blocuri sau voturi diferite care pretind că sunt „cel ales” în același moment. E ca și cum te-ai prezenta la două concerte exact în același timp și te-ai aștepta ca agenții de securitate să nu aibă nimic de obiectat.
„Semnarea dublă este același lucru cu o cheltuire dublă.” Nu chiar. Cheltuirea dublă este o stratagemă legată de tranzacții, în timp ce semnarea dublă este o încălcare a consensului comisă de validatori care semnează date contradictorii pentru același slot.
Cum funcționează semnarea dublă
O scurtă prezentare despre cum poți avea probleme din această cauză, intenționat sau din greșeală.
- Pasul 1: Cheia unui validator este online, pregătită să semneze mesaje pentru blockchain.
- Pasul 2: Operatorul pornește un al doilea nod cu aceeași cheie sau clientul configurează greșit sistemul de failover. Ups.
- Pasul 3: Ambele noduri generează semnături pentru aceeași înălțime, dar pentru payload-uri diferite.
- Pasul 4: Dacă apar temporar forkuri ale rețelei, fiecare parte poate primi o semnătură diferită de la aceeași cheie.
- Pasul 5: Nodurile peer detectează conflictul, înregistrează dovezile, iar protocolul îl penalizează pe cel care a semnat.
Da, o simplă apăsare greșită poate avea consecințe deloc simple.
De ce contează semnarea dublă
De ce ar trebui să-ți pese, chiar dacă nu rulezi niciodată un nod:
- Beneficiu: Dacă știi că există, poți evita configurațiile care îți pun în pericol fondurile și reputația.
- Perspectivă: Majoritatea rețelelor răspund prin slashing, deoarece acest act slăbește încrederea în consens.
- Relevanță: Vei vedea termenul menționat în documentația despre staking, în voturile DAO și în panourile de control ale validatorilor.
Folosește o singură instanță activă de semnare pentru cheia ta și gestionează cu grijă failover-ul. Configurează alerte, folosește o arhitectură cu noduri sentry și un serviciu de semnare la distanță care refuză să semneze de două ori pentru aceeași înălțime. Dovezile rămân pe blockchain, așa că nu există nicio cale de a le ascunde.
Caracteristicile cheie ale semnării duble
Trăsături esențiale pe care le poți recunoaște și reține:
- Conflict: Două semnături de la aceeași cheie, pentru aceeași înălțime sau rundă, dar pentru date diferite.
- Pedeapsă: De obicei, duce la pierderea stake-ului și la suspendarea temporară a activității de validare.
- Detectabilitate: Dovezile sunt difuzate și stocate, ceea ce îi determină pe nodurile peer să se comporte corect.
Variante
Diferite blockchainuri îi spun în mod diferit, dar este vorba despre același tip de greșeală:
- Vot dublu: Două voturi pentru aceeași înălțime, dar pentru blocuri diferite.
- Propunere duplicată: Două blocuri propuse într-o singură rundă de același propunător.
- Semnare pe forkuri concurente: Aceeași cheie semnează pe ramuri concurente în timpul unei divizări temporare.
Majoritatea cazurilor de semnare dublă sunt accidentale. E suficient să rulezi două mașini cu aceeași cheie pentru a o declanșa, chiar și numai pentru câteva secunde.
Exemplu
Un validator pornește un nod de rezervă fără să-l oprească pe cel principal; ambele semnează un bloc la aceeași înălțime, iar rețeaua detectează semnarea dublă în câteva minute.
Curiozitate
Multe aplicații client includ protecție încorporată împotriva semnării duble, care ține evidența ultimelor înălțimi la care a semnat o cheie, ca un mic portar care refuză o a doua identitate falsă.
Pe scurt
Pe scurt: semnarea dublă este varianta consensului în care te afli în două locuri simultan și ești amendat pentru că pretinzi că nu s-a întâmplat nimic.