Kann es passieren, dass zwei Personen zufällig die selbe Bitcoin-Adresse erzeugen?

Ijoma Mangold sagt in dem Interview mit Roman, dass Bitcoin Adressen einfach zufällig aus einem enorm großen Zahlenraum generiert werden. So ist keine zentrale Instanz nötig, die eine Kontonummer vergibt.
Das hat in mir die Frage ausgelöst, ob es passieren kann, dass zwei Personen zufällig die selbe Adresse erzeugen? Lautet die Antwort, ja, aber es ist extrem unwahrscheinlich? Angenommen, es passiert trotztdem, dann würden sich zwei Personen ein Konto teilen, oder?
Grüße, Gerry

Mathematisch nicht unmöglich, aber praktisch dann doch nahezu unmöglich. Der Zahlenraum ist einfach unvorstellbar groß. Es gibt ~2^256 Private Keys, als Dezimalzahl ist das
115792089237316195423570985008687907853269984665640564039457584007913129639936, also ~1,15792*10^77

Wenn du Englisch verstehst, empfehle ich zur „Vorstellung“, wie groß 2^256 ist, das Youtube-Video vom Kanal 3Blue1Brown

Man schätzt, es gibt größenordnungsmäßig in etwa so viele Atome im ganzen Universum wie es Bitcoin Private Keys gibt. Nun stell dir vor zwei Menschen wählen zufällig dasselbe Atom, wenn sie die Auswahl und Möglichkeit hätten von allen im Universum sich eins auszusuchen.

Öffentliche Adressen ist dann nochmal eine andere Sache, davon gibt es 2^96 mal weniger als es Private Keys gibt, nämlich nur 2^160. Beides sollte man nicht miteinander verwechseln. Aber auch 2^160 ist immer noch unvorstellbar groß und nicht wirklich ein Problem für eine Kollision.

4 „Gefällt mir“

Wenn sich 2 Personen zufällig den gleichen Schlüssel generieren, zahlt der eine Bitcoins ein und der andere räumt das Konto leer und kommt vor Lachen nicht in den Schlaf. :laughing:

Es ist allerdings deutlich wahrscheinlicher mit einem Lottoschein (6er+Superzahl) in der Hand beim abholen des Geldes vom Blitz getroffen zu werden. 3mal!

4 „Gefällt mir“

Das mit dem Lottogewinn und dem Blitz aber an mindestens drei aufeinanderfolgenden Wochen. :grin:

1 „Gefällt mir“

Okay, ich bin überzeugt. 2^256 ist gigantisch und auch 2^160. Wenn ich mich jetzt nochmal dazu äußere, geht es mir nicht darum, dass ich mir Sorgen machen würde, dass zwei Personen dieselbe Adressen teilen, sondern um die Sache zu verstehen.
Das es „nur“ 2^160 Bitcoin Adressen, also deutlich weniger als private Keys, fand ich überraschend.
Jemand hat z.B. über seine Bitbox genau einen private Key, erzeugt aber immer wieder mal neue Adressen. Wenn Bitcoin ganz normal im Alltag etabliert sein wird, dann erzeugen 8 Milliarden private Key Besitzer in ihrem Leben Tausende Adressen. Bei der gigantischen Zahl (2^160) ist das vermutlich immer noch unkritisch. Die Wahrscheinlichkeit dass es einmal vorkommt, dass eine Adresse doppelt vergeben wird, wäre dann grob 1:2^145.

Nein, du hast einen Seed.

Zu jeder Adresse hast du (im Normalfall) einen private key.

1 „Gefällt mir“

100%ig sattelfest bin ich in der verwendeten Mathematik auch nicht bzw. vergesse Details, die ich mal wusste, aber längere Zeit nicht gebraucht habe. (Man wird nicht jünger…)

Wie genau alles funktioniert, kann man sich ganz prima auf https://learnmeabitcoin.com ansehen und ausprobieren. Z.B. What are Keys & Addresses in Bitcoin? und folgende Seiten
Später kann man dort gerne noch einen Deepdive in die technischen Details machen, z.B. ECDSA | How To Create Public Keys and Signatures in Bitcoin

Aus einem Private Key (256 Bits) wird mit Elliptic Curve Magic ein Public Key (512 Bits uncompressed, +8Bits „04h“ am Anfang, um einen unkomprimierten Public Key zu markieren). Hier dürfte ziemlich sicher gelten, daß alle 2^256 Private Keys auch einen eindeutigen eigenen Public Key ergeben (1:1 Relation, Kollisionen sehr unwahrscheinlich, kann ich aber nicht beweisen).

Die öffentliche Adresse, das was wir lapidar eine Bitcoin-Adresse nennen, ist ein zweimal gehashter Public Key, etwas salopp: PublicAddress=RIPEMD160(SHA256(PublicKey))
SHA256 macht aus dem längeren Public Key wieder „nur“ 256 Bits und davon macht die Hashfunktion RIPEMD160 wiederum 160 Bits als Ergebnis. Mathematisch müssen 2^96 SHA256(PublicKey) Hashes denselben RIPEMD160-Hash erzeugen (256-160=96 für die Exponenten).

Deine Wahrscheinlichkeit kann ich jetzt nicht so ganz nachvollziehen, aber ist nicht so wichtig. Es bleibt sehr sehr … sehr unwahrscheinlich, egal wieviele Milliarden Menschen Adressen generieren (sooo viele Adressen verbraucht man ja nicht, wenn man mal ehrlich ist).

Dann ist folgende Aussage von Cricktor falsch gewesen, oder?

@sutterseba meinte sicherlich „Zu jeder deiner Adressen hast du (im Normalfall) einen Private Key.“

Ich füge da noch hinzu, daß du keinen der anderen (2^96)-1 Private Keys jemals in deiner Lebenszeit (oder möglicherweise der des Universums) finden wirst, die dieselbe Public Address ergäben. Existieren sie müssen, finden sie du nicht wirst, junger Padawan.

1 „Gefällt mir“

Nein, die ist schon richtig!

Trotzdem hast du immer Schlüsselpaare. Deine Adresse ist z.B. bei P2PKH und P2WPKH einfach ein Hash des Public Keys.

Du hast halt wie oben schon erwähnt wurde mehrere theoretisch gültige Private Keys pro Adresse durch die unterschiedlich großen Schlüsselräume. (pigeonhole principle).

2 „Gefällt mir“