Pages:
Author

Topic: Turing complete language vs non-Turing complete (Ethereum vs Bitcoin) - page 4. (Read 34758 times)

sr. member
Activity: 280
Merit: 257
bluemeanie
"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


full member
Activity: 140
Merit: 107
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.
full member
Activity: 236
Merit: 100
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.
sr. member
Activity: 280
Merit: 257
bluemeanie
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
full member
Activity: 140
Merit: 107
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.
sr. member
Activity: 280
Merit: 257
bluemeanie
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
full member
Activity: 236
Merit: 100
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.
full member
Activity: 149
Merit: 100
Ethereum
full member
Activity: 140
Merit: 107
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.
sr. member
Activity: 280
Merit: 257
bluemeanie
well, in an ethereum contract you simply broadcast the data of your private agreements to the whole world. neat.

where is this explained?
full member
Activity: 140
Merit: 107
well besides that, in an ethereum contract you simply broadcast the data of your private agreements to the whole world.
sr. member
Activity: 280
Merit: 257
bluemeanie
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
legendary
Activity: 1134
Merit: 1008
CEO of IOHK
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.
newbie
Activity: 57
Merit: 0
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).
hero member
Activity: 714
Merit: 500
Martijn Meijering
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.
hero member
Activity: 714
Merit: 500
Martijn Meijering
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.
k99
sr. member
Activity: 346
Merit: 255
Manfred Karrer
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?
newbie
Activity: 7
Merit: 0
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.
legendary
Activity: 1526
Merit: 1129
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.
k99
sr. member
Activity: 346
Merit: 255
Manfred Karrer
Ugh. Cryptocurrency. or at least Bitcoin at a minimum—  is _NOT_ about "democratic consensus" cue the trope about democracy is wolves voting to have the sheep for supper. Democratic consensus is a terrible way to handle things, but sometimes its the best available of all possible terrible ways to handle things, but that doesn't make it good. Ideally people could operate on a purely consensual basis and never be coerced just because someone amassed superior numbers.  "Democracy" is particularly intolerable, however, when voting power isn't tied to people-with-shared-interests but is instead tied to spending (as it must be in a POW blockchain consensus).

In Bitcoin the rules of the system are fixed in the software and autonomously enforced by everyone, without reference to any consensus. No simple majority of users or miners can change them, they are as immune to a majority tyranny as anything we know how to make. Sadly the whole system can't work on this alone, since there is no known decenteralized way to autonomously decide transaction order, but it is only in narrow-as-we-can make it way that we compromise on that.

You do not make your proposals look good when you justify them with such vulgar misunderstandings of the structure and motivations that enable Bitcoin to be (possibly!) viable.

As I noted in the response to maaku, I am not a Ethereum dev, only enthusiastic about the project.
Not sure if you really read the Whitepaper and the blog entry, if not maybe its worth to read it. I cannot add more then whats there written.
Pages:
Jump to: