For those that are still trying to understand Ethereum, I will try to explain it with non-technical words. Sorry for the long post.
Lets start with the premise we have 3 programs that acts on two values passed to them (input), and return a result (output):
- The sum program.
- The subtract program.
- The vote program.
Ethereum aims to be a decentralized computer, so I will subdivide it in three parts to make it analogous to a regular computer:
-
Input (like the keyboard):
Imagine any crytocurrency, but when you send coins to an address you do not send value(money), you also send data(text, numbers, images, etc). How? Recorded in the transaction body along with the coin transfer details.
This data is then stored in the blockchain, so all nodes process it and verify it.
-
Processing (logic):
Depending where that data is sent, it is processed by the nodes in any way or another, and all nodes do the same processing and verify it.
How? Because previously the creator of the recipient address sent special data with the “keyboard” saying, if data is received at this address process with the sum program, if it goes to this another process it with the subtract program, and so on.
These programs are called “smart contracts”. As you can suppose, this processing have to be repeated by every node in order to verify it and validate the output.
-
Output (the feedback you get back, the result, you can think of it as data on the screen, sound on the speakers, text on the printer…)
When the processing ends, the result is stored in the blockchain, and all nodes record it the same way as an “input”.
Example:
Input: you send the data “8” and “2” embedded on a transaction of 0.00001 ETH to the subtract program identified by its address. All the nodes run the subtract program against your data and they come up with “6”. The output, 6 is stored on the blockchain and all nodes see it. Your wallet see the result on the blockchain and shows you the result, 6.
You can imagine the use cases, for example you can easily define the program 3 (vote) by modifying the add program to look at previous inputs to itself and come up a sum of all of them. And so on.
You could even build Nu on top of it, what would be the advantaje? None!
It would be much slower and you would have to pay for using it. Yes, PAY. Did you notice that the input is on a transaction? So for sending data you have to effectively send coins and that coins have to be ETH, That is the value of ETH coins and why people is buying. Of course it can be forked, and the original Ethereum blockchain would not have any advantage whatsoever compared to the new, smaller, and probably cheaper one.
Having said that, forget about privacy or secure communication, since everything processed by the platform has to be public to allow being verified by all the nodes.
Also I must raise my main concern, we are worried about bitcoin scalability (the block size debate) and yet we expect this blockchain to withstand the load of a ton of other platforms? And without (pun intended) motions? You decide.