profile picture

@code @crypto @robotics

#bitcoin #ethereum #haskell #zkp

A super gentle introduction to zero-knowledge proofs 🍄

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.

The Holy Trinity

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. 🥜

A brief history of Ethereum

Ethereum, the second largest cryptocurrency by market cap, was proposed by Vitalik Buterin in 2013. Its intended purpose was to provide a blockchain with a Turing-complete programming language allowing users to extend its functionality by uploading custom code. The code could be used to create digital assets to represent custom currencies and financial instruments, the ownership of an underlying physical device, non-fungible assets such as domain names, as well as more complex applications involving having digital assets being directly controlled by a piece of code implementing arbitrary rules or even blockchain-based decentralized autonomous organizations.

Receiving bitcoins

The goal is to use Haskell to receive satoshis in as simple manner as possible by generate a private key and deriveing from it an address. Using the address we can receive the coins and as long as we keep the key safe we can spend it later using any wallet which supports importing WIF keys.