Author

Topic: Simplicity - A new advanced programming Language for Bitcoin (Read 580 times)

legendary
Activity: 2268
Merit: 16328
Fully fledged Merit Cycler - Golden Feather 22-23
I'm reupping this long-forgotten thread to reprise some news from Blockstream: Simplicity is not dead.

Simplicity Arrives on Liquid Testnet[/url

Quote
Back in 2017, when we first published the Simplicity whitepaper, our mission was to build a smart contracting language that outperforms Bitcoin Script and Ethereum's EVM, offering more expressiveness with stronger safety assurances. Seven years later, we believe we have done it. On October 9th, we activated Simplicity on Liquid testnet. This is a massive milestone for the community and represents many years of development, marking the evolution of Simplicity from a research-driven experiment to a fully-fledged language with real-world usability.

They also announced Simfony.
Quote
a more developer-friendly “front-end” language, called Simfony, which looks and feels like the Rust programming language while mapping down to Simplicity.

That is nice to hear. Even if the timeline is quite uncertain and long-term, luckily, I might add it.
legendary
Activity: 1512
Merit: 7340
Farewell, Leo
We should immediately reject anything blockstream proposes due to their conflict of interest selling sidechains, a market created by throttling L1 capacity of bitcoin.
And why hard-forking to big blocks isn't considered a conflict of interest on its own? Because that's the other solution (not on scaling, just on temporary increase in on-chain transactions per second).

Huh I could have sworn it was just yesterday that there was a 12 hour backlog on our blockchain with 70mb of transactions waiting to be verified.  Lightning isn't solving it, its been 7 years.
You're gravely mistaken. It's getting stronger by the years. It's just that demand is as well. To put it this way: if there wasn't lightning, be sure that the backlog would be worse.
legendary
Activity: 2870
Merit: 7490
Crypto Swap Exchange
We should immediately reject anything blockstream proposes due to their conflict of interest selling sidechains, a market created by throttling L1 capacity of bitcoin.

Their sidechain (Liquid network) may be unattractive for most people and it's federated (rather than decentralized), but it doesn't mean everything they do is evil or harmful towards Bitcoin. Even though i prefer Minsc which is also easy to use/understand without soft-fork.

--snip--

Bitcoin was 1mb in 2010.  Moores law shows that capacity doubles every 2 years.  So for us in 2022, 64mb is equivalent to 1mb in 2009.

This is gross simplified approach towards choosing block size. There are so many things you need to consider such as,
1. Hardware and internet connection price across country is different.
2. Not everyone upgrade their hardware/internet every year.
3. Some expert predict Moore's law hit it's limit soon due to various reason such as physical limitation of silicon-based CPU.
member
Activity: 322
Merit: 54
Consensus is Constitution
We should immediately reject anything blockstream proposes due to their conflict of interest selling sidechains, a market created by throttling L1 capacity of bitcoin.
There's just so much data that can fit into a block

That is by decision, not any inherent property of the network.  Initially bitcoin had no blocksize limit, which was consistent with the whitepaper.  One was later stealth hardforked in due to fear of spam attacks.  In hindsight spam attacks are a non-issue and can be controlled by min tx fee.

Bitcoin was 1mb in 2009.  Moores law shows that capacity doubles every 2 years.  So for us in 2022, 64mb is equivalent to 1mb in 2009.
Oh. You're a big-blocker. In 2022. That's fun. Cheesy Why don't you just go and use BCH, then, and bother writing in a Bitcoin forum? You may find some people to talk about BCH in the Altcoin section, if that's your thing. For anyone else here, big blocks are just an old topic from 2016-2017 that's been discussed to death. I doubt anyone's getting into this argument again in 2022.

Huh I could have sworn it was just yesterday that there was a 12 hour backlog on our blockchain with 70mb of transactions waiting to be verified.  Lightning isn't solving it, its been 7 years.
legendary
Activity: 1568
Merit: 6660
bitcoincleanup.com / bitmixlist.org
Bitcoin was 1mb in 2009.  Moores law shows that capacity doubles every 2 years.  So for us in 2022, 64mb is equivalent to 1mb in 2009.

1) That applies to hardware transistors only, not software.
2) The thermodynamic limits that Moore's Law CPUs like the Core 2 have encountered is the reason why you're not using a ~ 1 Terahertz CPU in 2022 and why Bitcoin network is not using 64MB blocks.

@filliponne is Simplicity dormant? I don't see anyone discussing it at all
legendary
Activity: 2268
Merit: 16328
Fully fledged Merit Cycler - Golden Feather 22-23

Bitcoin was 1mb in 2009.  Moores law shows that capacity doubles every 2 years.  So for us in 2022, 64mb is equivalent to 1mb in 2009.
Oh. You're a big-blocker. In 2022. That's fun. Cheesy Why don't you just go and use BCH, then, and bother writing in a Bitcoin forum? You may find some people to talk about BCH in the Altcoin section, if that's your thing. For anyone else here, big blocks are just an old topic from 2016-2017 that's been discussed to death. I doubt anyone's getting into this argument again in 2022.

And if you really want to discuss anything about Big Block, please do this outside this thread, which I am aldready struggling keeping at par with the incensed subject.
hero member
Activity: 882
Merit: 5834
not your keys, not your coins!
We should immediately reject anything blockstream proposes due to their conflict of interest selling sidechains, a market created by throttling L1 capacity of bitcoin.
There's just so much data that can fit into a block

That is by decision, not any inherent property of the network.  Initially bitcoin had no blocksize limit, which was consistent with the whitepaper.  One was later stealth hardforked in due to fear of spam attacks.  In hindsight spam attacks are a non-issue and can be controlled by min tx fee.

Bitcoin was 1mb in 2009.  Moores law shows that capacity doubles every 2 years.  So for us in 2022, 64mb is equivalent to 1mb in 2009.
Oh. You're a big-blocker. In 2022. That's fun. Cheesy Why don't you just go and use BCH, then, and bother writing in a Bitcoin forum? You may find some people to talk about BCH in the Altcoin section, if that's your thing. For anyone else here, big blocks are just an old topic from 2016-2017 that's been discussed to death. I doubt anyone's getting into this argument again in 2022.
member
Activity: 322
Merit: 54
Consensus is Constitution
We should immediately reject anything blockstream proposes due to their conflict of interest selling sidechains, a market created by throttling L1 capacity of bitcoin.
There's just so much data that can fit into a block

That is by decision, not any inherent property of the network.  Initially bitcoin had no blocksize limit, which was consistent with the whitepaper.  One was later stealth softforked in due to fear of spam attacks.  In hindsight spam attacks are a non-issue and can be controlled by min tx fee.

Bitcoin was 1mb in 2010.  Moores law shows that capacity doubles every 2 years.  So for us in 2022, 64mb is equivalent to 1mb in 2009.
hero member
Activity: 882
Merit: 5834
not your keys, not your coins!
We should immediately reject anything blockstream proposes due to their conflict of interest selling sidechains, a market created by throttling L1 capacity of bitcoin.
I don't think so. A company can do something you don't like, while still doing other good stuff.
Who do you believe is throttling L1 capacity of Bitcoin? Because if anything, L1 capacity was increased with SegWit. There's just so much data that can fit into a block; which is why different L2 technologies started emerging a few years ago. But it's not the other way round.
member
Activity: 322
Merit: 54
Consensus is Constitution
We should immediately reject anything blockstream proposes due to their conflict of interest selling sidechains, a market created by throttling L1 capacity of bitcoin.
hero member
Activity: 1274
Merit: 561
Leading Crypto Sports Betting & Casino Platform
Simplicity has numerous potentials, one is the ability to implement vaults on the blockchain, which allows for a devaulting withdrawal interval before a coin gets to its destination, within this period a user can decide to cancel or approve a transaction. This will help reduce the fear of losing private keys to an attacker. As it'll buy enough time for the user to move funds to another wallet, or terminate any transaction altered by the attacker.

Quote
I think speculation about simplicity in bitcoin is extremely premature

With the use of “Jet" simplicity will be easily implemented into real life and won't be speculation anymore, and if multiple of them gets implemented, jets can run a simplicity program without the blockchain, but in rare cases, as the blockchain can't easily get out ruled. In addition, the Jets can reduce the bitcoin script size to smaller bytes.

Quote
Earlier this year, by extending the C implementation to support jets, and implementing key functionality with a modified version of the high-performance libsecp256k1 library, we were able to recreate the previous release’s test transaction, but now with a greatly reduced program size of 448 bytes, down from 14,635 bytes! For reference, a standard Bitcoin script of similar functionality is 107 bytes. There are still plenty more jets to implement, which will further reduce script sizes, but these numbers and the surprising compactness of Simplicity script object code, shows that Simplicity is practical and usable in a blockchain context.

