Skip to main content
Xcapit
Blog
·10 min di lettura·Fernando BoieroFernando Boiero·CTO & Co-Fondatore

Costruire su Soroban: Sviluppare in Rust per Stellar

blockchainstellarrust

Stellar è stata una delle reti più affidabili in blockchain per quasi un decennio. Elabora pagamenti cross-border su scala, fa settle di transazioni in meno di cinque secondi e addebita frazioni di centesimo in fee. Istituzioni major -- da MoneyGram a Franklin Templeton -- la usano in produzione. Ma fino a recentemente, Stellar aveva una limitazione notevole: nessun smart contract general-purpose. Soroban cambia questo. Lanciata sulla mainnet di Stellar all'inizio del 2024, Soroban è una piattaforma di smart contract costruita da zero con Rust, WebAssembly e le lezioni difficili imparate guardando l'ecosistema Ethereum evolversi. Il nostro team ha recentemente passato diverse settimane costruendo con essa, e questo è ciò che abbiamo trovato.

Ambiente sviluppo e architettura Soroban
Architettura di Soroban: smart contract basati su Rust sulla rete Stellar

Questo post copre la nostra esperienza hands-on con Soroban: l'architettura, il tooling, le differenze dallo sviluppo Solidity e la nostra valutazione onesta di dove la piattaforma eccelle e dove ha ancora gap. Se stai valutando Soroban per un progetto o vuoi capire come appare la scommessa smart contract di Stellar dalla prospettiva di uno sviluppatore, questa è la guida che avremmo voluto avere quando abbiamo iniziato.

Perché Stellar Aveva Bisogno di Smart Contract

Stellar è stata progettata come una rete di pagamenti, non una piattaforma di computazione general-purpose. Il suo Stellar Consensus Protocol (SCP) prioritizza safety e liveness per transazioni finanziarie, e la rete ha processato miliardi di dollari in remittanze e trasferimenti stablecoin dal 2015. Ma il panorama crypto si è evoluto. DeFi, asset tokenizzati del mondo reale, logica compliance on-chain e strumenti finanziari programmabili richiedono tutti computazione arbitraria che il modello transazionale originale di Stellar non poteva supportare. I progetti che volevano protocolli lending o automated market maker dovevano andare su Ethereum.

Invece di agganciare smart contract all'architettura esistente come ripensamento, la Stellar Development Foundation ha costruito una piattaforma purpose-designed che ha sfruttato tutto quello che l'industria aveva imparato dal 2015. Soroban è un design clean-slate che evita il bagaglio storico dell'EVM integrando nativamente con l'infrastruttura di Stellar per pagamenti, emissione asset e connettività fiat.

Architettura: WASM, Storage e Resource Metering

I contratti Soroban sono scritti in Rust e compilati a WebAssembly (WASM). WASM è un formato di esecuzione portabile e sandboxed che fornisce velocità near-native, comportamento deterministico e forte isolamento. Scegliendo WASM invece di una VM personalizzata, Soroban eredita una toolchain matura e ottimizzazioni compilatore estese già supportate dai major cloud provider.

Il modello di esecuzione è deliberatamente vincolato. Ogni invocazione ha limiti di risorse espliciti -- istruzioni CPU, memoria, letture e scritture ledger, dimensione transazione -- tutti metered e priced prima dell'esecuzione. Soroban usa simulazione preflight: simuli una transazione contro lo stato ledger corrente per determinare il consumo esatto di risorse. La transazione o entra nella envelope dichiarata o fallisce prima dell'esecuzione. Nessuna sorpresa, nessun errore out-of-gas a metà esecuzione, nessuna fee sprecata.

Lo storage diverge dai pattern stabiliti. Invece del singolo key-value store di Ethereum, Soroban fornisce tre tipi. L'instance storage è legato all'istanza contratto -- ideale per configurazione che persiste con il contratto. Il persistent storage sopravvive indipendentemente e può essere esteso pagando rent -- adatto per balance utente e dati long-lived. Il temporary storage viene auto-eliminato dopo un TTL configurabile -- utile per dati sessione e cache. Questo modello forza gli sviluppatori a pensare al lifecycle dei dati in anticipo, prevenendo la crescita di stato unbounded che affligge Ethereum.

Il Vantaggio Rust

Rust porta memory safety senza garbage collector, un forte type system che cattura bug a compile time e performance adatta a un ambiente di esecuzione blockchain vincolato. In Solidity, integer overflow, storage non inizializzato e vulnerabilità di reentrancy hanno causato miliardi in perdite. Rust elimina molte di queste categorie per design -- il suo modello di ownership previene puntatori pendenti, il suo type system previene errori di accesso memoria e il suo compilatore rigoroso significa che se il codice compila, intere classi di errori runtime non possono verificarsi.

L'assenza di garbage collection è ugualmente importante. In blockchain, ogni operazione deve essere deterministica e il consumo di risorse precisamente metered. La garbage collection introduce imprevedibilità. La gestione memoria compile-time di Rust significa che il consumo di risorse è consistente, allineandosi perfettamente con il modello di metering di Soroban. Detto questo, Rust ha una curva di apprendimento ripida. Gli sviluppatori da Solidity o JavaScript devono interiorizzare ownership, borrowing, lifetime e polimorfismo basato su trait. L'SDK Soroban astrae pattern comuni, ma contratti non-triviali richiedono comprensione profonda del linguaggio.

Esperienza Sviluppatore: SDK, CLI e Sandbox

L'SDK Soroban fornisce macro procedurali che generano boilerplate per entry point contratto, conversioni tipo e accesso storage. Un contratto inizia con #[contract] su uno struct e #[contractimpl] sul suo blocco implementazione. L'SDK gestisce serializzazione e accesso ambiente -- abbastanza sottile da capire le meccaniche sottostanti, abbastanza spesso da evitare di scrivere interazioni WASM raw.

La Stellar CLI gestisce l'intero ciclo di deploy: scaffolding progetto, compilazione WASM, ottimizzazione binari, deploy testnet e mainnet, invocazione funzioni, gestione identità e firma transazioni. Il workflow è stellar contract init, cargo build con target WASM, stellar contract deploy e stellar contract invoke. Straightforward e ben documentato.

Il sandbox locale è dove Soroban si differenzia davvero. Il framework di testing ti permette di scrivere test Rust che istanziano contratti, chiamano funzioni, assertano su cambi di stato e verificano errori -- tutto girando nativamente in millisecondi. Nessun nodo blockchain, nessuna conferma blocco, nessun token test. Scrivi un test, esegui cargo test e ottieni risultati istantaneamente. Dopo anni con Hardhat e Foundry, la differenza di velocità è immediatamente notevole.

Differenze Chiave dallo Sviluppo Solidity

Nessuna Reentrancy per Design

La reentrancy -- la classe di vulnerabilità Solidity più infame -- ha causato l'hack DAO ed è stata exploitata dozzine di volte da allora. Soroban la elimina interamente. Un contratto non può essere chiamato di nuovo mentre una invocazione precedente sta eseguendo, enforced a runtime. Un'intera categoria di vulnerabilità critiche non esiste.

Storage e Autorizzazione Espliciti

In Solidity, lo storage è implicito e persiste per sempre per default. Il modello three-tier di Soroban forza decisioni esplicite su ogni pezzo di dato -- quanto vive, chi paga per esso e cosa succede quando il suo TTL scade. Per l'autorizzazione, Solidity si affida a msg.sender, che crea pattern fragili in chiamate cross-contract. Soroban usa require_auth, controllando che uno specifico indirizzo abbia autorizzato un'invocazione specifica contro l'albero di autorizzazione della transazione. Entrambi i cambiamenti rendono i contratti più sicuri per default.

Costruire un Contratto Token: Concetti Chiave

L'ecosistema Stellar fornisce un'interfaccia token standard (SEP-41) analoga a ERC-20. Un token Soroban memorizza balance in persistent storage keyed per indirizzo. La funzione transfer legge il balance del sender, verifica sufficienza, lo decrementa e incrementa quello del destinatario. Prima di qualsiasi cambio di stato, require_auth verifica l'autorizzazione del sender. Gli allowance usano temporary storage con un TTL, così le approvazioni scadute vengono automaticamente pulite -- a differenza di ERC-20 dove persistono per sempre.

I pezzi si compongono naturalmente. La macro #[contracttype] genera serializzazione per tipi custom. I tier storage vengono accessati via env.storage().persistent() e env.storage().temporary(). Gli eventi vengono emessi attraverso env.events().publish(). La gestione errori usa il tipo Result di Rust con enum custom che mappano a codici errore on-chain. Ottieni il pieno potere di Rust -- pattern matching, iterator, generic -- non un subset definito da un linguaggio domain-specific.

Testing e Debugging

Il soroban-sdk include un ambiente test che simula l'intero runtime contratto -- storage, autorizzazione, eventi e chiamate cross-contract. Scrivi test Rust standard con #[test], crei un ambiente mock con Env::default() e chiami funzioni contratto direttamente. Le feature avanzate includono env.mock_all_auths() per bypassare autorizzazione nei test, manipolazione sequenza ledger per logica time-dependent e testing interazione multi-contract -- tutto con supporto debugging IDE completo includendo breakpoint.

La simulazione transazione attraverso la Stellar CLI aggiunge fiducia produzione. Prima di sottomettere alla rete, simuli contro lo stato ledger corrente e ottieni consumo risorse esatto, cambi di stato e valori di ritorno. Se la simulazione passa, la transazione on-chain ha successo con uso risorse deterministico. Abbiamo trovato questo inestimabile durante il deploy, dove transazioni mainnet fallite costano soldi veri.

Integrazione Ecosistema Stellar

I contratti Soroban interagiscono con gli asset integrati di Stellar (includendo USDC), il DEX della rete e l'ecosistema di anchor, wallet e on-ramp fiat. L'API Horizon fornisce accesso REST per interrogare stato, sottomettere transazioni e streammare eventi. Gli SDK Stellar in JavaScript, Python, Go e Java permettono a frontend e backend di interagire con contratti Soroban senza dipendenze Rust. Gli anchor -- i provider on/off-ramp fiat di Stellar operanti in dozzine di paesi -- forniscono connettività fiat diretta che manca alla maggior parte delle piattaforme smart contract. Un protocollo DeFi su Soroban può offrire conversione fiat-to-stablecoin reale, riducendo la friction che previene l'adozione mainstream.

Performance e Costo

Le transazioni finalizzano in cinque-sette secondi con fee tipicamente sotto un centesimo, rendendo le microtransazioni viabili. Il resource metering è più granulare del gas EVM -- paghi separatamente per CPU, memoria, I/O ledger, dimensione transazione e state rent. Nei nostri benchmark, un contratto token standard su Soroban costa circa il 90% meno di Ethereum L1 ed era comparabile ad Arbitrum o Optimism -- ma su una rete L1 con proprio consenso, non un rollup dipendente da Ethereum per sicurezza.

Dove Soroban Brilla

  • Asset tokenizzati e strumenti finanziari: Soroban eredita l'architettura regulatory-friendly di Stellar. Emettere e gestire titoli tokenizzati, bond o asset del mondo reale è un fit naturale.
  • Applicazioni di pagamento: Gli anchor di Stellar, supporto stablecoin (USDC, EURC) e finalità veloce lo rendono ideale per escrow, pagamenti condizionali, splitting pagamenti e erogazioni programmabili.
  • Prodotti finanziari cross-border: Stellar già elabora remittanze internazionali su scala. Soroban aggiunge logica programmabile -- conversione FX automatizzata, controlli compliance, approvazione multi-party.
  • Protocolli lending e credit: Il modello storage esplicito con state rent si allinea bene con protocolli dove le posizioni hanno lifetime naturali e i dati dormenti non dovrebbero persistere indefinitamente.
  • Applicazioni finanziarie enterprise: Organizzazioni che necessitano logica on-chain con connettività fiat, tooling compliance e infrastruttura institutional-grade troveranno l'ecosistema di Stellar più completo della maggior parte delle alternative.

La Nostra Valutazione: Punti di Forza e Debolezze

Soroban non sta cercando di competere con Ethereum come world computer general-purpose. È purpose-built per applicazioni finanziarie, e valutarlo richiede di capire quello scope.

Punti di Forza

  • Rust e WASM forniscono un ambiente di esecuzione fondamentalmente più sicuro. Intere classi di vulnerabilità vengono eliminate dal linguaggio stesso.
  • L'esperienza sviluppatore è forte -- SDK, CLI, testing locale e documentazione sono ben progettati. Il ciclo di sviluppo è veloce.
  • Il modello storage three-tier risolve la crescita di stato unbounded, un problema che affligge Ethereum e altre chain.
  • L'integrazione con l'infrastruttura pagamenti di Stellar, on-ramp fiat e relazioni istituzionali fornisce utilità del mondo reale che le piattaforme crypto-native non possono eguagliare.
  • Il resource metering deterministico e la simulazione transazione eliminano il guesswork e le fee sprecate che sono friction costante nello sviluppo EVM.

Debolezze

  • L'ecosistema è giovane. Strumenti auditing, librerie battle-tested ed esempi contratto verificati stanno ancora maturando rispetto a Ethereum.
  • La curva apprendimento di Rust è reale. Team senza esperienza avranno bisogno di investimento significativo, e assumere sviluppatori Rust è più difficile che assumere sviluppatori Solidity.
  • La componibilità DeFi è limitata -- meno protocolli, oracle e pool di liquidità. Se la componibilità profonda è critica, le L2 Ethereum rimangono più forti.
  • La comunità e il mindshare sviluppatori sono più piccoli. Tutorial, risposte Stack Overflow e repository esempio sono meno abbondanti.
  • Lo state rent aggiunge complessità operativa. I TTL devono essere gestiti attivamente, richiedendo infrastruttura di monitoraggio a cui gli sviluppatori EVM non sono abituati.

Quando Raccomanderemmo Soroban

Raccomanderemmo Soroban per progetti che coinvolgono transazioni finanziarie, tokenizzazione asset o infrastruttura pagamenti -- dove il team ha expertise Rust. Se il tuo prodotto ha bisogno di connettività fiat, compatibilità regolamentare e bassi costi più della componibilità DeFi profonda, Soroban è una scelta convincente. Non lo raccomanderemmo oggi per dApp general-purpose, gaming o applicazioni dipendenti da protocolli DeFi esistenti. Per quelli, l'ecosistema L2 di Ethereum rimane la scelta pratica. Questo potrebbe cambiare mentre Soroban matura, ma all'inizio del 2025, gli effetti rete favoriscono ancora chain EVM-compatibili per casi d'uso non-finanziari.

Soroban Stellar Contract Architecture

In Xcapit, stiamo costruendo soluzioni blockchain dal 2017 -- da wallet self-custody a integrazioni DeFi ad audit smart contract attraverso più chain. Se stai valutando Soroban per un prodotto finanziario, hai bisogno di aiuto architettando una strategia multi-chain che include Stellar o vuoi un team con esperienza hands-on Rust e smart contract, saremo felici di aiutare. Scopri di più sui nostri servizi di sviluppo blockchain.

Share
Fernando Boiero

Fernando Boiero

CTO & Co-Fondatore

Oltre 20 anni nell'industria tecnologica. Fondatore e direttore di Blockchain Lab, professore universitario e PMP certificato. Esperto e thought leader in cybersecurity, blockchain e intelligenza artificiale.

Costruiamo qualcosa di grande

IA, blockchain e software su misura — pensato per il tuo business.

Contattaci

Stai costruendo su blockchain?

Tokenizzazione, smart contract, DeFi — li abbiamo realizzati tutti.

Articoli Correlati