Hm. Bin noch nicht überzeugt. Gehen wir mal in die Details eines 51%-Angriffes. Normalerweise läuft der ja so ab:
- Angreifer bestimmt einen "Angriffsblock" und führt dort eine Transaktion durch (z.B. ein Kauf oder Deposit auf einer Exchange).
- Er mintet nun auf dieser Chain ganz normal (d.h. die "längste Chain" gewinnt), bis er den Gegenwert der Transaktion irreversibel erhalten hat (z.B. die Banküberweisung von der Exchange angekommen ist)
- Gleichzeitig (am besten mit einem anderen Rechner) mintet er mit einer manipulierten Software eine andere Chain ("Fake-Chain"), die auf einem Double Spend im Angriffsblock aufbaut. Hierzu nutzt er die selben Private Keys.
--> hier kommt TPoS ins Spiel: Der Angreifer kann normalerweise
auf beiden Rechnern (und damit beiden Chains) gleichzeitig mit den Coins aller Staker minten, die ihn per Contract dazu "befähigen". Es ist dabei egal, ob er "als ein Account" (wie bei LPoS) oder "als eine Gruppe von Accounts" (wie bei TPoS) auftritt.
- Hat der Angreifer den gewollten Wert, macht er die Fake-Chain öffentlich. Er muss genügend Stake-Power haben, damit andere Minter ihn als längste Chain akzeptieren, d.h. er muss es schaffen, die "alte Chain" verwaisen zu lassen. Deshalb muss die Fake-Chain "länger" sein (d.h. der "Chaintrust"-Wert höher sein) als die alte. Ist sie das, dann gilt sie als "legitime" neue Chain, sobald sie öffentlich wird. Für das Netzwerk sieht es dann so aus, als wäre die legitime Chain einfach für einige Blöcke "verschwunden".
Natürlich ist so ein Angriff äußerst schwierig und teuer, aber er wird mit "Cold Staking" welcher Art auch immer einfacher.
Meine Frage ist nun: Wo genau setzt hier das System ein, das einen solchen Angriff verhindert?
"Unterschiedliche Coins, die staken" (damit sind wohl UTXOs gemeint, oder ist es Follow-the-Satoshi?) und "unterschiedliche Stake-Transaktionen" alleine können es jedenfalls nicht verhindern, da ja der Merchant die Kontrolle über den Staking-Vorgang (also das Finden der Blöcke) an sich hat, da er ja den Node betreibt, der "stakt".
Ich kann mir nur ein System wie bei
Slasher oder auch Cardano vorstellen, bei dem im Voraus die "stakenden" Coins (UTXOs/Satoshis) bestimmt und eine längere Zeitlang gesperrt werden, während der es nicht möglich ist, nachträglich mit diesem Coin einen anderen Block (andere Block-ID) zu minten.
Aber auch bei einem Slasher-ähnlichen System könnte der Angreifer einfach warten, bis die Sperre abgelaufen ist (sie wird ja nicht ewig dauern, da sonst der Staker nur einmal Rewards bekäme). Trotzdem würde der Angriff schwieriger - wenn XSN sowas hätte, würde ich dann vielleicht zu einem Fan.
