ETFFIN Finance >> Finanzbildung >  >> Kryptowährung >> Blockchain

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

Als die Ethereum-Gasgebühren während der Hausse 2021 auf Rekordhöhen stiegen, viele dezentralisierte Finanzprotokolle (DeFi) für Gelegenheitsbenutzer unbrauchbar machen, mehrere Projekte wurden gezwungen, auf anderen Ketten bereitzustellen.

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

Wie zu erwarten ist, Die steigende Nachfrage nach Cross-Chain-Brücken führte zum Aufkommen einer neuen Welle von Protokollen mit unterschiedlichem Ruf. Da Cross-Chain-Brücken einen immer wertvoller werdenden Pool von Benutzerressourcen bedienten, Es war nur eine Frage der Zeit, bis böswillige Akteure und Hacker dies bemerkten.

Allgemein gesagt, Hacker werden 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 zusammenzufassen, nur im Monat Juli 2021:

  • ChainSwap erlitt am 2. Juli einen Hack. im Wert von etwa 800.000 US-Dollar an Benutzervermögen.
  • AnySwap V3-Liquiditätspools wurden am 10. Juli gehackt. 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. Dieses Mal 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 Editorials besteht darin, aufzuklären und vorzustellen, im relativen Detail, zwei oft ignorierte, aber wichtige Elemente dezentraler Cross-Chain-Brücken:die Zufallszahl „k“, die an Secure Multi-Party Computation (SMPC) beteiligt ist, und ihr Derivat „R“.

Der AnySwap Hack:Zwei ist nicht immer besser als eins

Angeblich, Der AnySwap-Hack geschah, 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, exakt, 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 Ihrer Brieftasche von Ihrem privaten Schlüssel kontrolliert werden.

Sie alle haben den Satz gehört:„nicht Ihre Schlüssel, nicht deine 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. In der Tat, Um Geld von einem Konto auf ein anderes zu überweisen, müssen Sie lediglich eine Transaktion mit dem privaten Schlüssel dieses Kontos unterzeichnen.

Derzeit, Der in Blockchains verwendete Standardalgorithmus für digitale Signaturen ist 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, „nicht-deterministische“ Algorithmen können unterschiedliche Ausgaben erzeugen, selbst wenn sie die gleiche Eingabe erhalten. Für ECDSA, Dies bedeutet, dass derselbe Datensatz, oder Transaktion, wird mehrere rechtsgültige Unterschriften haben.

Jedes Mal, wenn eine Transaktion mit ECDSA unterzeichnet wird, eine kryptographisch sichere Zufallszahl ‚k‘ wird generiert. „k“ wird dann verwendet, um einen Punkt auf der elliptischen Kurve zu berechnen, der im Gegenzug, wird verwendet, 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 unterzeichnen, der 'R'-Wert von zwei Transaktionen ist 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.

Nächste, Lassen Sie uns untersuchen, wie der AnySwap-Hacker den privaten Schlüssel, der das Cross-Chain-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, der „R“-Wert der beiden Transaktionen ist ebenfalls gleich. Nennen wir diese beiden Signaturen (s1) und (s2).

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

wo S1, S2, und „R“ repräsentieren Signaturdaten und repräsentieren Transaktionsdaten. 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. Dies impliziert, dass in beiden die gleiche Zufallszahl „k“ verwendet wurde. Dies ermöglichte es dem Hacker, den privaten Schlüssel, der das Cross-Chain-MPC-Konto von AnySwap steuert, 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. Deutlich, ‚k‘ wurde nicht zufällig generiert! Wie hätte dies also vermieden werden können?

Die Notwendigkeit einer sicheren Mehrparteien-Berechnung

Im Vergleich zu einfachen Transaktionssignaturen Secure Multi-Party Computation (SMPC) ist in der Tat recht komplex. Jedoch, der zusätzliche aufwand lohnt sich. Wenn SMPC – was ist sehr anders als Mehrfachsignaturen – wird richtig verwendet, um echte Zufallszahlen zu generieren, Es besteht keine Gefahr, dass die Zufallszahl „k“ exponiert wird.

Bei der Nutzung von SMPC, der Unterzeichner keine Einzelperson mehr ist, aber mehrere Personen arbeiten zusammen, um Transaktionen zu unterzeichnen.

Mit grundlegenden Transaktionssignaturen, allein ein echter Zufallszahlengenerator reicht aus, um den „R“-Wert zu generieren und die Sicherheit zu garantieren. Jedoch, weil SMPC mehrere unabhängige Parteien umfasst, es besteht immer die Gefahr, dass eine oder mehrere dieser Parteien böswillig sind.

Als solche, Es ist nicht vernünftig, 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“ kontrollieren und im Gegenzug, der „R“-Wert, Sie werden in der Lage sein, den privaten Schlüssel des Kontos zurückzuentwickeln und Vermögenswerte zu stehlen. Deswegen, Bei der Verwendung von SMPC zur Generierung des „R“-Wertes sind drei Prinzipien zu beachten:

  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 der Laien, SMPC erfordert, dass eine Gruppe von Personen zusammen an einer Aufgabe arbeitet, ohne zu wissen, woran sie gerade arbeiten. noch mit wem sie arbeiten.

SMPC Standard-Setter:Wanchains öffentlich überprüfbares geheimes 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.

Wenn Sie Transaktionen vom gesperrten Konto aus unterschreiben, der „R“-Wert wird 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, Aktien genannt. Das Geheimnis kann mit einer Mindestanzahl von Aktien rekonstruiert werden. Shamirs Secret Sharing wird häufig in der Kryptographie verwendet.
  3. Nachdem Sie die geheimen Freigaben von den anderen Knoten erhalten haben, jeder Storeman-Knoten sammelt 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, Das Kernkonzept ist ganz 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, noch wer die anderen Storeman-Knoten sind.

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

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

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

Dafür gibt es zwei Hauptgründe. Zuerst, der „R“-Wert wird gemeinsam von 25 Storeman-Knoten bestimmt, eher als ein Individuum. In der Theorie, solange es einen einzigen ehrlichen Knoten gibt, der 'R'-Wert ist zufällig. Zweite, Der Beitrag jedes Storeman-Knotens wird vom echten Zufallszahlengenerator generiert.

Kombiniert, zwei Transaktionen haben nur dann denselben 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. wie Sie diesen Satz lesen.

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

Wie bereits gezeigt, sobald die Zufallszahl „k“ bekannt ist, der private Schlüssel kann nachgebaut werden. Wenn Sie Transaktionen vom gesperrten Konto aus unterschreiben, jeder Storeman-Knoten generiert nur einen Anteil der Zufallszahl ‚k‘. Da jede Aktie über sichere Kanäle übertragen wird, kein Storeman-Knoten kann den vollen Wert der Zufallszahl ‚k‘ wiederherstellen.

Mit anderen Worten, dank des SMPC-Designs von Wanchain, die Zufallszahl 'k', aus der der 'R'-Wert abgeleitet wird, bleibt 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 Wanchain-Forschungs- und Entwicklungsteam, in Abstimmung mit anderen Entwicklern in der gesamten Branche, die SMPC implementiert haben, betrachtet die Schwachstellen oder Fehler, die den AnySwap-Hack ermöglicht haben, nicht als allgemeines Risiko.

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 Komponenten von PoS-Konsens- 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 Teile der Mathematik und Kryptographie. Geniale Menschen haben ihr Leben und ihren Verstand 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 Zufallszahlengenerierung 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.