I like the idea of Ethereum but it does not solve distributed application needs IMO. I fear it is not able to solve large-scale app problems considering it only has the computation power of a "1999 phone", requires every to store (or at least know about) all state, and requires everyone up to date to run EVERY computation. For instance, take a distributed Reddit where posts can be mappings, even by deferring the costs to the viewers in terms of small amounts of wei per view, it surely wouldn't be enough to cover the expense of centralized permanent store (I understand Whisper is coming but it isn't permanent enough).
I see a couple of Ehtereum frameworks out there using things IPFS for storage. Are there any plans for Ethereum to solve concerns about forcing everyone to run all calculations or should it always be seen as a small DHT that you only want to use when you have real auditability concerns?
This is probably the most cogent criticism that can be leveled against ethereum right now- The performance constraints for ethereum dapps are pretty extreme. There are indeed plans to solve the problem you describe (read posts on blog.ethereum.org mentioning scalability) and these problems are probably solvable, but a working system remains far off.
That said, I think ethereum dapps are going to be substantively different from traditional apps people are used to- I think there's a lot of opportunity in this type of system for people who don't take the mindset of "This system is bad at running existing app X therefore it is bad for everything."
Ethereum is indeed not meant for distributed computing, You should use Ethereum only for consensus and avoid any unneeded processing, the blockchain is there to avoid 'cheating' it's not meant to be a backend.
Agreed. Right now it's a single shared processor emulated with cryptography and massive replication - but that's not an architecture that will get you supercomputer performance.
The work on that thread - getting Ethereum to supercomputer status - is called CASPAR and you can read more about the efforts to get a formal proof for it here:
That's because you're looking at the platform with the wrong perspective...
When the Uber app needs consensus with the banks in order to mark a payment as "legit", it uses just few kb's of bandwidth and a couple of requests to communicate with Braintree. You don't run all your apps on Braintree's shoulders.
The same way, I can build a normal app, or NW.js wrapper for my desktop app (HTML/JS/CSS) and use localstorage as db, or remote servers as backends to process the heavy tasks. Then I'd connect to the Ethereum network just when is required consensus. I don't have to run all the app on Ethereum.
That's how I see it. You don't use a blockchain as a DB to store Reddit posts. It's a poor choice. Ethereum is very good for other use cases.
Here's another angle on Ethereum: I think it's going to put Walmart, Amazon, Uber and Airbnb out of business.
Consider Amazon. They buy goods from manufacturers, then sell those goods to consumers for higher prices and pocket (or spend) the profits. Pretty simple. They provide a great service that makes it easier for people to buy and sell stuff, and they get paid well to do it.
But what if all of Amazon's customers wanted to band together and cut out the middleman? They could use their collective buying power to get the same prices from manufacturers, but eliminate the profit and just pay lower prices. It's possible, but it'd be hard to achieve. Who would run the system? How would they make decisions? It's so hard that the customers would give up, finish buying their disposable consumer goods, watch an episode of Humans and go to sleep.
Or one of them could come up with a solution. "Hey y'all, I wrote the software for a marketplace system to connect us all directly to manufacturers, but I know you can't trust me to never take a cut if I run the system myself. So instead, I'll run it on a global computer that no one controls. Programs on the global computer can never change, and no one can fake their data. That means the system will be out of my control and the rules are set in stone. It's everyone's system."
That global computer is called Ethereum, and it lets us build new kinds of software that can coordinate human interactions so powerfully that this guy's solution just might work. You could build other kinds of apps on Ethereum too, like voluntary social safety nets, apps that let your future smart appliances talk to each other long after their manufacturer shuts down, or pretty much the entire financial industry—all without any middlemen to charge you or restrict your access.
If you know how to program, you should learn how to build apps on Ethereum. And not just the code that runs directly on the global computer, but web apps and mobile apps that you already know how to build, just with the global computer as the backend instead of a private computer. I will help you get started. ([email protected])
Maybe I'm overly optimistic. That's a risk I'm willing to take. You should too.
I've heard this specific dream pitched before and while I think it's a great idea it still doesn't solve the issues around shipping specifically. One of the things Amazon does really really well is the logistics of shipping the product to the customers and while a bunch of people coming together to buy goods straight from the producer would cut out the profit taken by the middleman it wouldn't help with getting the items to your door. Individual manufacturers simply can't negotiate the contracts that Amazon has with UPS and individual manufacturers don't have the the warehouses and the massive infrastructure Amazon has. If a producer made 10,000 widgets and sent them out to 10,000 people that is a lot more difficult than simply sending a pallet to Amazon and having them sell the items and send them to the customers. They aren't just some website that lets you buy things, there is an enormous infrastructure that supports the commerce.
This is something you can get a better sense for when you back Kickstarter projects and see just how much time is spent around packaging and shipping. It is a huge task that a lot of inexperienced companies get totally swamped by.
Edit: I would also like to add that if we bought goods straight from the manufacturer then we would have to deal with greater ship times as well. If you're ordering something from a factory across the US it's going to take a week to get to you. But if Amazon or another marketplace has already purchased the item and stores it a day away from you or in the same city (knowing that there is a chance someone like you is going to order one soon) then you can get the item much faster. That convenience is something that really only a logistics and warehousing middleman can do effectively and people pay for that convenience.
Edit 2: I don't work for or am affiliated with Amazon.com - I just have seen into the belly of the beast at a few online retailers and have good sense of what goes on in there.
I think there will be a similar flood of ideas of business to run on ethereum that are ahead of the market.
Back in the dot com boom, there were people who understood the potential of the internet and pushed plans to take advantage. Many failed to hold together because there had not been a large enough migration of users to the new medium.
I agree with you about Ethereum's potential, but I think the first businesses to succeed will be low overhead outfits that can handle waiting out the slow transition.
I am thinking about what would have happened with Amazon if they had started AWS, Amazon Instant Video, and Amazon Prime Now back in '97. They would never have been able to pay developer salaries waiting for 2011 to come. The biggest upside on Ethereum will be a company that understands the medium, starts small, and presses the envelope.
what prevents Amazon, specifically Amazon, from pivoting and doing the same? They certainly have some forward thinking people within the org, and an enormous and dedicated work force behind them. Do you think they're sincerely overlooking this?
Hi, I'm the author of the piece, and the release coordinator for Ethereum. If you have any questions about the launch, please ask me. You can watch the new network stats here https://stats.ethdev.com/ or download a client at https://ethereum.org/ and get involved!
I'm interested in more about the sustainability of this project: what's paying the bills now, and what's going to ensure the bills are payed in the future?
Bitcoin survived long enough to become within a reasonable approximation of self-sustaining... is Ethereum basically someone spending their early-adopter Bitcoin collection as runway?
We still have a substantial reserve of bitcoin and fiat currency, plus the pre-mined Ether which the Ethereum Foundation holds for further development. I can't speak on this officially, but Vitalik Buterin has mentioned it in the past https://www.reddit.com/r/ethereum/comments/2zoawi/ethereum_f...
The ethereum foundation was given a sizeable endowment of ether currency to help advance development, as part of the launch. It will take 3-4 days before we'll have any idea of the market price of ether, and I won't speculate, but this will be a critical data point to answer your question.
How much thought has gone into preventing underhanded [1] smart contracts? It seems like, if this catches on, there could be large rewards for sneaking in hard-to-notice "mistakes". And given how little attention people already pay to EULAs...
The solidity programming language is expected to support embedded proofs in the near future, so that contract developers can specify invariants that are guaranteed to hold true if the contract compiles... so you'll be able to state things like "No person other than the depositor in a bank will be able to withdraw the money" and the compiler will generate a proof to verify this, visible to any users of the contract.
(That said, this is an EXTREMELY ambitious feature and I'm mildly skeptical that they'll be able to deliver it... but the team working on Solidity has put out very good work so far...)
We've discussed a variety of approaches. The one I like best is that "contract interpreters" offer a professional service, which is that they read a contract and tell you what it will do. You pay them for this service, and they have a public bond of sufficient size that if they screw up, a claim against their public bond will make the person affected whole.
This assumes a few things: dispute resolution services, flexible escrow agreements, and a lot of human judgement in a relatively corruption-free environment. My guess is that this is going to be expensive to provide, and might well rest up against existing contracting infrastructure (i.e. KPMG type agencies might offer a blockchain auditing service with insurance in some imagined futures.)
Hence I'd expect a long tail from high value, deeply audited contracts with insurance and bonds to back them up, through to collaborative pools that just note when they've been ripped off, down to "it worked for me!" reviews on forums.
I'm not sure there's a better solution than this, but it's a topic of ongoing research and discussion.
So, one potential idea is to incentivise developers to "audit" smart contracts in repositories. The metrics of the audit score can then be shown to the end user to let them make the decision as to whether a smart contract is safe or not.
Bitcoin's big push was to make central banks obsolete. It's a temporary success, long-term failure because the blockchain grows infinitely. Soon only big corps will be able to afford maintaining instances of the blockchain. The more successful it is, the less it achieves its original goals.
Ethereum uses a blockchain and therefore has the same fault (although democratization is not a stated goal of Ethereum). I'm sure it will be a useful platform for some but the pre-mining thing leaves as bad a taste as all other alt-coins that popped up. It's the big-business version of the digital Ponzi scheme.
Actually, storage on blockchains has two different solutions.
1) Disk space halves in price roughly every year and a half. Currently 2tb costs $100 USD. So odds-are the price of running a full node continues to stay about static, unless transactions increase faster than 2x every year and a half.
2) clients can calculate the current state of play for every account, and then shed the past transactions past a certain point, or amortize the cost of the storage pools by each keeping a fragment of the total transactions.
Remember, transactions can't be forged, only omitted, so it's possible in all cases for a set of clients to collaborate and ensure that between them they have a complete history.
The block chain does not grow 'infinitely' it grows linearly at a predictable maximum rate.
For any given point in time the block chain will be at max a certain size, given that Moore's law grows faster than the block chain we should be safe in assuming that any reasonable computer in the future will be capable of storing the block chain.
Seriously, we're talking like 20 GB per year at current rates... The entire thing fits comfortably on an iPhone, let alone a $60 1TB drive.
Good writing indeed. And for a technical audience, I also like to use the following (if oversimplified) description of Ethereum (quoting from [1]):
"... In a way, Ethereum is like a cloud infrastructure that is extremely open. You can run any code you like in this cloud, as long as you follow some rules. Firstly, the code you run in Ethereum has to be essentially open source: you can only run your code if you publish it, unmodified. Secondly, even your database contents are public. (Privacy is still possible with client-side encryption, though client-side encryption will not work if the server also needs to read the data. In that case, preserving full privacy is still possible, though it may require sophisticated cryptography). The openness goes further: the underlying cloud infrastructure has no single owner. Rather, Ethereum is a fully distributed system, enabled by the block chain technology.
Why would anybody need this much openness? There are certain applications that truly require this level of trust and auditability. The Bitcoin currency is one example. Bitcoin already uses the same underlying block chain technology as Ethereum (in fact, Bitcoin pioneered it). It is unlikely that Bitcoin could have succeeded otherwise. Indeed, who would trust a startup that essentially prints and sells their own money, and whose founders are not known?"
"by the end of this article, you’re going to understand blockchains well enough to decide what they mean to your life."
I very deliberately didn't explain mining or blocks or consensus protocols because, really, that's technical gubbins that fits between "BEGIN TRANSACTION" and "COMMIT TRANSACTION" in an SQL database.
Unless your technical concerns are between those two statements, you don't need to care about mining. That's where we've been going wrong explaining blockchains so far.
Ethereum is getting a lot of heat for being "pre-mined". What stops someone from running an alt-ethereum blockchain which is not pre-mined? AKA a non-pre-mined Ethereum fork?
1. It would be more prone to 51% attacks, unless they use a different mining algorithm than the more popular chain
2. The usefulness of contracts involving money is directly proportional to the stability and aggregate value of the base currency, and a copycat will not be able to match the official net on this measure.
3. The grim trigger equillibrium would doom such a blockchain if it becomes successful (look up on wikipedia)
4. There would be no dev team to support ongoing development if it overtakes the main net.
So how come Satoshi makes a brilliant breaktrough and released a really well designed/coded opensource project (Bitcoin) to the world without asking anyone for a cent, and then promptly disappearing (dead?) with all the coins he mined at the beginning not moved despite now being worth billions.
Yet every day, yet another project such as Ethereum, Maidsafe, Storj, OpenBazaar popup make grand promises via fancy websites and raise millions worth of bitcoin and then ... ... nothing.
I think we have just delivered quite a lot: the network is up and running, transactions enabled Monday or Tuesday, and the code is all FOSS and available for download.
Earlier today, they completely delivered the product they had promised during their crowdsale, and more. As a participant in the crowdsale, I am fully satisfied with the release of geth 1.0.0 and the Frontier production network.
(with the caveat that the network is still limited until Monday or so when a regular transaction load will be possible)
[+] [-] kodablah|10 years ago|reply
I see a couple of Ehtereum frameworks out there using things IPFS for storage. Are there any plans for Ethereum to solve concerns about forcing everyone to run all calculations or should it always be seen as a small DHT that you only want to use when you have real auditability concerns?
[+] [-] drcode|10 years ago|reply
That said, I think ethereum dapps are going to be substantively different from traditional apps people are used to- I think there's a lot of opportunity in this type of system for people who don't take the mindset of "This system is bad at running existing app X therefore it is bad for everything."
[+] [-] heliumcraft|10 years ago|reply
As for frameworks I guess you are referring to Embark: https://github.com/iurimatias/embark-framework
[+] [-] Hexayurt|10 years ago|reply
The work on that thread - getting Ethereum to supercomputer status - is called CASPAR and you can read more about the efforts to get a formal proof for it here:
http://blog.synereo.com/2015/07/23/Ethereum-+-Synereo/
[+] [-] joeyspn|10 years ago|reply
When the Uber app needs consensus with the banks in order to mark a payment as "legit", it uses just few kb's of bandwidth and a couple of requests to communicate with Braintree. You don't run all your apps on Braintree's shoulders.
The same way, I can build a normal app, or NW.js wrapper for my desktop app (HTML/JS/CSS) and use localstorage as db, or remote servers as backends to process the heavy tasks. Then I'd connect to the Ethereum network just when is required consensus. I don't have to run all the app on Ethereum.
That's how I see it. You don't use a blockchain as a DB to store Reddit posts. It's a poor choice. Ethereum is very good for other use cases.
[+] [-] natrius|10 years ago|reply
Consider Amazon. They buy goods from manufacturers, then sell those goods to consumers for higher prices and pocket (or spend) the profits. Pretty simple. They provide a great service that makes it easier for people to buy and sell stuff, and they get paid well to do it.
But what if all of Amazon's customers wanted to band together and cut out the middleman? They could use their collective buying power to get the same prices from manufacturers, but eliminate the profit and just pay lower prices. It's possible, but it'd be hard to achieve. Who would run the system? How would they make decisions? It's so hard that the customers would give up, finish buying their disposable consumer goods, watch an episode of Humans and go to sleep.
Or one of them could come up with a solution. "Hey y'all, I wrote the software for a marketplace system to connect us all directly to manufacturers, but I know you can't trust me to never take a cut if I run the system myself. So instead, I'll run it on a global computer that no one controls. Programs on the global computer can never change, and no one can fake their data. That means the system will be out of my control and the rules are set in stone. It's everyone's system."
That global computer is called Ethereum, and it lets us build new kinds of software that can coordinate human interactions so powerfully that this guy's solution just might work. You could build other kinds of apps on Ethereum too, like voluntary social safety nets, apps that let your future smart appliances talk to each other long after their manufacturer shuts down, or pretty much the entire financial industry—all without any middlemen to charge you or restrict your access.
If you know how to program, you should learn how to build apps on Ethereum. And not just the code that runs directly on the global computer, but web apps and mobile apps that you already know how to build, just with the global computer as the backend instead of a private computer. I will help you get started. ([email protected])
Maybe I'm overly optimistic. That's a risk I'm willing to take. You should too.
[+] [-] amckenna|10 years ago|reply
This is something you can get a better sense for when you back Kickstarter projects and see just how much time is spent around packaging and shipping. It is a huge task that a lot of inexperienced companies get totally swamped by.
Edit: I would also like to add that if we bought goods straight from the manufacturer then we would have to deal with greater ship times as well. If you're ordering something from a factory across the US it's going to take a week to get to you. But if Amazon or another marketplace has already purchased the item and stores it a day away from you or in the same city (knowing that there is a chance someone like you is going to order one soon) then you can get the item much faster. That convenience is something that really only a logistics and warehousing middleman can do effectively and people pay for that convenience.
Edit 2: I don't work for or am affiliated with Amazon.com - I just have seen into the belly of the beast at a few online retailers and have good sense of what goes on in there.
[+] [-] bgilroy26|10 years ago|reply
Back in the dot com boom, there were people who understood the potential of the internet and pushed plans to take advantage. Many failed to hold together because there had not been a large enough migration of users to the new medium.
I agree with you about Ethereum's potential, but I think the first businesses to succeed will be low overhead outfits that can handle waiting out the slow transition.
I am thinking about what would have happened with Amazon if they had started AWS, Amazon Instant Video, and Amazon Prime Now back in '97. They would never have been able to pay developer salaries waiting for 2011 to come. The biggest upside on Ethereum will be a company that understands the medium, starts small, and presses the envelope.
[+] [-] mylons|10 years ago|reply
[+] [-] unknown|10 years ago|reply
[deleted]
[+] [-] unknown|10 years ago|reply
[deleted]
[+] [-] unknown|10 years ago|reply
[deleted]
[+] [-] Hexayurt|10 years ago|reply
[+] [-] sschueller|10 years ago|reply
[+] [-] j_s|10 years ago|reply
Bitcoin survived long enough to become within a reasonable approximation of self-sustaining... is Ethereum basically someone spending their early-adopter Bitcoin collection as runway?
Edit: found this blogpost - https://blog.ethereum.org/2015/03/14/ethereum-the-first-year...
My TL,DR: Ethereum development is under a non-profit initially 'VC-funded(-ish)' (with Bitcoin) vs. how Bitcoin itself was organically 'bootstrapped'.
[+] [-] Hexayurt|10 years ago|reply
[+] [-] drcode|10 years ago|reply
[+] [-] Strilanc|10 years ago|reply
1: https://en.wikipedia.org/wiki/Underhanded_C_Contest
[+] [-] drcode|10 years ago|reply
(That said, this is an EXTREMELY ambitious feature and I'm mildly skeptical that they'll be able to deliver it... but the team working on Solidity has put out very good work so far...)
[+] [-] Hexayurt|10 years ago|reply
We've discussed a variety of approaches. The one I like best is that "contract interpreters" offer a professional service, which is that they read a contract and tell you what it will do. You pay them for this service, and they have a public bond of sufficient size that if they screw up, a claim against their public bond will make the person affected whole.
This assumes a few things: dispute resolution services, flexible escrow agreements, and a lot of human judgement in a relatively corruption-free environment. My guess is that this is going to be expensive to provide, and might well rest up against existing contracting infrastructure (i.e. KPMG type agencies might offer a blockchain auditing service with insurance in some imagined futures.)
Hence I'd expect a long tail from high value, deeply audited contracts with insurance and bonds to back them up, through to collaborative pools that just note when they've been ripped off, down to "it worked for me!" reviews on forums.
I'm not sure there's a better solution than this, but it's a topic of ongoing research and discussion.
[+] [-] highfiveghost|10 years ago|reply
It's a start.
[+] [-] explorigin|10 years ago|reply
Ethereum uses a blockchain and therefore has the same fault (although democratization is not a stated goal of Ethereum). I'm sure it will be a useful platform for some but the pre-mining thing leaves as bad a taste as all other alt-coins that popped up. It's the big-business version of the digital Ponzi scheme.
I'm still waiting on Maidsafe.
[+] [-] Hexayurt|10 years ago|reply
1) Disk space halves in price roughly every year and a half. Currently 2tb costs $100 USD. So odds-are the price of running a full node continues to stay about static, unless transactions increase faster than 2x every year and a half.
2) clients can calculate the current state of play for every account, and then shed the past transactions past a certain point, or amortize the cost of the storage pools by each keeping a fragment of the total transactions.
Remember, transactions can't be forged, only omitted, so it's possible in all cases for a set of clients to collaborate and ensure that between them they have a complete history.
And these are just the naive approaches. See https://blog.ethereum.org/2015/06/26/state-tree-pruning/ for a more sophisticated approach (by Vitalik Buterin.)
[+] [-] fleitz|10 years ago|reply
For any given point in time the block chain will be at max a certain size, given that Moore's law grows faster than the block chain we should be safe in assuming that any reasonable computer in the future will be capable of storing the block chain.
Seriously, we're talking like 20 GB per year at current rates... The entire thing fits comfortably on an iPhone, let alone a $60 1TB drive.
https://blockchain.info/charts/blocks-size?timespan=all&show...
[+] [-] unknown|10 years ago|reply
[deleted]
[+] [-] natch|10 years ago|reply
[+] [-] asdfgP|10 years ago|reply
"... In a way, Ethereum is like a cloud infrastructure that is extremely open. You can run any code you like in this cloud, as long as you follow some rules. Firstly, the code you run in Ethereum has to be essentially open source: you can only run your code if you publish it, unmodified. Secondly, even your database contents are public. (Privacy is still possible with client-side encryption, though client-side encryption will not work if the server also needs to read the data. In that case, preserving full privacy is still possible, though it may require sophisticated cryptography). The openness goes further: the underlying cloud infrastructure has no single owner. Rather, Ethereum is a fully distributed system, enabled by the block chain technology.
Why would anybody need this much openness? There are certain applications that truly require this level of trust and auditability. The Bitcoin currency is one example. Bitcoin already uses the same underlying block chain technology as Ethereum (in fact, Bitcoin pioneered it). It is unlikely that Bitcoin could have succeeded otherwise. Indeed, who would trust a startup that essentially prints and sells their own money, and whose founders are not known?"
[1] https://ristoalas.wordpress.com/2015/07/30/what-is-ethereum/
[+] [-] Hexayurt|10 years ago|reply
I very deliberately didn't explain mining or blocks or consensus protocols because, really, that's technical gubbins that fits between "BEGIN TRANSACTION" and "COMMIT TRANSACTION" in an SQL database.
Unless your technical concerns are between those two statements, you don't need to care about mining. That's where we've been going wrong explaining blockchains so far.
[+] [-] ubersync|10 years ago|reply
[+] [-] drcode|10 years ago|reply
2. The usefulness of contracts involving money is directly proportional to the stability and aggregate value of the base currency, and a copycat will not be able to match the official net on this measure.
3. The grim trigger equillibrium would doom such a blockchain if it becomes successful (look up on wikipedia)
4. There would be no dev team to support ongoing development if it overtakes the main net.
5. Network effects
[+] [-] Hexayurt|10 years ago|reply
[+] [-] calneva01|10 years ago|reply
[+] [-] calneva01|10 years ago|reply
[+] [-] calneva01|10 years ago|reply
[+] [-] calneva01|10 years ago|reply
[+] [-] unknown|10 years ago|reply
[deleted]
[+] [-] calneva01|10 years ago|reply
[deleted]
[+] [-] calneva01|10 years ago|reply
[deleted]
[+] [-] calneva01|10 years ago|reply
[deleted]
[+] [-] yc1010|10 years ago|reply
Yet every day, yet another project such as Ethereum, Maidsafe, Storj, OpenBazaar popup make grand promises via fancy websites and raise millions worth of bitcoin and then ... ... nothing.
BTW #3 on > https://en.wikipedia.org/wiki/List_of_highest_funded_crowdfu...
Please stop with all the promises and "crowdfunding" (which downright smells) and actually deliver something.
[+] [-] Hexayurt|10 years ago|reply
We have shipped.
[+] [-] drcode|10 years ago|reply
(with the caveat that the network is still limited until Monday or so when a regular transaction load will be possible)