Author

Topic: offline Generierung von Bitcoin Wallet Adressen und Überschneidung (Read 267 times)

legendary
Activity: 3500
Merit: 2792
Enjoy 500% bonus + 70 FS
Ich danke für eure Rückmeldung und Meinungen hierzu. Nunja, theoretisch ist das ja alles schön und gut, die Praxis sieht leider manchmal anders aus. Das schwache Glied in der Kette ist hier -wie so üblich- der Mensch. Er macht Fehler, damit meine ich, dass Implementierungen falsch oder nicht zu 100% bedacht durchgeführt wurden. Entweder auf der Seite der Entwickler, wenn diese eine Software programmieren oder eben auf der Seite des Nutzers wenn dieser unbedacht vorgeht und es mit der Sicherheit nicht so ernst nimmt.

Nur als kleines Beispiel. Ich generiere aus dem simplen Wort "secret" ohne Anführungszeichen einen sha256 Hash, der als private key herhalten soll. Ich habe also den private key und kann daraus den pubkey und dazu die Wallet-Adresse generieren. In dem Fall war es die Wallet-Adresse 18vqhhW4oPu3Y8hvzTqsHB8LDVrZHupXNC. Siehe da, da waren mal 0,01 BTC drin. Wären die noch drin, hätte ich mir die problemlos sofort auf meine eigene Wallet transferieren können oder sonstwo schicken können. Weil ich den private key dazu habe und die Transaktion signieren könnte.

Das Wort "secret" war jetzt wirklich einfaches Ausprobieren, keine Raketenwissenschaft. Ich habe auch diverse andere Wörter oder Kombinationen probiert, ich habe einen weiteren gültigen Treffer gelandet, sprich eine Wallet-Adresse gefunden, die mal Guthaben drauf hatte. Lustigerweise gibt auch "free bitcoins" einen Treffer! Man mag es sich nicht vorstellen, aber es ist Realität. Das Problem an diesem Beispiel ist jetzt nicht der sha256 Algo sondern derjenige unvorsichtige Nutzer, der sich solch einen private key erstellt hat. Keine Ahnung was derjenige sich gedacht hat, aber es ist nachweisbar keine best-practice  Grin

Was die Überschneidung von Wallet-Adressen betrifft bin ich zwischenzeitlich auf sehr interessantes Material gestoßen, schwere Kost, das wird mich einige Wochen Lesezeit kosten aber ich freue mich darauf. Es gibt auch diverse Tools (Beispiel BTCcollider) oder das Projekt LBC (LargeBitcoinCollider).

Zum Glück habe ich (noch) keine dreistelligen BTC Beträge auf meiner Wallet, aber wenn das mal passieren sollte so möchte ich dafür möglichst gut vorbereitet und gewappnet sein. Deshalb finde ich diese Themen sehr interessant und erachtenswert.

Cheers!
citb0in
Hoher Betrag an BTC oder der Gegenwert an Fiat ist immer relativ. Für den einen sind es 0,1 BTC für den anderen 50 BTC...
Wenn du dich absichern möchtest, gegen den von dir genannten Szenario, dann hilft dir nur eins --> Mehrere Wallets erstellen und eine Obergrenze definieren. Hast du deine Obergrenze Erreicht, gilt es ein neues Wallet zu erstellen. Damit verlierst du im unwahrscheinlichen Fall einer COLLISION nur einen Teil deiner Cryptos und nicht alles.
hero member
Activity: 630
Merit: 731
Bitcoin g33k
Bei einer Brute Force Attacke versucht man doch durch möglichst viele Versuche eine Kollision künstlich herbeizuführen Tongue Wenn ich also nichtmal mit einem Programm, was mir Millionen an Adressen pro Sekunde durchprobiert eine Kollision erreichen kann, kann ich es erst recht nicht mit den paar Adressen die Standardmäßig erzeugt werden.

Das ist genau der Punkt... je mehr Zeichen es werden um so länger dauert es, selbst mit extrem leistungsstarker Hardware. Eine komplette Adresse nach vorgegebenen Muster berechnen zu wollen ist mit heutigen Mitteln unmöglich. Probier es doch einfach mal selbst aus und versuche eine Adresse mit ein paar mehr Zeichen zu generieren. Das Tool zeigt dir ja die vorraussichtliche Zeit an (und selbst diese ist meist sehr optimistisch angegeben).

