Bitcoin Forum
November 01, 2024, 10:17:52 PM *
News: Latest Bitcoin Core release: 28.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: « 1 2 3 [4] 5 6 7 »  All
  Print  
Author Topic: Turing complete language vs non-Turing complete (Ethereum vs Bitcoin)  (Read 34815 times)
Apprehension
Newbie
*
Offline Offline

Activity: 7
Merit: 0


View Profile
February 06, 2014, 02:56:00 PM
 #61

The idea behind it is great but practical it will be very difficult.
The language must be 100% secure without too much restrictions.
One small exploit in the language and the whole coin will be useless.
k99
Sr. Member
****
Offline Offline

Activity: 346
Merit: 255

Manfred Karrer


View Profile WWW
February 06, 2014, 04:11:50 PM
 #62

Theoretically Bitcoin is controlled by the "economic majority", i.e. if you're BitStamp or BitPay or some other very important player in the economy then what ruleset you choose to run matters more than if you're just a guy with some bitcoins on a phone. In practice we've never had a doomsday scenario where there's a deep disagreement over how Bitcoin should operate, so nobody knows if the "economic majority" concept actually matters or how it would work in practice.

Re: Bitcoin fees, yes the plan is to make them float. I'm hoping that fees will eventually fall if we do that, but it's going to be hard work because lots of major transaction emitters today heavily overbid for no real reason (like Mt Gox) and getting them to use more rational fee policies will take time.

Thats why I like that Ethereum is looking for new ideas to not use the miners conscensus (if they does not support a software update they vote against a change) but the stakeholders conscensus (PoS voting). I think it is important to the network that many full nodes are running, but with the growth of the network and tx volume the costs get higher to run a full node, so there must be an incentive for it.
I will be difficult to solve the fee issue in BTC as we are dependent to the miners acceptance. To change for instance the mining algorithm to an asic resistant one, would be already impossible (they just invested too much money to asics), showing much more the strong dependency to miners. I think in BTC the power balance between the users/full nodes/miners are not in a healthy balance anymore.

What are the plans to make the fees float in BTC. Can you post a link or some information?

https://bisq.network  |  GPG Key: 6A6B2C46
mmeijeri
Hero Member
*****
Offline Offline

Activity: 714
Merit: 500

Martijn Meijering


View Profile
February 13, 2014, 04:13:46 PM
 #63

For smart contracts to work one really wants external inputs from the world. For example weather derivatives are an interesting example, say:

This can be done with something like Reality Keys without needing script extensions.

ROI is not a verb, the term you're looking for is 'to break even'.
mmeijeri
Hero Member
*****
Offline Offline

Activity: 714
Merit: 500

Martijn Meijering


View Profile
February 13, 2014, 04:19:26 PM
Last edit: February 20, 2014, 11:53:20 AM by mmeijeri
 #64

I think my biggest concern/question mark with Ethereum is that nobody has shown that the limitation on implementing cool stuff inside Bitcoin is script. Script is limited, but even so, most of our ideas never even get close to pushing the boundaries.

I don't think the lack of Turing completeness is the biggest limitation. It's unfortunate that scripts do not have direct access to the transaction data itself and some notion of time. If they did, you could implement things like daily withdrawal limits and limit withdrawals to certain classes of scriptPubKeys. Of course, we should probably first experiment with things like that by using something like Reality Keys and additional signatures.

ROI is not a verb, the term you're looking for is 'to break even'.
JoeyD
Newbie
*
Offline Offline

Activity: 57
Merit: 0


View Profile
February 20, 2014, 11:50:23 AM
 #65

I'm having a real hard time in trying to understand the point of Ethereum.

The only one I could think of was, that currently it's risky to have a program/contract manage it's own bitcoin(or any other coin) wallet, because of the exposed private keys. But I recently read an article by Vitalik where he explains how that might be possible in the near future, through obfuscation. If that is true, don't we already have all the turing-complete languages you'd ever need to make distributed block-chain-inspired programs/contracts/organisations etc. on top of any coin you'd want, if it can manage and interact with it's own wallet(s)?

