FROST ist ein Protokoll für Schwellenwert-Schnorr-Signaturen, also gemeinsam erzeugte digitale Signaturen. Der Schwellenwert legt fest, wie viele Inhaber verschiedener Anteile eines gemeinsamen geheimen Schlüssels mindestens zusammenarbeiten müssen. Ein geheimer Schlüssel ist eine Zahl, die zum Erstellen einer Signatur benötigt wird; hier verwenden die Beteiligten beim Signieren stattdessen ihre einzelnen Anteile. Das Ergebnis lässt sich mit einem einzigen öffentlichen Gruppenschlüssel prüfen. Dieser darf weitergegeben werden und ermöglicht allein kein Signieren. Der Name steht für Flexible Round-Optimized Schnorr Threshold; FROST ist weder eine Wallet noch eine neue Art von Bitcoin.
Stellen wir uns einen Verein vor, dessen Rücklagen Anna, Jan und Eva verwalten. Sie wählen die Regel 2 von 3: Anna und Jan, Anna und Eva oder Jan und Eva können eine Zahlung freigeben. Alle besitzen einen anderen geheimen Anteil, also einen kryptografisch erzeugten Teil des gemeinsamen Schlüsselmaterials. Ein Anteil genügt nicht; es sind aber auch keine drei Kopien desselben Passworts. Ist Eva nicht erreichbar, können die anderen beiden zusammenarbeiten. Dieselbe Grenze gilt für einen Angreifer: Erlangt er genügend Anteile, kann auch er signieren. Die Verteilung hilft deshalb nur, wenn ein kompromittiertes Gerät oder Konto nicht zugleich den Zugang zu allen anderen eröffnet. [1] [2]
Anna sollte einen Vorgang nicht allein deshalb bestätigen, weil die App eine ausstehende Signatur meldet. Sie muss Empfänger, Betrag und Gebühr kennen und prüfen, ob etwaiges Wechselgeld an den Verein zurückgeht. Jeder Unterzeichner braucht eine vertrauenswürdige Möglichkeit, die tatsächliche Transaktion zu überprüfen. Ein Hash, ein kurzer kryptografischer Fingerabdruck von Daten, erklärt einem Menschen deren Inhalt nicht. FROST ermöglicht die Zusammenarbeit an derselben Nachricht; es beurteilt weder die Echtheit einer Rechnung noch das Verständnis der zustimmenden Person. Selbst eine fertige Signatur ist noch keine Zahlungsbestätigung in einem Block. Ein Block ist eine Gruppe von Transaktionen in der gemeinsamen Historie des Bitcoin-Netzwerks. RFC 9591 ist eine informative Protokollspezifikation, kein Sicherheitszertifikat für eine gesamte Anwendung. [1] [2]
Taproot ist eine Bitcoin-Erweiterung, mit der sich Mittel entweder durch eine Signatur zum zugehörigen Schlüssel oder durch das Erfüllen vorher festgelegter Bedingungen ausgeben lassen. Eine passend konstruierte Schwellenwertsignatur kann beim Ausgeben über den Schlüsselpfad von Taproot wie eine gewöhnliche Signatur eines einzelnen Schlüssels aussehen. Aus der Signatur allein lassen sich weder die interne Anzahl der Anteile noch der Schwellenwert ablesen. Das hilft bei der Privatsphäre und der Größe der Signaturdaten, macht aber weder die gesamte Transaktion noch die Kommunikation unter den Beteiligten anonym. Bitcoin verlangt die genauen Regeln von BIP 340; allgemeines FROST auf der Kurve secp256k1, der mathematischen Grundlage für Berechnungen mit Bitcoin-Schlüsseln, reicht nicht aus. Zcash Foundation (ZF) bietet deshalb frost-secp256k1-tr eigens für Taproot an. Auch dessen Schlüsselanpassungen müssen korrekt umgesetzt werden. Ein identischer Kurvenname beweist keine Kompatibilität, und eine verfügbare Bibliothek bedeutet noch keine Unterstützung in jeder Wallet. [3] [4]
Bevor der Verein etwas signiert, muss er die Anteile sicher erzeugen. Ein vertrauenswürdiger Verteiler kann den vollständigen Schlüssel erstellen und aufteilen. Dabei entsteht ein kritischer Moment: Er kennt den gesamten Schlüssel, und eine aufbewahrte Kopie könnte die vorgesehene gemeinsame Freigabe umgehen. Die Alternative ist DKG, die verteilte Schlüsselerzeugung, bei der der vollständige geheime Schlüssel bei keinem einzelnen Teilnehmer vorliegen muss. Dafür sind authentifizierte, geschützte Kommunikation und eine korrekte Ausführung des Protokolls erforderlich. Ein paar Dateien per E-Mail zu verschicken genügt nicht. RFC 9591 konzentriert sich auf das Signieren und verspricht nicht automatisch DKG in jedem Produkt. Ein langfristiger Schlüsselanteil ist außerdem etwas anderes als ein Signaturanteil für eine bestimmte Zahlung. [1] [2]
Das eigentliche Signieren benötigt zwei Runden; die vorherige Schlüsselerzeugung zählt nicht dazu. Zunächst erzeugt jeder ausgewählte Teilnehmer zwei geheime Einmalwerte, sogenannte Nonces, und übermittelt deren öffentliche Commitments. Diese Werte binden ihn kryptografisch an seine Nonces. Anschließend erhält er die gemeinsame Nachricht samt Commitment-Liste, prüft die Unterlagen und berechnet seinen Signaturanteil. Der Koordinator fügt die Anteile zusammen. Bindungsfaktoren verknüpfen die Berechnungen mit der konkreten Nachricht, dem öffentlichen Gruppenschlüssel und den Commitments. Bei einer Regel 2 von 3 kann eine Sitzung mit zwei Teilnehmern beginnen. Werden dafür jedoch alle drei ausgewählt, müssen auch alle beitragen; ein verstummter Teilnehmer lässt sich nicht einfach weglassen. [1] [3]
Eine Nonce ist hier ein geheimer Wert für genau einen Signaturversuch, kein Passwort zur wiederholten Verwendung. Ihre Wiederverwendung kann geheimes Schlüsselmaterial offenlegen. Stürzt Jans Computer nach dem Senden eines Signaturanteils ab, darf die Wiederherstellung eines alten Zustands bereits verbrauchte Nonces nicht wieder als frisch markieren. Auch eine unvollendete Zahlung rechtfertigt keine Wiederverwendung. Eine sichere Implementierung benötigt hochwertige Zufälligkeit, getrennte parallele Versuche und die zuverlässige Aussonderung verbrauchter Werte. Deshalb sollte man FROST nicht selbst aus beliebigen Skripten zusammenbauen. Korrekte Mathematik allein schützt nicht vor falschem Umgang mit geheimen Daten. [1]
Der Koordinator organisiert Nachrichten, doch diese Rolle allein erlaubt ihm nicht, für den Verein zu signieren. Er braucht Beiträge der ausgewählten Inhaber der Schlüsselanteile. Er kann allerdings Nachrichten zurückhalten oder eine Sitzung abbrechen; auch ein ungültiger Beitrag eines Teilnehmers kann sie scheitern lassen. Prüfungen können einen ungültigen Signaturanteil erkennen. Um den Fehler einer bestimmten Person zuzuordnen, muss die Herkunft der Nachrichten verlässlich bekannt sein. Die Fehlererkennung garantiert noch keinen Abschluss. Ein neuer Versuch braucht eine verfügbare berechtigte Gruppe und frische Nonces. Der Verein benötigt daher auch einen Plan für Ausfälle und Meinungsverschiedenheiten, nicht nur eine Schwellenwertangabe auf dem Startbildschirm. [1] [2]
Verliert Eva ihr Gerät, stellt die Aufschrift FROST ihre Mittel nicht von selbst wieder her. Eine Sicherung muss ihren Anteil, ihre Kennung, nötige Gruppendaten und die Möglichkeit erhalten, alles in kompatible Software einzulesen. Das ist nicht automatisch eine gewöhnliche Seed Phrase, also eine Wortfolge zur Wallet-Sicherung. Die Wiederherstellung eines Anteils mithilfe anderer und die Erneuerung von Anteilen sind zusätzliche Verfahren, die das konkrete System unterstützen muss. Eine Kopie von Evas Anteil bleibt derselbe Anteil und schafft keine unabhängige Stimme. Auch die Erneuerung unter demselben Gruppenschlüssel neutralisiert keinen ausreichenden Satz früher gestohlener Anteile. Vor dem Einsatz echter Rücklagen sollte eine Probe deshalb Wiederherstellung, Ausfälle und die genaue Softwareversion umfassen, nicht nur eine erfolgreiche Signatur. [2] [3]
Für ein möglichst vollständiges Bild lies diesen Eintrag zusammen mit Schnorr Signature, MuSig2, Multisig, Taproot, Shamir Secret Sharing, Bitcoin.