Brute-Force hat hier keine Bedeutung, darum geht es doch gar nicht. Ich will nich eine Kollission herbeiführen oder bestätigen. Brute-Force beschreibt lediglich die Methodik, wenn aus einer Menge alle möglichen Kombinationen ausprobiert werden bis der gewünschte Treffer erfolgt. Aber nochmals, Brute-Force hat bei diesem Thema keine Bedeutung. Bitte lest noch mal meine Ursprungsfrage durch, ich glaube das wurde nicht richtig interpretiert oder vielleicht habe ich das auch einfach nur missverständlich geschrieben so dass es nicht deutlich wurde, sorry.

Die Frage, die mich beschäftigte war:

Wenn eine Software oder Applikation ohne Anbindung ans Internet beliebig viele Adressen generieren kann und eine andere Applikation am anderen Ende der Welt dasselbe machen kann, ohne dass die zwei Applikationen voneinander wissen und kommunizieren/abgleichen können, durch welchen Mechanismus kann dann sichergestellt werden dass es zu keiner Überschneidung kommt?

Diese Frage kann ich mir nun selbst beantworten, nachdem ich sehr intensiv darüber gelesen habe. Die Antwort lautet ganz schlichtweg --> es gibt keinen Mechanismus, der das mit Sicherheit und Nachweisbarkeit verhindern kann. Es wird salopp gesagt darauf vertraut, dass der Adressraum so gewaltig groß ist und die Wahrscheinlichkeit einer Überlappung verschwindend gering wird. Was natürlich in der Praxis nicht ausschließt, dass es passieren kann.
legendary
Activity: 1078
Merit: 1307
~ So bekommt man zumindest die ersten Buchstaben einer Adresse in Vertretbarer Zeit raus ~

Das ist genau der Punkt... je mehr Zeichen es werden um so länger dauert es, selbst mit extrem leistungsstarker Hardware. Eine komplette Adresse nach vorgegebenen Muster berechnen zu wollen ist mit heutigen Mitteln unmöglich. Probier es doch einfach mal selbst aus und versuche eine Adresse mit ein paar mehr Zeichen zu generieren. Das Tool zeigt dir ja die vorraussichtliche Zeit an (und selbst diese ist meist sehr optimistisch angegeben).
hero member
Activity: 1022
Merit: 642
Magic
Bei einer Brute Force Attacke versucht man doch durch möglichst viele Versuche eine Kollision künstlich herbeizuführen Tongue Wenn ich also nichtmal mit einem Programm, was mir Millionen an Adressen pro Sekunde durchprobiert eine Kollision erreichen kann, kann ich es erst recht nicht mit den paar Adressen die Standardmäßig erzeugt werden.
hero member
Activity: 630
Merit: 731
Bitcoin g33k
es geht doch gar nicht um Brute-Force Attacken sondern um Kollissionen  Tongue
hero member
Activity: 1022
Merit: 642
Magic
Es gibt ja tools um spezifische Adressen zu berechnen, wie zum Beispiel VanityGen. So bekommt man zumindest die ersten Buchstaben einer Adresse in Vertretbarer Zeit raus und kann zB ein lustiges Wort verwenden (meine Forum Adresse ist eine Vanity Adresse: 1PEACEKpHSeXYwwHL6478HbNTuueoR3znB). Da die Bitcoin Adressen allerdings lang genug sind, wird man niemals die ganze Adresse Brute Forcen können.
legendary
Activity: 2296
Merit: 2721
Grundsätzlich ein sehr interessanter Mining-Ansatz den du da gefunden hast, gäbe sicher genügend Leute mit genügend krimineller Energie, die sowas ausnutzen würden ...

Keine Ahnung was derjenige sich gedacht hat, aber es ist nachweisbar keine best-practice  Grin
Du hast hier auch gleich den Pudels Kern getroffen ... Das ist genauso wie bei Passwörtern ... klar kann ich mich überall mit "asdf1234" als Passwort einloggen, wär ja auch so schön zu merken. Dass damit aber meine Accounts quasi jedem offen stehen ist ein anderes Thema und ich brauch mich nicht wundern, wenn die Accounts relativ schnell gehacked sind. Es scheitert also - wie du schon richtig sagst - an der Bequemlichkeit der Menschen.
hero member
Activity: 630
Merit: 731
Bitcoin g33k
Ich danke für eure Rückmeldung und Meinungen hierzu. Nunja, theoretisch ist das ja alles schön und gut, die Praxis sieht leider manchmal anders aus. Das schwache Glied in der Kette ist hier -wie so üblich- der Mensch. Er macht Fehler, damit meine ich, dass Implementierungen falsch oder nicht zu 100% bedacht durchgeführt wurden. Entweder auf der Seite der Entwickler, wenn diese eine Software programmieren oder eben auf der Seite des Nutzers wenn dieser unbedacht vorgeht und es mit der Sicherheit nicht so ernst nimmt.

Nur als kleines Beispiel. Ich generiere aus dem simplen Wort "secret" ohne Anführungszeichen einen sha256 Hash, der als private key herhalten soll. Ich habe also den private key und kann daraus den pubkey und dazu die Wallet-Adresse generieren. In dem Fall war es die Wallet-Adresse 18vqhhW4oPu3Y8hvzTqsHB8LDVrZHupXNC. Siehe da, da waren mal 0,01 BTC drin. Wären die noch drin, hätte ich mir die problemlos sofort auf meine eigene Wallet transferieren können oder sonstwo schicken können. Weil ich den private key dazu habe und die Transaktion signieren könnte.

Das Wort "secret" war jetzt wirklich einfaches Ausprobieren, keine Raketenwissenschaft. Ich habe auch diverse andere Wörter oder Kombinationen probiert, ich habe einen weiteren gültigen Treffer gelandet, sprich eine Wallet-Adresse gefunden, die mal Guthaben drauf hatte. Lustigerweise gibt auch "free bitcoins" einen Treffer! Man mag es sich nicht vorstellen, aber es ist Realität. Das Problem an diesem Beispiel ist jetzt nicht der sha256 Algo sondern derjenige unvorsichtige Nutzer, der sich solch einen private key erstellt hat. Keine Ahnung was derjenige sich gedacht hat, aber es ist nachweisbar keine best-practice  Grin

Was die Überschneidung von Wallet-Adressen betrifft bin ich zwischenzeitlich auf sehr interessantes Material gestoßen, schwere Kost, das wird mich einige Wochen Lesezeit kosten aber ich freue mich darauf. Es gibt auch diverse Tools (Beispiel BTCcollider) oder das Projekt LBC (LargeBitcoinCollider).

Zum Glück habe ich (noch) keine dreistelligen BTC Beträge auf meiner Wallet, aber wenn das mal passieren sollte so möchte ich dafür möglichst gut vorbereitet und gewappnet sein. Deshalb finde ich diese Themen sehr interessant und erachtenswert.

Cheers!
citb0in
staff
Activity: 2548
Merit: 2709
Join the world-leading crypto sportsbook NOW!
Sicherlich fehlen mir Hintergrundinformationen, weswegen ich um die Auflösung bitte  Roll Eyes Tongue wie genau wird das gehandhabt, wer kann mir das bitte erklären oder auf jeweilige tech sheets verweisen?

Dazu noch der Hinweis auf folgenden Thread von qwk: Liste volkstümlicher Bitcoin Irrtümer - FAQ

Punkt 9 beanwortet dir deine Frage:
9. Adress-Kollision / jemand kann zufällig die selbe Adresse erzeugen wie ich
Nein. Unter normalen Umständen (also in einem Universum, in dem Computer aus Materie bestehen und Energie verbrauchen), ist das nicht* möglich, sofern Software und Computer nicht kaputt, gehackt, oder sonst in irgendeiner Weise manipuliert sind.

Eine Bitcoin-Adresse, oder genauer gesagt, deren Private Key ist genau genommen nichts anderes als eine zufällige Zahl.
Errät ein anderer deine Zufallszahl, kann er dir alle deine Bitcoins klauen.
Das klingt auf den ersten Blick nicht besonders sicher.

Bei genauerer Betrachtung ist diese Zahl aber so aberwitzig groß, dass die Wahrscheinlichkeit, dass ein anderer die selbe Zahl "wählt", praktisch exakt Null ist.

