Home Lo Spiegone Informatico Il concetto di Open Source

Il concetto di Open Source

Il codice alla base di ciascuna delle principali criptovalute e progetti blockchain è sviluppato come software open source. I regolatori (governi), non avendo familiarità con il software open source, potrebbero assumere un approccio errato nell’esame delle criptovalute, in quanto abituati a sistemi basati su software che sono sviluppati da diverse società meramente a scopo di lucro. I progetti open source sono diversi dai normali programmi più diffusi (es. Windows di Microsoft) e questa differenza può e deve contribuire a plasmare una nuova politica pubblica.

Il software open source è prodotto in modo collaborativo, condiviso liberamente, pubblicato in modo trasparente e sviluppato per essere un bene utile alla comunità piuttosto che la proprietà di una singola azienda o persona. Quando un progetto è sviluppato “in open source” non c'è un singolo punto di rottura nel processo di sviluppo, nessuna azienda o individuo può affermare di detenere effettivamente il programma. Proprio come non esiste alcuna singola azienda che alimenta o possiede la rete Bitcoin. Questa decentralizzazione nella produzione tecnologica ha diversi vantaggi e può essere difficile da comprendere per chi non ha familiarità con lo sviluppo informatico.

Per comprendere meglio la natura dell'open source, è utile prima fare l’esempio di un software open source particolarmente riuscito: Linux.

Cos’è Linux?

Durante il giorno usiamo Linux più volte di quanto non crediamo. Linux è il sistema operativo che sta alla base della maggior parte dei server su Internet. Ogni volta che visiti Facebook, Google, Pinterest, Wikipedia o migliaia di altri importanti siti web, i servizi che il sito ti fornisce (che si tratti di social network, risultati di ricerca, fotografie o articoli enciclopedici) provengono da un computer, e quel computer sta probabilmente eseguendo un sistema operativo chiamato Linux. Se utilizzi un telefono Android, il sistema operativo del telefono è basato su Linux. Se utilizzi un Chromebook, stai utilizzando un laptop basato su Linux. Linux è il sistema operativo più integrato in televisori, termostati, sistemi di intrattenimento delle compagnie aeree, automobili e molto altro.

Perché tutto ciò ci deve interessare? È interessante perché esso non è il prodotto di una manciata di programmatori e (a differenza di MacOS di Apple o Windows di Microsoft) non è stato sviluppato da una società. Linux può infatti vantare migliaia di singoli coautori. Come riportato dalla Linux Foundation (un'associazione senza scopo di lucro dedicata alla promozione dello sviluppo open source del relativo sistema operativo) “nel 2015 circa 14.000 singoli sviluppatori di oltre 1.300 aziende diverse hanno contribuito al kernel“. Come scrisse Eric Raymond, autore di The Cathedral and the Bazaar nel 1996, “Chi avrebbe mai pensato anche solo cinque anni fa che un sistema operativo di prim'ordine potesse fondersi come per magia da un hacking part-time di diverse migliaia di sviluppatori sparsi in tutto il pianeta, collegati solo da Internet?

Linux Mint

Vantaggi dell'Open Source

L’open source rappresenta una modalità rivoluzionaria di produzione tecnologica. Linux, con migliaia di sviluppatori non affiliati e che lavorano in aperta collaborazione, esemplifica il modello open source, ed anche le criptovalute seguono questo modello.

I vantaggi nel modello open source sono diversi:

  • La maggior parte degli sviluppatori in un progetto open source è motivata principalmente perché essa stessa desidera utilizzare il prodotto che sta realizzando. Non hanno un contratto per costruire qualcosa per qualcun altro; hanno un bisogno personale e lo stanno affrontando. Questo porta ad una maggiore conoscenza intima del problema da risolvere.
  • Le persone vanno e vengono all'interno di un progetto open source a seconda dei loro interessi e competenze. Nessuno rimane bloccato a lavorare su progetti ai quali più nessuno è effettivamente interessato.
  • Trattare gli utenti come co-sviluppatori è la via meno complicata per un rapido miglioramento del codice ed un debug efficace. Il confine tra un consumatore e un produttore di software open source diviene labile perché la produzione avviene in modo trasparente sotto il costante controllo del pubblico e la partecipazione alla produzione è disponibile a chiunque.
  • Visto l’ampia disponibilità di beta-tester, quasi tutti i problemi vengono individuati rapidamente. Questa è divenuta meglio nota come la Legge di Linus (da Linus Torvalds, il creatore originale di Linux). Se viceversa lo sviluppo non fosse aperto, tutti gli sviluppatori potrebbero condividere uno specifico “punto cieco” e non notare un determinato errore. Uno sviluppo più ampio osservato da prospettive differenti aumenta la probabilità che i bug vengano scoperti e risolti, rendendo così il software open source più resiliente e sicuro.

L'obiettivo non è quello di produrre qualcosa che arricchisca un'azienda che produce e vende il prodotto, ma piuttosto di produrre qualcosa che risolva un problema comune per il quale una vasta comunità di programmatori diviene entusiasta di dedicare il proprio tempo. Il software libero si materializza praticamente dal nulla, chiunque è libero di usarlo e rimarrà sempre aggiornato fintanto che un certo numero di utenti rimane interessato ad utilizzare il software.

Legalità ed Open Source

Le disposizioni legali ad oggi supportano ed, in alcuni casi, incoraggiano lo sviluppo open source. Il software open source, come tutti i software, è protetto da copyright, ma i suoi autori rilasciano il codice con una licenza permissiva che consente a chiunque di utilizzarlo e modificarlo senza richiedere specifici permessi o effettuare alcun pagamento. Alcune licenze pongono semplici condizioni sugli usi e sulle modifiche future, richiedendo, ad esempio, che nuove opere derivate siano a loro volta rilasciate con i medesimi meccanismi non proprietari, allo scopo di diffondere la politica del codice open source. 

Open Source in criptovalute e token

Linux è probabilmente il più grande ed importante esempio di modello open source, ma ne esistono molti altri. Tra questi ci sono tutte le principali criptovalute e progetti blockchain. Tutti questi progetti creano reti di computer che consentono ai partecipanti tra loro connessi di raggiungere un consenso sui dati condivisi. Il software che consente a qualsiasi partecipante di connettersi alla rete è chiamato client e tale software client viene rilasciato e sviluppato in maniera open source. Il client di riferimento Bitcoin Core è il prodotto di oltre 15.000 contributi di codice univoci provenienti da oltre 450 singoli sviluppatori. Esso è disponibile per l'uso e la modifica gratuiti sotto la licenza di copyright permissiva del MIT e la cronologia completa di tale sviluppo è sempre visibile all'interno di un repository di software pubblico ospitato da Github (un fornitore di servizi cloud che consente a chiunque di registrarsi per un account, caricare nuovo codice e tenere traccia delle modifiche effettuate). Se il repository di codice che crei è aperto al pubblico per la visualizzazione non sarà nemmeno necessario pagare per un account Github.

Il repository pubblico tiene anche traccia dei cosiddetti “fork” del codice nel client di riferimento. Un “fork” crea un clone del software originale che può quindi essere modificato per uno scopo specifico senza alterare il repository originale. Gli sviluppatori eseguono il fork liberamente del repository Bitcoin Core Github per creare applicazioni compatibili con Bitcoin ad esempio un'app wallet per smartphone) oppure creare una nuova criptovaluta che cessa di essere compatibile con la rete Bitcoin e quindi crea una nuova rete di criptovaluta propria (es. Litecoin o Zcash). Ad oggi il client di riferimento Bitcoin Core è stato “forkato” oltre 10.000 volte, e i nuovi repository di quei fork dimostrano lo stato di sviluppo in corso di quei “progetti derivati”.

Il progetto Ethereum è attualmente composto da almeno 121 repository software separati, ciascuno incentrato su diversi aspetti (ad esempio linguaggi di programmazione per la scrittura di smart contracts, browser grafici per l'utente finale). Ci sono non meno di otto progetti software per sviluppare client compatibili con Ethereum e i client più popolari (go-ethereum e Parity) hanno centinaia di sviluppatori indipendenti che contribuiscono al rispettivo codice. Il codice del progetto Ethereum (e la cronologia completa di quel codice) è, come Bitcoin, disponibile pubblicamente all'interno di Github ed altri archivi online, e viene rilasciato sotto la LGPL-3, che è una licenza non proprietaria la quale richiede che tutti i futuri lavori derivati ​​vengano rilasciati con il medesimo meccanismo aperto.

Anche alcuni progetti recenti guidati da start-up finanziate privatamente mostrano un profondo impegno per questo “ethos open-source”. La società Zcash ad esempio sviluppa il protocollo Zcash in modo aperto e permissivo attraverso un archivio pubblico, molti dei principali contributori non sono impiegati della società ed è stato creato un ente no profit pubblico per guidarne la transizione dallo sviluppo incentrato sull'azienda a quello incentrato sulla comunità.

Perché tutto ciò è importante?

Le criptovalute e le reti blockchain ossono fornire funzionalità che sarebbero regolamentate qualora venissero fornite da una singola società. Un emittente centralizzato di valuta digitale come Liberty Reserve è un'attività di servizi monetari che deve registrarsi presso FinCEN ed essere autorizzato a trasmettere denaro in ogni stato. Qualora l'emittente decidesse di commercializzare i propri token come forma di investimento, essi potrebbero qualificarsi come titoli per i quali sarebbe necessario registrarsi presso la S.E.C. Queste norme hanno senso perché i servizi centralizzati comportano il rischio che la parte centrale non mantenga le proprie promesse e non collaudi o garantisca adeguatamente i propri prodotti.

Per converso, le tecnologie come Bitcoin possono creare il medesimo risultato con una rete aperta e non proprietaria. Gli utenti si uniscono a queste reti ed il software open source allinea i loro incentivi alla cooperazione. La decentralizzazione si basa su due aspetti: i meccanismi di consenso aperto ed il software open source. Se il codice non fosse open source, come potrebbero i partecipanti (che tra loro sono dei perfetti sconosciuti) fidarsi del sistema al quale stanno aderendo?