I imagine this would also enable really distributed and more efficient (purpose built) blockchain reward systems/applications that could grow on their own on top of bitcoin or any other, even multiple "coins" as their "fuel".

I don't really understand why you'd need a turing-complete centralized solution, if you could create a much more flexible system in a modular and even more decentralized way, not even dependent on a single type of potentially hazardous "fuel" (i.e. bitcoin and others).
charleshoskinson
Legendary
*
Offline Offline

Activity: 1134
Merit: 1008

CEO of IOHK


View Profile WWW
March 10, 2014, 11:56:07 PM
 #66

Greg and Mike glad to see you guys here having a lovely chat about Ethereum. Greg I took your advice and got a real cryptographer since last time Smiley.

The revolution begins with the mind and ends with the heart. Knowledge for all, accessible to all and shared by all
bluemeanie1
Sr. Member
****
Offline Offline

Activity: 280
Merit: 257


bluemeanie


View Profile WWW
May 02, 2014, 03:54:49 PM
Last edit: May 02, 2014, 04:29:30 PM by bluemeanie1
 #67

Quote
And Vitalik Buterin has gained his high reputation not by chance. He seems to be one of the brightest minds in the community.

what has he actually implemented? the only thing this shows is that is that cryptocurrencies are currently going nowhere, when such drivel can get so much attention. so I ask: where is the source code that does all these magical things? smarts contracts, DAC, ... all of this is simply nonsense the way it is described. and this has little to do with Turing complete languages.

Im with you on this.  'Turing Complete' seems to be some sort of totem to attract investors.

What I'm not hearing is the obvious problem here- to compute a balance or verify a chain I need to compute several million little C programs with potentially infinite loops?  perhaps several billion?  

It's a huge problem and the various rantings I'm hearing lately about magical 'turing complete' tx scripts don't even begin to address this basic problem.  The current scripting language has limits on execution time and processing requirements.  If you put limits on infinite loops, then its not turing complete.

see: The Halting Problem, http://en.wikipedia.org/wiki/Halting_problem

there's no 'grey goo' nightmare scenarios here, the scare is that I can put a TX in the block chain(perhaps several thousand) that potentially use all the processor resources of a node.  This seems to be yet another episode of the centralization story.

-bm

Just who IS bluemeanie?    On NXTautoDAC and a Million Stolen NXT

feel like your voice isn't being heard? PM me.   |   stole 1M NXT?
benjyz
Full Member
***
Offline Offline

Activity: 140
Merit: 107


View Profile
May 02, 2014, 04:37:24 PM
 #68

well besides that, in an ethereum contract you simply broadcast the data of your private agreements to the whole world.
bluemeanie1
Sr. Member
****
Offline Offline

Activity: 280
Merit: 257


bluemeanie


View Profile WWW
May 02, 2014, 04:39:03 PM
 #69

well, in an ethereum contract you simply broadcast the data of your private agreements to the whole world. neat.

where is this explained?

Just who IS bluemeanie?    On NXTautoDAC and a Million Stolen NXT

feel like your voice isn't being heard? PM me.   |   stole 1M NXT?
benjyz
Full Member
***
Offline Offline

Activity: 140
Merit: 107


View Profile
May 02, 2014, 04:45:10 PM
 #70

Here is the paper: https://github.com/ethereum/wiki/wiki/%5BEnglish%5D-White-Paper
This goes back to this wiki-pages. https://en.bitcoin.it/wiki/Contracts

anyway, the idea here is that you have "contracts", i.e. agreements between 2 parties. those are special transactions, although it's not at all clear what this should mean. contracts are mental objects of legal systems. "contracts" here have to be verified by P2P nodes. in Bitcoin all nodes know the global transactions. that is the public blockchain. this works because there is no sensitive data (ignoring anonymity and mixing). but these special contract arrangements would not be public. it doesn't really make sense for arbitrary transactions. it makes only sense for global financial contracts (forwards on commodities primarily).

and so the nomenclature is going wild here. I don't think any of it makes sense. so you can either have formal definitions and then explain what you precisely mean, or you're using natural language, which has a long history. contracts are traditionally tied to legal systems.
Ursium
Full Member
***
Offline Offline

Activity: 149
Merit: 100

