talks

Intro to Ethereum, crypto, web 3, etc.

@paulcowgill


Note: Slides can be autogenerated from this .md markdown file using a tool like remarkjs.


Who am I?


Why Ethereum?

It’s what basically all developers use.


This workshop

The markdown file with all of this info we’ll be talking about is available at:

bit.ly/intro-to-ethereum-2019

Alternatively, you can get here directly via GitHub:

github.com/pcowgill/talks

In this workshop, let’s get acquainted with the different components of the crypto / web3 stack and the current state of blockchain technology by using some tools from the Ethereum ecosystem.


Any questions?

Feel free to interrupt me at any time. Freeform / real-time questions work best for me.

Or if you’re feeling shy, we can crowdsource questions online. Go to sli.do and enter the event code #northwestern-ethereum. I’ll stop to check for the most upvoted questions at some point during the workshop.


What to expect (pt. 1)


What to expect (pt. 2)


Set up a wallet

While there are lots of choices for wallets, it will be the simplest if you all use MetaMask for today.

I’ll send you all testnet ETH shortly using the testnet version of the Gnosis Safe (a different Ethereum wallet that has cool features like account recovery).

There are lots of other great alternatives that we won’t have time to try out today including: Argent, Coinbase Wallet, Status, and Trust.


Get test Ether

{ Walk around scanning QR codes to send ETH on the Rinkeby testnet }


Explore the blockchain (pt. 1)


Let’s vote

Let’s all send some to one person { Let's pick who on sli.do }


Other wallet types


Burner wallets

{ Play with xdai to show how burner wallets and meta-transactions can be used to onboard new users into the ecosystem without gas.}

xdai.io

Likely follow-up questions:


Contract-based accounts


Explore the blockchain (pt. 2)

Here are some alternatives to Etherscan:


Via a UI

Others include ethplorer, scout.cool, Elementus, State of the Dapps and Dappradar.


Programmatically

Gas

{ Talk a bit about how gas is used with Ethereum }


Stablecoins

// Optional: Obtaining a stablecoin such as DAI through the MKR contract and transacting it between each other.


ERC standards

ERC standards like ERC20 for tokens (like DAI, the Aragon token, etc.) and ERC721 (like Cryptokitties, Decentraland, etc.) for collectibles (things we covered above).

“Application-level standards and conventions, including contract standards such as token standards (ERC20), name registries (ERC137), URI schemes (ERC681), library/package formats (EIP190), and wallet formats (EIP85).”

Source: https://eips.ethereum.org/


Unique tokens

But it’s not just about money…

Unique tokens are also known as NFTs or digital collectibles.

{ Optional: Purchase a digital collectible and exchanging it with other classmates. }


Dapps


DAOs

Note: You should be logged into the MetaMask browser extension and load this page on a PC in order for it to show up properly.

{ Set up an Aragon DAO for the group }

Here’s the link for the Rinkeby testnet DAO we created during the workshop:

rinkeby.aragon.org/#/nublock/


TCRs

// Skip for now, but happy to field questions via sli.do if people are interested.


DeFi

Exchanges

Uniswap

Lending

Dharma

Credit

Bloom

Insurance

Nexus Mutual

Prediction markets Guesser and Sight by Gnosis

{ Try Uniswap }


Art

Clovers SuperRare Known Origin


Music

Audius


Identity

3Box Humanity DAO BrightID


Marketplaces

Other

ENS


Room for improvement

{ Discuss which tools so far have room for improvement }

Let’s have an open discussion of observations about the state of the tooling you all have used so far today, what was missing, what could be done better, etc.

This (hopefully) will give you an understanding of how young this ecosystem is and what you could do to push it forward.

A (slightly dated) overview of UX challenges


Nodes / clients

The geth node: a client that helps to run the Ethereum blockchain, accept transactions, and advance the state of the chain.

geth docs

Full: Downloads all blocks (including headers, transactions and receipts) and generates the state of the blockchain incrementally by executing every block.
Fast (Default): Downloads all blocks (including headers, transactions and receipts), verifies all headers, and downloads the state and verifies it against the headers.
Light: Downloads all block headers, block data, and verifies some randomly.

{ Perhaps also discuss Parity and Nimbus }

Nimbus


Developing smart contracts

A project set up on studio.ethereum.org

The Truffle framework for developing smart contracts

Or Buidler, ethers.js, Waffle, and TypeChain


OpenZeppelin

OpenZeppelin is a library for inheriting from and extending existing smart contract logic, and also a CLI for making upgradeable dapps.


Why is this important

  1. Twitter thread with a historical perspective on governance by Naval Ravikant
  2. AI -> tyranny, blockchain -> democracy
  3. The Truth Machine
  4. Social justice
  5. Social good
  6. Podcast episode about why decentralization matters
  7. Toy markets
  8. Zero platform risk -> the great unbundling of front end and back end (and of individual front end features). Users get “right to exit” meaning that they can elect to use alternative clients without losing all of their data and the network effect of the platform, and the tech tycoons of the future can’t prevent them from doing so.

Privacy

If time allows, we will discuss privacy on Ethereum and how other blockchains incorporate it as a first-tier feature.

We’ll also discuss how private technologies like zero-knowledge proofs could be introduced to the Ethereum blockchain in the future.


Privacy on Ethereum

Privacy-forward cryptocurrencies

Layer 2

state channels

Rollup

optimistic vs. zk rollup comparison

optimistic rollup

unipig.exchange

zk rollup

Matter Labs


Eth 2.0

https://hackmd.io/e4cNiocFTiS67j6yJ_XHPw

https://hackmd.io/UzysWse1Th240HELswKqVA

https://docs.ethhub.io/other/ethereum-2.0-ama/