The sad reality of Ethereum:
1. Bitcoin is slow and expensive, Ethereum is the future
2. Ethereum software has security hole, gets hacked
3. Ethereum fans say it's an experiment there are lots of things that will transform Ethereum (Casper/PoS, Raiden, zkSNARKs, Enterprise Alliance)
4. Low price getting pumped by Ethereum Foundation & big-holder affiliates
5. Back to #1<p>We've seen it happen again (DAO) and again (Parity) and it will keep happening, because it's broken by design. 90s cypherpunks that pioneered this ideas had considered Turing complete design and discarded it for cryptographic state-machines that allow for formal verification.<p>I appreciate the experimentation, but the takeover-the-world echo-chambers of ethereum that don't focus at all on the real tech behind it and ignore everything negative is pretty disappointing. Especially because we keep getting new people buying this and becoming the greater fools.<p>When talking about engineering on such a critical subject, people should be way more responsible. If Bitcoin had the same attitude regarding security like Ethereum does, we wouldn't be here and cryptocurrencies would be a joke.<p>Lazy engineering comes at great cost as time goes by and the illusion of security is unveiled.
The problem I see with Ethereum is that it is way too complex. I have read perhaps at least 10 times on their home page without even understanding what it does, what problems it solves etc.<p>This is the sole reason why I don't think it will be successful in it's current state. With most successful tech or services or whatever the core idea is often super simple to grasp and you can instantly see the benefit. I don't see this with Ethereum.<p>Even with bitcoin which is complex the benefits are instantaneous for the common man. Decentralized system, no single entity controls it. It is a fixed amount of bitcoins so like a mineral it's value is probably going to be stable in the long run and also each bitcoin will increase in value when more people get interested. It's easy to send coins to anyone in the world, at any time.<p>What does Ethereum do? Smart contracts is probably the key word but I don't understand how it works or how it will benefit me. Why bother?
If you are considering writing a smart contract, you should read this first <a href="https://github.com/ConsenSys/smart-contract-best-practices" rel="nofollow">https://github.com/ConsenSys/smart-contract-best-practices</a> for Solidity security pitfalls, and hopefully have some idea of invariants/contracts to verify expected properties of your smart contract <a href="https://www.cs.cmu.edu/~rjsimmon/15122-s16/lec/01-contracts.pdf" rel="nofollow">https://www.cs.cmu.edu/~rjsimmon/15122-s16/lec/01-contracts....</a> and additionally hope the EVM doesn't have unexpected behavior.<p>Anybody know if the legality of exploiting leaky smart contracts has been tested? Since a lawyer can exploit a badly written contract I wonder if somebody who finds a flaw in a smart contract can legally just jack all the coins or alternatively, write purposely obfuscated contracts (underhanded Solidity contest) to run a scam.
I didn't have high expectations for Solidity considering the recent vulnerabilities, but even these were disappointed. If some guy writes this kind of code at home, alright, but this as the alleged foundation for our future financial system? Frightening.<p>Just one example:
"Our function EndLottery() must be only accessible by the owner of the lottery." [0]<p>function EndLottery() public {
if (msg.sender == owner) {
...
}
}<p>What about code guards? Not to speak of decent typing, etc. etc.<p>[0] <a href="https://ethereumdev.io/managing-multiple-users-a-simple-lottery/" rel="nofollow">https://ethereumdev.io/managing-multiple-users-a-simple-lott...</a>
Maybe it's because I don't have a use for it yet, or at least don't know if I have a use for it. But, the whole Ethereum universe seems vague and seems like they could explain it more than they do. "Install Ethereum wallet, write a contract, ..., Profit!" ?? Is there a better source that might explain what it is, how it works (a glancing explanation not a full network inner workings)??
Does this not seem like the kind of area where you don't want people writing hacky, proof of concept code?<p>The idea of people coding up weekend projects on Ethereum, putting them behind flashy websites and encouraging large scale adoption terrifies me, to be honest.
Programmable smart contracts are a great idea in a world where programmers write bug free code. That world does not exist yet. Until we have near-perfect code writing AIs every new smart contract is just a disaster waiting to happen.
The problem with crypto coins is some have bought in and thus are vested making balanced discussion impossible. We see even with something as trivial as choice of programming language some can become very religious in their support. When money becomes involved expecting rational discussion is perhaps naive.<p>Money is a social construct that needs societal consent and a framework to manage it that is accountable to the societies rules and regulations. So a random person can't just create money or value out of thin air. There is no value being created here.<p>They can make a private coin, and convince others to use it between themselves, there were and still exist many such private arrangements in traditional economies, but the value only exists for those who choose to trust this system, and can never hope to replace the main economic currency.<p>Bitcoin and other coins exists in this space of a private coin based on mutual trust and of no real value to the main economy. Holders of such coins would of course love for it to become a real currency and continue making outlandishly self serving arguments about the economy so they can gain something out of nothing. But that begins to resemble a pyramid scheme powered exclusively by greed and self interest to the exclusion of that society's interests.
I know this might sound like a joke, but it is not: how about documenting how to actually test and debug smart contracts? Is there even a way to do so? How about fuzzying?
Am I misreading the code? Isn't the EndLottery function completely broken? It looks like it finds the first user who bet less than the winning number. So, in order to win you should play ASAP and bet epsilon > 0, right?.
Here is a cool application - <a href="https://predictiontoken.github.io/#TRMP" rel="nofollow">https://predictiontoken.github.io/#TRMP</a>. It lets people bet on outcomes and bets be settled in a decentralized manner. There is a video in the link if you want to understand how it is accomplished.
I think we need an Etudes for Ethereum contract development and best practices; there are like 4 different "make a smart contract that juggles millions of assets on the shutter" tokens and sites, but few that focus on security and how to vigorously remind people that mistakes are worth millions of dollars
They talk about storing money in the contract.<p>Does this mean I will be "charged" right in the moment I "store" money in the contract?<p>Or does it mean I'll be charged when the contract gets "destroyed" and the money "in the contract" is sent to some address?<p>I'm asking because both sides have problems.<p>If I don't get charged when storing money in the cotract, I could spend it elsewhere until the contract resolves.<p>If I get charged when storing money, someone could write contracts that never resolve to purge money.
I took a glance at the lottery example [1] and I wonder: isn't the owner of the lottery able to change the outcome so the winningNumber is always in his favor?<p>[1]: <a href="https://ethereumdev.io/managing-multiple-users-a-simple-lottery/" rel="nofollow">https://ethereumdev.io/managing-multiple-users-a-simple-lott...</a>
Please, enough with the JavaScript already; there are thousands of saner means of expression already existing or waiting to be discovered. Writing flawless, verifiable contracts is the worst use-case ever for that stinking pile of a language. I wonder how many missing bazillions it's going to take for the world to wake up and move on.
There needs to be a separation of the underlying technological fundamentals of ETH and its economic reality -- which is, like anything else, likely to go through bubble phases.
Pretty much sums up the state of Ethereum/Solidity development right now;<p>Step 1, install wallet.
Step 2, deploy contract.
Step 3, learn about Solidity.
...
Testing? Nah.
Thread warning: I'm actively downvoting any argument that tries to address (read: not address) a cryptocurrency's flaws by changing the subject.
Example:<p>Person A: Cryptocurrency X is insecure isn't it.<p>Person B: So is { the dollar | driving | flying | the internet | * }.