Author

Topic: Wie funktioniert ein "double spend , 51% Angriff" ? Erklärung und Beispiele. (Read 217 times)

legendary
Activity: 2940
Merit: 3030
Da hast du recht und danke für die Ergänzung!
qwk
donator
Activity: 3542
Merit: 3411
Shitcoin Minimalist
Man sollte einschränkend erwähnen, dass 51% Attacken überhaupt nur sinnvoll mit deutlich mehr als 51% Rechenleistung möglich sind und überdies eigentlich nur Coins betreffen, die für ihren jeweiligen Algorithmus/Mining Hardware lediglich einen relativ kleinen Anteil der prinzipiell verfügbaren Rechenleistung auf sich vereinen.

Ich ergänze einfach mal aus meiner eigenen FAQ:

2. 51% Attacke / Majority Attack
Über kaum ein Thema wird so viel Unsinn verbreitet wie über die 51% Attacke.

Kurz gesagt kann auch ein Miner, der 90% oder gar 99% der Rechenleistung im Netzwerk stellt, faktisch keinen profitablen Angriff auf das Netzwerk durchführen. Er ist im Zweifelsfall reduziert auf die Möglichkeiten einer DOS-Attacke (TODO).

Ein Miner, der mehr als 50% der Rechenleistung im Netzwerk kontrolliert, kann einen Doublespend gegen einen anderen Teilnehmer des Netzwerks durchführen.


Das heißt, er kann in etwa folgendes tun (unser Miner heißt Bob):
Minute 10: Main-Chain Block 101 - Bob sendet 1 BTC an Alice
Minute 20: Main-Chain Block 102
...
Minute 50: Main-Chain Block 106
Minute 60: Main-Chain Block 107 - Alice bestätigt nach 6 Confirmations den Erhalt der Zahlung - Alice liefert Bob z.B. einen Goldbarren
Bob lässt nun seine Miner an einer neuen Version der Blockchain ab Block 101 arbeiten (vor diesem Block hatte er den 1 BTC noch in seiner Wallet, wenn er diesen Block neu schreibt, kann er ihn behalten).
Nun passiert folgendes:
Das "echte" Netzwerk mint ab Block 107 weiter, Bob muss wieder ab Block 101 minen.
Bob kann seinen Angriff nur erfolgreich durchführen, wenn er mit seinem "falschen" Netzwerk (Bob-Chain) das "echte" Netzwerk (Main-Chain)überholt.
Wir gehen der Einfachheit halber davon aus, dass Bob nicht nur 51% der Rechenleistung hat, sondern 66,66%, also zwei Drittel.
Das "echte" Netzwerk ist auf ein Drittel seiner Rechenleistung beschränkt (weil Bobs zwei Drittel fehlen), Blöcke werden also nicht mehr alle 10 Minuten gefunden, sondern nur noch alle 30 Minuten.
Bobs Netzwerk hat 66,66% der Rechenleistung, er findet Blöcke also ca. alle 15 Minuten.
Minute  75: Bob-Chain Block 101
Minute  90: Bob-Chain Block 102
Minute 90: Main-Chain Block 108
Minute 105: Bob-Chain Block 103
...
Minute 270: Bob-Chain Block 114
Minute 270: Main-Chain Block 114
Minute 285: Bob-Chain Block 115 - Bob-Chain ist jetzt länger als die Main-Chain
Bob kann nun seine Chain propagieren, also ins Netzwerk broadcasten.
Bitcoin-Nodes werden erkennen, dass es eine längere Chain gibt und werden diese als die neue Main-Chain ansehen.
Bob hat seinen 1 BTC also nach 210 Minuten wieder zurück.
Auf den ersten Blick sieht Bob wie ein Gewinner aus. Der Schein trügt.
Bob betreibt zwei Drittel der Miner im Netzwerk.
In Bob-Chain hat er logischerweise 100% aller Block-Rewards kassiert, also 101-115, 15 x 12,5 BTC = 187,5 BTC.
Wäre er "ehrlich" geblieben und hätte auf der Main-Chain weitergearbeitet, ohne Alice betrügen zu wollen, wäre folgendes passiert:
Minute 10: Main-Chain Block 101
...
Minute 280: Main-Chain Block 128
Bob hätte in Main-Chain von den 28 Blockrewards zwei Drittel erhalten, also rund 18,66 * 12,5 BTC = 233,25 BTC
Bob hat also Alice um 1 BTC betrogen, er hat aber auf 233,25 - 187,5 BTC = 45,75 BTC verzichtet.
Unser großer Gewinner "Bob" ist also mit 44,75 BTC im Minus.
Anders gesagt, der Angriff hätte sich für ihn nur gelohnt, wenn er mindestens 45 BTC "gestohlen" hätte.
Und selbstverständlich ist das nicht Bobs einziges Problem.
Bob betreibt offensichtlich eine große Mining-Farm. Die kann er nicht eben so verstecken.
Er hat in den meisten Ländern der Welt wohl strafrechtlich einen Betrug an Alice begangen.
Das Bitcoin-Netzwerk, bzw. die Nutzer haben selbstverständlich gesehen, was Bob da getan hat, all dies war in der Blockchain öffentlich live mitzuverfolgen.
Das Netzwerk könnte durchaus entscheiden, z.B. den Mining-Algorithmus zu wechseln, um zu verhindern, dass Bob das wieder tut. Mit seinen 66,66% wäre Bob damit sicherlich derjenige Miner mit dem größten Schaden. Geschieht ihm recht.
Und Alice kann eine echte Furie sein, wenn man ihr einen Bitcoin klaut, glaubt mir! Wink

