CS 601.641/441: Blockchains and...

34
CS 601.641/441: Blockchains and Cryptocurrencies Instructor: Abhishek Jain Spring 2018 Instructor: Abhishek Jain CS 601.641/441: Blockchains and Cryptocurrencies Spring 2018 1 / 11

Transcript of CS 601.641/441: Blockchains and...

Page 1: CS 601.641/441: Blockchains and Cryptocurrenciesabhishek/classes/CS601-641-441-Spring2018/Lect… · Instructor: Abhishek Jain CS 601.641/441: Blockchains and CryptocurrenciesSpring

CS 601.641/441: Blockchains and Cryptocurrencies

Instructor: Abhishek Jain

Spring 2018

Instructor: Abhishek Jain CS 601.641/441: Blockchains and CryptocurrenciesSpring 2018 1 / 11

Page 2: CS 601.641/441: Blockchains and Cryptocurrenciesabhishek/classes/CS601-641-441-Spring2018/Lect… · Instructor: Abhishek Jain CS 601.641/441: Blockchains and CryptocurrenciesSpring

What is a Blockchain

A distributed ledger or database

Used for building decentralized cryptocurrencies such as Bitcoin

Several other applications such as distributed Domain Namesystem (DNS), Public-Key Infrastructure (PKI), stock tradedatabase, etc.

Lots of exciting research currently underway

Lots of new startups

Instructor: Abhishek Jain CS 601.641/441: Blockchains and CryptocurrenciesSpring 2018 2 / 11

Page 3: CS 601.641/441: Blockchains and Cryptocurrenciesabhishek/classes/CS601-641-441-Spring2018/Lect… · Instructor: Abhishek Jain CS 601.641/441: Blockchains and CryptocurrenciesSpring

What is a Blockchain

A distributed ledger or database

Used for building decentralized cryptocurrencies such as Bitcoin

Several other applications such as distributed Domain Namesystem (DNS), Public-Key Infrastructure (PKI), stock tradedatabase, etc.

Lots of exciting research currently underway

Lots of new startups

Instructor: Abhishek Jain CS 601.641/441: Blockchains and CryptocurrenciesSpring 2018 2 / 11

Page 4: CS 601.641/441: Blockchains and Cryptocurrenciesabhishek/classes/CS601-641-441-Spring2018/Lect… · Instructor: Abhishek Jain CS 601.641/441: Blockchains and CryptocurrenciesSpring

What is a Blockchain

A distributed ledger or database

Used for building decentralized cryptocurrencies such as Bitcoin

Several other applications such as distributed Domain Namesystem (DNS), Public-Key Infrastructure (PKI), stock tradedatabase, etc.

Lots of exciting research currently underway

Lots of new startups

Instructor: Abhishek Jain CS 601.641/441: Blockchains and CryptocurrenciesSpring 2018 2 / 11

Page 5: CS 601.641/441: Blockchains and Cryptocurrenciesabhishek/classes/CS601-641-441-Spring2018/Lect… · Instructor: Abhishek Jain CS 601.641/441: Blockchains and CryptocurrenciesSpring

What is a Blockchain

A distributed ledger or database

Used for building decentralized cryptocurrencies such as Bitcoin

Several other applications such as distributed Domain Namesystem (DNS), Public-Key Infrastructure (PKI), stock tradedatabase, etc.

Lots of exciting research currently underway

Lots of new startups

Instructor: Abhishek Jain CS 601.641/441: Blockchains and CryptocurrenciesSpring 2018 2 / 11

Page 6: CS 601.641/441: Blockchains and Cryptocurrenciesabhishek/classes/CS601-641-441-Spring2018/Lect… · Instructor: Abhishek Jain CS 601.641/441: Blockchains and CryptocurrenciesSpring

What is a Blockchain

A distributed ledger or database

Used for building decentralized cryptocurrencies such as Bitcoin

Several other applications such as distributed Domain Namesystem (DNS), Public-Key Infrastructure (PKI), stock tradedatabase, etc.

Lots of exciting research currently underway

Lots of new startups

Instructor: Abhishek Jain CS 601.641/441: Blockchains and CryptocurrenciesSpring 2018 2 / 11

Page 7: CS 601.641/441: Blockchains and Cryptocurrenciesabhishek/classes/CS601-641-441-Spring2018/Lect… · Instructor: Abhishek Jain CS 601.641/441: Blockchains and CryptocurrenciesSpring

Course Objectives

Understanding the mechanics of blockchains

Understanding why current implementations work

Understanding the necessary cryptographic background

