Very interesting. Sadly, I know nothing about Scala.

Is part of the idea to make the code as short as possible? Kind of like those <1 kB chess programs that attempt to do the same? If so, wouldn't adopting proof-of-work rather than proof-of-stake help simplify things even further? Or are proof-of-stake systems not significantly more complex than proof-of-work systems?