In diesem Beispiel habe ich Bob 66,66% gegeben, für Miner mit weniger Rechenleistung sieht die Sache umso schlimmer aus. Aber selbst für Miner mit 90% lohnt es sich wohl kaum, gigantischen Aufwand zu betreiben, ein hohes Risiko einzugehen, um letztlich minimale Betrügereien begehen zu können.

"Hoher Aufwand, minimaler Ertrag, geringe Aussicht auf Erfolg, fast sichere Chance auf Entdeckung, Straftat - Ich bin dabei!" muss wohl das Motto eines Rogue-Miners sein, der eine 51% Attacke durchführen will.
legendary
Activity: 2940
Merit: 3030
Wie funktioniert ein double spend , 51% Angriff ?

BTCurious erklärte es super und in ein paar wenigen Sätzen:
If I had 51%, I could mine a chain of blocks in which I transfer all my coins to my personal wallet. I'd mine this chain about 10 long, but not tell the rest of the network. At the same time, I convert all my coins to dollars on the exchange and withdraw them. This happens on the normal blockchain.
After my withdrawal has gone through. the normal blockchain is about 9 long, while my blockchain is 10 long. I announce all my blocks to the network, and lo and behold, the network confirms I am right.
But dollars can't be reverted! So the exchange takes a loss.
BTCurious quote übersetzt :
Quote
Wenn ich 51% hätte,dann könnte ich eine Reihenfolge von Blöcken in der Blockchain minen in der ich alle meine Coins in meine persönliche Wallet überweise. Ich würde in dieser Blockchain etwa 10 Blocks minen aber dem Rest des Blockchain Netzwerkes nicht mitteilen das ich dies mache. Zur gleichen Zeit konvertiere ich alle meine Coins in Dollars an der Börse und überweise diese sofort. Dies geschieht nun auf der normalen Blockchain.
Nachdem meine Überweisung durchgegangen und fertig ist ,ist die normale Blockchain  ungefähr 9 Blöcke lang, während meine eigene Blockchain 10 Blöcke lang ist. Ich kündige nun alle meine Blöcke im normalen Netzwerk an, und siehe da, das Netzwerk bestätigt, das meine Blockchain  recht hat und akzeptiert diese.
Aber die Dollars können nicht zurückgeholt  werden! Somit macht die Exchange (Börse) einen Verlust damit.

Quote

Monacoin, bitcoin gold, zencash, verge and now, litecoin cash.
At least five cryptocurrencies have recently been hit with an attack that used to be more theoretical than actual, all in the last month. In each case, attackers have been able to amass enough computing power to compromise these smaller networks, rearrange their transactions and abscond with millions of dollars in an effort that's perhaps the crypto equivalent of a bank heist.
More surprising, though, may be that so-called 51% attacks are a well-known and dangerous cryptocurrency attack vector.
Übersetzt :
Quote

Monacoin, Bitcoin Gold, Zencash, verge und jetzt, Litecoin Cash.
Mindestens fünf Kryptowährungen wurden so vor kurzem mit einem solchen Angriff getroffen der im letzten Monat mehr theoretisch als tatsächlich war. In jedem Fall waren die Angreifer in der Lage genügend Rechenleistung zu sammeln um diese kleineren Netzwerke zu kompromittieren, die Transaktionen neu anzuordnen und Millionen von Dollar zu stehlen was vielleicht das Crypto Äquivalent eines Banküberfalls gleich kommt.
Viel überraschender ist es jedoch das sogenannte 51% Angriffe ein bekannter und gefährlicher Kryptowährungs-Angriffsvektor sind.
https://www.coindesk.com/blockchains-feared-51-attack-now-becoming-regular/

Hier ist eine umfassendere Erklärung:

Wenn eine Person mehr als 51% der Mining power eines Coinnetzwerkes kontrolliert kann sie den Konsens kontrollieren.

Der Angreifer mietet oder holt sich die benötigte Menge an Miningleistung bei (Mingrigrentals.com oder Hashnest.com) oder nutzt ein Botnet, um diese zu erhalten.
Zum Beispiel, wenn das Hauptnetzwerk 25 Gh Hashpower hat kann ein 51% Angriff mit 25,5 Gh gemieteter Miningleistung gemacht werden.

Das wäre sehr einfach und auch nicht so teuer.


Wie funktioniert der Angriff:

Mit einem geheimen privatem Pool erstellen sie eine private chain die länger ist als die öffentliche chain.

Zum Beispiel:
Sagen wir mal, angenommen sie beginnen bei Block 100 000
Nun würden sie eine längere private Blockchain aufbauen als die öffentliche Blockchain.
Ihre private Blockchain hat nun mehr Hashpower als die normale und wird jetzt die Blöcke schneller finden.
Die private Blockchain könnte nun 10 Blöcke gefunden haben während die öffentliche Blockchain während dieser Zeit nur 9 gefunden hat.

Der Double-Spend (Ich lasse dies mal so da es sich nicht gut übersetzten läßt .)

Sobald sie ihre private Blockchain starten gehen sie zu einer Exchange(Börse) oder einer Handelsplattform und machen eine große Einzahlung.

Wir nehmen als Beispiel 10.000 GLD.
Dies wird in Block 100, 001 an die öffentliche Blockchain gesendet. Aber sie senden diese Transaktion nicht an ihre private Blockchain sondern nur an die öffentliche Blockchain.
Auf ihrer privaten Blockchain tätigen sie nun eine Transaktion die dieselben 10000 GLD an eine andere Walletadresse in Block 100,001 sendet.


Das ist der  “double spend” part - Sie geben diese Anzahl an GLD zweimal in die Netzwerke raus.

Wie profitieren sie davon

Die Börse sieht nun die 10.000 GLD Einzahlung in der öffentlichen Blockchain und nach 6 bestätigten Blöcken wird sie akzeptiert und der Saldo wird an die Exchange-Ledger übertragen und wird für den Handel nun verfügbar gemacht.

Der Betrag ist jetzt sicher in der exchange wallet – richtig ? Weil das Coinnetzwerk bestätigt hat das sie da sind. Nun wird es auch im Block Explorer als korrekte Transaktion angezeigt.

Der Angreifer tradet dann die 10.000 GLD zu Bitcoin zu den aktuellen Marktpreisen und überweist sofort die getradeten Bitcoins zurück.  
Die Börse genehmigt die Bitcoinüberweisung und der Angreifer hat nun den Betrag in BTC.
Jetzt sind wir bei Block 100,008 oder 100,009.


Sobald die BTC aus der Börse kommen wird der Angreifer seine lange private Blockchain von 10 Blöcken freigeben und an das öffentliche Netzwerk senden. Die private Blockchain ist jetzt öffentlich. Da das private Netzwerk eine höhere Miningleistung hat (über 51%) und länger als die vorherige öffentliche Blockchain ist wird sie nun von der öffentlichen Blockchain als der wahre Datensatz akzeptiert.
Dies wird “Chain Reorganization” genannt. Die 9 Blöcke zuvor im Mainnet sind veraltet und die 10 neuen Blöcke werden als neues Mainnet installiert. So werden alle Blockchainaufteilungen im GLD Coinnetzwerkprotokoll aufgelöst.

Die Coins die ursprünglich vom Netzwerk in der Exchange wallet akzeptiert wurden, werden nun vom Coinnetzwerk als ungültig zurückgewiesen.
Aber die Börse hat bereits den Betrag aus dem Verkauf der Coins für BTC an den Angreifer in BTC freigegeben.

Während ihre Wallet anfänglich die 10.000 GLD hatte, hat das Netzwerk diese Transaktion für ungültig erklärt und die private Blockchain als die "richtige Blockchain" anerkannt.
Plötzlich enthält das Mainnet nicht die ursprüngliche Einzahlung von 10.000 GLD an die Exchange zurück in den ursprünglichen Block 100001, aber es beinhaltet eine Übertragung dieser 10.000 GLD an die eigene Wallet des Angreifers zurück aus dem privat abgebauten Block 100.001.


Bei der neuen Version der Blockchain schickte der Angreifer sie nie zur Börse, sondern schickte sie stattdessen an sich selbst.

Also nahm der Angreifer von der Börse die 10.000 GLD in Betrag von BTC ab , aber gab die 10.000 GLD nicht mehr an die Börse zurück.

So haben sie vielleicht eine Menge Geld für all diese Miningleistung bezahlt, aber die GLD die sie gestohlen haben ist viel mehr wert.

Also ist es ein Hack?

Die Blockchain wurde nicht gehackt. Aber das dezentrale Coin node netzwerk, das die Blockchain betreibt, wurde ausgenutzt weil das Netzwerk eine unzureichende Hashrate hatte, um sie davor schützen zu können.

Im Mai wurde Bittrex Opfer eines 51% Double-Spend-Angriffs auf das Bitcoin Gold Netzwerk. Die Bitcoin Gold Entwickler boten Bittrex nur einen Teil der Verluste an und Bittrex entschied sich dafür stattdessen Bitcoin Gold zu delisten.
Andere Coins die durch 51% Angriffe ins Visier genommen wurden haben normalerweise die Börsen für ihre Verluste kompensiert.
Wenn eine Coin genug Hashrate hat um ihr Netzwerk zu sichern wäre es fast unmöglich einen 51% Angriff durchzuführen.
Einige Coinnetzwerke haben sich auf ein merged mining geeinigt oder eine Mischung aus POW und POS eingeführt.

Sources:

https://www.coindesk.com/blockchains-feared-51-attack-now-becoming-regular/
https://forum.bitcoingold.org/t/anatomy-of-a-double-spend-51-attack/1398
https://bitcointalksearch.org/topic/how-exactly-would-a-51-attack-work-52388
https://www.bleepingcomputer.com/news/security/hacker-makes-over-18-million-in-double-spend-attack-on-bitcoin-gold-network/
https://cointelegraph.com/news/bittrex-to-delist-bitcoin-gold-by-mid-september-following-18-million-hack-of-btg-in-may

Der Orginaltext und Thread ist von xtraelv und er hat mich gefragt ob ich es ins deutsche Übersetzen möchte , da das Thema mit GLD gerade aktuell ist !

Xtraelv's Thread :  How does a double spend 51% attack work ? Explanation and examples.
Jump to: