Bitcoin Forum
March 29, 2024, 12:51:19 PM *
News: Latest Bitcoin Core release: 26.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Simplicity new language for blockchains  (Read 1334 times)
matthewcampbell (OP)
Newbie
*
Offline Offline

Activity: 15
Merit: 1


View Profile WWW
October 31, 2017, 04:53:07 AM
 #1

Anyone read the Simplicity paper from block stream. https://blockstream.com/simplicity.pdf . Its rather interesting, it appears they are making a new language for smart contracts. This one seems more formally proved with Coq, hopefully it won't have as many security issues as solidity
1711716679
Hero Member
*
Offline Offline

Posts: 1711716679

View Profile Personal Message (Offline)

Ignore
1711716679
Reply with quote  #2

1711716679
Report to moderator
"This isn't the kind of software where we can leave so many unresolved bugs that we need a tracker for them." -- Satoshi
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
buwaytress
Legendary
*
Offline Offline

Activity: 2758
Merit: 3408


Join the world-leading crypto sportsbook NOW!


View Profile
October 31, 2017, 08:29:31 AM
 #2

Thanks for sharing, first time I've come across the term "Bitcoin as programmable money". I've got a question (or observation?), with early caveat that am as close as it gets to being a Bitcoin user with zero-knowledge on programming/coding language.

1. So far, improvements and upgrades to the network are done through script addons, as an alternative or workaround to an overhaul of the coding structure - since that would require a hard fork (correct?). If Simplicity is a low-level language, would it also interact with Bitcoin the same way? The paper says "possibly in Bitcoin itself" but does not seem to mention how or why not.

2. Will it ever be possible to do an overhaul of the network's main script or will it be the last possible solution, since in my mind doing so without forking would not be possible?

██
██
██
██
██
██
██
██
██
██
██
██
██
... LIVECASINO.io    Play Live Games with up to 20% cashback!...██
██
██
██
██
██
██
██
██
██
██
██
██
matthewcampbell (OP)
Newbie
*
Offline Offline

Activity: 15
Merit: 1


View Profile WWW
October 31, 2017, 09:23:52 AM
 #3

Yeah they are quite vague about how this would actually work in practice. I suspect its going to require a hard fork to actually make this happen. So it probably makes more sense to do more upgrades to the existing script
HeRetiK
Legendary
*
Offline Offline

Activity: 2884
Merit: 2061



View Profile
October 31, 2017, 11:09:48 PM
 #4

Thank you for sharing! I still need to read the paper in detail, but at a first glance this looks very exiting, should it come to fruition.

Simplicity's restrictiveness will make writing scripts probably hard to learn, but even harder to fuck up -- in other words, exactly what you want from a scripting language that is supposed to handle billions worth of unmutable transactions. Statelessness without recursions and higher-order functions -- that's a solid foundation. More solid, than... ahem... Solidity. Excuse the pun. From a language design perspective that's probably as secure as it can get.

I just hope that Simplicity doesn't turn out to be too restrictive for practical use. However given the nature of smart contracts, I'm afraid the kind of restrictiveness that Simplicity offers is the only way to go. Lest we get DAO debacles and parity hacks all over the place.


[...]

2. Will it ever be possible to do an overhaul of the network's main script or will it be the last possible solution, since in my mind doing so without forking would not be possible?

I only read a bit since it's a bit difficult for me, but i wonder how fast/secure secure is it compared with current system/technology we use and wonder if it's need hard fork if developers think it's good solution/upgrade for bitcoin?

Yeah they are quite vague about how this would actually work in practice. I suspect its going to require a hard fork to actually make this happen. So it probably makes more sense to do more upgrades to the existing script

SegWit introduced script versioning so maybe they will be able to deploy Simplicity using that -- which means without a hardfork. But I guess the jury is still out on that one, otherwise they would have explicitely mentioned that in the whitepaper.
Polygora
Newbie
*
Offline Offline

Activity: 28
Merit: 0


View Profile WWW
October 31, 2017, 11:41:17 PM
 #5

The statement about programs not having access to any outside information is interesting. Surely it means you can't make timed contracts?...

Why can't Charles Moore take his big brain and make a FORTH-like VM for blockchain?
gmaxwell
Moderator
Legendary
*
expert
Offline Offline

Activity: 4158
Merit: 8343



View Profile WWW
November 01, 2017, 12:51:34 AM
 #6

SegWit introduced script versioning so maybe they will be able to deploy Simplicity using that -- which means without a hardfork. But I guess the jury is still out on that one, otherwise they would have explicitely mentioned that in the whitepaper.

::sigh::  People think weird stuff.   The paper does not talk about Bitcoin integration in any detail, as it is massively premature for that.


But adding a new script system is a softfork, it's always been a softfork. It's pretty much the most softforky thing you can imagine, and moreover it's already been done before!  P2SH replaced Script with a nested copy of Script..  In that case the nested thing was the same as the outer thing, but there was no technical reason it couldn't have been different.


HeRetiK
Legendary
*
Offline Offline

Activity: 2884
Merit: 2061



View Profile
November 01, 2017, 01:11:23 AM
 #7

SegWit introduced script versioning so maybe they will be able to deploy Simplicity using that -- which means without a hardfork. But I guess the jury is still out on that one, otherwise they would have explicitely mentioned that in the whitepaper.

::sigh::  People think weird stuff.   The paper does not talk about Bitcoin integration in any detail, as it is massively premature for that.

[...]

Apart from Simplicity being still in the conceptional phase -- Is it really that off-target to presume that script versioning could be helpful in deploying Simplicity without the need for a hardfork -- ie. requiring only a softfork instead? Isn't that one of the possible use cases of script versioning?
Ucy
Sr. Member
****
Offline Offline

Activity: 2576
Merit: 401


View Profile
November 03, 2017, 03:55:58 PM
 #8

 Does this mean Bitcoin will be having Smart Contract soon? That would be awesome, friends!
Bitcoin is too big and important to be without Smart Contract  
Hope this works as planned.

Currently on WhitePaper.
pebwindkraft
Sr. Member
****
Offline Offline

Activity: 257
Merit: 343


View Profile
November 04, 2017, 02:30:55 PM
 #9

The statement about programs not having access to any outside information is interesting. Surely it means you can't make timed contracts?...

Why can't Charles Moore take his big brain and make a FORTH-like VM for blockchain?

the problem is merely, how to integrate data from real live (like stock exchange values) into the contract.
When it comes to timed contracts, we already have this with CHECKLOCKTIMEVERIFY and CHECKSEQUENCEVERIFY.
See my posting here: https://bitcointalk.org/index.php?topic=2204938.msg23664225#msg23664225

Oh, and the whole stack engine is already FORTH like. Have a look at it here: https://en.bitcoin.it/wiki/Script
Polygora
Newbie
*
Offline Offline

Activity: 28
Merit: 0


View Profile WWW
November 04, 2017, 05:32:46 PM
 #10

Oh, and the whole stack engine is already FORTH like. Have a look at it here: https://en.bitcoin.it/wiki/Script
I want to be able to define my own words, in the blockchain's VM. Forth is run in an operating system after all, why can't it be one on a blockchain?
haltingprobability
Member
**
Offline Offline

Activity: 98
Merit: 26


View Profile
November 05, 2017, 03:06:52 AM
 #11

Oh, and the whole stack engine is already FORTH like. Have a look at it here: https://en.bitcoin.it/wiki/Script
I want to be able to define my own words, in the blockchain's VM. Forth is run in an operating system after all, why can't it be one on a blockchain?

I think you're looking for something more like Ethereum's Solidity. While Bitcoin does use a miniature stack-based language, its only purpose is to assess the validity of the transaction. From the Wiki, "A transaction is valid if nothing in the combined script triggers failure and the top stack item is true (non-zero)." Pay-to-script-hash allows a fairly large script to be created but the transaction fees for evaluating the script may be very high. This is quite different from Ethereum, where scripting is comparatively very cheap. But even the largest transaction script could not begin to handle OS-style programming.
vv181
Legendary
*
Offline Offline

Activity: 1932
Merit: 1273


View Profile
November 05, 2017, 07:01:15 AM
 #12

I still didn't have time to read a full paper but so only read a little bit. "Simplicity is a typed, combinator-based, functional language without loops and recursion, designed to be used for crypto-currencies and blockchain applications", first that comes up in my mind is does the flexibility in the language reduced? and how about its security, sometimes efficiency is often sacrificed for security purposes.
Polygora
Newbie
*
Offline Offline

Activity: 28
Merit: 0


View Profile WWW
November 05, 2017, 04:34:42 PM
 #13

I think you're looking for something more like Ethereum's Solidity. While Bitcoin does use a miniature stack-based language, its only purpose is to assess the validity of the transaction. From the Wiki, "A transaction is valid if nothing in the combined script triggers failure and the top stack item is true (non-zero)." Pay-to-script-hash allows a fairly large script to be created but the transaction fees for evaluating the script may be very high. This is quite different from Ethereum, where scripting is comparatively very cheap. But even the largest transaction script could not begin to handle OS-style programming.
That's what I mean. Bitcoin needs a VM layer like Ethereum, and a FORTH-like language that compiles to BVM (a hypothetical Bitcoin VM) bytecode.
HeRetiK
Legendary
*
Offline Offline

Activity: 2884
Merit: 2061



View Profile
November 05, 2017, 05:02:49 PM
 #14

I still didn't have time to read a full paper but so only read a little bit. "Simplicity is a typed, combinator-based, functional language without loops and recursion, designed to be used for crypto-currencies and blockchain applications", first that comes up in my mind is does the flexibility in the language reduced? and how about its security, sometimes efficiency is often sacrificed for security purposes.

Yes. Compared to turing-complete languages you are looking at improved security by reducing complexity which more or less translates to reduced flexibility and expressiveness. There's always a trade-off.


That's what I mean. Bitcoin needs a VM layer like Ethereum, and a FORTH-like language that compiles to BVM (a hypothetical Bitcoin VM) bytecode.

If I understood it correctly the VM layer would be the Bit Machine mentioned in the whitepaper, with Simplicity being the equivalent of bytecode.
igotek
Hero Member
*****
Offline Offline

Activity: 2030
Merit: 608


Online Security & Investment Corporation


View Profile WWW
February 20, 2018, 11:01:53 PM
 #15

any exchane for quark simplicity ?

I cannot live, I cannot die, trapped in myself.
Hold my breath as I wish for death. Oh please god, help me !
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!