Ich versuche den Anwendungsfall einer veröffentlichten Förderadresse auf einer Webseite zu klären, an die jeder ausgeben kann. Intern in unserem Unternehmen möchte ich vermeiden, dass eine einzelne Person diese Mittel ausgeben kann. Es bedarf mehr als einer Unterschrift, um die Mittel ausgeben zu können. Ich hatte die Idee, eine Multisig-Adresse zu verwenden, aber dies scheint nicht erfolgreich zu sein. Die vielen Stackexchange-Links decken dieses Szenario nicht ab, sie scheinen alle abzudecken, wie man von msig-Adressen ausgibt ...
Wenn Sie eine Multisig-Adresse verwenden, sieht es so aus, als ob Ausgaben an diese Adresse das Einlöseskript erfordern. Alle Beispiele, die ich gefunden habe, verwenden das Redeemscript. Das ist also irgendwie ein No-Go für eine Multisig-Adresse auf einer Webseite?
Was ich bisher gemacht habe: - Ich dachte, dass "Leute" von einer normalen Brieftasche (auch bekannt als P2PKH-Skript) an die msig-Adresse senden könnten. Das funktioniert nicht, da das Pubkey-Skript auf dem Stack kein "true" finden würde. Angesichts eines Standard-Pubkey-Skripts würde s.th. so was:
DUP HASH PKH EQ_VFY CHK_SIG
| | | | |
| | | PKHASH | |
| PK | PKHASH | PKHASH | |
PK? | PK | PK | PK | PK |
SIG | SIG | SIG | SIG | SIG | TRUE/FALSE
Die erste Spalte (SIG und PK?) ist das Sigscript. Für die Multisig-Adresse steht in der ersten Spalte kein öffentlicher Schlüssel. Natürlich könnte ich ganz am Anfang mit dem Redeem-Skript spielen und es hashen, um das "OP_EQUALVERIFY" zu erfüllen. Aber dann würde das Skript am Ende nicht "TRUE" beenden, weil es die Sig und einen "gehashten" Hash auf dem Stapel hinterlassen würde.
Ich könnte das Erlösungsskript veröffentlichen. Nachteil: Dies erschwert die Benutzererfahrung
Ich könnte einen Std verwenden. P2PKH-Adresse, und "leiten" regelmäßig die Gelder von der Webseite P2PKH-Adresse an eine Multisig im Hintergrund weiter. Nachteil: bei laufenden Gebühren fast idiotisch, wenn nur kleine Beträge ausgegeben werden. (Ja, ich könnte Code schreiben, um zu sammeln, bis der ausgegebene Betrag >= TX-Gebühren ...)
Gibt es eine einfache (intelligentere) Möglichkeit, Bitcoin-Zahlungen auf einer Website zu erhalten, die mit der Bedingung verbunden sind, dass sie nur mit mehreren Unterschriften ausgegeben werden?
Wo sehen Sie, dass Multisig-Adressen das Einlösungsskript haben müssen, um sie zu bezahlen? Das Einlöseskript ist nur für Ausgaben von einer Multisig-Adresse erforderlich, es ist nicht erforderlich, wenn Sie an eine ausgeben. Multisig-Adressen (auch bekannt als P2SH-Adressen) beginnen mit einer 3. Ihr Anwendungsfall scheint nichts Besonderes zu erfordern, nur ein typisches m-of-n-Multisig, das viele Wallets können.
Wollen Sie damit sagen, dass es schwierig ist, weil der Benutzer seine eigene Transaktion manuell signieren müsste? P2SH ist nicht wirklich auf einer "typischen" Benutzerebene. Damit Multisig wie beabsichtigt funktioniert, wird davon ausgegangen, dass jeder potenzielle Unterzeichner weiß, wie eine Transaktion zu unterzeichnen ist. Eine Website, die von ihren Benutzern verlangen würde, ihre eigenen P2SH-Transaktionen zu unterzeichnen, hätte eine ziemlich kleine Zielgruppe. Abgesehen von der Erstellung Ihrer eigenen nativen Desktop-App, die das Multisig-Signieren für den durchschnittlichen Benutzer vereinfacht, bin ich mir nicht sicher, welche anderen Optionen Sie hätten.
Ich glaube, ich habe einen Weg gefunden, das zu tun, was ich brauche. Ich biete einen QR-Code mit der Adresse und dem Einlösungsskript an, jeweils in einer eigenen Zeile. Ich verstehe, dass die Brieftaschen es möglicherweise nicht verstehen, und es gibt keine "automatische" Erstellung der Transaktion. Aber es ist ein Schritt in die richtige Richtung, ausreichend für mich.
Pieter Wuille