In mathematics, functions are composable because for a given input they are guaranteed to return the same output. By composing simple functions, complex behavior can be modeled in a way that is straight forward to reason about. In most programming languages however, functions do not compose well because they can perform arbitrary side-effects. Haskell takes a completely different approach by separating pure and impure functions in the type system.
Once considered unrealistic moon math, zero-knowledge proofs, may hold the answer to some of the most pressing blockchain questions, like how will they scale and what about privacy? At the same time the zero-knowledge proofs are extremely ill-understood and inaccessible to most people. The aim is to develop an intuition for them, explain in simple terms how they can be used in the context of blockchains, and get you excited about their seemingly endless utility.
Blockchains solve the problem of double-spending and thereby allows financial ledgers to be distributed among peers who maintain the invariants collectively without resorting to entrusting a centralized entity with the ledger. At the same time technical limitations still remain, hindering greater adoption of the technology. We identify the biggest unsolved challenges and what is being done to crack the nut. 🥜
For deep understanding it helps to get your hands dirty. Armed with the whitepaper, the yellow paper and the source code for the Go implementation we dive into the inner workings of Ethereum. In this Saturday long read, we cover among other things the state model, the peer-to-peer network, the EVM and the consensus algorithm. Lastly we discuss the Ethereum ice-age and why it exists. So prepare yourself a nice cup of coffee ☕️ and jump in!