Something in there about a decentralized platform for running apps, but I don't want to guess too deeply about what this means.
Is it a cloud hosting platform that runs on Ether? Is the platform going to be used primarily for mining Ether? I'm not even sure, if anyone has a short description that will explain what this is, I'd love to read it!
https://forum.ethereum.org/discussion/1634/tutorial-1-your-f...
https://forum.ethereum.org/discussion/1635/tutorial-2-rainbo...
This is my outsiders understanding. I think there are potentially a lot of things that could be gotten wrong here - from the specific implementation and security measures to the economic plan. But it's one of several such experiments with using the blockchain, so I'm looking forward to see what they can do - that said I have no expectations for financial gain.
1. A program written in ethereum can execute code at a predetermined point in the future, and there is as close to 100% certainty as possible that the code will execute as written (i.e. as long as a single ethereum user remains in the world at that date everybody's code is guaranteed to run exactly as written, even if it involves moving money between accounts.)
2. All computer programs are "open source" not just before a program is launched but also WHILE THE PROGRAM IS RUNNING- Nobody can run any code without having full transparency.
3. Users accounts are provably always in a state of complete anonymity (unless of course they do something to purposely reveal their identity) and can use all programs on the platform in this fully anonymous state.
4. Program authors are forced to explicitly document ahead of time all situations in which their program code might be modified in the future, making it much harder to have the "screw your user after they've committed to your platform" business model that's so popular among startups these days.
Those are just some of the properties of ethereum that come to mind.
Can you point me to a resource that explains this in more detail? I think I've gotten the gist of how Ethereum works, and have gone through a tutorial of Solidity, but I'm unclear how versioning will work in Ethereum (even though I do have some guesses for how it could be implemented).
How would I deploy a new version of my contract? Would I have to implement a mechanism for basically hot loading new code?
Uh...
Users interact directly with contract A.
Contract A stores a address which currently points to contract B, and uses whatever contract it currently points to to accomplish whatever it needs to do for users.
To update the part of Contract A, upload an updated contract C, and send A a message to tell it to change the address it stores to point to contract C instead.
Contract A only changes where the address points if whatever conditions it was designed to use for that are met.
And, of course, you don't have to use this "point to another contract" thing.
That's just if you need part of the contract to be updateable under some conditions, which you might not need.
Well, using a blockchain. Its not using "the blockchain" in the usual sense; Ethereum is specifically using an alternative to the Bitcoin protocol and blockchain, not built on top of it.
Ethereum is useful for this because it allows for distributed custody of funds. No one controls the funds stored in these contracts, so there's no one to run away with and steal all the money, and, since it's run on Ethereum, there's no middleman taking 5-10% fees. In fact, for the first time, we can have a truly global prediction market, and _anyone_ can create markets on it to boot! This is just one app possible on ethereum, and it's one I'm building - www.augur.net if you're interested.
Ethereum's basically a platform that allows you to create "smart contracts" (aka programs) that are practically guaranteed to execute the way you write them. And multiple people can interact with the programs and it'll still be executed the same way. This is a bit abstract, but the main huge advantage this allows is: you can finally send money to some program, and the program will do exactly what it says it will, and no one else can modify the results or even touch your money. Bitcoin allows you to send money around, Ethereum allows you to enter into complex contracts with money, and those contracts are always enforceable.
To take this into the real world, imagine you want to make a bitcoin prediction market. Since you can't run the complicated buy/sell machinery of a prediction market directly on bitcoin, you're forced to take deposits from users, match their orders, and then do payouts accordingly after the event occurs. You can run away with the funds at any time, and there's nothing stopping you. Sure, you could elect to use multisignature wallets or cold storage, but that didn't stop MtGox from happening. Heck, even InTrade, the largest prior prediction market had millions of dollars of funds embezzled by their later CEO.
Now with Ethereum, we can send funds to a contract, they're stored there. You can buy and sell and all orders go through the contract. At the end payouts are done by the code in the contract, and no one can take the funds held in the contract.
Today's systems have a centralized source of truth: corporate databases. There was no other way to build applications that involve multiple users interacting with each other, so companies built those systems and profited from providing a solution.
With Ethereum, we can write simple programs that run on thousands of computers and come to a consensus on the result. Nasdaq doesn't need to tell us the result of a trade or who owns what. We can build equivalent systems that no one controls. The result is a transfer of profits from middlemen to the rest of humanity.
Finance is easy to think about in a decentralized manner since it's all information that computers control. But these systems can apply to real world interactions as well by building reputation systems on top of this global computer. If you don't abide by the rules of the decentralized system you're participating in, your reputation score will go down and people will stop interacting with you.
In this manner, Ethereum can be used to replace every marketplace startup. Uber and Airbnb are so successful because they benefit from strong network effects. Decentralized applications also benefit from strong network effects: every new decentralized Uber application will use the data from the ones that already exist to bootstrap themselves. The user base will never splinter like it does when new centralized competitors attempt to enter the market.
Ethereum gives mankind the ability to coordinate interactions between ourselves more powerfully than ever before. Social systems that once seemed too unwieldy or too anarchic to work out might now be feasible, and they could make us wealthier and more free.
On a side note, I've resigned from my previous startup a month after they've changed the values to "blah blah blah advance humanity blah blah".
Learning how to build applications on top of Ethereum is one of the most important things an engineer can do if they want to maximize their impact on humanity. I am not ashamed of these claims, and encourage anyone who wants to debate them to email me. niran@niran.org
What questions do you have about how Ethereum is useful? I attempted to answer that question, but appreciate pointers that would make it more effective.
Maybe you can talk how Ethereum can be useful for, if I understood the platform correctly, buying/selling a car by means of a colored coin.
Or maybe you can explain how it competes for buying/Selling money Bitcoin-style, but with the specific advanteges pointed out (e.g. you don't have to download the blockchain as far as I know, etc).
Edit: After going through a few explanations, this one came up as the one I would think of using to someone that already knows Bitcoin:
Blockchain technology, introduced by Satoshi Nakamoto with the proof-of-concept implementation of a simple value transfer system known as bitcoin, represents the best digital system we have (after the internet itself) for administering multi-user interactions without any need for centralized coordination or oversight. Effectively, a decentralized system is its own authority for enforcing the rules (e.g. 'you can only spend your money once' in bitcoin, or 'whatever rule you programmed in to your smart contract' in Ethereum)
So Bitcoin enforces a very specific rule, Ethereum generalizes by letting you specify complex rules and even composite rules on top of that.
(for those who don't know, I'm the founder :) )
Ethereum uses a cryptocurrency under-the-hood called 'ether', which pays for 'gas': compute resources like networking, storage and compute. These resources are used in a decentralized way by programs which are capable of carrying their own cryptocurrency wallets. As long as the programs can pay for their own existence, they get to keep running on the network. Like Bitcoin, the network is comprised of a bunch of 'miners' that provide the resources for running the code. You could run a miner if you wanted to. Unlike Bitcoin, the code keeps running as long as it can pay for the resources it uses. I could write some code that does this, if I wanted to.
In theory, you could create some code, have it generate a wallet, pay the wallet, and then let the little guy go wander off onto the network doing things. BTW, this little guy I'm describing is called a DAC, for decentralized autonomous corporation (or smart contracts). The 'things' it can do are limited, but it can, in theory, pay for stuff or pay other DACs, access storage, do computations, and access the network. Keep in mind this is isn't a NodeJS application framework you are dealing with here. Ethereum is primarily designed for implementing logically governed contracts between entities that need to exchange value. It's like Bitcoin scrypt on steroids, without the possibility of a halting-state. In theory.
Fun fact: Bitcoin scrypt doesn't support loops, so it's limited in scope in what it can do with a given transaction. Not so with Ethereum.
AFAIK, it was done on purpose: http://bitcoin.stackexchange.com/questions/25427/the-bitcoin...
https://blog.ethereum.org/2014/09/17/scalability-part-1-buil...
https://blog.ethereum.org/2014/10/21/scalability-part-2-hype...
After skimming these, I'm comfortable assuming that someone will figure it out. Blockchain architecture doesn't excite me. Decentralized applications do.
I'll tell you exactly what Ethereum is: a blockchain for storing code. Bitcoin stores transactions, Ethereum stores programs. Those programs have persistent state on the blockchain and are capable of moving value around the system, hence you can build games, financial instruments and so on. These things are called "smart contracts" for historical reasons - nobody would call them that if they were invented now!
How's that? Clearer?
Not at all. We have been storing programs, building games etc for some 40 or 50 or 70 years now, without Ethereum. So, how does Ethereum does it better/cheaper than the existing solutions, is what people above are asking.
But the big difference is that programs in ethereum run on the "protocol level" not the hardware level. This means that correct execution of all programs is a necessary step before two ethereum nodes can talk to each other, this gives very high guarantees of correct and transparent execution beyond what other systems allow.
It's a globally shared immutable linked list...
Umm... I'm pretty sure programs still execute on hardware...
That's what I mean by running "as a protocol" and not on hardware... it's a higher level of abstraction.
As for examples:
Digital Pokemón Cards. Basically the ability to create digital collectors items.
E-books that could gain value. You could sell ebooks at a premium and allow people to re-sell them. Because the history of their ownership is recorded you could even see them gaining value if they had been owned by a celebrity.
Private but public healthcare records. For research and usage. Store the health-records publicly as personas but allow individuals people to link it with their identity. This would help with research in completely new ways.
Voting made public but anonymous Make it hard to manipulate voting results by making the anonymized results available for everyone.
Artificial Intelligence Using the protocol to create automated consensus models.
Companies without owners Build a company with a political purpose without any owner.
I always hoped I could see a post-scarcity physical world in my lifetime. Now you are telling me that there are people trying to present me with a pre-scarcity digital world? No, thank you. :)
Things that have value are often valuable exactly because they are not abundant but scarce. The scarcer the more valuable.
Post-scarcity is about creating enough fundamentals (ex. food) to everyone, but it's not about removing the value of scarcity for some food that might be extra hard to produce.
Many things only works if they are scarce that does not mean we shouldn't try to achieve post scarcity.
Inspired by an earlier HN post:
https://www.reddit.com/r/dredmorbius/comments/27d5xr/please_...
What is ether?
Ether is a necessary element -- a fuel -- for operating the distributed application software platform we are building: Ethereum. Without the requirement of payment of ether for every computational step and storage operation within the system, infinite loops or excessive storage demands could bog down Ethereum and effectively destroy it.
Last year, there was Paycoin, which was like Bitcoin, but a lot more complicated. It tanked. It seems to have been a scam.
Really pointless comment, especially after others a) have echoed the sentiment and b) have provided answers.