Author

Topic: Verständnisfrage: Ewiger Transaktionslog und Wallet (Read 1281 times)

legendary
Activity: 910
Merit: 1001
Revolutionizing Brokerage of Personal Data
Es gehört also zu jedem Konto ein privater Schlüssel, mit dem man an sein Geld kommt (oder ein Dieb). Aber wie verhält sich das zum keypool? Du hast doch geschrieben, dass pro Transaktion Schlüssel gebraucht werden, die vor generiert werden. Die müsste man dann doch auch noch ausdrucken oder?

Das kommt darauf an was du erreichen willst. Wenn du ein Papierbackup deiner gesamten Wallet haben willst dann müsstest du natürlich jeden Schlüssel ausdrucken, was recht groß werden kann. Der Normalfall ist eher dass du eine Art Sparbuch-Adresse hast, also eine einzige (oder einige wenige) Bitcoin-Adresse(n) auf die du alles überweist was über deinen laufenden Bedarf an Bitcoins hinausgeht und auf dass du nicht so schnell wieder zugreifen musst. Den private key zu dieser Adresse kannst du dir dann ausdrucken und wirklich sicher (weil offline) aufbewahren. Das ist eher nur sinnvoll wenn du einen Teil deiner Bitcoins als Anlage für längere Zeit aufbewahren möchtest.

Für den laufenden Betrieb verwendest du deine normale wallet.dat die du wie besprochen auf anderen Datenträgern sichern kannst.

Eine andere Frage ist wie ich an die privaten Schlüssel komme. Die Wallet-Datei hat ja irgendein Binärformat. Gibt es da Tools mit denen man das Wallet auslesen kann? Ich habe dazu nur diesen Thread gefunden: https://bitcointalksearch.org/topic/wallet-importexport-bitkeys-format-4448

Dazu gibt es die RPC Kommandos dumpprivkey bzw. importprivkey .

Was du auch einfach machen kannst, ist einen neuen Schlüssel (offline) generieren, der nie in einer wallet.dat war und den dann ausdrucken. Von deiner normalen wallet überweist du dann alles was auf das Sparbuch soll auf die entsprechende Adresse. Das tool vanitygen kann dir zBsp ganz einfach private/public keypairs erzeugen.
legendary
Activity: 1792
Merit: 1059
Bezüglich der Menge: ein private key korrespondiert mit genau einer Bitcoin-Adresse, d.h. was auch immer du auf diese Adresse überweist kann dann mit diesem einen private key ausgegeben werden.

Es gehört also zu jedem Konto ein privater Schlüssel, mit dem man an sein Geld kommt (oder ein Dieb). Aber wie verhält sich das zum keypool? Du hast doch geschrieben, dass pro Transaktion Schlüssel gebraucht werden, die vor generiert werden. Die müsste man dann doch auch noch ausdrucken oder?

Eine andere Frage ist wie ich an die privaten Schlüssel komme. Die Wallet-Datei hat ja irgendein Binärformat. Gibt es da Tools mit denen man das Wallet auslesen kann? Ich habe dazu nur diesen Thread gefunden: https://bitcointalksearch.org/topic/wallet-importexport-bitkeys-format-4448

legendary
Activity: 910
Merit: 1001
Revolutionizing Brokerage of Personal Data
Ich würde aber trotzdem dazu raten dass du auf deinem Rechner nur soviele Bitcoins hältst die du gerade so brauchst und den Rest irgendwo offline als private keys auf Papier oder ähnliches aufbewahrst, die du bei Bedarf jederzeit importieren kannst. Ansonsten gelten natürlich auch die normalen Regeln für Netzwerk-daemons: nur soviele Systemrechte wie notwendig (als eigener User laufen lassen) und ggf. mit zusätzlichen Mitteln einschränken (SELinux, chroot, lxc,...).

Ich vermute Du meinst diese QR-Codes, die auch die Handyanwendungen benutzen, nur dann eben ausgedruckt, oder?  Kann ich in so einen QR-Code beliebig viele Coins packen? Wie kann man den QR-Code offline erzeugen? Das einzige, was ich jetzt dazu gefunden habe, ist das hier:

https://blockchain.info/wallet/paper-tutorial

Das macht das wohl über Javascript. Es müsste dazu doch aber ein Standalone Skript in Perl oder so geben.  

Gibt verschiedene Möglichkeiten - ich verwende zBsp den hier: http://fukuchi.org/works/qrencode/

Allerdings spricht auch nichts dagegen dass du die private keys einfach so als Base58 auf einen Zettel abschreibst oder ausdruckst. Dir muss nur klar sein dass diese nicht von Haus aus verschlüsselt sind, d.h. jeder der den Zettel sehen kann, hat theoretisch Zugriff auf dein Geld. QR-codes machen das Einlesen halt praktischer.

