Pages:
Author

Topic: Wie schütze ich mich vor Verlust von Bitcoins durch einen Replay Angriff? - page 2. (Read 1246 times)

sr. member
Activity: 286
Merit: 251
Extension Blocks <3 Rootstock <3
Also was kann passieren, wenn du keine Replay Protection verwendest:
1) Ja das sollte klappen, solange du die BitcoinCash nicht anfasst
2) kann funktionieren, muss aber nicht
3) kann passieren und zwar auch noch Wochen oder Monate später, wenn der Fremde nicht mehr die Kontrolle über die Adresse hat - die BTCCash wären dann wohl verloren
4) indirekt ja - es kann sein, dass du 1 BitcoinCash nicht siehst, also er dir 0 anzeigt und du deiner Software manuell beibringen musst, wie sie den BtcCash findet, weil es in eine Change Adresse/Output gesendet wurde
5) kann passieren, wenn du jeweils 1 BTC und 1 BTCCash ohne Replay Protection versendest - dann hast du, wenn du Pech hast 0 BTC und 0 BTCCash
6) kann passieren

7/8) Das Bitcoin Netzwerk besteht aus tausenden Nodes, die miteinander verbunden sind - Einige Nodes sind an Mining-Pools angeschlossen. Nur irgendeiner der tausenden Nodes muss die Transaktion in das andere Netzwerk kopieren, entweder passiert das unabsichtlich durch fehlerhafte Software, die die Bitcoin P2P Netze nicht unterscheiden kann, oder irgendwo auf der Welt sitzt jemand, der das absichtlich macht.
Das muss auch nicht sofort passieren, sondern kann auch noch Jahre später passieren, solange die Transaktion eben im anderen Netzwerk noch gültig ist.

Wenn du einen Entwickler von Bitcoin Core fragst, dann wird der dir auch sagen, dass das absurd ist, weil die anderen keine ausreichende Replay Protection eingebaut haben. Wenn du BitcoinCash komplett ignorierst, dann kann deinen Bitcoins auch nichts passieren.

Die Entwickler von BitcoinABC / BitcoinCash / UAHF haben das in Kauf genommen.
Die Entwickler vom alten Bitcoin können da nichts gegen machen.

Ein Chain Split ist schon ein besonderes Ereignis, dass sehr großes Chaos auslöst und deswegen von sehr vielen abgelehnt wird. Trotzdem steht es jedem frei jederzeit einen Hard Fork von Bitcoin zu machen - es ist eben ein offenes System. Verhindern oder verbieten lässt sich das nicht.

Hoffentlich müssen wir nie wieder einen Chain Split erleben.

Edit:
Könntest du bitte den Thread Titel aktualisieren, damit auch andere das leichter finden können?  Wink
newbie
Activity: 14
Merit: 0
Danke, für deine ausführlichen Erklärungen.

Ich verstehe es schon besser.
In erster Linie geht es mir selbst darum es "lückenlos" zu verstehen, aber in zweiter Linie auch darum dass es ganz "normale" Menschen verstehen.

Deshalb noch hätte ich noch ein paar Fragen:

Wenn ich ein Mensch wäre der Bitcoin bei einem Automaten gekauft hätte, und sich diese auf eine Adresse gesendet hätte, die ich mit Electrum verwalte, und ich nichts von einem Split mitbekomme.
Ich so wie der Großteil der Menschen wäre die kein Ahnung von Kryptographie, programmieren usw. hätte, und folgendes machen würde:

Nehmen wir an ich besitze 2 Bitcoin.

Ich mach nichts anderes als sonst auch, (habe ja keine Ahnung davon) mach einfach nur eine Transaktion wie sonst auch.
Ich überweise NACH dem Splitt 1 Bitcoin an einen fremden, was kann passieren bzw. im schlimmsten Fall.


1.) ich habe noch 1 BTC auf meiner Wallet, und der fremde hat auch 1 BTC? (wäre Ok)
2.) ich habe 2 BTCCash auf einer Chain (die ich aber erst mit zB. ElectrumCash verwalten kann, auch wenn ich es erst in 1 Jahr verstehe)? (wäre Ok)
3.) ich habe 1 BTCCash auf einer Chain und der fremde hätte auch 1 BTCCash? (wäre nicht Ok)
4.) ich habe NUR noch 1 BTC auf meiner Wallet, und der BTCCash ist weg, weil ich durch meine Unwissenheit, nicht das richtige unternommen habe? (wäre nicht Ok)
5.) ich habe kein BTC und kein BTCCash (wäre nicht Ok)
6.) Oder kurz gesagt ich könnte KEINE BTC verlieren aber dafür ALLE BTCCash? (wäre je nach Entwicklung der beiden Coins u.U. auch nicht Ok)

