**A SUMMARY OF WHAT I LEARNT FROM WEEK TWO OF THE WEB3 COHOURT IV CLASS** **Introduction** In the week two of the web3 classes we did a deep dive study of the ethereum book(MASTERING ETHEREUM). We studied chapter one where we loked at what Ethereum is and why it is often described as the world computer, compared Ethereum to Bitcoin and looked at their disparities and similarities, the components of ethereum and bitcoin, how ethereum was birthed, the different stages of Ethereum's development, discussed on the turing completeness of ethereum and why we should all learn about ethereum. **What is Ethereum.** Ethereum is often described as the "world Computer". Why is this? Ethereum is referred to as the "world's computer" because it functions as a globally decentralized, opensource computing platform where anyone can deploy and interact with software specifically smart contracts and decentralized applications without relying on a central authority. In essence it is a deterministic but practically unbounded state machine consisting of a globally accessible singleton state and a virtual machine that applies changes to that state. What does is mean for ethereum to deterministic? It means that ethereum's state transitions are predictable and repeatable i.e given same initial state and sequence of transition the outcome will always be identical across all nodes. What does is mean for ethereum to be practically unbounded? This is the ability of Ethereum to handle computations with arbitrary complexities and scale. **Comparing Ethereum to Bitcoin** What are some similarities they have? 1. P2P networknconnecting participants.Both have a Byzantine fault tolerant consensus algorithm for synchronization of the state updates. 2. The use of cryptograhic primitives like digital signatures and hashes. 3. They both use a digital currency. Ether for ethereum an bitcoin for bitcoin. Some disparities they have: 1. Bitcoin has a very limited scripting language while ethereum is designed to be a general purpose progrmmable blockchain. 2. Bitcoin script language is intentionally constrained to simeple true/false evaluation of spending conditions while ethereum language is Turing complete meaning that it can function as a general purpose computer. 3. Bitcoin uses a PoW consensus mechanism while Ethereum uses the PoS mechanism. **The PoW mechanism**: It is a consensus mechanism where miners compete to solve complex cryptographic puzzles using computational power.The first miner to solve the puzzle gets the right to add a new block and is rewarded a new minted crptocurrency and transaction fees. **The PoS mechanism:** here validators are chosen to crete a new block based on the amount of cryptocurrency they stake as collateral.This eliminates energy intensive mining. **Components of a Blockchain** They include: 1. A P2P network: connecting participants and propagating transactions and blocks of verified transactions, based on a standardized “gossip” protocol. 2. Message sin the form of transactions. 3. A state machine 4. A chain of cryptographically secured blocks. 5. A game-theory-sound incentivization scheme. 6. Clients: One or more open source software implementations of these components. **What are blockchains categorized as?** 1.Permissionless/ Public Permissionless blockchains, like Bitcoin and Ethereum, are accessible to anyone. These decentralized networks allow anyone to join, participate in the consensus process, and read and write data, promoting trust through transparency. Permissioned/ Private Permissioned blockchains restrict access, allowing only authorized participants to join the network and perform certain actions. **The Birth of Ethereum** Toward the end of 2013, Vitalik Buterin, a young programmer and Bitcoin enthusiast, started thinking about further extending the capabilities of Bitcoin and Mastercoin. Ethereum was conceived at a time when people recognized the power of the Bitcoin model and were trying to move beyond cryptocurrency applications. Developers needed to build on top of bitcoin or strt a new blockchain. The limited set of transaction types, data types, and sizes of data storage seemed to restrict the kinds of applications that could run directly on Bitcoin; anything else needed additional off-chain layers, and that immediately negated many of the advantages of using a public blockchain. Andreas M. Antonopoulos and Dr. Gavin Wood, received an early draft of the whitepaper and commented on it. Wood became Ethereum’s cofounder, co-designer, and CTO. **Wood can also be largely credited for the subtle change in vision from seeing Ethereum as a platform for building programmable money, with blockchain-based contracts that can hold digital assets and transfer them according to preset rules, to viewing it as a general-purpose computing platform.** ** Ethereum’s Stages of Development** 1. Frontier (July 30, 2015): Launched at Genesis (when the first Ethereum block was mined), Frontier prepared the foundation for miners and developers by enabling the setup of mining rigs, the initiation of ETH token trading, and the testing of DApps 2. Homestead (March 14, 2016): Initiated at block 1,150,000, Homestead made Ethereum safer and more stable through key protocol updates (EIP-2, EIP-7, and EIP-8). 3. Metropolis (October 16, 2017): Starting at block 4,370,000, Metropolis aimed to increase network functionality, fostering DApp creation and overall network utility.hese enhancements collectively set the stage for Ethereum 2.0, representing the final phase of Ethereum 1.0. 4. Serenity (September 15, 2022): Serenity, commonly known as Ethereum 2.0, represents a major upgrade aimed at transforming Ethereum from a PoW to a PoS consensus mechanism. Serenity focuses on making Ethereum more sustainable and capable of handling a growing number of users and applications. **Ethereum: A General-Purpose Blockchain** Bitcoin’s blockchain—tracks the state of units of Bitcoin and their ownership. You can think of Bitcoin as a distributed-consensus state machine, where transactions cause a global state transition, altering the ownership of coins. Ethereum is also a distributed state machine. But instead of tracking only the state of currency ownership, Ethereum tracks the state transitions of a general-purpose data store—that is, a store that can hold any data expressible as a key-value tuple. A key-value data store holds arbitrary values, each referenced by some key. Like a general-purpose, stored-program computer, Ethereum can load code into its state machine and run that code, storing the resulting state changes in its blockchain. Two of the critical differences from most general-purpose computers are that Ethereum state changes are governed by the rules of consensus and the state is distributed globally. **Ethereum and Turing Completeness** The term refers to English mathematician Alan Turing, who is considered the father of computer science. In 1936, he created a mathematical model of a computer consisting of a state machine that manipulates symbols by reading and writing them on sequential memory (resembling an infinite-length paper tape). Turing further defined a system to be Turing complete if it can be used to simulate any Turing machine. Such a system is called a universal Turing machine (UTM). **Why is Ethereum referred to as a Turing complete machine?** Ethereum’s ability to execute a stored program—in a state machine called the EVM—while reading and writing data to memory makes it a Turing-complete system and therefore a UTM. Ethereum can compute any algorithm that can be computed by any Turing machine, given the limitations of finite memory. **Implications of Turing Completeness.** The fact that Ethereum is Turing complete means that any program of any complexity can be computed by Ethereum. But that flexibility brings some thorny security and resource management problems. * Turing-complete systems can run in infinite loops, a term used (in oversimplification) to describe a program that does not terminate. * In Ethereum, this poses a challenge: every participating node (client) must validate every transaction, running any smart contracts it calls.Ethereum can’t predict if a smart contract will terminate or how long it will run without actually running it (possibly running forever). **This is effectively a denial-of-service (DoS) attack**. * This causes an infinite range of nasty, resource-hogging, memory-bloating, CPU-overheating programs that simply waste resources. **Ethereum Gas** How does Ethereum constrain the resources used by a smart contract if it cannot predict resource use in advance? To answer this challenge, Ethereum introduced a metering mechanism called gas. As the EVM executes a smart contract, it carefully accounts for every instruction.Each instruction has a predetermined cost in units of gas. When a transaction triggers the execution of a smart contract, it must include an amount of gas that sets the upper limit of what can be consumed running the smart contract. The EVM will terminate execution if the amount of gas consumed by computation exceeds the gas available in the transaction. how does one get gas to pay for computation on the Ethereum world computer? You won’t find gas on any exchanges. It can only be purchased as part of a transaction and can only be bought with ether. Ether needs to be sent along with a transaction, and it needs to be explicitly earmarked for the purchase of gas, along with an acceptable gas price. **What is a DApp?** a DApp is a web application that is built on top of open, decentralized, P2P infrastructure services. A DApp is composed of at least: Smart contracts on a blockchain A web frontend user interface DApps include other decentralized components, such as: A decentralized (P2P) storage protocol and platform A decentralized (P2P) messaging protocol and platform The concept of DApps is meant to take the Web to its next natural evolutionary stage, introducing decentralization with P2P protocols into every aspect of a web application. The term used to describe this evolution is Web3, meaning the third “version” of the web * **Why learn and build on Ethereum?** * Ethereum makes this learning curve a lot less steep, so you can get started quickly. * Ethereum is a great platform for learning about blockchains, and it’s building a massive community of developers, faster than any other blockchain platform. * Ethereum is a developer’s blockchain: built by developers for developers. A developer familiar with JavaScript applications can drop into Ethereum and start producing working code very quickly. * Many blockchain projects, like L2s, are based on Ethereum. Learning Ethereum helps you understand these projects better and gives you the tools to explore further developments in the blockchain world. **Conclusion** Ethereum stands out as a groundbreaking platform in the blockchain landscape. Its design as a Turing-complete system allows for the creation of decentralized applications . For developers and technologists, understanding Ethereum opens doors to a deeper comprehension of blockchain technology and its potential applications. By mastering Ethereum, you gain the tools to participate in and contribute to the ongoing evolution of the internet, putting yourself at the cutting edge of this exciting field. ***THANK YOU FOR READING.!***