Final Project Reports

The final project reports and sites are now posted: Project Reports

Thanks to everyone for your contributions to the class!
Enjoy winter break.

Class 28: Project Presentations 2

The Evolution of Bitcoin Script Interpreter (Acacia Dai)
A Bandwidth Based “Proof of Work” (Alishan Hassan)
Bitcoin at Point of Sale (Elizabeth Kukla)
Vending on Dark Net Markets (Collin Berman)
Donation Accountability (Kienan Adams)
Understanding Mobile Bitcoin Wallet (Ziqi Liu)
BitSniffer: a Tool for Linkability Analysis (Ryan Anderson, Sam Prestwood, Luke Gessler)
Taking Down Silk Road (Gardner Fiveash)
How Much is Bitcoin Worth: Pricing Differences Across Exchanges and Time (Quentin Moore)
Analysis of the viability of Bitcoin replacing as a National Currency (Peter Leng)
Evaluating BlockCypher’s Confidence Level (Dean Makovsky and Joseph Tobin and Kevin Zhao and Vignesh Kuppusamy)

Class 27: Project Presentations 1

Developing a Distributed Distributed Consensus Protocol Consensus Protocol (Alec Grieser)
Blockchain Voting (Sugat Poudel, Austin J. Varshneya, Xhama Vyas)
BitMingle (Carter Hall, Reid Bixler)
Beyond the Lightning Network - Exploring How to Scale Bitcoin (Muthu Chidambaram)
Mixing with Miners (Morgan Locks)
Pruning Nodes (Cyrus Malekpour)
Bitcoin Block-size Options (Michael Parisi Presicce)
Bitcoin Controversy and Conflicts of Interest (Jacob Freck)
Detecting Selfish Mining in Bitcoin and Litecoin (Fangyang Cui)
Geopolitical Strategy and Bitcoin (Eashan Kaw)

Class 26: Cryptocurrency Jeopardy

Schedule

Wednesday, 2 Dec and Monday 7 Dec: Final Project Presentations. See Class 25 for schedule.

These people are scheduled to present Wednesday: Alec Grieser, (Sugat Poudel, Austin J. Varshneya, Xhama Vyas), (Carter Hall, Reid Bixler), Muthu Chidambaram, Morgan Locks, Cyrus Malekpour, Michael Parisi Presicce, Jacob Freck, Fangyang Cui, Eashan Kaw, Cody Robertson.

Don’t forget to send the link to your presentation before 11:59am on the day you are presenting!

Office hours: normal office hours will continue until December 11: Mondays 5-6:30pm (Ori in Rice 442), Wednesdays after class (Samee in Rice 442), Thursdays 2:30-3:30 (Dave in Rice 507).

Friday, 4 December, 3:30pm in Rice 130: Department of Computer Science, Distinguished Alumni Seminar Series

Adrienne Felt, Staff Software Engineer, Google
Friday, 4 December 2015, 3:30pm in Rice Auditorium
(Reception after talk in Rice 4th Floor Atrium)

MAKING SECURITY USABLE (FOR A BILLION USERS)

How do you know if a website is “safe”? The security community puts enormous effort into detecting malware, stopping the next Heartbleed, and sandboxing bad content. Google Chrome’s usable security team sits at the front end of this work: we build the UI that tells end users what’s going on with their privacy and security. What you see as a single icon might be the end product of months of work by engineers, designers, security experts, and user researchers. I’ll explain some of the engineering and design challenges that we face, and give insight into the day-by-day work done by a security team that serves more than a billion browser users.

Bio: Adrienne Porter Felt leads Google Chrome’s usable security team, whose goal is to help people make safe decisions while using Chrome. Along with her team, Dr. Felt is responsible for building and improving the security warnings, indicators, and settings that you see in Chrome today. Previously, Dr. Felt was a research scientist on Google’s security research team, where she examined how browser users react to security warnings. She received a PhD in computer science from UC Berkeley, and a BS from the University of Virginia in 2008.

Monday, 7 December (11:59pm): Project Final Reports. See Class 25 for details.

Slides