Wenn irgendetwas sein KANN das man Geld verliert, abseits von Kursschwankungen, ich meine nur weil man sich in der komplexen Materie nicht auskennt, würde das meiner Meinung nach einen schweren Schaden in das Vertrauen der Kryptowährung nach sich ziehen.

Quote
c) Der Miner kann nicht wissen, ob die Transaktion absichtlich war oder nicht - Irgendwer hat die gesamte Transaktion einfach ins andere Netzwerk kopiert
7.) wenn das so ist wer kann das machen, ich meine wer ist "Irgendwer", es kann doch nur ICH ein NODE-Betreiber oder ein MINER sein, oder?
8.) ich meine ICH selber werde mich nicht Betrügen, also kann es nur ein NODE-Betreiber oder ein MINER sein?

Das ist auch einer der Gründe warum ich so perplex bin, wenn ich lese man kann Bitcoins verlieren wenn man etwas nicht beachtet, von dem die meiste gar nichts wissen werden.
Das Bitcoin-System wird als SEHR sicher beschrieben weil man eben nicht leicht Betrügen kann, bzw. viel Rechenkraft braucht (51%).
Aber wenn jetzt ein Miner oder NODE-Betreiber die ja die Grundbausteine des Systems sind, nicht vertrauen kann weil sie doch leich betrügen können, ist doch das ganze Absurd.

Ok ich weiß das Kryptowährung weit davon entfernt ist Massentauglich zu sein.


sr. member
Activity: 286
Merit: 251
Extension Blocks <3 Rootstock <3
Taint im Zusammenhang mit Bitcoin hat mehrere Bedeutungen
Bei Replay Protection geht es darum einen UTXO Eintrag zu nutzen, den es nur auf einer Chain gibt.

Der Taint ist der einzigartige UTXO Eintrag, den mal als Input in einer Transaktion benutzt.

Der Prozess wird dann Tainting genannt, weil es die Transaktion auf der anderen Chain ungültig macht, da normalerweise die Signaturen einer Transaktion alle Inputs abdecken (SIGHASH_ALL).

Die Transaktion ist also dann ungültig auf der anderen chain, weil sie "tainted" (verdorben, beschmutzt) ist durch den einzigartigen UTXO Eintrag als zusätzlichen Input.


zu deiner Frage:
Entweder man lässt sich Taint schicken, das geht am einfachsten mit Bitcoin, die neu gemined wurden, oder man stellt diese selber her, wobei es da passieren kann, dass die Transaktion auf beiden Ketten ausgeführt wird. Deswegen sendet man in beiden Netzen mit einem kleinen Betrag (zum Beispiel mit dem gleichen UTXO-Eintrag als Input) zwei unterschiedliche Transaktionen, oder nutzt Mechanismen, wie RBF, die nur auf einer Chain funktionieren.
Das erstellen des Taints ist aber ein bisschen Glückssache, und erfordert unter Umständen mehrere Versuche.

Edit:
a) ja
b) ja
c) Der Miner kann nicht wissen, ob die Transaktion absichtlich war oder nicht - Irgendwer hat die gesamte Transaktion einfach ins andere Netzwerk kopiert
d) e) f) siehe oben

g) ggf. braucht man mehrere Versuche
h) ich würde einfach nur einen einzigen Input erstmal verwenden -> Damit ist die Transaktionsgröße am geringsten und du verbrauchst am wenigsten Gebühren, falls es fehlschlägt
i) genau
newbie
Activity: 14
Merit: 0
Vielen Dank jetzt habe ich es glaub ich verstanden.
Also nochmal zur absicherung ein paar Fragen:

a.) wenn ich Electrum in 2 Verschiedenen Ordner betreibe und richtig einstelle (wie oben erklärt), ist alles richtig von meiner Seite aus?
b.) ich könnte dann mit beiden Clients meine Coins so behandeln wie wenn es z.B. LTC und BTC wäre?

Und jetzt kommt das was ich bis jetzt nicht verstanden habe:
c.) wenn ein Miner betrügen will dann nimmt er die (TxIn im UTXO, Signatur) meiner Transaktion von CoinA und macht damit eine Transaktion mit CoinB ohne mein zutun?


d.) deshalb kommt immer der Rat, man soll seine "alten" BTC mit einen "neuen" BTC gemeinsam an eine neue eigene Adresse senden, weil der Miner dann diese (TxIn im UTXO, Signatur) NICHT für CoinB verwenden kann?
e.) bei einem neunen BTC ist gemeint, dass dieser in einem Block NACH dem Splitt liegt?
f.) ist TAINT der Begriff ...für das senden "alter" mit den "neuen" Coins, in einer gemeinsamen Transaktion?

