Ethereum: Rise of the World Computer
svds.com
svds.com
If you have a lot a techniques like zero-knowledge proofs, homomorphic computations, multi-party computation, indistinishability (sic) obfuscation (not quite practical yet), and various threshold schemes - you will quickly realize we could basically already do everything that Ethereum was designed for from the start. In fact - a lot of the new crypto techniques make it possible to scale DAC applications even better than what blockchains would allow since you can implement a lot of crypto-application protocols outside of the blockchain and keep only the hash-locked payments on the chain (which I honestly think is preferable.)
It just seems to me like Vitalik largely invented Ethereum because he didn't want to bother messing around with all the crypto-hacking that's required to implement self-enforcing, autonomous contracts (which is half the fun.) My biggest problem with this is people act like this isn't possible with Bitcoin when we had working smart contracts (and special coins for smart contracts) before Ethereum even existed. Interestingly enough - there's even ways to make the answer to any computable problem the keys to unlock a Bitcoin payment which means if you structure your crypto-protocol right you can essentially implement any self-paying, and self-running corporation as a never-ending complex chain of future problems.
(I would speculate that it's even possible to build a universal turning machine on top of any bitcoin-style blockchain that can compute any problem off-chain and allow these computations to be proven and self-enforcing but that is a topic for future research.)
Sure, bitcoin script can in theory compute any computable problem (as can any turing machine). But it doesn't have native access to the data it needs, so pretty much any input you'd want to use needs to be put there by a trusted "oracle" (through a clever encoding into UTXO logic). For example, bitcoin script can't compare the amount of coins sent to two different bitcoin addresses, so you'd need to use oracles to do that [1]. In ethereum script it is trivial to do it on-chain (no oracles needed), since it was designed from the ground up for such use-cases (i.e. "smart contracts").
1. http://bitcoin.stackexchange.com/questions/36229/bitcoin-scr...
Or at least that's how the story is supposed to go. In theory, porting nice-to-have features to a larger audience results in more revenue and more overall societal benefit than starting a new scarcity race, which Ethereum has done, pitting investors against each other.
Ethereum script is said to only be quasi-turing complete because although it has loops, execution is metered by gas fees (functionally equivalent to bitcoin tx size).
Or maybe you are trying to say that this could have been done on Bitcoin? Maybe, but whatever you try to shoehorn into Bitcoin's crippled contract pseudolang is going to be an order of magnitude simpler in a language that is Turing complete.
For example, today I participated in a demonstration of trustlessly, privately, and securely selling information (a 16x16 sudoku solution) via Bitcoin:
https://bitcoincore.org/en/2016/02/26/zero-knowledge-conting...
(But you probably won't read about it on HN; no profit in promoting it. </cynic>)
As an average developer, I can launch a smart contract with 20 lines of code in Ethereum. I have no idea in earth how to even start writing those things on classic blockchains, let alone prove they work as I expect.
Have you done this before? I tried to learn Ethereum (as an average developer) but it was over my head.
more in depth tutorials exist on ethereum.org
does the level of verbosity decrease as you get into more advanced applications?
Meanwhile, everyone is waiting for the first smart contract that is actually useful for something.
Where's the github gist for this?
Would you mind expanding on your point a bit and if possible provide a link or 2 at a comprehensible level for someone who is mot a mathemetician.
I don't want to push back here as I have to reason by analogy not first principles here but:
* rust/go etc took a fairly long time to go into production.
* developing tooling and ecosystems and implementations around complex ideas is difficult.
* self enforcing contracts (my lack of knowledge may betray me) are just another name for "smart contracts"? For a contract to be made you need a transaction and a condition to strike. How is this achieved in this new model as an input/condition is unknowable and must bd provided in advance to do anything interesting, e.g i pay you 1 dollar in 5000 seconds vs. the election outcome. What tradeoffs were made erroneously on ethereums part.
All these are to say, honest question, how has the field evolved enough in 2 years that it is not only leagues better, but peoduction ready?
Could you explain at a (space doctors big idea) level how these concepts work? Super interested to check out something using/working on it
Give me any ethereum use-case & I'll tell you how to do it with bitcoin.
Is it advantageous if a DSL is turing complete? It is not that bitcoin 'cannot have' a turing complete script but that it is unsafe & there is no need to do so. Turing completeness can be applied on an upper abstraction.
There is nothing that ethereum can do that bitcoin cannot! The proof of it is RootStock which is ethereum implementation using bitcoin.
Ethereum is full of buzzwords and the key one of them is DApps. Here [0] is how to build a dapp using bitcoin. Basically you can tell me any application of ethereum and I'll tell you how you can do it with bitcoin. Skynet type input requiring applications can't be done inherently by either ether or bitcoin but can be done by both using third-party oracles.
Then are bitcoin & ethereum equivalent. No, they key is origin of money. Bitcoin is mined, ether was sold.
The recent rise in price has attracted all kinds of attention but talk to any of the core-devs and they'll tell you that Vitalik used to come up with complicated explanations which they spent time studying and responding & then he'd come back with something even more complicated until they stopped caring.
[0] http://startupboy.com/2014/03/09/the-bitcoin-model-for-crowd...
Is this your opinion because you truly believe it or because you have a horse in the bitcoin race? I'm not saying that Ethereum is superior to bitcoin but at least from a brief look over it, it seems to make quite a bit of sense. Whereas my experience with bitcoin is that it's an incredibly hacky and questionable system that primarily survives because of the collective investment into it, not on its technical merit.
But oh ya we are all suppose to believe BTC can do all of this but apparently nobody really knows how. It's really just a bunch of people that think BTC is special because it was first, but it lost it's first mover advantage.
https://www.reddit.com/r/ethtrader/comments/43fm3w/the_core_...
I have previously answered a few use cases here [https://news.ycombinator.com/item?id=10846788]
Why didn't these companies develop their products on Bitcoin? Are they incapable of due diligence in this space?
https://azure.microsoft.com/en-gb/blog/ethereum-blockchain-a...
The news for ethereum is positive enough right now, no need to exaggerate the facts.
I'm just trying to counter the idea that the excitement around ethereum is somehow manufactured by 'clever marketing'.
Even though ethereum's 15 sec blocks are nowhere near as secure as Bitcoins 10 minute blocks, the fact that you can 4 blocks after a minute already gives pretty decent doublespend security, from a statistical standpoint.
I did it in one week, it uses Oraclize.it (which I believe is also available for bitcoin, so that's nice), and I am sure it can be built on bitcoin too, but the biggest problem remains this:
* While doing development in Solidity, and using HTML/CSS/JS for client, I am able to rapidly build a dapp.
* Writing the code in a higher level programming language created for the purpose of blockchain apps, allow me to think at a higher level abstraction.
* Training people to write in Solidity is far easier than training them to write in C/C++.
* Faster and rapid dapp development(RDD) will unlease a new age in blockchain innovation, and if you have been in tech for a while, you know that 'crack up boom' of innovation we see when Rapid application development became possible.
Case in point, Augur. Paul Sztorc has been doing development of Truthcoin for far longer than Augur people and even has funding from Roger Ver, but Augur has managed to rally a lot more people around it by delivering working prototype sooner than later, and now they're already in Beta, targetting 2016 election.
Look, I love bitcoin and I was one of the earliest adopters of bitcoin (2009 Dec era). But I have been a software developer for far longer than that, and I can tell you, bitcoin's code is not made to make the things we desire to make now.
BTW, here is an argument against Ethereum. Any app built on it, will be inherently slow because of the price they'll pay for building it in a higher level abstraction platform. This means, that Augur will eventually hit performance wall, at which point, every successful Ethereum app will have to be developed in C/C++ and natively to get more performance.
As a total outsider to all this, I suspect you are right.
Bitcoin is very hacky, as almost all successful first systems are. Etherium is a second system.
First systems: By force of will you cobble together a viable prototype and if you are lucky it gets traction. Then it's an exercise in patching to keep the system running.
Second systems: longer dev cycles based on lofty goals for better architecture and features. Many second systems fail here. But if/when the second system gains traction, it's potentially a much better solution since it could learn from mistakes of the first system.
It's clear that the tools are better in Etherium for building block chain apps. It also looks like it's getting good adoption.
Like all things crypto currency it's interesting that there is money on the line. Bitcoin won't fall out of fashion as quickly as other systems for that reason.
I'm failing to see your point. Does the fact that things are possible with bitcoin make the technical merits of Ethereum less in some way?
> What I do not like in ethereum is the nature of origin of ether which makes it just an IPO coin.
The "makes it just an IPO coin" statement also seems to discount any of the technical merits of the platform due to your dislike of how the initial coin distribution occurred.
Disclaimer: I stand to benefit financially if the platform succeeds.
Facts on the ground are already overtaking misinformed opinions, so why bother arguing?
>to discount any of the technical merits of the platform due to your dislike
That is what I wanted to argue about, there are no additional merits to ethereum over bitcoin as people seem to believe
SatoshiDice is not quite the same as a Ethereum app, the former requires the central website to be online and operating whereas the latter would work even when the site is down since the execution is not centralised. Add Rootstock however and the same applies.
Source: Just finished building a couple of "games" on the Ethereum platform, http://the.looney.farm - one is SatoshiDice-like but not one of them needs the website to be up to operate.
Where you are 100% right - there are multiple ways to solve a problem, so to a user there should be no difference between gaming on something like SatoshiDice or something like mine. Central or de-central, the user probably won't care in the longer term. If you transfer value, you can do it on any crypto, however there may just be with a different way of implementing it or going about your business getting it up.
As far as I know, Rootstock is still just a whitepaper. So this is just a promise to be compatible. Nothing exists yet, it's vaporware at this point.
But SatoshiDice was not trustless; it was only provably-fair. By sending your dice bet to satoshidice, you were trusting them to actually pay you if you won instead of just keeping your money (though you didn't have to trust that they were using a fair die).
An on-chain dice contract is completely different, because there's no central operator that you have to trust to pay out the winnings.
That's like saying give me any HTTP use-case, and I'll tell you how to do it with Gopher. To me Rootstock is like putting the WWW on top of Gopher. You can do it, but why?
"We don't need GUIs, command lines can do everything!"
"We don't need Java/Python/Ruby, you can do it all in C!"
"We don't need C, you can do it all Assembly!"
Ease of development and implementation really matter. If I can accomplish creating my block chain app on Ethereum in a fraction of the time and complexity of the same thing on Bitcoin, I'd have to have an extremely compelling reason to choose Bitcoin instead.
That is a good thing unless the whole point of the system is decentralization. This is similar to Amazon selling AWScoin and launching a SETI-like software so anyone can run their system as an AWS server & earn AWScoins.
Bitcoin also has the "Bitcoin Foundation" which employs lead developer Gavin Andresen, so it's very similar.
Whats relevant to first post is that Bitcoin Foundation is a non profit aimed at bettering the Bitcoin ecosystem, similar to EthDEV, not some corporate owner of Ethereum IP, and they help move forward development of "Bitcoin"
How do you implement a trustless SatoshiDice with bitcoin?
A dapp reaching into the state of another dapp.
I generally agree with this sentiment--the biggest value blockchains provide to decentralized applications is an inimitable 100%-replicated log (where inimitability is provided by PoW in these two cases). Once you have that, nodes in a decentralized application use it it to record their externally-visible state transitions, thereby giving each node a global, total ordering of all of the application's prior states. Then, the usefulness of one blockchain versus another is simply a function of how secure it is (i.e. how inimitable it is), how much bandwidth it offers (i.e. how much state can be recorded in a block), and how fast it can add new blocks.
This is the approach Blockstack DNS uses, for example (full disclosure: I'm its lead engineer). It's designed to be portable across blockchains, so we can migrate it to a more secure one if the one it's currently using proves insufficient.
You're coming at this backwards. Once you have the most valuable cryptocurrency unit of account, you have the most security and the highest availability log in the world. On that basis, you can do just about anything, e.g. sidechains or payment channels.
A "highly replicated log" is a prerequisite of that, and Bitcoin is currently winning that battle due to first mover advantage. Hence, anything can be built on top of that basis.
If you have small competitor to Bitcoin that aims to do more, it's more valuable for the majority to snipe the features from the small competitor and make those features available denominated in the majority owned asset.
For example, check out btcrelay.org. While you're waiting for Bitcoin to "snipe the features from the small competitor", that small competitor can lend a helping hand to Bitcoin.
The bigger Bitcoin becomes, the more we all benefit from a stable universal currency. The bigger Ethereum becomes, the more we all benefit from a rich set of shared resources for developing apps that use BTC in ways that we've been dreaming of for years.
Bitcoin's killer apps might be Ethereum Dapps. That wouldn't mean that Ether "failed" as a currency or that Bitcoin "failed" because Ethereum was used to build the killer apps. It'd mean both are succeeding!
Life is more colorful when it's not just black and white.
The features that matter in my mind are things that make Ethereum superior to Bitcoin:
1. Shorter block times without compromising security -- GHOST was proposed for Bitcoin, but it's a long way from happening.
2. Every block contains the Merkle root of the balance tree, so proving account balance becomes a one-node + proof problem instead of an "entire blockchain" problem -- the only way that I can verify that a UTXO is valid is to have the entire blockchain forward from the UTXO block. In ethereum, I just need the root plus a proof at the top of the chain.
3. No reward halving. The fee schedule is constant, which means that the marginal rate of growth is diminishing, but the logic across the board for utility calculations is incredibly simple.
4. Easy offline transaction creation -- the properties in #2 means that all you need to generate a transaction is the nonce(s).
5. (possibly) ASIC-resistant proof-of-work. I'm not completely sold on this one; all it really means in my mind is that the cost of such ASICs is higher on a per unit basis, which means that the power is more likely to be consolidated than the double-SHA256.
[1] Why do I think the whole Turing-complete thing and smart contracts are useless? Because fully-funded contracts are economically uninteresting. Basically, only zero-sum contracts can be encoded. If I borrow money from you at a given interest rate, I can do economically productive activity to make more money, and both pay you back and come out ahead. If I am instead forced to keep the total payback amount in escrow, then I have no capital to use, and the transaction is meaningless. Things like cryptographic ownership tokens (colored coins, etc.) have some limited utility, but as you say, those are easily done on the Bitcoin blockchain.
I guess the trick here is whether you consider "losing credit score if you don't re-pay" enforcing the contract or not. Doing anything stricter, like programmatically garnishing wages or handling bankruptcy, seems like it would require a hard 1:1 mapping between a person and their ethereum presence, which is much more than trusting an oracle to provide a unique ID or reputation based credit score.
Additionally, raising the block size cap is only a stopgap measure. Eventually you will reach hard bandwidth or disk storage limits and the only way will be to throw some transactions outside the blockchain.
It occurs to me as I write that Ethereum may have similar problems down the line, when platform updates turn out to be direly needed, but would disrupt the operation of well-established and lucrative apps.
So you will be able to. He has done a lot of thinking around tree chains and scaling and optimiztion.
Btc is limited inamount of coins and came first, its value is as a currency.
Eth is the first popular blockchaindb. Coins are needed to pay miners and powet dapps.
If a currency cant be traded it idnt worth anything, however sidechains seem to provide a way to convert from one to another
It is important to note that this is not a resource for distributed general computation - it's for running smart contracts. Per the Ethereum development tutorial, "you will not be able to do anything on the EVM that you cannot do on a smartphone from 1999." https://github.com/ethereum/wiki/wiki/Ethereum-Development-T...
This is not a very good article - it's rather breathless and short on technical detail. In particular, calling it "the World Computer" is completely not what Ethereum will be capable of.
Bitcoin on the other hand uses an "Unspent Transaction Output" architecture. Basically your balance is made up of all of the credits and debits (inputs and outputs) you've made with that account. So sending bitcoins requires referencing "unspent outputs".. which may be lots and lots of different transactions.
That's one difference, and there are others, such as the time taken to confirm blocks (current block time on ethereum is 16s). But there are still lots of scalability issues to be addressed, which are actively being worked on.
Vitalik Buterin has a great couple of posts on some of the issues:
https://blog.ethereum.org/2014/09/17/scalability-part-1-buil...
edit: Not sure why this was getting downvoted. Just to clarify, in case it seemed like I wasn't answering the parent. The points above are one of the ways in which "every operation must be verified by every node" is less costly on Ethereum. Obviously if it takes less compute time per transaction, you can scale to larger numbers of transactions per second. Ethereum has already passed Bitcoin in this regard, and has hit at least 8 transactions per seconds at one point, while Bitcoin's ceiling is 7 transactions per second. In addition, prior to launch I believe they managed to push the test network up to 25 transactions per second.
VISA does 56,000 tps.
So it's really simple. How are you going to hit 56,000 tps on the blockchain. The Bitcoin community, which is far bigger and generally more experienced than Ethereum's just spent 18 months vigorously debating this question. Do you suggest Ethereum has come up with a better answer?
And the criticism here is around the selling point of Ethereum: "everything goes on the blockchain". You're telling me after 18 months of debate, the best you've got to say about that is: "an account based architecture"?
What is it about widgets fully encapsulated in a blockchain-native smart contract on Ethereum that makes it so much more scaleable than a similar widget on Bitcoin's blockchain?
1) It produces blocks every 17 seconds. It can do this without neglecting security, because orphan blocks count as uncles and are included in the security of the whole network.
2) It has a scalable/dynamic blocksize. The miners can scale the gas limit up or down by a certain amount. If the current gas limit (pi million) gets hit, miners can start increasing it.
3) Tx fees purpose is primarily for DDOS protection & solving the halting problem with turing-complete scripts. It's not a fundamental element for security, because the issuance rate is constant. This means that a "fee market" doesn't need to exist as much as in Bitcoin, in order to make sure the blockchain remains alive. It has an infinite, but predictable supply, rather than finite.
4) Future scalability improvements include Casper PoS, which will decrease block time to around 1 - 4 seconds & sharding, which will remove the need for every node to process every part of the transaction space.
These additions will mean that for the current period, transactions will increase, and perhaps lead to more centralization as not many will run nodes to keep the whole state. This is a trade-off in return for running more transactions.
None of your talking points magically address the extreme costs of prerequisite physical infrastructure needed to hit 56,000 tps.
Bottom line, it's impossible to match the throughput capacity of just a single credit card company on any blockchain, be it Bitcoin or Ethereum or BBQCoin, without incurring enormous costs in terms of CPU and bandwidth. This is to say nothing of doing decentralized exchanges, order matching, and option contracts - all of which Ethereum has been advertised as doing on a blockchain. For that you'd need hundreds of thousands of tps.
Most of the people in the ethereum project are delusional teenagers looking to get rich quick.
https://news.ycombinator.com/item?id=11184214
Note: Reply there if you do.
Granted, this doesn't deliver the physical infrastructure to process that many transactions - but that will happen over time. Visa didn't process 56k tps on day one, either.
If it's going to take hours to generate a block, I'm worried that it's going to take forever for an app to generate enough ether to get anything done; buying the stuff using real money is a nonstarter for most applications, so generating it on demand is the only real option.
The end goal is to prevent only having large institutions running nodes and to keep the system more decentralized, hence the need for better scaling options. (Bitcoin has become more decentralized as it has aged, with fewer small nodes running)
And I'm not saying that Ethereum has it all solved, just that the system is different enough that some of the issues are not applicable. It's not useful, in my opinion, to just throw up your hands and say "It can never scale!!". First because there's no absolute limitation for scaling, only things that make it costly. Back in the day, if you asked someone how the early Internet was going to scale, it would have seemed like an equally impossible task. There's plenty of time to work on the issues before we need 56,000 tps.
Right, but that wasn't the question I raised. I asked what does Ethereum do different than Bitcoin that makes its blockchain more scaleable? The answer is, of course, nothing. If merge-mined sidechains and overlay protocols are your solution, Bitcoin is non-stop innovating in that direction.
> It's not useful, in my opinion, to just throw up your hands and say "It can never scale!!".
But if you're just going to throw up your hands and say "put it in the cloud", that's no different than what Bitcoin bigblockists want to do.
But I did answer what it does different. I cited a few of the many things it does different, one of which is an account based model. Another is faster and unlimited sized blocks. And if you care to read more of the development threads, you'd find lots of other solutions. Ignoring facts and continuing to say "The answer is, of course, nothing" is just FUD.
Here's a quote from Vitalik in October:
"Scalability: using a combination of sharding schemes, random sampling, heavy use of Merkle proofs and asynchronous calling in order to increase the potential transaction throughput from ~10-20 transactions per second to over 100000 (or, if super-quadratic versions are used, a theoretically unlimited number). The basic concepts behind scaling have been set in stone for over six months, and our research team is highly confident that the general approach is valid;"
> But if you're just going to throw up your hands and say "put it in the cloud"
Who said anything of the sort? I'm saying it's a hard problem, but it's tractable and takes resources and time. What's that got to do with the cloud??
Ultimately I don't understand the whole negative attitude on scaling. Obstacles are not a reason to not attempt something, and certainly not potential scaling issues. Making the Internet was hard. In 1993 people could have said "computers are expensive.. and think of all the cables you'd have to lay! It's going to be millions of miles of cables! It'll never happen! This whole WWW thing is just a toy fad!"
Until there's a real need for bitcoin to support this sort of volume (if ever) I don't think comparing bitcoin to visa tps wise proves anything.
If there's enough customer adoption where there's a need to handle that kind of volume you can rest assured there will be infrastructure to support it and instead of a loose group of "core devs" there will be an official salaried department (at visa? :) ) working on this full time.
But since we're talking about "decentralized systems", the question is who owns the blockchain infrastructure. Is the blockchain going to be serviceable on home desktop PCs, or are you going to need a datacenter?
To really drive this example home, could you please quote me a price on building out a Tier 1 datacenter with gigabit fiber? Because last I checked most people don't have that kind of money in their sofa cushion. And it isn't even remotely feasible to acquire that sort of infrastructure anonymously.
Yet that's what it's going to take to hit 56,000 tps on a blockchain any time this decade or perhaps even after [1]:
> Next month, the worldwide semiconductor industry will formally acknowledge what has become increasingly obvious to everyone involved: Moore's law, the principle that has powered the information-technology revolution since the 1960s, is nearing its end.
A common mistake is confusing "popularity" with decentralization. BitTorrent is both popular and decentralized. It doesn't take a datacenter and a 10-machine cluster to participate in a BT swarm as a full-on peer. As an aside, it's no surprise the creator of BitTorrent is staunchly against scaling Bitcoin in datacenters [2].
[1]: http://www.nature.com/news/the-chips-are-down-for-moore-s-la...
[1]: http://www.agner.org/optimize/blog/read.php?i=417
[2]: https://medium.com/@bramcohen/bitcoin-s-ironic-crisis-32226a...
"Big boys" do though. And that is my point exactly - if there's enough tx volume (driven by consumer adoption first and foremost) to warrant this expense - someone will do it. Also, in reality bitcoin isn't all that decentralized. Sure, individual nodes on the p2p network are all over the place however the vast majority of them are members of mining pools, with 3 biggest Chinese pools accounting for 30+ % of the total hashrate.
So if one of the major card networks steps in and takes over that chunk, as a consumer I'd be looking at a more reliable system to deal with.
If you're willing to put the entire system into the cloud and hand over the backbone of Bitcoin to big banks and megacorps, you end up with a system no different from fiat currency over time. It ends up being a State controlled fiat money, because all of the infrastructure providers are Corporations - creatures of the State.
Inflation? No problem, we'll just have the usual suspects update the code. Freezing accounts? Narcoturrerism? No problem, we'll update the code. Etc. Having a P2P electronic cash system means accepting that the system is going to be different than government scrip.
The blockchain was never meant to be PayPal. It was meant to bootstrap a cryptoeconomic system outside the bounds of politics and the law. It's completely irresponsible to give that vision up for the ability globally broadcast low value, meaningless consumer payments - especially since you can achieve that by building higher layers of abstraction.
As for being "outside the bounds of politics and the law" when it really comes down to it you can only go so far especially if there's something as sensitive and highly visible as "money" is involved. Even in the reasonably "soft" western countries there are subpoenas, cease and desist orders etc. All of that can be set in motion by the government who has the final say. In China - they just disconnect the whole country from the internet :)
That's what I keep telling them. The whole of credit processing and banking... even the Fed... runs on centralized, transactional architectures with redundant datacenters and optionally redundant checks from mutually-distrusting parties. What people want to do can be built on a highly-efficient, log-based system with distributed checking run by a foundation (or international collaboration) in a neutral country. It would be simpler, more secure, use less energy, faster, and so on. Additionally, we can choose what level of detail we want in reporting or auditing to reduce data overload.
These blockchain models want everything to go on a blockchain whose operational hurdles even they can't agree on. It's like this subfield of IT is ignoring simple solutions to simple problems while pushing complex solutions with complex problems.
So, I add to your own question: what is it about a smart contract on Bitcoin or Ethereum that couldn't be done with a signed email or website document optionally run through a few cryptographic notaries? The latter is not only simpler and more efficient: it's in use commercially with many courts already approving of concepts and some implementations.
Conversely, Bitcoin never promised smart contracts. To the extent Bitcoiners take part in Ethereum debates, we're only doing it because we know the real game Ethereum is playing is diverting investment capital away from Bitcoin.
Even if that were true, that would necessarily be a bad thing in the interests of not putting all your eggs in one basket.
Otherwise - Blockchains totally suck at everything, and these private-blockchains/blockchains without energy are completely inane and stupid
Of course, the problems on authorities' side might be better or worse with the new models. Nonetheless, my argument is that these blockchains are essentially a combination of specific tech, ledgers, distributed verification, cooperation, and incentives on infrastructure side. You can do all that without blockchains using simple, dumb tech with different organizational structure & participation rules.
We should be smart enough now not to put all of our trust in to one system, and instead to foster a biological-style heterogeneity of systems, all of which we can opt in/out of on a dynamic basis based upon their various objective properties and our risk model versus requirements (==motives).
BOOM! Now you're seeing what I'm talking about. Regardless of the tech, it ends up coming down to the people controlling key companies, organizations, or code. Plus the legal system. So, I prefer just fixing that angle on a centralized system run by mutually-suspicious parties with open verification and incentives aligned right way.
"instead to foster a biological-style heterogeneity of systems, all of which we can opt in/out of on a dynamic basis based upon their various objective properties and our risk model versus requirements (==motives)."
That's a good idea. I'd push several good ones if they were available. Preferably they'd be really different from one another to maximize the diversity benefit. Another angle on that is to derive the currency value from a set of high-value or stable commodities. That was what high-assurance engineer Clive Robinson pushed for as an alternative to either gold or our currency. Turns out, there's an altcoin company doing exactly that. Can't recall the name.
How is that different from a Bitcoin wallet address aka public/private key combo?
I only downvote abusive comments and spam.
As for Ethereum I have a lot of work understanding how the whole thing works. I sense there is a lot of promise and potential there.
However like the internet when it was emerging, I suspect the Ethereum project will probably be attacked without thoughtful discussion.
Bitcoin has a multiple-factor greater mindshare. More developers, more researchers, more conferences, and more overall maturity.
There are a lot of incorrect things in this thread.
* No guarantee of transaction execution
* Turing-complete smart contracts are slow
* Scaling is a moonshot
* Oracles break the trust model
* Public blockchains struggle to stay decentralized
More here:
https://makebitcoingreatagain.wordpress.com/2016/02/10/5-cha...
In addition, it runs your service robustly, and preserves the entire history of the computation forever. The downside is that these transparency and robustness features make the service a lot more expensive than ordinary cloud computing, as well as more difficult to program on.
It doesn't really have much to do with Bitcoin or currency (except that (a) like Bitcoin, Ethereum uses blockchain technology to achieve these things; but that's an implementation detail (b) a Bitcoin clone is one of the many things you could build as an Ethereum application (c) for technical reasons you buy Ethereum server time via purchasing server-time-credits called "Ether").
As a project, Ethereum is very technically ambitious (they are not just working on a cloud computing platform, but also trying to advance blockchain technology in general, eg developing a new proof-of-stake algorithm, and eg developing a way to not have to replicate computations on every node on the network). They are trying to do a lot of new things at once, which is risky (but awesome).
Possible YC startup.
like fulltilt or leehman brothers!
When using banking services, you have a risk of a bank run. How big that risk is? How much work are you willing to do, or how much money are you willing to spend to migitate that risk?
Because it's not legal (in the US), obviously. But the feds won't be able to shut it down if it's on the blockchain. Look at bittorrent, still perfectly alive and well after so many years.
https://www.reddit.com/r/ethereum/comments/415kx8/if_you_are...
IMO one of the main problems is that you need trusted inputs for most "interesting" or "valuable" computations.
There's a lot of talk about replacing Uber/AirBnB/Facebook/etc with decentralized applications but I believe those things are still at least a few years away. Complex applications like those are going to require significant base infrastructure that just doesn't exist yet.
The "Trusted" inputs problem is complex and I don't believe there will be a single solution. Some applications will be fine using trusted oracles. Others will need a more trustless model which is going to require on-chain reputation systems which in-turn is going to require some level of identity/anti-sybil system.
At least a few years? LOL. I would give it 20 years.
that detects phrases like "I would bet my ass off" or "I bet you that" or "I wager" and converts them to a prediction market link - creating the market if it doesn't exist or just linking to it if it does.
[0]https://chrome.google.com/webstore/detail/cloud-to-butt-plus...
The idea is not to supplant Bitcoin/Ethereum but in fact to give them more market share by enabling them to be considered on a properly equal, pragmatic basis with conventional financial services or assets. This would encourage their selection (automatically or otherwise) versus some defined risk model (temporal, legal, etc.), over conventional financial services or assets.
Things that come for free or almost for free when you adopt dynamic financial routing include settlement path redundancy, multi-path settlement, RFQs/bids, multi-hop routing, financial system reliability, etc. Something like real world aware IPv4, for money. I've already suggested an endpoint identification scheme - https://sites.google.com/a/ifex-project.org/wiki/our-proposa... - which is the native account identifier at Kraken.
If anyone would be keen to work in this direction, I started https://sites.google.com/a/ifex-project.org/wiki/our-proposa... years ago, but had to give it up due to competing concerns.
I'm ready to jump in again but don't want to go solo.
What is the simplest contract I can make? And do I need a 3rd party oracle to confirm anything?
contract Hello { string greeting; function setName(string name) { greeting="Hello "+name; } }
The solidity compiler will automatically produce a "getter" function to retrieve the greeting.
Running it is about as far as I got with my investigations.
http://solidity.readthedocs.org/en/latest/introduction-to-sm...
Third party oracle services are provided by Oraclize.it
When they claim that the Ethereum network would function as a global, decentralized "world computer", then what should I assume to be the hardware architecture running its instruction set or, in other words, what is the basic, atomic unit of computation that the network (or other blockchain technologies) can perform. If we think of regular computers, then no matter in which language an application ( i dislike the word 'app' :) is written in, eventually we end up talking about the x86 instruction set, the microcode that makes up each instruction, and, finally, the actual transistors logic that run them.
I somehow feel this is important to ask because we have to take into account the energy efficiency of computation. For example, if we think about the x86 ADD instruction, there is an approximately fixed amount of energy it dissipates when it is performed. ( This is a pretty interesting subject in intself: https://en.wikipedia.org/wiki/Landauer%27s_principle )
What would be an equivalent ADD instruction or other basic unit of computation on the Ethereum computer and how expensive would it be? If it involves one or several distributed blockchain operations, then it seems to me that this model would be neither energy efficient, nor performant, especially if we take into account the distributed factor, which means that such an operation would be very costly since getting one bit of information from one end to the other requires an arbitrary number of routers along its path, and those consume energy to operate.
So I guess what I'm trying to ask is if this is practical in any useful way.
More in depth [1] and in the yellow paper linked in the stack exchange question.
[1] http://ethereum.stackexchange.com/questions/52/how-were-gas-...
If that is correct, then ethereum and Amazon spot instances could be interchangeable - low availability, but potentially lower cost due to the bidding process if there is a lot of excess compute power on the network.
Ethereum is the most expensive computational environment you can imagine. However, it is also the highest trust. Its not for computationally-limited (gaming/data analysis) its for trust-limited (financial applications/privacy)
There is an effort to build a computation market on top of Ethereum, but the computation happens off the chain.
The benefit you get is this: When 500 computers are running it, then you know you can trust the execution and the 'state' of the virtual machine when it is only being run on 50 computers (or 1 in case of a centralized application).
Basically you pay a "gas price" for every opcode executed by the EVM. Clearing a memory address? You pay for it. Setting a value? You pay for it. etc. etc.
(In the above paragraph "you" refers to the "user" sending the transaction)
You really need to think about what you are doing, whether it is allocation, computation, etc. Minimize the number of opcodes and the number of expensive ones at that. To date the contracts are quite simple, although some really interesting things are in the works.
Either way, the price fluctuates woldly as people try to do this scheme, but the company raised $15m and appears to be actively developing the tech. So whether it works(it appears promising) or not, they seem to be svidly trying
The fundraiser, of course, was a pre-mined altcoin.
Also, you point out that the announcement of the intention to premine ether ended up leading to the Ethereum project implementing a plan to premine ether and sell it at a known and predetermined rate?
Riveting conclusion, surprised more people aren't talking about this.
I for one don't buy into the "conspiracy theory" that our society is built on debt, and monetary and fiscal policy have been managed poorly such that capital can not be incentivized to loan. Instead, rates will penalize banks for not lending, as economists try to force staples like food and oil up to introduce inflation into the system as they have lost control on spending as well as flooring rate levels thus losing both measures to fix the problem.
If that were true, it would be bad.
All above was obvious satire
Another issue is the blockchain size which is already 8GB and growing faster than the Bitcoin blockchain.
The large blockchain size, on the other hand, is a legitimate problem with ethereum (as with all blockchain systems.) Hopefully the devs will be able to solve this problem- They are hard at work on a potential solution as we speak.
I think that's a valid criticism- I, too, am a bit disappointed that there are few contracts yet with obvious utility.
However, as someone deep in the community and talking to lots of people, it seems there's going to be tons of interesting dapps deployed in the next 6 months. Hopefully there will be a "killer dapp" among them.
> And how is Ethereum is more secure than a properly setup VPS?
If I store money on your VPS-based app, how can I be assured you can't steal it from me? If I use a feature on your VPS, how can I be sure you won't disable it tomorrow? Ethereum can provide these sorts of guarantees.
My two questions:
1) Any info on how many ethers the founders/founding company had farmed and holding in vault?
2) If Ethereum takes off (financially), and these early members start to dump the ethers for cash, will it crash the Ethereum economy?
Bitcoin could have exactly the same issue, but I feel the difference is most people then wasn't sure if crypto currency would fly, and it is fair to reward on the risk for those who trusted and held bitcoins.
Ethereum sounds like a more refined and polished business endeavour, and I feel it gets too much hype lately.
AFAIK it takes 5 minutes to fork Bitcoin and create a new altcoin. Why would I use ethereum for my altcoin instead of doing a new altcoin?
Here is the tutorial about creating your own coin on ethereum. It's pretty short and interesting: https://www.ethereum.org/token
People like to think of ether as another cryptocurrency like bitcoin but the ethereum currency is intended to be more like a commodity that is used to fuel the platform that runs all sorts of stuff (including currencies).
> A bitcoin fork means you have to build up a group of miners sufficiently large and diverse enough that everyone trusts it.
Of course, you need miners. However the mining is the easy part, otherwise you need marketing, use cases, etc, for the currency to get any traction. I think an altcoin working on top of the ethereum blockchain would not be as convincing as invidual altcoin.
However of course if we are speaking about some other kind of asset, it might make sense to do it on ethereum.
> Making a currency on ethereum means it inherits the trust that ethereum has.
No. Maybe mining security or something, but trust? Why would anyone use these crappy in-ethereum tokens, when you can just use ether itself. Or bitcoin.
You can make tokens as well inside bitcoin via colored coins and similar methods. They haven't gained much traction, I doubt that they will inside ethereum.
The developers can focus entirely on their business use case for the currency (and the marketing) without the need to create an entirely new cryptocurrency.
Ethereum has the highest uptime of any computing platform ever developed. It's probably something like 99.99999% uptime (assuming a 0.00001% yearly chance that the earth is destroyed in a given year from a giant asteroid impact)
What would be a "practical" way of getting the same results with your node server?
Is Ethereum still "engendering positive disruption"? I see they've updated their site to make it more approachable and read less like proecdurally-generated Venture Capitalist jargon. That's nice.
I see they've added a javascript environment. Yuck.
Too late for ether.
And I just killed my thread doing 1M hashes a sec, because I found out that 6MHash/sec = 5 Eth/month on average.
I'll spend my time learning other things, mainly because this is inaccessible to me.
In all honesty, I'm looking at distributed applications as well, which from what I read Ethereum says it does and doesn't do. It's a bit fast and loose from what I read about, about Ethereum's capabilities.
I'll go back to my experimenting with TOR and how it might be possible to make your own distributed applications within the Hidden Services. That's free to use, and as low bar as I can think of. (Add machine, shows up as HS.)
No expenses and you can play around all you like. When you want to go live, there is typically only a very small deployment cost.
And you don't have to mine, you can get free testnet ethereum via the wei faucet:
https://zerogox.com/ethereum/wei_faucet
Gas prices to run code on ethereum are fractions of ethereum, so even a small amount will get you pretty far.
Hope your experimenting goes well!
Both embark and truffle, two commonly-used frameworks, have modes that exercise the CPU even less, though I found them a bit hit or miss. I'm sure both have improved since, though.
I did a quick test run on the main network as well (which wasn't too expensive - maybe 1ETH). You're definitely better off using a testnet! - the turnaround time is much shorter.