Wie generieren Ethereum-Clients wie Ethereum Wallet oder Eth-Lightwallet eindeutige Adressen, die zuvor noch nicht verwendet wurden, und wie hoch ist die Wahrscheinlichkeit, dass diese Adressen verwendet wurden?
Die Adresse wird von einem zufälligen privaten Schlüssel abgeleitet. Der Client überprüft nicht, ob es zuvor verwendet wurde, da die Wahrscheinlichkeit dafür nahezu null ist.
Ich denke, der wichtigste Satz in Ihrer Frage ist "Wie hoch ist die Wahrscheinlichkeit".
Die anderen Antworten sind richtig, um zu bestimmen, dass eine Wahrscheinlichkeit von 1 zu 2^160 besteht, eine Kollision mit einer Wahrscheinlichkeit von 100 % zu finden .
Aufgrund des Geburtstagsparadoxons geben Kryptografen einer Hash-Funktion mit einer Ausgabebitlänge von 160 eine bitweise Sicherheitsbewertung von 80. Dies liegt daran, dass es bei 2^80 Adressen eher wahrscheinlich ist (dh die Wahrscheinlichkeit liegt bei über 50 %) , dass Sie sie haben werden eine Adresskollision .
Zum visuellen Vergleich mit den obigen Antworten impliziert das Geburtstagsproblem, dass eine Kollision mit einer Wahrscheinlichkeit von 1 in 1.208.925.819.614.629.174.706.176 auftritt, huch.
Ethereum Wallet (das offizielle Wallet, das Mist verwendet) wird web3.personal.newAccount
zum Erstellen eines Kontos verwendet. Dies ist ein web3.js-Aufruf, der das Äquivalent von geth account new
.
Der Adressraum in Ethereum ist ein 20-Byte-Wert (160-Bit-Adressraum, genau wie Bitcoin).
Wie hoch ist die Wahrscheinlichkeit, dass diese Adressen verwendet wurden?
2^160 oder ungefähr 1 von 1.461.501.637.330.902.918.203.684.832.716.283.019.655.932.542.976
Ethereum verwendet Adressen, die 160 Bit lang sind. Die Wahrscheinlichkeit, dass eine Adresse mit jeder anderen gegebenen Adresse identisch ist, beträgt daher 1 zu 2^160. Aufgrund des Geburtstagsparadoxons steigt jedoch die Wahrscheinlichkeit, dass eine neue Ethereum-Adresse dieselbe wie eine bereits bestehende Ethereum-Adresse ist, mit jeder neuen Ethereum-Adresse exponentiell an und wird wie folgt berechnet:
Anzahl möglicher Paare: ( Anzahl eindeutiger Ethereum-Adressen + 1 / Anzahl eindeutiger Ethereum-Adressen) = ((4.807.984 + 1) * 4.807.984) / 2 = 11.558.357.476.120
Chance auf ein eindeutiges Paar: ((2^160)-1) / 2^160) = 0,99999999999999999999999999999999999999999999999315772234
Chance of 11,558,357,476,120 unique pairs = 0.999999999999999999999999999999999999999999999999315772234 ^ 11,558,357,476,120 = 0.999999999999999999999999999999999992091451
Wahrscheinlichkeit einer Übereinstimmung = 1 - 0,99999999999999999999999999999999992091451 = 7,908549 × 10^-36
Stand heute (26. Juli 2017) beträgt die Wahrscheinlichkeit, dass eine neue Ethereum-Adresse mit einer bereits bestehenden Ethereum-Adresse identisch ist, ~8 × 10^-36
eth