Bitcoin Forum
December 14, 2024, 11:33:13 AM *
News: Latest Bitcoin Core release: 28.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Anfängerfragen - insbesondere "unspent transaction"  (Read 156 times)
D0m1n1k (OP)
Newbie
*
Offline Offline

Activity: 3
Merit: 0


View Profile
March 01, 2018, 10:31:16 AM
 #1

Hallo,

ich habe seit 2015 ein bißchen Bitcoin "Spielgeld". Ich habe auf ein Android-Smartphone das Schildbach Wallet aus dem f-droid repository genutzt. Mühsam habe ich vor kurzem (Januar) den/die private keys extrahiert nach dieser Anleitung https://github.com/bitcoin-wallet/bitcoin-wallet/blob/master/wallet/README.recover.md.

Ich blicke da noch nicht durch: Als Ergebnis bekomne ich:

Wallet containing 0.10359362 BTC (spendable: 0.10359362 BTC) in:
  0 pending transactions
  1 unspent transactions
  4 spent transactions
  0 dead transactions

Was hat eine "unspent transaction" zu bedeuten? Es handelt dabei meine letzte Zahlung (05/2017). Ich hatte dort die Netzwerkgebühr herabgesetzt (auf "kostengünstig") und die Transaktion hatte wohl auch ziemlich lange gedauert. Im Wallet wird sie aber wohl als gebucht angezeigt.



Aber erst mal zum grundsätzlichen Verständnis: Was haben die ganzen keys zu bedeuten:
addr: ist vermutlich die bitcoin adresse. Ist das auch der public key? nach jeder transaktion legt das schildbach wallet ja eine neue an, um die Privatsphäre zu schützen. Es würde aber auch immer auf die selbe gehen wie beim Paper Wallet? Nach der Hex-Adresse folgt "hash160" mit zusätzen wie (M/0H/0/0), (M/0H/0/1), (M/0H/0/2), ..
Die Bedeutung verstehe ich momentan überhaupt nicht.
Dann folgt "DeterministicKey{}, wo der pub key in hex steht. Also sind Bitcoin-Adresse und der Pub-Key doch verschiedene Dinge? Was ist der Unterschied zwischen "priv HEX" und "priv WIF"? Ein Private key einer alten Transaktion brauche ich im Prinzip doch nicht mehr schützen/behalten? Entscheidend sollte doch nur der letzte sein?

Womit ich zu meiner nächsten elementaren Verständnisfrage komme:
Es werden bei "estimatefee.com" normalerweise ja 2 Eingängen und 2 Ausgängen für eine Transaktion angenommen. Mehr Eingänge hat man wohl dann, wenn man sein Guthaben zuvor immer "stückchenweise" bekommen hat (beispiel mit Ernie und Bert hier habe ich gelesen) und es in der Blockchain verteilt liegt? Aber wieso hat man dann normalerweise nicht nur 1Eingang, wenn alles zusammenliegt? Unter 2 Ausgänge verstehe ich meine neue Bitcoin-Adresse + Bitcoin-Adresse des Begünstigten.


Also ich habe schon viele Einführungen gelesen und versuche den Schritt vom Paper Wallet, wo es ja nur einen gleichbleibenden private key und eine gleichbleibende bitcoin adresse (=public key??) gibt, auf ein Software Wallet nachvollziehen zu können.




D0m1n1k (OP)
Newbie
*
Offline Offline

Activity: 3
Merit: 0


View Profile
March 02, 2018, 09:10:48 AM
 #2

Puh, da mir keiner antwortet, tue ich es mal selbst:

unspent transaction:
Mindestens eine "unspent transaction" sollte man wohl immer haben, soweit man noch über Guthaben verfügt. Das ist gerade das nicht ausgegebene Guthaben. Bei vielen unterschiedlichen Zahlungseingängen hat man dann wohl mehrere "unspent transactions". Dann kommt wohl die Sache mit den höheren Netzwerkgebühren, weil man für eine größere Zahlung, mehrere "Eingänge" benutzt. Dennoch verstehe ich nicht, warum estimatefee.com standardmäßig 2 Eingänge/Inputs annimmt und nicht nur einen.


bitcoin address + public key:
Vorab: Es handelt sich doch nicht um das gleiche: Ich zitiere mal aus Wikipedia:
Quote
Die Bitcoin-Adresse ist eine Kurzform (Fingerprint) des öffentlichen Schlüssels und mit Base58 kodiert. Um die Adresse zu berechnen, werden zwei kryptologische Hashfunktionen nacheinander auf den öffentlichen Schlüssel angewandt (hier: RIPEMD-160(SHA-256(pubkey))). Neben dem sich daraus ergebenden 160 Bit langen Hashwert (public key hash) ist in der Adresse ein weiterer 32 Bit langer Hashwert enthalten, durch den, wie bei einer Prüfsumme, Übertragungs- oder Tippfehler erkannt werden sollen. Bitcoin verwendet das Elliptische-Kurven-Kryptosystem ECDSA in der standardisierten 256-Bit-Konfiguration secp256k1.[110] Um eine Bitcoin-Adresse zu erhalten, muss der Bitcoin-Client des Teilnehmers zunächst ein Schlüsselpaar erzeugen. Das Schlüsselpaar besteht aus einem öffentlichen und einem privaten Schlüssel. Der private Schlüssel ist eine generierte Zufallszahl und wird im Wallet gespeichert. Er dient dem Signieren von Transaktionen, d. h. ausgehenden Zahlungen (analog zur Unterschrift auf einem Überweisungsträger), und sollte geheim gehalten werden. Gleichzeitig bedeutet der Verlust des privaten Schlüssels auch den Verlust der dazugehörigen Bitcoins. Der öffentliche Schlüssel braucht nicht mit gespeichert zu werden, da er aus dem privaten Schlüssel berechnet[111] werden kann.

Damit ist mir klar, was hash160 ist, nur die Zusätze wie "(M/0H/0/0), (M/0H/0/1), (M/0H/0/2), .." sind mir noch ein Rätsel. Noch eine triviale Frage: Das bedeutet das ein Private Key auch nur genau eine einzige Bitcoin-Adresse haben kann? Oder ist da noch irgendeine Variable drin, um verschiedene zum gleichen Private Key erzeugen zu können?


Bitcoin-Wallet:
Das Bitcoin Wallet erzeugt nach jeder (ausgehenden) Zahlung einen neuen Private Key mit zugehöriger neuer Bitcoin-Adresse, auf den das "Wechselgeld" landet. Der neue Private Key wird dabei je nach Wallet entweder zufällig oder nach einem bestimmten Algorithmus aus einem Master-Key ("Seed" genannt) erzeugt. Als Begründung lese ich immer, um die Privatsphäre zu schützen. Spräche aber denn etwas dagegen, wenn man als Ziel für das Restguthaben wieder die gleiche Bitcoin-Adresse und somit den gleichen Private Key weiternutzt, außer das jemand mit meiner Bitcoin-Adresse dann halt alle meine Transaktionen "sehen" kann?

Oder analoge Frage: Bei einem Paperwallet wird immer gesagt, dass man auf die Bitcoin-Adresse solange man möchte drauf einzahlen soll. Möchte man das Geld aber runterholen, so sollte man es immer KOMPLETT auflösen und danach nichts mehr drauf einzahlen, sondern ein neues Paper Wallet erstellen.

Das alles möchte ich eigentlich nicht, weil es zu viel zu viel Datenmüll und Unübersichlichkeit führt: Ich möchte vielmehr selbst bestimmen, ob ich meine aktuelle Bitcoin-Adresse nach eine Zahlung weiternutzen oder eine neue haben möchte. Gibt es ein Wallet, dass das kann?





inkling
Jr. Member
*
Offline Offline

Activity: 47
Merit: 13


View Profile
March 02, 2018, 01:02:00 PM
 #3

Damit ist mir klar, was hash160 ist, nur die Zusätze wie "(M/0H/0/0), (M/0H/0/1), (M/0H/0/2), .." sind mir noch ein Rätsel. Noch eine triviale Frage: Das bedeutet das ein Private Key auch nur genau eine einzige Bitcoin-Adresse haben kann? Oder ist da noch irgendeine Variable drin, um verschiedene zum gleichen Private Key erzeugen zu können?

Eine klassische Wallet erzeugt zufällige Adressen und verwaltet jeweils einen privaten Key zu jeder verwendeten Adresse. Eine moderne HD Wallet leitet aus einem Anfangstext (oder auch Seed, in der Regel die 24 mnemonic words) immer die selben Adressen+PrivateKeys ab. Die Zusätze beziehen sich darauf wie, für welchen Coin, für welchen Zweck... diese HD Adressen generiert werden => https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki

Eine Wallet verwaltet mehrere Private Keys => Ein Private Key kann genau eine einzige Adresse haben.

Quote
Das Bitcoin Wallet erzeugt nach jeder (ausgehenden) Zahlung einen neuen Private Key mit zugehöriger neuer Bitcoin-Adresse, auf den das "Wechselgeld" landet. Der neue Private Key wird dabei je nach Wallet entweder zufällig oder nach einem bestimmten Algorithmus aus einem Master-Key ("Seed" genannt) erzeugt. Als Begründung lese ich immer, um die Privatsphäre zu schützen. Spräche aber denn etwas dagegen, wenn man als Ziel für das Restguthaben wieder die gleiche Bitcoin-Adresse und somit den gleichen Private Key weiternutzt, außer das jemand mit meiner Bitcoin-Adresse dann halt alle meine Transaktionen "sehen" kann?