Die Gefahr geht vielmehr von schlechter Software aus.
Damit die Zahl auch wirklich "sicher" ist, muss sie auch wirklich vollständig zufällig sein.

Ein fehlerhafter Zufahlszahlengenerator (RNG - Random Number Generator) erzeugt evtl. auf vielen Computern stets die selbe Zahl.

https://xkcd.com/221/

In der Vergangenheit gab es schon Probleme, als z.B. eine Bitcoin-Wallet auf Android einen fehlerhaften RNG nutzte.
https://arstechnica.com/information-technology/2013/08/google-confirms-critical-android-crypto-flaw-used-in-5700-bitcoin-heist/

Natürlich kann auch ein Angreifer absichtlich "falsche" oder "schlechte" Zufallszahlen auf dem Rechner von Anwendern erzeugen, damit er deren Bitcoin-Adressen (und damit deren Bitcoins) stehlen kann.

In diesem Sinne ist es dringend anzuraten, Bitcoin-Adressen ausschließlich auf Computern zu erzeugen, die sicher nicht kompromittiert sind.
Dies gilt selbst dann, wenn der Computer hinterher keinen Zugang zum Internet mehr hat.
Die fehlerhafte Zufallszahl kann ein Angreifer bereits vorher auf dem Computer eingeschleust haben.

* nicht möglich heißt hierbei, dass die Wahrscheinlichkeit so gering ist, dass mit an Sicherheit grenzender Wahrscheinlichkeit davon ausgegangen werden kann, dass es während der gesamten Lebensdauer unseres Universums bis zu seinem Kältetod nicht zu einer einzigen Kollision kommen wird.

Und auch sonst ist der Thead wirklich empfehlenswert Smiley
legendary
Activity: 2226
Merit: 6947
Currently not much available - see my websitelink
Hey Lafu, vielen Dank für die Links. Ich werde das bei Gelegenheit zu Gemüte ziehen. Ich mache mir keine Sorgen, dass ich einen Nachteil durch so eine Kollission erzielen könnte. Ich habe nämlich kein Guthaben, über dessen Verlust ich mir allzugroße Sorgen machen würde. Es geht mir ausschließlich ums technische Verständnis, bin wissensdurstig. Cool
Na zum Glück ist so eine Kollision nur theoretischer Natur, sonst könnte man sein wertvolles BTC nicht sicher lagern.  Wink
Wenn man etwas als "unwahrscheinlich" bezeichnet, impliziert das immer noch eine gewisse (realistische) Restwahrscheinlichkeit (z.B. es ist unwahrscheinlich, dass der FC Bayern heute verliert etc.) aber bei Addresskollisionen ist das einfach nur theoretischer Natur.
Im internationalen Forumsteil hat fillippone vor einiger Zeit mal einen interessanten Faden mit seinem ersten Gedankengang erstellt (der so ähnlich war wie deiner) und weiter unten hat er seinen Faden dann weiter ergänzt, wie extrem theoretisch es ist, eine Addresskollission zu erhalten.
Sind auch einige gute Antworten dabei.  Smiley
There are 2^256 private keys out there: how big is that number?
hero member
Activity: 630
Merit: 731
Bitcoin g33k
Hey Lafu, vielen Dank für die Links. Ich werde das bei Gelegenheit zu Gemüte ziehen. Ich mache mir keine Sorgen, dass ich einen Nachteil durch so eine Kollission erzielen könnte. Ich habe nämlich kein Guthaben, über dessen Verlust ich mir allzugroße Sorgen machen würde. Es geht mir ausschließlich ums technische Verständnis, bin wissensdurstig. Cool
legendary
Activity: 3136
Merit: 3213
Ich denke auch das dies sehr unwahrscheinlich ist das es passiert das genau die selben BTC Adressen generiert werden.
Hab dazu was gefunden und diese Frage wurde schon einmal hier gestellt.

Ist hier zu finden:
Kann eine Bitcoin Wallet Adresse theoretisch doppelt vergeben werden?

Desweiteren gibt es hier auch noch so was ähnliches das damit eventuell zu tun hat.
Large Bitcoin Collider (Collision Finder Pool) - Deutscher Thread

Auch ist darüber bereits in einem anderen Forum geschrieben worden.
Kann es passieren, dass zwei Personen zufällig die selbe Bitcoin-Adresse erzeugen?

Eventuell helfen dir die Links.
legendary
Activity: 3676
Merit: 1495
Wie zum Henker kann sichergestellt werden, dass die Software ABC und DEF aber auch Charlies' Applikation keine sich überlappende Wallet-Adresse gebildet hat.
Kurz gefasst: garnicht.

Quote
Was wenn Alices' Software ABC die Adresse "bc111aaabbb222ccc333ddd" generiert hat und auch Bobs' Software DEF durch Zufall dieselbe Adresse "bc111aaabbb222ccc333ddd" erstellt hat?
Dann haben sowohl Alice, alsauch Bob Zugriff und können die Coins, die auf dieser Adresse landen, ausgeben.

Quote
Insofern die zwei Softwareprogramme in keinster Weise P2P oder dezentral durch das Bitcoin Peer Network kommunizieren konnten,kann doch niemals sichergestellt sein, dass zwei Wallet-Adresse nicht zeitgleich existieren.
Naja, es sind ja nicht 2 Adressen, sondern nur eine, es haben nur 2 Leute Zugriff darauf.

Ist theoretisch sicherlich denkbar und selbst in der Praxis möglich, aber sehr, sehr, sehr, sehr, sehr,......, sehr, sehr unwahscheinlich.
Das Dir morgen, wenn Du aus der Haustür trittst, ein Meteorit den Schädel zerschmettert, ist da sehr viel wahrscheinlicher und darüber machst Du Dir ja auchnich wirklich Gedanken, oder?


Links, die aufzeigen, wie unwahrscheinlich das is, hab ich da grad keine parat, aber Suchworte wären: bitcoin address collision
hero member
Activity: 630
Merit: 731
Bitcoin g33k
Hallo Forum,

neulich las ich darüber, dass Wallet-Adressen ohne Internetverbindung von der jeweiligen Software beliebig und in tausendfacher Anzahl problemlos innerhalb Sekunden erstellt werden können. Ich würde gerne verstehen, wie so etwas durchfühbar ist ohne Internetverbindung und somit ohne Sync mit dem BTC-Netzwerk. Wie kann garantiert werden, dass eine Wallet-Adresse eindeutig im Netzwerk existiert und auch eindeutig einer Seed zuzuordnen ist?

Ich denke dabei ganz simpel an folgendes Szenario:

- Alice in Australien erstellt in ihrer Walletsoftware ABC zwanzig verschiedene Adressen, die ihrer persönlichen Wallet zugeordnet sind.

- Bob in Braslieren erstellt in seiner Walletsoftware DEF zehn verschiedene Adressen, die seiner persönlichen Wallet zugeordnet sind.

- Charlie in Chile ist Diensteleister und bietet seinen Kunden und Auftraggebern Zahlungen via Bitcoin an. Dabei wird jedesmal eine neue Adresse generiert wenn der Kunde online auf der Website die jeweilige Bezahloption startet. Charlie hat aber auch bereits 5.000 Adressen im Voraus generiert, die er für ein spezielles Abwicklungsprojekt benötigte.

Meine Frage lautet:
Wie zum Henker kann sichergestellt werden, dass die Software ABC und DEF aber auch Charlies' Applikation keine sich überlappende Wallet-Adresse gebildet hat. Was wenn Alices' Software ABC die Adresse "bc111aaabbb222ccc333ddd" generiert hat und auch Bobs' Software DEF durch Zufall dieselbe Adresse "bc111aaabbb222ccc333ddd" erstellt hat? Insofern die zwei Softwareprogramme in keinster Weise P2P oder dezentral durch das Bitcoin Peer Network kommunizieren konnten,kann doch niemals sichergestellt sein, dass zwei Wallet-Adresse nicht zeitgleich existieren. Falls Sheireen aus Südafrika 5 BTC an "bc111aaabbb222ccc333ddd" geschickt hat, das wäre doch fatal.

Sicherlich fehlen mir Hintergrundinformationen, weswegen ich um die Auflösung bitte  Roll Eyes Tongue wie genau wird das gehandhabt, wer kann mir das bitte erklären oder auf jeweilige tech sheets verweisen?

Besten Dank und ein schönes Wochenend'
citb0in

Jump to: