Blockstream to Launch New Smart Contracts Programming Language – Trustnodes

Blockstream to Launch New Smart Contracts Programming Language


Bitcoin’s biggest for profit development corporation, Blockstream, is to launch a new programming language called Simplicity according to one of its employees, Russell O’Connor, who stated:

“Simplicity is a low-level, typed, functional, native MAST language where programs are built from basic combinators. Like Bitcoin Script, Simplicity is designed to operate at the consensus layer. While one can write Simplicity by hand, it is expected to be the target of one, or multiple, front-end languages.”

The new language is at a very early stage, with O’Connor stating it is “still in a research and development phase.” Once ready, it will be used in Blockstream’s side-chains. Thereafter, it might be incorporated into bitcoin, but “has a long ways to go still,” O’Connor says.

How it would be incorporated is an interesting question as it is not clear whether it would need a hardfork or if it can be done with a soft-fork, but bitcoin is seemingly moving, perhaps some time down the line, towards smart contracts. According to the whitepaper, Simplicity:

“Aims to improve upon existing crypto-currency languages, such as Bitcoin Script and Ethereum’s EVM…  Simplicity also includes operational semantics that are defined with an abstract machine that we call the Bit Machine. The Bit Machine is used as a tool for measuring the computational space and time resources needed to evaluate Simplicity programs.”

Gregory Maxwell, Blockstream’s CTO, says this is meant to be a low level language, with other languages built on top of it, compiling down to Simplicity. He says:

“For the moment it’s still also mostly just a base – I don’t anticipate typical smart contracting end users programming directly with simplicity even if Bitcoin did support arbitrary simplicity – I expect they’d program in user friendly domain specific languages which are formally tied to their implementations in simplicity that allow – but do not force – closed loop formal reasoning about their contracts all the way from their high level business rules straight through to the machine code implementing the interpreter(s) that run in the network.”

It’s unclear what he means by they “do not force” closed loop formal reasoning. The main selling point in the whitepaper appears to be that it’s non-Turing complete.

That means, in some ways, it is more limited than Ethereum smart contracts, which are Turing complete. But Simplicity may allow for finality, that is, closed loops.

It was probably inevitable that smart contracts would come to bitcoin one way or another. The currency has its own inbuilt smart contract language of sorts, scripts, but most of them have been disabled under general suggestions of security concerns.

The script language, however, is very difficult to work with, with Rootstock trying to implement Ethereum’s EVM through a sidechain of sorts.

However, Rootstock appears to be facing some resistance and seems to be delayed. With Blockstream now making clear their, likely long-standing plans, to implement smart contracts of sorts.

But they are far behind ethereum, which has had some considerable academic interest and rigorous analysis, including from the alliance of almost all global corporations, as well as elite universities.

With Simplicity probably at least two-three years down the line for bitcoin incorporation, if not later, there would be some significant amount of catching up to do.

However, it is becoming somewhat clear that the main digital currencies are following a generally similar roadmap, minus some ancillary differences here and there.

That is scalability, privacy, refined smart contracts and generally codable money, fast transactions, and cheap transaction. The only question now is which will do all of it better, and which one will manage to do it all much quicker.


Leave a Reply

Your email address will not be published.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>