I didn't get into Clarity in my summary above but really into the decidable smart contract language design. The reason I didn't mention Clarity is because most programs on Blockstack are not smart contracts. We think that smart contracts are only a subset of use-cases and should only be used when needed vs. making smart contracts the only way to program decentralized apps.
For any readers that are intrigued by what is Clarity, it's Blockstack's smart contract language that is different in two mains ways:
a) Clarity is a decidable language i.e., it is intentionally Turing-incomplete. This allows for complete static analysis of the entire call graph of smart contracts.
b) Clarity is interpreted. The contract source code itself is published and executed by blockchain nodes i.e., no compiler.
For any readers that are intrigued by what is Clarity, it's Blockstack's smart contract language that is different in two mains ways:
a) Clarity is a decidable language i.e., it is intentionally Turing-incomplete. This allows for complete static analysis of the entire call graph of smart contracts.
b) Clarity is interpreted. The contract source code itself is published and executed by blockchain nodes i.e., no compiler.
More details on Clarity are here: https://blog.blockstack.org/introducing-clarity-the-language...