ErgoScript is the powerful underlying smart contract language of Ergo. It is a high-level developer-friendly language for writing smart contracts that are then compiled to ErgoTree before being written to the blockchain.
ErgoScript is a super-simple subset of Scala. It is a top-level language translated into a low-level language called ErgoTree, which is translated during execution into cryptographic protocol.
Programs in ErgoScript are used to specify the conditions under which currency can be spent. The language supports a type of non-interactive zero-knowledge proofs called Sigma (Σ) protocols and is flexible enough to allow for: ring-signatures, multi signatures, multiple currencies, atomic swaps, self-replicating scripts, and long-term computation.