Solidity
A linguagem em que os contratos inteligentes do Ethereum são escritos — familiar na sintaxe, implacável na semântica.
Solidity tem tipagem estática e empresta a aparência do JavaScript e do C++, o que a torna fácil de começar e fácil de subestimar. O código é compilado para bytecode da EVM, e cada operação custa gás, o que faz com que otimizar signifique algo completamente diferente da programação comum.
O que mais muda é que um contrato não pode ser atualizado depois de publicado. Um bug não tem correção, e o código é público para qualquer um examinar — inclusive os atacantes. A reentrância, o clássico por trás do ataque à DAO, continua sendo a armadilha mais conhecida. Verificação formal e auditoria externa são, por isso, rotina e não luxo.