benefit.
2. Universality: a fundamental part of Ethereum's design philosophy is that Ethereum
does not have "features". Instead, Ethereum provides an internal Turing-complete
scripting language, which a programmer can use to construct any smart contract or
transaction type that can be mathematically defined. Want to invent your own financial
derivative? With Ethereum, you can. Want to make your own currency? Set it up as an
Ethereum contract. Want to set up a full-scale Daemon or Skynet? You may need to
have a few thousand interlocking contracts, and be sure to feed them generously, to do
that, but nothing is stopping you with Ethereum at your fingertips.
3. Modularity: the parts of the Ethereum protocol should be designed to be as modular
and separable as possible. Over the course of development, our goal is to create a
program where if one was to make a small protocol modification in one place, the
application stack would continue to function without any further modification.
Innovations such as Ethash (see the Yellow Paper Appendix ↗ or wiki article ↗ ),
modified Patricia trees ( Yellow Paper ↗ , wiki ↗ ) and RLP ( YP ↗ , wiki ↗ ) should be, and
are, implemented as separate, feature-complete libraries. This is so that even though
they are used in Ethereum, even if Ethereum does not require certain features, such
features are still usable in other protocols as well. Ethereum development should be
maximally done so as to benefit the entire cryptocurrency ecosystem, not just itself.
4. Agility: details of the Ethereum protocol are not set in stone. Although we will be
extremely judicious about making modifications to high-level constructs, for instance
with the sharding roadmap ↗ , abstracting execution, with only data availability
enshrined in consensus. Computational tests later on in the development process may
lead us to discover that certain modifications, e.g. to the protocol architecture or to the
Ethereum Virtual Machine (EVM), will substantially improve scalability or security. If any
such opportunities are found, we will exploit them.
5. Non-discrimination and non-censorship: the protocol should not attempt to actively
restrict or prevent specific categories of usage. All regulatory mechanisms in the
protocol should be designed to directly regulate the harm and not attempt to oppose
specific undesirable applications. A programmer can even run an infinite loop script on
top of Ethereum for as long as they are willing to keep paying the per-computational-
step transaction fee.
Ethereum Accounts
fn. 5