Beschränken Sie die Brieftasche auf das Senden von Geldern an eine Liste von Adressen

Stellen Sie sich ein Szenario vor. Es gibt 3 Parteien: Partei A, Partei B und eine Vermittlerpartei C. A und B übertragen jeweils 1 BTC auf eine neu erstellte Brieftasche W, die C gehört. Die Funktion von C besteht darin, die gesamten 2 BTC je nach Bedarf entweder an A oder B zu verteilen unter bestimmten Bedingungen (denken Sie an eine Wette). Stellen Sie sich nun vor, C wird kompromittiert und sein privater Schlüssel wird von einem Hacker gestohlen. Der Hacker kann nun 2 BTC an jede beliebige Adresse senden. Ist es möglich, Wallet W darauf zu beschränken, Gelder nur an A oder B zu senden? Selbst wenn es kompromittiert ist, kann der Hacker also nur Gelder an A oder B senden und nicht an eine beliebige Adresse.

Antworten (1)

Absolut.

  1. Der Vermittler C erstellt eine Adresse.

  2. Nachdem die Wettzahlung(en) getätigt wurden, erstellt C zwei Transaktionen. Einer zahlt an A und der andere an B. Beide Transaktionen hält er geheim. Dann zerstört er den privaten Schlüssel für die Adresse.

  3. Je nachdem, wer gewinnt, veröffentlicht der Mediator eine der Transaktionen.

Ein Angreifer kann die Bitcoins nicht an sich selbst senden, aber er kann wählen, wer die Wette gewinnt, oder beide Transaktionen zerstören.

Nachteile

Wenn zusätzliche Zahlungen an die Adresse von C erfolgen, nachdem er seinen privaten Schlüssel zerstört hat, gehen diese Bitcoins verloren. Dies könnte abgemildert werden, indem die Adresse ein 1-von-2-Multisignaturkonto ist, bei dem einer der Schlüssel ein Offline-Schlüssel ist, der vom Betreiber des Dienstes gehalten wird.

Der Dienst ist zwischen dem Zeitpunkt, zu dem er die Adresse veröffentlicht, und dem Zeitpunkt, zu dem er die Transaktionen erstellt und signiert, angreifbar. Sie können die Transaktionen in Schritt zwei auch nicht erstellen, bevor Sie die eingehenden Transaktionen sehen, da diese von der txid abhängen, die Sie ausgeben möchten.

Wow, das ist eine tolle Erklärung. Danke. Ist es möglich, eine 1-von-2-Multisig-Adresse zu erstellen, ohne den zweiten „Master“-Schlüssel aus dem Offline-Speicher zu nehmen?
Ein weiteres Problem ist, dass C keine Möglichkeit hat zu beweisen, dass der private Schlüssel wirklich zerstört wurde. Er könnte absichtlich oder unabsichtlich eine Kopie behalten haben, die später gestohlen oder missbraucht werden könnte.