Warum ist 6 die Anzahl der Bestätigungen, die als sicher gilt? Ich habe keine mathematische oder sonstige Erklärung gefunden, die erklärt, warum es 6 und nicht 5 oder 7 ist. Gibt es einen historischen Grund für 6? Gibt es eine bestimmte Methode zur Berechnung, sodass 6 nur eine gewählte Zahl ist?
Ich glaube, dies wird auf Seite 8 von Satoshis Bitcoin-Papier angesprochen, wenn die Wahrscheinlichkeit aufgezeigt wird, dass ein Angreifer aufholt.
Das Wiki sagt:
"Nur 6 Blöcke oder 1 Stunde reichen aus, um eine Umkehrung rechnerisch unpraktisch zu machen."
Das Schlüsselwort ist "unpraktisch".
Der wichtige Satz in Satoshis Artikel lautet:
"Unter der Annahme, dass die ehrlichen Blöcke die durchschnittlich erwartete Zeit pro Block benötigten, ist der potenzielle Fortschritt des Angreifers eine Poisson-Verteilung ".
Es ist also nicht so, dass jemand nicht die Welt als Erster erschaffen und eine 50-Millionen-Dollar-ASIC-Farm besitzen könnte, um die Blockchain von einem Fork sechs Blocks zuvor zu überholen, aber das wäre a.) ein gewaltiges Unterfangen , b.) für alle offensichtlich und c.) für den Angreifer furchtbar unrentabel.
Viele Leute zitieren das Satoshi-Papier falsch und nehmen an, dass 6 ein harter Wert ist.
Satoshis Papier beschreibt die Anzahl der Bestätigungen, die erforderlich sind, um zu 99,9 % sicher zu sein (weniger als 1 zu 1000 Erfolgschancen), dass ein Angreifer keine längere Kette aufbauen konnte, um die Transaktion rückgängig zu machen.
http://bitcoin.org/bitcoin.pdf
P < 0.001
q=0.10 z=5
q=0.15 z=8
q=0.20 z=11
q=0.25 z=15
q=0.30 z=24
q=0.35 z=41
q=0.40 z=89
q=0.45 z=340
p ist die Wahrscheinlichkeit, dass der Angreifer schließlich eine längere Kette erhält und eine Transaktion rückgängig macht (in diesem Fall 0,1 %). q ist der Prozentsatz der Hashing-Macht, die der Angreifer kontrolliert. z ist die Anzahl der Blöcke, um das Risiko einer Umkehrung unter p (0,1 %) zu bringen.
So können Sie sehen, ob der Angreifer einen kleinen Prozentsatz der Hashing-Power von 6 Blöcken hat. Denken Sie daran, dass 10 % des Netzwerks zum Zeitpunkt des Schreibens ~100 GH/s beträgt. Wenn der Angreifer jedoch einen größeren Prozentsatz der Hashing-Macht hätte, würde es immer länger dauern, bis sichergestellt ist, dass eine Transaktion nicht rückgängig gemacht werden kann.
Wenn der Angreifer deutlich mehr Hashpower hätte, sagen wir 25 % des Netzwerks, wären 15 Bestätigungen erforderlich, um sicher zu sein (99,9 % Wahrscheinlichkeit), dass ein Angreifer es nicht rückgängig machen kann.
Wenn der Angreifer q von > 50 % hat ("der 51-%-Angriff"), wird der Angreifer bei unbegrenzter Zeit unweigerlich mit der längsten Kette enden.
Zur Bearbeitung: Um die "unbegrenzte Zeit" zu verdeutlichen, wird die Kette mit der höheren Hashrate unweigerlich am längsten enden, aber die Wahrscheinlichkeit spielt immer noch eine Rolle. Wir können nicht mit 100%iger Sicherheit sagen, wie lange es dauern wird, bestenfalls können wir ein Konfidenzintervall angeben. Wenn der Angreifer nur knapp schneller ist als die guten Miner (51 % vs. 49 %), kann es sehr lange dauern, bis ein Angreifer ein Defizit von 6 Blöcken überwunden hat. Je stärker der Angreifer dominiert (dh 70 % gegenüber 30 %), desto schneller wird das 95 %-Konfidenzintervall erreicht.
Hier sind einige der relevanten Abschnitte aus Satoshis Papier: http://bitcoin.org/bitcoin.pdf
"11. Berechnungen Wir betrachten das Szenario eines Angreifers, der versucht, eine alternative Kette schneller als die ehrliche Kette zu generieren. ... Das Rennen zwischen der ehrlichen Kette und einer Angreiferkette kann als binomialer Random Walk charakterisiert werden. Das Erfolgsereignis ist das Die ehrliche Kette wird um einen Block verlängert, wodurch ihr Vorsprung um +1 erhöht wird, und das Fehlerereignis besteht darin, dass die Kette des Angreifers um einen Block verlängert wird, wodurch die Lücke um -1 verringert wird ... Die Wahrscheinlichkeit, dass ein Angreifer ein bestimmtes Defizit aufholt ist analog zu einem Gambler's Ruin-Problem. ...
p = Wahrscheinlichkeit, dass ein ehrlicher Knoten den nächsten Block findet q = Wahrscheinlichkeit, dass der Angreifer den nächsten Block findet qz = Wahrscheinlichkeit, dass der Angreifer jemals von z Blöcken dahinter aufholen wird
Unter der Annahme, dass p > q ist, sinkt die Wahrscheinlichkeit exponentiell, wenn die Anzahl der Blöcke zunimmt, die der Angreifer einholen muss. Mit den Chancen gegen ihn, wenn er nicht früh einen glücklichen Sprung nach vorne macht, werden seine Chancen verschwindend gering, wenn er weiter zurückfällt ... der potenzielle Fortschritt des Angreifers wird eine Poisson-Verteilung sein ... Um die Wahrscheinlichkeit des Angreifers zu erhalten jetzt noch aufholen könnte, multiplizieren wir die Poisson-Dichte für jeden Fortschritt, den er hätte machen können, mit der Wahrscheinlichkeit, dass er von diesem Punkt an aufholen könnte.
Konvertieren in C-Code..
include <math.h>
double AttackerSuccessProbability(double q, int z)
{
double p = 1.0 - q;
double lambda = z * (q / p);
double sum = 1.0;
int i, k;
for (k = 0; k <= z; k++)
{
double poisson = exp(-lambda);
for (i = 1; i <= k; i++)
poisson *= lambda / i;
sum -= poisson * (1 - pow(q / p, z - k));
}
return sum;
}
Wenn wir einige Ergebnisse ausführen, können wir sehen, dass die Wahrscheinlichkeit exponentiell mit z abfällt. "
Die Zahl von 6 Blöcken ist völlig willkürlich. Es basiert auf der Annahme, dass der Angreifer nicht mehr als 10 % der Netzwerk-Hashrate anhäufen wird und dass eine vernachlässigbare Wahrscheinlichkeit von 0,1 % für eine erfolgreiche Doppelausgabe akzeptabel ist.
Eine detailliertere Analyse dazu finden Sie unter Analysis of Hashrate-Based Double-Spending
Bei mehr Bestätigungen ist die Wahrscheinlichkeit einer erfolgreichen Double-Spend-Verringerung höher. Während es möglich ist, eine doppelte Ausgabe mit weniger als 51 % der Hashing-Leistung durchzuführen, muss man mehr Glück haben als der Rest der Miner, dh. Blöcke schneller lösen als andere. Dies wird ewig so weitergehen (um genau zu sein: es ist sehr unwahrscheinlich), sodass der Angreifer nicht in der Lage sein wird, die gesamte Kette zu forken. Da Pools bis vor kurzem 30-40 % der gesamten Hashing-Leistung kontrollierten, wäre die 6-Bestätigungs-Regel nicht sicher gewesen, wenn der Pool-Betreiber sich entschieden hätte, eine bösartige Handlung zu begehen.
David Perry
Osmose
David Perry
Meni Rosenfeld
Greif
Meni Rosenfeld
Benutzer5107