Roconnor-blockstream on a GitHub discussion when a question was raised about this PR also added that simplicity will help make the bitcoin script low in size thereby making it concise.

Quote
Additionally we should note that Simplicity is implemented as a new Tapleaf version and different Tapleaf versions can be mixed inside a Taproot. This allows one address to contain a (disjunctive) mixture of Simplicity and Script. I think Script will end up being slightly more concise and hence lower weight to use for policies that it is capable of expressing, so it is likely sensible to mix them together.

However, the project is still in progress, but the proposal has good qualities that'll reshape the bitcoin script and add other features that could make the blockchain simple and user-friendly.

https://medium.com/blockstream/simplicity-jets-release-803db10fd589
hero member
Activity: 882
Merit: 5834
not your keys, not your coins!
~
I just stumbled across this and thought to myself: why are they still talking about implementing Taproot? Cheesy
Then I realized it's a 2 years old topic.

Quote
enabling arbitrary computation
As in: Turing completeness? I don't know about that.. Tongue
legendary
Activity: 2268
Merit: 16328
Fully fledged Merit Cycler - Golden Feather 22-23
I was browsing the Blockstream Website, and I found an article about Simplicity.

Nothing really exciting, just another overview of the Simplicity language by Christian Lewe


From Miniscript to Simplicity
Quote
How can we do more than Miniscript while preserving its useful properties? How can we make the system more powerful while preserving its structure? These thoughts lead us to Simplicity, an entirely new blockchain language designed from the ground up as an alternative to Bitcoin Script.

I had lost a little bit of track of this project.
I will try to catch up!
staff
Activity: 4284
Merit: 8808
you are right about addition of Schnorr and it being through a soft-fork but if a new SigHashType (eg. SIGHASH_NOINPUT) were to be added to the protocol i don't think we can find a way to introduce it as a soft-fork anymore.
Not so. It just has to be done by added a new script version or turning a no-op into a checksig operator.  P2SH and segwit both did the relevant change-- segwit even effectively added new sighash types in the sense that its sighashes are computed very differently.

I think speculation about simplicity in bitcoin is extremely premature.  But I do think simplicity is a much better direction for underlying systems for smart contract than other development we've seen.  The first step in advancing this science is having a understanding of the landscape, the next step is building an initial system that answers that understanding in a compelling way...  and I think the work on simplicity is doing that, but it's still early work.

No necessity of a hard fork to implement Schnorr, that would be implementable via soft fork. Of course it doesn't mean that if something is technically feasible, it is the best way to do that, as we must take into account also a wide array of argumentation in each way to progress.

A soft-fork is still a consensus change-- you've got to get other people to agree to run it.  The point the article was making was that with a sufficiently powerful script you could deploy new behaviour without changing the consensus rules.  This wouldn't always be ideal or even useful, because it will generally be much more expensive (fee and resource usage wise) to write a feature yourself compared to consensus support.

E.g. taproot wouldn't make sense done this way, because a big part of the point of it is how efficient it is!

One interesting thing about the architecture of simplicity is that it gives an straight-forward path to promoting an expensive "custom" script to direct consensus support.  Nodes can be taught to replace chunks of simplicity code with native code, and because their behaviour can be proven identical these optimizations are not consensus changes.  Then there are ways that the costing can be updated to discount the cost of the optimized operations-- essentially have the cost structure for those calls continually re-softforked in on a rolling basis.

So at least conceivably the progression for some custom use could be initial one-off usage at high fee and node resource costs, then optimizing the nodes without changing consensus,  and then finally a very narrow consensus to how weights are calculated to change reflect the true cost of the operator now that everyone has been optimized for it.

legendary
Activity: 3472
Merit: 10611
~

you are right about addition of Schnorr and it being through a soft-fork but if a new SigHashType (eg. SIGHASH_NOINPUT) were to be added to the protocol i don't think we can find a way to introduce it as a soft-fork anymore.
member
Activity: 90
Merit: 91

Thanks! Very interesting indeed


Quote
“Interesting implication: If Bitcoin had Simplicity scripts today, it [would become] self-extensible,” wrote Adam Back on Reddit. “Schnorr/Taproot [and] SIGHASH_NOINPUT would be implementable [directly].”

Here, Back is using proposed soft-forking changes in Bitcoin as examples of the types of additions that can be made to Bitcoin without changing the consensus rules if Simplicity were available in Bitcoin. When reached for comment directly, Back clarified, “I believe technically Taproot is not implementable with Simplicity from what Pieter [Wuille] was saying—though Schnorr is.”

No necessity of a hard fork to implement Schnorr, that would be implementable via soft fork. Of course it doesn't mean that if something is technically feasible, it is the best way to do that, as we must take into account also a wide array of argumentation in each way to progress.

It's a detail not affecting the overall value of your post, but -just for the sake of pleasant forum interactions- I *think* to have read in the past that Schnorr will be introduced by a soft-fork playing with segwit version (BIP 141: "[...] If the version byte is 1 to 16, no further interpretation of the witness program or witness stack happens, and there is no size restriction for the witness stack. These versions are reserved for future extensions. [...]")... the same way the article imagines Simplicity introduction...

So I guess Longhash author wasn't thinking about "hard-fork VS soft-fork" improvement, instead "one soft-fork per-feature VS Simplicity single soft-fork potentially enabling many features"

Bye! :-)
legendary
Activity: 2268
Merit: 16328
Fully fledged Merit Cycler - Golden Feather 22-23
A very interesting piece on LongHash about Simplicity, BlockStream proposed Programming Language for Bitcoin:

How to Make Advanced Smart Contracts Possible on Bitcoin

Quote
Simplicity is a new programming language for Bitcoin that allows for much greater flexibility in constructing smart contracts than what is possible on the Bitcoin network today. The low-level language was created by Blockstream Infrastructure Tech Developer Russell O’Connor.


Bitcoin programming is something that has always been included in Bitcoin protocol

Quote
Bitcoin creator Satoshi Nakamoto limited Bitcoin Script in the early days of the project for security reasons, and Simplicity can be seen as an attempt to offer much more flexibility in Bitcoin Script while also retaining an adherence to security and, as the name suggests, simplicity.

Here lies the difference with Bitcoin Script and also Miniscript, a higher level "interface" language to program using native Bitcoin Script: Simplicity is an evolution of Bitcoin protocol, requiring a soft fork to be implemented.

This opens what could be an interesting idea of making Bitcoin Protocol progress:

Quote
“Interesting implication: If Bitcoin had Simplicity scripts today, it [would become] self-extensible,” wrote Adam Back on Reddit. “Schnorr/Taproot [and] SIGHASH_NOINPUT would be implementable [directly].”

Here, Back is using proposed soft-forking changes in Bitcoin as examples of the types of additions that can be made to Bitcoin without changing the consensus rules if Simplicity were available in Bitcoin. When reached for comment directly, Back clarified, “I believe technically Taproot is not implementable with Simplicity from what Pieter [Wuille] was saying—though Schnorr is.”

No necessity of a hard fork to implement Schnorr, that would be implementable via soft fork. Of course it doesn't mean that if something is technically feasible, it is the best way to do that, as we must take into account also a wide array of argumentation in each way to progress.

No need to hold your breath for this to happen on Bitcoin protocol, even if some real world deployment can happen sooner than you might expect:

Quote
It should be noted that we’re likely still years away from Simplicity being added to Bitcoin’s mainnet. However, the scripting language is expected to be added to the Liquid sidechain later this year.


The Longhash article point a lot on the "make Bitcoin a smart contract platform like Ethereum". I personally don't like Bitcoin to be considered in the same league of Ethereum. And someone called Grubles, who works at Blockstream, agrees with me:

Quote
Grubles added that, in his view, Ethereum has done a lot of damage to the “smart contract” term with all of the various broken smart contracts that have been deployed on the platform over the years. For this reason, they think Bitcoin users who have been paying attention to Ethereum may not be excited to see smart contracts become more flexible on Liquid.

So, while we have been hearing about simplicity in the past few years, we might be close to its implementation in the coming months, even if in a "walled garden" of a Bitcoin federated sidechain. This would be a little bit of real world testing, smoothing and consensus building around this technology to be later safely implemented in Bitcoin Mainnet.


Learn more on Simplicity:

Webinar by Adam Back, BlockStream CEO.
Simplicity: Next-Gen Smart Contracting Webinar | April 8th 2020 | Dr. Adam Back

Blockstream on Medium:
Simplicity: Jets Release A new developer preview of Simplicity introducing jets to streamline contract development

Jump to: