Bitcoin Forum
May 03, 2024, 12:11:31 PM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: transaction malleability was ist das genau?  (Read 1626 times)
Queenvio (OP)
Hero Member
*****
Offline Offline

Activity: 838
Merit: 533



View Profile
February 27, 2014, 06:32:11 PM
 #1

Hallo, MtGox hat/hatte ja problem mit dem "transaction malleability".
Kann mir bitte mal jemand erklären was da genau passiert ist.

Grüße
The Bitcoin network protocol was designed to be extremely flexible. It can be used to create timed transactions, escrow transactions, multi-signature transactions, etc. The current features of the client only hint at what will be possible in the future.
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
1714738291
Hero Member
*
Offline Offline

Posts: 1714738291

View Profile Personal Message (Offline)

Ignore
1714738291
Reply with quote  #2

1714738291
Report to moderator
1714738291
Hero Member
*
Offline Offline

Posts: 1714738291

View Profile Personal Message (Offline)

Ignore
1714738291
Reply with quote  #2

1714738291
Report to moderator
1714738291
Hero Member
*
Offline Offline

Posts: 1714738291

View Profile Personal Message (Offline)

Ignore
1714738291
Reply with quote  #2

1714738291
Report to moderator
Serpens66
Legendary
*
Offline Offline

Activity: 2926
Merit: 1131



View Profile
February 27, 2014, 06:42:22 PM
 #2

vlllt hilft ja:
http://www.coindesk.com/bitcoin-bug-guide-transaction-malleability/

Mit Cointracking (10% Rabatt) behältst du die Übersicht über all deine Trades und Gewinne. Sogar ein Tool für die Steuer ist dabei Wink                          
Great Freeware Game: Clonk Rage
binance.com hat nun auch SEPA und EUR Paare! Mit dem RefLink bekommst du 5% Rabatt auf die Tradinggebühren!
Queenvio (OP)
Hero Member
*****
Offline Offline

Activity: 838
Merit: 533



View Profile
February 27, 2014, 07:01:05 PM
 #3


Danke nur leider ist mein englisch nur "ok" und dann noch die "Fachwörter".
Ne kurzer Erklärung auf deutsch würde mich freuen.
mezzomix
Legendary
*
Offline Offline

Activity: 2618
Merit: 1252


View Profile
February 27, 2014, 07:12:45 PM
 #4

Eine Transaktion wird mit Hilfe des Private-Key signiert, wobei nur der kritische Teil der Transaktionsdaten von der Signatur abgedeckt wird. Daneben kann man eine Hashsumme über die gesammte Transaktion erstellen.

Da die Signatur nur einen Teil der Transaktionsdaten abdeckt, kann man die restlichen Daten ändern und damit eine gleichwertige Transaktion mit unterschiedlicher Hashsumme erstellen.

Wird nun diese zweite Transaktion in einen Block aufgenommen, ist die Transaktion abgeschlossen und verbucht. Die erste Transaktion wird als Double-Spend verworfen. Wenn nun nur die Hashsumme der ersten Transaktion als Indikator für die erfolgreiche Transaktion genutzt wird, wird das Transaktionergebnis nie sichtbar.
Queenvio (OP)
Hero Member
*****
Offline Offline

Activity: 838
Merit: 533



View Profile
February 27, 2014, 07:17:51 PM
 #5

Eine Transaktion wird mit Hilfe des Private-Key signiert, wobei nur der kritische Teil der Transaktionsdaten von der Signatur abgedeckt wird. Daneben kann man eine Hashsumme über die gesammte Transaktion erstellen.

Da die Signatur nur einen Teil der Transaktionsdaten abdeckt, kann man die restlichen Daten ändern und damit eine gleichwertige Transaktion mit unterschiedlicher Hashsumme erstellen.

Wird nun diese zweite Transaktion in einen Block aufgenommen, ist die Transaktion abgeschlossen und verbucht. Die erste Transaktion wird als Double-Spend verworfen. Wenn nun nur die Hashsumme der ersten Transaktion als Indikator für die erfolgreiche Transaktion genutzt wird, wird das Transaktionergebnis nie sichtbar.


danke
Hirnhamster
Newbie
*
Offline Offline

Activity: 35
Merit: 0


View Profile WWW
March 01, 2014, 05:14:53 PM
 #6

Ergänzend wäre noch zu erwähnen, dass die eigentliche Transaktion (also das wechseln der Bitcoin-Beträge von Sender zu Empfänger Adressen) durch die Transaction Malleability nicht betroffen sind - das fällt unter die von Queenvioals als kritische Teil der Transaktion bezeichnete Daten. Ergo: Die Bitcoins wechseln trotzdem ihren Besitzer!

Mt. Gox hat könnte (Achtung: Spekulation!) nun bei ihrer Implementierung des Bitcoin-Protocols nur auf die Transaktions-ID achten statt darauf, dass die Bitcoins tatsächlich den Besitzer gewechselt haben. Weiterhin könnte "automatisch" eine erneute Auszahlung veranlasst werden, wenn eine fehlgeschlagene Transaktion festgestellt wurde. Folgendes Szenario wäre dann denkbar:

Nutzer A hat 3 BTC auf seinem Konto/Wallet bei Mt.Gox.
Nutzer A will sich nun 1 BTC auf eine Adresse seines lokalen Wallets auszahlen lassen.
Das System von Mt. Gox erstellt eine Transaktion mit der ID "T" über 1 BTC.
Nutzer A fängt die Transaktion ab, ändert den Hash und erstellt eine neue Transaktion "T-neu".
"T-Neu" verbreitet sich schneller durch das Netzwerk und landet in einem Block, somit hat Nutzer A nun den 1 BTC in seinem lokalem Wallet während auf Mt. Gox nur "real" noch 2 BTC liegen.
Die originale Transaktion "T" wird als Double Spent Versuch erkannt, ignoriert und wird als fehlgeschlagen in der Blockchain markiert.
Mt. Gox' fehlerhafte Implementierung des Bitcoin-Protocols achtet jedoch nur darauf, dass "T" fehlgeschlagen ist (und nicht darauf, dass die Bitcoins tatsächlich überwiesen wurden) und zeigt deshalb weiterhin 3 BTC auf dem Konto von Nutzer A.

Nutzer A wiederholt diesen Prozess nun beliebig oft Smiley
paduser
Sr. Member
****
Offline Offline

Activity: 432
Merit: 250


View Profile
March 01, 2014, 10:55:50 PM
 #7

Ergänzend wäre noch zu erwähnen, dass die eigentliche Transaktion (also das wechseln der Bitcoin-Beträge von Sender zu Empfänger Adressen) durch die Transaction Malleability nicht betroffen sind - das fällt unter die von Queenvioals als kritische Teil der Transaktion bezeichnete Daten. Ergo: Die Bitcoins wechseln trotzdem ihren Besitzer!

Mt. Gox hat könnte (Achtung: Spekulation!) nun bei ihrer Implementierung des Bitcoin-Protocols nur auf die Transaktions-ID achten statt darauf, dass die Bitcoins tatsächlich den Besitzer gewechselt haben. Weiterhin könnte "automatisch" eine erneute Auszahlung veranlasst werden, wenn eine fehlgeschlagene Transaktion festgestellt wurde. Folgendes Szenario wäre dann denkbar:

Nutzer A hat 3 BTC auf seinem Konto/Wallet bei Mt.Gox.
Nutzer A will sich nun 1 BTC auf eine Adresse seines lokalen Wallets auszahlen lassen.
Das System von Mt. Gox erstellt eine Transaktion mit der ID "T" über 1 BTC.
Nutzer A fängt die Transaktion ab, ändert den Hash und erstellt eine neue Transaktion "T-neu".
"T-Neu" verbreitet sich schneller durch das Netzwerk und landet in einem Block, somit hat Nutzer A nun den 1 BTC in seinem lokalem Wallet während auf Mt. Gox nur "real" noch 2 BTC liegen.
Die originale Transaktion "T" wird als Double Spent Versuch erkannt, ignoriert und wird als fehlgeschlagen in der Blockchain markiert.
Mt. Gox' fehlerhafte Implementierung des Bitcoin-Protocols achtet jedoch nur darauf, dass "T" fehlgeschlagen ist (und nicht darauf, dass die Bitcoins tatsächlich überwiesen wurden) und zeigt deshalb weiterhin 3 BTC auf dem Konto von Nutzer A.

Nutzer A wiederholt diesen Prozess nun beliebig oft Smiley

Danke. Sehr gute Erklärung.
Coiner.de
Hero Member
*****
Offline Offline

Activity: 773
Merit: 531



View Profile
March 02, 2014, 09:59:02 AM
 #8

Ein weiteres Problem ist noch, daß der aktuelle bitcoin-qt unbestätiges Wechselgeld mit diesem Hash senden kann.

Z.B. wenn alle Coins in der Wallet für die erste Transaktion verwendet werden müssen, ist danach nur noch das Wechselgeld in der Wallet. Wird jetzt das Wechselgeld für eine weitere Transaktion benutzt solange die erste Transaktion noch nicht in einem Block eingetragen ist, so kann diese weitere Transaktion ungültig werden, weil ein anderer Hash in die Blockchain geschrieben wird.

Jeder der Zahlungen ohne Bestätigung akzeptiert sollte also prüfen, ob die Eingänge der Zahlungstransaktion schon bestätigt sind.
mezzomix
Legendary
*
Offline Offline

Activity: 2618
Merit: 1252


View Profile
March 03, 2014, 06:20:08 AM
 #9

Jeder der Zahlungen ohne Bestätigung akzeptiert sollte also prüfen, ob die Eingänge der Zahlungstransaktion schon bestätigt sind.

Das ist das Problem. Kann man bei kleinen Summen machen, wenn man weiss, was man tut. Beispiele sind der Kaugummiautomat oder eine Bar. Bei einem Online-Handel oder einer Börse ist sowas absolut unnötig.
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!