Bezüglich der Menge: ein private key korrespondiert mit genau einer Bitcoin-Adresse, d.h. was auch immer du auf diese Adresse überweist kann dann mit diesem einen private key ausgegeben werden.
legendary
Activity: 1792
Merit: 1059
Ich würde aber trotzdem dazu raten dass du auf deinem Rechner nur soviele Bitcoins hältst die du gerade so brauchst und den Rest irgendwo offline als private keys auf Papier oder ähnliches aufbewahrst, die du bei Bedarf jederzeit importieren kannst. Ansonsten gelten natürlich auch die normalen Regeln für Netzwerk-daemons: nur soviele Systemrechte wie notwendig (als eigener User laufen lassen) und ggf. mit zusätzlichen Mitteln einschränken (SELinux, chroot, lxc,...).

Ich vermute Du meinst diese QR-Codes, die auch die Handyanwendungen benutzen, nur dann eben ausgedruckt, oder?  Kann ich in so einen QR-Code beliebig viele Coins packen? Wie kann man den QR-Code offline erzeugen? Das einzige, was ich jetzt dazu gefunden habe, ist das hier:

https://blockchain.info/wallet/paper-tutorial

Das macht das wohl über Javascript. Es müsste dazu doch aber ein Standalone Skript in Perl oder so geben.  
legendary
Activity: 910
Merit: 1001
Revolutionizing Brokerage of Personal Data
Ja, wie auf den Handys. Damit habe ich mich aber noch nicht befasst. Habe auch Hemmungen auf meinem Android mit Geld zu hantieren. Die Dinger lassen sich nur schwer absichern. Die Dinger sind enorm praktisch aber leider unsicher.

Das ist leider wahr - aber für kleine Beträge kann man es im Normalfall riskieren.

Was ich mich nur Frage: Ist die Bitcoin-Software nicht selbst ein Einfallstor? Unter Debian ist leider nur der Bitcoin-Deamon in einer Uraltversion enthalten. Deshalb habe ich mir den Client von der Seite geladen. Normalerweise nutze ich nur Pakte aus den Repositories.

Klar ist jede Software die über das Internet kommuniziert prinzipell ein mögliches Einfallstor und aus diesem Grund ist es sehr ratsam immer die aktuellste Version zu verwenden. Man muss im Falle von Bitcoin aber dazusagen dass hier Sicherheit oberste Priorität hat und die schlimmste bisher bekannte Lücke im Client war eine DoS Schwachstelle mit der jemand verhindern konnte dass dein Client auf das Bitcoinnetz Zugriff hat - diese wurde jedoch schnell behoben bevor sie größere Probleme bereiten konnte.

Eine Lücke im Bitcoinclient die wirklich Zugriff auf deine wallet gewähren würde wäre natürlich für einen Angreifer extrem lukrativ, weshalb man auch davon ausgehen kann, dass die Tatsache dass eine solche Lücke bisher nicht gefunden wurde mit Sicherheit nicht darauf zurückzuführen ist dass noch nicht danach gesucht worden wäre Wink

Ich würde aber trotzdem dazu raten dass du auf deinem Rechner nur soviele Bitcoins hältst die du gerade so brauchst und den Rest irgendwo offline als private keys auf Papier oder ähnliches aufbewahrst, die du bei Bedarf jederzeit importieren kannst. Ansonsten gelten natürlich auch die normalen Regeln für Netzwerk-daemons: nur soviele Systemrechte wie notwendig (als eigener User laufen lassen) und ggf. mit zusätzlichen Mitteln einschränken (SELinux, chroot, lxc,...).
legendary
Activity: 1792
Merit: 1059
Vielen Dank für Deine Erklärungen! Jetzt habe ich es verstanden. Das ist ein gutes System, weil man sich keine Sorgen machen muss, dass einem just in dem Moment wo man seine Coins empfangen hat die Platte abraucht. So muss ich das nicht auf einem RAID laufen lassen.

Das Herunterladen des ewigen Logs dauert auch schon "ewig".   Tongue
Quote
Daher der Name Wink Im Übrigen gibt es schon ein paar gute Ansätze dass das alles in Zukunft kein Problem mehr darstellen wird - sowohl die Backup-Problematik als auch die Größe der Blockchain. Manchmal würde man sich wünschen dass die Entwicklung hier etwas schneller voran geht, aber schließlich geht es hier um Software die mit echtem Geld hantiert und nicht um irgendein Wordpress-Plugin.

Ja, wie auf den Handys. Damit habe ich mich aber noch nicht befasst. Habe auch Hemmungen auf meinem Android mit Geld zu hantieren. Die Dinger lassen sich nur schwer absichern. Die Dinger sind enorm praktisch aber leider unsicher.

Ich habe das .bitcoin-Verzeichnis jetzt auf eine externe verschlüsselte USB-Platte getan. Die Wallet-Datei werde ich regelmäßig sichern und den Client wohl auf einem schreibgeschützen USB-Stick mit ctBankix laufen lassen. Unter Bankix mounte ich mir dann die besagte externe Platte.

Was ich mich nur Frage: Ist die Bitcoin-Software nicht selbst ein Einfallstor? Unter Debian ist leider nur der Bitcoin-Deamon in einer Uraltversion enthalten. Deshalb habe ich mir den Client von der Seite geladen. Normalerweise nutze ich nur Pakte aus den Repositories.
legendary
Activity: 910
Merit: 1001
Revolutionizing Brokerage of Personal Data
Hallo!

Du hast ganz recht - wenn du dein Wallet einmal gesichert hast, dann hast du damit alle privaten Schlüssel gesichert die du bis dahin jemals verwendet hast und zusätzlich noch 100 bisher unbenützte Schlüssel. Das Geld liegt immer auf den Schlüsseln - die blockchain (das ewige log) brauchst dafür an sich nicht. Du kannst also bis zu 100 neue Adressen erzeugen und die sind trotzdem schon in deinem Backup enthalten. Solange du also Geld auf Adressen erhältst die du zuvor schonmal verwendet hast brauchst du kein neues Backup anlegen. Im Prinzip brauchst du auch für neue Adressen nicht gleich ein eigenes Backup machen, da diese aus dem pool der 100 vorher generierten Adressen genommen werden. Beachte allerdings, dass bei jeder ausgehenden Transaktion (Zahlung von dir) auch eine Adresse aus dem Pool verbraucht wird (als change Adresse für das Wechselgeld).

Ich würde dir empfehlen dass du in regelmäßigen Abständen Backups von deinem Wallet machst - zBsp einmal im Monat. Wenn du allerdings viele Transaktionen machst (mehr als 50 im Monat), dann kannst du entweder mit dem Kommandozeilenparameter -keypool=1000 die Anzahl der vorgenerierten Schlüssel in deiner wallet.dat erhöhen sodass du trotzdem nicht öfter als einmal im Monat ein Backup machen musst, oder aber du schaust dir einmal alternative clients wie zBsp Armory an, welche bereits jetzt deterministische wallets unterstützen. Diese brauchst du überhaupt nur einmal sichern, da alle weiteren Schlüssel aus einem einzigen Startschlüssel abgeleitet werden können.

Das Herunterladen des ewigen Logs dauert auch schon "ewig".   Tongue
Daher der Name Wink Im Übrigen gibt es schon ein paar gute Ansätze dass das alles in Zukunft kein Problem mehr darstellen wird - sowohl die Backup-Problematik als auch die Größe der Blockchain. Manchmal würde man sich wünschen dass die Entwicklung hier etwas schneller voran geht, aber schließlich geht es hier um Software die mit echtem Geld hantiert und nicht um irgendein Wordpress-Plugin.
legendary
Activity: 1792
Merit: 1059
Hallo,

ich habe mal eine Verständnisfrage:

Mein Konto speichert momentan 0 Bitcoins. Trotzdem habe ich mir schon mal eine Sicherung davon gemacht. Mal angenommen ich nehme jetzt Bitcoins ein, sagen wir mal 10 Bitcoins, dann ist das doch im ewigen Log so gespeichert, oder? Ich muss doch dann nicht mein Wallet immer wieder neu sichern. Es ist doch nur der für das Konto im Wallet hinterlegte private Schlüssel ausschlaggebend, um über die zum Konto gehörenden Bitcoins zu verfügen, oder? Ich meine, wenn mir mein Rechner abraucht, kann ich doch jederzeit auf mein Geld mit dem alten Wallet aus dem Backup wieder zugreifen, oder? Oder empfange ich tatsächlich Bitcoins in Form von weiteren unwiederbringlichen cryptographischen Schlüsseln, die dann im Wallet abgelegt sind? Dann müsste ich das Wallet ja regelmäßig sichern. Und was passiert dann, wenn der Rechner verstirbt bevor ich sichern konnte? Ist dann alles weg?

Sorry für die wahrscheinlich doofen Fragen. Aber ich bin halt neu.

Als Client nutze ich übrigens http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.6.3/
Das Herunterladen des ewigen Logs dauert auch schon "ewig".   Tongue
Jump to: