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.
https://forum.ethereum.org/discussion/1634/tutorial-1-your-f...
https://forum.ethereum.org/discussion/1635/tutorial-2-rainbo...
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.
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!