Certain principles that are followed as the design principles of Ethereum. These are as follows. Simplicity: ethereum protocol should be as simple as possible even at the cost of some data storage and time inefficiency ( note: in case of complex scenarios, documentation should be clear, concise and up-to-date ) the protocol should be easy to implement for an average developer any optimization should be avoided unless it adds substantial benefits Universality: there are no features to ethereum's design it allows an internal scripting language to allow development of any smart contract or transaction type that can be mathematically defined one can invent own financial derivative make own currency Modularity: parts of the ethereum protocol should be as modular as possible any future development causing modification to the protocol, should not impact the application stack example Ethash, modified Patricia Trees, RLP the development should be helpful for entire ec...