Zufallszahlen lügen nicht: Ein genauerer technischer Blick auf die neuesten DeFi-Hacks

Free Bitcoins: FreeBitcoin | BonusBitcoin

Coins Kaufen: Bitcoin.deAnycoinDirektCoinbaseCoinMama (mit Kreditkarte)Paxfull

Handelsplätze / Börsen: Bitcoin.de | KuCoinBinanceBitMexBitpandaeToro

Lending / Zinsen erhalten: Celsius NetworkCoinlend (Bot)

Cloud Mining: HashflareGenesis MiningIQ Mining


Als die Ethereum-Gasgebühren während der Hausse 2021 auf Rekordhöhen stiegen und viele dezentrale Finanzprotokolle (DeFi) für Gelegenheitsnutzer unbrauchbar wurden, mussten mehrere Projekte in anderen Ketten eingesetzt werden.

Dies führte zu einem enormen Anstieg der Nachfrage nach kettenübergreifenden Mechanismen – sogenannten Brücken –, die in der Lage sind, Benutzerressourcen sicher von einer Kette in eine andere zu übertragen. Cross-Chain-Brücken können im Allgemeinen in zentralisierte Custodial Bridges (CCB) und dezentralisierte Non-Custodial Bridges (DNCB) unterteilt werden.

Erwartungsgemäß führte die steigende Nachfrage nach Cross-Chain-Brücken zum Aufkommen einer neuen Welle von Protokollen mit unterschiedlichem Ruf. Da Cross-Chain-Bridges einen immer wertvoller werdenden Pool von Benutzer-Assets bedienten, war es nur eine Frage der Zeit, bis böswillige Akteure und Hacker auffielen.

Im Allgemeinen werden Hacker DNCBs ins Visier nehmen, weil sie Mängel in Protokollen ausnutzen können, die von unerfahrenen Entwicklungsteams entwickelt wurden. Ein erfahrener Hacker kann leicht Fehler in der Logik oder Schlupflöcher ausnutzen, die in die Kryptographie und das Design eines schlecht entworfenen Protokolls eingebettet sind.

Dies bringt uns zum heutigen Tag: den Folgen mehrerer Angriffe auf Cross-Chain-Brücken. Ein weiteres schwarzes Auge in einer kampferprobten Industrie. Um es noch einmal zusammenzufassen, nur im Monat Juli 2021:

  • ChainSwap erlitt am 2. Juli einen Hack im Wert von etwa 800.000 US-Dollar an Benutzervermögen.
  • Die Liquiditätspools von AnySwap V3 erlitten am 10. Juli einen Hacker im Wert von fast 8 Millionen US-Dollar in USDC und MIM. AnySwap ist ein Cross-Chain-DEX, das vom Fusion Network betrieben wird.
  • ChainSwap erlitt einen weiteren Hack, nur 9 Tage nach dem ersten Hack. Diesmal im Wert von 4 Millionen US-Dollar an Benutzervermögen. ChainSwap ist eine von Alameda unterstützte Plattform, die Ethereum mit Binance Smart Chain verbindet.

Der Hauptzweck dieses Leitartikels besteht darin, zwei oft ignorierte, aber wichtige Elemente dezentraler Cross-Chain-Brücken relativ detailliert vorzustellen: Ableitung 'R'.

Einige der ausgenutzten ChainSwap-Token beim Hack vom 2. Juli. Quelle: CoinGecko

Der AnySwap Hack: Zwei ist nicht immer besser als eins

Berichten zufolge geschah der AnySwap-Hack, weil zwei separate Transaktionen mit demselben R-Wert signiert wurden. Der Hacker nutzte diese beiden Signaturen, um den privaten Schlüssel, der das Cross-Chain-MPC-Konto von AnySwap steuert, zurückzuentwickeln und die Gelder der Benutzer zu stehlen.

Aber was genau ist ein „R“-Wert?

Was ist „R“ – die Achillesferse der Kontosicherheit

Eine der ersten Lektionen, die jeder in der Blockchain lernt, ist, dass die Gelder in Ihrem Wallet von Ihrem privaten Schlüssel kontrolliert werden.

Sie alle haben den Satz gehört: „Nicht Ihre Schlüssel, nicht Ihre Münzen“. Diese Redewendung bedeutet, dass jede Person, die den privaten Schlüssel einer Brieftasche besitzt, die volle Kontrolle über die Vermögenswerte in dieser Brieftasche hat. Um Geld von einem Konto auf ein anderes zu überweisen, müssen Sie lediglich eine Transaktion mit dem privaten Schlüssel dieses Kontos signieren.