The slides below include all the Jeopardy questions, even ones we didn’t get to in class. You shouldn’t expect to get asked trivia questions in the oral final exam (and will not be asked to phrase your answers in the form of a question!), but some of the substantive questions here would make good questions to ask during the exam (in particular, I’d recommend looking at the unused questions in Unlocking Script and Crypto Curves as good potential exam questions).

Class 25: Project Pitches

Schedule

Today! (8:29 pm): Project Progress Reports due (see Class 23.)

Wednesday, 2 Dec and Monday 7 Dec: Final Project Presentations (see below).

Monday, 7 December (11:59pm): Project Final Reports (see below)

Today’s Presentations

Understanding Mobile Bitcoin Wallet
Ziqi Liu

Visual Explorer for Addresses and their Relations
Ryan Anderson, Sam Prestwood, Luke Gessler

How Much is Bitcoin Worth: Pricing Differences Across Exchanges and Time
Quentin Moore

Analysis of the viability of Bitcoin replacing as a National Currency
Peter Leng

Beyond the Lightning Network - Exploring How to Scale Bitcoin
Muthu Chidambaram

Mixing with Miners
Morgan Locks

Bitcoin Block-size Options
Michael Parisi Presicce

Bitcoin Controversy and Conflicts of Interest
Jacob Freck

Understanding Takedowns
Gardner Fiveash

Detecting Selfish Mining in Bitcoin and Litecoin
Fangyang Cui

Geopolitical Strategy and Bitcoin
Eashan Kaw

Evaluating BlockCypher’s Confidence Level
Dean Makovsky and Joseph Tobin and Kevin Zhao and Vignesh Kuppusamy

Pruning Nodes
Cyrus Malekpour

Divergence of Alt Coins and their Concurrent Developments
Cody Robertson

A Bandwidth Based “Proof of Work”
Alishan Hassan

Developing a Distributed Distributed Consensus Protocol Consensus Protocol
Alec Grieser

The Evolution of Bitcoin Script Interpreter
Acacia Dai

Project Final Presentations

The final project presentations will be in class on Wednesday, 2 December and Monday, 7 December. The presentation will count for approximately 50% of the grade for your final project.

The schedule of the presentations is below. Each team will have 5 + (N - 1) minutes to present your project (where N is the number of team members; so a 4-person team will have 8 minutes). Your presentation should be well prepared and enthusiastically delivered!

You should send a link to your presentation (PDF, PowerPoint, or anything that works in Firefox browser) to ccc-staff before 11:59am on the day you are scheduled to present. If your presentation includes a demo that’s great, but it needs to be designed in a way that can be set up quickly and used effectively.

Wednesday, 2 December:
Developing a Distributed Distributed Consensus Protocol Consensus Protocol (Alec Grieser)
Blockchain Voting (Sugat Poudel, Austin J. Varshneya, Xhama Vyas)
Distributed Bitcoin Mixing with Interest (Carter Hall, Reid Bixler)
Beyond the Lightning Network - Exploring How to Scale Bitcoin (Muthu Chidambaram)
Mixing with Miners (Morgan Locks)
Pruning Nodes (Cyrus Malekpour)
Bitcoin Block-size Options (Michael Parisi Presicce)
Bitcoin Controversy and Conflicts of Interest (Jacob Freck)
Detecting Selfish Mining in Bitcoin and Litecoin (Fangyang Cui)
Geopolitical Strategy and Bitcoin (Eashan Kaw)
Divergence of Alt Coins and their Concurrent Developments (Cody Robertson)

Monday, 7 December:
The Evolution of Bitcoin Script Interpreter (Acacia Dai)
A Bandwidth Based “Proof of Work” (Alishan Hassan)
Bitcoin at Point of Sale (Elizabeth Kukla)
Vending on Dark Net Markets (Collin Berman)
Analyzing the Feasibility of a Donation Accountability System in Bitcoin (Kienan Adams)
Understanding Mobile Bitcoin Wallet (Ziqi Liu)
Visual Explorer for Addresses and their Relations (Ryan Anderson, Sam Prestwood, Luke Gessler)
Understanding Takedowns (Gardner Fiveash)
How Much is Bitcoin Worth: Pricing Differences Across Exchanges and Time (Quentin Moore)
Analysis of the viability of Bitcoin replacing as a National Currency (Peter Leng)
Evaluating BlockCypher’s Confidence Level (Dean Makovsky and Joseph Tobin and Kevin Zhao and Vignesh Kuppusamy)

