Tutto è un oggetto
Sui non memorizza una tabella di saldi. Memorizza oggetti, ciascuno con un identificatore unico, un tipo, una versione e un proprietario. Il suo SUI è detenuto in oggetti moneta. Il suo NFT è un oggetto. Una posizione di staking è un oggetto. Il codice che li definisce tutti vive in oggetti package.
Una transazione prende oggetti come input e produce oggetti come output, il che è più vicino al modello UTXO di Bitcoin che ai conti di Ethereum — eccetto che gli oggetti sono tipizzati e portano dati strutturati arbitrari piuttosto che solo valore.
Questo ha una conseguenza diretta sulle prestazioni e spiega la progettazione di Sui. Le transazioni che toccano insiemi disgiunti di oggetti non possono entrare in conflitto, quindi possono essere eseguite in parallelo senza ordinamento per consenso. Un semplice trasferimento di un oggetto che possiede esclusivamente non ha bisogno dell'accordo di tutta la rete sull'ordinamento, motivo per cui si finalizza in ben meno di un secondo.
Suiscan mostra questa struttura direttamente — ID di oggetto, tipi, versioni e proprietà — piuttosto che calcolare un saldo e presentarlo come la verità. Il saldo è una cifra derivata; gli oggetti sono lo stato.
Tre tipi di proprietà, tre tipi di velocità
Sui distingue la proprietà in un modo che la maggior parte delle chain non fa, e la distinzione determina come una transazione viene processata.
Gli oggetti posseduti appartengono a un singolo indirizzo. Solo quell'indirizzo può usarli, quindi le transazioni che toccano solo oggetti posseduti saltano il consenso completo e si finalizzano quasi immediatamente.
Gli oggetti condivisi possono essere usati da chiunque — un pool di liquidità, un libro degli ordini, un registro condiviso. Poiché più parti potrebbero cercare di modificarli simultaneamente, queste transazioni richiedono ordinamento per consenso e sono corrispondentemente più lente.
Gli oggetti immutabili non possono essere cambiati affatto. I package pubblicati sono immutabili, motivo per cui gli aggiornamenti di contratto Sui funzionano diversamente dai pattern di proxy EVM.
Suiscan etichetta il tipo di proprietà su ogni oggetto, e quel campo spiega perché una transazione è stata istantanea e un'altra ha richiesto più tempo. Senza un explorer che lo mette in evidenza, la differenza è semplicemente latenza imprevedibile senza spiegazione disponibile.
I package Move e un modello di aggiornamento diverso
Sui usa Move, un linguaggio progettato attorno a risorse che non possono essere copiate o scartate accidentalmente. Quella proprietà è imposta dal sistema di tipi piuttosto che dalla disciplina dello sviluppatore, il che elimina una categoria di bug che è stata costosa su altre chain.
Suiscan le permette di sfogliare i package pubblicati: moduli, funzioni pubbliche, definizioni di struct e firme di tipo. Per chiunque valuti cosa può fare un package, è l'equivalente di leggere una fonte verificata su Etherscan — ed è disponibile per default, perché i package sono pubblicati come bytecode leggibile con informazioni di tipo piuttosto che richiedere una verifica separata a posteriori.
Il modello di aggiornamento deriva dall'immutabilità. Aggiornare significa pubblicare una nuova versione con un link alla precedente, piuttosto che sostituire un'implementazione dietro un proxy. Il percorso di aggiornamento è esplicito e sulla chain, il che è più trasparente dell'approccio EVM — anche se significa che deve controllare quale versione un'applicazione sta effettivamente chiamando, poiché una vecchia versione non smette di esistere.
I rimborsi di storage e perché le commissioni sembrano strane
Sui addebita per il calcolo e per lo storage separatamente, e rimborsa parte del costo di storage quando un oggetto viene eliminato.
Il risultato pratico è che una transazione che fa pulizia dietro di sé — chiudendo un oggetto temporaneo, consolidando monete — può costare molto meno della sua cifra di gas lorda, occasionalmente vicino a nulla. Suiscan mostra il costo di storage e il rimborso come righe separate, l'unico modo in cui il numero finale ha senso.
L'intento di progettazione vale la pena notarlo perché è insolito: lo stato è un costo per la rete, quindi il protocollo la paga per ridurlo. La maggior parte delle chain addebita per le scritture e non rimborsa mai, il che significa che lo stato cresce senza alcuna pressione economica contro di esso.
Per chiunque sviluppi su Sui, il rimborso è una considerazione di progettazione reale piuttosto che una curiosità contabile. Per chiunque legga un explorer, è la risposta a una commissione che sembra sbagliata.
Leggere un indirizzo Sui senza confusione
Tre cose sorprendono le persone che aprono una pagina di indirizzo Sui per la prima volta, e tutte e tre sono il modello che funziona correttamente.
Più oggetti moneta. Il suo saldo SUI è la somma dei suoi oggetti moneta, e potrebbero essercene molti. I portafogli li uniscono automaticamente quando necessario, quindi una pagina che ne elenca diversi piuttosto che un totale è normale. Lo stesso si applica a qualsiasi token fungibile.
Oggetti che non riconosce. Interagire con un'applicazione spesso crea oggetti — ricevute, posizioni, token di capacità — che vivono nel suo indirizzo in seguito. Questi non sono spam nel senso di BNB Chain, perché gli oggetti non possono esserle spinti senza che la sua transazione li crei. Sono il registro on-chain di cose che ha fatto.
Numeri di versione. Ogni oggetto porta una versione che si incrementa quando cambia. È così che Sui rileva i conflitti e abilita l'esecuzione parallela, e significa anche che un explorer può mostrarle la cronologia completa di un oggetto senza ricostruirla dagli eventi.
Quest'ultima proprietà è discretamente eccellente per la provenienza. Su una chain a modello di conto, tracciare la cronologia di proprietà di un NFT significa rigiocare eventi di trasferimento. Su Sui l'oggetto stesso porta la sua cronologia, quindi l'explorer la legge direttamente. Chiunque verifichi l'origine di un asset digitale troverà questo considerevolmente più convincente di un log di eventi.
La limitazione da tenere a mente è la maturità dell'ecosistema. L'etichettatura è sottile, le opzioni di contro-verifica sono poche, e se Suiscan mostra qualcosa di strano non c'è molto con cui confrontarlo. Su una chain più vecchia le diremmo di controllare una seconda fonte; qui, quel consiglio è più difficile da seguire.