Derzeit ist der in Blockchains verwendete Standardalgorithmus für digitale Signaturen der Elliptic Curve Digital Signature Algorithm (ECDSA).

ECDSA gehört zur „nicht-deterministischen“ Kategorie der digitalen Signaturalgorithmen. Im Gegensatz zu „deterministischen“ Algorithmen, die bei einer bestimmten Eingabe immer die gleiche Ausgabe liefern, können „nicht deterministische“ Algorithmen auch bei derselben Eingabe unterschiedliche Ausgaben erzeugen. Für ECDSA bedeutet dies, dass derselbe Datensatz oder dieselbe Transaktion mehrere rechtsgültige Signaturen aufweist.

Jedes Mal, wenn eine Transaktion mit ECDSA signiert wird, wird eine kryptographisch sichere Zufallszahl „k“ generiert. „k“ wird dann verwendet, um einen Punkt auf der elliptischen Kurve zu berechnen, der wiederum verwendet wird, um den „R“-Wert zu berechnen. Es ist entscheidend, dass jedes Mal, wenn eine Transaktion mit ECDSA signiert wird, eine neue Zufallszahl „k“ generiert wird.

Wenn dasselbe „k“ verwendet wird, um mehrere Transaktionen zu signieren, ist der „R“-Wert zweier Transaktionen gleich und der private Schlüssel wird durchsickern. Dies wird als "k" -Wert-Kollision bezeichnet und ist der Grund für den PS3-Hack von Sony Ende 2010. Dies ist auch der Grund für den AnySwap-Hack.

Lassen Sie uns als Nächstes untersuchen, wie der AnySwap-Hacker den privaten Schlüssel, der das kettenübergreifende MPC-Konto von AnySwap kontrolliert, zurückentwickelt hat, um die Gelder der Benutzer zu stehlen.

Zwei ist definitiv nicht immer besser als eins

Überlegen Sie, was passiert, wenn zwei Transaktionen mit derselben Zufallszahl „k“ signiert werden. Da „k“ verwendet wird, um „R“ abzuleiten, ist auch der „R“-Wert der beiden Transaktionen gleich. Nennen wir diese beiden Signaturen (s1) und (s2).

Laut ECDSA lauten die Gleichungen, die diese beiden Transaktionen darstellen:

wobei S1, S2 und „R“ Signaturdaten darstellen und Transaktionsdaten darstellen. Dies sind alle Daten, die auf der Blockchain öffentlich sichtbar sind. Damit bleiben zwei unbekannte Parameter übrig: die Zufallszahl „k“ und der private Schlüssel des Kontos.

Wer sich an seine Highschool-Algebra erinnert, wird sofort wissen, wie man die unbekannten Parameter mit den beiden Gleichungen löst. Der private Schlüssel sk kann daher geschrieben werden als:

Der AnySwap-Hacker bemerkte, dass zwei Transaktionen den gleichen „R“-Wert hatten, was bedeutet, dass in beiden die gleiche Zufallszahl „k“ verwendet wurde. Dies ermöglichte es dem Hacker, den privaten Schlüssel, der das kettenübergreifende MPC-Konto von AnySwap kontrolliert, mithilfe einfacher Algebra zurückzuentwickeln und die Vermögenswerte der Benutzer zu stehlen.

Der kritische Fehler bestand darin, dass in mehreren Transaktionen dieselbe Zufallszahl „k“ verwendet wurde. „k“ wurde offensichtlich nicht zufällig generiert! Wie hätte dies also vermieden werden können?

Die Notwendigkeit einer sicheren Mehrparteien-Berechnung

Im Vergleich zu einfachen Transaktionssignaturen ist Secure Multi-Party Computation (SMPC) in der Tat recht komplex. Der zusätzliche Aufwand lohnt sich jedoch. Wenn SMPC – was ist sehr anders als bei Mehrfachsignaturen – richtig verwendet wird, um echte Zufallszahlen zu generieren, besteht kein Risiko, dass die Zufallszahl „k“ aufgedeckt wird.

Bei der Nutzung von SMPC ist der signierende Agent nicht mehr eine einzelne Person, sondern mehrere Personen, die zusammenarbeiten, um Transaktionen zu signieren.

Bei einfachen Transaktionssignaturen reicht allein ein echter Zufallszahlengenerator aus, um den „R“-Wert zu generieren und die Sicherheit zu garantieren. Da an SMPC jedoch mehrere unabhängige Parteien beteiligt sind, besteht immer die Gefahr, dass eine oder mehrere dieser Parteien bösartig sind.

Daher ist es nicht sinnvoll, einer einzelnen Person zu erlauben, den „R“-Wert allein zu generieren, da sie ein böswilliger Akteur sein kann. Wenn sie allein die Zufallszahl „k“ und wiederum den Wert „R“ kontrollieren, können sie den privaten Schlüssel des Kontos zurückentwickeln und Vermögenswerte stehlen. Daher müssen bei der Verwendung von SMPC zur Generierung des „R“-Werts drei Prinzipien eingehalten werden:

  1. Der „R“-Wert kann nicht von einer einzelnen Person generiert werden;
  2. Kein einzelnes Individuum darf die Zufallszahl „k“ kennen, die verwendet wird, um den „R“-Wert abzuleiten;
  3. Die Zufallszahl „k“ muss ausreichend zufällig sein, um unverzerrt und unvorhersehbar zu sein.

In den Begriffen von Laien verlangt SMPC, dass eine Gruppe von Personen zusammen an einer Aufgabe arbeitet, ohne zu wissen, woran sie gerade arbeiten oder mit wem sie zusammenarbeiten.

SMPC Standard-Setter: Wanchains öffentlich überprüfbares Secret Sharing Design

Die Cross-Chain-Bridges von Wanchain basieren auf einem einzigartigen Mechanismus, der SMPC verwendet, um Cross-Chain-Assets in Konten zu sperren, die von 25 anonymen Parteien namens Storeman-Knoten verwaltet werden. Die Anzahl der Storeman-Knoten kann nach Bedarf erhöht werden.

Beim Signieren von Transaktionen aus dem gesperrten Konto wird der „R“-Wert gemeinsam von diesen 25 Storeman-Knoten durch einen Prozess bestimmt, der als öffentlich verifizierbarer geheimer Austausch bekannt ist. Dieser Prozess stellt sicher, dass keine zwei Transaktionen jemals den gleichen „R“-Wert haben.

Die spezifischen Schritte, die diese 25 Storeman-Knoten ausführen, sind wie folgt:

  1. Jeder Storeman-Knoten (Pi) generiert lokal eine Zufallszahl „ki“ unter Verwendung eines echten Zufallszahlengenerators;
  2. Jeder Storeman-Knoten (Pi) teilt seine Zufallszahl „ki“ mit den anderen Knoten über einen sicheren Kanal unter Verwendung von Shamirs Secret Sharing.
    Shamir’s Secret Sharing ist ein geheimes Sharing-Schema, das entwickelt wurde, um ein Geheimnis auf verteilte Weise zu teilen. Das Geheimnis ist in mehrere Teile aufgeteilt, die als Shares bezeichnet werden. Das Geheimnis kann mit einer Mindestanzahl von Aktien rekonstruiert werden. Shamirs Secret Sharing wird häufig in der Kryptographie verwendet.
  3. Nach dem Empfang der geheimen Anteile von den anderen Knoten sammelt jeder Storeman-Knoten die geheimen Anteile und multipliziert sie mit dem Basispunkt der elliptischen Kurve und sendet das Ergebnis;
  4. Jeder Storeman-Knoten führt eine Lagrange-Interpolation unter Verwendung der Rundsendedaten durch, um einen elliptischen Kurvenpunkt zu erhalten, dessen Abszisse der „R“-Wert ist.

Obwohl der obige Prozess ziemlich kompliziert ist, ist das Kernkonzept ziemlich einfach. Der „R“-Wert wird gemeinsam von 25 Storeman-Knoten bestimmt. Jeder Storeman-Knoten trägt einen Teil der verschlüsselten Zufallszahl „k“ bei. Der „R“-Wert wird dann durch kryptografische Operationen bestimmt.

Mit anderen Worten, die 25 Storeman-Knoten arbeiten zusammen, ohne zu wissen, woran sie arbeiten oder wer die anderen Storeman-Knoten sind.

Öffentlich überprüfbares Teilen von Geheimnissen: Warum ist es so wichtig