Project Final Reports

To submit your final report, send an email to ccc-staff@cs.virginia.edu with subject line Project Report: Title and cc-ing all of your team members. The official deadline for the final reports is Monday, 7 December (11:59pm), but extensions will be granted upon request so long as extending the deadline for this does not interfere problematically with your other courses and responsibilities.

The email should be plaintext containing:

  1. A title for your project (this is the title I will use on the public page listing all the projects; add a * if it is different from the title currently listed on Project).

  2. A one-sentence description of your project. This should be a clear, well-written sentence that will be enough for someone to understand what you did and why.

  3. A URL that points to a publicly-viewable web page that describes your project. The linked page can (and probably should) contain links to other pages (e.g., a website that is your actual project or a github repo with your project code). For example, the link you send could be a link to http://my-project-site.org/about.html or https://github.com/your-repo/README.md, which is a page describing your project, as well as containing links to the main project site. Please try to put your project site somewhere that will not expire when you graduate from UVa, but that can survive forever.

  4. Your project report, either as a PDF attachment, or a URL. Your project report should be a well-written and readable paper about your project. For most projects, this should include at least: (1) the motivation for your project, (2) background, including a description of related work (with references), (3) explanation of what you did, and (4) your results. For projects that do not involve building something, it may make more sense for it to be a more integrated report.

Discretionary Final Exams

By the end of this week, everyone should receive an email with your status in the class (including feedback on PS3).

The main message of this email will be guidance as to whether or not you should schedule a final exam. The main options are:

  1. You’re well positioned to get an A in the class. So long as you do a decent job on the project, you’ll get an A and don’t need to do the final exam.

  2. You are approaching what you need to do to convince us you deserve an A in the class, but need do more. If your project is outstanding, that may be enough to make the case. If not, you’ll have a last chance to do so by doing a final exam.

  3. From what you’ve done so far, we’re not convinced you understand cryptocurrencies well enough to earn an A in the class. You should plan on doing a final exam to convince us otherwise!

For students receving options 1 or 2, we’ll try to give feedback on your final projects are quickly as possible so you know whether or not a final exam will be recommended.

The final exam will be an oral exam where you will explain how bitcoin works, and then answer a few follow-up questions. These will be scheduled during the scheduled final exam time (Friday, 11 December 2-5pm) and other times.

Class 24: Altcoins

Schedule

Monday, 23 November (8:29 pm): Project Progress Reports due (see Class 23.)

Teams that did not present their project in class Wednesday, should be ready to present well on Monday!

Note: ink markings may not appear in the embedded viewer. To see them, download the slides.

Notes

Litecoin boasts faster confirmations (2.5 minutes as opposed to 10 minutes). Does this help you gain confidence in a given transaction faster (at which point it is unlikely to be double-spent)?

Class 23: Before Bitcoin

Schedule

Starting Wednesday and every following class: Be prepared to give an elevator pitch for your project. Your pitch should be no more than 2 minutes long. You may use visuals as long as you can obtain them by (quickly) entering a URL in a web browser. Your pitch should get across in a convincing and engaging way:

  • The purpose of your project (what problem are you solving)
  • What you are actually doing
  • Why we should care

Monday, 23 November (8:29pm): Project Progress Reports. Send an email to ccc-staff@cs.virginia.edu, cc-ing all members of your project team. The email should have a subject line, Project:Title, with your project title. Its body should contain at least this information:

  1. A link to the website for your project (this could be a github page if you want). That site should have a front page that describes your project, lists the team members, and provides more information about your project.

  2. A short paragraph explaining how your project has changed since the preliminary proposal email. This should explain if the goals of your project have changed and why.

  3. A description of what progress you have made on your project.

  4. A description of what you plan to do to complete your project, and your plans for doing this. If you have a multi-person team, this should include an explanation of how your team is working together and who is doing what.

  5. (optional) Any questions you have for us.

Addendum

Vignesh raised a really good point about Chaum’s scheme which I misunderstood in class until he clarified it after, so I’m posting an explanation here.

The issue he noticed is that if the bank knows all the possible I values (all the customer identities), and receives one of the identity split perimages, e.g., I1L, then the bank can search through all the identities to find an I1R such that h(I1R) matches the hash value. This is done by just xor-ing all the I values with I1L to find a guess for I1R, and then computing the hash to check if it is the right one. As I presented the scheme, this would be a big vulnerability! It violates the desired property that the bill spender’s anonymity is protected (even from the bank) unless she attempts to spend the bill twice.

To defeat this, we need to ensure that the set of possible I values is not known (even to the bank). One way to do this would be to add some randomness in the I values used in the generated banknotes used in the cut-and-choose for the blind signatures. Each note with have a different I, but one the bank can verify is still the right account owner. I’ll leave the details of how to do this as a challenge problem.

Project Ideas

This page should contain everyone’s submitted project idea. We’ll keep this updated as the projects develop, so please let us know if things change (you can also post comments on the page for updates).

The slides from Alex and Nick’s presentation are now posted:
Scaling Bitcoin and Web Bitcoin Blockchain 2.0.

Is Graph Isomorphism Hard?

Last class, we talked about using Graph Isomorphism as the basis for a zero knowledge proof, based on the assumption that it is a computationally hard problem to determine if two graphs are isomorphic.

Yesterday, Laszlo Babai presented a result that claims a quasipolynomial time algorithm for graph isomorphism (that is, shows graph isomorphism is not a hard enough problem to use as the basis for a zero knowledge proof).

Jeremy Kun’s summary of Babai’s presentation
A Big Result on Graph Isomorphism

Note that this has no bearing on the zero knowledge proofs based on the hardness of graph three-coloring, which, unlike graph isomorphism, is know to be NP-Complete.

Security Club Meeting

As Cyrus and Collin mentioned in class yesterday, Special Agent Jeremy D’Errico, who visited our class earlier in the semester, will be the guest speaker at the meeting of the UVa Computer and Network Security Club tonight (Thursday) at 7:00pm. He’ll talk about Cryptowall malware and efforts to analyze and detect it.

The meeting will be in Thorton D223.

Class 22: Zero-Knowledge Proofs

Class 21: Ombuds!

Project Pre-Proposal

Project Pre-Proposals are due Friday (November 13) at 8:29pm.

Your pre-proposal should include the following information:

  1. Names of everyone on the project team - you may work on your own, or with any number of teammates. The expected impressiveness of your project should scale at least as the square root of the number of project members.

  2. Title of your project - a short title that gets across what your project is about.

  3. Idea for your project - one or two paragraphs that explain what the purpose of your project is and what you plan to do.

  4. Expected outcome - what you hope will be the outcome of your project. This should explain what you expect to be able to deliver by the end of semester, and how the world will benefit from it.

  5. Related work - list of projects (which could include papers, companies, etc.) that had goals related to yours. You do not have to have studied these in detail yet, but should have identified starting points to look at.

  6. Immediate plans - what are the next steps you plan to do.

Please submit this as a plain text email to ccc-staff@cs.virginia.edu.

Your email should have as its subject line: Project: Title where Title is the title of your project. It should include all team members as cc’d recipients. It should include your answers to the six points above, clearly numbered. Do not use any PDF attachments unless it is really necessary to provide a figure for your idea to be understandable.

Class 20: Hidden Services, Zero Knowledge

Class 19: Anonymity in Bitcoin

Schedule Updates

Problem Set 3 is due Sunday, 8 November (8:29pm). Readings for PS3:

Project Pre-Proposal: Friday, November 13

Class 18: Confirming the Midterm

Schedule Updates

Problem Set 3 is due Sunday, 8 November (8:29pm). Please don’t wait to get started so you have enough time to do something interesting and valuable for the open-ended questions.

There is no Problem Set 4.

Project Pre-Proposal: Friday, November 13
Project Update: Monday, November 23
Last class: Monday, December 7

Simeon-Denis Poisson, Recherches sur la probabilité des jugements en matière criminelle et en matière civile ; précédées des Règles générales du calcul des probabilités, 1837.

Class 17: Bitcoin and Business

PS3

Problem Set 3 is now posted, and is due Sunday, 8 November (8:29pm). You should have received an email with information on the bitcoin ransomware addresses to use for PS3.

Monday's Class: Josh Cincinnati

Monday’s class will be a guest talk from Josh Cincinnati. Josh is BlockCypher’s “Developer Advocate and Comedian”. He is a University of Virginia alum (Political & Social Thought and Mathematics) and has an MBA from Stanford. You can read several interesting posts of his on the BlockCypher Blog.

For some background on the current entrepreneurial landscape in cryptocurrencies, Josh send along this report: The Blockchain Report: Welcome to the Internet of Value, Needham & Company, LLC, 21 October 2015.

Class 16: Midterm

Midterm

The midterm exam is here: PDF

Class 15: Scripting Transactions

Midterm Exam

The midterm exam will be in class, Wednesday, 21 October. The midterm will be closed-resources, but is meant to test understanding, not memorization.

The midterm covers: Classes 1-15, Checkups 1-2, Problem Sets 1-2, and the assigned readings: Chapters 1, 2, 3, and 5 from Bitcoin and Cryptocurrency Technologies; Chapters 1, 2, 3, 4, 6, and 7 from Mastering Bitcoin: Unlocking Digital Cryptocurrencies; Satoshi Nakamoto, Bitcoin: A Peer-to-Peer Electronic Cash System; Ittay Eyal and Emin Gün Sirer, Majority is not Enough: Bitcoin Mining is Vulnerable.

The first two questions on the midterm will ask you to comment on the technical validity of some statements in the Congressional Research Service report (in the first 8 pages, not the policy issues).

Extra Office Hours. There will be some additional office hours this week:

  • Monday, 5-6:30pm (Ori, Rice 442)
  • Tuesday, 2-3:30pm (Dave, Rice 507) (Added)
  • Tuesday, 3:30-4:30pm (Samee, Rice 442) (Added)
  • Wednesday, 3:30-4:30pm (Samee, Rice 442)
  • Thursday, 2:30-3:30 (Dave, Rice 507)

Scripting Transactions

Recall from class 12: Transaction outputs in bitcoin are protected by locking scripts, and must be unlocked by unlocking scripts. A transaction output is not unlocked unless an unlocking script is provided such that the result of executing the unlocking script, followed by executing the locking script, is a stack with value True on top.

Extra Office Hours

There will be some additional office hours next week:

  • Monday, 5-6:30pm (Ori, Rice 442)
  • Tuesday, 2-3:30pm (Dave, Rice 507) (Added)
  • Tuesday, 3:30-4:30pm (Samee, Rice 442) (Added)
  • Wednesday, 3:30-4:30pm (Samee, Rice 442)
  • Thursday, 2:30-3:30 (Dave, Rice 507)

I hope these will be helpful in preparing for the midterm, as well as for discussing project ideas.

Class 14: FBI Visit

Schedule

Monday-Wednesday, October 1921: Midterm Exam. Part of the midterm will be handed out in class on Monday, Oct 19. The midterm will be in class on Wednesday, October 21.

Today’s class was a visit from Special Agent Jeremy D’Errico, Special Benjamin Blome, David Cochran, and Stuart VonCanon from the Federal Bureau of Investigation (Richmond Division).

For Problem Set 3, you will be analyzing the blockchain to understand transactions involving bitcoin ransomware crimes. Some links to relevant posts and papers:

CryptoWall Ransomware, Dell SecureWorks Counter Threat, August 2014.

Tearing Down Cryptowall, Brian Wallace, 4 November 2014.

Amin Kharraz, William Robertson, Davide Balzarotti, Leyla Bilge, and Engin Kirda. Cutting the Gordian Knot: A Look Under the Hood of Ransomware Attacks. DIMVA 2015.

Shuang Hao, Kevin Borgolte, Nick Nikiforakis, Gianluca Stringhini, Manuel Egele, Michael Eubanks, Brian Krebs, Giovanni Vigna. Drops for Stuff: An Analysis of Reshipping Mule Scams. ACM Conference on Computer and Communications Security 2015.

Class 13: Law and Policy

Schedule

Monday-Wednesday, October 1921: Midterm Exam. Part of the midterm will be handed out in class on Monday, Oct 19. The midterm will be in class on Wednesday, October 21.

Today’s class was a visit from Tom Dukes on law and policy related to cryptocurrencies.

Tom Duke’s Bio

The Congressional Research Service report he mentioned: Bitcoin: Questions, Answers, and Analysis of Legal Issues, 14 August 2015. This provides a good summary of US laws and regulations that apply to bitcoin, and why Congress is interested in it.

Midterm Schedule Update

The midterm was originally scheduled for Monday, October 19, but due to the two guest lectures this week it will be rescheduled to be on Wednesday, October 21.

In class on Monday, October 19, you will receive a handout that sets up and includes a few of the questions on the midterm (which you’ll be expected to work on before Wednesday, Oct 21, and will be able to bring in written answers to that you will submit as part of the midterm). The rest of the midterm will be in class on Wednesday, October 21.

If you have a problem with the schedule change and prefer to do the midterm on Monday, October 19, this is an option. You should contact Dave or Samee to arrange this by Oct 14 at the latest.

Class 12: Script

Schedule

Read: Chapter 3: Mechanics of Bitcoin, from Arvind Narayanan, Joseph Bonneau, Edward Felten, Andrew Miller, Steven Goldfeder. Bitcoin and Cryptocurrency Technologies. Sections 3.2 and 3.3 are about bitcoin scripts, and should be read carefully. (You should read the whole chapter, but those sections are most relevant to today’s class.)

Friday, October 9: Problem Set 2 (8:29pm).

Monday, October 19: Midterm Exam

Sorry, ink markings were lost from today. Download the slides

Hash Collisions!

Computing a bitcoin address: (bitcoinwiki)

PS2 / Projects

Problem Set 2 is now posted, and is due Friday, 9 October (8:29pm). Sorry it took so long to post this!

The other thing I hope everyone thinks about over “reading break”, is ideas for a course project. You can see projects from the course last Spring here: http://bitcoin-class.org/0/cryptocurrency-projects.html. Your project can be anything related to cryptocurrencies or the tools we learn about in this class, and can be done individually or with a team (the size of the project should scale approximately with the square root of the team size). If you have an idea for an ambitious project that you want to start early, it may be possible to arrange for it to substitute for some other course assignments.

Class 11: More Mining

Schedule

Wednesday, September 30: Checkup 2 revisions (if desired), due at the beginning of class or end of office hours today.

Friday, October 9: Problem Set 2 (moved from original deadline of October 2). Problem Set 2 will be posted by tomorrow.

Monday, October 19: Midterm Exam

No classes Monday, October 5!

Checkup 2 Revisions

If you didn’t get a “gold star” on Checkup 2, you can improve your score by answering one or more of the questions below. You can submit your revisions in class Wednesday, or at the end of office hours Wednesday. To submit revisions, attach your answers to these questions to your original submission.

R1. Hashing (Answer this question if you want to improve your score on questions 1-4)

There are several different places in bitcoin where cryptographic hashes are used:

A. Producing the public bitcoin address by hashing the public key.

B. Producing a transaction digest for use as the input in signing a transaction.

C. Producing the Merkle tree root for authenticating the transactions in a block (using hashes all the way up the tree).

D. Producing the hash of the previous block to use in the block header.

E. Producing the double hash of the block (with nonces) to find a block that satisfies the difficult needed in mining.

Suppose H is a hash function that provides strong pre-image resistance, but does not provide collision resistance. That is, an adversary knows way to efficiently find pairs of values, m1 and m2 such that m1 is not equal to m2 and H(m1) = H(m2).

Explain clearly one place where cryptographic hashing is used in bitcoin that the adversary could gain an advantage by knowing how to find collisions in H. (Be careful to not overstate the advantage, though.)

R2. Blockchain (Answer this question if you want to improve your score on questions 5-7)

Ishtosa suggests strengthening bitcoin by adding the hash of the previous previous block to the block header. So, the block header for block 534 would now include the both the hash of the block 533, and the hash of block 532. Would this be a good idea?

Class 10: Subverting Bitcoin

Schedule

Wednesday, September 30: Checkup 2 revisions (if desired), due at the beginning of class.

Friday, October 9: Problem Set 2 (moved from original deadline of October 2). Problem Set 2 will be posted later.

Monday, October 19: Midterm Exam

Darkode

The latest episode of Radiolab starts with a story about bitcoin being used in a ransom scam (CryptoLocker). Its a sad story, without a lot of technical insights, but does give a sense of what the bitcoin experience is like for many people today. A good thing to think about for a potential project is how to solve the problem —- making it so bitcoin can’t be used to collect ransom untracably, without losing the desirable aspects of anonymity and decentralization.

21 Inc. Releases First Product, a ‘Bitcoin Computer’

Class 9: Economics of Mining

Schedule

Wednesday, September 23: Checkup 2 (was originally scheduled for Monday, September 21). See previous class notes for details on what is covered.
Friday, October 9: Problem Set 2 (moved from original deadline of October 2). Problem Set 2 will be posted later. Monday, October 19: Midterm Exam

Checkup 2

Checkup 2 (PDF)

As was suggested in class today, there won’t be an immediate opportunity to submit revisions for this (like there was for Checkup 1), but there will be some opportunity to improve your checkup result given in Monday’s class.

Class 8: Mining

Schedule

Wednesday, September 23: Checkup 2 (was originally scheduled for Monday, September 21). See previous class notes for details on what is covered.
Friday, October 9: Problem Set 2 (moved from original deadline of October 2). Problem Set 2 will be posted later this week.
Monday, October 19: Midterm Exam

Reminders

You can subscribe to the course calendar. This has updated information on deadlines and office hours.

If you want to receive course website updates by email, you can subscribe to the RSS feed using a RSS reader or an emailing service like feedmyinbox.com or Blogtrottr. The feed address is http://bitcoin-class.org/index.xml.

Checkup 1 Comments

Here are answers and discussions for the Checkup 1 questions. It would not be at all surprising if there are one or two questions on Checkup 2 (scheduled for Wednesday, Sept 23) that are closely related to questions on Checkup 1.

1. What are the most essential properties something must have to be used as a currency?

The two most essential properties are transferability and scarcity. Recall that we defined a currency as a “medium of exchange”. In order for something to be used in exchanges, it must be possible to transfer it from one owner to another. The second essential property of scarcity is intrinsic to having value. If something can be created or duplicated freely, it cannot be used to represent value.
Being universally recognized as valuable would be a good alternative answer to scarcity, but is a bit circular: nothing is “universally” recognized as valuable for the entire universe; it is universally recognized as valuable by all partcipants in an economy using that currency, but this is a somewhat circular definition (of universal).

Class 7: The Blockchain

Schedule

Wednesday, September 23: Checkup 2 (was originally scheduled for Monday, September 21)

Readings (should be completed by Monday, September 21 at the latest; covered by Checkup 2):

Note: ink markings may not appear in the embedded viewer. To see them, download the slides.

Blockchain in the News

Blockchain initiative backed by 9 large investment banks, Financial Times, 15 Sept 2015.

Nine of the World’s Biggest Banks Form Blockchain Partnership, Re/Code, 15 Sept 2015.

Bitcoin Is Only The Beginning For Blockchain Technology, Forbes, 15 Sept 2015.

Bitcoin’s Shared Ledger Technology: Money’s New Operating System, Forbes, 9 Sept 2015.

Trust

What are valid sources of trust?

Class 6: Hash Functions

Schedule

Tuesday, September 15 (8:29pm, tomorrow): Problem Set 1 due.

Wednesday, September 23: Check 2 (was originally scheduled for Monday, September 21)

Readings for next week (should be completed by Monday, September 21 at the latest, but earlier is better):

Class 5: Becoming Paranoid

Schedule

Wednesday, 9 September (now): Checkup 1 revisions (if desired).

Tuesday, September 15 (8:29pm): Problem Set 1 due.

Wednesday, September 23: Check 2 (was originally scheduled for Monday, September 21)

Readings for next week (should be completed by Monday, September 21 at the latest, but earlier is better):

Class 4: Checkup

Checkup 1

Checkup 1 and Feedback.

Checkup Revisions

If you are not happy with your answers to any of the questions on Checkup 1, you may submit revised answers at the beginning of Wednesday’s class. (Just print the Checkup 1 and fill in revised answers for any questions you want, or submit your clearly marked answers on a separate page you generate. It is not necessary to resubmit answers to questions for which you are happy with your original answers.)

Schedule

Wednesday, 9 September (beginning of class): Checkup 1 revisions (if desired).

Tuesday, September 15 (8:29pm): Problem Set 1 due.

Class 3: Digital Signatures

Schedule

Monday, September 7: Check-up 1. This will be a short in-class quiz to test your understanding of the main concepts covered so far. It will cover material from the readings (see Class 2 for details) and classes 1-3.

Tuesday, September 15 (8:29pm): Problem Set 1 due.

Mining Pools

Here’s the up-to-date graph of hashing power distributed by mining pools (that I wasn’t able to find in class Monday):

https://blockchain.info/pools?timespan=4days

Looking at the current results for the past for days, more than 50% of the hashing power appears to be held by just three mining pools: F2Pool (20%), BitFury (17%), and AntPool (17%). Each of these has around 75 PH/s (one peta-hash means 1015 computations of the bitcoin block hashing function, which actually involves two computations of SHA-256).

We’ll talk about mining a lot more in the coming weeks to get a good understanding of what this means technically, as well as the implications for the blockchain.

Problem Set 1 Posted

Problem Set 1 is now posted, and is due Tuesday, 15 September (8:29pm).

Email/Calendar Update

The email address, ccc-staff@cs.virginia.edu, reaches all the course staff (Dave, Samee, and Ori). If you have a question that can be asked publicly, its best to post it as a comment on the website. But, for things that don’t belong as website comments, use that email address to reach all of us.

I’ve updated the course calendar to include all the deadlines, and encourage you to incorporate this into your calendar: use this link.

Class 2: Cryptography

Schedule

Before the next class (Wednesday, Sept 2):

  • Read: Chapter 3: The Bitcoin Client and Chapter 4: Keys, Addresses, Wallets from Andreas M. Antonopoulos, Mastering Bitcoin: Unlocking Digital Cryptocurrencies book (also available in print). You can skim most of Chapter 3, especially the parts about installing bitcoin core, but should read Chapter 4. (You should have already read Chapters 1 and 2.)

  • Read: Chapter 1: Introduction to Cryptography and Cryptocurrencies, from Arvind Narayanan, Joseph Bonneau, Edward Felten, Andrew Miller, Steven Goldfeder. This chapter starts with cryptographic hashing and authenticated data structures (which we are deferring until until later, but is still worth reading now), and Section 1.3 covers digital signatures.

Monday, September 7: Check-up 1. This will be a short in-class quiz to test your understanding of the main concepts covered so far. It will cover material from the readings and classes 1-3.

Tuesday, September 15 (8:29pm): Problem Set 1 due.

Office Hours Schedule

Ori’s office hours have been moved to 5-6:30pm Monday (in Rice 442). All of our office hours are:

  • Ori, Mondays 5-6:30pm in Rice 442
  • Samee, 3:30-4:30pm in Rice 442
  • Dave, 2:30-3:30pm in Rice 507

If you can’t make the scheduled office hours, send email to arrange another time.

Class 1: What is Money?

Cryptocurrency Cabal

Banking Blockchains

Inside the Fight Over Bitcoin’s Future

There’s an article in the New Yorker, Inside the Fight Over Bitcoin’s Future, 25 August 2015 (by Maria Bustillos) about the split over the increasingly heated debate in the bitcoin community over the maximum size of a block.

The current maximum size accepted by the Bitcoin Core node software is 1MB (which means the network can support only approximately 7 transactions per second). There are lots of proposed solutions to this, including increasing the block size, but they are controversial and also raise lots of issues about how to make decisions like this for a decentralized system.

Bitcoin Technology Piques Interest on Wall St.

New York Times, Bitcoin Technology Piques Interest on Wall St., 28 August 2015 (by Nathaniel Popper).

… the innovations that helped turn Bitcoin into the most popular virtual currency are now being viewed as a potentially enormous disruptive force for several industries, including accounting, music and journalism. Nowhere, though, are more money and resources being spent on the technology than on Wall Street — the very industry that Bitcoin was created to circumvent.

Ombuds: Using Bitcoin to make online messages 'immutable'