Cos’è l’open source e perché è importante per il software e la blockchain?

Cos’è l’open source e perché è importante per il software e la blockchain?

Cos’è l’open source?

Open source significa che il codice sorgente del software è disponibile e che una licenza dà ad altri diritti chiari per usare, vedere, modificare e distribuire quel codice. Il codice sorgente è la versione leggibile di un programma con cui lavorano gli sviluppatori. Puoi vederlo come la ricetta dietro un’app o un programma.

Quindi non basta mettere il codice online. Senza una licenza adatta, non è automaticamente chiaro se puoi copiare quel codice, modificarlo o condividerlo di nuovo. È proprio la licenza a stabilire cosa si può fare e cosa no.

Open source non significa nemmeno per forza gratis. Qualcuno può vendere software open source o chiedere soldi per la distribuzione, purché la licenza lo permetta. Il punto è soprattutto la libertà intorno al codice, non il prezzo.

Una vera licenza open source, per esempio, non può fare distinzioni tra utenti, gruppi o applicazioni. Quindi non puoi rendere il software disponibile solo per un certo gruppo o solo per uso privato e poi chiamarlo open source. Inoltre, le condizioni non devono dipendere da una tecnologia specifica.

Esempio: Immagina che uno sviluppatore pubblichi un programma sotto una licenza open source. Puoi studiare il codice, crearne una tua versione e condividerla, purché tu rispetti le condizioni di quella licenza. Se lo stesso codice è online senza licenza, non hai automaticamente questi diritti.


In breve

  • L’open source riguarda sia il codice sorgente sia i diritti concessi da una licenza.
  • Spesso puoi usare, studiare, modificare e condividere software open source.
  • Open source non significa automaticamente che il software sia gratis.
  • Una licenza stabilisce quali condizioni valgono per l’uso e la distribuzione.
  • Il codice sorgente pubblico senza una licenza adeguata non dà agli altri diritti d’uso chiari.

Come funziona il software open source?

Il software open source funziona perché chi lo crea pubblica il codice sorgente sotto una licenza con regole chiare. Altri sviluppatori possono poi copiare, vedere e modificare il codice. Se possano anche distribuire la loro versione modificata dipende dalle condizioni della licenza.

In molti progetti si usa il version control. È un sistema che tiene traccia di quale modifica è stata fatta, da chi e quando. Una modifica salvata così si chiama commit. In questo modo puoi di solito vedere passo dopo passo come si è evoluto il software.

Un modo molto usato di collaborare funziona più o meno così:

  1. Crea una tua versione di lavoro Uno sviluppatore lavora in un branch, una linea di lavoro separata all’interno dello stesso progetto. A volte prima crea un fork: una copia propria dell’intero progetto.

  2. Modifica il codice In quella versione personale qualcuno può correggere un bug, aggiungere una funzione o migliorare il codice senza cambiare subito la versione ufficiale.

  3. Invia una pull request Una pull request è una proposta per includere la modifica nel progetto originale. Altri sviluppatori possono così vedere il codice, discuterlo e testarlo.

  4. Controlla la modifica I progetti possono far revisionare le modifiche, eseguire test automatici per verificare che il codice funzioni bene e controllare possibili errori o problemi di sicurezza.

  5. Unire o no la modifica Se le persone con i diritti giusti sono d’accordo, possono unire la modifica alla versione ufficiale. Spesso questo si chiama merging.

Tra l’altro, un fork non deve mai tornare per forza al progetto originale. Qualcuno può continuare a sviluppare in autonomia quella copia. Solo quando i responsabili del progetto originale accettano la modifica, questa entra a far parte della versione ufficiale.

GitHub, pull request e fork sono modi utili e molto usati per collaborare, ma non sono una condizione necessaria per l’open source. La base è la licenza.

Chi gestisce il software open source e come vengono applicate le modifiche?

Il software open source non ha un unico gestore generale; ogni progetto decide da sé chi gestisce il codice e come vengono accettate le modifiche. Possono essere singoli maintainer, ma anche un’organizzazione, una fondazione o una community di progetto.

Un maintainer è qualcuno che aiuta a tenere in piedi il progetto. Per esempio, può revisionare le modifiche, pubblicare nuove versioni e decidere chi ha accesso al repository ufficiale. Un repository è il posto in cui si trovano il codice e la cronologia delle modifiche di un progetto.

Gli sviluppatori esterni possono di solito segnalare un problema, proporre un miglioramento o inviare codice modificato. Su piattaforme come GitHub questo avviene, per esempio, tramite un issue o una pull request. Un issue è spesso una segnalazione di un bug, una domanda o un’idea di miglioramento.

I progetti possono impostare regole extra prima che il codice possa essere unito. Pensa a controlli obbligatori da parte di altri sviluppatori, test automatici o regole che impediscono di modificare subito e direttamente codice importante.

Nel caso della blockchain c’è un aspetto in più: aggiungere nuovo codice al progetto ufficiale non significa ancora che le regole della blockchain cambino automaticamente.

Un node è un computer che esegue il software e controlla transazioni e blocchi secondo le regole di una blockchain.

Nel caso di Bitcoin, i BIP servono come proposte pubbliche di miglioramento. In Ethereum, gli EIP svolgono un ruolo simile per gli standard e le modifiche alla rete. Una proposta di questo tipo può contenere spiegazioni, feedback e revisioni precedenti. Ma pubblicare un BIP o un EIP non cambia da solo le regole di Bitcoin o Ethereum.

Anche unire il codice non lo fa automaticamente. Per una vera modifica delle regole del protocollo, cioè le regole tecniche della rete, i partecipanti rilevanti devono alla fine eseguire software che segua le stesse nuove regole.

In Bitcoin nessun organo formale o informale decide da solo l’adozione dei BIP. In Ethereum, gli EIP editor svolgono soprattutto compiti amministrativi ed editoriali, non la scelta sostanziale se una proposta sia desiderata o meno.

Quali licenze open source esistono?

Due tipi molto comuni sono le licenze permissive e le licenze copyleft. Le licenze permissive si chiamano così perché permettono molto: di solito puoi usare, modificare e ridistribuire il codice liberamente. Copyleft è un gioco di parole su copyright. Con queste licenze puoi anche modificare e condividere il codice, ma spesso il software derivato deve restare disponibile con le stesse condizioni aperte.

Ecco alcune licenze conosciute:

  • MIT È una licenza permissiva. Puoi usare, copiare, modificare, distribuire e persino usare commercialmente il software. Però devi includere l’avviso di copyright e il testo della licenza. Il software viene fornito senza garanzia e con responsabilità limitata.

  • BSD-2-Clause e BSD-3-Clause Sono anche queste licenze permissive. Consentono un riuso e una distribuzione molto ampi, di solito purché le informazioni su copyright e licenza restino presenti.

  • Apache-2.0 Apache License 2.0 è anch’essa permissiva. Questa licenza include inoltre accordi sui brevetti delle persone che contribuiscono con codice al progetto.

  • GPL-3.0-only La GPL è una licenza copyleft. In parole semplici, questa licenza cerca di garantire che la libertà di condividere e modificare il codice resti intatta quando il software viene distribuito ulteriormente. Chi distribuisce software sotto GPLv3 deve, a certe condizioni, rendere disponibile anche il relativo codice sorgente.

  • MPL-2.0 La Mozilla Public License 2.0 è una forma di copyleft che guarda soprattutto ai singoli file. Se modifichi un file coperto da MPL, quel file modificato deve di solito restare disponibile con le stesse condizioni aperte. Altri file in un progetto più grande possono invece essere soggetti ad altre condizioni.

Importante da sapere: etichette come permissiva, strong copyleft e weak copyleft sono utili come prima spiegazione, ma le condizioni precise stanno sempre nel testo della licenza. Soprattutto quando diversi componenti software con licenze diverse vengono combinati, la situazione può diventare complicata.

Perché l’open source è importante per crypto e blockchain?

L’open source è importante per crypto e blockchain perché i node eseguono software che controlla transazioni e blocchi in base a regole fisse. Chi gestisce un nodo può quindi voler verificare quali regole esegue esattamente quel software.

In Bitcoin, Bitcoin Core è un esempio noto. Il codice sorgente è pubblico e il software viene distribuito sotto licenza MIT. Questo permette a sviluppatori e altre persone interessate di studiare il codice, proporre contributi o costruire una propria versione nei limiti di quella licenza.

Ethereum può essere usato con diversi programmi open source, chiamati client. Questo software elabora tra le altre cose le transazioni e aiuta i computer a partecipare alla rete Ethereum. I diversi client sono sviluppati da team diversi e a volte usano linguaggi di programmazione diversi.

Perché è utile? Se una rete dipendesse completamente da un solo software, un errore grave in quel programma potrebbe colpire molti partecipanti allo stesso tempo. Più client indipendenti rendono la rete meno dipendente da una sola versione del software.

Naturalmente questi diversi client di Ethereum devono seguire le stesse specifiche rilevanti. Le specifiche sono gli accordi tecnici comuni su come funziona la rete. Pensa a regole per transazioni, blocchi e al modo in cui la rete raggiunge un accordo su quali dati sono validi.

Anche i BIP e gli EIP aiutano nel coordinamento pubblico. Rendono visibili proposte, spiegazioni tecniche, feedback e revisioni. Questo è prezioso nel mondo crypto, perché le modifiche alle regole possono avere grandi conseguenze per chiunque esegua software, conservi crypto o usi applicazioni come smart contract.

L’open source rende inoltre possibili versioni indipendenti e fork. Questo dà più scelta a sviluppatori e utenti. Ma il codice aperto da solo non garantisce che una blockchain sia sicura, decentralizzata o ampiamente usata. Il codice deve essere buono, eseguito correttamente e alla fine anche adottato da node e altri partecipanti.

Quali sono i vantaggi dell’open source?

Il vantaggio più grande dell’open source è che gli utenti non possono solo usare il software, ma anche esaminarlo, modificarlo e condividerlo. È utile quando un’organizzazione vuole adattare il software alle proprie esigenze tecniche o operative.

Inoltre, il codice pubblico rende possibile il controllo. Puoi vedere le modifiche nella cronologia delle versioni e capire cosa è stato cambiato. In un flusso di lavoro con pull request, altri possono discutere una modifica prima che venga unita. I test automatici e i controlli di sicurezza possono aiutare a trovare prima gli errori.

L’open source può anche rendere più facile la collaborazione. Gli sviluppatori possono riutilizzare componenti già esistenti invece di costruire tutto da zero. Naturalmente questo è possibile solo se le licenze sono compatibili tra loro e tutti rispettano le condizioni.

Un fork offre un altro vantaggio: la continuità. Immagina che un gruppo di sviluppatori voglia una direzione tecnica diversa da quella dei maintainer originali. Allora può andare avanti con una propria copia. Così un progetto non deve per forza fermarsi solo perché c’è disaccordo sul futuro.

Nella blockchain, la diversità dei client è un vantaggio. Significa che esistono più client diversi: programmi con cui i computer partecipano, per esempio, a Ethereum. Se questi client sono sviluppati da team diversi, la rete dipende meno da una sola versione del software. Di conseguenza, è meno probabile che un singolo errore colpisca nello stesso modo tutti i node, cioè i computer che tengono in funzione la rete.

Importante però: il fatto che tu possa ispezionare il codice non significa che gli esperti lo abbiano davvero controllato a fondo. L’open source rende possibile il controllo, ma non prova che ogni errore sia già stato trovato o risolto.

Quali rischi e limiti ha l’open source?

L’open source non è un certificato di sicurezza. Anche il codice pubblico può contenere errori di programmazione, vulnerabilità o scelte di progettazione non sicure. Il fatto che tutti possano vedere il codice non significa che abbastanza persone esperte lo abbiano davvero fatto.

La manutenzione è un rischio importante. Il software ha spesso bisogno di manutenzione continua, per esempio per bug, aggiornamenti di sicurezza e nuove dipendenze. Una dipendenza è un componente software esterno su cui un programma si appoggia. Se un progetto non viene mantenuto bene, i problemi noti possono restare irrisolti.

Più componenti software esterni usa un programma, più punti possono esserci in cui nasce un problema di sicurezza. Una dipendenza dannosa o compromessa può quindi mettere a rischio un intero sistema. Per questo è saggio controllare se ogni dipendenza è davvero necessaria, da dove proviene e se la versione usata è ancora aggiornata.

Nel software open source contano anche le licenze. Se combini componenti con licenze diverse, possono esserci condizioni su disponibilità del codice sorgente, avvisi di copyright, modifiche o brevetti. È soprattutto qualcosa da verificare bene prima di distribuire il software.

Anche i fork hanno un lato negativo. Offrono libertà di scelta, ma possono dividere sviluppatori, utenti, documentazione e manutenzione della sicurezza tra più progetti. Un fork ha bisogno dei propri maintainer, della propria sicurezza, di nuove versioni e di utenti o operatori di node per funzionare bene nel lungo periodo.

Per le crypto c’è anche un ulteriore punto di controllo. Il codice in un repository pubblico non deve per forza essere esattamente lo stesso del software che installi. Per questo è importante controllare da dove proviene il software e se la versione che installi corrisponde a quella ufficiale.

Nel caso degli smart contract, puoi anche verificare se il codice pubblicato corrisponde al contratto che gira davvero sulla blockchain.

In breve: l’open source ti dà più possibilità di controllo, ma non ti toglie tutto il lavoro di verifica. Quando guardi software e progetti crypto, controlla anche manutenzione, pratiche di sicurezza, dipendenze e la versione che usi davvero.

Conclusione

Open source significa che il codice sorgente è disponibile sotto una licenza che dà diritti chiari per usare, studiare, modificare e condividere il software. La licenza è almeno importante quanto il codice stesso.

Per crypto e blockchain l’open source è ancora più rilevante, perché i node eseguono le regole del protocollo e diversi client indipendenti possono rendere una rete meno dipendente da un solo software. Allo stesso tempo, il codice pubblico non garantisce sicurezza o qualità. Controlli accurati, manutenzione attiva e dipendenze sicure restano altrettanto importanti.

Quindi considera l’open source soprattutto come una base forte per trasparenza, collaborazione e libertà di scelta. Offre possibilità, ma devi comunque guardare come viene gestito un progetto e se il software usato viene mantenuto in modo affidabile.

Chi è Finst

Finst è una piattaforma di criptovalute leader nei Paesi Bassi che offre commissioni di trading ultra-basse, sicurezza di livello istituzionale e una gamma completa di servizi crypto come trading, custodia, staking e rampe fiat di ingresso e uscita. Fondata dall’ex team core di DEGIRO, Finst è autorizzata come fornitore di servizi di criptoasset dall’Autorità olandese per i mercati finanziari (AFM) e serve clienti retail e istituzionali in 30 paesi europei.

La piattaforma crypto per tutti gli investitori

Che tu sia un trader attivo o un investitore di lungo periodo, Finst ti permette di far crescere il tuo patrimonio in crypto con fiducia e tranquillità.

Registrati