Die öffentlich überprüfbare geheime Freigabe stellt sicher, dass:

  1. Es ist unmöglich, dass zwei Transaktionen den gleichen R-Wert haben

Dafür gibt es zwei Hauptgründe. Erstens wird der „R“-Wert gemeinsam von 25 Storeman-Knoten und nicht von einer Einzelperson bestimmt. Theoretisch ist der R-Wert zufällig, solange es einen einzigen ehrlichen Knoten gibt. Zweitens wird der Beitrag jedes Storeman-Knotens vom echten Zufallszahlengenerator generiert.

Kombiniert haben zwei Transaktionen nur dann den gleichen R-Wert, wenn die Summe der von allen 25 Storeman-Knoten ausgewählten Zufallszahlen in zwei Transaktionen gleich ist. Die Wahrscheinlichkeit dafür ist 2^(-256). Dies ist weniger wahrscheinlich, als dass Sie jetzt von einem Meteoriten getroffen werden, während Sie diesen Satz lesen.

  1. Die Zufallszahl 'k', aus der der 'R'-Wert abgeleitet wird, bleibt verborgen

Wie bereits gezeigt, kann der private Schlüssel, sobald die Zufallszahl „k“ bekannt ist, zurückentwickelt werden. Beim Signieren von Transaktionen aus dem gesperrten Konto generiert jeder Storeman-Knoten nur einen Anteil der Zufallszahl „k“. Da jede Freigabe über sichere Kanäle überträgt, kann kein Storeman-Knoten den vollen Wert der Zufallszahl „k“ wiederherstellen.

Mit anderen Worten, dank des SMPC-Designs von Wanchain bleibt die Zufallszahl „k“, die verwendet wird, um den „R“-Wert abzuleiten, immer verborgen. Die gesperrten Konten, die in den branchenführenden Cross-Chain-Brücken von Wanchain verwendet werden, sind äußerst sicher. Es besteht keine Möglichkeit, dass der private Schlüssel verloren geht.

Urteil

Das Wanchain-Forschungs- und Entwicklungsteam ist sich nicht einig, dass der AnySwap-Hack ein allgemeines Risiko für andere Projekte darstellt, die SMPC einsetzen. Das F&E-Team von Wanchain sieht in Abstimmung mit anderen Entwicklern in der gesamten Branche, die SMPC implementiert haben, die Schwachstellen oder Fehler, die den AnySwap-Hack ermöglicht haben, nicht als allgemeines Risiko an.

Das Team möchte auch die wichtige Rolle hervorheben, die Zufallszahlen in der Blockchain spielen. Zufallszahlen werden nicht nur zum Signieren von Transaktionen verwendet. Sie werden auf mehreren Ebenen des technischen Designs verwendet und sind wichtige Bestandteile von PoS Consensus und Shard-Algorithmen, die direkt die Sicherheit eines Blockchain-Netzwerks bestimmen.

Die effiziente Erzeugung zuverlässiger Zufallszahlen ist keine einfache Aufgabe. Es ist der heilige Gral ganzer Bereiche der Mathematik und Kryptographie. Geniale Menschen haben ihr Leben und ihre Gedanken der Optimierung der Zufallszahlengenerierung gewidmet.

Blockchain-Entwickler auf der ganzen Welt müssen diese Tradition fortsetzen und besser verteilte Zufallszahlengenerierungsalgorithmen entwickeln, während sie gleichzeitig die Zufallszahlenerzeugung in der Kette weiter optimieren. Die Zukunft von DeFi – und der Blockchain insgesamt – wird auf der heute geleisteten Arbeit aufbauen.

Offenlegung: Dieser Artikel wurde vom Wanchain R&D-Team verfasst.

Quelle

Free Bitcoins: FreeBitcoin | BonusBitcoin

Coins Kaufen: Bitcoin.deAnycoinDirektCoinbaseCoinMama (mit Kreditkarte)Paxfull

Handelsplätze / Börsen: Bitcoin.de | KuCoinBinanceBitMexBitpandaeToro

Lending / Zinsen erhalten: Celsius NetworkCoinlend (Bot)

Cloud Mining: HashflareGenesis MiningIQ Mining

By continuing to use the site, you agree to the use of cookies. more information

The cookie settings on this website are set to "allow cookies" to give you the best browsing experience possible. If you continue to use this website without changing your cookie settings or you click "Accept" below then you are consenting to this.

Close