Stavo rivedendo le note di design di mezzanotte, cercando principalmente di riconciliare come posizionano "proprietà dei dati" con il flusso di esecuzione reale. Penso che molte persone lo riducano a "zk = privacy", ma in realtà non è proprio ciò che sta accadendo qui. È più vicino a una visibilità controllata, dove le prove forzano ciò che può essere verificato senza esporre lo stato sottostante.
Una cosa che spicca è il loop di calcolo off-chain + verifica on-chain. Abbastanza standard nei sistemi zk, ma qui sembra strettamente accoppiato con dati collegati all'identità. Ad esempio, un contratto potrebbe dimostrare l'idoneità (ad esempio, la solvibilità) senza rivelare input grezzi. Questo è convincente, ma dipende anche fortemente da come vengono gestiti quegli ancoraggi di identità... il che non è del tutto chiaro.
Poi c'è il controllo degli accessi a livello di circuito. Invece di convalidare solo le transizioni di stato, i circuiti definiscono chi può vedere gli output. Idea potente, ma sembra che sposti molta responsabilità sul design del circuito stesso. Gli errori lì non sono banali.
Non sono nemmeno del tutto sicuro di come NIGHT fluisca tra gli attori — validatori, relayer, forse provers? Il livello di incentivo sembra implicato più che specificato.
Onestamente, ciò che manca è la discussione attorno all'interoperabilità. Se queste prove sono altamente specifiche per le app, la composabilità potrebbe risentirne.
Ecco la tensione... tutto questo si basa su un'infrastruttura zk che matura abbastanza rapidamente.
Guardando:
– come l'identità è ancorata e riutilizzata
– separazione dei ruoli prover/validator
– standard di auditabilità dei circuiti
– composabilità tra app
Sto ancora cercando di capire se questo scala in modo pulito o si frammenta rapidamente
$NIGHT @MidnightNetwork #night