Exploring applications of blockchains to cryptocurrencies andbeyond

Understanding limitations of current blockchains

Introduction to recent exciting research

Main Goal: Entrepreneurial or research projects by student teams

Instructor: Abhishek Jain CS 601.641/441: Blockchains and CryptocurrenciesSpring 2018 3 / 11

Page 8: CS 601.641/441: Blockchains and Cryptocurrenciesabhishek/classes/CS601-641-441-Spring2018/Lect… · Instructor: Abhishek Jain CS 601.641/441: Blockchains and CryptocurrenciesSpring

Course Objectives

Understanding the mechanics of blockchains

Understanding why current implementations work

Understanding the necessary cryptographic background

Exploring applications of blockchains to cryptocurrencies andbeyond

Understanding limitations of current blockchains

Introduction to recent exciting research

Main Goal: Entrepreneurial or research projects by student teams

Instructor: Abhishek Jain CS 601.641/441: Blockchains and CryptocurrenciesSpring 2018 3 / 11

Page 9: CS 601.641/441: Blockchains and Cryptocurrenciesabhishek/classes/CS601-641-441-Spring2018/Lect… · Instructor: Abhishek Jain CS 601.641/441: Blockchains and CryptocurrenciesSpring

Course Objectives

Understanding the mechanics of blockchains

Understanding why current implementations work

Understanding the necessary cryptographic background

Exploring applications of blockchains to cryptocurrencies andbeyond

Understanding limitations of current blockchains

Introduction to recent exciting research

Main Goal: Entrepreneurial or research projects by student teams

Instructor: Abhishek Jain CS 601.641/441: Blockchains and CryptocurrenciesSpring 2018 3 / 11

Page 10: CS 601.641/441: Blockchains and Cryptocurrenciesabhishek/classes/CS601-641-441-Spring2018/Lect… · Instructor: Abhishek Jain CS 601.641/441: Blockchains and CryptocurrenciesSpring

Course Objectives

Understanding the mechanics of blockchains

Understanding why current implementations work

Understanding the necessary cryptographic background

Exploring applications of blockchains to cryptocurrencies andbeyond

Understanding limitations of current blockchains

Introduction to recent exciting research

Main Goal: Entrepreneurial or research projects by student teams

Instructor: Abhishek Jain CS 601.641/441: Blockchains and CryptocurrenciesSpring 2018 3 / 11

Page 11: CS 601.641/441: Blockchains and Cryptocurrenciesabhishek/classes/CS601-641-441-Spring2018/Lect… · Instructor: Abhishek Jain CS 601.641/441: Blockchains and CryptocurrenciesSpring

Course Objectives

Understanding the mechanics of blockchains

Understanding why current implementations work

Understanding the necessary cryptographic background

Exploring applications of blockchains to cryptocurrencies andbeyond

Understanding limitations of current blockchains

Introduction to recent exciting research

Main Goal: Entrepreneurial or research projects by student teams

Instructor: Abhishek Jain CS 601.641/441: Blockchains and CryptocurrenciesSpring 2018 3 / 11

Page 12: CS 601.641/441: Blockchains and Cryptocurrenciesabhishek/classes/CS601-641-441-Spring2018/Lect… · Instructor: Abhishek Jain CS 601.641/441: Blockchains and CryptocurrenciesSpring

Course Objectives

Understanding the mechanics of blockchains

Understanding why current implementations work

Understanding the necessary cryptographic background

Exploring applications of blockchains to cryptocurrencies andbeyond

Understanding limitations of current blockchains

Introduction to recent exciting research

Main Goal: Entrepreneurial or research projects by student teams

Instructor: Abhishek Jain CS 601.641/441: Blockchains and CryptocurrenciesSpring 2018 3 / 11

Page 13: CS 601.641/441: Blockchains and Cryptocurrenciesabhishek/classes/CS601-641-441-Spring2018/Lect… · Instructor: Abhishek Jain CS 601.641/441: Blockchains and CryptocurrenciesSpring

Course Objectives

Understanding the mechanics of blockchains

Understanding why current implementations work

Understanding the necessary cryptographic background

Exploring applications of blockchains to cryptocurrencies andbeyond

Understanding limitations of current blockchains

Introduction to recent exciting research

Main Goal: Entrepreneurial or research projects by student teams

Instructor: Abhishek Jain CS 601.641/441: Blockchains and CryptocurrenciesSpring 2018 3 / 11

