Da "Hello World" a Bitcoin Core
Recentemente la mia prima pull request è stata incorporata in Bitcoin Core. Vi racconto la mia esperienza al riguardo.
Versione audio a cura di @CypherBull
Cherry Metal (Harley Benton SC-450 Demo Song) By Arthur Vyncke is licensed under a Creative Commons License.
Traduzione dall'originale di Rajarshi Maitra - Pubblicato il 15 giu 2020
Recentemente la mia prima richiesta di pull (modifica) a Bitcoin Core è stata incorporata. Non è stata una modifica critica al protocollo, ma è stata una piccola funzionalità aggiunta al framework di test, che a volte può essere utile per gli sviluppatori. Questo ha completato una delle mie pietre miliari personali da quando ho iniziato il mio viaggio con Bitcoin, il 26 ottobre 2017. Ricordo succintamente la data e persino l'ora esatta in cui tutto è iniziato, semplicemente per l'impatto che ha avuto su di me. Da allora il mio viaggio nella tana del coniglio mi ha portato ad esplorare argomenti che non hanno mai fatto parte di un mio percorso professionale immaginabile. E lungo la strada, ho incontrato persone fantastiche e probabilmente alcuni amici per la vita.
Dato che provengo da un background non CS (Computer Science), tutto ciò che riguarda Bitcoin era nuovo di zecca per me. Concetti, idee e terminologie che non avevo mai sentito prima son o apparsi ovunque. Le prime settimane sono state travolgenti mentre stavo scoprendo l'intersezione di più discipline a partire da informatica, matematica, economia e politica. La dissonanza cognitiva era dura e l'inevitabile realizzazione di ciò che è il denaro mi ha colpito ancora di più. Sapevo di essere entrato in qualcosa di grande e volevo andare il più in profondità possibile. Essere uno sviluppatore non è mai stato parte del piano perché non stavo cercando opportunità di carriera. Ma il percorso della curiosità è fortuito e, onestamente, questo è il divertimento. L'unico motivo per cui ho iniziato a imparare a programmare era per avere una comprensione più intima di Bitcoin. E ci sono voluti 2 anni e 5 mesi dalla scrittura del mio primo programma "Hello World" in Python, per ottenere il mio primo PR (Pull Request) unificato in Core.
Ho condiviso l'emozione di quel giorno in un tweet e con mia sorpresa, molte persone si sono avvicinate a me dicendo che è una fonte di ispirazione per molti altri che si trovano in diverse fasi dello stesso viaggio.
In questo articolo cercherò di articolare la mia esperienza di viaggio nella speranza che possa essere utile a chi guarda verso un percorso simile e si chiede se ne valga la pena. Spoiler: lo è.
Mi piace descriverlo come una "escursione sulla collina di Bitcoin", in contrapposizione alla più comune analogia del "cadere nella tana del coniglio". Anche se all'inizio c'è sicuramente una caduta, ma una volta superata la dissonanza iniziale e schiarita la vista, ti rendi conto esattamente di cosa stai guardando. Quindi è il momento per un pò di azione e inizia la "escursione".
The Hike: l'escursione
Prima di intraprendere qualsiasi escursione, proviamo a raccogliere informazioni periferiche sul viaggio, il percorso, l'ambiente, la storia e le storie del luogo che stiamo per visitare. Queste informazioni ci aiutano ad apprezzare l'intera estensione del viaggio e diventa una vera esperienza piuttosto che una semplice passeggiata. Lo stesso vale per il "Bitcoin Hike". Si può benissimo diventare un esperto di "Tecnologia Blockchain" senza mai rendersi conto della storia che c'è dietro (credimi, esistono), ma non puoi mai essere un Bitcoiner senza di loro. L'escursione di Bitcoin è in definitiva parte dell'infinita lotta umana per la libertà. L'escursione si conclude in un vertice in un mondo iperbitcoinizzato, libero dalla tirannia dello stato e dalla perpetua rapina del potere d'acquisto pubblico da parte dell'attuale regime di moneta fiat.
Molto è stato scritto, detto, contemplato e spiegato su cosa sia Bitcoin nell'ultimo decennio. Eppure non siamo ancora stati in grado di trovare una definizione di Bitcoin e probabilmente non lo faremo mai. Questo non solo perché Bitcoin è troppo multidisciplinare per vincolarlo in un'unica definizione, ma anche perché in definitiva è un sistema di consenso sociale. Che cos'è Bitcoin, dipende da ciò che tutti pensano che Bitcoin sia in questo momento. E quel consenso può benissimo cambiare nel prossimo momento. Bitcoin è cose diverse per persone diverse. A seconda del loro attuale dominio di competenza, visione del mondo, motivazione politica e situazione ambientale, ogni individuo lo percepisce da diverse prospettive.
Bitcoin è una collina con molti sentieri su cui camminare. A seconda di dove qualcuno parte, possono tracciare percorsi diversi e fare esperienze diverse. Ma alla fine raggiungono tutti lo stesso picco.
Per coloro che cercano di iniziare il percorso tecnico lungo la collina, ecco il mio breve tentativo di spiegare il protocollo Bitcoin da un punto di vista visivo.
Bitcoin è un insieme di regole di comunicazione. Se hai mai giocato al gioco dei cifrari nella tua infanzia, dove tu ei tuoi amici mescolaste le parole mentre comunichi in una lezione di corsa passando appunti, Bitcoin è quasi così. Solo tu e i tuoi amici sapevate le regole per slegarli e nessuno degli altri amici poteva leggere il messaggio in transito. Il bitcoin è come una tale regola di comunicazione, ma per i computer e, a differenza del gioco cifrato, non crittografa nulla. Ogni computer che esegue il software Bitcoin può parlare con altri computer che eseguono Bitcoin (ovvero nodi) su Internet. E comunicano tra loro seguendo questo insieme di regole, noto come protocollo Bitcoin. Queste regole sono speciali e sono state progettate per facilitare uno scopo speciale. Seguendo queste regole, ogni computer può raggiungere un accordo tra loro sullo stato di un database. Questo database è chiamato canonicamente Blockchain e ogni nodo ne conserva una copia locale. Le informazioni all'interno di questo database sono nella una forma di "X possiede Y bitcoin". E poiché i nodi concordano tra loro sullo stato di questo database in ogni istante di tempo, ogni nodo può rispondere alla domanda "Chi possiede cosa?", in ogni istante di tempo. Indipendentemente dal nodo della rete che chiedi, tutti daranno la stessa identica risposta. Così, seguendo questo insieme di regole piuttosto peculiare, la rete Bitcoin simula un sistema monetario globale, dove gli accordi su chi possiede quanto denaro possono essere concordati tra tutti i nodi, senza avere un punto centrale di autorità.
Quest'ultima frase è di fondamentale importanza. L'intera ragione per fare tale danza di protocollo tra i computer è di mettersi d'accordo senza bisogno di un'autorità centrale. Se hai un'autorità centrale non hai più bisogno del protocollo, perché l'autorità tiene semplicemente traccia di chi possiede cosa e tutti gli altri possono semplicemente chiedere all'autorità. Pertanto, il protocollo Bitcoin risolve essenzialmente il problema dell'Accordo Senza Autorità Terze.
Questo problema di accordo era piuttosto antico ed è stato formalmente descritto per la prima volta nel 1982 nel contesto dei sistemi informatici distribuiti, noti come il Problema dei Generali Bizantini. Ma andando più in profondità nell'affermazione, si scopre che il problema è più di natura socio-politica che informatica.
"Come può un gruppo di entità diffidenti, che vivono in un ambiente contraddittorio, mettersi d'accordo su qualsiasi affermazione?"
Questo problema ha afflitto la società umana sin dall'inizio dell'era degli insediamenti di greggi, poiché si può facilmente intuire che tali problemi sorgerebbero quando si tratta di governance sociale. L'unica soluzione possibile che gli esseri umani potrebbero trovare finora, è l'ideazione dello "Stato" (leader del branco / monarchia / democrazia). Allo stato è affidato il potere autorevole di "decidere" su dichiarazioni di vero e falso per conto dell'intera società, e chiunque altro può semplicemente chiedere allo stato ogni volta che ne ha bisogno. Quando lo stesso problema si presenta nel contesto della moneta e della finanza, lo abbiamo risolto con le Banche Commerciali e le Banche Centrali. Dove le persone chiedono alle Banche Commerciali che, a loro volta, chiedono alla Banca Centrale la risoluzione di tali questioni decisionali. Scorci di questo problema si possono trovare quasi ovunque nella nostra società, e in tutte, l'unica soluzione che gli esseri umani hanno è quella di posizionare una figura autorevole per dettare le informazioni necessarie agli individui per mettersi d'accordo.
Questo fino al 3 gennaio 2009. Quando un'entità pseudonima di nome Satoshi Nakamoto, pubblicò apertamente un codice C ++ che sembrava descrivere un protocollo di comunicazione, che pretendeva di risolvere il Problema dei Generali Bizantini. Finora Bitcoin ha risolto il problema, per migliaia di nodi, senza fallo, negli ultimi 11 anni.
Nasce così la prima istanza di una soluzione al problema dell'Accordo Senza Autorità Terze, e la sua prima applicazione fu un sistema monetario globale decentralizzato, che non può essere manipolato, controllato, negato, gonfiato o fermato.
Quindi, ovviamente, la collina di Bitcoin è un'escursione dannatamente eccitante da fare.
Lo zaino
Quindi, quando si inizia un'escursione sulla collina di Bitcoin, ci sono pochi elementi essenziali che devono raccogliere. A differenza di una vera escursione, la maggior parte degli strumenti e dei servizi devono essere raccolti lungo la strada. Ma per cominciare abbiamo bisogno di alcune primitive di base.
Crittografia
Bitcoin è un protocollo crittografico. Anche se non utilizza alcuna forma di crittografia / decrittografia (questo potrebbe cambiare con BIP324), ci sono altre costruzioni crittografiche ampiamente utilizzate al suo interno. Le più importanti sono le funzioni hash e l'Algoritmo di Firma Digitale. Le funzioni hash vengono utilizzate per simulare gli impegni e sono l'intera base dell'algoritmo di consenso Proof Of Work che risolve il Problema dei Generali Bizantini tra colleghi non attendibili. L'Algoritmo di Firma Gigitale viene utilizzato per simulare la prova della proprietà sulle risorse digitali (bitcoin) all'interno del protocollo. Quindi un corso di crittografia sarà sicuramente di aiuto. Ce ne sono molti disponibili online, io ho scelto questo.
Programmazione
Bitcoin è un protocollo di comunicazione per computer connessi a Internet. Quindi, naturalmente, le regole sono scritte in un linguaggio che i computer possono capire. La prima implementazione di riferimento è stata scritta in C ++ da Satoshi Nakamoto, noto come Bitcoin Core. Le traduzioni dello stesso insieme di regole possono essere trovate in quasi tutti gli altri linguaggi di programmazione disponibili. Quindi, per seguire il percorso, è assolutamente necessaria la conoscenza della programmazione. Questa è di gran lunga la più grande curva di apprendimento se inizi da zero. Ci sono varie risorse là fuori per sporcarti i piedi con i concetti di programmazione e quasi tutte sono accessibili gratuitamente. Lascio al lettore la possibilità di esplorare autonomamente formati di apprendimento adeguati. Se sei nuovo nella programmazione, probabilmente il linguaggio più semplice con cui iniziare è python. C'è un buon articolo di Pierre Rochard sul lato tecnico del bitcoin. Mooniversity di Justin Moen è una grande risorsa con video tutorial per creare un sistema simile a bitcoin da zero in Python. Jimmy Song ha scritto Programming Bitcoin in cui sviluppi da zero una libreria fittizia di bitcoin python, dandoti una buona panoramica di come funzionano le diverse parti del sistema. Christopher Allen ha una bella procedura dettagliata per imparare bitcoin dalla riga di comando, che ti consentirà di essere al passo con Bitcoin RPC e terminale Linux. E usa Mastering Bitcoin di Andreas Antonopoulos come libro di riferimento per goto. La programmazione è una disciplina piuttosto vasta e non è limitata solo a Bitcoin. A volte può sembrare spaventoso, ma è fattibile anche senza una laurea in informatica. Ricorda di non smettere mai se vuoi intraprendere questa ricerca, continua a camminare.
Il club
Una volta raccolti i preliminari nello zaino, la cosa successiva da fare è iscriversi a un club. Fortunatamente, esiste un club Bitcoin PR Review, avviato da Jhon Newberry l'anno scorso. Ogni mercoledì i partecipanti analizzano e discutono una Pull Request di Bitcoin Core. Questo non è solo il posto migliore per familiarizzare con il codice di base, ma è anche un terreno molto maturo per i nuovi studenti, che possono così acquisire rapidamente nuovi concetti. All'inizio potrebbe sembrare un po' intimidatorio. Ma ricordate che non si tratta di sapere tutto, ma di capire cosa non sapete ancora, per poi tornare indietro e impararlo. Con il tempo si acquisirà una comprensione e una conoscenza tali da poter partecipare in modo significativo alle conversazioni e al processo di revisione di GitHub. John Newberry, Jonatack, Jimmy Song e Amiti Uttarwar hanno creato alcuni ottimi articoli che spiegano il percorso di contribuzione a Core. Queste sono alcune ottime risorse da cui partire quando si è pronti a sporcarsi le mani con la programmazione Bitcoin nel mondo reale.
Economia/Politica/Teoria dei Giochi
Infine, mentre continui a preparare lo zaino, tieni presente che Bitcoin è molto più di un semplice codice. Al di là dei tecnicismi, Bitcoin è un bellissimo fenomeno sociale. Il sistema funziona con una progettazione incentivata intelligente in cui viene fornita la giusta quantità di incentivi per ogni partecipante alla rete, quindi tutti stanno meglio supportando il sistema invece di attaccarlo. Questo design economico simula una convergenza teorica del gioco dello stato della Blockchain tra tutti i suoi partecipanti. Un ordine emerge dagli eventi apparentemente casuali dell'operazione di hashing SHA256 nel meccanismo Proof Of Work. Bitcoin è definito come la prima istanza di anarchia deterministica creata dall'uomo. Ma l'etica alla base di questa idea è politica e il seme è cresciuto almeno negli ultimi 30 anni in un attivismo noto come movimento Cypherpunk. Si trattava essenzialmente di un attivismo accademico sotterraneo volto a utilizzare la matematica e gli strumenti della crittografia per demolire l'invasione dello Stato sulla libertà umana in tutto il mondo. Bitcoin è il frutto del movimento Cypherpunk. Inoltre, l'idea si ricollega perfettamente a un campo di contrarian completamente indipendente nel dominio dell'economia noto come Scuola Austriaca di Economia. Dove gli accademici hanno smascherato i gravi difetti dell'attuale regime di moneta fiat almeno dagli anni '20. Molto è stato detto ed esplorato in Internet aperto sulla storia e la politica dell'idea di Bitcoin, ed è molto più importante conoscerli che imparare a programmare. Dan Held ha scritto un elaborato resoconto dei principi e dell'attivismo dietro Bitcoin nella sua serie Planting Bitcoin. Saifedean Ammous ha fornito un resoconto completo dell'implicazione di uno standard monetario solido e solido sulla nostra economia, società e vita personale nel suo libro The Bitcoin Standard. Parker Lewis ha fornito una panoramica intellettuale di come l'implicazione di uno standard di denaro duro sia quasi inevitabile nella sua serie Gradually, Then Suddenly. Un elenco enorme ma non esaustivo di risorse di varie discipline legate a Bitcoin può essere trovato qui, qui, qui e qui.
Conclusioni
La quantità di risorse disponibili può sembrare semplicemente opprimente. È facilmente possibile che questo possa essere il più grande viaggio intellettuale che tu abbia mai intrapreso. Ma non lasciarti sopraffare, perché non devi imparare tutto in una volta. Se sei qui per le giuste ragioni, sapresti che questo è il viaggio di una vita. Bitcoin non è uno schema per arricchirsi rapidamente. È un'idea rapida gratuita. La prima cosa - almeno qualche grammo della conoscenza di Bitcoin di cui sopra - farà è ridurre drasticamente la tua preferenza temporale. E questo è di per sé un enorme miglioramento personale. Imparare l'argomento del Bitcoin è come mangiare un elefante gigante, non puoi mangiarlo in un colpo, devi prenderne un boccone alla volta.
E non posso sottolineare abbastanza che è ancora più importante capire il "perché" di Bitcoin rispetto al "come". Se hai intravisto un mondo iperbitcoinizzato, libero dalla tirannia delle dittature, libero da dosi massicce di disuguaglianza derivante dall'effetto Cantillon, libero dalle banche centrali che ti derubano abitualmente del tuo potere d'acquisto per alimentare le Wall Streets del mondo, libero dall'esclusione finanziaria, libero da torturanti embarghi commerciali posti per soddisfare l'ego malato dello Stato, libero da guerre senza fine e violazioni dei diritti umani in tutto il mondo, hai già fatto le valigie. L'unica cosa che resta è uscire dalla tua comodità e iniziare a camminare. E se ci sei, hai già ottenuto le risposte più preziose di "Perché", e il "Come" è tutto là fuori, in attesa di essere digerito, gratuitamente.
Se sei arrivato così lontano, è tuo dovere morale investire ogni capacità intellettuale in eccesso che puoi risparmiare nel miglioramento di Bitcoin, in qualsiasi forma o forma. Prendere parte a questo movimento volontario pacifico, creato dal popolo, per il popolo, per portare la libertà non solo nel tuo paese ma nel mondo intero insieme. Il movimento non riconosce la cultura, i confini o la razza poiché anche l'estorsione della tirannia non riconosce nessuno di loro. Bitcoin è possibile il primo passo più efficace per riparare il tuo mondo che è completamente rotto da ogni aspetto di una società funzionale. Ma Bitcoin è più di un semplice codice. È un virus idea. E se ne sei completamente infettato, saprai nel tuo istinto cosa devi fare per diffonderlo tra menti ignare.
Sotto questa maschera c'è più che carne, sotto questa maschera c'è un'idea, signor Creedy, e le idee sono a prova di proiettile.
— V for Vendetta
Non importa se non sai programmare o non hai la tenacia o il fascino di impararlo. Anche pensare e contemplare Bitcoin seduto nell'angolo della tua stanza è un contributo positivo all'idea. Sii l'amico fastidioso nel tuo gruppo che non riesce a smettere di parlare di Bitcoin. Sii il facilitatore tecnico per i tuoi amici, familiari e vicini che non possono accedere a questa classe di risorse da soli. Diventa un educatore Bitcoin. Onestamente, non esiste un "Bitcoin Expert" in questo mondo. Sii l'esperto di cui hanno bisogno i tuoi.
Spero che questo pezzo fornisca alcuni indizi utili su come iniziare la tua escursione sulla collina di Bitcoin. Anche se non esiste un sentiero perfetto da seguire, puoi sempre creare il tuo percorso. In effetti, questo è il modo più corretto per godersi questo viaggio. Fai una deviazione, perditi per qualche mese, poi torna di nuovo più forte. Anche se ho appena iniziato la mia escursione, sicuramente questo è lo sforzo intellettuale più gratificante che ho intrapreso. Spero che questo mormorio abbia un senso e ti vedrò al culmine dell'iperbitcoinizzazione.
Via, si parte per la luna !!
Come acquistare Bitcoin?
Personalmente, reputo il miglior servizio quello offerto da Relai.
Per acquistare bitcoin risparmiando lo 0,5% in commissioni puoi usare il codice “REL3166”.
Si tratta di un’applicazione sviluppata da un’azienda svizzera che applica una politica di KYC light: a differenza dei grandi exchange non richiede registrazioni o dati personali, tutto ciò che serve per acquistare è il tuo IBAN.
E’ lo strumento ottimale per impostare dei piani di accumulo (DCA).
Per ridurre al massimo le commissioni di acquisto, ti consiglio di:
effettuare acquisti maggiori di 100€ (-0,5%)
impostare un piano di accumulo settimanale o mensile (-0,5%)
applicare il codice invito REL3166 (-0,5%)
Una delle migliori caratteristiche è il servizio non-custodial. Gli euro bonificati a Relai vengono convertiti automaticamente in bitcoin e trasferiti su un wallet di cui sei solo tu ad avere il controllo. I grossi exchange, al contrario, non forniscono le chiavi private ai clienti. In più Relai non vende centinaia di inutili criptovalute, ma solo bitcoin.
Cosa ci guadagno? Quello che fanno guadagnare i referral code. In questo caso se acquisti usando il codice “REL3166” risparmi lo 0,5% sulle commissioni e io ricevo (in bitcoin) lo 0,5% dell’importo che hai deciso di investire.
Per ulteriori informazioni, o per effettuare il primo acquisto, premi sul pulsante sottostante e ti verrà mostrata una dettagliata guida in italiano.
NOTA - Questo NON è un messaggio pubblicitario. Relai è un servizio che utilizzo personalmente e che reputo tra i migliori sul mercato in termini di affidabilità, sicurezza e facilità d’uso. Lo consiglio spesso ad amici e parenti.