Solidity
Ethereum上のスマートコントラクトを書くための言語。見た目は馴染み深いが、意味論には容赦がない。
Solidityは静的型付けで、見た目はJavaScriptやC++に似ている。始めやすい反面、甘く見てしまいやすい。コードはEVM向けのバイトコードにコンパイルされ、すべての操作にガスがかかるため、最適化は普通のプログラミングとはまったく別物になる。
最も違うのは、コントラクトがデプロイ後に更新できないことだ。バグは修正できず、コードは攻撃者を含む誰にでも公開されている。DAOハッキングで有名になったリエントランシーは、今でも最もよく知られた落とし穴だ。そのため形式検証や外部監査は、贅沢ではなく日常的な作業になっている。