< Torna al Newsroom

Kaspa sta arrivando su SSP, e la libreria che lo rende possibile è open source

·4 min di lettura·Di SSP Editorial Team
Copertina del newsroom SSP: Kaspa sta arrivando su SSP

Kaspa sta arrivando su SSP, e la libreria che lo rende possibile è open source

Il supporto a Kaspa sta arrivando su SSP. Sarà lo stesso multisig 2 su 2 che usi già per Bitcoin, Ethereum e Solana: una chiave in SSP Wallet, una su SSP Key, e nulla si muove se entrambe non sono d'accordo. Anche i vault enterprise avranno Kaspa.

Per arrivarci abbiamo dovuto costruire qualcosa che non esisteva. Oggi possiamo condividere la parte già pubblica: @runonflux/kaspa-core, una libreria TypeScript open source per le transazioni e il multisig di Kaspa, rilasciata con licenza MIT.

Perché abbiamo costruito prima una libreria

Quando abbiamo valutato l'aggiunta di Kaspa, abbiamo esaminato ogni pacchetto JavaScript per Kaspa che siamo riusciti a trovare. Nessuno era davvero in grado di costruire e firmare dall'inizio alla fine una transazione multisig di Kaspa, cioè proprio la cosa di cui SSP ha bisogno più di ogni altra.

La strada ufficiale è il codice Rust di Kaspa compilato in WebAssembly. È un software eccellente, ma si adatta male a SSP. SSP Key gira su React Native, dove WebAssembly non è disponibile, e l'estensione del browser deve restare leggera: il solo pacchetto WebAssembly supera gli 11 MB.

Così abbiamo scritto da zero le regole di transazione di Kaspa in puro TypeScript: indirizzi, script, multisig M su N, hash di firma, firma Schnorr, calcolo delle commissioni e della «massa» e selezione degli input. Ha due dipendenze di runtime, le librerie crittografiche @noble, ampiamente usate e sottoposte ad audit, e funziona senza modifiche nei browser, nelle estensioni, in Node e in React Native.

Come l'abbiamo verificata

Per il codice di un wallet, «sembra funzionare» non è uno standard. La libreria è costruita per essere dimostrabilmente identica al nodo Kaspa stesso:

  • Verificata rispetto al codice di Kaspa. La suite di test esegue ogni funzione critica per il consenso rispetto a rusty-kaspa, l'implementazione di riferimento del nodo, e fa passare le transazioni firmate dalla libreria nel suo vero motore di script, comprese tutte le combinazioni M su N da 1 su 1 fino a 15 su 15.
  • Dati reali della mainnet. ID di transazione e firme già esistenti sulla mainnet vengono riprodotti esattamente.
  • Transazioni finanziate sulla mainnet. Quindici transazioni reali, tra cui spese 2 su 2 in stile SSP, un 2 su 3 e multisig di tipo enterprise 4 su 7, 6 su 10 e 10 su 15, sono state costruite e firmate con la libreria e accettate dalla rete. Per ognuna, il calcolo della massa della transazione fatto dal nodo coincideva esattamente con il nostro.
  • Revisione avversariale. Più cicli di revisione di sicurezza hanno cercato specificamente modi per ingannare un firmatario o gonfiare una commissione. Non sono stati trovati problemi critici e ogni rilievo è stato corretto con un test di regressione. Il report è pubblicato insieme al codice.

Il codice aperto fa parte dello stesso principio delle build riproducibili: non dovresti doverti fidare della nostra parola su ciò che firma le tue transazioni.

Come sarà Kaspa in SSP

Il tuo vault Kaspa sarà un indirizzo multisig di Kaspa (inizia con kaspa:p), derivato da entrambi i tuoi dispositivi sul consueto percorso di derivazione di SSP. L'invio funzionerà come per le altre chain: SSP Wallet prepara e firma la sua metà, SSP Key ti mostra destinatari, importo e commissione, e solo dopo che hai approvato lì la transazione raggiunge la rete. È lo stesso modello 2 su 2, su una nuova chain.

Alcuni dettagli specifici di Kaspa hanno plasmato il design:

  • Ogni dispositivo verifica da sé gli importi. Una firma Kaspa si impegna solo sull'importo dell'input che firma, quindi un dispositivo che si fidasse degli importi ricevuti potrebbe essere ingannato sulla commissione. In SSP, ogni dispositivo recupera autonomamente le monete spese prima di firmare, e firma solo per il proprio vault.
  • L'ID della transazione è noto prima della firma. L'ID di transazione di Kaspa non include le firme, quindi SSP può fissare una transazione al suo ID definitivo prima che una qualsiasi delle due chiavi l'abbia firmata.
  • I tetti alle commissioni sono integrati. Le commissioni hanno un limite massimo, così una stima sbagliata non può trasformarsi in un errore costoso.

Per le aziende, i vault di SSP Enterprise supporteranno Kaspa con approvazione M su N, fino al limite standard di Kaspa di 15 chiavi per vault.

Cosa non c'è nella prima versione

Preferiamo rilasciare una cosa piccola fatta bene che una grande fatta in modo approssimativo. La prima versione copre KAS stesso sulla mainnet. I token KRC-20, la testnet di Kaspa, la firma dei messaggi Kaspa e WalletConnect per Kaspa non saranno inclusi al lancio.

Quando

Il supporto a Kaspa è implementato in SSP Wallet, SSP Key e SSP Enterprise ed è ora nella fase di test finali. Lo annunceremo qui, con le note di rilascio, quando sarà disponibile. Fino ad allora non c'è niente da attivare e niente da scaricare, e chiunque ti dica il contrario non siamo noi.

Nel frattempo, gli sviluppatori possono già usare la libreria oggi: è su npm come @runonflux/kaspa-core e su GitHub in RunOnFlux/kaspa-core.

Condividi questo articolo

Articoli correlati