Bitcoin Forum
February 18, 2020, 03:15:36 PM *
News: Latest Bitcoin Core release: 0.19.0.1 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Simplicity new language for blockchains  (Read 1242 times)
matthewcampbell
Newbie
*
Offline Offline

Activity: 15
Merit: 0


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
1582038936
Hero Member
*
Offline Offline

Posts: 1582038936

View Profile Personal Message (Offline)

Ignore
1582038936
Reply with quote  #2

1582038936
Report to moderator
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction. Advertise here.
1582038936
Hero Member
*
Offline Offline

Posts: 1582038936

View Profile Personal Message (Offline)

Ignore
1582038936
Reply with quote  #2

1582038936
Report to moderator
1582038936
Hero Member
*
Offline Offline

Posts: 1582038936

View Profile Personal Message (Offline)

Ignore
1582038936
Reply with quote  #2

1582038936
Report to moderator
1582038936
Hero Member
*
Offline Offline

Posts: 1582038936

View Profile Personal Message (Offline)

Ignore
1582038936
Reply with quote  #2

1582038936
Report to moderator
buwaytress
Legendary
*
Online Online

Activity: 1260
Merit: 1164


https://bitcoin.watfordfc.com


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?

matthewcampbell
Newbie
*
Offline Offline

Activity: 15
Merit: 0


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: 1386
Merit: 1221


the forkings will continue until morale improves


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
*
qt
Offline Offline

Activity: 2968
Merit: 3232



View Profile
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: 1386
Merit: 1221


the forkings will continue until morale improves


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: 1134
Merit: 302



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.



BIG WINNER!
[15.00000000 BTC]


▄████████████████████▄
██████████████████████
██████████▀▀██████████
█████████░░░░█████████
██████████▄▄██████████
███████▀▀████▀▀███████
██████░░░░██░░░░██████
███████▄▄████▄▄███████
████▀▀████▀▀████▀▀████
███░░░░██░░░░██░░░░███
████▄▄████▄▄████▄▄████
██████████████████████
▀████████████████████▀
▄████████████████████▄
██████████████████████
█████▀▀█▀▀▀▀▀▀██▀▀████
█████░░░░░░░░░░░░░▄███
█████░░░░░░░░░░░░▄████
█████░░▄███▄░░░░██████
█████▄▄███▀░░░░▄██████
█████████░░░░░░███████
████████░░░░░░░███████
███████░░░░░░░░███████
███████▄▄▄▄▄▄▄▄███████
██████████████████████
▀████████████████████▀
▄████████████████████▄
███████████████▀▀▀▀▀▀▀
███████████▀▀▄▄█░░░░░█
█████████▀░░█████░░░░█
███████▀░░░░░████▀░░░▀
██████░░░░░░░░▀▄▄█████
█████░▄░░░░░▄██████▀▀█
████░████▄░███████░░░░
███░█████░█████████░░█
███░░░▀█░██████████░░█
███░░░░░░████▀▀██▀░░░░
███░░░░░░███░░░░░░░░░░
▀██░▄▄▄▄░████▄▄██▄░░░░
▄████████████▀▀▀▀▀▀▀██▄
█████████████░█▀▀▀█░███
██████████▀▀░█▀░░░▀█░▀▀
███████▀░▄▄█░█░░░░░█░█▄
████▀░▄▄████░▀█░░░█▀░██
███░▄████▀▀░▄░▀█░█▀░▄░▀
█▀░███▀▀▀░░███░▀█▀░███░
▀░███▀░░░░░████▄░▄████░
░███▀░░░░░░░█████████░░
░███░░░░░░░░░███████░░░
███▀░██░░░░░░▀░▄▄▄░▀░░░
███░██████▄▄░▄█████▄░▄▄
▀██░████████░███████░█▀
▄████████████████████▄
████████▀▀░░░▀▀███████
███▀▀░░░░░▄▄▄░░░░▀▀▀██
██░▀▀▄▄░░░▀▀▀░░░▄▄▀▀██
██░▄▄░░▀▀▄▄░▄▄▀▀░░░░██
██░▀▀░░░░░░█░░░░░██░██
██░░░▄▄░░░░█░██░░░░░██
██░░░▀▀░░░░█░░░░░░░░██
██░░░░░▄▄░░█░░░░░██░██
██▄░░░░▀▀░░█░██░░░░░██
█████▄▄░░░░█░░░░▄▄████
█████████▄▄█▄▄████████
▀████████████████████▀




Rainbot
Daily Quests
Faucet
pebwindkraft
Sr. Member
****
Offline Offline

Activity: 259
Merit: 256


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: 20


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
Sr. Member
****
Offline Offline

Activity: 924
Merit: 336


Africans on forum, check my profile website


View Profile WWW
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: 1386
Merit: 1221


the forkings will continue until morale improves


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: 1176
Merit: 589


Online Security & Investment Corporation


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

any exchane for quark simplicity ?

Audioquest Dragonfly USB DAC
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:  

Sponsored by , a Bitcoin-accepting VPN.
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!