Fork

Difficoltà: base

Argomento: tecnologia


DEFINIZIONE

Il termine fork letteralmente traducibile con biforcazione, indica un aggiornamento o una modifica che può essere usato sia in contesti relativi alle criptovalute e alle loro blockchain, o in altri contesti quali il software.

In relazione alla blockchain, un fork può essere definito in diversi modi, come:

  • cun evento in cui una blockchain si divide in due percorsi diversi,
  • una modifica al protocollo,
  • o una situazione che si verifica quando due o più blocchi hanno la stessa altezza di blocco.

E può essere classificato come:

  • Hard fork: un cambiamento al sistema che non è retrocompatibile. Tutti i nodi ed eventualmente i wallet devono aggiornarsi alle nuove regole per continuare a funzionare correttamente;
  • Soft fork: un cambiamento al sistema che è retrocompatibile finché la maggioranza dei miner lo applica. I full node che non si aggiornano potrebbero non essere in grado di verificare i blocchi generati dopo il fork, il che potrebbe portare a una riduzione della sicurezza.
  • Chain fork o Chain split: un evento in cui due o più blocchi hanno lo stesso numero di blocco, o altezza del blocco, sulla blockchain. Questo può accadere quando due miner minano quasi in contemporanea lo stesso blocco, è un evento previsto e tipicamente alcune volte alla settimana per caso e viene risolto con i nodi che si allineano alla catena più lunga, ma in casi particolari potrebbe essere causato da problemi più gravi.

I fork nella blockchain sono causati dal fatto che i diversi partecipanti devono utilizzare regole comuni per mantenere la cronologia della blockchain.

Quando i partecipanti non sono d'accordo sulle regole, possono emergere catene alternative.
Mentre la maggior parte dei fork è temporanea, alcuni sono permanenti.
I fork temporanei sono causati dalla difficoltà di raggiungere un rapido consenso in un sistema distribuito, ad esempio quando più miner generano un nuovo blocco a distanza di tempo molto ravvicinata.
I fork permanenti, che possono essere modifiche al protocollo, posso essere effettuati per aggiungere nuove funzionalità a una blockchain, possono anche essere usati per invertire gli effetti dell'hacking come nel caso di Ethereum ed Ethereum Classic, o per evitare bug catastrofici su una blockchain come nel caso del fork bitcoin del 6 agosto 2010.

Il termine fork nasce e viene usato anche per contesti diversi dalla blockchain: * Software fork: creare un nuovo progetto partendo dal codice di un progetto open source esistente. * fork di un repository su git: è un modo per contribuire a un progetto senza apportare modifiche al repository originale. Se si vuole contribuire a un progetto ma non si può o si vuole apportare modifiche al repository originale, è possibile creare un fork e quindi creare una pull request per le modifiche. Se la pull request viene accettata, le modifiche verranno incorporate nel repository originale.


aggiornato il 2022-09-15