2-von-3-Multisig mit Schnorr-Signaturen

Soweit ich weiß, erlauben Schnorr-Signaturen n-von-n-Multisignatur-Transaktionen, m-von-n ist jedoch nicht möglich, wenn nur der Schlüsselpfad verwendet wird.

Oder ist es?

Angenommen, wir brauchen ein 2-von-3-Schema. Soweit ich das beurteilen kann, können wir ein 3-von-3-Schema verwenden und jeder Partei einfach zwei der drei Schlüssel so geben, dass zwei beliebige Parteien kombiniert alle drei Schlüssel haben. (Eine Partei erhält Schlüssel A und B, eine andere erhält B und C und die letzte erhält A und C.)

Würde diese Methode funktionieren? Gibt es ein Problem, das ich nicht sehe?

Antworten (1)

Soweit ich weiß, erlauben Schnorr-Signaturen n-von-n-Multisignatur-Transaktionen, m-von-n ist jedoch nicht möglich, wenn nur der Schlüsselpfad verwendet wird.

Das ist nicht ganz richtig. Schnorr-Signaturen, wie in BIP340 beschrieben, sind reine 1-Schlüssel-1-Signaturen.

Es gibt alternative Schemata, die mit der BIP340-Validierung kompatibel sind.

  • Einer ist MuSig (1,2,DN), der n-von-n-Signaturen erlaubt, die gegen einen einzigen aggregierten öffentlichen Schlüssel verifizierbar sind, der die Übereinstimmung aller Teilschlüssel darstellt.
  • Ein anderes ist FROST, das willkürliche k-von-m-Schwellenwerte zulässt, die ebenfalls anhand eines einzigen Schlüssels verifizierbar sind. Es erfordert jedoch ein interaktives Setup, bei dem die (potenziellen) Mitunterzeichner zusammenarbeiten müssen (während sie Zugriff auf ihre privaten Schlüssel haben), um den aggregierten Schlüssel zu erstellen, sodass es beispielsweise nicht kompatibel ist, eine Multisig-Brieftasche zu haben, deren Adressen im laufenden Betrieb abgeleitet werden mit BIP32-Schlüsseln. Es fehlt auch an Rechenschaftspflicht: Sie können im Nachhinein nicht feststellen, welche Parteien unterzeichnet haben.

Angenommen, wir brauchen ein 2-von-3-Schema. Soweit ich das beurteilen kann, können wir ein 3-von-3-Schema verwenden und jeder Partei einfach zwei der drei Schlüssel so geben, dass zwei beliebige Parteien kombiniert alle drei Schlüssel haben. (Eine Partei erhält Schlüssel A und B, eine andere erhält B und C und die letzte erhält A und C.)

Würde diese Methode funktionieren? Gibt es ein Problem, das ich nicht sehe?

Ja, das ist möglich. Wenn Sie alle 3 Schlüssel auf einem Computer generieren, erhalten Sie ein etwas uninteressantes Sicherheitsmodell, da Sie anscheinend alle 3 einen Computer haben, dem Sie vertrauen, dass er die Schlüsselgenerierung ehrlich durchführt. Sie könnten wahrscheinlich auch zustimmen, dass diese Maschine das Signieren übernimmt.

Eine Variante von dem, was Sie vorschlagen, ist vielleicht interessanter: Jede der 3 Parteien generiert 1 Schlüssel und gibt den privaten Schlüssel an ihren rechten Nachbarn weiter. Jetzt hat jede Teilmenge von 2 von ihnen alle 3 Schlüssel.

Es gibt noch weitere Schemata wie dieses. Das einfachste ist ein unerklärliches 1-von-n-Schema mit interaktivem Aufbau: Eine Partei generiert einen neuen Schlüssel und gibt ihn an alle anderen weiter. Erledigt.

Ich empfehle jedoch nicht, dies zu verwenden, obwohl es täuschend einfach ist, steckt der Teufel im Detail, um solche Schemata sicher zu machen, und Sie sind wahrscheinlich besser dran, stattdessen FROST oder etwas Ähnliches zu verwenden, da es gut analysiert ist.

Wenn Sie Verantwortlichkeit oder ein nicht interaktives Setup wünschen (die Möglichkeit, Adressen zu generieren, ohne die Cosigner-Schlüssel online zu haben), ist keiner dieser Ansätze ausreichend, und Sie sollten wahrscheinlich (im Kontext von BIP341) einen Baum verwenden, in dem jedes Blatt a ist 2-von-2-Musikaggregat von 2-von-3-Untergruppen.