Der entsprechende Merkle-Nachweis muss beim Entsperren von UTXO mit MAST erbracht werden, wobei der Hash eines nicht verwendeten Skripts enthalten ist. Für die Beobachtung scheint es möglich, das ungenutzte Skript aus dem Hash zu erraten. Zum Beispiel könnte ich einige öffentliche Schlüssel aus dem Skript erhalten, das tatsächlich ausgeführt wird, und dann kombiniere ich einen davon mit einigen Zeitsperren, um zu versuchen, Hash-Kollisionen durchzuführen.
Das Hinzufügen von Salz zum Skript scheint dies leicht zu verhindern, also warum hat Taproot dies nicht getan? Liegt das daran, dass die oben beschriebene Hash-Kollision im Grunde nicht durchführbar ist und das Hinzufügen von Salz zusätzlichen Zeugenraum beansprucht?
Im Allgemeinen sollte dies kein Problem sein, da jedes Skript mit ziemlicher Sicherheit mindestens einen öffentlichen Schlüssel enthält und Sie in jedem Zweig neue öffentliche Schlüssel verwenden können.
Wenn Sie sich immer noch Sorgen um die Privatsphäre des offenbarten Skripts machen, können Sie die darin enthaltenen öffentlichen Schlüssel manuell mit einem Geheimnis optimieren, das von allen Teilnehmern geteilt wird (z. B. der Hash der Verkettung aller darin enthaltenen Skripte vor dem Optimieren). Oder Sie können sogar zusätzliche Daten hinzufügen, indem Sie einen Push-Opcode und OP_DROP verwenden.
Salts werden für Dinge wie die Speicherung von Passwörtern verwendet, bei denen mehrere Benutzer möglicherweise dasselbe Passwort verwenden. Durch die Verwendung eines Salts verschleiert es für einen Beobachter der Datenbank, welche Benutzer aufgrund unterschiedlicher Salts dasselbe Passwort verwenden. Die einzige Motivation für die Verwendung eines Salt in Taproot-Skripten wäre, wenn Benutzer dieselben Taproot-Skripte verwenden würden. Aber zumindest werden die öffentlichen Schlüssel der Benutzer unterschiedlich sein (es sei denn, sie verwenden denselben privaten Schlüssel), und daher sind keine Taproot-Skripte gleich, es sei denn, sie werden von demselben Benutzer kontrolliert.
Zu sagen, dass die offensichtlichen Benutzer nicht dasselbe Passwort (schreckliche Passworthygiene) für Nicht-Bitcoin-Dienste verwenden sollten, aber es ist noch ernster für Bitcoin. Wenn Benutzer keinen privaten Bitcoin-Schlüssel mit ausreichender Entropie generieren, wird ihr Bitcoin wahrscheinlich gestohlen.
Für die Beobachtung ist es möglich, das ungenutzte Skript aus dem Hash zu erraten.
Es ist nicht möglich, das Urbild einer sicheren Hash-Funktion zu erraten. Es kann nur durch rohe Gewalt (Ausprobieren vieler möglicher Vorbilder) erreicht werden, aber es gibt so viele mögliche Vorbilder, dass es ist, als würde man nach einer Nadel im Heuhaufen suchen.
sphpmp
Michael Folkson
sphpmp
Michael Folkson
sphpmp
sphpmp
Pieter Wuille