![full-ethereum-logo-grey](https://hackmd.io/_uploads/HJzMiIL2T.svg) # ETHEREUM-BOOK-SUMMARY ## CHAPTER-ONE ### WHAT IS ETHEREUM? - **ETHEREUM FROM A COMPUTER SCIENCE PERSPECTIVE** Ethereum is a globally decentralized computer resource but with one instance created with global point of access to that instance, that executes programs called smart contracts. Ethereum could be further described as a virtual computer infrastructure accessible globally that executes writen programs called smart contract. The Ethereum project uses blockchain technology to synchronize and store changes in the system state. - **COMPARED TO BITCOIN** Most developers interested in the Ethereum ecosystem might already have basic knowledge about blockchain technology like bitcoin. Hence explaining Ethereum in comparison to bitcoin shares some insight as to why and what challenges the Ethereum blockchain technology tends to solve. Ethereum is like other open blockchains in many ways. It uses a network where users connect directly to each other. It also uses a method called proof-of-work (Ethereum 1.0) to make sure everyone agrees on the latest updates to its data. This method uses cryptography to secure transactions and a digital currency called ether. But Ethereum isn't just another Bitcoin, it is more than bitcoin. Its main goal isn't to be a way to send money. Instead, it's like a big computer that runs programs(smart contracts). Ether, the currency used on Ethereum technology, is like a tool you use to make things happen on this computer. Unlike Bitcoin, Ethereum isn't limited to simple tasks. It can handle all sorts of complex jobs because it's like a powerful computer. While Bitcoin's scripting language is basic, Ethereum's is much more advanced. This means Ethereum can do many different tasks, just like a regular computer (Turing complete). ### ELEMENTS OF A BLOCKCHAIN A blockchain like Bitcoin or Ethereum, has a few key parts: 1. **Network:** People can connect directly (using unique addresses) to each other to share transactions and blocks. This is called a peer-to-peer network. 2. **Transaction:** These include messages that show changes in the system, such as sending money from one person to another. 3. **Software:** There are programs, called clients, that run the blockchain. They follow the rules and help kep everything running smoothly. 4. **Incentive:** People who help maintain the blockchain get rewarded for their work. This helps keep the system secure. 5. **Consensus Algorithm:** This makes sure everyone agrees on what's in the blockchain. It's like a way of deciding what's true. 6. **Blocks:** Transactions are grouped together in blocks. Each block is linked to the one before it, forming a chain of blocks. This chain keeps track of all the changes that have happened. 7. **State Machine:** This is like a big computer that processes transactions based on the rules everyone follows. This is like a digital ledger. 8. **Rules:** These are certain rules everyone on the Ethereum blockchain must follow for a transaction to be valid and for the system to work properly. All the above parts work together to ensure the blockchain is secure, reliable and not controlled by any single person or organization. ### BIRTH OF ETHEREUM - **INTRODUCTION** Ethereum, can be referenced as a icebreaking technology in the blockchain platform, it was conceptualized and developed by a team led bu Vitalik Buterin. The birth of Ethereum represents a significant milestone in the evolution of blockchain technology, paving the way for the development of decentralized applications and smart contracts. - **INCEPTION OF ETHEREUM** The idea for Ethereum began to take shape in late 2013 when Vitalik Buterin, a programmer and cryptocurrency researcher, published the Ethereum white paper. This seminal document outlined the technical specifications for a new blockchain platform with a built-in Turing-complete programming language, enabling the creation of custom smart contracts and decentralized applications - **IMPACT AND LEGACY:** Ethereum's introduction brought about a paradigm shift in the blockchain space for just p2p to developing smart contract that do more than just debit and crediting users on the bitcoin technology.The platform's support for smart contracts and decentralized applications has fostered a vibrant ecosystem of projects and use cases, ranging from decentralized finance (DeFi) to non-fungible tokens (NFTs). ### ETHEREUM'S GROWTH PHASES Ethereum's evolution has been divided into four main stages, each marked by significant advancements. These stages include siginificant changes or update to the protocol of a blockchain network that is not backward compatible. This means that nodes running older version of the software will not be able to validate blocks created by nodes running the updated softwares, this is what is referred to as "hard fork". Hard fork represents a milestone where the Ethereum network underwent significant changes or upgrades to its protocol, often introducing new features, improving security, or addressing issues such as network scalability. The four main development stages are known as Frontier, Homestead, Metropolis, and Serenity. Along the way, there have been several smaller hard forks, such as Ice Age, DAO, Tangerine Whistle, and others. These forks are noted on a timeline based on block numbers, which act as milestones in Ethereum's history: Frontier: This was the initial stage, starting from July 30, 2015, and lasting until March 2016. Block number 0. Homestead: Introduced in March 2016, this marked the second stage of Ethereum's development. Block number 1,150,000 Metropolis: This is Ethereum's third stage, with Byzantium being the first part of it. Byzantium brought in low-level improvements and adjustments to block rewards and difficulty when it launched in October 2017. Block number 4,370,000 Serenity: This is the final stage of Ethereum's development. It aims to significantly enhance Ethereum's infrastructure to make it more scalable, secure, and sustainable. Often referred to as "Ethereum 2.0," Serenity represents a major upgrade to the Ethereum network. In addition to these main stages, there have been announced hard forks like Berlin and London, with the community now focused on transitioning to Serenity, the ultimate vision for Ethereum's future. ### ETHEREUM: A VERSATILE BLOCKCHAIN Bitcoin's blockchain primarily keeps track of who owns bitcoins and how they're transferred between users. It's like a global ledger where transactions change the ownership of coins, and everyone agrees on the current state of the system. Ethereum, on the other hand, goes beyond just tracking currency ownership. It acts as a distributed system for tracking changes in a broader set of data, not just money, that is why it lead to the creation of Decentralized Apps and NFTs.It's like a big database that can store any type of information, like the title of a book linked to its name. This data storage works similarly to how computers use RAM to store information temporarily. Ethereum's memory holds both code and data, and its blockchain records how this memory changes over time. Like a regular computer, Ethereum can execute code and update its memory accordingly. However, unlike most computers, Ethereum's state changes are controlled by consensus rules agreed upon by all participants, and its data is stored across a global network of computers. Essentially, Ethereum asks the question: "What if we could track any type of information and program a system to operate as a worldwide computer based on consensus?" It's like turning the entire world into a giant, shared computer. ### ETHEREUM AND TURING COMPLETENESS When you delve into Ethereum, you'll quickly come across the term "Turing complete," a quality that distinguishes Ethereum from Bitcoin. But what does this mean exactly? Turing completeness originates from the work of Alan Turing, a pioneer in computer science. In the 1930s, Turing devised a theoretical model of a computer capable of performing any computable task by manipulating symbols according to a set of rules. He also introduced the concept of the halting problem, demonstrating that it's impossible to predict whether a program will terminate or run indefinitely. In simple terms, a system is Turing complete if it can simulate any Turing machine, which is a theoretical computing device. Ethereum, with its Ethereum Virtual Machine (EVM), fits this description. The EVM acts like a computer's memory, capable of executing code and updating its state based on transactions recorded on the blockchain. Ethereum's innovation lies in combining the flexibility of a general-purpose computer with the security of a decentralized blockchain. However, Turing completeness comes with challenges, particularly in terms of security and resource management. Ethereum's open access nature makes it vulnerable to potential problems like infinite loops or programs that consume excessive resources. To address these challenges, Ethereum introduces a mechanism called gas. Gas serves as a measure of computational cost, with each operation in a smart contract requiring a specific amount of gas. Transactions must include a set amount of gas to limit resource consumption, and gas can only be purchased with ether, Ethereum's native cryptocurrency. In summary, while Turing completeness offers tremendous flexibility, it also requires careful management to ensure the efficient and secure operation of the Ethereum network. Gas serves as a vital tool in this process, allowing Ethereum to achieve Turing completeness while mitigating potential risks. ### Transitioning from General-Purpose Blockchains to Decentralized Applications (DApps) Originally, Ethereum aimed to create a versatile blockchain suitable for various purposes. However, its focus soon shifted towards becoming a platform for developing DApps. DApps, or Decentralized Applications, offer a broader scope than simple smart contracts. A DApp typically consists of a smart contract paired with a user interface accessible via the web. At its core, a DApp comprises: - Smart contracts deployed on a blockchain. - A user interface accessible through a web browser. Furthermore, many DApps incorporate additional decentralized elements, such as: - A decentralized storage protocol and platform (P2P). - A decentralized messaging protocol and platform (P2P). ### ETHEREUM'S APPROACH TO DEVELOPMENT Ethereum not only differs from previous blockchains in its goals and technology but also in its development culture. In Bitcoin, development adheres to conservative principles, ensuring changes are meticulously examined to avoid disrupting existing systems. Changes are typically made only if they maintain backward compatibility. While existing clients can choose to adopt changes, they can continue operating without them. In contrast, Ethereum's development culture looks to the future rather than the past. The approach is often summarized as "move fast and break things," indicating a willingness to implement necessary changes even if it means breaking compatibility or forcing client updates. Ethereum prioritizes rapid innovation and evolution, embracing forward-looking improvements even at the expense of some backward compatibility. For developers, this means staying flexible and being ready to adapt infrastructure as underlying assumptions shift. Deploying code in Ethereum presents a challenge due to the platform's immutable nature combined with ongoing evolution. Upgrading smart contracts isn't as straightforward; developers must deploy new contracts, migrate users and apps, and start anew. Interestingly, this dynamic also hinders the realization of fully autonomous and decentralized systems. Achieving autonomy and decentralization requires a more stable platform than Ethereum currently offers. Evolving the platform necessitates scrapping and restarting smart contracts, implying a level of control retained by developers. On the positive side, Ethereum progresses swiftly, leaving little room for trivial debates that delay development. Engaging in such debates risks falling behind, as the development team forges ahead, potentially altering plans without waiting for consensus. Eventually, Ethereum's development pace will slow, and interfaces will stabilize. However, for now, innovation remains paramount. Keeping pace is essential, as Ethereum shows no signs of slowing down.