Spricht nichts gegen, kannst du so machen.

Quote
Oder analoge Frage: Bei einem Paperwallet wird immer gesagt, dass man auf die Bitcoin-Adresse solange man möchte drauf einzahlen soll. Möchte man das Geld aber runterholen, so sollte man es immer KOMPLETT auflösen und danach nichts mehr drauf einzahlen, sondern ein neues Paper Wallet erstellen.

Sagt wer? Nee, musst du nicht. Wenn ich mich nicht irre kannst du sogar das Wechselgeld wieder direkt an die Sende-Adresse schicken.
Das gilt vielleicht für irgendwelche Altcoins oder es gibt da vielleicht theoretische Angriffsvektoren die in der Praxis aber irrelevant sind. Hier ein Beispiel für 'ne Adresse wo ständig was rein und rausgeht: https://blockchain.info/address/3D2oetdNuZUqQHPJmcMDDHYoqkyNVsFk9r

Quote
Das alles möchte ich eigentlich nicht, weil es zu viel zu viel Datenmüll und Unübersichlichkeit führt: Ich möchte vielmehr selbst bestimmen, ob ich meine aktuelle Bitcoin-Adresse nach eine Zahlung weiternutzen oder eine neue haben möchte. Gibt es ein Wallet, dass das kann?

Das mit der Unübersichtlichkeit übernimmt ja gerade die Wallet für dich, und mit den HD-Wallets reduziert sich der "Datenmüll" ja nur noch auf deinen Anfangsseed aus dem sich alle Adressen die du jemals genutzt haben wirst einfach wieder rekonstruieren lassen.

Ich kenne zwar keine Wallet bei der man das Verhalten einstellen kann, aber du kannst Transaktionen auch "zu Fuß" generieren und signieren. Entweder mit Bitcoin Core + Kommandozeilenbefehlen oder meine alten Paperwallets mach' ich z.B. immer mit

- https://coinb.in/
- New => Transaction
- Öffentliche Adresse eingeben, dann siehst du welche unspent Inputs da noch drauf sind.
- Empfängeradressen bei Outputs eingeben
- Submit und du bekommst eine ellenlange, noch unsignierte Raw Transaction

(Die nächsten Schritte kann man bei Bedarf dann sicher auf einem Offline Rechner machen)
- (Offline Kopie von) coinb.in
- Sign
- Raw Transaction + Private Key eingeben
- Submit und du bekommst eine noch längere, signierte Transaktion

(Wieder online)
- coinb.in
- Broadcast
- Signed Transaction eingeben
- Submit und deine Transaktion landet im Netzwerk
D0m1n1k (OP)
Newbie
*
Offline Offline

Activity: 3
Merit: 0


View Profile
March 02, 2018, 08:44:54 PM
 #4

Vielen Dank für Deine Antwort inkling! Jetzt ist mir einiges klarer geworden und ich habe wieder einiges dazugelernt. Vor allem der Tipp und Deine Anleitung, um Transaktion mit coinb.in zu Fuß durchzuführen, sind Gold wert! Habe mir direkt mal die coinbin-master.zip runtergeladen und ausprobiert.

Kann noch jemand folgendes verifizieren:
Quote
Wenn ich mich nicht irre kannst du sogar das Wechselgeld wieder direkt an die Sende-Adresse schicken.


MishaMuc
Hero Member
*****
Offline Offline

Activity: 1442
Merit: 590


View Profile
March 02, 2018, 08:56:25 PM
 #5

Vielen Dank für Deine Antwort inkling! Jetzt ist mir einiges klarer geworden und ich habe wieder einiges dazugelernt. Vor allem der Tipp und Deine Anleitung, um Transaktion mit coinb.in zu Fuß durchzuführen, sind Gold wert! Habe mir direkt mal die coinbin-master.zip runtergeladen und ausprobiert.

Kann noch jemand folgendes verifizieren:
Quote
Wenn ich mich nicht irre kannst du sogar das Wechselgeld wieder direkt an die Sende-Adresse schicken.




Wenn er dir geholfen hat, merite ihn. Smiley
twbt
Legendary
*
Offline Offline

Activity: 994
Merit: 1098


An AA rated Bandoneonista


View Profile
March 02, 2018, 09:38:29 PM
 #6

Kann noch jemand folgendes verifizieren:
Quote
Wenn ich mich nicht irre kannst du sogar das Wechselgeld wieder direkt an die Sende-Adresse schicken.

Klar geht das. Bei selbstgebauten Transaktionen aber immer gut auf die TX-Gebühren achten. Wenn Du zu wenig übriglässt, steckt Deine TX ansonsten fest.

Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!