News for hackers. Stuff that matters.
Re:Ethereum from scratch – Part 1: Ping by sillysaurus3 on Thursday July 20, 2017 @06:57PM (#14816923)
This is a good question, and it's one I've wondered about. There's nothing stopping you from designing and deploying a blockchain similar to Ethereum that does allow access to those things.

The problem is trust. It's helpful to remember that all the participants in an Ethereum network are adversarial. It doesn't matter how many bad actors there are as long as >50% of participants agree on the outcome. (This is a simplified explanation -- the real system is transitioning to proof of stake rather than proof of work.)

If you allow solidity to access the internet or the system compilers, you can't guarantee determinism anymore. For example, if you increment a counter by the result of accessing https://some-value.com (which returns a JSON value), you could program it to return a different result for everyone who accesses it. None of the nodes would agree what the true value of the counter should be. It'd also result in a central point of failure.

These same problems exist if you let Solidity access the system software. You could program it to give different results, so no one would agree.

The innovation of Solidity is that it's a set of operations where no matter what you do, the majority of nodes will converge to the same answer.

Re:Ethereum from scratch – Part 1: Ping by binofbread on Friday July 21, 2017 @03:35AM (#14818732)
Would it not be possible to write a contract that has intentionally random results? Could you not use the timestamp or some other piece of data to flip a coin to determine the outcome?

Does the EVM prevent this in some way?

I did some searching but I'm not sure I know what to look for either.