Mitternacht gibt den Entwicklern zwei Möglichkeiten, einen Merkle-Pfad wiederherzustellen. Wenn die Blattposition bekannt ist, kann pathForLeaf() den Pfad direkt wiederherstellen. Wenn die App diese Position verloren hat, muss findPathForLeaf() nach dem Blatt suchen, und Mitternacht weist darauf hin, dass dies einen O(n)-Scan des Baumes erfordern kann.
Dieser Unterschied ist der Punkt, an dem private Mitgliedschaften weniger wie Kryptographie und mehr wie Produktdisziplin erscheinen.
Ein Benutzer öffnet eine App und versucht, eine Mitgliedschafts-gesteuerte Aktion durchzuführen, ohne zu verraten, welches Mitglied er ist. Die versteckte Menge existiert. Der Schaltkreis ist bereit. Der Zeuge sollte den Pfad abrufen, ihn in den Beweis einspeisen und die Aktion ausführen lassen. Aber wenn die App die Metadaten zur Einfügeposition nicht gespeichert hat, als dieses Mitglied hinzugefügt wurde, verlangsamt sich der Fluss, bevor der Beweis überhaupt mit der interessanten Arbeit beginnt. Der Knopf wird gedrückt. Die App pausiert. Der Zeuge fällt zurück zu findPathForLeaf(). Jetzt sucht das Produkt den Baum nach Daten, die es bereits gespeichert haben sollte.
Das ist der Engpass, der verändert hat, wie ich Mitternacht lese.

Mitternacht gibt den Bauherren bereits die richtigen Beweis-Seitenstücke: MerkleTreePath, merkleTreePathRoot und Zeugenhelfer, die den Pfad wiederherstellen und ihn in den Schaltkreis einfügen. Der Schwachpunkt liegt früher. Hat die App genug Off-Chain-Zustand gespeichert, um die private Mitgliedschaft günstig zu machen, wenn der Benutzer später zurückkommt, oder hat sie den Zeugen dazu gebracht, die Platzierung neu zu entdecken, die das Produkt bereits einmal erstellt hat?
Diese Bauherrnpflicht fühlt sich wichtiger an, als es auf den ersten Blick aussieht. Wenn ein verstecktes Mitglied eingefügt wird, muss die App die Blattposition beibehalten und diese Zuordnung für die nächste Aktion verfügbar halten. Sie kann die Platzierung nicht als temporären UI-Speicher behandeln. Sie muss Reloads, Wiederholungen und Rückkehr-Sitzungen überstehen. Wenn diese Disziplin locker ist, scheitert die private Mitgliedschaft nicht kryptografisch. Sie verschlechtert sich operationell. Der Beweis ist weiterhin möglich. Das Produkt wird nur langsamer, unordentlicher und fragiler, weil die Suche als Nachgedanke behandelt wurde.
Deshalb begann @MidnightNetwork für mich durch diesen genauen Winkel ernster zu erscheinen. Sein MerkleTree- und HistoricMerkleTree-Muster ermöglicht nicht nur versteckte Mitgliedschaft. Es legt die stille Unterstützungsarbeit offen, die der Datenschutz benötigt. Die Kette kann die Menge verborgen halten. Der Schaltkreis kann den Beweis anonym halten. Aber die App muss sich immer noch daran erinnern, wo das Mitglied innerhalb dieser verborgenen Struktur sitzt, oder der Benutzer muss für Datenschutz durch Wiederherstellungsarbeit bezahlen, die niemals hätte auftreten sollen.

Das ist auch der Punkt, an dem $NIGHT für mich konkreter wird. Eine Mitgliedschaftshandlung kann den DUST haben, den sie benötigt, die Transaktion kann vollständig finanziert sein, und der Beweis kann sich immer noch langsam anfühlen, weil die App die Indexdaten verloren hat, die die Wiederherstellung günstig machen. Der Benutzer wartet nicht, weil die Ausführung Ressourcen mangelt. Der Benutzer wartet, weil das Produkt die Metadaten vergessen hat, die es dem Zeugen ermöglichen sollten, den Pfad direkt wiederherzustellen. Finanzierte Ausführung bleibt immer noch unbeholfen, wenn die Indexierungsdisziplin stromaufwärts versagt.
Die Drucktestfrage, zu der ich immer wieder zurückkomme, ist einfach.
Kann @MidnightNetwork den Bauherren helfen, diese Last verschwinden zu lassen, bevor die O(n)-Wiederherstellung als normaler Datenschutzaufwand behandelt wird? Denn wenn nicht, wird die erste sichtbare Kosten der privaten Mitgliedschaft kein abstrakter Streit über das Datenschutzdesign sein. Es wird ein Benutzer sein, der einmal drückt und dann wartet, während die App nach dem sucht, was sie hätte erinnern sollen.
Um Mitternacht ist es nur die halbe Arbeit, zu verbergen, wer in der Menge ist.
Der schwierigere Teil besteht darin, nicht zu vergessen, wo sie sind.
#night $NIGHT @MidnightNetwork

