L'EIP o Ethereum Improvements Proposte, è una struttura documentaria che permette di standardizzare lo sviluppo dei miglioramenti all'interno di Ethereum, permettendo a chiunque di presentare le proprie proposte e quindi migliorare lo sviluppo di questa blockchain.
Unon dei processi più importanti all'interno dello sviluppo di Ethereum (ETH), si svolge nei conoscenti Proposte di miglioramento EIP o Ethereum. Si tratta di documenti tecnici in cui la comunità di sviluppo di Ethereum formula le sue proposte di miglioramento per questo progetto. Questa è un'idea che è stata adottata dall'esperienza di Bitcoin (BTC), dove ci sono Proposte di miglioramento di Bitcoin (BIP), che hanno lo stesso scopo e di cui abbiamo già parlato in Bit2Me Academy.
Il motivo per l'adozione di questo modello organizzativo è dovuto alla richiesta di un alto livello di organizzazione nelle comunità di sviluppo decentralizzate per gestire e decidere i prossimi miglioramenti che saranno integrati nel progetto. In questo modo, qualsiasi sviluppatore può presentare una proposta di miglioramento che verrà discussa nella community e, a seconda del suo impatto, potrà essere inclusa o meno all'interno del protocollo Ethereum.
Per fare ciò, lo sviluppatore dell'idea deve spiegare in dettaglio la sua proposta, argomentare perché la sua implementazione nel progetto è positiva e dimostrarne chiaramente la fattibilità e l'impatto. Pertanto, la creazione di questi documenti è esplicita e ha un obiettivo molto chiaro e definito: proporre alla comunità il futuro del progetto e dare a tutti l'opportunità di discuterne.
Inizio delle proposte di miglioramento di Ethereum o EIP
Come accennato, l'idea alla base della creazione delle proposte di miglioramento di Ethereum o EIP, deriva dalle esperienze applicate in Bitcoin. Ricordiamo che, in Bitcoin, i BIP hanno lo scopo di consentire alla comunità di mostrare al resto dei membri i miglioramenti che vogliono includere nel protocollo Bitcoin. L'idea dei PIF è stata inizialmente proposta da Amir Taaki, che ha progettato il protocollo iniziale per presentarli, creando il Bitcoin BIP-001.
Allora lo sviluppatore Luke Dashjr, ha migliorato questa idea grazie alla sua esperienza di sviluppo in comunità libere (in particolare, la sua esperienza in Gentoo GNU / Linux), creando il BIP-002. Da quel momento ad oggi, i BIP sono stati il veicolo utilizzato per includere nuovi miglioramenti all'interno di Bitcoin.
L'idea ha avuto un tale successo che è stata replicata in altre criptovalute, ed Ethereum non le è sfuggito. Così, il 27 ottobre 2015, il EIP-001, creato da Martin Becze e Hudson Jameson, due importanti sviluppatori di Ethereum. In detto EIP si legge il seguente titolo:
Scopo e linee guida dell'EIP
Cioè, questo primo EIP ha stabilito le linee generali e lo scopo di quali sarebbero gli EIP all'interno di Ethereum. In effetti, la sua introduzione non potrebbe essere più chiara al riguardo:
EIP sta per Ethereum Improvement Proposta. Un EIP è un documento di progettazione che fornisce informazioni alla comunità di Ethereum o che descrive una nuova funzionalità per Ethereum oi suoi processi o ambiente. L'EIP deve fornire una specifica tecnica concisa della caratteristica e una giustificazione per essa. L'autore dell'EIP è responsabile della creazione del consenso all'interno della comunità e della documentazione delle opinioni dissenzienti.
Classificazione EIP
Come per i BIP di Bitcoin, gli EIP di Ethereum rispettano una serie di classificazioni che specificano dove sono diretti i miglioramenti che presentano. In tal caso, la classificazione Ethereum EIP è suddivisa in tre classi che sono:
Standard EIP
Questi EIP vengono utilizzati per descrivere i cambiamenti che interessano la maggior parte o tutte le implementazioni di Ethereum. Ricordiamo che Ethereum è un protocollo, e la sua implementazione ufficiale è data nel software Geth. Ma come questo software ci sono altre implementazioni come quella che possiamo vedere in Hyperledger Besu o Parità.
I miglioramenti descritti in un EIP di tipo Standard, generalmente includono modifiche al protocollo di rete o un cambiamento nelle regole di blocco o convalida delle transazioni. Si applica anche alle modifiche proposte agli standard applicativi oa qualsiasi modifica o aggiunta che influisca sull'interoperabilità delle applicazioni. Pertanto, gli EIP di tipo Standard sono quelli con la maggiore portata nello sviluppo di Ethereum.
Inoltre, gli EIP di tipo Standard sono suddivisi nelle seguenti sottocategorie:
- Di base- In questa sottocategoria ci sono gli EIP che cercano miglioramenti che richiedono un cambiamento di consenso all'interno di Ethereum. Un buon esempio di questi EIP sono EIP-005 e EIP-0101). Tuttavia, sono inclusi anche quei miglioramenti in cui le modifiche non sono necessariamente critiche per il protocollo di consenso. Un esempio di quest'ultimo può essere visto in EIP-086 e EIP-090.
- Reti: questa sottocategoria include miglioramenti intorno a devp2p (EIP-8) e al protocollo di rete, questo include quei miglioramenti proposti alle specifiche del protocollo di gossip e lo sciame di Ethereum.
- Interfaccia: questa sottocategoria include quei miglioramenti nelle specifiche e negli standard di API/RPC del client Ethereum. Inoltre, sono incluse anche le modifiche a livello ABI e API della stessa. Un buon esempio di questi EIP può essere visto in EIP-006.
- ERC- Standard e convenzioni a livello di applicazione, inclusi standard contrattuali come; standard di token (ERC-20, ERC-721 y ERC-1155), registri dei nomi (ERC-26, ERC-137), schemi URI (ERC-67), formati libreria/pacchetto (EIP-82) e formati portafoglio (EIP-75, EIP-85).
Obiettivo EIP
L'altra classificazione degli EIP è nota come Meta EIP. Questi EIP descrivono un processo che circonda Ethereum o ne propongono una modifica. Questi EIP generalmente propongono modifiche a un'implementazione, ma non alla base del codice Ethereum. Questi spesso richiedono il consenso della comunità, a differenza degli EIP informativi, gli utenti non sono liberi di ignorarli.
Un buon esempio di questo tipo di EIP può essere visto nei cambiamenti nelle procedure e nelle linee guida nel processo decisionale e nei cambiamenti negli strumenti o nell'ambiente utilizzati nello sviluppo di Ethereum. Qualsiasi EIP obiettivo è anche considerato un EIP di processo.
Informativo
Un EIP informativo descrive un problema di progettazione di Ethereum o fornisce linee guida o informazioni generali alla comunità di Ethereum, ma non propone una nuova funzionalità. Gli EIP informativi non rappresentano necessariamente il consenso o la raccomandazione della comunità di Ethereum, quindi gli utenti e gli implementatori sono liberi di ignorare gli EIP informativi o seguire i loro consigli.
Come funzionano le proposte di miglioramento di Ethereum o EIP
Il funzionamento degli EIP è chiaramente definito nell'EIP-001. Questo processo inizia con il processo di generazione dell'idea o della proposta da parte dell'autore dell'EIP. A questo punto inizia la responsabilità dello sviluppo sull'autore, e sarà lui che dovrà presentare gli argomenti necessari per dimostrare la necessità della sua proposta, oltre che difenderla. Per questo motivo, l'autore dell'EIP deve creare un'idea chiaramente spiegata e presentarla nel corpo dell'EIP, insieme a una giustificazione ed elementi che ne supportino la presentazione.
Quindi, a questo punto abbiamo le seguenti fasi:
Come funzionano le proposte di miglioramento di Ethereum o EIP
Il funzionamento degli EIP è chiaramente definito nell'EIP-001. Questo processo inizia con il processo di generazione dell'idea o della proposta da parte dell'autore dell'EIP. A questo punto inizia la responsabilità dello sviluppo sull'autore, e sarà lui che dovrà presentare gli argomenti necessari per dimostrare la necessità della sua proposta, oltre che difenderla. Per questo motivo, l'autore dell'EIP deve creare un'idea chiaramente spiegata e presentarla nel corpo dell'EIP, insieme a una giustificazione ed elementi che ne supportino la presentazione.
Quindi, a questo punto abbiamo le seguenti fasi:
Prima fase: presentazione dell'idea
È la fase più elementare e rozza di un EIP. In pratica presenta l'aggiornamento come suggerimento sui forum di Ethereum. L'obiettivo di questo è ottenere feedback dalla comunità, per continuare o meno con lo sviluppo della proposta in modo più elaborato.
Seconda fase: Creazione della bozza
A questo punto l'idea è già incarnata ed eseguita seguendo i parametri organizzativi previsti da un EIP. È un work-in-progress attivo in cui puoi inviare richieste di follow-up con ulteriori modifiche alla tua bozza fino al punto in cui pensi che l'EIP sia maturo e pronto per passare allo stato successivo.
Terza tappa: Ultima chiamata
A questo punto la bozza corretta viene pubblicata sul sito web di EIPS Ethereum. L'idea di questa fase è presentare l'EIP al maggior numero di persone all'interno della comunità, completare le correzioni e creare un'implementazione completamente funzionale e rivista dell'EIP.
Quarta tappa: Accettazione
Questo stato indica che le modifiche sostanziali sono improbabili e gli sviluppatori di client Ethereum dovrebbero considerare questo EIP per l'inclusione. Il tuo processo per decidere se modificarlo sui tuoi clienti come parte di a hard fork non fa parte del processo EIP. Questo stato è applicabile solo agli EIP per i processi blockchain di base.
Quinta tappa: presentazione finale
Questo punto rappresenta uno stato in cui l'EIP dovrebbe essere aggiornato solo per correggere errori di stampa. Inoltre, altri stati possono essere contrassegnati come:
- Attivo: in alcuni PEI informativi e di processo possono anche avere lo stato "Attivo" se non devono mai essere completati.
- abbandonato: Gli autori originali non stanno più cercando di implementare questo EIP o potrebbe non essere più un'opzione (tecnicamente) preferita.
- Respinto: un EIP sostanzialmente danneggiato o un EIP Core che è stato rifiutato da Core Devs e non verrà implementato.
- Sostituito: Un EIP che in precedenza era definitivo ma non è più considerato all'avanguardia. Un altro EIP sarà nello stato finale e farà riferimento all'EIP sostituito.
Formato di una proposta di miglioramento di Ethereum o EIP
Naturalmente, le Ethereum Improvements Offering o EIP, essendo documenti tecnici, hanno un formato di presentazione standard che indica chiaramente tutte le informazioni necessarie per comprendere il miglioramento da esso proposto. Quindi abbiamo che il formato EIP contiene le seguenti righe:
- preambolo. Questa è l'introduzione all'EIP. Sono formattati seguendo la guida di stile stabilita dallo standard RFC 822. Questo preambolo include tutti i dati di base dell'EIP, come il suo numero, il suo autore, il nome e una breve descrizione.
- Riassunto. A questo punto troveremo una breve descrizione (non più di 200 parole) del problema tecnico che viene affrontato nell'EIP.
- Motivazione. Questo punto è facoltativo e dovrebbe essere obbligatorio solo se si desidera modificare il protocollo Ethereum. A questo punto, l'autore dell'EIP dovrebbe spiegare chiaramente perché la specifica del protocollo esistente è inadeguata per affrontare il problema che l'EIP risolve. Le proposte EIP senza una motivazione convincente a questo punto possono essere respinte del tutto.
- specificazione. A questo punto l'autore dell'EIP deve creare e spiegare la sintassi e il miglioramento che propone. Deve essere chiaro e conciso, dimostrabile e riproducibile. Se la specifica non rispetta questi principi sarà semplicemente respinta.
- Giustificazione. La giustificazione sviluppa la specifica descrivendo cosa ha motivato il progetto e perché sono state prese particolari decisioni di progettazione. Dovrebbe descrivere i progetti alternativi che sono stati considerati e il lavoro correlato. La giustificazione può anche fornire prova del consenso all'interno della comunità e dovrebbe affrontare importanti obiezioni o preoccupazioni sollevate durante la discussione.
- Retrocompatibilità. Tutti gli EIP che introducono incompatibilità con le versioni precedenti devono includere una sezione che descriva queste incompatibilità e la loro gravità. L'EIP dovrebbe spiegare come l'autore propone di affrontare queste incongruenze. Le proposte EIP prive di un trattato di retrocompatibilità sufficiente possono essere respinte del tutto.
- Casi test. I casi di test per un'implementazione sono necessari per gli EIP che influenzano le modifiche del consenso. Altri EIP possono scegliere di includere collegamenti a casi di test, se applicabile.
- implementazioni. Le implementazioni devono essere completate prima che qualsiasi EIP riceva lo stato "Finale", ma non è necessario completarle prima che l'EIP venga unito come bozza. Sebbene l'approccio di raggiungere il consenso sulla specifica e sulla logica prima di scrivere il codice abbia valore, il principio del "consenso generale e esecuzione del codice" è ancora utile quando si tratta di risolvere molti argomenti sui dettagli dell'API.
- Considerazioni sulla sicurezza. tutti i PEI devono contenere una sezione che discuta le implicazioni/considerazioni sulla sicurezza relative alla modifica proposta. Includere informazioni che possono essere rilevanti per discussioni sulla sicurezza, rischi superficiali e che possono essere utilizzate durante il ciclo di vita della proposta. Per esempio. Includono decisioni di progettazione rilevanti per la sicurezza, dubbi, discussioni importanti, indicazioni specifiche sull'implementazione e insidie, un riepilogo delle minacce e dei rischi e il modo in cui vengono affrontati. Le proposte EIP mancanti nella sezione "Considerazioni sulla sicurezza" saranno respinte. Un EIP non può passare allo stato "Finale" senza una discussione delle considerazioni sulla sicurezza che i revisori ritengono sufficienti.
- Esenzione dal diritto d'autore. Tutti gli EIP devono essere di pubblico dominio.
Alcune importanti proposte di miglioramento di Ethereum o EIP
Anche se puoi vedere tutti gli EIP quiQui spieghiamo alcuni degli EIP più importanti.
EIP-606: Obiettivo Hard Fork: Homestead
El EIP-606 è un EIP di tipo Meta. Questo descrive tutti i punti necessari per eseguire l'aggiornamento di Homestead su Ethereum. Essendo un EIP di tipo Meta, fa riferimento ad altri EIP che spiegano tutte le modifiche che verranno apportate. In questo caso, l'EIP-606 invoca i seguenti EIP:
- EIP-2: Modifiche all'hard fork di Homestead
- EIP-7: CHIAMATA DEL DELEGATO
- EIP-8: requisiti di compatibilità forward devp2p per Homestead
Ciascuno di questi EIP spiega individualmente le modifiche da apportare e insieme portano all'aggiornamento di Homestead.
EIP-20: standard token ERC-20
El EIP-20 è forse uno degli EIP più conosciuti nel mondo Ethereum poiché è stato creato per implementare il ben noto Token standard ERC-20. Questo sviluppo ha segnato l'inizio per Ethereum di creare uno strumento standard per distribuire i token sulla sua blockchain. Di conseguenza, Ethereum è diventata la blockchain con il maggior numero di token esistente oggi.
EIP-137: Ethereum Domain Name Service - Specifiche
El EIP-137 ha dato vita alla specifica del sistema Ethereum Domain Name. Da qui verrebbero create tutte le infrastrutture necessarie affinché Ethereum possa diventare un gigantesco servizio di nomi di dominio (DNS) completamente decentralizzato e focalizzato sulla privacy. Ma non solo, permetterebbe anche di associare un indirizzo leggibile ad un indirizzo crittografico per ricevere e inviare con esso criptovalute. Questo lavoro ha portato alla ENS.
EIP-721: standard token non fungibile ERC-721
El EIP-721 è un altro EIP ampiamente conosciuto a causa del fatto che lui stesso ha creato lo standard per i token non fungibili di Ethereum, il ERC-721. Da questo token sono nati progetti come CryptoKitties.
EIP-779: Hard fork Meta: DAO Fork
Questo è forse l'EIP più controverso di Ethereum. Il EIP-779 Era responsabile di "risolvere" il problema dell'hacking multimilionario del DAO. Per fare ciò, EIP ha eseguito una riscrittura dell'intera storia della blockchain di Ethereum da pochi istanti prima che il DAO fosse violato.
Questo con l'obiettivo di restituire i fondi rubati ai loro proprietari. A seguito dell'applicazione di questo hard fork, Ethereum è stato diviso in due community ciascuna con la propria blockchain. Quello che ha applicato la patch (Ethereum) e quello che non l'ha applicata (Ethereum Classic).
EIP-1155: standard multi-token
El EIP-1155 Conosciuto anche come token ERC-1155, è un EIP di tipo standard che cerca di progettare un nuovo tipo di token, che riunisce le capacità dei token ERC-20 ed ERC-721 nello stesso standard. In questo modo, i token ERC-1155 hanno proprietà fungibili e non fungibili.
EIP-1559: Modifica del mercato delle commissioni ETH 1.0
Questo EIP cerca di cambiare il modo in cui le commissioni vengono gestite all'interno della rete. Per questo, il EIP-1559 crea un meccanismo di combustione delle commissioni che impedisce a Ethereum di avere un'inflazione più elevata e, allo stesso tempo, espande o riduce la capacità dei blocchi di Ethereum di includere più transazioni per ridurre la congestione della rete.