Page 14: CS 601.641/441: Blockchains and Cryptocurrenciesabhishek/classes/CS601-641-441-Spring2018/Lect… · Instructor: Abhishek Jain CS 601.641/441: Blockchains and CryptocurrenciesSpring

Course Objectives

Understanding the mechanics of blockchains

Understanding why current implementations work

Understanding the necessary cryptographic background

Exploring applications of blockchains to cryptocurrencies andbeyond

Understanding limitations of current blockchains

Introduction to recent exciting research

Main Goal: Entrepreneurial or research projects by student teams

Instructor: Abhishek Jain CS 601.641/441: Blockchains and CryptocurrenciesSpring 2018 3 / 11

Page 15: CS 601.641/441: Blockchains and Cryptocurrenciesabhishek/classes/CS601-641-441-Spring2018/Lect… · Instructor: Abhishek Jain CS 601.641/441: Blockchains and CryptocurrenciesSpring

Disclaimer

This is not a finance course on cryptocurrencies. You shouldnot expect to be taught how to invest in cryptocurrencies or

how to become a billionaire overnight.

Instructor: Abhishek Jain CS 601.641/441: Blockchains and CryptocurrenciesSpring 2018 4 / 11

Page 16: CS 601.641/441: Blockchains and Cryptocurrenciesabhishek/classes/CS601-641-441-Spring2018/Lect… · Instructor: Abhishek Jain CS 601.641/441: Blockchains and CryptocurrenciesSpring

Pre-requisites

No background in Cryptography is necessary. However, the followingare expected:

Basic mathematical maturity

Comfort with basic probability

Basic familiarity with asymptotic (Big-O) notation

Instructor: Abhishek Jain CS 601.641/441: Blockchains and CryptocurrenciesSpring 2018 5 / 11

Page 17: CS 601.641/441: Blockchains and Cryptocurrenciesabhishek/classes/CS601-641-441-Spring2018/Lect… · Instructor: Abhishek Jain CS 601.641/441: Blockchains and CryptocurrenciesSpring

Pre-requisites

No background in Cryptography is necessary. However, the followingare expected:

Basic mathematical maturity

Comfort with basic probability

Basic familiarity with asymptotic (Big-O) notation

Instructor: Abhishek Jain CS 601.641/441: Blockchains and CryptocurrenciesSpring 2018 5 / 11

Page 18: CS 601.641/441: Blockchains and Cryptocurrenciesabhishek/classes/CS601-641-441-Spring2018/Lect… · Instructor: Abhishek Jain CS 601.641/441: Blockchains and CryptocurrenciesSpring

Pre-requisites

No background in Cryptography is necessary. However, the followingare expected:

Basic mathematical maturity

Comfort with basic probability

Basic familiarity with asymptotic (Big-O) notation

Instructor: Abhishek Jain CS 601.641/441: Blockchains and CryptocurrenciesSpring 2018 5 / 11

Page 19: CS 601.641/441: Blockchains and Cryptocurrenciesabhishek/classes/CS601-641-441-Spring2018/Lect… · Instructor: Abhishek Jain CS 601.641/441: Blockchains and CryptocurrenciesSpring

Pre-requisites

No background in Cryptography is necessary. However, the followingare expected:

Basic mathematical maturity

Comfort with basic probability

Basic familiarity with asymptotic (Big-O) notation

Instructor: Abhishek Jain CS 601.641/441: Blockchains and CryptocurrenciesSpring 2018 5 / 11

Page 20: CS 601.641/441: Blockchains and Cryptocurrenciesabhishek/classes/CS601-641-441-Spring2018/Lect… · Instructor: Abhishek Jain CS 601.641/441: Blockchains and CryptocurrenciesSpring

General Information

Course website: Link on my homepagehttp://www.cs.jhu.edu/„abhishek

Office Hours: Tuesdays 2-3pm in Malone 315

Teaching Assistants: Arka Rai Choudhuri([email protected]), Aarushi Goel ([email protected])

TA Office Hours: Arka (Wed 4:30-6pm), Aarushi (Thu4-5:30pm)

Discussion Board: Pizzahttps://piazza.com/jhu/spring2018/en601441641

Instructor: Abhishek Jain CS 601.641/441: Blockchains and CryptocurrenciesSpring 2018 6 / 11

Page 21: CS 601.641/441: Blockchains and Cryptocurrenciesabhishek/classes/CS601-641-441-Spring2018/Lect… · Instructor: Abhishek Jain CS 601.641/441: Blockchains and CryptocurrenciesSpring

Grading

Assignments (take home and in class) and a project

Late submission policy for take-home assignments: Latesubmissions within 0-24 hrs will lose HALF of their value.Submissions late by more than 24 hours late carry no value at all.

Students must form teams for projects

Deadlines for forming teams, choosing projects, reporting mid-wayprogress will be announced later

Grading scheme will be announced next week

Take home assignments must be submitted by Gradescope (useCode M74J8W to join).

Instructor: Abhishek Jain CS 601.641/441: Blockchains and CryptocurrenciesSpring 2018 7 / 11

Page 22: CS 601.641/441: Blockchains and Cryptocurrenciesabhishek/classes/CS601-641-441-Spring2018/Lect… · Instructor: Abhishek Jain CS 601.641/441: Blockchains and CryptocurrenciesSpring

Grading

Assignments (take home and in class) and a project

Late submission policy for take-home assignments: Latesubmissions within 0-24 hrs will lose HALF of their value.Submissions late by more than 24 hours late carry no value at all.

Students must form teams for projects

Deadlines for forming teams, choosing projects, reporting mid-wayprogress will be announced later

Grading scheme will be announced next week

Take home assignments must be submitted by Gradescope (useCode M74J8W to join).

Instructor: Abhishek Jain CS 601.641/441: Blockchains and CryptocurrenciesSpring 2018 7 / 11

Page 23: CS 601.641/441: Blockchains and Cryptocurrenciesabhishek/classes/CS601-641-441-Spring2018/Lect… · Instructor: Abhishek Jain CS 601.641/441: Blockchains and CryptocurrenciesSpring

Grading

Assignments (take home and in class) and a project

Late submission policy for take-home assignments: Latesubmissions within 0-24 hrs will lose HALF of their value.Submissions late by more than 24 hours late carry no value at all.

Students must form teams for projects

Deadlines for forming teams, choosing projects, reporting mid-wayprogress will be announced later

Grading scheme will be announced next week

Take home assignments must be submitted by Gradescope (useCode M74J8W to join).

Instructor: Abhishek Jain CS 601.641/441: Blockchains and CryptocurrenciesSpring 2018 7 / 11

Page 24: CS 601.641/441: Blockchains and Cryptocurrenciesabhishek/classes/CS601-641-441-Spring2018/Lect… · Instructor: Abhishek Jain CS 601.641/441: Blockchains and CryptocurrenciesSpring

Grading

Assignments (take home and in class) and a project

Late submission policy for take-home assignments: Latesubmissions within 0-24 hrs will lose HALF of their value.Submissions late by more than 24 hours late carry no value at all.

Students must form teams for projects

Deadlines for forming teams, choosing projects, reporting mid-wayprogress will be announced later

Grading scheme will be announced next week

Take home assignments must be submitted by Gradescope (useCode M74J8W to join).

Instructor: Abhishek Jain CS 601.641/441: Blockchains and CryptocurrenciesSpring 2018 7 / 11

Page 25: CS 601.641/441: Blockchains and Cryptocurrenciesabhishek/classes/CS601-641-441-Spring2018/Lect… · Instructor: Abhishek Jain CS 601.641/441: Blockchains and CryptocurrenciesSpring

Grading

Assignments (take home and in class) and a project

Late submission policy for take-home assignments: Latesubmissions within 0-24 hrs will lose HALF of their value.Submissions late by more than 24 hours late carry no value at all.

Students must form teams for projects

Deadlines for forming teams, choosing projects, reporting mid-wayprogress will be announced later

Grading scheme will be announced next week

Take home assignments must be submitted by Gradescope (useCode M74J8W to join).

Instructor: Abhishek Jain CS 601.641/441: Blockchains and CryptocurrenciesSpring 2018 7 / 11

Page 26: CS 601.641/441: Blockchains and Cryptocurrenciesabhishek/classes/CS601-641-441-Spring2018/Lect… · Instructor: Abhishek Jain CS 601.641/441: Blockchains and CryptocurrenciesSpring

Grading

Assignments (take home and in class) and a project

Late submission policy for take-home assignments: Latesubmissions within 0-24 hrs will lose HALF of their value.Submissions late by more than 24 hours late carry no value at all.

Students must form teams for projects

Deadlines for forming teams, choosing projects, reporting mid-wayprogress will be announced later

Grading scheme will be announced next week

Take home assignments must be submitted by Gradescope (useCode M74J8W to join).

Instructor: Abhishek Jain CS 601.641/441: Blockchains and CryptocurrenciesSpring 2018 7 / 11

Page 27: CS 601.641/441: Blockchains and Cryptocurrenciesabhishek/classes/CS601-641-441-Spring2018/Lect… · Instructor: Abhishek Jain CS 601.641/441: Blockchains and CryptocurrenciesSpring

Collaboration

You can collaborate with other students on take home assignments

However: you must write the solutions in your own words

You must also list the names of students you collaborated with foreach problem

Do not collaborate with more than 2 students on assignments

Instructor: Abhishek Jain CS 601.641/441: Blockchains and CryptocurrenciesSpring 2018 8 / 11

Page 28: CS 601.641/441: Blockchains and Cryptocurrenciesabhishek/classes/CS601-641-441-Spring2018/Lect… · Instructor: Abhishek Jain CS 601.641/441: Blockchains and CryptocurrenciesSpring

Collaboration

You can collaborate with other students on take home assignments

However: you must write the solutions in your own words

You must also list the names of students you collaborated with foreach problem

Do not collaborate with more than 2 students on assignments

Instructor: Abhishek Jain CS 601.641/441: Blockchains and CryptocurrenciesSpring 2018 8 / 11

Page 29: CS 601.641/441: Blockchains and Cryptocurrenciesabhishek/classes/CS601-641-441-Spring2018/Lect… · Instructor: Abhishek Jain CS 601.641/441: Blockchains and CryptocurrenciesSpring

Collaboration

You can collaborate with other students on take home assignments

However: you must write the solutions in your own words

You must also list the names of students you collaborated with foreach problem

Do not collaborate with more than 2 students on assignments

Instructor: Abhishek Jain CS 601.641/441: Blockchains and CryptocurrenciesSpring 2018 8 / 11

Page 30: CS 601.641/441: Blockchains and Cryptocurrenciesabhishek/classes/CS601-641-441-Spring2018/Lect… · Instructor: Abhishek Jain CS 601.641/441: Blockchains and CryptocurrenciesSpring

Collaboration

You can collaborate with other students on take home assignments

However: you must write the solutions in your own words

You must also list the names of students you collaborated with foreach problem

Do not collaborate with more than 2 students on assignments

Instructor: Abhishek Jain CS 601.641/441: Blockchains and CryptocurrenciesSpring 2018 8 / 11

Page 31: CS 601.641/441: Blockchains and Cryptocurrenciesabhishek/classes/CS601-641-441-Spring2018/Lect… · Instructor: Abhishek Jain CS 601.641/441: Blockchains and CryptocurrenciesSpring

Plagiarism

Plagiarism will be dealt with strictly. You will beIMMEDIATELY reported.

If you have a problem, come and talk to me. Do NOT cheat!

Instructor: Abhishek Jain CS 601.641/441: Blockchains and CryptocurrenciesSpring 2018 9 / 11

Page 32: CS 601.641/441: Blockchains and Cryptocurrenciesabhishek/classes/CS601-641-441-Spring2018/Lect… · Instructor: Abhishek Jain CS 601.641/441: Blockchains and CryptocurrenciesSpring

(Tentative) Syllabus

Crypto background: Hash functions, Commitment schemes, Digitalsignatures, Zero-Knowledge proofsDistributed Consensus and BlockchainsBitcoin: protocols, mining strategies, attacks, weaknesses,applicationsAlternative approachesAnonymity and PrivacyAltcoinsSmart-contractsRecent applications

Instructor: Abhishek Jain CS 601.641/441: Blockchains and CryptocurrenciesSpring 2018 10 / 11

Page 33: CS 601.641/441: Blockchains and Cryptocurrenciesabhishek/classes/CS601-641-441-Spring2018/Lect… · Instructor: Abhishek Jain CS 601.641/441: Blockchains and CryptocurrenciesSpring

Textbook

Main resource: Bitcoin and Cryptocurrency Technologies byNarayanan, Bonneau, Felten, Miller, Goldfeder (NBFMG)

Additional reading material (including research papers) will bemade available on class website.

Instructor: Abhishek Jain CS 601.641/441: Blockchains and CryptocurrenciesSpring 2018 11 / 11

Page 34: CS 601.641/441: Blockchains and Cryptocurrenciesabhishek/classes/CS601-641-441-Spring2018/Lect… · Instructor: Abhishek Jain CS 601.641/441: Blockchains and CryptocurrenciesSpring

Textbook

Main resource: Bitcoin and Cryptocurrency Technologies byNarayanan, Bonneau, Felten, Miller, Goldfeder (NBFMG)

Additional reading material (including research papers) will bemade available on class website.

Instructor: Abhishek Jain CS 601.641/441: Blockchains and CryptocurrenciesSpring 2018 11 / 11