Ethereum


View Profile WWW
May 02, 2014, 04:47:53 PM
 #71


And here's the "yellow" paper, more technical in nature for those who are inclined: http://gavwood.com/Paper.pdf

Ethereum Twitter: @ethereumproject - Blog: blog.ethereum.org - Forum: forum.ethereum.org - Github: github.com/ethereum
jmw74
Full Member
***
Offline Offline

Activity: 236
Merit: 100


View Profile
May 02, 2014, 04:58:58 PM
 #72

Quote
And Vitalik Buterin has gained his high reputation not by chance. He seems to be one of the brightest minds in the community.

what has he actually implemented? the only thing this shows is that is that cryptocurrencies are currently going nowhere, when such drivel can get so much attention. so I ask: where is the source code that does all these magical things? smarts contracts, DAC, ... all of this is simply nonsense the way it is described. and this has little to do with Turing complete languages.

Im with you on this.  'Turing Complete' seems to be some sort of totem to attract investors.

What I'm not hearing is the obvious problem here- to compute a balance or verify a chain I need to compute several million little C programs with potentially infinite loops?  perhaps several billion?  

It's a huge problem and the various rantings I'm hearing lately about magical 'turing complete' tx scripts don't even begin to address this basic problem.  The current scripting language has limits on execution time and processing requirements.  If you put limits on infinite loops, then its not turing complete.

see: The Halting Problem, http://en.wikipedia.org/wiki/Halting_problem

there's no 'grey goo' nightmare scenarios here, the scare is that I can put a TX in the block chain(perhaps several thousand) that potentially use all the processor resources of a node.  This seems to be yet another episode of the centralization story.

-bm


Your computing environment is not Turing complete either!  Here's proof:  while (true) { print("hi") }

Run that, I guarantee it will be interrupted because it used too many resources.  How long will it be before it's interrupted?  Well, that can be arbitrarily long.  But it's the same with ethereum.  There won't be any infinite loops that don't get interrupted after some reasonable time.

Whether new nodes having to catch up by executing a billion scripts is a problem, depends on whether the history grows faster than Moore's law.  Hopefully there's some kind of feedback mechanism that prices ether according to computing power needed to operate a full node.
bluemeanie1
Sr. Member
****
Offline Offline

Activity: 280
Merit: 257


bluemeanie


View Profile WWW
May 02, 2014, 05:12:59 PM
 #73

we're seeing a trend here.

apparently some groups involved in Bitcoin development don't see an issue with centralizing bitcoin.  This may give us some outward features, but it destroys the basic value proposition of the Bitcoin technology.

If we're talking about block chain scripts that are Turing Complete then certainly we are talking about block chains that potentially require infinite execution time, and likely very long expensive computation times.  If we abandon the constraints that currently exist in the block chain scripts then, in order to manage this problem, you must introduce a very complex dispatching environment that is capable of detecting runaway processes and the like.  At the LEAST, it will be a total redesign of Bitcoin and processing the chain will be incredibly cumbersome.

thus, in order to achieve this idea, you need to have more centralization.  Fact is we already have complex financial contract engines.  This isn't a new idea.  It would be a new idea if you could do it in a p2p way.

Non-turing complete was a FEATURE it wasn't a limitation that was heroically solved by some uber-genius.

-bm

Just who IS bluemeanie?    On NXTautoDAC and a Million Stolen NXT

feel like your voice isn't being heard? PM me.   |   stole 1M NXT?
benjyz
Full Member
***
Offline Offline

Activity: 140
Merit: 107


View Profile
May 02, 2014, 05:20:43 PM
Last edit: May 02, 2014, 05:36:30 PM by benjyz
 #74

Turing completeness is the least of problems with these kinds of proposals.

quoting from http://gavwood.com/Paper.pdf

Quote
Early work on smart contracts has been done by Szabo [1997] and Miller [1997]. Around the 1990s it became clear that algorithmic enforcement of agreements could become a signicant force in human cooperation. Though no specific system was proposed to implement such a system, it was proposed that the future of law would be heavily affected by such systems. In this light, Ethereum may be seen as a general implementation of such a crypto-law system

This is deeply confused and misreads the original authors. why do laws exist in the first place? people don't enact their own laws at will. say Alice contracts with Bob to ship 1 kilogram of cocaine from Peru to New York City. how would ethereum enforce that contract? it's nice to speculate about a crypto-law system in 2100, but this hardly solves problems in the real world. in the world that exists, we have laws and nation states, global trade agreements, transportation systems, stock exchanges, insurance companies and many other social artifacts. What is needed is a thorough understanding why these exist and how that could potentially change based on new networks and cryptography.
bluemeanie1
Sr. Member
****
Offline Offline

Activity: 280
Merit: 257


bluemeanie


View Profile WWW
May 02, 2014, 05:27:52 PM
 #75

notice that the author doesn't even mention the Halting Problem which is the basic reason why this constraint was introduced to the original Bitcoin scripting.

It's like removing seat belts from cars and declaring yourself a genius for making us slightly more comfortable.  Smiley

-bm

Just who IS bluemeanie?    On NXTautoDAC and a Million Stolen NXT

feel like your voice isn't being heard? PM me.   |   stole 1M NXT?
jmw74
Full Member
***
Offline Offline

Activity: 236
Merit: 100


View Profile
May 02, 2014, 05:31:21 PM
 #76

Turing completeness is the least of problems with these kinds of proposals.

quoting from http://gavwood.com/Paper.pdf

Quote
Early work on smart contracts has been done by Szabo [1997] and Miller [1997]. Around the 1990s it became clear that algorithmic enforcement of agreements could become a signicant force in human cooperation. Though no specific system was proposed to implement such a system, it was proposed that the future of law would be heavily affected by such systems. In this light, Ethereum may be seen as a general implementation of such a crypto-law system

This is deeply confused and misreads the original authors. why do laws exist in the first place? people don't enact their own laws at will. say Alice contracts with Bob to ship 1 kilogram of cocaine from Peru to New York City. how would ethereum enforce that contract? it's nice to speculate about a crypto-law system in 2100, but this hardly solves problems in the real world. in the world that exists, we have laws and nation states, global trade agreements, transportation systems, stock exchanges, insurance companies and many other social artifacts.

Obviously crypto can't really prove anything about the real world.  That doesn't make "crypto-law" systems useless though.  It just means you have to have some kind of trusted authority to at least certify what happened in the real world, and then the "crypto-law" system can do the rest.

So using your example, if you have a trusted delivery guy Dave who certifies that he received 1 kg cocaine from Alice and delivered it to Bob, then his signature would unlock terms of the contract as-written (payment or whatever).  He could sign that the shipment was damaged in transit and that would unlock some kind of insurance payment.
benjyz
Full Member
***
Offline Offline

Activity: 140
Merit: 107


View Profile
May 02, 2014, 05:50:13 PM
 #77

Obviously crypto can't really prove anything about the real world.  That doesn't make "crypto-law" systems useless though.  It just means you have to have some kind of trusted authority to at least certify what happened in the real world, and then the "crypto-law" system can do the rest.

So using your example, if you have a trusted delivery guy Dave who certifies that he received 1 kg cocaine from Alice and delivered it to Bob, then his signature would unlock terms of the contract as-written (payment or whatever).  He could sign that the shipment was damaged in transit and that would unlock some kind of insurance payment.

In scenario B, Alice would ship 1 kg of gold to Bob. She would have to acquire various licenses. Those authorities already exist and are tied to fabric of the global economy. Obviously, in scenario A - shipment of cocaine from Peru to the USA - this is illegal. What gets shipped in the world is determined by nation states and multi-national cooperations. Which natural resources gets shipped where on what conditions is what geopolitics is mostly about. The recent TPP efforts want to establish a kind of cooperate regime, where cooperations can sue governments. This kind of stuff is infinitely complex, and declaring the world your own jurisdiction is not leading to solutions.
bluemeanie1
Sr. Member
****
Offline Offline

Activity: 280
Merit: 257


bluemeanie


View Profile WWW
May 02, 2014, 05:54:45 PM
 #78

"Ethereum Virtual Machine (EVM). It is a quasi-Turing-complete machine; the quasi quali fication comes from the fact that the computation is intrinsically bounded through a parameter, gas, which limits the total amount of computation done."

it's kind of Turing Complete, except it isn't.

so apparently they have a new kind of resource monitoring that they call 'Gas', and I guess you have to purchase this "gas" in order to run your script?

I've worked for E-commerce companies that had specialized definition languages for financial processing like this.  One of them had some neat 'pipelines' that were supposed to be incredibly easy to use.  In at least one case they abandoned them because it was too much overhead to support them over just traditional scripting.  

This idea seems incredibly monolithic.  Not sure how the project is organized, but it will resemble Ripple in a lot of ways, but even more complex- and it'll require huge amounts of money to develop successfully.  If they put together this computation management system together, the language they are proposing, think about all the support and such they need to build out in order for it to work?  are people going to actually use this?  And there's a lot of remaining questions about how centralized or 'p2p' this is, I can't see everyone running one of these contract engines on their own computer.  Bitcoin is relatively lightweight, this thing sounds like a monster.



-bm



Just who IS bluemeanie?    On NXTautoDAC and a Million Stolen NXT

feel like your voice isn't being heard? PM me.   |   stole 1M NXT?
bluemeanie1
Sr. Member
****
Offline Offline

Activity: 280
Merit: 257


bluemeanie


View Profile WWW
May 02, 2014, 06:09:39 PM
 #79

Your computing environment is not Turing complete either!  Here's proof:  while (true) { print("hi") }

Run that, I guarantee it will be interrupted because it used too many resources.  How long will it be before it's interrupted?  Well, that can be arbitrarily long.  But it's the same with ethereum.  There won't be any infinite loops that don't get interrupted after some reasonable time.

Whether new nodes having to catch up by executing a billion scripts is a problem, depends on whether the history grows faster than Moore's law.  Hopefully there's some kind of feedback mechanism that prices ether according to computing power needed to operate a full node.

a 'computing environment' is not Turing Complete, but computer languages are.

this poses the first problem of FALSE ADVERTISING.  These aren't Turing Complete scripts, it's just a bloated up dispatching environment for financial transactions.  I think they're overestimating how 'cool' this is going to be.  It's not going to be fun to make or to use.  Why dont they just use the JVM?  you can control thread execution from another process.  Java caught onto CLLs long before these guys declared they discovered  the idea.

there is an entire field of research called 'workflow engines' that attempt to deal with these problems.  If you've ever worked with one, you would probably come running back to all your Bitcoin friends after a few hours of mind numbing process definition languages and the like.

if they can make this as advertised and it's open source... great!  have fun storming the castle!

-bm

Just who IS bluemeanie?    On NXTautoDAC and a Million Stolen NXT

feel like your voice isn't being heard? PM me.   |   stole 1M NXT?
jmw74
Full Member
***
Offline Offline

Activity: 236
Merit: 100


View Profile
May 02, 2014, 06:23:28 PM
 #80

a 'computing environment' is not Turing Complete, but computer languages are.
So?  Ethereum is turing complete then.  Running out of ether is part of the environment, not the language.

Quote
this poses the first problem of FALSE ADVERTISING.  These aren't turning complete scripts, it's just a bloated up dispatching environment for financial transactions.  I think they're overestimating how 'cool' this is going to be.  It's not going to be fun to make or to use. 

Yes, this is what I think is the real problem, programs are hard to understand and debug.

In law, sure judges are nondeterministic, but they don't do totally insane stuff, like in a parental custody hearing, they don't set their program counter to the wrong number and accidentally sentence some innocent bystander to death.  Something that bizarre could maybe happen in ethereum.

Still, I am not sure if this is a fatal flaw, if anything it might limit scripts to what is easily comprehendable by one programmer.  That's still a lot more flexible than bitcoin's scripting system.

I don't really care how they sandbox their environment, in theory it should be a lot simpler than the JVM.  But maybe it is easier to just use the JVM and lock down everything except the few resources ethereum needs access to.  Either way, the sandbox is not going to be what holds them back, I think those already exist and are a proven concept.
Pages: « 1 2 3 [4] 5 6 7 »  All
  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!