Author

Topic: Bitcoin Adressengenerierung (Read 1207 times)

hero member
Activity: 968
Merit: 515
November 17, 2013, 07:48:24 AM
#6
Danke für die hilefreichen Antworten.

Quote
Die Kollisionswahrscheinlichkeit ist ein Geburtstagsproblem, das nur von zwei Größen abhängt: Anzahl der möglichen Adressen (2^160) und Anzahl der verwendeten Adressen (blockchain.info hat eine Statistik über die Anzahl der verwendeten Adressen).
Bin nicht mehr ganz fit in der Stochastik. Würde die folgende Formel zur Berechung der Collusionswahrscheinlichkeit stimmen?
Lässt sich eigentlich als Urnenexperiment ohne zurücklegen ausdrücken. Rote Kugel sind die verwendeten Adressen und schwarze Kugeln die Anzahl der möglichen Adressen. Gesucht ist die Wahrscheinlichkeit, dass bei n Versuchen mind. eine rote Kugel gezogen wird.

n = Anzahl der neu generieten Adressen
A = Anzahl der ungenutzen Adressen
T = Mögliche Adressen

Wahrscheinlickeit mind. 1 Treffer = 1 - Wahrscheinlickeit keine Treffer
P = 1-(A/T)^n
legendary
Activity: 2618
Merit: 1007
November 16, 2013, 09:53:48 PM
#5
Soweit die Fakten. Da RIPEMD160 eine Hashfunktion ist, müssten die zwei folgenden Annahmen stimmen:
1. Mehrere Keys führen eventuell zur selben Adresse.
2. Es ist nicht gewehrleistet, dass man wirklich 2^160 verschiedene Adressen aus den 2^256 ECDSA Keys generieren kann.
Kann man hierzu eine Aussage treffen wie sich das auf die Wahrscheinlichkeit einer Collusion auswirkt?

Mir geht es hier eher um Verständnis, als um eine potentielle Bedrohung.
1. Stimmt, wobei das erschwert wird, da der Key mit 2 verschiedenen Hashfunktionen "bearbeitet" wird, man müsste also Keys finden deren Hash einen anderen Hash kollidieren lässt. Trotzdem gibt es abartig viele 256bit Strings, die den gleichen RIPEMD160 Hash haben, allerdings ist es eben schwer, die zu finden.
2. (es heißt gewährleistet übrigens, mit Gewehren hat das nix zu tun) Stimmt ebenfalls, es kann sein, dass es Lücken gibt, die nicht erreicht werden (können?). Kann man aber eben auch nur durch ausprobieren feststellen, da es für RIPEMD160 (und SHA256) keine mathematischen Abkürzungen dafür gibt bisher.

Generell wird angenommen, dass alle 2^160 Bits erreicht werden können, da anzunehmen ist, dass die Hashfunktion gut ist. Wenn man Werte findet, die nicht erreicht werden können, würde sich die Kollisionswahrscheinlichkeit natürlich erhöhen.
legendary
Activity: 1680
Merit: 1001
CEO Bitpanda.com
November 16, 2013, 08:57:02 PM
#4
Egal wie stark sich der Wert von Bitcoins auch entwickelt, das Minen nach Coins bzw irgenwann das minen nach den Transaktionsgebühren wird IMMER um eine VIELFACHES profitabler bleiben!
sr. member
Activity: 336
Merit: 250
November 16, 2013, 07:51:49 PM
#3
klabaki hat eigentlich bereits alles gesagt...trotzdem noch eine kleine Ergänzung dazu:

full member
Activity: 224
Merit: 100
Ƶ = µBTC
November 16, 2013, 07:41:35 PM
#2
Schöne Frage. Wink

1. Mehrere Keys führen eventuell zur selben Adresse.
2. Es ist nicht gewehrleistet, dass man wirklich 2^160 verschiedene Adressen aus den 2^256 ECDSA Keys generieren kann.

Die Hash-Funktion wirkt wie ein Zufallsgenerator, der jedem Schlüssel eine Adresse zuordnet.

Durchschnittlich treffen 2^96 Schlüssel auf eine Adresse (= 2^256 / 2^160).
Also manche Adressen haben mehr, manche haben weniger Schlüssel. Man könnte jetzt die Varianz dazu berechnen.
Trotz Varianz bewegt sich die Anzahl Schlüssel pro Adresse immer in der Größenordnung von 2^96.

Die Wahrscheinlichkeit, dass eine Adresse gar keine Schlüssel hat, ist verschwindend gering.
Das heißt im Umkehrschluss: Die Allermeisten (>99.9%) der 2^160 theoretisch möglichen Adressen können tatsächlich generiert werden.

Wenn man das als Zweierpotenz ausdrückt (2^160 * 99.9% = 2^159.9999999), dann ändert sich praktisch nichts, es bleibt also bei 2^160 Adressen, die auch praktisch erstellt werden können.

Kann man hierzu eine Aussage treffen wie sich das auf die Wahrscheinlichkeit einer Collusion auswirkt?

Mit der Kollisionswahrscheinlichkeit hat das eigentlich nichts zu tun.

Die Kollisionswahrscheinlichkeit ist ein Geburtstagsproblem, das nur von zwei Größen abhängt: Anzahl der möglichen Adressen (2^160) und Anzahl der verwendeten Adressen (blockchain.info hat eine Statistik über die Anzahl der verwendeten Adressen).

Eine ähnliche Sache ist es, wenn jemand versucht, einen Geburtstagsangriff zu machen, also selbst so viele Adressen zu erstellen, bis er zwei gleiche findet.

Die Faustformel dazu lautet: Anzahl Bits geteilt durch 2.
Also bei 2^160 möglichen Adressen muss der Angreifer 2^80 Adressen generieren, bis er zwei gleiche Adressen (mit unterschiedlichen Schlüsseln) findet.

2^80 klingt erstmal gefährlich niedrig, wenn man so hört, was die ASICs schon können.
Allerdings müsste der ASIC dazu nicht nur den RIPEMD- und den SHA256-Algorithmus, sondern auch die ECDSA-Kurven beherrschen.
Das wäre also ein sehr teurer Angriff.
hero member
Activity: 968
Merit: 515
November 16, 2013, 06:51:08 PM
#1
Auch wenn es hier schon des Öfteren behandelt wurde, habe ich noch ein paar Fragen zur Adressengenerierung/Collusion.

Durch RIPEMD160 gibt es 2^160 mögliche Adressen.
Durch ECDSA (256-bit) gibt es 2^256 mögliche public/private keys.

Soweit die Fakten. Da RIPEMD160 eine Hashfunktion ist, müssten die zwei folgenden Annahmen stimmen:
1. Mehrere Keys führen eventuell zur selben Adresse.
2. Es ist nicht gewehrleistet, dass man wirklich 2^160 verschiedene Adressen aus den 2^256 ECDSA Keys generieren kann.
Kann man hierzu eine Aussage treffen wie sich das auf die Wahrscheinlichkeit einer Collusion auswirkt?

Mir geht es hier eher um Verständnis, als um eine potentielle Bedrohung.
Jump to: