Scrypta Smart Contract

Scrypta
4 min readFeb 12, 2021

Gli Smart contract, contractual type arrangement, sono clausole contrattuali espresse in software concepiti e realizzati grazie alla tecnologia blockchain di Scrypta.

Dai rimborsi assicurativi alle transazioni finanziarie, dalle operazioni societarie alla tracciabilità delle merci e alla tutela della proprietà intellettuale. Questi sono solo alcuni degli esempi di casi applicativi che possono essere gestiti grazie alla tecnologia degli Smart Contract di Scrypta blockchain.

Le caratteristiche che ogni smart contract dovrebbe possedere

Prima di realizzarli abbiamo cercato di definire delle “qualità” essenziali che doveva avere il nostro sistema:

Scalabilità: il sistema deve essere fortemente scalabile, ovvero deve essere facilmente modificabile nel caso di variazioni della mole e tipologia dei dati trattati, garantendo, allo stesso tempo, una stabilità nell’utilizzo della piattaforma all’aumentare del suo utilizzo.

Automatismo: il sistema deve essere in grado di “auto-eseguirsi” o eseguire determinate azioni in modo totalmente automatico.

Semplicità: il sistema deve dare al programmatore facilità di sviluppo grazie alle sue conoscenze pregresse dei linguaggi di programmazione più comuni.

Aggiornabilità: il sistema deve garantire l’aggiornamento del software pur mantenendo la sua immutabilità.

Come sono nati gli Smart Contract di Scrypta

Scrypta nasce da un fork di PIVX. Questo vuol dire che all’interno della nostra blockchain non esiste alcun riferimento al concetto degli Smart Contracts per come sono comunemente immaginati, ovvero quelli di Ethereum. L’esigenza di crearli è nata dalla voglia di permettere agli sviluppatori di utilizzare gli Idanode, senza di fatto corromperli o dover agire direttamente dentro il codice sorgente.

Gli Smart Contracts all’interno della Blockchain di Scrypta, quindi, sono considerati a tutti gli effetti come un’estensione dell’IdaNode. L’Idanode, ovvero Interconnected dApp Node, è sicuramente la tecnologia più importante sviluppata da Scrypta. E’ il cuore di tutte le operazioni di scrittura e lettura dei dati, nonché la principale fonte di dati per le dApp.

Gli IdaNodes, quindi, permettono di creare e applicare “Smart Contracts”, cioè software che vengono eseguiti e che mantengono uno stato all’interno della rete decentralizzata Scrypta, con la possibilità di sviluppare un numero indefinito di nuovi casi d’uso.

Le entità tecniche alla base del funzionamento del software

Gli IdANode: utilizzati per interagire con la Blockchain, essi consentono di eseguire gli Smart Contract e mantenerli all’interno del proprio database sulla base delle interazioni e delle regole scritte all’interno del codice.

La Virtual Machine: ovvero l’ambiente sicuro in cui il codice viene eseguito in pochi e predefiniti moduli interni che interagiscono con gli IdANode.

Il Compiler: permette la traduzione di regole prestabilite scritte nel linguaggio Java Script al linguaggio nativo capace di comunicare con gli IdaNode.

I moduli

Per quanto possiamo continuare a chiamarli “Smart Contracts” di fatto la piattaforma permette di realizzare dei moduli o estensioni per l’IdaNode. Questi moduli vengono abilitati all’interno dell’IdaNode e quindi mantenuti da uno o più IdaNodes specifici risultando completamente scalabili. I moduli vengono inclusi solo negli idaNode che hanno interesse a fornire potenza di calcolo per l’esecuzione degli Smart Contract. Questo vuol dire che una specifica applicazione può essere mantenuta solo dal suo creatore, oppure da tutti i soggetti interessati ad usarla. Maggiore sarà l’interesse degli utilizzatori maggiore sarà l’utenza, garantendo così al sistema la potenza di calcolo necessaria per servire i diversi utenti.

Clock e Automatismo

Sebbene sia generalmente diffusa l’idea che lo Smart Contract si auto-esegue sulla base di specifiche regole, tale idea è drasticamente errata. Uno Smart Contract può eventualmente avere “automaticamente” delle condizioni tali per cui se eseguito porterà a un cambio di stato all’interno dello stesso.

Questo perché la Virtual Machine di altre Blockchain famose non ha un vero e proprio clock interno. Per estendere questo concetto alla blockchain dobbiamo pensare che il clock della Virtual Machine (ovvero il momento in cui la macchina sincronizza) sia l’emissione di un blocco, che nella rete Scrypta è di circa 1 minuto. Questo significa che possiamo pensare di far eseguire al nostro Smart Contract almeno un’operazione ogni blocco quando è stato concluso un “ciclo”.

Abbiamo quindi creato la base per gli automatismi, tutti gli Smart Contract possono richiamare la funzione e auto-eseguire del codice a prescindere dal fatto che qualcuno richiama o non richiama lo Smart Contract stesso.

I vantaggi degli smart contract di Scrypta

Gli Smart Contract di Scrypta sono differenti dagli altri. Le caratteristiche che possiedono sono state sviluppate grazie all’attento studio di questa tecnologia, con il forte desiderio di realizzare una dApp nuova e innovativa con vantaggi specifici che non si riscontrano negli altri Smart Contract già realizzati:

  • Sono realmente automatici, ovvero si auto-eseguono a ogni blocco o alla ricezione di un’informazione in mempool, ovvero alla raccolta di transazioni che sono state verificate dai nodi ma che non sono state ancora aggiunte alla blockchain.
  • Sono immutabili ma aggiornabili, ovvero il codice è immutabile, perché pubblicamente esposto all’interno di una transazione, ma può essere aggiornato pubblicando una nuova versione. L’aggiornamento è affidato ad ogni proprietario di IdaNode che è libero di decidere se aggiornare.
  • Sono semplici, si scrivono con Javascript ed espongono i propri metodi per mezzo dell’IdaNode.
  • Sebbene non possano scrivere per conto dell’utente, possono generare transazioni formalmente valide e demandare la firma ed il broadcast all’utente.
  • Prevedono delle funzionalità di consenso per cui ogni client può richiedere se quel nodo è attendibile o meno. Compie una verifica ridondante, ogni singolo partecipante della rete controlla la sua correttezza e validità.

--

--