L’ether è frazionabile in unità più piccole:
- il milliether, o finney, pari a 0,001 ether;
- il microether, o szabo, pari a 0,000001 ether;
- il gwei, o shannon, pari a 0,000000001 ether;
- il mwei, o lovelace, pari a 0,000000000001 ether;
- il kwei, o babbage, pari a 0,000000000000001 ether;
- il wei, pari a 0,000000000000000001 ether.
Ma l’ether ha anche dei multipli:
- il kether, o grand o einstein, pari a 1.000 ether;
- il mether, pari a 1.000.000 di ether;
- il gether, pari a 1.000.000.000 di ether;
- il tether, pari a 1.000.000.000.000 di ether.
L’algoritmo proof-of-work di Ethereum si chiama “Ethash” (precedentemente Dagger-Hashimoto). È questo l’algoritmo che dà senso alla difficoltà del blocco. Ricordando, come visto in precedenza, che gli smart contract rappresentano il software che memorizza l’insieme delle istruzioni all’interno della blockchain.
Anche nel caso di Ethereum, dunque, uno smart contract è semplicemente un programma che risiede a un indirizzo specifico sulla blockchain di Ethereum e che viene eseguito su di essa. Essendo un tipo di account Ethereum essi hanno un saldo e possono inviare transazioni in rete, pur non essendo controllati da un utente, ma distribuiti in rete ed eseguiti come programmato. Per questo motivo, chiunque può scrivere uno smart contract e distribuirlo nella rete, a patto di saper programmare in un linguaggio per smart contract e avere abbastanza ether. Distribuire uno smart contract è tecnicamente una transazione, quindi occorre pagare una commissione (la cosiddetta gas fee) per la distribuzione del contratto, così come avviene quando si vuole elaborare e convalidare una qualunque transazione. Per scrivere smart contract, Ethereum prevede due linguaggi per gli sviluppatori: Solidity e Vyper.