Quelles sont les différences entre un mainnet et un testnet ?

Le mainnet et le testnet sont deux types de réseaux complémentaires et indispensables au bon fonctionnement des blockchains. L'un se réfère à l'environnement réel sur lequel évolue une blockchain tandis que l'autre est un environnement test sur lequel les développeurs expérimentent leur code. Mais qu'est-ce qui distingue vraiment un mainnet d'un testnet ?