Ich habe mir angesehen, wie Phoenix mit ausgegebenen (spent) Notizen umgeht, und erwartet, dass Nullifier einfach stillschweigend alte UTXOs ungültig machen und man dann weitermacht. Dieses mentale Modell geben einem transparente Chains: Ein Spend passiert, der Datensatz wird aktualisiert, alte Daten werden irrelevant.

Aber so ist es hier nicht. Die alte Notiz verschwindet nicht. Ihr Hash bleibt dauerhaft im Merkle-Baum der Notizen – ob sie ausgegeben ist oder nicht, das Blatt ist immer noch da. Denn der Baum ist append-only, und das Netzwerk kann eine Notiz nicht gezielt wegprunen, ohne offenzulegen, welche echten Spends existieren und welche nur Decoys sind. Der Nullifier ist das, was die Notiz für die Zukunft ungültig macht, und er ist absichtlich so konstruiert, dass kein Beobachter einen Nullifier mit der Notiz verknüpfen kann, aus der er stammt.

Das hat mich innehalten lassen: Privatsphäre wird hier nicht dadurch erreicht, dass Informationen gelöscht werden, sondern dadurch, dass Informationen gesammelt werden, die sich nicht korrelieren lassen. Der Baum wächst nur. Jede Wallet, die von Grund auf synchronisiert, muss einen Notizensatz durchlaufen, der größer ist als die tatsächlich für sie relevante, ungespendete Balance – ausgegebene Notizen sind dabei tote Last, die sie trotzdem verarbeiten muss, um die Mitgliedschaft korrekt nachzuweisen.

Das ist nicht zwingend ein Fehler. Es ist der Preis dafür, dass Verknüpfungen rechnerisch bedeutungslos statt rechtlich verboten gemacht werden. Aber es bedeutet auch, dass Phoenix’ Vertraulichkeit mit dem Wachstum des Zustands skaliert – nicht dagegen. Das ist etwas, das man beobachten sollte, während die Nutzung weiter zunimmt. #dusk $DUSK @Dusk