g.) wenn ich CoinA aber auf eine Adresse von mir sende ohne zu mischen, könnte der "gemeine" Miner die zwar kopieren, es würde aber der CoinB auch wieder auf meiner Adresse landen, dann halt in ChainB, dann habe ich doch eigentlich keinen Schaden?
h.) wenn ich mit Punkt g.) richtig liege, für was muss ich dann "Mischen", ich müsste doch einfach nur alle CoinsA 1 Mal an mich senden?
i.) das einzige was passieren kann, ist dass ein "gemeiner" Miner mir die Arbeit abnimmt und mir meine CoinB, an meine Adresse auf ChainB sendet?

sr. member
Activity: 350
Merit: 251
Dolphie Selfie
Theoretisch hast du recht: Wenn die Clients der jeweiligen Chains nach dem Split nicht mehr miteinander reden, kommt eine Transaktion von Chain A nicht in Chain B. Praktisch musst du aber damit rechnen, dass ein geminer *haha* ((C) 2017 _hv) auf beiden Chains einen Client betreibt und diese beiden Clients miteinander über ein selbst gestricktes Gateway verbindet. Dadurch gelangen Transaktionen gedacht für Chain A ins P2P-Netz von Chain B und umgekehrt. Da die Transaktionen an sich auf beiden Chains gültig sind (TxIn im UTXO, Signatur gültig, ...), wird die Transaktion in beiden Chains gemined und damit Teil beider Chains.

Der Wortwitz mit den gemeinen Minern oben kommt auch nicht von ungefähr: Da die Miner diejenigen sind, die die Transaktionsgebühr bekommen, haben sie auch ein entsprechendes Interesse daran, möglichst viele Transaktionen für ihren Block zu bekommen.
newbie
Activity: 14
Merit: 0
Danke mal vorab.

Das heißt BTCCash (B) schaut in die neuen Blöcke von BTC (A) ?  (also in einem Block NACH dem Split)
Warum ist das so?

Das wäre ja so als würde LTC in die Chain von BTC schauen.
Das ist dass was ich nicht verstehe.

BTC und BTCCash sind doch dann genauso wie BTC und LTC, was geht dem einen die Chain des ANDEREN Coins an? (bildlich gesprochen)

Quote
Du kannst ja auch so die gleiche Wallet auf mehreren Geräten nutzen, eine Transaktion auf einem Gerät erscheint automatisch auch auf allen anderen.
Ja aber doch nur wenn beide auf dieselbe Chain blicken!?

Bei einem Split wo 2 Coins herauskommen sind es ab dem Split-Block 2 VERSCHIEDENE Chains wie z.B. bei LTC und BTC.
legendary
Activity: 1100
Merit: 1058
Da B in der Blockchain sehen kann, das die alten Schlüssel benutzt werden, von wem auch immer.
Du kannst ja auch so die gleiche Wallet auf mehreren Geräten nutzen, eine Transaktion auf einem Gerät erscheint automatisch auch auf allen anderen.
Das einzige: evt. eingetragene Adressbuchnamen und später auch Wechselgeldadressen werden natürlich nicht synchronisiert, sind also evtl. irgendwann unterschiedlich.
newbie
Activity: 14
Merit: 0
Ich habe mich schon relative gut eingelesen, wie ich meine. Bin aber noch weit von einem Profi entfernt. Grin
Kenne mich mit PHP, Javasript, SQl, NodeJS, HTML, CSS, .... aus, auch mit Verschlüsselung, GIT, Webserver ... usw.

Aber die Sache mit der "Replay Protection" verstehe ich nicht.
Extrem vorsichtig musst du sein, wegen der Replay Protection sein.
Wie hier angedeutet.

Angenommen es gibt einen Chain-Split also es existieren 2 getrennte Coins. BTC und BTCCash

Dann würde ich mit Elecrum so vorgehen:

Ich erstelle ein Kopie des ganzen Electrum Ordner (portable Version), stelle jeden Electrum so ein dass er sich mit dem richtigen Node verbindet, damit er die richtige Chain bekommt,
  ElectrumA mit dem BTC-OLD (BTC)
  ElectrumB mit dem BTC-NEW (BTCCash)

Da bei beiden die Blöcke bis zum Split gleich sind, habe ich auch in beiden Elektrum die gleiche Anzahl von Coins.

Wenn ich nach dem Split mit ElectrumA eine Transaktion mache, wie soll es dann möglich sein dass es in der B-Chain auch auftaucht oder umgekehrt?
Wenn doch beide unabhängig auf verschiedene Chains "horchen" und in verschiedenen Ordnern installiert sind.

Das will nicht in meinen Kopf rein.

Danke schon mal vorab.
 
Pages:
Jump to: