Ich bin ein Entwickler, der eine Anwendung erstellt, die Zahlungen in Kryptowährungen akzeptiert.
Ist es möglich, im Falle eines 51%-Angriffs ein Skript zu erstellen, das dies erkennt, sodass wir Auszahlungen automatisch aussetzen können?
Generell nein, erst wenn es zu spät ist.
Ein typischer 51%-Angriff würde wie folgt aussehen:
Der Angreifer beginnt privat mit dem Mining seiner eigenen Kette, die bei Block N von der Hauptkette abweicht.
Der Angreifer zahlt Münzen in Ihr Unternehmen ein und sendet sie von Adresse A. Rufen Sie diese Transaktion X auf.
Der Angreifer fügt in seine eigene Kette eine Transaktion X' ein, die mit X in Konflikt steht; typischerweise sendet X' die Coins von Adresse A an eine andere Adresse, die dem Angreifer gehört.
Der Angreifer wartet auf mehrere Bestätigungen der Transaktion X in den Blöcken N+1, ..., N+6 (ersetzen Sie 6 durch beliebig viele Bestätigungen, die Ihr Unternehmen wünscht) der Hauptkette.
Sobald genügend Bestätigungen vorliegen, um Sie zufriedenzustellen, liefern Sie Waren oder Dienstleistungen an den Angreifer.
Der Angreifer gibt seine eigene Kette frei, die jetzt Blöcke bis zu, sagen wir, N+50 hat. Da diese Kette länger ist, wird sie vom Netzwerk akzeptiert. Diese Kette enthält nicht die Transaktion X, sondern X', sodass Sie nicht die Münzen haben, von denen Sie dachten, dass Sie sie hätten.
Beachten Sie, dass bis zu Schritt 6 alles im Netzwerk völlig normal aussieht; nur der Angreifer weiß, was los ist.
Murch