funzione finalizzata a (1) garantire l’integrità e la decentralizzazione di una blockchain durante la generazione dei blocchi, (2) evitare l’abuso dell’infrastruttura di rete e (3) assegnare un premio a un miner in grado di dimostrare la propria capacità computazionale